Merge branch 'staging-next' into staging

This commit is contained in:
Weijia Wang 2024-04-09 08:26:23 +02:00
commit 3f59355d84
835 changed files with 34564 additions and 8011 deletions

View File

@ -0,0 +1,24 @@
name: "Check cherry-picks"
on:
pull_request_target:
branches:
- 'release-*'
- 'staging-*'
permissions: {}
jobs:
check:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
fetch-depth: 0
filter: blob:none
- name: Check cherry-picks
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: |
./maintainers/scripts/check-cherry-picks.sh "$BASE_SHA" "$HEAD_SHA"

View File

@ -16,6 +16,10 @@ jobs:
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
# Only these directories to perform the check
sparse-checkout: |
lib
maintainers
- uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
with:
# explicitly enable sandbox

View File

@ -14,6 +14,7 @@ fish.section.md
fuse.section.md
ibus.section.md
kakoune.section.md
krita.section.md
linux.section.md
locales.section.md
etc-files.section.md

View File

@ -0,0 +1,37 @@
# Krita {#sec-krita}
## Python plugins {#krita-python-plugins}
"pykrita" plugins should be installed following
[Krita's manual](https://docs.krita.org/en/user_manual/python_scripting/install_custom_python_plugin.html).
This generally involves extracting the extension to `~/.local/share/krita/pykrita/`.
## Binary plugins {#krita-binary-plugins}
Binary plugins are Dynamically Linked Libraries to be loaded by Krita.
_Note: You most likely won't need to deal with binary plugins,
all known plugins are bundled and enabled by default._
### Installing binary plugins {#krita-install-binary-plugins}
You can choose what plugins are added to Krita by overriding the
`binaryPlugins` attribute.
If you want to add plugins instead of replacing, you can read the
list of previous plugins via `pkgs.krita.binaryPlugins`:
```nix
(pkgs.krita.override (old: {
binaryPlugins = old.binaryPlugins ++ [ your-plugin ];
}))
```
### Example structure of a binary plugin {#krita-binary-plugin-structure}
```
/nix/store/00000000000000000000000000000000-krita-plugin-example-1.2.3
└── lib
└── kritaplugins
└── krita_example.so
```

View File

@ -2,11 +2,11 @@
Some packages provide the shell integration to be more useful. But unlike other systems, nix doesn't have a standard `share` directory location. This is why a bunch `PACKAGE-share` scripts are shipped that print the location of the corresponding shared folder. Current list of such packages is as following:
- `fzf` : `fzf-share`
- `sk` : `sk-share`
E.g. `fzf` can then be used in the `.bashrc` like this:
E.g. `sk` can then be used in the `.bashrc` like this:
```bash
source "$(fzf-share)/completion.bash"
source "$(fzf-share)/key-bindings.bash"
source "$(sk-share)/completion.bash"
source "$(sk-share)/key-bindings.bash"
```

View File

@ -797,7 +797,7 @@ A shell array containing additional arguments passed to the configure script. Yo
##### `dontAddPrefix` {#var-stdenv-dontAddPrefix}
By default, the flag `--prefix=$prefix` is added to the configure flags. If this is undesirable, set this variable to true.
By default, `./configure` is passed the concatenation of [`prefixKey`](#var-stdenv-prefixKey) and [`prefix`](#var-stdenv-prefix) on the command line. Disable this by setting `dontAddPrefix` to `true`.
##### `prefix` {#var-stdenv-prefix}
@ -805,7 +805,7 @@ The prefix under which the package must be installed, passed via the `--prefix`
##### `prefixKey` {#var-stdenv-prefixKey}
The key to use when specifying the prefix. By default, this is set to `--prefix=` as that is used by the majority of packages.
The key to use when specifying the installation [`prefix`](#var-stdenv-prefix). By default, this is set to `--prefix=` as that is used by the majority of packages. Other packages may need `--prefix ` (with a trailing space) or `PREFIX=`.
##### `dontAddStaticConfigureFlags` {#var-stdenv-dontAddStaticConfigureFlags}

View File

@ -87,9 +87,9 @@ rec {
Nix has a [has attribute operator `?`](https://nixos.org/manual/nix/stable/language/operators#has-attribute), which is sufficient for such queries, as long as the number of attributes is static. For example:
```nix
(x?a.b) == hasAttryByPath ["a" "b"] x
(x?a.b) == hasAttrByPath ["a" "b"] x
# and
(x?${f p}."example.com") == hasAttryByPath [ (f p) "example.com" ] x
(x?${f p}."example.com") == hasAttrByPath [ (f p) "example.com" ] x
```
**Laws**:

View File

@ -93,12 +93,12 @@ in mkLicense lset) ({
url = "https://aomedia.org/license/patent-license/";
};
apsl10 = {
apple-psl10 = {
spdxId = "APSL-1.0";
fullName = "Apple Public Source License 1.0";
};
apsl20 = {
apple-psl20 = {
spdxId = "APSL-2.0";
fullName = "Apple Public Source License 2.0";
};
@ -1272,6 +1272,18 @@ in mkLicense lset) ({
};
} // {
# TODO: remove legacy aliases
apsl10 = {
# deprecated for consistency with `apple-psl20`; use `apple-psl10`
spdxId = "APSL-1.0";
fullName = "Apple Public Source License 1.0";
deprecated = true;
};
apsl20 = {
# deprecated due to confusion with Apache-2.0; use `apple-psl20`
spdxId = "APSL-2.0";
fullName = "Apple Public Source License 2.0";
deprecated = true;
};
gpl2 = {
spdxId = "GPL-2.0";
fullName = "GNU General Public License v2.0";

View File

@ -224,6 +224,12 @@
githubId = 12578560;
name = "Quinn Bohner";
};
_8aed = {
email = "8aed@riseup.net";
github = "8aed";
githubId = 140662578;
name = "Huit Aed";
};
_8-bit-fox = {
email = "sebastian@markwaerter.de";
github = "8-bit-fox";
@ -1558,6 +1564,12 @@
githubId = 160646;
name = "Patrick Jackson";
};
arduano = {
email = "leonid.shchurov@gmail.com";
github = "arduano";
githubId = 13347712;
name = "Leo Shchurov";
};
ardumont = {
email = "eniotna.t@gmail.com";
github = "ardumont";
@ -1989,12 +2001,6 @@
githubId = 687218;
name = "averelld";
};
avery = {
email = "averyl+nixos@protonmail.com";
github = "AveryLychee";
githubId = 9147625;
name = "Avery Lychee";
};
avh4 = {
email = "gruen0aermel@gmail.com";
github = "avh4";
@ -3248,6 +3254,12 @@
matrix = "@cawilliamson:nixos.dev";
name = "Christopher A. Williamson";
};
cbarrete = {
github = "cbarrete";
githubId = 62146989;
matrix = "@cedric:cbarrete.com";
name = "Cédric Barreteau";
};
cbleslie = {
email = "cameronleslie@gmail.com";
github = "cbleslie";
@ -4156,6 +4168,17 @@
githubId = 16950437;
name = "cwyc";
};
cybershadow = {
name = "Vladimir Panteleev";
email = "nixpkgs@cy.md";
matrix = "@cybershadow:cy.md";
github = "CyberShadow";
githubId = 160894;
keys = [{
fingerprint = "BBED 1B08 8CED 7F95 8917 FBE8 5004 F0FA D051 576D";
}];
};
cynerd = {
name = "Karel Kočí";
email = "cynerd@email.cz";
@ -4360,6 +4383,13 @@
fingerprint = "4779 D1D5 3C97 2EAE 34A5 ED3D D8AF C4BF 0567 0F9D";
}];
};
dan-theriault = {
email = "nix@theriault.codes";
github = "Dan-Theriault";
githubId = 13945563;
matrix = "@dan:matrix.org";
name = "Daniel Theriault";
};
dariof4 = {
name = "dariof4";
email = "dazedtank@gmail.com";
@ -4506,6 +4536,12 @@
githubId = 11422515;
name = "David Sánchez";
};
dav-wolff = {
email = "dav-wolff@outlook.com";
github = "dav-wolff";
githubId = 130931508;
name = "David Wolff";
};
dawidd6 = {
email = "dawidd0811@gmail.com";
github = "dawidd6";
@ -5752,6 +5788,12 @@
githubId = 122112154;
name = "Edgar Lee";
};
elrohirgt = {
email = "elrohirgt@gmail.com";
github = "ElrohirGT";
githubId = 45268815;
name = "Flavio Galán";
};
elvishjerricco = {
email = "elvishjerricco@gmail.com";
matrix = "@elvishjerricco:matrix.org";
@ -6945,6 +6987,15 @@
githubId = 1313787;
name = "Gabriella Gonzalez";
};
gabyx = {
email = "gnuetzi@gmail.com";
github = "gabyx";
githubId = 647437;
name = "Gabriel Nützi";
keys = [{
fingerprint = "90AE CCB9 7AD3 4CE4 3AED 9402 E969 172A B075 7EB8";
}];
};
gador = {
email = "florian.brandes@posteo.de";
github = "gador";
@ -8488,6 +8539,12 @@
fingerprint = "F5B2 BE1B 9AAD 98FE 2916 5597 3665 FFF7 9D38 7BAA";
}];
};
imrying = {
email = "philiprying@gmail.com";
github = "imrying";
githubId = 36996706;
name = "Philip Rying";
};
imuli = {
email = "i@imu.li";
github = "imuli";
@ -9573,6 +9630,12 @@
githubId = 51028009;
name = "John Rodewald";
};
johnrtitor = {
email = "masumrezarock100@gmail.com";
github = "johnrtitor";
githubId = 50095635;
name = "Masum Reza";
};
john-shaffer = {
email = "jdsha@proton.me";
github = "john-shaffer";
@ -12188,6 +12251,12 @@
githubId = 26470037;
name = "Markus Kowalewski";
};
marmolak = {
email = "hack.robin@gmail.com";
github = "marmolak";
githubId = 1709273;
name = "Robin Hack";
};
marsam = {
github = "marsam";
githubId = 65531;
@ -13368,6 +13437,12 @@
githubId = 830082;
name = "Nathan Moos";
};
moraxyc = {
name = "Moraxyc Xu";
email = "nix@qaq.li";
github = "Moraxyc";
githubId = 69713071;
};
moredread = {
email = "code@apb.name";
github = "Moredread";
@ -14378,6 +14453,12 @@
githubId = 42322511;
name = "Patryk Kwiatek";
};
nokazn = {
email = "me@nokazn.me";
github = "nokazn";
githubId = 41154684;
name = "nokazn";
};
nomeata = {
email = "mail@joachim-breitner.de";
github = "nomeata";
@ -17779,6 +17860,17 @@
fingerprint = "0AF6 4C3B 1F12 14B3 8C8C 5786 1FA2 DBE6 7438 7CC3";
}];
};
sebrut = {
email = "kontakt@sebastian-rutofski.de";
github = "sebrut";
githubId = 3962409;
name = "Sebastian Rutofski";
keys = [
{
fingerprint = "F1D4 8061 2830 3AF6 42DC 3867 C37F 3374 2A95 C547";
}
];
};
sebtm = {
email = "mail@sebastian-sellmeier.de";
github = "SebTM";
@ -21025,6 +21117,12 @@
githubId = 357664;
name = "Viktor Petersson";
};
vpochapuis = {
email = "vincent.professional@chapuis.ovh";
github = "vpochapuis";
githubId = 75721408;
name = "Vincent Chapuis";
};
vq = {
email = "vq@erq.se";
github = "vq";

View File

@ -0,0 +1,92 @@
#!/usr/bin/env bash
# Find alleged cherry-picks
set -e
if [ $# != "2" ] ; then
echo "usage: check-cherry-picks.sh base_rev head_rev"
exit 2
fi
PICKABLE_BRANCHES=${PICKABLE_BRANCHES:-master staging release-??.?? staging-??.??}
problem=0
while read new_commit_sha ; do
if [ "$GITHUB_ACTIONS" = 'true' ] ; then
echo "::group::Commit $new_commit_sha"
else
echo "================================================="
fi
git rev-list --max-count=1 --format=medium "$new_commit_sha"
echo "-------------------------------------------------"
original_commit_sha=$(
git rev-list --max-count=1 --format=format:%B "$new_commit_sha" \
| grep -Ei -m1 "cherry.*[0-9a-f]{40}" \
| grep -Eoi -m1 '[0-9a-f]{40}'
)
if [ "$?" != "0" ] ; then
echo " ? Couldn't locate original commit hash in message"
[ "$GITHUB_ACTIONS" = 'true' ] && echo ::endgroup::
continue
fi
set -f # prevent pathname expansion of patterns
for branch_pattern in $PICKABLE_BRANCHES ; do
set +f # re-enable pathname expansion
while read -r picked_branch ; do
if git merge-base --is-ancestor "$original_commit_sha" "$picked_branch" ; then
echo "$original_commit_sha present in branch $picked_branch"
range_diff_common='git range-diff
--no-notes
--creation-factor=100
'"$original_commit_sha~..$original_commit_sha"'
'"$new_commit_sha~..$new_commit_sha"'
'
if $range_diff_common --no-color | grep -E '^ {4}[+-]{2}' > /dev/null ; then
if [ "$GITHUB_ACTIONS" = 'true' ] ; then
echo ::endgroup::
echo -n "::warning ::"
else
echo -n " ⚠ "
fi
echo "Difference between $new_commit_sha and original $original_commit_sha may warrant inspection:"
$range_diff_common --color
problem=1
else
echo "$original_commit_sha highly similar to $new_commit_sha"
$range_diff_common --color
[ "$GITHUB_ACTIONS" = 'true' ] && echo ::endgroup::
fi
# move on to next commit
continue 3
fi
done <<< "$(
git for-each-ref \
--format="%(refname)" \
"refs/remotes/origin/$branch_pattern"
)"
done
if [ "$GITHUB_ACTIONS" = 'true' ] ; then
echo ::endgroup::
echo -n "::error ::"
else
echo -n " ✘ "
fi
echo "$original_commit_sha not found in any pickable branch"
problem=1
done <<< "$(
git rev-list \
-E -i --grep="cherry.*[0-9a-f]{40}" --reverse \
"$1..$2"
)"
exit $problem

View File

@ -107,6 +107,7 @@ nlua,,,,,,teto
nui.nvim,,,,,,mrcjkb
nvim-cmp,https://github.com/hrsh7th/nvim-cmp,,,,,
nvim-nio,,,,,,mrcjkb
pathlib.nvim,,,,,,
penlight,https://github.com/lunarmodules/Penlight.git,,,,,alerque
plenary.nvim,https://github.com/nvim-lua/plenary.nvim.git,,,,5.1,
rapidjson,https://github.com/xpol/lua-rapidjson.git,,,,,

1 name src ref server version luaversion maintainers
107 nui.nvim mrcjkb
108 nvim-cmp https://github.com/hrsh7th/nvim-cmp
109 nvim-nio mrcjkb
110 pathlib.nvim
111 penlight https://github.com/lunarmodules/Penlight.git alerque
112 plenary.nvim https://github.com/nvim-lua/plenary.nvim.git 5.1
113 rapidjson https://github.com/xpol/lua-rapidjson.git

View File

@ -1,7 +1,7 @@
# python library used to update plugins:
# - pkgs/applications/editors/vim/plugins/update.py
# - pkgs/applications/editors/kakoune/plugins/update.py
# - maintainers/scripts/update-luarocks-packages
# - pkgs/development/lua-modules/updater/updater.py
# format:
# $ nix run nixpkgs#black maintainers/scripts/pluginupdate.py

View File

@ -351,6 +351,7 @@ with lib.maintainers; {
geospatial = {
members = [
imincik
l0b0
nh2
nialov
sikmir

View File

@ -26,8 +26,8 @@ To create a new key without a passphrase you can do:
```ShellSession
$ ssh-keygen -t ed25519 -P '' -f example-key
Generating public/private ed25519 key pair.
Your identification has been saved in test-key
Your public key has been saved in test-key.pub
Your identification has been saved in example-key
Your public key has been saved in example-key.pub
The key fingerprint is:
SHA256:yjxl3UbTn31fLWeyLYTAKYJPRmzknjQZoyG8gSNEoIE my-user@workstation
```

View File

@ -79,7 +79,7 @@ In addition to numerous new and updated packages, this release has the following
- [frigate](https://frigate.video), an open source NVR built around real-time AI object detection. Available as [services.frigate](#opt-services.frigate.enable).
- [fzf](https://github.com/junegunn/fzf), a command line fuzzyfinder. Available as [programs.fzf](#opt-programs.fzf.fuzzyCompletion).
- [fzf](https://github.com/junegunn/fzf), a command line fuzzyfinder. Available as [programs.fzf](#opt-programs.fzf.enable).
- [gemstash](https://github.com/rubygems/gemstash), a RubyGems.org cache and private gem server. Available as [services.gemstash](#opt-services.gemstash.enable).

View File

@ -65,6 +65,10 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
}
```
- The initial Incus LTS release (v6.0.x) is now available through `virtualisation.incus` as the default. Users who wish to continue using the non-LTS release will need to set `virtualisation.incus.package = pkgs.incus`. Stable release users are encouraged to stay on the LTS release as non-LTS releases will by default not be backported.
- Canonical LXD has been upgraded to v5.21.x, an LTS release. The LTS release is now the only supported LXD release. Users are encouraged to [migrate to Incus](https://linuxcontainers.org/incus/docs/main/howto/server_migrate_lxd/) for better support on NixOS.
- lua interpreters default LUA_PATH and LUA_CPATH are not overriden by nixpkgs
anymore, we patch LUA_ROOT instead which is more respectful to upstream.
@ -98,7 +102,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
- [ollama](https://ollama.ai), server for running large language models locally.
- [Mihomo](https://github.com/MetaCubeX/mihomo), a rule-based proxy in Go. Available as [services.mihomo.enable](#opt-services.mihomo.enable).
- [Mihomo](https://github.com/MetaCubeX/mihomo/tree/Alpha), a rule-based proxy in Go. Available as [services.mihomo.enable](#opt-services.mihomo.enable).
- [hebbot](https://github.com/haecker-felix/hebbot), a Matrix bot to generate "This Week in X" like blog posts. Available as [services.hebbot](#opt-services.hebbot.enable).
@ -176,6 +180,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `unrar` was updated to v7. See [changelog](https://www.rarlab.com/unrar7notes.htm) for more information.
- `git-town` was updated from version `11` to `13`. See the [changelog](https://github.com/git-town/git-town/blob/main/CHANGELOG.md#1300-2024-03-22) for breaking changes.
- `k9s` was updated to v0.31. There have been various breaking changes in the config file format,
check out the changelog of [v0.29](https://github.com/derailed/k9s/releases/tag/v0.29.0),
[v0.30](https://github.com/derailed/k9s/releases/tag/v0.30.0) and
@ -233,6 +239,16 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- The legacy and long deprecated systemd target `network-interfaces.target` has been removed. Use `network.target` instead.
- `azure-cli` now has extension support. For example, to install the `aks-preview` extension, use
```nix
environment.systemPackages = [
(azure-cli.withExtensions [ azure-cli.extensions.aks-preview ]);
];
```
To make the `azure-cli` immutable and prevent clashes in case `azure-cli` is also installed via other package managers, some configuration files were moved into the derivation.
This can be disabled by overriding `withImmutableConfig = false` when building `azure-cli`.
- `services.frp.settings` now generates the frp configuration file in TOML format as [recommended by upstream](https://github.com/fatedier/frp#configuration-files), instead of the legacy INI format. This has also introduced other changes in the configuration file structure and options.
- The `settings.common` section in the configuration is no longer valid and all the options form inside it now goes directly under `settings`.
- The `_` separating words in the configuration options is removed so the options are now in camel case. For example: `server_addr` becomes `serverAddr`, `server_port` becomes `serverPort` etc.
@ -285,6 +301,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- The `cudaPackages` package scope has been updated to `cudaPackages_12`.
- The `halloy` package was updated past 2024.5 which introduced a breaking change by switching the config format from YAML to TOML. See https://github.com/squidowl/halloy/releases/tag/2024.5 for details.
- Ada packages (libraries and tools) have been moved into the `gnatPackages` scope. `gnatPackages` uses the default GNAT compiler, `gnat12Packages` and `gnat13Packages` use the respective matching compiler version.
- `spark2014` has been renamed to `gnatprove`. A version of `gnatprove` matching different GNAT versions is available from the different `gnatPackages` sets.
@ -300,6 +318,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `xxd` has been moved from `vim` default output to its own output to reduce closure size. The canonical way to reference it across all platforms is `unixtools.xxd`.
- `programs.fzf.keybindings` and `programs.fzf.fuzzyCompletion` got replaced by `programs.fzf.enabled` as shell-completion is included in the fzf-binary now there is no easy option to load completion and keybindings separately. Please consult fzf-documentation on how to configure/disable certain keybindings.
- The `stalwart-mail` package has been updated to v0.5.3, which includes [breaking changes](https://github.com/stalwartlabs/mail-server/blob/v0.5.3/UPGRADING.md).
- `services.zope2` has been removed as `zope2` is unmaintained and was relying on Python2.
@ -379,12 +399,14 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
This means that configuration now has to be done using [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) instead of command line arguments.
This has the further implication that the `livebook` service configuration has changed:
- The `erlang_node_short_name`, `erlang_node_name`, `port` and `options` configuration parameters are gone, and have been replaced with an `environment` parameter.
- The `erlang_node_short_name`, `erlang_node_name`, `port` and `options` configuration parameters are gone, and have been replaced with an `environment` parameter.
Use the appropriate [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) inside `environment` to configure the service instead.
- The `crystal` package has been updated to 1.11.x, which has some breaking changes.
Refer to crystal's changelog for more information. ([v1.10](https://github.com/crystal-lang/crystal/blob/master/CHANGELOG.md#1100-2023-10-09), [v1.11](https://github.com/crystal-lang/crystal/blob/master/CHANGELOG.md#1110-2024-01-08))
- The `erlang-ls` package no longer ships the `els_dap` binary as of v0.51.0.
## Other Notable Changes {#sec-release-24.05-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@ -500,10 +522,13 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `services.kavita` now uses the freeform option `services.kavita.settings` for the application settings file.
The options `services.kavita.ipAdresses` and `services.kavita.port` now exist at `services.kavita.settings.IpAddresses`
and `services.kavita.settings.IpAddresses`.
and `services.kavita.settings.IpAddresses`. The file at `services.kavita.tokenKeyFile` now needs to contain a secret with
512+ bits instead of 128+ bits.
- The `krb5` module has been rewritten and moved to `security.krb5`, moving all options but `security.krb5.enable` and `security.krb5.package` into `security.krb5.settings`.
- `services.soju` now has a wrapper for the `sojuctl` command, pointed at the service config file. It also has the new option `adminSocket.enable`, which creates a unix admin socket at `/run/soju/admin`.
- Gitea 1.21 upgrade has several breaking changes, including:
- Custom themes and other assets that were previously stored in `custom/public/*` now belong in `custom/public/assets/*`
- New instances of Gitea using MySQL now ignore the `[database].CHARSET` config option and always use the `utf8mb4` charset, existing instances should migrate via the `gitea doctor convert` CLI command.

View File

@ -525,4 +525,9 @@ in rec {
)}
'';
# The maximum number of characters allowed in a GPT partition label. This
# limit is specified by UEFI and enforced by systemd-repart.
# Corresponds to GPT_LABEL_MAX from systemd's gpt.h.
GPTMaxLabelLength = 36;
}

View File

@ -10,7 +10,7 @@ in
options = {
users.mysql = {
enable = mkEnableOption (lib.mdDoc "Authentication against a MySQL/MariaDB database");
enable = mkEnableOption (lib.mdDoc "authentication against a MySQL/MariaDB database");
host = mkOption {
type = types.str;
example = "localhost";

View File

@ -15,7 +15,7 @@ in
options.xdg.portal.wlr = {
enable = mkEnableOption (lib.mdDoc ''
desktop portal for wlroots-based desktops
desktop portal for wlroots-based desktops.
This will add the `xdg-desktop-portal-wlr` package into
the {option}`xdg.portal.extraPortals` option, and provide the

View File

@ -11,7 +11,7 @@ in {
];
options.hardware.ksm = {
enable = mkEnableOption (lib.mdDoc "Kernel Same-Page Merging");
enable = mkEnableOption (lib.mdDoc "Linux kernel Same-Page Merging");
sleep = mkOption {
type = types.nullOr types.int;
default = null;

View File

@ -19,7 +19,7 @@ in
options.hardware.logitech = {
lcd = {
enable = mkEnableOption (lib.mdDoc "Logitech LCD Devices");
enable = mkEnableOption (lib.mdDoc "support for Logitech LCD Devices");
startWhenNeeded = mkOption {
type = types.bool;
@ -41,7 +41,7 @@ in
};
wireless = {
enable = mkEnableOption (lib.mdDoc "Logitech Wireless Devices");
enable = mkEnableOption (lib.mdDoc "support for Logitech Wireless Devices");
enableGraphical = mkOption {
type = types.bool;

View File

@ -12,7 +12,7 @@ in
{
options.hardware.mwProCapture.enable = mkEnableOption (lib.mdDoc "Magewell Pro Capture family kernel module");
options.hardware.mwProCapture.enable = mkEnableOption (lib.mdDoc "the Magewell Pro Capture family kernel module");
config = mkIf cfg.enable {

View File

@ -41,6 +41,25 @@
}:
let
systemdArch = let
inherit (stdenvNoCC) hostPlatform;
in
if hostPlatform.isAarch32 then "arm"
else if hostPlatform.isAarch64 then "arm64"
else if hostPlatform.isx86_32 then "x86"
else if hostPlatform.isx86_64 then "x86-64"
else if hostPlatform.isMips32 then "mips-le"
else if hostPlatform.isMips64 then "mips64-le"
else if hostPlatform.isPower then "ppc"
else if hostPlatform.isPower64 then "ppc64"
else if hostPlatform.isRiscV32 then "riscv32"
else if hostPlatform.isRiscV64 then "riscv64"
else if hostPlatform.isS390 then "s390"
else if hostPlatform.isS390x then "s390x"
else if hostPlatform.isLoongArch64 then "loongarch64"
else if hostPlatform.isAlpha then "alpha"
else hostPlatform.parsed.cpu.name;
amendRepartDefinitions = runCommand "amend-repart-definitions.py"
{
# TODO: ruff does not splice properly in nativeBuildInputs
@ -99,6 +118,7 @@ in
finalRepartDefinitions = "repart.d";
systemdRepartFlags = [
"--architecture=${systemdArch}"
"--dry-run=no"
"--size=auto"
"--seed=${seed}"

View File

@ -6,6 +6,8 @@
let
cfg = config.image.repart;
inherit (utils.systemdUtils.lib) GPTMaxLabelLength;
partitionOptions = {
options = {
storePaths = lib.mkOption {
@ -224,6 +226,42 @@ in
config = {
assertions = lib.mapAttrsToList (fileName: partitionConfig:
let
inherit (partitionConfig) repartConfig;
labelLength = builtins.stringLength repartConfig.Label;
in
{
assertion = repartConfig ? Label -> GPTMaxLabelLength >= labelLength;
message = ''
The partition label '${repartConfig.Label}'
defined for '${fileName}' is ${toString labelLength} characters long,
but the maximum label length supported by UEFI is ${toString
GPTMaxLabelLength}.
'';
}
) cfg.partitions;
warnings = lib.filter (v: v != null) (lib.mapAttrsToList (fileName: partitionConfig:
let
inherit (partitionConfig) repartConfig;
suggestedMaxLabelLength = GPTMaxLabelLength - 2;
labelLength = builtins.stringLength repartConfig.Label;
in
if (repartConfig ? Label && labelLength >= suggestedMaxLabelLength) then ''
The partition label '${repartConfig.Label}'
defined for '${fileName}' is ${toString labelLength} characters long.
The suggested maximum label length is ${toString
suggestedMaxLabelLength}.
If you use sytemd-sysupdate style A/B updates, this might
not leave enough space to increment the version number included in
the label in a future release. For example, if your label is
${toString GPTMaxLabelLength} characters long (the maximum enforced by UEFI) and
you're at version 9, you cannot increment this to 10.
'' else null
) cfg.partitions);
image.repart =
let
version = config.image.repart.version;

View File

@ -842,6 +842,7 @@
./services/monitoring/munin.nix
./services/monitoring/nagios.nix
./services/monitoring/netdata.nix
./services/monitoring/nezha-agent.nix
./services/monitoring/ocsinventory-agent.nix
./services/monitoring/opentelemetry-collector.nix
./services/monitoring/osquery.nix

View File

@ -5,7 +5,7 @@ with lib;
{
options = {
programs.appgate-sdp = {
enable = mkEnableOption (lib.mdDoc "AppGate SDP VPN client");
enable = mkEnableOption (lib.mdDoc "the AppGate SDP VPN client");
};
};

View File

@ -14,7 +14,7 @@ in
programs.atop = rec {
enable = mkEnableOption (lib.mdDoc "Atop");
enable = mkEnableOption (lib.mdDoc "Atop, a tool for monitoring system resources");
package = mkPackageOption pkgs "atop" { };

View File

@ -4,7 +4,7 @@ let
cfg = config.programs.bash.blesh;
in {
options = {
programs.bash.blesh.enable = mkEnableOption (mdDoc "blesh");
programs.bash.blesh.enable = mkEnableOption (mdDoc "blesh, a full-featured line editor written in pure Bash");
};
config = mkIf cfg.enable {

View File

@ -1,6 +1,6 @@
{ config, pkgs, lib, ... }:
{
options.programs.bcc.enable = lib.mkEnableOption (lib.mdDoc "bcc");
options.programs.bcc.enable = lib.mkEnableOption (lib.mdDoc "bcc, tools for BPF-based Linux IO analysis, networking, monitoring, and more");
config = lib.mkIf config.programs.bcc.enable {
environment.systemPackages = [ pkgs.bcc ];

View File

@ -49,7 +49,7 @@ in
options = {
programs.captive-browser = {
enable = mkEnableOption (lib.mdDoc "captive browser");
enable = mkEnableOption (lib.mdDoc "captive browser, a dedicated Chrome instance to log into captive portals without messing with DNS settings");
package = mkPackageOption pkgs "captive-browser" { };

View File

@ -5,7 +5,7 @@ let
in {
options.programs.ccache = {
# host configuration
enable = lib.mkEnableOption (lib.mdDoc "CCache");
enable = lib.mkEnableOption (lib.mdDoc "CCache, a compiler cache for fast recompilation of C/C++ code");
cacheDir = lib.mkOption {
type = lib.types.path;
description = lib.mdDoc "CCache directory";

View File

@ -40,7 +40,7 @@ let
in {
options.programs.firejail = {
enable = mkEnableOption (lib.mdDoc "firejail");
enable = mkEnableOption (lib.mdDoc "firejail, a sandboxing tool for Linux");
wrappedBinaries = mkOption {
type = types.attrsOf (types.either types.path (types.submodule {

View File

@ -1,32 +1,46 @@
{ pkgs, config, lib, ... }:
with lib;
let
cfg = config.programs.fzf;
in
{
options = {
programs.fzf = {
fuzzyCompletion = mkEnableOption (mdDoc "fuzzy completion with fzf");
keybindings = mkEnableOption (mdDoc "fzf keybindings");
};
};
config = {
environment.systemPackages = optional (cfg.keybindings || cfg.fuzzyCompletion) pkgs.fzf;
imports = [
(lib.mkRemovedOptionModule [ "programs" "fzf" "keybindings" ] ''
Use "programs.fzf.enabled" instead, due to fzf upstream-change it's not possible to load shell-completion and keybindings separately.
If you want to change/disable certain keybindings please check the fzf-documentation.
'')
(lib.mkRemovedOptionModule [ "programs" "fzf" "fuzzyCompletion" ] ''
Use "programs.fzf.enabled" instead, due to fzf upstream-change it's not possible to load shell-completion and keybindings separately.
If you want to change/disable certain keybindings please check the fzf-documentation.
'')
];
programs.bash.interactiveShellInit = optionalString cfg.fuzzyCompletion ''
source ${pkgs.fzf}/share/fzf/completion.bash
'' + optionalString cfg.keybindings ''
source ${pkgs.fzf}/share/fzf/key-bindings.bash
options = {
programs.fzf.enable = mkEnableOption (mdDoc "fuzzy completion with fzf and keybindings");
};
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.fzf ];
programs.bash.interactiveShellInit = ''
eval "$(${getExe pkgs.fzf} --bash)"
'';
programs.zsh.interactiveShellInit = optionalString (!config.programs.zsh.ohMyZsh.enable)
(optionalString cfg.fuzzyCompletion ''
source ${pkgs.fzf}/share/fzf/completion.zsh
'' + optionalString cfg.keybindings ''
source ${pkgs.fzf}/share/fzf/key-bindings.zsh
'');
programs.fish.interactiveShellInit = ''
${getExe pkgs.fzf} --fish | source
'';
programs.zsh.ohMyZsh.plugins = lib.mkIf (cfg.keybindings || cfg.fuzzyCompletion) [ "fzf" ];
programs.zsh = {
interactiveShellInit = optionalString (!config.programs.zsh.ohMyZsh.enable) ''
eval "$(${getExe pkgs.fzf} --zsh)"
'';
ohMyZsh.plugins = mkIf (config.programs.zsh.ohMyZsh.enable) [ "fzf" ];
};
};
meta.maintainers = with maintainers; [ laalsaas ];
}

View File

@ -21,7 +21,7 @@ with lib; let
in
{
options.programs.gamescope = {
enable = mkEnableOption (mdDoc "gamescope");
enable = mkEnableOption (mdDoc "gamescope, the SteamOS session compositing window manager");
package = mkPackageOption pkgs "gamescope" { };

View File

@ -11,7 +11,7 @@ in {
};
options = {
programs.geary.enable = mkEnableOption (lib.mdDoc "Geary, a Mail client for GNOME 3");
programs.geary.enable = mkEnableOption (lib.mdDoc "Geary, a Mail client for GNOME");
};
config = mkIf cfg.enable {

View File

@ -9,7 +9,7 @@ in
{
options = {
programs.git = {
enable = mkEnableOption (lib.mdDoc "git");
enable = mkEnableOption (lib.mdDoc "git, a distributed version control system");
package = mkPackageOption pkgs "git" {
example = "gitFull";
@ -59,7 +59,7 @@ in
};
lfs = {
enable = mkEnableOption (lib.mdDoc "git-lfs");
enable = mkEnableOption (lib.mdDoc "git-lfs (Large File Storage)");
package = mkPackageOption pkgs "git-lfs" { };
};

View File

@ -5,7 +5,7 @@ let
inherit (lib) mkEnableOption mkIf mkOption mkPackageOption optionalString types;
in {
options.programs.iay = {
enable = mkEnableOption (lib.mdDoc "iay");
enable = mkEnableOption (lib.mdDoc "iay, a minimalistic shell prompt");
package = mkPackageOption pkgs "iay" {};
minimalPrompt = mkOption {

View File

@ -35,7 +35,7 @@ in
# note that environment.nix sets PAGER=less, and
# therefore also enables this module
enable = mkEnableOption (lib.mdDoc "less");
enable = mkEnableOption (lib.mdDoc "less, a file pager");
configFile = mkOption {
type = types.nullOr types.path;

View File

@ -5,7 +5,7 @@ let
in
{
options.programs.mepo = {
enable = mkEnableOption (mdDoc "Mepo");
enable = mkEnableOption (mdDoc "Mepo, a fast, simple and hackable OSM map viewer");
locationBackends = {
gpsd = mkOption {

View File

@ -8,7 +8,7 @@ let
cfg = config.programs.mininet;
in
{
options.programs.mininet.enable = mkEnableOption (lib.mdDoc "Mininet");
options.programs.mininet.enable = mkEnableOption (lib.mdDoc "Mininet, an emulator for rapid prototyping of Software Defined Networks");
config = mkIf cfg.enable {

View File

@ -8,7 +8,7 @@ in
programs.minipro = {
enable = lib.mkEnableOption (lib.mdDoc "minipro") // {
description = lib.mdDoc ''
Installs minipro and its udev rules.
Whether to enable minipro and its udev rules.
Users of the `plugdev` group can interact with connected MiniPRO chip programmers.
'';
};

View File

@ -7,7 +7,7 @@ in
{
options = {
programs.nano = {
enable = lib.mkEnableOption (lib.mdDoc "nano") // {
enable = lib.mkEnableOption (lib.mdDoc "nano, a small user-friendly console text editor") // {
default = true;
};

View File

@ -6,7 +6,7 @@
};
options.programs.nm-applet = {
enable = lib.mkEnableOption (lib.mdDoc "nm-applet");
enable = lib.mkEnableOption (lib.mdDoc "nm-applet, a NetworkManager control applet for GNOME");
indicator = lib.mkOption {
type = lib.types.bool;

View File

@ -6,7 +6,7 @@ let cfg = config.programs.noisetorch;
in
{
options.programs.noisetorch = {
enable = mkEnableOption (lib.mdDoc "noisetorch + setcap wrapper");
enable = mkEnableOption (lib.mdDoc "noisetorch (+ setcap wrapper), a virtual microphone device with noise suppression");
package = mkPackageOption pkgs "noisetorch" { };
};

View File

@ -4,26 +4,28 @@ let
cfg = config.programs.oddjobd;
in
{
options.programs.oddjobd = {
enable = lib.mkEnableOption "oddjob";
package = lib.mkPackageOption pkgs "oddjob" {};
options = {
programs.oddjobd = {
enable = lib.mkEnableOption "oddjob, a D-Bus service which runs odd jobs on behalf of client applications";
package = lib.mkPackageOption pkgs "oddjob" {};
};
};
config = lib.mkIf cfg.enable {
systemd.packages = [ cfg.package ];
systemd.services.oddjobd = {
wantedBy = [ "multi-user.target"];
after = [ "network.target"];
wantedBy = [ "multi-user.target" ];
after = [ "network.target" "dbus.service" ];
description = "DBUS Odd-job Daemon";
enable = true;
documentation = [ "man:oddjobd(8)" "man:oddjobd.conf(5)" ];
serviceConfig = {
Type = "dbus";
BusName = "org.freedesktop.oddjob";
ExecStart = "${lib.getBin cfg.package}/bin/oddjobd";
Type = "simple";
PIDFile = "/run/oddjobd.pid";
ExecStart = "${lib.getBin cfg.package}/bin/oddjobd -n -p /run/oddjobd.pid -t 300";
};
};
services.dbus.packages = [ cfg.package ];
};
meta.maintainers = with lib.maintainers; [ SohamG ];

View File

@ -5,7 +5,7 @@ let
in
{
options.programs.projecteur = {
enable = lib.mkEnableOption (lib.mdDoc "projecteur");
enable = lib.mkEnableOption (lib.mdDoc "projecteur, an application for the Logitech Spotlight device (and similar)");
package = lib.mkPackageOption pkgs "projecteur" { };
};

View File

@ -49,7 +49,7 @@ in {
programs.proxychains = {
enable = mkEnableOption (lib.mdDoc "installing proxychains configuration");
enable = mkEnableOption (lib.mdDoc "proxychains configuration");
package = mkPackageOption pkgs "proxychains" {
example = "proxychains-ng";

View File

@ -24,7 +24,7 @@ let
'';
in {
options.programs.rust-motd = {
enable = mkEnableOption (lib.mdDoc "rust-motd");
enable = mkEnableOption (lib.mdDoc "rust-motd, a Message Of The Day (MOTD) generator");
enableMotdInSSHD = mkOption {
default = true;
type = types.bool;

View File

@ -6,7 +6,7 @@ let
cfg = config.programs.sedutil;
in {
options.programs.sedutil.enable = mkEnableOption (lib.mdDoc "sedutil");
options.programs.sedutil.enable = mkEnableOption (lib.mdDoc "sedutil, to manage self encrypting drives that conform to the Trusted Computing Group OPAL 2.0 SSC specification");
config = mkIf cfg.enable {
boot.kernelParams = [

View File

@ -7,7 +7,7 @@ in
{
options = {
programs.sniffnet = {
enable = lib.mkEnableOption (lib.mdDoc "sniffnet");
enable = lib.mkEnableOption (lib.mdDoc "sniffnet, a network traffic monitor application");
};
};

View File

@ -5,7 +5,7 @@ with lib;
let
cfg = config.programs.sysdig;
in {
options.programs.sysdig.enable = mkEnableOption (lib.mdDoc "sysdig");
options.programs.sysdig.enable = mkEnableOption (lib.mdDoc "sysdig, a tracing tool");
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.sysdig ];

View File

@ -16,7 +16,7 @@ in
{
options = {
programs.thefuck = {
enable = mkEnableOption (lib.mdDoc "thefuck");
enable = mkEnableOption (lib.mdDoc "thefuck, an app which corrects your previous console command");
alias = mkOption {
default = "fuck";

View File

@ -7,7 +7,7 @@ in
{
options = {
programs.trippy = {
enable = lib.mkEnableOption (lib.mdDoc "trippy");
enable = lib.mkEnableOption (lib.mdDoc "trippy, a network diagnostic tool");
};
};

View File

@ -6,7 +6,7 @@ let
cfg = config.programs.udevil;
in {
options.programs.udevil.enable = mkEnableOption (lib.mdDoc "udevil");
options.programs.udevil.enable = mkEnableOption (lib.mdDoc "udevil, to mount filesystems without password");
config = mkIf cfg.enable {
security.wrappers.udevil =

View File

@ -6,7 +6,7 @@ let
cfg = config.programs.usbtop;
in {
options = {
programs.usbtop.enable = mkEnableOption (lib.mdDoc "usbtop and required kernel module");
programs.usbtop.enable = mkEnableOption (lib.mdDoc "usbtop and required kernel module, to show estimated USB bandwidth");
};
config = mkIf cfg.enable {

View File

@ -13,8 +13,8 @@ in
{
options.programs.hyprland = {
enable = mkEnableOption null // {
description = mdDoc ''
Hyprland, the dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
description = ''
Whether to enable Hyprland, the dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
You can manually launch Hyprland by executing {command}`Hyprland` on a TTY.
@ -33,14 +33,24 @@ in
};
defaultText = literalExpression
"`programs.hyprland.package` with applied configuration";
description = mdDoc ''
description = ''
The Hyprland package after applying configuration.
'';
};
portalPackage = mkPackageOption pkgs "xdg-desktop-portal-hyprland" { };
xwayland.enable = mkEnableOption (mdDoc "XWayland") // { default = true; };
xwayland.enable = mkEnableOption ("XWayland") // { default = true; };
systemd.setPath.enable = mkEnableOption null // {
default = true;
example = false;
description = ''
Set environment path of systemd to include the current system's bin directory.
This is needed in Hyprland setups, where opening links in applications do not work.
Enabled by default.
'';
};
};
config = mkIf cfg.enable {
@ -63,6 +73,12 @@ in
extraPortals = [ finalPortalPackage ];
configPackages = mkDefault [ cfg.finalPackage ];
};
systemd = mkIf cfg.systemd.setPath.enable {
user.extraConfig = ''
DefaultEnvironment="PATH=$PATH:/run/current-system/sw/bin:/etc/profiles/per-user/$USER/bin:/run/wrappers/bin"
'';
};
};
imports = with lib; [

View File

@ -7,7 +7,7 @@ let
in
{
options.programs.waybar = {
enable = mkEnableOption (lib.mdDoc "waybar");
enable = mkEnableOption (lib.mdDoc "waybar, a highly customizable Wayland bar for Sway and Wlroots based compositors");
package = mkPackageOption pkgs "waybar" { };
};

View File

@ -7,7 +7,7 @@ let
in
{
options.programs.weylus = with types; {
enable = mkEnableOption (lib.mdDoc "weylus");
enable = mkEnableOption (lib.mdDoc "weylus, which turns your smart phone into a graphic tablet/touch screen for your computer");
openFirewall = mkOption {
type = bool;

View File

@ -40,6 +40,7 @@ in
"--"
cfg.lockerCommand
]);
serviceConfig.Restart = "always";
};
};
}

View File

@ -41,7 +41,7 @@ let
in
{
options.programs.yabar = {
enable = mkEnableOption (lib.mdDoc "yabar");
enable = mkEnableOption (lib.mdDoc "yabar, a status bar for X window managers");
package = mkOption {
default = pkgs.yabar-unstable;

View File

@ -6,7 +6,7 @@ let
cfg = config.programs.zmap;
in {
options.programs.zmap = {
enable = mkEnableOption (lib.mdDoc "ZMap");
enable = mkEnableOption (lib.mdDoc "ZMap, a network scanner designed for Internet-wide network surveys");
};
config = mkIf cfg.enable {

View File

@ -19,7 +19,7 @@ in
{
options = {
security.pki.installCACerts = mkEnableOption "Add CA certificates to system" // {
security.pki.installCACerts = mkEnableOption "installing CA certificates to the system" // {
default = true;
internal = true;
};

View File

@ -1430,12 +1430,12 @@ in
security.pam.enableEcryptfs = mkEnableOption (lib.mdDoc "eCryptfs PAM module (mounting ecryptfs home directory on login)");
security.pam.enableFscrypt = mkEnableOption (lib.mdDoc ''
fscrypt to automatically unlock directories with the user's login password.
fscrypt, to automatically unlock directories with the user's login password.
This also enables a service at security.pam.services.fscrypt which is used by
fscrypt to verify the user's password when setting up a new protector. If you
use something other than pam_unix to verify user passwords, please remember to
adjust this PAM service.
adjust this PAM service
'');
users.motd = mkOption {

View File

@ -20,7 +20,7 @@ in
{
options = {
services.salt.master = {
enable = mkEnableOption (lib.mdDoc "Salt master service");
enable = mkEnableOption (lib.mdDoc "Salt configuration management system master service");
configuration = mkOption {
type = types.attrs;
default = {};

View File

@ -21,7 +21,7 @@ in
{
options = {
services.salt.minion = {
enable = mkEnableOption (lib.mdDoc "Salt minion service");
enable = mkEnableOption (lib.mdDoc "Salt configuration management system minion service");
configuration = mkOption {
type = types.attrs;
default = {};

View File

@ -77,7 +77,7 @@ in {
options.services.mpdscribble = {
enable = mkEnableOption (lib.mdDoc "mpdscribble");
enable = mkEnableOption (lib.mdDoc "mpdscribble, an MPD client which submits info about tracks being played to Last.fm (formerly AudioScrobbler)");
proxy = mkOption {
default = null;

View File

@ -147,6 +147,9 @@ let
let
settings = { inherit (cfg) user group; };
in lib.nameValuePair "borgbackup-job-${name}" ({
# Create parent dirs separately, to ensure correct ownership.
"${config.users.users."${cfg.user}".home}/.config".d = settings;
"${config.users.users."${cfg.user}".home}/.cache".d = settings;
"${config.users.users."${cfg.user}".home}/.config/borg".d = settings;
"${config.users.users."${cfg.user}".home}/.cache/borg".d = settings;
} // optionalAttrs (isLocalPath cfg.repo && !cfg.removableDevice) {

View File

@ -43,7 +43,7 @@ in {
enable = mkEnableOption (lib.mdDoc ''
HBase master in standalone mode with embedded regionserver and zookeper.
Do not use this configuration for production nor for evaluating HBase performance.
Do not use this configuration for production nor for evaluating HBase performance
'');
package = mkPackageOption pkgs "hbase" { };

View File

@ -6,7 +6,7 @@ let
in
{
options.services.lldap = with lib; {
enable = mkEnableOption (mdDoc "lldap");
enable = mkEnableOption (mdDoc "lldap, a lightweight authentication server that provides an opinionated, simplified LDAP interface for authentication");
package = mkPackageOption pkgs "lldap" { };

View File

@ -2,7 +2,7 @@
let cfg = config.services.victoriametrics; in
{
options.services.victoriametrics = with lib; {
enable = mkEnableOption (lib.mdDoc "victoriametrics");
enable = mkEnableOption (lib.mdDoc "VictoriaMetrics, a time series database, long-term remote storage for Prometheus");
package = mkPackageOption pkgs "victoriametrics" { };
listenAddress = mkOption {
default = ":8428";

View File

@ -170,7 +170,7 @@ in {
breeze.qt5
plasma-integration.qt5
pkgs.plasma5Packages.kwayland-integration
pkgs.plasma5Packages.kio
(pkgs.plasma5Packages.kio.override { withKcms = false; })
kio-extras-kf5
]
# Optional hardware support features

View File

@ -9,7 +9,7 @@ in {
###### interface
options = {
services.blueman = {
enable = mkEnableOption (lib.mdDoc "blueman");
enable = mkEnableOption (lib.mdDoc "blueman, a bluetooth manager");
};
};

View File

@ -15,7 +15,7 @@ with lib;
services.deepin.dde-api = {
enable = mkEnableOption (lib.mdDoc ''
some dbus interfaces that is used for screen zone detecting,
the DDE API, which provides some dbus interfaces that is used for screen zone detecting,
thumbnail generating, and sound playing in Deepin Desktop Environment
'');

View File

@ -7,7 +7,7 @@ with lib;
###### interface
options = {
services.neard = {
enable = mkEnableOption (lib.mdDoc "neard, NFC daemon");
enable = mkEnableOption (lib.mdDoc "neard, an NFC daemon");
};
};

View File

@ -14,7 +14,7 @@ with lib;
options = {
services.zeitgeist = {
enable = mkEnableOption (lib.mdDoc "zeitgeist");
enable = mkEnableOption (lib.mdDoc "zeitgeist, a service which logs the users' activities and events");
};
};

View File

@ -8,7 +8,7 @@ in
{
options = {
services.distccd = {
enable = mkEnableOption (lib.mdDoc "distccd");
enable = mkEnableOption (lib.mdDoc "distccd, a distributed C/C++ compiler");
allowedClients = mkOption {
type = types.listOf types.str;

View File

@ -24,7 +24,7 @@ let
in
{
options.services.gemstash = {
enable = mkEnableOption (lib.mdDoc "gemstash service");
enable = mkEnableOption (lib.mdDoc "gemstash, a cache for rubygems.org and a private gem server");
openFirewall = mkOption {
type = types.bool;

View File

@ -8,7 +8,7 @@ let
in
{
options.services.greetd = {
enable = mkEnableOption (lib.mdDoc "greetd");
enable = mkEnableOption (lib.mdDoc "greetd, a minimal and flexible login manager daemon");
package = mkPackageOption pkgs [ "greetd" "greetd" ] { };

View File

@ -9,7 +9,7 @@ in
{
options = {
services.odoo = {
enable = mkEnableOption (lib.mdDoc "odoo");
enable = mkEnableOption (lib.mdDoc "odoo, an open source ERP and CRM system");
package = mkPackageOption pkgs "odoo" { };

View File

@ -22,7 +22,7 @@ in
{
options = {
services.mchprs = {
enable = mkEnableOption "MCHPRS";
enable = mkEnableOption "MCHPRS, a Minecraft server";
declarativeSettings = mkOption {
type = types.bool;

View File

@ -7,7 +7,7 @@ in
{
options = {
services.openarena = {
enable = mkEnableOption (lib.mdDoc "OpenArena");
enable = mkEnableOption (lib.mdDoc "OpenArena game server");
package = lib.mkPackageOption pkgs "openarena" { };
openPorts = mkOption {

View File

@ -151,7 +151,7 @@ let
in
{
options.services.kanata = {
enable = mkEnableOption (mdDoc "kanata");
enable = mkEnableOption (mdDoc "kanata, a tool to improve keyboard comfort and usability with advanced customization");
package = mkPackageOption pkgs "kanata" {
example = "kanata-with-cmd";
extraDescription = ''

View File

@ -11,7 +11,7 @@ in {
options = {
services.lirc = {
enable = mkEnableOption (lib.mdDoc "LIRC daemon");
enable = mkEnableOption (lib.mdDoc "the LIRC daemon, to receive and send infrared signals");
options = mkOption {
type = types.lines;

View File

@ -6,7 +6,7 @@ let
cfg = config.services.hardware.openrgb;
in {
options.services.hardware.openrgb = {
enable = mkEnableOption (lib.mdDoc "OpenRGB server");
enable = mkEnableOption (lib.mdDoc "OpenRGB server, for RGB lighting control");
package = mkPackageOption pkgs "openrgb" { };

View File

@ -18,7 +18,7 @@ let
in
{
options.services.pcscd = {
enable = mkEnableOption (lib.mdDoc "PCSC-Lite daemon");
enable = mkEnableOption (lib.mdDoc "PCSC-Lite daemon, to access smart cards using SCard API (PC/SC)");
plugins = mkOption {
type = types.listOf types.package;

View File

@ -200,7 +200,7 @@ in
};
services.udev = {
enable = mkEnableOption (lib.mdDoc "udev") // {
enable = mkEnableOption (lib.mdDoc "udev, a device manager for the Linux kernel") // {
default = true;
};

View File

@ -37,7 +37,7 @@ in
enable = mkEnableOption (lib.mdDoc ''
Undervolting service for Intel CPUs.
Warning: This service is not endorsed by Intel and may permanently damage your hardware. Use at your own risk!
Warning: This service is not endorsed by Intel and may permanently damage your hardware. Use at your own risk
'');
verbose = mkOption {

View File

@ -9,7 +9,7 @@ in
options = {
services.vdr = {
enable = mkEnableOption (mdDoc "Start VDR");
enable = mkEnableOption (mdDoc "VDR, a video disk recorder");
package = mkPackageOption pkgs "vdr" {
example = "wrapVdr.override { plugins = with pkgs.vdrPlugins; [ hello ]; }";

View File

@ -44,7 +44,7 @@ in
meta.maintainers = with maintainers; [ nathan-gs ];
options.services.ebusd = {
enable = mkEnableOption (lib.mdDoc "ebusd service");
enable = mkEnableOption (lib.mdDoc "ebusd, a daemon for communication with eBUS heating systems");
device = mkOption {
type = types.str;

View File

@ -24,7 +24,7 @@ in
meta.maintainers = with maintainers; [ oddlama ];
options.services.esphome = {
enable = mkEnableOption (mdDoc "esphome");
enable = mkEnableOption (mdDoc "esphome, for making custom firmwares for ESP32/ESP8266");
package = lib.mkPackageOption pkgs "esphome" { };

View File

@ -95,7 +95,7 @@ in
];
options.services.awstats = {
enable = mkEnableOption (lib.mdDoc "awstats");
enable = mkEnableOption (lib.mdDoc "awstats, a real-time logfile analyzer");
dataDir = mkOption {
type = types.path;

View File

@ -12,7 +12,7 @@ in {
options = {
services.fluentd = {
enable = mkEnableOption (lib.mdDoc "fluentd");
enable = mkEnableOption (lib.mdDoc "fluentd, a data/log collector");
config = mkOption {
type = types.lines;

View File

@ -33,7 +33,7 @@ in
services.graylog = {
enable = mkEnableOption (lib.mdDoc "Graylog");
enable = mkEnableOption (lib.mdDoc "Graylog, a log management solution");
package = mkOption {
type = types.package;

View File

@ -18,7 +18,7 @@ in
services.heartbeat = {
enable = mkEnableOption (lib.mdDoc "heartbeat");
enable = mkEnableOption (lib.mdDoc "heartbeat, uptime monitoring");
package = mkPackageOption pkgs "heartbeat" {
example = "heartbeat7";

View File

@ -109,7 +109,7 @@ in
{
options = {
services.logcheck = {
enable = mkEnableOption (lib.mdDoc "logcheck cron job");
enable = mkEnableOption (lib.mdDoc "logcheck cron job, to mail anomalies in the system logfiles to the administrator");
user = mkOption {
default = "logcheck";

View File

@ -8,7 +8,7 @@ let
in {
options = {
services.ulogd = {
enable = mkEnableOption (lib.mdDoc "ulogd");
enable = mkEnableOption (lib.mdDoc "ulogd, a userspace logging daemon for netfilter/iptables related logging");
settings = mkOption {
example = {

View File

@ -6,7 +6,7 @@ let cfg = config.services.vector;
in
{
options.services.vector = {
enable = mkEnableOption (lib.mdDoc "Vector");
enable = mkEnableOption (lib.mdDoc "Vector, a high-performance observability data pipeline");
package = mkPackageOption pkgs "vector" { };

View File

@ -8,7 +8,7 @@ let
in
{
options.services.goeland = {
enable = mkEnableOption (mdDoc "goeland");
enable = mkEnableOption (mdDoc "goeland, an alternative to rss2email");
settings = mkOption {
description = mdDoc ''

View File

@ -11,7 +11,7 @@ in
options = {
services.mailcatcher = {
enable = mkEnableOption (lib.mdDoc "MailCatcher");
enable = mkEnableOption (lib.mdDoc "MailCatcher, an SMTP server and web interface to locally test outbound emails");
http.ip = mkOption {
type = types.str;

View File

@ -27,7 +27,7 @@ in
options = {
services.mailhog = {
enable = mkEnableOption (lib.mdDoc "MailHog");
enable = mkEnableOption (lib.mdDoc "MailHog, web and API based SMTP testing");
storage = mkOption {
type = types.enum [ "maildir" "memory" ];

Some files were not shown because too many files have changed in this diff Show More