mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 15:03:28 +00:00
Merge branch 'staging-next' into staging
This commit is contained in:
commit
3f59355d84
24
.github/workflows/check-cherry-picks.yml
vendored
Normal file
24
.github/workflows/check-cherry-picks.yml
vendored
Normal 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"
|
@ -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
|
||||
|
@ -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
|
||||
|
37
doc/packages/krita.section.md
Normal file
37
doc/packages/krita.section.md
Normal 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
|
||||
```
|
@ -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"
|
||||
```
|
||||
|
@ -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}
|
||||
|
||||
|
@ -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**:
|
||||
|
@ -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";
|
||||
|
@ -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";
|
||||
|
92
maintainers/scripts/check-cherry-picks.sh
Executable file
92
maintainers/scripts/check-cherry-picks.sh
Executable 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
|
@ -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,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
|
||||
|
@ -351,6 +351,7 @@ with lib.maintainers; {
|
||||
geospatial = {
|
||||
members = [
|
||||
imincik
|
||||
l0b0
|
||||
nh2
|
||||
nialov
|
||||
sikmir
|
||||
|
@ -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
|
||||
```
|
||||
|
@ -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).
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
||||
}
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 {
|
||||
|
||||
|
@ -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}"
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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");
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -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" { };
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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 ];
|
||||
|
@ -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" { };
|
||||
|
||||
|
@ -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";
|
||||
|
@ -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 {
|
||||
|
@ -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 ];
|
||||
}
|
||||
|
@ -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" { };
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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" { };
|
||||
};
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
|
@ -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 {
|
||||
|
@ -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 {
|
||||
|
||||
|
@ -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.
|
||||
'';
|
||||
};
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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" { };
|
||||
};
|
||||
|
@ -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 ];
|
||||
|
@ -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" { };
|
||||
};
|
||||
|
||||
|
@ -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";
|
||||
|
@ -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;
|
||||
|
@ -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 = [
|
||||
|
@ -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");
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -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 ];
|
||||
|
@ -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";
|
||||
|
@ -7,7 +7,7 @@ in
|
||||
{
|
||||
options = {
|
||||
programs.trippy = {
|
||||
enable = lib.mkEnableOption (lib.mdDoc "trippy");
|
||||
enable = lib.mkEnableOption (lib.mdDoc "trippy, a network diagnostic tool");
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -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 =
|
||||
|
@ -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 {
|
||||
|
@ -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; [
|
||||
|
@ -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" { };
|
||||
};
|
||||
|
||||
|
@ -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;
|
||||
|
@ -40,6 +40,7 @@ in
|
||||
"--"
|
||||
cfg.lockerCommand
|
||||
]);
|
||||
serviceConfig.Restart = "always";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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 {
|
||||
|
@ -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 = {};
|
||||
|
@ -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 = {};
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
@ -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" { };
|
||||
|
@ -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" { };
|
||||
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
|
@ -9,7 +9,7 @@ in {
|
||||
###### interface
|
||||
options = {
|
||||
services.blueman = {
|
||||
enable = mkEnableOption (lib.mdDoc "blueman");
|
||||
enable = mkEnableOption (lib.mdDoc "blueman, a bluetooth manager");
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
'');
|
||||
|
||||
|
@ -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");
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -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");
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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" ] { };
|
||||
|
||||
|
@ -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" { };
|
||||
|
||||
|
@ -22,7 +22,7 @@ in
|
||||
{
|
||||
options = {
|
||||
services.mchprs = {
|
||||
enable = mkEnableOption "MCHPRS";
|
||||
enable = mkEnableOption "MCHPRS, a Minecraft server";
|
||||
|
||||
declarativeSettings = mkOption {
|
||||
type = types.bool;
|
||||
|
@ -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 {
|
||||
|
@ -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 = ''
|
||||
|
@ -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;
|
||||
|
@ -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" { };
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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 ]; }";
|
||||
|
@ -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;
|
||||
|
@ -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" { };
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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";
|
||||
|
@ -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";
|
||||
|
@ -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 = {
|
||||
|
@ -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" { };
|
||||
|
||||
|
@ -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 ''
|
||||
|
@ -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;
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user