diff --git a/third_party/nixpkgs/.git-blame-ignore-revs b/third_party/nixpkgs/.git-blame-ignore-revs
index 15be142ef0..9564ce907f 100644
--- a/third_party/nixpkgs/.git-blame-ignore-revs
+++ b/third_party/nixpkgs/.git-blame-ignore-revs
@@ -36,3 +36,6 @@ d08ede042b74b8199dc748323768227b88efcf7c
# fix indentation in mk-python-derivation.nix
d1c1a0c656ccd8bd3b25d3c4287f2d075faf3cf3
+
+# fix indentation in meteor default.nix
+f76b359e4a55267ddd4e9e149e7cc13ae5cad98a
diff --git a/third_party/nixpkgs/.github/CODEOWNERS b/third_party/nixpkgs/.github/CODEOWNERS
index c7aa63d40f..659433b4e6 100644
--- a/third_party/nixpkgs/.github/CODEOWNERS
+++ b/third_party/nixpkgs/.github/CODEOWNERS
@@ -108,9 +108,9 @@
/pkgs/top-level/haskell-packages.nix @cdepillabout @sternenseemann @maralorn
# Perl
-/pkgs/development/interpreters/perl @stigtsp @zakame
-/pkgs/top-level/perl-packages.nix @stigtsp @zakame
-/pkgs/development/perl-modules @stigtsp @zakame
+/pkgs/development/interpreters/perl @stigtsp @zakame @dasJ
+/pkgs/top-level/perl-packages.nix @stigtsp @zakame @dasJ
+/pkgs/development/perl-modules @stigtsp @zakame @dasJ
# R
/pkgs/applications/science/math/R @jbedo
diff --git a/third_party/nixpkgs/CONTRIBUTING.md b/third_party/nixpkgs/CONTRIBUTING.md
index fb5e5b5459..4c4bea0ae2 100644
--- a/third_party/nixpkgs/CONTRIBUTING.md
+++ b/third_party/nixpkgs/CONTRIBUTING.md
@@ -62,25 +62,26 @@ many CODEOWNERS will be inadvertently requested for review. To achieve this,
rebasing should not be performed directly on the target branch, but on the merge
base between the current and target branch.
-In the following example, we see a rebase from `master` onto the merge base
-between `master` and `staging`, so that a change can eventually be retargeted to
-`staging`. The example uses `upstream` as the remote for `NixOS/nixpkgs.git`
-while the `origin` remote is used for the remote you are pushing to.
+In the following example, we assume that the current branch, called `feature`,
+is based on `master`, and we rebase it onto the merge base between
+`master` and `staging` so that the PR can eventually be retargeted to
+`staging` without causing a mess. The example uses `upstream` as the remote for `NixOS/nixpkgs.git`
+while `origin` is the remote you are pushing to.
```console
-# Find the common base between two branches
-common=$(git merge-base upstream/master upstream/staging)
-# Find the common base between your feature branch and master
-commits=$(git merge-base $(git branch --show-current) upstream/master)
-# Rebase all commits onto the common base
-git rebase --onto=$common $commits
+# Rebase your commits onto the common merge base
+git rebase --onto upstream/staging... upstream/master
# Force push your changes
-git push origin $(git branch --show-current) --force-with-lease
+git push origin feature --force-with-lease
```
+The syntax `upstream/staging...` is equivalent to `upstream/staging...HEAD` and
+stands for the merge base between `upstream/staging` and `HEAD` (hence between
+`upstream/staging` and `upstream/master`).
+
Then change the base branch in the GitHub PR using the *Edit* button in the upper
-right corner, and switch from `master` to `staging`. After the PR has been
+right corner, and switch from `master` to `staging`. *After* the PR has been
retargeted it might be necessary to do a final rebase onto the target branch, to
resolve any outstanding merge conflicts.
@@ -90,7 +91,7 @@ git rebase upstream/staging
# Review and fixup possible conflicts
git status
# Force push your changes
-git push origin $(git branch --show-current) --force-with-lease
+git push origin feature --force-with-lease
```
## Backporting changes
diff --git a/third_party/nixpkgs/doc/builders/fetchers.chapter.md b/third_party/nixpkgs/doc/builders/fetchers.chapter.md
index 947afe8e9f..12d8a5d887 100644
--- a/third_party/nixpkgs/doc/builders/fetchers.chapter.md
+++ b/third_party/nixpkgs/doc/builders/fetchers.chapter.md
@@ -91,7 +91,7 @@ Used with Git. Expects `url` to a Git repo, `rev`, and `sha256`. `rev` in this c
Additionally, the following optional arguments can be given: `fetchSubmodules = true` makes `fetchgit` also fetch the submodules of a repository. If `deepClone` is set to true, the entire repository is cloned as opposing to just creating a shallow clone. `deepClone = true` also implies `leaveDotGit = true` which means that the `.git` directory of the clone won't be removed after checkout.
-If only parts of the repository are needed, `sparseCheckout` can be used. This will prevent git from fetching unnecessary blobs from server, see [git sparse-checkout](https://git-scm.com/docs/git-sparse-checkout) and [git clone --filter](https://git-scm.com/docs/git-clone#Documentation/git-clone.txt---filterltfilter-specgt) for more information:
+If only parts of the repository are needed, `sparseCheckout` can be used. This will prevent git from fetching unnecessary blobs from server, see [git sparse-checkout](https://git-scm.com/docs/git-sparse-checkout) for more information:
```nix
{ stdenv, fetchgit }:
@@ -101,8 +101,8 @@ stdenv.mkDerivation {
src = fetchgit {
url = "https://...";
sparseCheckout = ''
- path/to/be/included
- another/path
+ directory/to/be/included
+ another/directory
'';
sha256 = "0000000000000000000000000000000000000000000000000000";
};
diff --git a/third_party/nixpkgs/doc/builders/images/dockertools.section.md b/third_party/nixpkgs/doc/builders/images/dockertools.section.md
index d8deb6cfbc..6fdd4b5cad 100644
--- a/third_party/nixpkgs/doc/builders/images/dockertools.section.md
+++ b/third_party/nixpkgs/doc/builders/images/dockertools.section.md
@@ -36,6 +36,9 @@ buildImage {
WorkingDir = "/data";
Volumes = { "/data" = { }; };
};
+
+ diskSize = 1024;
+ buildVMMemorySize = 512;
}
```
@@ -59,6 +62,10 @@ The above example will build a Docker image `redis/latest` from the given base i
- `config` is used to specify the configuration of the containers that will be started off the built image in Docker. The available options are listed in the [Docker Image Specification v1.2.0](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions).
+- `diskSize` is used to specify the disk size of the VM used to build the image in megabytes. By default it's 1024 MiB.
+
+- `buildVMMemorySize` is used to specify the memory size of the VM to build the image in megabytes. By default it's 512 MiB.
+
After the new layer has been created, its closure (to which `contents`, `config` and `runAsRoot` contribute) will be copied in the layer itself. Only new dependencies that are not already in the existing layers will be copied.
At the end of the process, only one new single layer will be produced and added to the resulting image.
diff --git a/third_party/nixpkgs/doc/stdenv/stdenv.chapter.md b/third_party/nixpkgs/doc/stdenv/stdenv.chapter.md
index b4cc50b509..fa61973263 100644
--- a/third_party/nixpkgs/doc/stdenv/stdenv.chapter.md
+++ b/third_party/nixpkgs/doc/stdenv/stdenv.chapter.md
@@ -871,12 +871,27 @@ Constructs a wrapper for a program with various possible arguments. It is define
# adds `FOOBAR=baz` to `$out/bin/foo`’s environment
makeWrapper $out/bin/foo $wrapperfile --set FOOBAR baz
-# prefixes the binary paths of `hello` and `git`
+# Prefixes the binary paths of `hello` and `git`
+# and suffixes the binary path of `xdg-utils`.
# Be advised that paths often should be patched in directly
# (via string replacements or in `configurePhase`).
-makeWrapper $out/bin/foo $wrapperfile --prefix PATH : ${lib.makeBinPath [ hello git ]}
+makeWrapper $out/bin/foo $wrapperfile \
+ --prefix PATH : ${lib.makeBinPath [ hello git ]} \
+ --suffix PATH : ${lib.makeBinPath [ xdg-utils ]}
```
+Packages may expect or require other utilities to be available at runtime.
+`makeWrapper` can be used to add packages to a `PATH` environment variable local to a wrapper.
+
+Use `--prefix` to explicitly set dependencies in `PATH`.
+
+:::{note}
+`--prefix` essentially hard-codes dependencies into the wrapper.
+They cannot be overridden without rebuilding the package.
+:::
+
+If dependencies should be resolved at runtime, use `--suffix` to append fallback values to `PATH`.
+
There’s many more kinds of arguments, they are documented in `nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh` for the `makeWrapper` implementation and in `nixpkgs/pkgs/build-support/setup-hooks/make-binary-wrapper/make-binary-wrapper.sh` for the `makeBinaryWrapper` implementation.
`wrapProgram` is a convenience function you probably want to use most of the time, implemented by both `makeWrapper` and `makeBinaryWrapper`.
diff --git a/third_party/nixpkgs/lib/lists.nix b/third_party/nixpkgs/lib/lists.nix
index 36056e1806..602b13cf69 100644
--- a/third_party/nixpkgs/lib/lists.nix
+++ b/third_party/nixpkgs/lib/lists.nix
@@ -36,7 +36,7 @@ rec {
forEach = xs: f: map f xs;
/* “right fold” a binary function `op` between successive elements of
- `list` with `nul' as the starting value, i.e.,
+ `list` with `nul` as the starting value, i.e.,
`foldr op nul [x_1 x_2 ... x_n] == op x_1 (op x_2 ... (op x_n nul))`.
Type: foldr :: (a -> b -> b) -> b -> [a] -> b
diff --git a/third_party/nixpkgs/maintainers/maintainer-list.nix b/third_party/nixpkgs/maintainers/maintainer-list.nix
index f5ec01fab6..4db1f6d80e 100644
--- a/third_party/nixpkgs/maintainers/maintainer-list.nix
+++ b/third_party/nixpkgs/maintainers/maintainer-list.nix
@@ -1359,6 +1359,12 @@
githubId = 9315;
name = "Zhong Jianxin";
};
+ a-kenji = {
+ email = "aks.kenji@protonmail.com";
+ github = "a-kenji";
+ githubId = 65275785;
+ name = "Alexander Kenji Berthold";
+ };
b4dm4n = {
email = "fabianm88@gmail.com";
github = "B4dM4n";
@@ -1778,7 +1784,7 @@
};
booklearner = {
name = "booklearner";
- email = "hey@booklearner.org";
+ email = "booklearner@proton.me";
matrix = "@booklearner:matrix.org";
github = "booklearner";
githubId = 103979114;
@@ -3738,6 +3744,12 @@
githubId = 537775;
name = "Emery Hemingway";
};
+ eigengrau = {
+ email = "seb@schattenkopie.de";
+ name = "Sebastian Reuße";
+ github = "eigengrau";
+ githubId = 4939947;
+ };
eikek = {
email = "eike.kettner@posteo.de";
github = "eikek";
@@ -4661,6 +4673,12 @@
githubId = 37017396;
name = "gbtb";
};
+ gdinh = {
+ email = "nix@contact.dinh.ai";
+ github = "gdinh";
+ githubId = 34658064;
+ name = "Grace Dinh";
+ };
gebner = {
email = "gebner@gebner.org";
github = "gebner";
@@ -6337,6 +6355,16 @@
}];
name = "Ioannis Koutras";
};
+ jonaenz = {
+ name = "Jona Enzinger";
+ email = "5xt3zyy5l@mozmail.com";
+ matrix = "@jona:matrix.jonaenz.de";
+ github = "jonaenz";
+ githubId = 57130301;
+ keys = [{
+ fingerprint = "1CC5 B67C EB9A 13A5 EDF6 F10E 0B4A 3662 FC58 9202";
+ }];
+ };
jonafato = {
email = "jon@jonafato.com";
github = "jonafato";
@@ -6783,6 +6811,12 @@
githubId = 2029444;
name = "James Kent";
};
+ kephasp = {
+ email = "pierre@nothos.net";
+ github = "kephas";
+ githubId = 762421;
+ name = "Pierre Thierry";
+ };
ketzacoatl = {
email = "ketzacoatl@protonmail.com";
github = "ketzacoatl";
@@ -7250,7 +7284,7 @@
};
lassulus = {
email = "lassulus@gmail.com";
- matrix = "@lassulus:nixos.dev";
+ matrix = "@lassulus:lassul.us";
github = "Lassulus";
githubId = 621759;
name = "Lassulus";
@@ -7944,6 +7978,12 @@
githubId = 31056089;
name = "Tom Ho";
};
+ majewsky = {
+ email = "majewsky@gmx.net";
+ github = "majewsky";
+ githubId = 24696;
+ name = "Stefan Majewsky";
+ };
majiir = {
email = "majiir@nabaal.net";
github = "Majiir";
@@ -8160,6 +8200,15 @@
githubId = 427866;
name = "Matthias Beyer";
};
+ MatthieuBarthel = {
+ email = "matthieu@imatt.ch";
+ name = "Matthieu Barthel";
+ github = "MatthieuBarthel";
+ githubId = 435534;
+ keys = [{
+ fingerprint = "80EB 0F2B 484A BB80 7BEF 4145 BA23 F10E AADC 2E26";
+ }];
+ };
matthuszagh = {
email = "huszaghmatt@gmail.com";
github = "matthuszagh";
@@ -8466,6 +8515,15 @@
githubId = 9980864;
name = "Max Hofer";
};
+ miangraham = {
+ email = "miangraham@users.noreply.github.com";
+ github = "miangraham";
+ githubId = 704580;
+ name = "M. Ian Graham";
+ keys = [{
+ fingerprint = "8CE3 2906 516F C4D8 D373 308A E189 648A 55F5 9A9F";
+ }];
+ };
mic92 = {
email = "joerg@thalheim.io";
matrix = "@mic92:nixos.dev";
@@ -8788,6 +8846,13 @@
fingerprint = "1248 D3E1 1D11 4A85 75C9 8934 6794 D45A 488C 2EDE";
}];
};
+ monaaraj = {
+ name = "Mon Aaraj";
+ email = "owo69uwu69@gmail.com";
+ matrix = "@mon:tchncs.de";
+ github = "MonAaraj";
+ githubId = 46468162;
+ };
monsieurp = {
email = "monsieurp@gentoo.org";
github = "monsieurp";
@@ -10141,6 +10206,16 @@
fingerprint = "5D69 CF04 B7BC 2BC1 A567 9267 00BC F29B 3208 0700";
}];
};
+ phfroidmont = {
+ name = "Paul-Henri Froidmont";
+ email = "nix.contact-j9dw4d@froidmont.org";
+
+ github = "phfroidmont";
+ githubId = 8150907;
+ keys = [{
+ fingerprint = "3AC6 F170 F011 33CE 393B CD94 BE94 8AFD 7E78 73BE";
+ }];
+ };
philandstuff = {
email = "philip.g.potter@gmail.com";
github = "philandstuff";
@@ -13451,6 +13526,15 @@
githubId = 619015;
name = "Svintsov Dmitry";
};
+ urandom = {
+ email = "colin@urandom.co.uk";
+ github = "arnottcr";
+ githubId = 2526260;
+ keys = [{
+ fingerprint = "04A3 A2C6 0042 784A AEA7 D051 0447 A663 F7F3 E236";
+ }];
+ name = "Colin Arnott";
+ };
urbas = {
email = "matej.urbas@gmail.com";
github = "urbas";
@@ -13662,6 +13746,12 @@
githubId = 118959;
name = "VinyMeuh";
};
+ virchau13 = {
+ email = "virchau13@hexular.net";
+ github = "virchau13";
+ githubId = 16955157;
+ name = "Vir Chaudhury";
+ };
viraptor = {
email = "nix@viraptor.info";
github = "viraptor";
@@ -13813,6 +13903,12 @@
github = "wamserma";
githubId = 60148;
};
+ water-sucks = {
+ email = "varun@cvte.org";
+ name = "Varun Narravula";
+ github = "water-sucks";
+ githubId = 68445574;
+ };
waynr = {
name = "Wayne Warren";
email = "wayne.warren.s@gmail.com";
@@ -14015,6 +14111,15 @@
github = "wr0belj";
githubId = 40501814;
};
+ wrmilling = {
+ name = "Winston R. Milling";
+ email = "Winston@Milli.ng";
+ github = "WRMilling";
+ githubId = 6162814;
+ keys = [{
+ fingerprint = "21E1 6B8D 2EE8 7530 6A6C 9968 D830 77B9 9F8C 6643";
+ }];
+ };
wscott = {
email = "wsc9tt@gmail.com";
github = "wscott";
diff --git a/third_party/nixpkgs/maintainers/scripts/rebuild-amount.sh b/third_party/nixpkgs/maintainers/scripts/rebuild-amount.sh
index bedd352db5..32810f6b98 100755
--- a/third_party/nixpkgs/maintainers/scripts/rebuild-amount.sh
+++ b/third_party/nixpkgs/maintainers/scripts/rebuild-amount.sh
@@ -35,7 +35,7 @@ toRemove=()
cleanup() {
rm -rf "${toRemove[@]}"
}
-trap cleanup EXIT SIGINT SIGQUIT ERR
+trap cleanup EXIT
MKTEMP='mktemp --tmpdir nix-rebuild-amount-XXXXXXXX'
diff --git a/third_party/nixpkgs/nixos/doc/manual/from_md/installation/installing.chapter.xml b/third_party/nixpkgs/nixos/doc/manual/from_md/installation/installing.chapter.xml
index 0fcbcf2e66..0112458674 100644
--- a/third_party/nixpkgs/nixos/doc/manual/from_md/installation/installing.chapter.xml
+++ b/third_party/nixpkgs/nixos/doc/manual/from_md/installation/installing.chapter.xml
@@ -177,17 +177,17 @@ OK
the boot partition.
-# parted /dev/sda -- mkpart primary 512MiB -8GiB
+# parted /dev/sda -- mkpart primary 512MB -8GB
Next, add a swap partition. The size
- required will vary according to needs, here a 8GiB one is
+ required will vary according to needs, here a 8GB one is
created.
-# parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
+# parted /dev/sda -- mkpart primary linux-swap -8GB 100%
@@ -204,7 +204,7 @@ OK
reserved 512MiB at the start of the disk.
-# parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
+# parted /dev/sda -- mkpart ESP fat32 1MB 512MB
# parted /dev/sda -- set 3 esp on
@@ -242,7 +242,7 @@ OK
live.
-# parted /dev/sda -- mkpart primary 1MiB -8GiB
+# parted /dev/sda -- mkpart primary 1MB -8GB
@@ -252,7 +252,7 @@ OK
created.
-# parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
+# parted /dev/sda -- mkpart primary linux-swap -8GB 100%
diff --git a/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
index 245250e709..0220186123 100644
--- a/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
+++ b/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -2130,6 +2130,13 @@ sudo mkdir /var/lib/redis-peertube
sudo cp /var/lib/redis/dump.rdb /var/lib/redis-peertube/dump.rdb
+
+
+ Added the keter NixOS module. Keter reverse
+ proxies requests to your loaded application based on virtual
+ hostnames.
+
+
If you are using Wayland you can choose to use the Ozone
diff --git a/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml b/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
index 87066e6cdf..2e53929f06 100644
--- a/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
+++ b/third_party/nixpkgs/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
@@ -70,6 +70,34 @@
with any supported NixOS release.
+
+
+ emacs enables native compilation which
+ means:
+
+
+
+
+ emacs packages from nixpkgs, builtin or not, will do
+ native compilation ahead of time so you can enjoy the
+ benefit of native compilation without compiling them on
+ you machine;
+
+
+
+
+ emacs packages from somewhere else, e.g.
+ package-install, will do asynchronously
+ deferred native compilation. If you do not want this,
+ maybe to avoid CPU consumption for compilation, you can
+ use
+ (setq native-comp-deferred-compilation nil)
+ to disable it while still enjoy the benefit of native
+ compilation for packages from nixpkgs.
+
+
+
+ nixos-generate-config now generates
@@ -97,7 +125,9 @@
- Cinnamon has been updated to 5.4.
+ Cinnamon has been updated to 5.4. While at it, the cinnamon
+ module now defaults to blueman as bluetooth manager and
+ slick-greeter as lightdm greeter to match upstream.
@@ -138,6 +168,13 @@
services.dragonflydb.
+
+
+ Komga, a free and
+ open source comics/mangas media server. Available as
+ services.komga.
+
+
HBase
@@ -191,6 +228,14 @@
services.tempo.
+
+
+ Patroni,
+ a template for PostgreSQL HA with ZooKeeper, etcd or Consul.
+ Available as
+ services.patroni.
+
+
@@ -251,6 +296,18 @@
(with foo; isPower && is32bit && isBigEndian).
+
+
+ The fetchgit fetcher now uses
+ cone
+ mode by default for sparse checkouts.
+ Non-cone
+ mode can be enabled by passing
+ nonConeMode = true, but note that non-cone
+ mode is deprecated and this option may be removed alongside a
+ future Git update without notice.
+
+ bsp-layout no longer uses the command
@@ -357,6 +414,16 @@
release notes for more details.
+
+
+ github-runner gained support for ephemeral
+ runners and registrations using a personal access token (PAT)
+ instead of a registration token. See
+ services.github-runner.ephemeral and
+ services.github-runner.tokenFile for
+ details.
+
+
A new module was added for the Saleae Logic device family,
@@ -372,6 +439,13 @@
instead of using the Redis default.
+
+
+ Neo4j was updated from version 3 to version 4. See this
+ migration
+ guide on how to migrate your Neo4j instance.
+
+
Matrix Synapse now requires entries in the
@@ -450,6 +524,12 @@
dbus service.
+
+
+ The nomad package now defaults to 1.3,
+ which no longer has a downgrade path to releases 1.2 or older.
+
+
diff --git a/third_party/nixpkgs/nixos/doc/manual/installation/installing.chapter.md b/third_party/nixpkgs/nixos/doc/manual/installation/installing.chapter.md
index dd7f883bb3..7254f9d184 100644
--- a/third_party/nixpkgs/nixos/doc/manual/installation/installing.chapter.md
+++ b/third_party/nixpkgs/nixos/doc/manual/installation/installing.chapter.md
@@ -133,14 +133,14 @@ update /etc/fstab.
which will be used by the boot partition.
```ShellSession
- # parted /dev/sda -- mkpart primary 512MiB -8GiB
+ # parted /dev/sda -- mkpart primary 512MB -8GB
```
3. Next, add a *swap* partition. The size required will vary according
- to needs, here a 8GiB one is created.
+ to needs, here a 8GB one is created.
```ShellSession
- # parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
+ # parted /dev/sda -- mkpart primary linux-swap -8GB 100%
```
::: {.note}
@@ -153,7 +153,7 @@ update /etc/fstab.
reserved 512MiB at the start of the disk.
```ShellSession
- # parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
+ # parted /dev/sda -- mkpart ESP fat32 1MB 512MB
# parted /dev/sda -- set 3 esp on
```
@@ -180,14 +180,14 @@ update /etc/fstab.
end part, where the swap will live.
```ShellSession
- # parted /dev/sda -- mkpart primary 1MiB -8GiB
+ # parted /dev/sda -- mkpart primary 1MB -8GB
```
3. Finally, add a *swap* partition. The size required will vary
according to needs, here a 8GiB one is created.
```ShellSession
- # parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
+ # parted /dev/sda -- mkpart primary linux-swap -8GB 100%
```
::: {.note}
diff --git a/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2205.section.md b/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2205.section.md
index e83a7cd43b..2d2140d92d 100644
--- a/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -778,6 +778,7 @@ In addition to numerous new and upgraded packages, this release has the followin
sudo mkdir /var/lib/redis-peertube
sudo cp /var/lib/redis/dump.rdb /var/lib/redis-peertube/dump.rdb
```
+- Added the `keter` NixOS module. Keter reverse proxies requests to your loaded application based on virtual hostnames.
- If you are using Wayland you can choose to use the Ozone Wayland support
in Chrome and several Electron apps by setting the environment variable
diff --git a/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2211.section.md b/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2211.section.md
index be0d17f905..1f1d2f3407 100644
--- a/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2211.section.md
+++ b/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2211.section.md
@@ -35,6 +35,10 @@ In addition to numerous new and upgraded packages, this release has the followin
for a transition period so that in time the ecosystem can switch without
breaking compatibility with any supported NixOS release.
+- `emacs` enables native compilation which means:
+ - emacs packages from nixpkgs, builtin or not, will do native compilation ahead of time so you can enjoy the benefit of native compilation without compiling them on you machine;
+ - emacs packages from somewhere else, e.g. `package-install`, will do asynchronously deferred native compilation. If you do not want this, maybe to avoid CPU consumption for compilation, you can use `(setq native-comp-deferred-compilation nil)` to disable it while still enjoy the benefit of native compilation for packages from nixpkgs.
+
- `nixos-generate-config` now generates configurations that can be built in pure
mode. This is achieved by setting the new `nixpkgs.hostPlatform` option.
@@ -46,7 +50,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- PHP now defaults to PHP 8.1, updated from 8.0.
-- Cinnamon has been updated to 5.4.
+- Cinnamon has been updated to 5.4. While at it, the cinnamon module now defaults to
+ blueman as bluetooth manager and slick-greeter as lightdm greeter to match upstream.
- `hardware.nvidia` has a new option `open` that can be used to opt in the opensource version of NVIDIA kernel driver. Note that the driver's support for GeForce and Workstation GPUs is still alpha quality, see [NVIDIA Releases Open-Source GPU Kernel Modules](https://developer.nvidia.com/blog/nvidia-releases-open-source-gpu-kernel-modules/) for the official announcement.
@@ -59,6 +64,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [dragonflydb](https://dragonflydb.io/), a modern replacement for Redis and Memcached. Available as [services.dragonflydb](#opt-services.dragonflydb.enable).
+- [Komga](https://komga.org/), a free and open source comics/mangas media server. Available as [services.komga](#opt-services.komga.enable).
+
- [HBase cluster](https://hbase.apache.org/), a distributed, scalable, big data store. Available as [services.hadoop.hbase](options.html#opt-services.hadoop.hbase.enable).
- [infnoise](https://github.com/leetronics/infnoise), a hardware True Random Number Generator dongle.
@@ -75,6 +82,9 @@ In addition to numerous new and upgraded packages, this release has the followin
- [Grafana Tempo](https://www.grafana.com/oss/tempo/), a distributed tracing store. Available as [services.tempo](#opt-services.tempo.enable).
+- [Patroni](https://github.com/zalando/patroni), a template for PostgreSQL HA with ZooKeeper, etcd or Consul.
+Available as [services.patroni](options.html#opt-services.patroni.enable).
+
## Backward Incompatibilities {#sec-release-22.11-incompatibilities}
@@ -97,6 +107,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- The `isPowerPC` predicate, found on `platform` attrsets (`hostPlatform`, `buildPlatform`, `targetPlatform`, etc) has been removed in order to reduce confusion. The predicate was was defined such that it matches only the 32-bit big-endian members of the POWER/PowerPC family, despite having a name which would imply a broader set of systems. If you were using this predicate, you can replace `foo.isPowerPC` with `(with foo; isPower && is32bit && isBigEndian)`.
+- The `fetchgit` fetcher now uses [cone mode](https://www.git-scm.com/docs/git-sparse-checkout/2.37.0#_internalscone_mode_handling) by default for sparse checkouts. [Non-cone mode](https://www.git-scm.com/docs/git-sparse-checkout/2.37.0#_internalsnon_cone_problems) can be enabled by passing `nonConeMode = true`, but note that non-cone mode is deprecated and this option may be removed alongside a future Git update without notice.
+
- `bsp-layout` no longer uses the command `cycle` to switch to other window layouts, as it got replaced by the commands `previous` and `next`.
- The Barco ClickShare driver/client package `pkgs.clickshare-csc1` and the option `programs.clickshare-csc1.enable` have been removed,
@@ -135,10 +147,14 @@ Use `configure.packages` instead.
- The `xplr` package has been updated from 0.18.0 to 0.19.0, which brings some breaking changes. See the [upstream release notes](https://github.com/sayanarijit/xplr/releases/tag/v0.19.0) for more details.
+- `github-runner` gained support for ephemeral runners and registrations using a personal access token (PAT) instead of a registration token. See `services.github-runner.ephemeral` and `services.github-runner.tokenFile` for details.
+
- A new module was added for the Saleae Logic device family, providing the options `hardware.saleae-logic.enable` and `hardware.saleae-logic.package`.
- The Redis module now disables RDB persistence when `services.redis.servers..save = []` instead of using the Redis default.
+- Neo4j was updated from version 3 to version 4. See this [migration guide](https://neo4j.com/docs/upgrade-migration-guide/current/) on how to migrate your Neo4j instance.
+
- Matrix Synapse now requires entries in the `state_group_edges` table to be unique, in order to prevent accidentally introducing duplicate information (for example, because a database backup was restored multiple times). If your Synapse database already has duplicate rows in this table, this could fail with an error and require manual remediation.
- `dockerTools.buildImage` deprecates the misunderstood `contents` parameter, in favor of `copyToRoot`.
@@ -159,4 +175,6 @@ Use `configure.packages` instead.
- There is a new module for the `xfconf` program (the Xfce configuration storage system), which has a dbus service.
+- The `nomad` package now defaults to 1.3, which no longer has a downgrade path to releases 1.2 or older.
+
diff --git a/third_party/nixpkgs/nixos/lib/make-options-doc/default.nix b/third_party/nixpkgs/nixos/lib/make-options-doc/default.nix
index 6649fc41d4..3f98e2cf87 100644
--- a/third_party/nixpkgs/nixos/lib/make-options-doc/default.nix
+++ b/third_party/nixpkgs/nixos/lib/make-options-doc/default.nix
@@ -123,7 +123,7 @@ in rec {
inherit self;
includeSiteCustomize = true;
});
- in self.withPackages (p: [ p.mistune_2_0 ]))
+ in self.withPackages (p: [ p.mistune ]))
];
options = builtins.toFile "options.json"
(builtins.unsafeDiscardStringContext (builtins.toJSON optionsNix));
diff --git a/third_party/nixpkgs/nixos/lib/systemd-lib.nix b/third_party/nixpkgs/nixos/lib/systemd-lib.nix
index 16ec47df3a..779dadece5 100644
--- a/third_party/nixpkgs/nixos/lib/systemd-lib.nix
+++ b/third_party/nixpkgs/nixos/lib/systemd-lib.nix
@@ -285,6 +285,8 @@ in rec {
Documentation = toString config.documentation; }
// optionalAttrs (config.onFailure != []) {
OnFailure = toString config.onFailure; }
+ // optionalAttrs (config.onSuccess != []) {
+ OnSuccess = toString config.onSuccess; }
// optionalAttrs (options.startLimitIntervalSec.isDefined) {
StartLimitIntervalSec = toString config.startLimitIntervalSec;
} // optionalAttrs (options.startLimitBurst.isDefined) {
diff --git a/third_party/nixpkgs/nixos/lib/systemd-unit-options.nix b/third_party/nixpkgs/nixos/lib/systemd-unit-options.nix
index cae82433d8..84388b5550 100644
--- a/third_party/nixpkgs/nixos/lib/systemd-unit-options.nix
+++ b/third_party/nixpkgs/nixos/lib/systemd-unit-options.nix
@@ -206,6 +206,15 @@ in rec {
'';
};
+ onSuccess = mkOption {
+ default = [];
+ type = types.listOf unitNameType;
+ description = ''
+ A list of one or more units that are activated when
+ this unit enters the "inactive" state.
+ '';
+ };
+
startLimitBurst = mkOption {
type = types.int;
description = ''
diff --git a/third_party/nixpkgs/nixos/modules/config/krb5/default.nix b/third_party/nixpkgs/nixos/modules/config/krb5/default.nix
index 6cc30c47b7..4c80f87a49 100644
--- a/third_party/nixpkgs/nixos/modules/config/krb5/default.nix
+++ b/third_party/nixpkgs/nixos/modules/config/krb5/default.nix
@@ -204,11 +204,11 @@ in {
admin_server = SYSLOG:NOTICE
default = SYSLOG:NOTICE
'';
- description = ''
- These lines go to the end of krb5.conf verbatim.
- krb5.conf may include any of the relations that are
- valid for kdc.conf (see man
- kdc.conf), but it is not a recommended practice.
+ description = lib.mdDoc ''
+ These lines go to the end of `krb5.conf` verbatim.
+ `krb5.conf` may include any of the relations that are
+ valid for `kdc.conf` (see `man kdc.conf`),
+ but it is not a recommended practice.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/config/ldap.nix b/third_party/nixpkgs/nixos/modules/config/ldap.nix
index 0f54e4a8cf..799d60e010 100644
--- a/third_party/nixpkgs/nixos/modules/config/ldap.nix
+++ b/third_party/nixpkgs/nixos/modules/config/ldap.nix
@@ -186,16 +186,16 @@ in
policy = mkOption {
default = "hard_open";
type = types.enum [ "hard_open" "hard_init" "soft" ];
- description = ''
+ description = lib.mdDoc ''
Specifies the policy to use for reconnecting to an unavailable
- LDAP server. The default is hard_open, which
+ LDAP server. The default is `hard_open`, which
reconnects if opening the connection to the directory server
- failed. By contrast, hard_init reconnects if
+ failed. By contrast, `hard_init` reconnects if
initializing the connection failed. Initializing may not
actually contact the directory server, and it is possible that
a malformed configuration file will trigger reconnection. If
- soft is specified, then
- nss_ldap will return immediately on server
+ `soft` is specified, then
+ `nss_ldap` will return immediately on server
failure. All hard reconnect policies block with exponential
backoff before retrying.
'';
diff --git a/third_party/nixpkgs/nixos/modules/config/mysql.nix b/third_party/nixpkgs/nixos/modules/config/mysql.nix
new file mode 100644
index 0000000000..8e7ce2a307
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/config/mysql.nix
@@ -0,0 +1,519 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+ cfg = config.users.mysql;
+in
+{
+ options = {
+ users.mysql = {
+ enable = mkEnableOption "Authentication against a MySQL/MariaDB database";
+ host = mkOption {
+ type = types.str;
+ example = "localhost";
+ description = "The hostname of the MySQL/MariaDB server";
+ };
+ database = mkOption {
+ type = types.str;
+ example = "auth";
+ description = "The name of the database containing the users";
+ };
+ user = mkOption {
+ type = types.str;
+ example = "nss-user";
+ description = "The username to use when connecting to the database";
+ };
+ passwordFile = mkOption {
+ type = types.path;
+ example = "/run/secrets/mysql-auth-db-passwd";
+ description = "The path to the file containing the password for the user";
+ };
+ pam = mkOption {
+ description = "Settings for pam_mysql";
+ type = types.submodule {
+ options = {
+ table = mkOption {
+ type = types.str;
+ example = "users";
+ description = "The name of table that maps unique login names to the passwords.";
+ };
+ updateTable = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = "users_updates";
+ description = ''
+ The name of the table used for password alteration. If not defined, the value
+ of the table option will be used instead.
+ '';
+ };
+ userColumn = mkOption {
+ type = types.str;
+ example = "username";
+ description = "The name of the column that contains a unix login name.";
+ };
+ passwordColumn = mkOption {
+ type = types.str;
+ example = "password";
+ description = "The name of the column that contains a (encrypted) password string.";
+ };
+ statusColumn = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = "status";
+ description = ''
+ The name of the column or an SQL expression that indicates the status of
+ the user. The status is expressed by the combination of two bitfields
+ shown below:
+
+
+
+
+ bit 0 (0x01):
+ if flagged, pam_mysql deems the account to be expired and
+ returns PAM_ACCT_EXPIRED. That is, the account is supposed
+ to no longer be available. Note this doesn't mean that pam_mysql
+ rejects further authentication operations.
+
+
+
+
+ bit 1 (0x02):
+ if flagged, pam_mysql deems the authentication token
+ (password) to be expired and returns PAM_NEW_AUTHTOK_REQD.
+ This ends up requiring that the user enter a new password.
+
+
+
+ '';
+ };
+ passwordCrypt = mkOption {
+ example = "2";
+ type = types.enum [
+ "0" "plain"
+ "1" "Y"
+ "2" "mysql"
+ "3" "md5"
+ "4" "sha1"
+ "5" "drupal7"
+ "6" "joomla15"
+ "7" "ssha"
+ "8" "sha512"
+ "9" "sha256"
+ ];
+ description = ''
+ The method to encrypt the user's password:
+
+
+
+
+ 0 (or "plain"):
+ No encryption. Passwords are stored in plaintext. HIGHLY DISCOURAGED.
+
+
+
+
+ 1 (or "Y"):
+ Use crypt(3) function.
+
+
+
+
+ 2 (or "mysql"):
+ Use the MySQL PASSWORD() function. It is possible that the encryption function used
+ by pam_mysql is different from that of the MySQL server, as
+ pam_mysql uses the function defined in MySQL's C-client API
+ instead of using PASSWORD() SQL function in the query.
+
+
+
+
+ 3 (or "md5"):
+ Use plain hex MD5.
+
+
+
+
+ 4 (or "sha1"):
+ Use plain hex SHA1.
+
+
+
+
+ 5 (or "drupal7"):
+ Use Drupal7 salted passwords.
+
+
+
+
+ 6 (or "joomla15"):
+ Use Joomla15 salted passwords.
+
+
+
+
+ 7 (or "ssha"):
+ Use ssha hashed passwords.
+
+
+
+
+ 8 (or "sha512"):
+ Use sha512 hashed passwords.
+
+
+
+
+ 9 (or "sha256"):
+ Use sha256 hashed passwords.
+
+
+
+ '';
+ };
+ cryptDefault = mkOption {
+ type = types.nullOr (types.enum [ "md5" "sha256" "sha512" "blowfish" ]);
+ default = null;
+ example = "blowfish";
+ description = "The default encryption method to use for passwordCrypt = 1.";
+ };
+ where = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = "host.name='web' AND user.active=1";
+ description = "Additional criteria for the query.";
+ };
+ verbose = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ If enabled, produces logs with detailed messages that describes what
+ pam_mysql is doing. May be useful for debugging.
+ '';
+ };
+ disconnectEveryOperation = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ By default, pam_mysql keeps the connection to the MySQL
+ database until the session is closed. If this option is set to true it
+ disconnects every time the PAM operation has finished. This option may
+ be useful in case the session lasts quite long.
+ '';
+ };
+ logging = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Enables logging of authentication attempts in the MySQL database.";
+ };
+ table = mkOption {
+ type = types.str;
+ example = "logs";
+ description = "The name of the table to which logs are written.";
+ };
+ msgColumn = mkOption {
+ type = types.str;
+ example = "msg";
+ description = ''
+ The name of the column in the log table to which the description
+ of the performed operation is stored.
+ '';
+ };
+ userColumn = mkOption {
+ type = types.str;
+ example = "user";
+ description = ''
+ The name of the column in the log table to which the name of the
+ user being authenticated is stored.
+ '';
+ };
+ pidColumn = mkOption {
+ type = types.str;
+ example = "pid";
+ description = ''
+ The name of the column in the log table to which the pid of the
+ process utilising the pam_mysql's authentication
+ service is stored.
+ '';
+ };
+ hostColumn = mkOption {
+ type = types.str;
+ example = "host";
+ description = ''
+ The name of the column in the log table to which the name of the user
+ being authenticated is stored.
+ '';
+ };
+ rHostColumn = mkOption {
+ type = types.str;
+ example = "rhost";
+ description = ''
+ The name of the column in the log table to which the name of the remote
+ host that initiates the session is stored. The value is supposed to be
+ set by the PAM-aware application with pam_set_item(PAM_RHOST)
+ .
+ '';
+ };
+ timeColumn = mkOption {
+ type = types.str;
+ example = "timestamp";
+ description = ''
+ The name of the column in the log table to which the timestamp of the
+ log entry is stored.
+ '';
+ };
+ };
+ };
+ };
+ };
+ nss = mkOption {
+ description = ''
+ Settings for libnss-mysql.
+
+ All examples are from the minimal example
+ of libnss-mysql, but they are modified with NixOS paths for bash.
+ '';
+ type = types.submodule {
+ options = {
+ getpwnam = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = literalExpression ''
+ SELECT username,'x',uid,'5000','MySQL User', CONCAT('/home/',username),'/run/sw/current-system/bin/bash' \
+ FROM users \
+ WHERE username='%1$s' \
+ LIMIT 1
+ '';
+ description = ''
+ SQL query for the getpwnam
+ syscall.
+ '';
+ };
+ getpwuid = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = literalExpression ''
+ SELECT username,'x',uid,'5000','MySQL User', CONCAT('/home/',username),'/run/sw/current-system/bin/bash' \
+ FROM users \
+ WHERE uid='%1$u' \
+ LIMIT 1
+ '';
+ description = ''
+ SQL query for the getpwuid
+ syscall.
+ '';
+ };
+ getspnam = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = literalExpression ''
+ SELECT username,password,'1','0','99999','0','0','-1','0' \
+ FROM users \
+ WHERE username='%1$s' \
+ LIMIT 1
+ '';
+ description = ''
+ SQL query for the getspnam
+ syscall.
+ '';
+ };
+ getpwent = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = literalExpression ''
+ SELECT username,'x',uid,'5000','MySQL User', CONCAT('/home/',username),'/run/sw/current-system/bin/bash' FROM users
+ '';
+ description = ''
+ SQL query for the getpwent
+ syscall.
+ '';
+ };
+ getspent = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = literalExpression ''
+ SELECT username,password,'1','0','99999','0','0','-1','0' FROM users
+ '';
+ description = ''
+ SQL query for the getspent
+ syscall.
+ '';
+ };
+ getgrnam = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = literalExpression ''
+ SELECT name,password,gid FROM groups WHERE name='%1$s' LIMIT 1
+ '';
+ description = ''
+ SQL query for the getgrnam
+ syscall.
+ '';
+ };
+ getgrgid = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = literalExpression ''
+ SELECT name,password,gid FROM groups WHERE gid='%1$u' LIMIT 1
+ '';
+ description = ''
+ SQL query for the getgrgid
+ syscall.
+ '';
+ };
+ getgrent = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = literalExpression ''
+ SELECT name,password,gid FROM groups
+ '';
+ description = ''
+ SQL query for the getgrent
+ syscall.
+ '';
+ };
+ memsbygid = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = literalExpression ''
+ SELECT username FROM grouplist WHERE gid='%1$u'
+ '';
+ description = ''
+ SQL query for the memsbygid
+ syscall.
+ '';
+ };
+ gidsbymem = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ example = literalExpression ''
+ SELECT gid FROM grouplist WHERE username='%1$s'
+ '';
+ description = ''
+ SQL query for the gidsbymem
+ syscall.
+ '';
+ };
+ };
+ };
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ system.nssModules = [ pkgs.libnss-mysql ];
+ system.nssDatabases.shadow = [ "mysql" ];
+ system.nssDatabases.group = [ "mysql" ];
+ system.nssDatabases.passwd = [ "mysql" ];
+
+ environment.etc."security/pam_mysql.conf" = {
+ user = "root";
+ group = "root";
+ mode = "0600";
+ # password will be added from password file in activation script
+ text = ''
+ users.host=${cfg.host}
+ users.db_user=${cfg.user}
+ users.database=${cfg.database}
+ users.table=${cfg.pam.table}
+ users.user_column=${cfg.pam.userColumn}
+ users.password_column=${cfg.pam.passwordColumn}
+ users.password_crypt=${cfg.pam.passwordCrypt}
+ users.disconnect_every_operation=${if cfg.pam.disconnectEveryOperation then "1" else "0"}
+ verbose=${if cfg.pam.verbose then "1" else "0"}
+ '' + optionalString (cfg.pam.cryptDefault != null) ''
+ users.use_${cfg.pam.cryptDefault}=1
+ '' + optionalString (cfg.pam.where != null) ''
+ users.where_clause=${cfg.pam.where}
+ '' + optionalString (cfg.pam.statusColumn != null) ''
+ users.status_column=${cfg.pam.statusColumn}
+ '' + optionalString (cfg.pam.updateTable != null) ''
+ users.update_table=${cfg.pam.updateTable}
+ '' + optionalString cfg.pam.logging.enable ''
+ log.enabled=true
+ log.table=${cfg.pam.logging.table}
+ log.message_column=${cfg.pam.logging.msgColumn}
+ log.pid_column=${cfg.pam.logging.pidColumn}
+ log.user_column=${cfg.pam.logging.userColumn}
+ log.host_column=${cfg.pam.logging.hostColumn}
+ log.rhost_column=${cfg.pam.logging.rHostColumn}
+ log.time_column=${cfg.pam.logging.timeColumn}
+ '';
+ };
+
+ environment.etc."libnss-mysql.cfg" = {
+ mode = "0600";
+ user = config.services.nscd.user;
+ group = config.services.nscd.group;
+ text = optionalString (cfg.nss.getpwnam != null) ''
+ getpwnam ${cfg.nss.getpwnam}
+ '' + optionalString (cfg.nss.getpwuid != null) ''
+ getpwuid ${cfg.nss.getpwuid}
+ '' + optionalString (cfg.nss.getspnam != null) ''
+ getspnam ${cfg.nss.getspnam}
+ '' + optionalString (cfg.nss.getpwent != null) ''
+ getpwent ${cfg.nss.getpwent}
+ '' + optionalString (cfg.nss.getspent != null) ''
+ getspent ${cfg.nss.getspent}
+ '' + optionalString (cfg.nss.getgrnam != null) ''
+ getgrnam ${cfg.nss.getgrnam}
+ '' + optionalString (cfg.nss.getgrgid != null) ''
+ getgrgid ${cfg.nss.getgrgid}
+ '' + optionalString (cfg.nss.getgrent != null) ''
+ getgrent ${cfg.nss.getgrent}
+ '' + optionalString (cfg.nss.memsbygid != null) ''
+ memsbygid ${cfg.nss.memsbygid}
+ '' + optionalString (cfg.nss.gidsbymem != null) ''
+ gidsbymem ${cfg.nss.gidsbymem}
+ '' + ''
+ host ${cfg.host}
+ database ${cfg.database}
+ '';
+ };
+
+ environment.etc."libnss-mysql-root.cfg" = {
+ mode = "0600";
+ user = config.services.nscd.user;
+ group = config.services.nscd.group;
+ # password will be added from password file in activation script
+ text = ''
+ username ${cfg.user}
+ '';
+ };
+
+ # Activation script to append the password from the password file
+ # to the configuration files. It also fixes the owner of the
+ # libnss-mysql-root.cfg because it is changed to root after the
+ # password is appended.
+ system.activationScripts.mysql-auth-passwords = ''
+ if [[ -r ${cfg.passwordFile} ]]; then
+ org_umask=$(umask)
+ umask 0077
+
+ conf_nss="$(mktemp)"
+ cp /etc/libnss-mysql-root.cfg $conf_nss
+ printf 'password %s\n' "$(cat ${cfg.passwordFile})" >> $conf_nss
+ mv -fT "$conf_nss" /etc/libnss-mysql-root.cfg
+ chown ${config.services.nscd.user}:${config.services.nscd.group} /etc/libnss-mysql-root.cfg
+
+ conf_pam="$(mktemp)"
+ cp /etc/security/pam_mysql.conf $conf_pam
+ printf 'users.db_passwd=%s\n' "$(cat ${cfg.passwordFile})" >> $conf_pam
+ mv -fT "$conf_pam" /etc/security/pam_mysql.conf
+
+ umask $org_umask
+ fi
+ '';
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/config/power-management.nix b/third_party/nixpkgs/nixos/modules/config/power-management.nix
index 919bb824bc..a4e8028cfb 100644
--- a/third_party/nixpkgs/nixos/modules/config/power-management.nix
+++ b/third_party/nixpkgs/nixos/modules/config/power-management.nix
@@ -91,7 +91,7 @@ in
systemd.services.post-resume =
{ description = "Post-Resume Actions";
- after = [ "suspend.target" "hibernate.target" "hybrid-sleep.target" ];
+ after = [ "suspend.target" "hibernate.target" "hybrid-sleep.target" "suspend-then-hibernate.target" ];
script =
''
/run/current-system/systemd/bin/systemctl try-restart post-resume.target
diff --git a/third_party/nixpkgs/nixos/modules/config/sysctl.nix b/third_party/nixpkgs/nixos/modules/config/sysctl.nix
index db1f5284f5..b4b2d0452c 100644
--- a/third_party/nixpkgs/nixos/modules/config/sysctl.nix
+++ b/third_party/nixpkgs/nixos/modules/config/sysctl.nix
@@ -26,13 +26,12 @@ in
{ "net.ipv4.tcp_syncookies" = false; "vm.swappiness" = 60; }
'';
type = types.attrsOf sysctlOption;
- description = ''
+ description = lib.mdDoc ''
Runtime parameters of the Linux kernel, as set by
- sysctl
- 8. Note that sysctl
+ {manpage}`sysctl(8)`. Note that sysctl
parameters names must be enclosed in quotes
- (e.g. "vm.swappiness" instead of
- vm.swappiness). The value of each
+ (e.g. `"vm.swappiness"` instead of
+ `vm.swappiness`). The value of each
parameter may be a string, integer, boolean, or null
(signifying the option will not appear at all).
'';
diff --git a/third_party/nixpkgs/nixos/modules/config/system-environment.nix b/third_party/nixpkgs/nixos/modules/config/system-environment.nix
index 1e05ab7d0f..5b226d5079 100644
--- a/third_party/nixpkgs/nixos/modules/config/system-environment.nix
+++ b/third_party/nixpkgs/nixos/modules/config/system-environment.nix
@@ -39,26 +39,23 @@ in
environment.profileRelativeSessionVariables = mkOption {
type = types.attrsOf (types.listOf types.str);
example = { PATH = [ "/bin" ]; MANPATH = [ "/man" "/share/man" ]; };
- description = ''
+ description = lib.mdDoc ''
Attribute set of environment variable used in the global
environment. These variables will be set by PAM early in the
login process.
Variable substitution is available as described in
-
- pam_env.conf
- 5
- .
+ {manpage}`pam_env.conf(5)`.
Each attribute maps to a list of relative paths. Each relative
path is appended to the each profile of
- to form the content of
+ {option}`environment.profiles` to form the content of
the corresponding environment variable.
Also, these variables are merged into
- and it is
+ [](#opt-environment.profileRelativeEnvVars) and it is
therefore not possible to use PAM style variables such as
- @{HOME}.
+ `@{HOME}`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/config/system-path.nix b/third_party/nixpkgs/nixos/modules/config/system-path.nix
index de980e7383..b2d546b721 100644
--- a/third_party/nixpkgs/nixos/modules/config/system-path.nix
+++ b/third_party/nixpkgs/nixos/modules/config/system-path.nix
@@ -84,19 +84,19 @@ in
${defaultPackagesText}
'';
example = [];
- description = ''
+ description = lib.mdDoc ''
Set of default packages that aren't strictly necessary
for a running system, entries can be removed for a more
minimal NixOS installation.
- Note: If pkgs.nano is removed from this list,
+ Note: If `pkgs.nano` is removed from this list,
make sure another editor is installed and the
- EDITOR environment variable is set to it.
+ `EDITOR` environment variable is set to it.
Environment variables can be set using
- .
+ {option}`environment.variables`.
Like with systemPackages, packages are installed to
- /run/current-system/sw. They are
+ {file}`/run/current-system/sw`. They are
automatically available to all users, and are
automatically updated every time you rebuild the system
configuration.
diff --git a/third_party/nixpkgs/nixos/modules/config/xdg/portal.nix b/third_party/nixpkgs/nixos/modules/config/xdg/portal.nix
index 689abf267f..079b3385f8 100644
--- a/third_party/nixpkgs/nixos/modules/config/xdg/portal.nix
+++ b/third_party/nixpkgs/nixos/modules/config/xdg/portal.nix
@@ -40,12 +40,12 @@ in
extraPortals = mkOption {
type = types.listOf types.package;
default = [ ];
- description = ''
+ description = lib.mdDoc ''
List of additional portals to add to path. Portals allow interaction
with system, like choosing files or taking screenshots. At minimum,
a desktop portal implementation should be listed. GNOME and KDE already
- adds xdg-desktop-portal-gtk; and
- xdg-desktop-portal-kde respectively. On other desktop
+ adds `xdg-desktop-portal-gtk`; and
+ `xdg-desktop-portal-kde` respectively. On other desktop
environments you probably want to add them yourself.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/config/xdg/portals/lxqt.nix b/third_party/nixpkgs/nixos/modules/config/xdg/portals/lxqt.nix
index e85e2cc326..4cc6c193e7 100644
--- a/third_party/nixpkgs/nixos/modules/config/xdg/portals/lxqt.nix
+++ b/third_party/nixpkgs/nixos/modules/config/xdg/portals/lxqt.nix
@@ -15,7 +15,7 @@ in
enable = mkEnableOption ''
the desktop portal for the LXQt desktop environment.
- This will add the lxqt.xdg-desktop-portal-lxqt
+ This will add the lxqt.xdg-desktop-portal-lxqt
package (with the extra Qt styles) into the
option
'';
@@ -29,9 +29,9 @@ in
pkgs.qtcurve
];
'';
- description = ''
+ description = lib.mdDoc ''
Extra Qt styles that will be available to the
- lxqt.xdg-desktop-portal-lxqt.
+ `lxqt.xdg-desktop-portal-lxqt`.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/config/xdg/portals/wlr.nix b/third_party/nixpkgs/nixos/modules/config/xdg/portals/wlr.nix
index aba1d8dbc0..d8cbc68b1d 100644
--- a/third_party/nixpkgs/nixos/modules/config/xdg/portals/wlr.nix
+++ b/third_party/nixpkgs/nixos/modules/config/xdg/portals/wlr.nix
@@ -17,16 +17,16 @@ in
enable = mkEnableOption ''
desktop portal for wlroots-based desktops
- This will add the xdg-desktop-portal-wlr package into
+ This will add the xdg-desktop-portal-wlr package into
the option, and provide the
configuration file
'';
settings = mkOption {
- description = ''
- Configuration for xdg-desktop-portal-wlr.
+ description = lib.mdDoc ''
+ Configuration for `xdg-desktop-portal-wlr`.
- See xdg-desktop-portal-wlr(5) for supported
+ See `xdg-desktop-portal-wlr(5)` for supported
values.
'';
diff --git a/third_party/nixpkgs/nixos/modules/config/zram.nix b/third_party/nixpkgs/nixos/modules/config/zram.nix
index 34e80df47a..b162fbc311 100644
--- a/third_party/nixpkgs/nixos/modules/config/zram.nix
+++ b/third_party/nixpkgs/nixos/modules/config/zram.nix
@@ -103,12 +103,12 @@ in
default = "zstd";
example = "lz4";
type = with types; either (enum [ "lzo" "lz4" "zstd" ]) str;
- description = ''
- Compression algorithm. lzo has good compression,
- but is slow. lz4 has bad compression, but is fast.
- zstd is both good compression and fast, but requires newer kernel.
+ description = lib.mdDoc ''
+ Compression algorithm. `lzo` has good compression,
+ but is slow. `lz4` has bad compression, but is fast.
+ `zstd` is both good compression and fast, but requires newer kernel.
You can check what other algorithms are supported by your zram device with
- cat /sys/class/block/zram*/comp_algorithm
+ {command}`cat /sys/class/block/zram*/comp_algorithm`
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/hardware/corectrl.nix b/third_party/nixpkgs/nixos/modules/hardware/corectrl.nix
index 3185f6486c..345ec479e7 100644
--- a/third_party/nixpkgs/nixos/modules/hardware/corectrl.nix
+++ b/third_party/nixpkgs/nixos/modules/hardware/corectrl.nix
@@ -20,7 +20,7 @@ in
type = types.str;
default = "0xfffd7fff";
example = "0xffffffff";
- description = ''
+ description = lib.mdDoc ''
Sets the `amdgpu.ppfeaturemask` kernel option.
In particular, it is used here to set the overdrive bit.
Default is `0xfffd7fff` as it is less likely to cause flicker issues.
diff --git a/third_party/nixpkgs/nixos/modules/hardware/cpu/amd-sev.nix b/third_party/nixpkgs/nixos/modules/hardware/cpu/amd-sev.nix
index 32fed2c484..678b98e513 100644
--- a/third_party/nixpkgs/nixos/modules/hardware/cpu/amd-sev.nix
+++ b/third_party/nixpkgs/nixos/modules/hardware/cpu/amd-sev.nix
@@ -8,17 +8,17 @@ in
options.hardware.cpu.amd.sev = {
enable = mkEnableOption "access to the AMD SEV device";
user = mkOption {
- description = "Owner to assign to the SEV device.";
+ description = lib.mdDoc "Owner to assign to the SEV device.";
type = types.str;
default = "root";
};
group = mkOption {
- description = "Group to assign to the SEV device.";
+ description = lib.mdDoc "Group to assign to the SEV device.";
type = types.str;
default = defaultGroup;
};
mode = mkOption {
- description = "Mode to set for the SEV device.";
+ description = lib.mdDoc "Mode to set for the SEV device.";
type = types.str;
default = "0660";
};
diff --git a/third_party/nixpkgs/nixos/modules/hardware/device-tree.nix b/third_party/nixpkgs/nixos/modules/hardware/device-tree.nix
index 5585277622..4ce3a3e6c6 100644
--- a/third_party/nixpkgs/nixos/modules/hardware/device-tree.nix
+++ b/third_party/nixpkgs/nixos/modules/hardware/device-tree.nix
@@ -56,23 +56,6 @@ let
};
};
- # this requires kernel package
- dtbsWithSymbols = pkgs.stdenv.mkDerivation {
- name = "dtbs-with-symbols";
- inherit (cfg.kernelPackage) src nativeBuildInputs depsBuildBuild;
- patches = map (patch: patch.patch) cfg.kernelPackage.kernelPatches;
- buildPhase = ''
- patchShebangs scripts/*
- substituteInPlace scripts/Makefile.lib \
- --replace 'DTC_FLAGS += $(DTC_FLAGS_$(basetarget))' 'DTC_FLAGS += $(DTC_FLAGS_$(basetarget)) -@'
- make ${pkgs.stdenv.hostPlatform.linux-kernel.baseConfig} ARCH="${pkgs.stdenv.hostPlatform.linuxArch}"
- make dtbs ARCH="${pkgs.stdenv.hostPlatform.linuxArch}"
- '';
- installPhase = ''
- make dtbs_install INSTALL_DTBS_PATH=$out/dtbs ARCH="${pkgs.stdenv.hostPlatform.linuxArch}"
- '';
- };
-
filterDTBs = src: if isNull cfg.filter
then "${src}/dtbs"
else
@@ -83,6 +66,8 @@ let
| xargs -0 cp -v --no-preserve=mode --target-directory $out --parents
'';
+ filteredDTBs = filterDTBs cfg.kernelPackage;
+
# Compile single Device Tree overlay source
# file (.dts) into its compiled variant (.dtbo)
compileDTS = name: f: pkgs.callPackage({ stdenv, dtc }: stdenv.mkDerivation {
@@ -197,7 +182,7 @@ in
};
hardware.deviceTree.package = if (cfg.overlays != [])
- then pkgs.deviceTree.applyOverlays (filterDTBs dtbsWithSymbols) (withDTBOs cfg.overlays)
- else (filterDTBs cfg.kernelPackage);
+ then pkgs.deviceTree.applyOverlays filteredDTBs (withDTBOs cfg.overlays)
+ else filteredDTBs;
};
}
diff --git a/third_party/nixpkgs/nixos/modules/hardware/video/hidpi.nix b/third_party/nixpkgs/nixos/modules/hardware/video/hidpi.nix
index ac72b65250..1cb4470f1b 100644
--- a/third_party/nixpkgs/nixos/modules/hardware/video/hidpi.nix
+++ b/third_party/nixpkgs/nixos/modules/hardware/video/hidpi.nix
@@ -11,6 +11,14 @@ with lib;
console.earlySetup = mkDefault true;
boot.loader.systemd-boot.consoleMode = mkDefault "1";
+
+ # Grayscale anti-aliasing for fonts
+ fonts.fontconfig.antialias = mkDefault true;
+ fonts.fontconfig.subpixel = {
+ rgba = mkDefault "none";
+ lcdfilter = mkDefault "none";
+ };
+
# TODO Find reasonable defaults X11 & wayland
};
}
diff --git a/third_party/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix b/third_party/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
index cefe252e2e..6d0a11b749 100644
--- a/third_party/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/third_party/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -454,23 +454,23 @@ in
isoImage.isoName = mkOption {
default = "${config.isoImage.isoBaseName}.iso";
- description = ''
+ description = lib.mdDoc ''
Name of the generated ISO image file.
'';
};
isoImage.isoBaseName = mkOption {
default = "nixos";
- description = ''
+ description = lib.mdDoc ''
Prefix of the name of the generated ISO image file.
'';
};
isoImage.compressImage = mkOption {
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether the ISO image should be compressed using
- zstd.
+ {command}`zstd`.
'';
};
@@ -481,7 +481,7 @@ in
+ lib.optionalString isAarch "-Xbcj arm"
+ lib.optionalString (isPower && is32bit && isBigEndian) "-Xbcj powerpc"
+ lib.optionalString (isSparc) "-Xbcj sparc";
- description = ''
+ description = lib.mdDoc ''
Compression settings to use for the squashfs nix store.
'';
example = "zstd -Xcompression-level 6";
@@ -489,7 +489,7 @@ in
isoImage.edition = mkOption {
default = "";
- description = ''
+ description = lib.mdDoc ''
Specifies which edition string to use in the volume ID of the generated
ISO image.
'';
@@ -498,7 +498,7 @@ in
isoImage.volumeID = mkOption {
# nixos-$EDITION-$RELEASE-$ARCH
default = "nixos${optionalString (config.isoImage.edition != "") "-${config.isoImage.edition}"}-${config.system.nixos.release}-${pkgs.stdenv.hostPlatform.uname.processor}";
- description = ''
+ description = lib.mdDoc ''
Specifies the label or volume ID of the generated ISO image.
Note that the label is used by stage 1 of the boot process to
mount the CD, so it should be reasonably distinctive.
@@ -512,7 +512,7 @@ in
}
]
'';
- description = ''
+ description = lib.mdDoc ''
This option lists files to be copied to fixed locations in the
generated ISO image.
'';
@@ -520,7 +520,7 @@ in
isoImage.storeContents = mkOption {
example = literalExpression "[ pkgs.stdenv ]";
- description = ''
+ description = lib.mdDoc ''
This option lists additional derivations to be included in the
Nix store in the generated ISO image.
'';
@@ -528,7 +528,7 @@ in
isoImage.includeSystemBuildDependencies = mkOption {
default = false;
- description = ''
+ description = lib.mdDoc ''
Set this option to include all the needed sources etc in the
image. It significantly increases image size. Use that when
you want to be able to keep all the sources needed to build your
@@ -539,14 +539,14 @@ in
isoImage.makeEfiBootable = mkOption {
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether the ISO image should be an efi-bootable volume.
'';
};
isoImage.makeUsbBootable = mkOption {
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether the ISO image should be bootable from CD as well as USB.
'';
};
@@ -556,7 +556,7 @@ in
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/efi-background.png";
sha256 = "18lfwmp8yq923322nlb9gxrh5qikj1wsk6g5qvdh31c4h5b1538x";
};
- description = ''
+ description = lib.mdDoc ''
The splash image to use in the EFI bootloader.
'';
};
@@ -566,7 +566,7 @@ in
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/a9e05d7deb38a8e005a2b52575a3f59a63a4dba0/bootloader/isolinux/bios-boot.png";
sha256 = "1wp822zrhbg4fgfbwkr7cbkr4labx477209agzc0hr6k62fr6rxd";
};
- description = ''
+ description = lib.mdDoc ''
The splash image to use in the legacy-boot bootloader.
'';
};
@@ -574,7 +574,7 @@ in
isoImage.grubTheme = mkOption {
default = pkgs.nixos-grub2-theme;
type = types.nullOr (types.either types.path types.package);
- description = ''
+ description = lib.mdDoc ''
The grub2 theme used for UEFI boot.
'';
};
@@ -605,7 +605,7 @@ in
MENU COLOR SEL 7;37;40 #FFFFFFFF #FF5277C3 std
'';
type = types.str;
- description = ''
+ description = lib.mdDoc ''
The syslinux theme used for BIOS boot.
'';
};
@@ -613,12 +613,12 @@ in
isoImage.appendToMenuLabel = mkOption {
default = " Installer";
example = " Live System";
- description = ''
+ description = lib.mdDoc ''
The string to append after the menu label for the NixOS system.
This will be directly appended (without whitespace) to the NixOS version
- string, like for example if it is set to XXX:
+ string, like for example if it is set to `XXX`:
- NixOS 99.99-pre666XXX
+ `NixOS 99.99-pre666XXX`
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/installer/netboot/netboot.nix b/third_party/nixpkgs/nixos/modules/installer/netboot/netboot.nix
index fed6a7c372..03bb529cd8 100644
--- a/third_party/nixpkgs/nixos/modules/installer/netboot/netboot.nix
+++ b/third_party/nixpkgs/nixos/modules/installer/netboot/netboot.nix
@@ -10,7 +10,7 @@ with lib;
netboot.storeContents = mkOption {
example = literalExpression "[ pkgs.stdenv ]";
- description = ''
+ description = lib.mdDoc ''
This option lists additional derivations to be included in the
Nix store in the generated netboot image.
'';
diff --git a/third_party/nixpkgs/nixos/modules/installer/sd-card/sd-image.nix b/third_party/nixpkgs/nixos/modules/installer/sd-card/sd-image.nix
index c0335ea487..e192312649 100644
--- a/third_party/nixpkgs/nixos/modules/installer/sd-card/sd-image.nix
+++ b/third_party/nixpkgs/nixos/modules/installer/sd-card/sd-image.nix
@@ -35,14 +35,14 @@ in
options.sdImage = {
imageName = mkOption {
default = "${config.sdImage.imageBaseName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.img";
- description = ''
+ description = lib.mdDoc ''
Name of the generated image file.
'';
};
imageBaseName = mkOption {
default = "nixos-sd-image";
- description = ''
+ description = lib.mdDoc ''
Prefix of the name of the generated image file.
'';
};
@@ -50,7 +50,7 @@ in
storePaths = mkOption {
type = with types; listOf package;
example = literalExpression "[ pkgs.stdenv ]";
- description = ''
+ description = lib.mdDoc ''
Derivations to be included in the Nix store in the generated SD image.
'';
};
@@ -74,7 +74,7 @@ in
firmwarePartitionID = mkOption {
type = types.str;
default = "0x2178694e";
- description = ''
+ description = lib.mdDoc ''
Volume ID for the /boot/firmware partition on the SD card. This value
must be a 32-bit hexadecimal number.
'';
@@ -83,7 +83,7 @@ in
firmwarePartitionName = mkOption {
type = types.str;
default = "FIRMWARE";
- description = ''
+ description = lib.mdDoc ''
Name of the filesystem which holds the boot firmware.
'';
};
@@ -92,7 +92,7 @@ in
type = types.nullOr types.str;
default = null;
example = "14e19a7b-0ae0-484d-9d54-43bd6fdc20c7";
- description = ''
+ description = lib.mdDoc ''
UUID for the filesystem on the main NixOS partition on the SD card.
'';
};
@@ -101,14 +101,14 @@ in
type = types.int;
# As of 2019-08-18 the Raspberry pi firmware + u-boot takes ~18MiB
default = 30;
- description = ''
+ description = lib.mdDoc ''
Size of the /boot/firmware partition, in megabytes.
'';
};
populateFirmwareCommands = mkOption {
example = literalExpression "'' cp \${pkgs.myBootLoader}/u-boot.bin firmware/ ''";
- description = ''
+ description = lib.mdDoc ''
Shell commands to populate the ./firmware directory.
All files in that directory are copied to the
/boot/firmware partition on the SD image.
@@ -117,7 +117,7 @@ in
populateRootCommands = mkOption {
example = literalExpression "''\${config.boot.loader.generic-extlinux-compatible.populateCmd} -c \${config.system.build.toplevel} -d ./files/boot''";
- description = ''
+ description = lib.mdDoc ''
Shell commands to populate the ./files directory.
All files in that directory are copied to the
root (/) partition on the SD image. Use this to
@@ -128,7 +128,7 @@ in
postBuildCommands = mkOption {
example = literalExpression "'' dd if=\${pkgs.myBootLoader}/SPL of=$img bs=1024 seek=1 conv=notrunc ''";
default = "";
- description = ''
+ description = lib.mdDoc ''
Shell commands to run after the image is built.
Can be used for boards requiring to dd u-boot SPL before actual partitions.
'';
@@ -137,16 +137,16 @@ in
compressImage = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether the SD image should be compressed using
- zstd.
+ {command}`zstd`.
'';
};
expandOnBoot = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether to configure the sd image to expand it's partition on boot.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/misc/documentation.nix b/third_party/nixpkgs/nixos/modules/misc/documentation.nix
index 09f6d8443b..251a361a58 100644
--- a/third_party/nixpkgs/nixos/modules/misc/documentation.nix
+++ b/third_party/nixpkgs/nixos/modules/misc/documentation.nix
@@ -160,9 +160,9 @@ in
enable = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether to install documentation of packages from
- into the generated system path.
+ {option}`environment.systemPackages` into the generated system path.
See "Multiple-output packages" chapter in the nixpkgs manual for more info.
'';
@@ -172,9 +172,9 @@ in
man.enable = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether to install manual pages.
- This also includes man outputs.
+ This also includes `man` outputs.
'';
};
@@ -193,8 +193,8 @@ in
info.enable = mkOption {
type = types.bool;
default = true;
- description = ''
- Whether to install info pages and the info command.
+ description = lib.mdDoc ''
+ Whether to install info pages and the {command}`info` command.
This also includes "info" outputs.
'';
};
@@ -202,8 +202,8 @@ in
doc.enable = mkOption {
type = types.bool;
default = true;
- description = ''
- Whether to install documentation distributed in packages' /share/doc.
+ description = lib.mdDoc ''
+ Whether to install documentation distributed in packages' `/share/doc`.
Usually plain text and/or HTML.
This also includes "doc" outputs.
'';
@@ -230,8 +230,7 @@ in
Whether to install NixOS's own documentation.
This includes man pages like
- configuration.nix
- 5 if is
+ configuration.nix5 if is
set.This includes the HTML manual and the nixos-help command if
is set.
@@ -242,7 +241,7 @@ in
nixos.extraModules = mkOption {
type = types.listOf types.raw;
default = [];
- description = ''
+ description = lib.mdDoc ''
Modules for which to show options even when not imported.
'';
};
@@ -250,7 +249,7 @@ in
nixos.options.splitBuild = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether to split the option docs build into a cacheable and an uncacheable part.
Splitting the build can substantially decrease the amount of time needed to build
the manual, but some user modules may be incompatible with this splitting.
@@ -260,7 +259,7 @@ in
nixos.options.warningsAreErrors = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Treat warning emitted during the option documentation build (eg for missing option
descriptions) as errors.
'';
@@ -269,18 +268,18 @@ in
nixos.includeAllModules = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether the generated NixOS's documentation should include documentation for all
the options from all the NixOS modules included in the current
- configuration.nix. Disabling this will make the manual
- generator to ignore options defined outside of baseModules.
+ `configuration.nix`. Disabling this will make the manual
+ generator to ignore options defined outside of `baseModules`.
'';
};
nixos.extraModuleSources = mkOption {
type = types.listOf (types.either types.path types.str);
default = [ ];
- description = ''
+ description = lib.mdDoc ''
Which extra NixOS module paths the generated NixOS's documentation should strip
from options.
'';
diff --git a/third_party/nixpkgs/nixos/modules/misc/ids.nix b/third_party/nixpkgs/nixos/modules/misc/ids.nix
index e3d7866cab..38ab338aa5 100644
--- a/third_party/nixpkgs/nixos/modules/misc/ids.nix
+++ b/third_party/nixpkgs/nixos/modules/misc/ids.nix
@@ -354,6 +354,7 @@ in
webdav = 322;
pipewire = 323;
rstudio-server = 324;
+ localtimed = 325;
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
@@ -662,6 +663,7 @@ in
webdav = 322;
pipewire = 323;
rstudio-server = 324;
+ localtimed = 325;
# When adding a gid, make sure it doesn't match an existing
# uid. Users and groups with the same name should have equal
diff --git a/third_party/nixpkgs/nixos/modules/misc/locate.nix b/third_party/nixpkgs/nixos/modules/misc/locate.nix
index bba35b752c..b83e280b28 100644
--- a/third_party/nixpkgs/nixos/modules/misc/locate.nix
+++ b/third_party/nixpkgs/nixos/modules/misc/locate.nix
@@ -39,16 +39,15 @@ in
type = str;
default = "02:15";
example = "hourly";
- description = ''
+ description = lib.mdDoc ''
Update the locate database at this interval. Updates by
default at 2:15 AM every day.
The format is described in
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
- To disable automatic updates, set to "never"
- and run updatedb manually.
+ To disable automatic updates, set to `"never"`
+ and run {command}`updatedb` manually.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/misc/nixpkgs.nix b/third_party/nixpkgs/nixos/modules/misc/nixpkgs.nix
index bb21e31ec9..127f37b0df 100644
--- a/third_party/nixpkgs/nixos/modules/misc/nixpkgs.nix
+++ b/third_party/nixpkgs/nixos/modules/misc/nixpkgs.nix
@@ -117,13 +117,13 @@ in
'';
type = pkgsType;
example = literalExpression "import {}";
- description = ''
+ description = lib.mdDoc ''
If set, the pkgs argument to all NixOS modules is the value of
- this option, extended with nixpkgs.overlays, if
- that is also set. Either nixpkgs.crossSystem or
- nixpkgs.localSystem will be used in an assertion
+ this option, extended with `nixpkgs.overlays`, if
+ that is also set. Either `nixpkgs.crossSystem` or
+ `nixpkgs.localSystem` will be used in an assertion
to check that the NixOS and Nixpkgs architectures match. Any
- other options in nixpkgs.*, notably config,
+ other options in `nixpkgs.*`, notably `config`,
will be ignored.
If unset, the pkgs argument to all NixOS modules is determined
@@ -132,18 +132,18 @@ in
The default value imports the Nixpkgs source files
relative to the location of this NixOS module, because
NixOS and Nixpkgs are distributed together for consistency,
- so the nixos in the default value is in fact a
- relative path. The config, overlays,
- localSystem, and crossSystem come
+ so the `nixos` in the default value is in fact a
+ relative path. The `config`, `overlays`,
+ `localSystem`, and `crossSystem` come
from this option's siblings.
This option can be used by applications like NixOps to increase
the performance of evaluation, or to create packages that depend
on a container that should be built with the exact same evaluation
of Nixpkgs, for example. Applications like this should set
- their default value using lib.mkDefault, so
+ their default value using `lib.mkDefault`, so
user-provided configuration can override it without using
- lib.
+ `lib`.
Note that using a distinct version of Nixpkgs with NixOS may
be an unexpected source of problems. Use this option with care.
@@ -157,12 +157,12 @@ in
{ allowBroken = true; allowUnfree = true; }
'';
type = configType;
- description = ''
+ description = lib.mdDoc ''
The configuration of the Nix Packages collection. (For
details, see the Nixpkgs documentation.) It allows you to set
package configuration options.
- Ignored when nixpkgs.pkgs is set.
+ Ignored when `nixpkgs.pkgs` is set.
'';
};
@@ -180,17 +180,17 @@ in
]
'';
type = types.listOf overlayType;
- description = ''
+ description = lib.mdDoc ''
List of overlays to use with the Nix Packages collection.
(For details, see the Nixpkgs documentation.) It allows
you to override packages globally. Each function in the list
- takes as an argument the original Nixpkgs.
+ takes as an argument the *original* Nixpkgs.
The first argument should be used for finding dependencies, and
the second should be used for overriding recipes.
- If nixpkgs.pkgs is set, overlays specified here
+ If `nixpkgs.pkgs` is set, overlays specified here
will be applied after the overlays that were already present
- in nixpkgs.pkgs.
+ in `nixpkgs.pkgs`.
'';
};
@@ -202,12 +202,12 @@ in
apply = lib.systems.elaborate;
defaultText = literalExpression
''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
- description = ''
+ description = lib.mdDoc ''
Specifies the platform where the NixOS configuration will run.
- To cross-compile, set also nixpkgs.buildPlatform.
+ To cross-compile, set also `nixpkgs.buildPlatform`.
- Ignored when nixpkgs.pkgs is set.
+ Ignored when `nixpkgs.pkgs` is set.
'';
};
@@ -220,7 +220,7 @@ in
apply = lib.systems.elaborate;
defaultText = literalExpression
''config.nixpkgs.hostPlatform'';
- description = ''
+ description = lib.mdDoc ''
Specifies the platform on which NixOS should be built.
By default, NixOS is built on the system where it runs, but you can
change where it's built. Setting this option will cause NixOS to be
@@ -230,7 +230,7 @@ in
or if you're building machines, you can set this to match your
development system and/or build farm.
- Ignored when nixpkgs.pkgs is set.
+ Ignored when `nixpkgs.pkgs` is set.
'';
};
@@ -243,25 +243,25 @@ in
apply = lib.systems.elaborate;
defaultText = literalExpression
''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
- description = ''
- Systems with a recently generated hardware-configuration.nix
+ description = lib.mdDoc ''
+ Systems with a recently generated `hardware-configuration.nix`
do not need to specify this option, unless cross-compiling, in which case
- you should set only .
+ you should set *only* {option}`nixpkgs.buildPlatform`.
If this is somehow not feasible, you may fall back to removing the
- line from the generated config and
+ {option}`nixpkgs.hostPlatform` line from the generated config and
use the old options.
Specifies the platform on which NixOS should be built. When
- nixpkgs.crossSystem is unset, it also specifies
- the platform for which NixOS should be
+ `nixpkgs.crossSystem` is unset, it also specifies
+ the platform *for* which NixOS should be
built. If this option is unset, it defaults to the platform
type of the machine where evaluation happens. Specifying this
option is useful when doing distributed multi-platform
deployment, or when building virtual machines. See its
description in the Nixpkgs manual for more details.
- Ignored when nixpkgs.pkgs or hostPlatform is set.
+ Ignored when `nixpkgs.pkgs` or `hostPlatform` is set.
'';
};
@@ -272,20 +272,20 @@ in
type = types.nullOr types.attrs; # TODO utilize lib.systems.parsedPlatform
default = null;
example = { system = "aarch64-linux"; config = "aarch64-unknown-linux-gnu"; };
- description = ''
- Systems with a recently generated hardware-configuration.nix
- may instead specify only ,
- or fall back to removing the line from the generated config.
+ description = lib.mdDoc ''
+ Systems with a recently generated `hardware-configuration.nix`
+ may instead specify *only* {option}`nixpkgs.buildPlatform`,
+ or fall back to removing the {option}`nixpkgs.hostPlatform` line from the generated config.
Specifies the platform for which NixOS should be
built. Specify this only if it is different from
- nixpkgs.localSystem, the platform
- on which NixOS should be built. In other
+ `nixpkgs.localSystem`, the platform
+ *on* which NixOS should be built. In other
words, specify this to cross-compile NixOS. Otherwise it
should be set as null, the default. See its description in the
Nixpkgs manual for more details.
- Ignored when nixpkgs.pkgs or hostPlatform is set.
+ Ignored when `nixpkgs.pkgs` or `hostPlatform` is set.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/misc/wordlist.nix b/third_party/nixpkgs/nixos/modules/misc/wordlist.nix
index 988b522d74..72ef226ca6 100644
--- a/third_party/nixpkgs/nixos/modules/misc/wordlist.nix
+++ b/third_party/nixpkgs/nixos/modules/misc/wordlist.nix
@@ -23,7 +23,7 @@ in
}
'';
- description = ''
+ description = lib.mdDoc ''
A set with the key names being the environment variable you'd like to
set and the values being a list of paths to text documents containing
lists of words. The various files will be merged, sorted, duplicates
diff --git a/third_party/nixpkgs/nixos/modules/module-list.nix b/third_party/nixpkgs/nixos/modules/module-list.nix
index 6e979561fa..e5f9c673c1 100644
--- a/third_party/nixpkgs/nixos/modules/module-list.nix
+++ b/third_party/nixpkgs/nixos/modules/module-list.nix
@@ -22,6 +22,7 @@
./config/ldap.nix
./config/locale.nix
./config/malloc.nix
+ ./config/mysql.nix
./config/networking.nix
./config/no-x-libs.nix
./config/nsswitch.nix
@@ -329,6 +330,7 @@
./services/cluster/kubernetes/proxy.nix
./services/cluster/kubernetes/scheduler.nix
./services/cluster/pacemaker/default.nix
+ ./services/cluster/patroni/default.nix
./services/cluster/spark/default.nix
./services/computing/boinc/client.nix
./services/computing/foldingathome/client.nix
@@ -618,6 +620,7 @@
./services/misc/plikd.nix
./services/misc/podgrab.nix
./services/misc/polaris.nix
+ ./services/misc/portunus.nix
./services/misc/prowlarr.nix
./services/misc/tautulli.nix
./services/misc/pinnwand.nix
@@ -637,6 +640,7 @@
./services/misc/sonarr.nix
./services/misc/sourcehut
./services/misc/spice-vdagentd.nix
+ ./services/misc/spice-webdavd.nix
./services/misc/ssm-agent.nix
./services/misc/sssd.nix
./services/misc/subsonic.nix
@@ -1023,7 +1027,7 @@
./services/system/cloud-init.nix
./services/system/dbus.nix
./services/system/earlyoom.nix
- ./services/system/localtime.nix
+ ./services/system/localtimed.nix
./services/system/kerberos/default.nix
./services/system/nscd.nix
./services/system/saslauthd.nix
@@ -1074,6 +1078,7 @@
./services/web-apps/jirafeau.nix
./services/web-apps/jitsi-meet.nix
./services/web-apps/keycloak.nix
+ ./services/web-apps/komga.nix
./services/web-apps/lemmy.nix
./services/web-apps/invidious.nix
./services/web-apps/invoiceplane.nix
@@ -1134,6 +1139,7 @@
./services/web-servers/pomerium.nix
./services/web-servers/unit/default.nix
./services/web-servers/tomcat.nix
+ ./services/web-servers/keter
./services/web-servers/traefik.nix
./services/web-servers/trafficserver/default.nix
./services/web-servers/ttyd.nix
diff --git a/third_party/nixpkgs/nixos/modules/profiles/clone-config.nix b/third_party/nixpkgs/nixos/modules/profiles/clone-config.nix
index 3f669ba7d2..ba65a250d2 100644
--- a/third_party/nixpkgs/nixos/modules/profiles/clone-config.nix
+++ b/third_party/nixpkgs/nixos/modules/profiles/clone-config.nix
@@ -61,7 +61,7 @@ in
installer.cloneConfig = mkOption {
default = true;
- description = ''
+ description = lib.mdDoc ''
Try to clone the installation-device configuration by re-using it's
profile from the list of imported modules.
'';
@@ -70,14 +70,14 @@ in
installer.cloneConfigIncludes = mkOption {
default = [];
example = [ "./nixos/modules/hardware/network/rt73.nix" ];
- description = ''
+ description = lib.mdDoc ''
List of modules used to re-build this installation device profile.
'';
};
installer.cloneConfigExtra = mkOption {
default = "";
- description = ''
+ description = lib.mdDoc ''
Extra text to include in the cloned configuration.nix included in this
installer.
'';
diff --git a/third_party/nixpkgs/nixos/modules/programs/captive-browser.nix b/third_party/nixpkgs/nixos/modules/programs/captive-browser.nix
index 7ebce17beb..fd8400315a 100644
--- a/third_party/nixpkgs/nixos/modules/programs/captive-browser.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/captive-browser.nix
@@ -85,9 +85,9 @@ in
bindInterface = mkOption {
default = true;
type = types.bool;
- description = ''
- Binds captive-browser to the network interface declared in
- cfg.interface. This can be used to avoid collisions
+ description = lib.mdDoc ''
+ Binds `captive-browser` to the network interface declared in
+ `cfg.interface`. This can be used to avoid collisions
with private subnets.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/programs/chromium.nix b/third_party/nixpkgs/nixos/modules/programs/chromium.nix
index 98eb071e61..58ead42daf 100644
--- a/third_party/nixpkgs/nixos/modules/programs/chromium.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/chromium.nix
@@ -76,10 +76,10 @@ in
extraOpts = mkOption {
type = types.attrs;
- description = ''
+ description = lib.mdDoc ''
Extra chromium policy options. A list of available policies
can be found in the Chrome Enterprise documentation:
- https://cloud.google.com/docs/chrome-enterprise/policies/
+
Make sure the selected policy is supported on Linux and your browser version.
'';
default = {};
diff --git a/third_party/nixpkgs/nixos/modules/programs/k3b.nix b/third_party/nixpkgs/nixos/modules/programs/k3b.nix
index 68a4d08f34..cdaed3cf70 100644
--- a/third_party/nixpkgs/nixos/modules/programs/k3b.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/k3b.nix
@@ -8,15 +8,15 @@ with lib;
enable = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable k3b, the KDE disk burning application.
- Additionally to installing k3b enabling this will
- add setuid wrappers in /run/wrappers/bin
- for both cdrdao and cdrecord. On first
- run you must manually configure the path of cdrdae and
- cdrecord to correspond to the appropriate paths under
- /run/wrappers/bin in the "Setup External Programs" menu.
+ Additionally to installing `k3b` enabling this will
+ add `setuid` wrappers in `/run/wrappers/bin`
+ for both `cdrdao` and `cdrecord`. On first
+ run you must manually configure the path of `cdrdae` and
+ `cdrecord` to correspond to the appropriate paths under
+ `/run/wrappers/bin` in the "Setup External Programs" menu.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/programs/mosh.nix b/third_party/nixpkgs/nixos/modules/programs/mosh.nix
index 31aadb6aba..9e56e1731d 100644
--- a/third_party/nixpkgs/nixos/modules/programs/mosh.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/mosh.nix
@@ -17,7 +17,7 @@ in
type = lib.types.bool;
};
withUtempter = mkOption {
- description = ''
+ description = lib.mdDoc ''
Whether to enable libutempter for mosh.
This is required so that mosh can write to /var/run/utmp (which can be queried with `who` to display currently connected user sessions).
Note, this will add a guid wrapper for the group utmp!
diff --git a/third_party/nixpkgs/nixos/modules/programs/msmtp.nix b/third_party/nixpkgs/nixos/modules/programs/msmtp.nix
index fbdab2cac5..023ffdd444 100644
--- a/third_party/nixpkgs/nixos/modules/programs/msmtp.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/msmtp.nix
@@ -45,7 +45,7 @@ in {
passwordeval = "cat /secrets/password.txt";
};
};
- description = ''
+ description = lib.mdDoc ''
Named accounts and their respective configurations.
The special name "default" allows a default account to be defined.
See msmtp(1) for the available options.
diff --git a/third_party/nixpkgs/nixos/modules/programs/ssh.nix b/third_party/nixpkgs/nixos/modules/programs/ssh.nix
index 9c4a95ef22..865c0becdb 100644
--- a/third_party/nixpkgs/nixos/modules/programs/ssh.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/ssh.nix
@@ -93,10 +93,10 @@ in
extraConfig = mkOption {
type = types.lines;
default = "";
- description = ''
- Extra configuration text prepended to ssh_config. Other generated
- options will be added after a Host * pattern.
- See ssh_config5
+ description = lib.mdDoc ''
+ Extra configuration text prepended to {file}`ssh_config`. Other generated
+ options will be added after a `Host *` pattern.
+ See {manpage}`ssh_config(5)`
for help.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/programs/thefuck.nix b/third_party/nixpkgs/nixos/modules/programs/thefuck.nix
index 18d09e2686..6b939cce41 100644
--- a/third_party/nixpkgs/nixos/modules/programs/thefuck.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/thefuck.nix
@@ -22,7 +22,7 @@ in
default = "fuck";
type = types.str;
- description = ''
+ description = lib.mdDoc ''
`thefuck` needs an alias to be configured.
The default value is `fuck`, but you can use anything else as well.
'';
diff --git a/third_party/nixpkgs/nixos/modules/programs/tsm-client.nix b/third_party/nixpkgs/nixos/modules/programs/tsm-client.nix
index 0a3af3744a..cdd70b7744 100644
--- a/third_party/nixpkgs/nixos/modules/programs/tsm-client.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/tsm-client.nix
@@ -95,13 +95,13 @@ let
exclude.dir /nix/store
include.encrypt /home/.../*
'';
- description = ''
- include.* and
- exclude.* directives to be
+ description = lib.mdDoc ''
+ `include.*` and
+ `exclude.*` directives to be
used when sending files to the IBM TSM server.
The lines will be written into a file that the
- inclexcl
- directive in dsm.sys points to.
+ `inclexcl`
+ directive in {file}`dsm.sys` points to.
'';
};
options.extraConfig = mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/programs/yabar.nix b/third_party/nixpkgs/nixos/modules/programs/yabar.nix
index 0ec668ada8..c6eb0eb10c 100644
--- a/third_party/nixpkgs/nixos/modules/programs/yabar.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/yabar.nix
@@ -62,7 +62,7 @@ in
to use `yabar-unstable'.
'';
- description = ''
+ description = lib.mdDoc ''
The package which contains the `yabar` binary.
Nixpkgs provides the `yabar` and `yabar-unstable`
diff --git a/third_party/nixpkgs/nixos/modules/programs/zsh/oh-my-zsh.nix b/third_party/nixpkgs/nixos/modules/programs/zsh/oh-my-zsh.nix
index b253b803ed..41ea31b0f1 100644
--- a/third_party/nixpkgs/nixos/modules/programs/zsh/oh-my-zsh.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/zsh/oh-my-zsh.nix
@@ -49,7 +49,7 @@ in
package = mkOption {
default = pkgs.oh-my-zsh;
defaultText = literalExpression "pkgs.oh-my-zsh";
- description = ''
+ description = lib.mdDoc ''
Package to install for `oh-my-zsh` usage.
'';
@@ -67,7 +67,7 @@ in
custom = mkOption {
default = null;
type = with types; nullOr str;
- description = ''
+ description = lib.mdDoc ''
Path to a custom oh-my-zsh package to override config of oh-my-zsh.
(Can't be used along with `customPkgs`).
'';
@@ -76,7 +76,7 @@ in
customPkgs = mkOption {
default = [];
type = types.listOf types.package;
- description = ''
+ description = lib.mdDoc ''
List of custom packages that should be loaded into `oh-my-zsh`.
'';
};
@@ -92,7 +92,7 @@ in
cacheDir = mkOption {
default = "$HOME/.cache/oh-my-zsh";
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Cache directory to be used by `oh-my-zsh`.
Without this option it would default to the read-only nix store.
'';
diff --git a/third_party/nixpkgs/nixos/modules/programs/zsh/zsh-autoenv.nix b/third_party/nixpkgs/nixos/modules/programs/zsh/zsh-autoenv.nix
index 62f497a45d..46fc4d49c5 100644
--- a/third_party/nixpkgs/nixos/modules/programs/zsh/zsh-autoenv.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/zsh/zsh-autoenv.nix
@@ -11,7 +11,7 @@ in {
package = mkOption {
default = pkgs.zsh-autoenv;
defaultText = literalExpression "pkgs.zsh-autoenv";
- description = ''
+ description = lib.mdDoc ''
Package to install for `zsh-autoenv` usage.
'';
diff --git a/third_party/nixpkgs/nixos/modules/programs/zsh/zsh-autosuggestions.nix b/third_party/nixpkgs/nixos/modules/programs/zsh/zsh-autosuggestions.nix
index b6c36a082e..92a3fc0813 100644
--- a/third_party/nixpkgs/nixos/modules/programs/zsh/zsh-autosuggestions.nix
+++ b/third_party/nixpkgs/nixos/modules/programs/zsh/zsh-autosuggestions.nix
@@ -24,7 +24,7 @@ in
strategy = mkOption {
type = types.listOf (types.enum [ "history" "completion" "match_prev_cmd" ]);
default = [ "history" ];
- description = ''
+ description = lib.mdDoc ''
`ZSH_AUTOSUGGEST_STRATEGY` is an array that specifies how suggestions should be generated.
The strategies in the array are tried successively until a suggestion is found.
There are currently three built-in strategies to choose from:
diff --git a/third_party/nixpkgs/nixos/modules/security/acme/default.nix b/third_party/nixpkgs/nixos/modules/security/acme/default.nix
index a1d8c53330..f85cf2fc12 100644
--- a/third_party/nixpkgs/nixos/modules/security/acme/default.nix
+++ b/third_party/nixpkgs/nixos/modules/security/acme/default.nix
@@ -451,10 +451,9 @@ let
renewInterval = mkOption {
type = types.str;
inherit (defaultAndText "renewInterval" "daily") default defaultText;
- description = ''
+ description = lib.mdDoc ''
Systemd calendar expression when to check for renewal. See
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
@@ -677,7 +676,7 @@ let
inheritDefaults = mkOption {
default = true;
example = true;
- description = "Whether to inherit values set in `security.acme.defaults` or not.";
+ description = lib.mdDoc "Whether to inherit values set in `security.acme.defaults` or not.";
type = lib.types.bool;
};
};
diff --git a/third_party/nixpkgs/nixos/modules/security/acme/doc.xml b/third_party/nixpkgs/nixos/modules/security/acme/doc.xml
index f623cc509b..4817f7a7fc 100644
--- a/third_party/nixpkgs/nixos/modules/security/acme/doc.xml
+++ b/third_party/nixpkgs/nixos/modules/security/acme/doc.xml
@@ -81,8 +81,8 @@ services.nginx = {
};
# We can also add a different vhost and reuse the same certificate
- # but we have to append extraDomainNames manually.
- security.acme.certs."foo.example.com".extraDomainNames = [ "baz.example.com" ];
+ # but we have to append extraDomainNames manually beforehand:
+ # security.acme.certs."foo.example.com".extraDomainNames = [ "baz.example.com" ];
"baz.example.com" = {
forceSSL = true;
useACMEHost = "foo.example.com";
diff --git a/third_party/nixpkgs/nixos/modules/security/apparmor.nix b/third_party/nixpkgs/nixos/modules/security/apparmor.nix
index be1b0362fc..c4eca45325 100644
--- a/third_party/nixpkgs/nixos/modules/security/apparmor.nix
+++ b/third_party/nixpkgs/nixos/modules/security/apparmor.nix
@@ -42,7 +42,7 @@ in
if you want this service to do such killing
by sending a SIGTERM to those running processes'';
policies = mkOption {
- description = ''
+ description = lib.mdDoc ''
AppArmor policies.
'';
type = types.attrsOf (types.submodule ({ name, config, ... }: {
@@ -50,7 +50,7 @@ in
enable = mkDisableOption "loading of the profile into the kernel";
enforce = mkDisableOption "enforcing of the policy or only complain in the logs";
profile = mkOption {
- description = "The policy of the profile.";
+ description = lib.mdDoc "The policy of the profile.";
type = types.lines;
apply = pkgs.writeText name;
};
@@ -61,16 +61,16 @@ in
includes = mkOption {
type = types.attrsOf types.lines;
default = {};
- description = ''
+ description = lib.mdDoc ''
List of paths to be added to AppArmor's searched paths
- when resolving include directives.
+ when resolving `include` directives.
'';
apply = mapAttrs pkgs.writeText;
};
packages = mkOption {
type = types.listOf types.package;
default = [];
- description = "List of packages to be added to AppArmor's include path";
+ description = lib.mdDoc "List of packages to be added to AppArmor's include path";
};
enableCache = mkEnableOption ''
caching of AppArmor policies
diff --git a/third_party/nixpkgs/nixos/modules/security/dhparams.nix b/third_party/nixpkgs/nixos/modules/security/dhparams.nix
index b3fce7e83a..93c9066dc9 100644
--- a/third_party/nixpkgs/nixos/modules/security/dhparams.nix
+++ b/third_party/nixpkgs/nixos/modules/security/dhparams.nix
@@ -94,7 +94,7 @@ in {
If this is false the resulting store
path will be non-deterministic and will be rebuilt every time the
- openssl package changes.
+ openssl package changes.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/security/pam.nix b/third_party/nixpkgs/nixos/modules/security/pam.nix
index 2d0f256897..94b59c83d4 100644
--- a/third_party/nixpkgs/nixos/modules/security/pam.nix
+++ b/third_party/nixpkgs/nixos/modules/security/pam.nix
@@ -142,6 +142,16 @@ let
'';
};
+ mysqlAuth = mkOption {
+ default = config.users.mysql.enable;
+ defaultText = literalExpression "config.users.mysql.enable";
+ type = types.bool;
+ description = ''
+ If set, the pam_mysql module will be used to
+ authenticate users against a MySQL/MariaDB database.
+ '';
+ };
+
fprintAuth = mkOption {
default = config.services.fprintd.enable;
defaultText = literalExpression "config.services.fprintd.enable";
@@ -310,12 +320,10 @@ let
limits = mkOption {
default = [];
type = limitsType;
- description = ''
+ description = lib.mdDoc ''
Attribute set describing resource limits. Defaults to the
- value of .
- The meaning of the values is explained in
- limits.conf5
- .
+ value of {option}`security.pam.loginLimits`.
+ The meaning of the values is explained in {manpage}`limits.conf(5)`.
'';
};
@@ -442,11 +450,13 @@ let
(
''
# Account management.
- account required pam_unix.so
'' +
optionalString use_ldap ''
account sufficient ${pam_ldap}/lib/security/pam_ldap.so
'' +
+ optionalString cfg.mysqlAuth ''
+ account sufficient ${pkgs.pam_mysql}/lib/security/pam_mysql.so config_file=/etc/security/pam_mysql.conf
+ '' +
optionalString (config.services.sssd.enable && cfg.sssdStrictAccess==false) ''
account sufficient ${pkgs.sssd}/lib/security/pam_sss.so
'' +
@@ -460,7 +470,11 @@ let
account [success=ok ignore=ignore default=die] ${pkgs.google-guest-oslogin}/lib/security/pam_oslogin_login.so
account [success=ok default=ignore] ${pkgs.google-guest-oslogin}/lib/security/pam_oslogin_admin.so
'' +
+ # The required pam_unix.so module has to come after all the sufficient modules
+ # because otherwise, the account lookup will fail if the user does not exist
+ # locally, for example with MySQL- or LDAP-auth.
''
+ account required pam_unix.so
# Authentication management.
'' +
@@ -476,6 +490,9 @@ let
optionalString cfg.logFailures ''
auth required pam_faillock.so
'' +
+ optionalString cfg.mysqlAuth ''
+ auth sufficient ${pkgs.pam_mysql}/lib/security/pam_mysql.so config_file=/etc/security/pam_mysql.conf
+ '' +
optionalString (config.security.pam.enableSSHAgentAuth && cfg.sshAgentAuth) ''
auth sufficient ${pkgs.pam_ssh_agent_auth}/libexec/pam_ssh_agent_auth.so file=${lib.concatStringsSep ":" config.services.openssh.authorizedKeysFiles}
'' +
@@ -573,6 +590,9 @@ let
optionalString use_ldap ''
password sufficient ${pam_ldap}/lib/security/pam_ldap.so
'' +
+ optionalString cfg.mysqlAuth ''
+ password sufficient ${pkgs.pam_mysql}/lib/security/pam_mysql.so config_file=/etc/security/pam_mysql.conf
+ '' +
optionalString config.services.sssd.enable ''
password sufficient ${pkgs.sssd}/lib/security/pam_sss.so use_authtok
'' +
@@ -616,6 +636,9 @@ let
optionalString use_ldap ''
session optional ${pam_ldap}/lib/security/pam_ldap.so
'' +
+ optionalString cfg.mysqlAuth ''
+ session optional ${pkgs.pam_mysql}/lib/security/pam_mysql.so config_file=/etc/security/pam_mysql.conf
+ '' +
optionalString config.services.sssd.enable ''
session optional ${pkgs.sssd}/lib/security/pam_sss.so
'' +
@@ -750,19 +773,18 @@ in
}
];
- description =
- '' Define resource limits that should apply to users or groups.
- Each item in the list should be an attribute set with a
- domain, type,
- item, and value
- attribute. The syntax and semantics of these attributes
- must be that described in limits.conf
- 5.
+ description = ''
+ Define resource limits that should apply to users or groups.
+ Each item in the list should be an attribute set with a
+ domain, type,
+ item, and value
+ attribute. The syntax and semantics of these attributes
+ must be that described in limits.conf5.
- Note that these limits do not apply to systemd services,
- whose limits can be changed via
- instead.
- '';
+ Note that these limits do not apply to systemd services,
+ whose limits can be changed via
+ instead.
+ '';
};
security.pam.services = mkOption {
@@ -838,17 +860,14 @@ in
control = mkOption {
default = "sufficient";
type = types.enum [ "required" "requisite" "sufficient" "optional" ];
- description = ''
+ description = lib.mdDoc ''
This option sets pam "control".
If you want to have multi factor authentication, use "required".
If you want to use the PKCS#11 device instead of the regular password,
use "sufficient".
Read
-
- pam.conf
- 5
-
+ {manpage}`pam.conf(5)`
for better understanding of this option.
'';
};
@@ -929,16 +948,13 @@ in
control = mkOption {
default = "sufficient";
type = types.enum [ "required" "requisite" "sufficient" "optional" ];
- description = ''
+ description = lib.mdDoc ''
This option sets pam "control".
If you want to have multi factor authentication, use "required".
If you want to use U2F device instead of regular password, use "sufficient".
Read
-
- pam.conf
- 5
-
+ {manpage}`pam.conf(5)`
for better understanding of this option.
'';
};
@@ -1047,17 +1063,14 @@ in
control = mkOption {
default = "sufficient";
type = types.enum [ "required" "requisite" "sufficient" "optional" ];
- description = ''
+ description = lib.mdDoc ''
This option sets pam "control".
If you want to have multi factor authentication, use "required".
If you want to use the SSH certificate instead of the regular password,
use "sufficient".
Read
-
- pam.conf
- 5
-
+ {manpage}`pam.conf(5)`
for better understanding of this option.
'';
};
@@ -1082,16 +1095,13 @@ in
control = mkOption {
default = "sufficient";
type = types.enum [ "required" "requisite" "sufficient" "optional" ];
- description = ''
+ description = lib.mdDoc ''
This option sets pam "control".
If you want to have multi factor authentication, use "required".
If you want to use Yubikey instead of regular password, use "sufficient".
Read
-
- pam.conf
- 5
-
+ {manpage}`pam.conf(5)`
for better understanding of this option.
'';
};
@@ -1250,6 +1260,9 @@ in
optionalString (isEnabled (cfg: cfg.oathAuth)) ''
"mr ${pkgs.oath-toolkit}/lib/security/pam_oath.so,
'' +
+ optionalString (isEnabled (cfg: cfg.mysqlAuth)) ''
+ mr ${pkgs.pam_mysql}/lib/security/pam_mysql.so,
+ '' +
optionalString (isEnabled (cfg: cfg.yubicoAuth)) ''
mr ${pkgs.yubico-pam}/lib/security/pam_yubico.so,
'' +
diff --git a/third_party/nixpkgs/nixos/modules/security/sudo.nix b/third_party/nixpkgs/nixos/modules/security/sudo.nix
index faa99a31a6..68ceb6c230 100644
--- a/third_party/nixpkgs/nixos/modules/security/sudo.nix
+++ b/third_party/nixpkgs/nixos/modules/security/sudo.nix
@@ -46,7 +46,7 @@ in
type = types.package;
default = pkgs.sudo;
defaultText = literalExpression "pkgs.sudo";
- description = ''
+ description = lib.mdDoc ''
Which package to use for `sudo`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/security/systemd-confinement.nix b/third_party/nixpkgs/nixos/modules/security/systemd-confinement.nix
index 07b725effb..f5ed3d281a 100644
--- a/third_party/nixpkgs/nixos/modules/security/systemd-confinement.nix
+++ b/third_party/nixpkgs/nixos/modules/security/systemd-confinement.nix
@@ -10,12 +10,10 @@ in {
options.confinement.enable = lib.mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
If set, all the required runtime store paths for this service are
- bind-mounted into a tmpfs-based
- chroot
- 2
- .
+ bind-mounted into a `tmpfs`-based
+ {manpage}`chroot(2)`.
'';
};
@@ -63,16 +61,13 @@ in {
default = toplevelConfig.environment.binsh;
defaultText = lib.literalExpression "config.environment.binsh";
example = lib.literalExpression ''"''${pkgs.dash}/bin/dash"'';
- description = ''
- The program to make available as /bin/sh inside
- the chroot. If this is set to null, no
- /bin/sh is provided at all.
+ description = lib.mdDoc ''
+ The program to make available as {file}`/bin/sh` inside
+ the chroot. If this is set to `null`, no
+ {file}`/bin/sh` is provided at all.
This is useful for some applications, which for example use the
-
- system
- 3
- library function to execute commands.
+ {manpage}`system(3)` library function to execute commands.
'';
};
@@ -88,10 +83,8 @@ in {
name space.
If this is set to chroot-only, only the file
- system name space is set up along with the call to
- chroot
- 2
- .
+ system name space is set up along with the call to
+ chroot2.
This doesn't cover network namespaces and is solely for
file system level isolation.
diff --git a/third_party/nixpkgs/nixos/modules/security/wrappers/default.nix b/third_party/nixpkgs/nixos/modules/security/wrappers/default.nix
index cdf99e697f..aa37ec7db4 100644
--- a/third_party/nixpkgs/nixos/modules/security/wrappers/default.nix
+++ b/third_party/nixpkgs/nixos/modules/security/wrappers/default.nix
@@ -54,10 +54,7 @@ let
description = ''
A comma-separated list of capabilities to be given to the wrapper
program. For capabilities supported by the system check the
-
- capabilities
- 7
-
+ capabilities7
manual page.
@@ -188,6 +185,16 @@ in
'';
};
+ security.wrapperDirSize = lib.mkOption {
+ default = "50%";
+ example = "10G";
+ type = lib.types.str;
+ description = ''
+ Size limit for the /run/wrappers tmpfs. Look at mount(8), tmpfs size option,
+ for the accepted syntax. WARNING: don't set to less than 64MB.
+ '';
+ };
+
security.wrapperDir = lib.mkOption {
type = lib.types.path;
default = "/run/wrappers/bin";
@@ -230,7 +237,7 @@ in
boot.specialFileSystems.${parentWrapperDir} = {
fsType = "tmpfs";
- options = [ "nodev" "mode=755" ];
+ options = [ "nodev" "mode=755" "size=${config.security.wrapperDirSize}" ];
};
# Make sure our wrapperDir exports to the PATH env variable when
diff --git a/third_party/nixpkgs/nixos/modules/services/backup/borgbackup.nix b/third_party/nixpkgs/nixos/modules/services/backup/borgbackup.nix
index 147b827497..f02e15f2b9 100644
--- a/third_party/nixpkgs/nixos/modules/services/backup/borgbackup.nix
+++ b/third_party/nixpkgs/nixos/modules/services/backup/borgbackup.nix
@@ -23,12 +23,10 @@ let
on_exit()
{
exitStatus=$?
- # Reset the EXIT handler, or else we're called again on 'exit' below
- trap - EXIT
${cfg.postHook}
exit $exitStatus
}
- trap 'on_exit' INT TERM QUIT EXIT
+ trap on_exit EXIT
archiveName="${if cfg.archiveBaseName == null then "" else cfg.archiveBaseName + "-"}$(date ${cfg.dateFormat})"
archiveSuffix="${optionalString cfg.appendFailedSuffix ".failed"}"
@@ -320,13 +318,12 @@ in {
startAt = mkOption {
type = with types; either str (listOf str);
default = "daily";
- description = ''
+ description = lib.mdDoc ''
When or how often the backup should run.
Must be in the format described in
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
If you do not want the backup to start
- automatically, use [ ].
+ automatically, use `[ ]`.
It will generate a systemd service borgbackup-job-NAME.
You may trigger it manually via systemctl restart borgbackup-job-NAME.
'';
@@ -336,10 +333,9 @@ in {
default = false;
type = types.bool;
example = true;
- description = ''
- Set the persistentTimer option for the
- systemd.timer
- 5
+ description = lib.mdDoc ''
+ Set the `persistentTimer` option for the
+ {manpage}`systemd.timer(5)`
which triggers the backup immediately if the last trigger
was missed (e.g. if the system was powered down).
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/backup/duplicity.nix b/third_party/nixpkgs/nixos/modules/services/backup/duplicity.nix
index 765afd43d6..afa4f31b12 100644
--- a/third_party/nixpkgs/nixos/modules/services/backup/duplicity.nix
+++ b/third_party/nixpkgs/nixos/modules/services/backup/duplicity.nix
@@ -27,30 +27,27 @@ in
type = types.listOf types.str;
default = [ ];
example = [ "/home" ];
- description = ''
+ description = lib.mdDoc ''
List of paths to include into the backups. See the FILE SELECTION
- section in duplicity
- 1 for details on the syntax.
+ section in {manpage}`duplicity(1)` for details on the syntax.
'';
};
exclude = mkOption {
type = types.listOf types.str;
default = [ ];
- description = ''
+ description = lib.mdDoc ''
List of paths to exclude from backups. See the FILE SELECTION section in
- duplicity
- 1 for details on the syntax.
+ {manpage}`duplicity(1)` for details on the syntax.
'';
};
targetUrl = mkOption {
type = types.str;
example = "s3://host:port/prefix";
- description = ''
+ description = lib.mdDoc ''
Target url to backup to. See the URL FORMAT section in
- duplicity
- 1 for supported urls.
+ {manpage}`duplicity(1)` for supported urls.
'';
};
@@ -60,8 +57,7 @@ in
description = ''
Path of a file containing secrets (gpg passphrase, access key...) in
the format of EnvironmentFile as described by
- systemd.exec
- 5. For example:
+ systemd.exec5. For example:
PASSPHRASE=«...»
AWS_ACCESS_KEY_ID=«...»
@@ -73,10 +69,9 @@ in
frequency = mkOption {
type = types.nullOr types.str;
default = "daily";
- description = ''
+ description = lib.mdDoc ''
Run duplicity with the given frequency (see
- systemd.time
- 7 for the format).
+ {manpage}`systemd.time(7)` for the format).
If null, do not run automatically.
'';
};
@@ -85,10 +80,9 @@ in
type = types.listOf types.str;
default = [ ];
example = [ "--backend-retry-delay" "100" ];
- description = ''
+ description = lib.mdDoc ''
Extra command-line flags passed to duplicity. See
- duplicity
- 1.
+ {manpage}`duplicity(1)`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/backup/sanoid.nix b/third_party/nixpkgs/nixos/modules/services/backup/sanoid.nix
index 847b8507f7..0c01aa57f7 100644
--- a/third_party/nixpkgs/nixos/modules/services/backup/sanoid.nix
+++ b/third_party/nixpkgs/nixos/modules/services/backup/sanoid.nix
@@ -118,12 +118,11 @@ in
type = types.str;
default = "hourly";
example = "daily";
- description = ''
+ description = lib.mdDoc ''
Run sanoid at this interval. The default is to run hourly.
The format is described in
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/backup/syncoid.nix b/third_party/nixpkgs/nixos/modules/services/backup/syncoid.nix
index cbfbc59bf5..1e445f4beb 100644
--- a/third_party/nixpkgs/nixos/modules/services/backup/syncoid.nix
+++ b/third_party/nixpkgs/nixos/modules/services/backup/syncoid.nix
@@ -16,11 +16,11 @@ let
lib.concatMapStrings (s: if lib.isList s then "-" else s)
(builtins.split "[^a-zA-Z0-9_.\\-]+" name);
- # Function to build "zfs allow" commands for the filesystems we've
- # delegated permissions to. It also checks if the target dataset
- # exists before delegating permissions, if it doesn't exist we
- # delegate it to the parent dataset. This should solve the case of
- # provisoning new datasets.
+ # Function to build "zfs allow" commands for the filesystems we've delegated
+ # permissions to. It also checks if the target dataset exists before
+ # delegating permissions, if it doesn't exist we delegate it to the parent
+ # dataset (if it exists). This should solve the case of provisoning new
+ # datasets.
buildAllowCommand = permissions: dataset: (
"-+${pkgs.writeShellScript "zfs-allow-${dataset}" ''
# Here we explicitly use the booted system to guarantee the stable API needed by ZFS
@@ -38,15 +38,17 @@ let
(concatStringsSep "," permissions)
dataset
]}
- else
- ${lib.escapeShellArgs [
- "/run/booted-system/sw/bin/zfs"
- "allow"
- cfg.user
- (concatStringsSep "," permissions)
- # Remove the last part of the path
- (builtins.dirOf dataset)
- ]}
+ ${lib.optionalString ((builtins.dirOf dataset) != ".") ''
+ else
+ ${lib.escapeShellArgs [
+ "/run/booted-system/sw/bin/zfs"
+ "allow"
+ cfg.user
+ (concatStringsSep "," permissions)
+ # Remove the last part of the path
+ (builtins.dirOf dataset)
+ ]}
+ ''}
fi
''}"
);
@@ -67,14 +69,14 @@ let
(concatStringsSep "," permissions)
dataset
]}
- ${lib.escapeShellArgs [
+ ${lib.optionalString ((builtins.dirOf dataset) != ".") (lib.escapeShellArgs [
"/run/booted-system/sw/bin/zfs"
"unallow"
cfg.user
(concatStringsSep "," permissions)
# Remove the last part of the path
(builtins.dirOf dataset)
- ]}
+ ])}
''}"
);
in
@@ -89,12 +91,11 @@ in
type = types.str;
default = "hourly";
example = "*-*-* *:15:00";
- description = ''
+ description = lib.mdDoc ''
Run syncoid at this interval. The default is to run hourly.
The format is described in
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/backup/tarsnap.nix b/third_party/nixpkgs/nixos/modules/services/backup/tarsnap.nix
index 965166479b..c2d4f87362 100644
--- a/third_party/nixpkgs/nixos/modules/services/backup/tarsnap.nix
+++ b/third_party/nixpkgs/nixos/modules/services/backup/tarsnap.nix
@@ -140,12 +140,11 @@ in
type = types.str;
default = "01:15";
example = "hourly";
- description = ''
+ description = lib.mdDoc ''
Create archive at this interval.
The format is described in
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/default.nix b/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/default.nix
index a3a28eb718..76e84c1111 100644
--- a/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/default.nix
@@ -16,9 +16,9 @@ with lib;
"fs.defaultFS" = "hdfs://localhost";
}
'';
- description = ''
+ description = lib.mdDoc ''
Hadoop core-site.xml definition
-
+
'';
};
coreSiteInternal = mkOption {
@@ -38,7 +38,7 @@ with lib;
"dfs.namenode.http-bind-host" = "0.0.0.0";
};
type = types.attrsOf types.anything;
- description = ''
+ description = lib.mdDoc ''
Default options for hdfs-site.xml
'';
};
@@ -50,9 +50,9 @@ with lib;
"dfs.nameservices" = "namenode1";
}
'';
- description = ''
+ description = lib.mdDoc ''
Additional options and overrides for hdfs-site.xml
-
+
'';
};
hdfsSiteInternal = mkOption {
@@ -80,7 +80,7 @@ with lib;
}
'';
type = types.attrsOf types.anything;
- description = ''
+ description = lib.mdDoc ''
Default options for mapred-site.xml
'';
};
@@ -92,9 +92,9 @@ with lib;
"mapreduce.map.java.opts" = "-Xmx900m -XX:+UseParallelGC";
}
'';
- description = ''
+ description = lib.mdDoc ''
Additional options and overrides for mapred-site.xml
-
+
'';
};
@@ -113,7 +113,7 @@ with lib;
"yarn.resourcemanager.scheduler.class" = "org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler";
};
type = types.attrsOf types.anything;
- description = ''
+ description = lib.mdDoc ''
Default options for yarn-site.xml
'';
};
@@ -125,9 +125,9 @@ with lib;
"yarn.resourcemanager.hostname" = "''${config.networking.hostName}";
}
'';
- description = ''
+ description = lib.mdDoc ''
Additional options and overrides for yarn-site.xml
-
+
'';
};
yarnSiteInternal = mkOption {
@@ -147,9 +147,9 @@ with lib;
"hadoop.http.max.threads" = 500;
}
'';
- description = ''
+ description = lib.mdDoc ''
Hadoop httpfs-site.xml definition
-
+
'';
};
@@ -162,7 +162,7 @@ with lib;
example = literalExpression ''
"''${pkgs.hadoop}/lib/''${pkgs.hadoop.untarDir}/etc/hadoop/log4j.properties";
'';
- description = "log4j.properties file added to HADOOP_CONF_DIR";
+ description = lib.mdDoc "log4j.properties file added to HADOOP_CONF_DIR";
};
containerExecutorCfg = mkOption {
@@ -179,9 +179,9 @@ with lib;
"feature.terminal.enabled" = 0;
}
'';
- description = ''
+ description = lib.mdDoc ''
Yarn container-executor.cfg definition
-
+
'';
};
@@ -194,7 +194,7 @@ with lib;
./extraYARNConfs
]
'';
- description = "Directories containing additional config files to be added to HADOOP_CONF_DIR";
+ description = lib.mdDoc "Directories containing additional config files to be added to HADOOP_CONF_DIR";
};
gatewayRole.enable = mkEnableOption "gateway role for deploying hadoop configs";
diff --git a/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/hbase.nix b/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/hbase.nix
index 246775dc89..8fd40459c1 100644
--- a/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/hbase.nix
+++ b/third_party/nixpkgs/nixos/modules/services/cluster/hadoop/hbase.nix
@@ -21,7 +21,7 @@ in
"hbase.cluster.distributed" = "true";
};
type = types.attrsOf types.anything;
- description = ''
+ description = lib.mdDoc ''
Default options for hbase-site.xml
'';
};
@@ -30,9 +30,9 @@ in
type = with types; attrsOf anything;
example = literalExpression ''
'';
- description = ''
+ description = lib.mdDoc ''
Additional options and overrides for hbase-site.xml
-
+
'';
};
hbaseSiteInternal = mkOption {
@@ -50,11 +50,11 @@ in
type = types.package;
default = pkgs.hbase;
defaultText = literalExpression "pkgs.hbase";
- description = "HBase package";
+ description = lib.mdDoc "HBase package";
};
rootdir = mkOption {
- description = ''
+ description = lib.mdDoc ''
This option will set "hbase.rootdir" in hbase-site.xml and determine
the directory shared by region servers and into which HBase persists.
The URL should be 'fully-qualified' to include the filesystem scheme.
@@ -68,7 +68,7 @@ in
default = "/hbase";
};
zookeeperQuorum = mkOption {
- description = ''
+ description = lib.mdDoc ''
This option will set "hbase.zookeeper.quorum" in hbase-site.xml.
Comma separated list of servers in the ZooKeeper ensemble.
'';
@@ -83,7 +83,7 @@ in
openFirewall = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Open firewall ports for HBase master.
'';
};
@@ -94,7 +94,7 @@ in
overrideHosts = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Remove /etc/hosts entries for "127.0.0.2" and "::1" defined in nixos/modules/config/networking.nix
Regionservers must be able to resolve their hostnames to their IP addresses, through PTR records
or /etc/hosts entries.
@@ -105,7 +105,7 @@ in
openFirewall = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Open firewall ports for HBase master.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/cluster/patroni/default.nix b/third_party/nixpkgs/nixos/modules/services/cluster/patroni/default.nix
new file mode 100644
index 0000000000..1685351e48
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/cluster/patroni/default.nix
@@ -0,0 +1,268 @@
+{ config, lib, pkgs, ... }:
+with lib;
+let
+ cfg = config.services.patroni;
+ defaultUser = "patroni";
+ defaultGroup = "patroni";
+ format = pkgs.formats.yaml { };
+
+ #boto doesn't support python 3.10 yet
+ patroni = pkgs.patroni.override { pythonPackages = pkgs.python39Packages; };
+
+ configFileName = "patroni-${cfg.scope}-${cfg.name}.yaml";
+ configFile = format.generate configFileName cfg.settings;
+in
+{
+ options.services.patroni = {
+
+ enable = mkEnableOption "Patroni";
+
+ postgresqlPackage = mkOption {
+ type = types.package;
+ example = literalExpression "pkgs.postgresql_14";
+ description = mdDoc ''
+ PostgreSQL package to use.
+ Plugins can be enabled like this `pkgs.postgresql_14.withPackages (p: [ p.pg_safeupdate p.postgis ])`.
+ '';
+ };
+
+ postgresqlDataDir = mkOption {
+ type = types.path;
+ defaultText = literalExpression ''"/var/lib/postgresql/''${config.services.patroni.postgresqlPackage.psqlSchema}"'';
+ example = "/var/lib/postgresql/14";
+ default = "/var/lib/postgresql/${cfg.postgresqlPackage.psqlSchema}";
+ description = mdDoc ''
+ The data directory for PostgreSQL. If left as the default value
+ this directory will automatically be created before the PostgreSQL server starts, otherwise
+ the sysadmin is responsible for ensuring the directory exists with appropriate ownership
+ and permissions.
+ '';
+ };
+
+ postgresqlPort = mkOption {
+ type = types.port;
+ default = 5432;
+ description = mdDoc ''
+ The port on which PostgreSQL listens.
+ '';
+ };
+
+ user = mkOption {
+ type = types.str;
+ default = defaultUser;
+ example = "postgres";
+ description = mdDoc ''
+ The user for the service. If left as the default value this user will automatically be created,
+ otherwise the sysadmin is responsible for ensuring the user exists.
+ '';
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = defaultGroup;
+ example = "postgres";
+ description = mdDoc ''
+ The group for the service. If left as the default value this group will automatically be created,
+ otherwise the sysadmin is responsible for ensuring the group exists.
+ '';
+ };
+
+ dataDir = mkOption {
+ type = types.path;
+ default = "/var/lib/patroni";
+ description = mdDoc ''
+ Folder where Patroni data will be written, used by Raft as well if enabled.
+ '';
+ };
+
+ scope = mkOption {
+ type = types.str;
+ example = "cluster1";
+ description = mdDoc ''
+ Cluster name.
+ '';
+ };
+
+ name = mkOption {
+ type = types.str;
+ example = "node1";
+ description = mdDoc ''
+ The name of the host. Must be unique for the cluster.
+ '';
+ };
+
+ namespace = mkOption {
+ type = types.str;
+ default = "/service";
+ description = mdDoc ''
+ Path within the configuration store where Patroni will keep information about the cluster.
+ '';
+ };
+
+ nodeIp = mkOption {
+ type = types.str;
+ example = "192.168.1.1";
+ description = mdDoc ''
+ IP address of this node.
+ '';
+ };
+
+ otherNodesIps = mkOption {
+ type = types.listOf types.string;
+ example = [ "192.168.1.2" "192.168.1.3" ];
+ description = mdDoc ''
+ IP addresses of the other nodes.
+ '';
+ };
+
+ restApiPort = mkOption {
+ type = types.port;
+ default = 8008;
+ description = mdDoc ''
+ The port on Patroni's REST api listens.
+ '';
+ };
+
+ raft = mkOption {
+ type = types.bool;
+ default = false;
+ description = mdDoc ''
+ This will configure Patroni to use its own RAFT implementation instead of using a dedicated DCS.
+ '';
+ };
+
+ raftPort = mkOption {
+ type = types.port;
+ default = 5010;
+ description = mdDoc ''
+ The port on which RAFT listens.
+ '';
+ };
+
+ softwareWatchdog = mkOption {
+ type = types.bool;
+ default = false;
+ description = mdDoc ''
+ This will configure Patroni to use the software watchdog built into the Linux kernel
+ as described in the [documentation](https://patroni.readthedocs.io/en/latest/watchdog.html#setting-up-software-watchdog-on-linux).
+ '';
+ };
+
+ settings = mkOption {
+ type = format.type;
+ default = { };
+ description = mdDoc ''
+ The primary patroni configuration. See the [documentation](https://patroni.readthedocs.io/en/latest/SETTINGS.html)
+ for possible values.
+ Secrets should be passed in by using the `environmentFiles` option.
+ '';
+ };
+
+ environmentFiles = mkOption {
+ type = with types; attrsOf (nullOr (oneOf [ str path package ]));
+ default = { };
+ example = {
+ PATRONI_REPLICATION_PASSWORD = "/secret/file";
+ PATRONI_SUPERUSER_PASSWORD = "/secret/file";
+ };
+ description = mdDoc "Environment variables made available to Patroni as files content, useful for providing secrets from files.";
+ };
+ };
+
+ config = mkIf cfg.enable {
+
+ services.patroni.settings = {
+ scope = cfg.scope;
+ name = cfg.name;
+ namespace = cfg.namespace;
+
+ restapi = {
+ listen = "${cfg.nodeIp}:${toString cfg.restApiPort}";
+ connect_address = "${cfg.nodeIp}:${toString cfg.restApiPort}";
+ };
+
+ raft = mkIf cfg.raft {
+ data_dir = "${cfg.dataDir}/raft";
+ self_addr = "${cfg.nodeIp}:5010";
+ partner_addrs = map (ip: ip + ":5010") cfg.otherNodesIps;
+ };
+
+ postgresql = {
+ listen = "${cfg.nodeIp}:${toString cfg.postgresqlPort}";
+ connect_address = "${cfg.nodeIp}:${toString cfg.postgresqlPort}";
+ data_dir = cfg.postgresqlDataDir;
+ bin_dir = "${cfg.postgresqlPackage}/bin";
+ pgpass = "${cfg.dataDir}/pgpass";
+ };
+
+ watchdog = mkIf cfg.softwareWatchdog {
+ mode = "required";
+ device = "/dev/watchdog";
+ safety_margin = 5;
+ };
+ };
+
+
+ users = {
+ users = mkIf (cfg.user == defaultUser) {
+ patroni = {
+ group = cfg.group;
+ isSystemUser = true;
+ };
+ };
+ groups = mkIf (cfg.group == defaultGroup) {
+ patroni = { };
+ };
+ };
+
+ systemd.services = {
+ patroni = {
+ description = "Runners to orchestrate a high-availability PostgreSQL";
+
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+
+ script = ''
+ ${concatStringsSep "\n" (attrValues (mapAttrs (name: path: ''export ${name}="$(< ${escapeShellArg path})"'') cfg.environmentFiles))}
+ exec ${patroni}/bin/patroni ${configFile}
+ '';
+
+ serviceConfig = mkMerge [
+ {
+ User = cfg.user;
+ Group = cfg.group;
+ Type = "simple";
+ Restart = "on-failure";
+ TimeoutSec = 30;
+ ExecReload = "${pkgs.coreutils}/bin/kill -s HUP $MAINPID";
+ KillMode = "process";
+ }
+ (mkIf (cfg.postgresqlDataDir == "/var/lib/postgresql/${cfg.postgresqlPackage.psqlSchema}" && cfg.dataDir == "/var/lib/patroni") {
+ StateDirectory = "patroni patroni/raft postgresql postgresql/${cfg.postgresqlPackage.psqlSchema}";
+ StateDirectoryMode = "0750";
+ })
+ ];
+ };
+ };
+
+ boot.kernelModules = mkIf cfg.softwareWatchdog [ "softdog" ];
+
+ services.udev.extraRules = mkIf cfg.softwareWatchdog ''
+ KERNEL=="watchdog", OWNER="${cfg.user}", GROUP="${cfg.group}", MODE="0600"
+ '';
+
+ environment.systemPackages = [
+ patroni
+ cfg.postgresqlPackage
+ (mkIf cfg.raft pkgs.python310Packages.pysyncobj)
+ ];
+
+ environment.etc."${configFileName}".source = configFile;
+
+ environment.sessionVariables = {
+ PATRONICTL_CONFIG_FILE = "/etc/${configFileName}";
+ };
+ };
+
+ meta.maintainers = [ maintainers.phfroidmont ];
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix b/third_party/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
index 785267d4b3..0860b9a220 100644
--- a/third_party/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
+++ b/third_party/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
@@ -109,10 +109,9 @@ in
extraConfig = mkOption {
type = types.lines;
default = "";
- description = ''
- Extra configuration for slurmdbd.conf See also:
- slurmdbd.conf
- 8.
+ description = lib.mdDoc ''
+ Extra configuration for `slurmdbd.conf` See also:
+ {manpage}`slurmdbd.conf(8)`.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix b/third_party/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
index 245f685764..52c41c4a75 100644
--- a/third_party/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
+++ b/third_party/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
@@ -121,10 +121,10 @@ in {
keepalive = mkOption {
default = 600;
type = types.int;
- description = "
+ description = lib.mdDoc ''
This is a number that indicates how frequently keepalive messages should be sent
from the worker to the buildmaster, expressed in seconds.
- ";
+ '';
};
package = mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agents.nix b/third_party/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agents.nix
index cafa40dc6e..8e8a65b56b 100644
--- a/third_party/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agents.nix
+++ b/third_party/nixpkgs/nixos/modules/services/continuous-integration/buildkite-agents.nix
@@ -193,7 +193,7 @@ in
options.services.buildkite-agents = mkOption {
type = types.attrsOf (types.submodule buildkiteOptions);
default = {};
- description = ''
+ description = lib.mdDoc ''
Attribute set of buildkite agents.
The attribute key is combined with the hostname and a unique integer to
create the final agent name. This can be overridden by setting the `name`
diff --git a/third_party/nixpkgs/nixos/modules/services/continuous-integration/github-runner.nix b/third_party/nixpkgs/nixos/modules/services/continuous-integration/github-runner.nix
index 5400338236..9abe13a89a 100644
--- a/third_party/nixpkgs/nixos/modules/services/continuous-integration/github-runner.nix
+++ b/third_party/nixpkgs/nixos/modules/services/continuous-integration/github-runner.nix
@@ -48,9 +48,14 @@ in
tokenFile = mkOption {
type = types.path;
description = lib.mdDoc ''
- The full path to a file which contains the runner registration token.
+ The full path to a file which contains either a runner registration token or a
+ personal access token (PAT).
The file should contain exactly one line with the token without any newline.
- The token can be used to re-register a runner of the same name but is time-limited.
+ If a registration token is given, it can be used to re-register a runner of the same
+ name but is time-limited. If the file contains a PAT, the service creates a new
+ registration token on startup as needed. Make sure the PAT has a scope of
+ `admin:org` for organization-wide registrations or a scope of
+ `repo` for a single repository.
Changing this option or the file's content triggers a new runner registration.
'';
@@ -117,6 +122,24 @@ in
default = pkgs.github-runner;
defaultText = literalExpression "pkgs.github-runner";
};
+
+ ephemeral = mkOption {
+ type = types.bool;
+ description = lib.mdDoc ''
+ If enabled, causes the following behavior:
+
+ - Passes the `--ephemeral` flag to the runner configuration script
+ - De-registers and stops the runner with GitHub after it has processed one job
+ - On stop, systemd wipes the runtime directory (this always happens, even without using the ephemeral option)
+ - Restarts the service after its successful exit
+ - On start, wipes the state directory and configures a new runner
+
+ You should only enable this option if `tokenFile` points to a file which contains a
+ personal access token (PAT). If you're using the option with a registration token, restarting the
+ service will fail as soon as the registration token expired.
+ '';
+ default = false;
+ };
};
config = mkIf cfg.enable {
@@ -136,7 +159,7 @@ in
environment = {
HOME = runtimeDir;
- RUNNER_ROOT = runtimeDir;
+ RUNNER_ROOT = stateDir;
};
path = (with pkgs; [
@@ -150,7 +173,7 @@ in
] ++ cfg.extraPackages;
serviceConfig = rec {
- ExecStart = "${cfg.package}/bin/runsvc.sh";
+ ExecStart = "${cfg.package}/bin/Runner.Listener run --startuptype service";
# Does the following, sequentially:
# - If the module configuration or the token has changed, purge the state directory,
@@ -178,7 +201,7 @@ in
${lines}
'';
currentConfigPath = "$STATE_DIRECTORY/.nixos-current-config.json";
- runnerRegistrationConfig = getAttrs [ "name" "tokenFile" "url" "runnerGroup" "extraLabels" ] cfg;
+ runnerRegistrationConfig = getAttrs [ "name" "tokenFile" "url" "runnerGroup" "extraLabels" "ephemeral" ] cfg;
newConfigPath = builtins.toFile "${svcName}-config.json" (builtins.toJSON runnerRegistrationConfig);
newConfigTokenFilename = ".new-token";
runnerCredFiles = [
@@ -188,17 +211,24 @@ in
];
unconfigureRunner = writeScript "unconfigure" ''
differs=
- # Set `differs = 1` if current and new runner config differ or if `currentConfigPath` does not exist
- ${pkgs.diffutils}/bin/diff -q '${newConfigPath}' "${currentConfigPath}" >/dev/null 2>&1 || differs=1
- # Also trigger a registration if the token content changed
- ${pkgs.diffutils}/bin/diff -q \
- "$STATE_DIRECTORY"/${currentConfigTokenFilename} \
- ${escapeShellArg cfg.tokenFile} \
- >/dev/null 2>&1 || differs=1
+
+ if [[ "$(ls -A "$STATE_DIRECTORY")" ]]; then
+ # State directory is not empty
+ # Set `differs = 1` if current and new runner config differ or if `currentConfigPath` does not exist
+ ${pkgs.diffutils}/bin/diff -q '${newConfigPath}' "${currentConfigPath}" >/dev/null 2>&1 || differs=1
+ # Also trigger a registration if the token content changed
+ ${pkgs.diffutils}/bin/diff -q \
+ "$STATE_DIRECTORY"/${currentConfigTokenFilename} \
+ ${escapeShellArg cfg.tokenFile} \
+ >/dev/null 2>&1 || differs=1
+ # If .credentials does not exist, assume a previous run de-registered the runner on stop (ephemeral mode)
+ [[ ! -f "$STATE_DIRECTORY/.credentials" ]] && differs=1
+ fi
if [[ -n "$differs" ]]; then
echo "Config has changed, removing old runner state."
- echo "The old runner will still appear in the GitHub Actions UI." \
+ # In ephemeral mode, the runner deletes the `.credentials` file after de-registering it with GitHub
+ [[ -f "$STATE_DIRECTORY/.credentials" ]] && echo "The old runner will still appear in the GitHub Actions UI." \
"You have to remove it manually."
find "$STATE_DIRECTORY/" -mindepth 1 -delete
@@ -212,17 +242,28 @@ in
if [[ -e "$STATE_DIRECTORY/${newConfigTokenFilename}" ]]; then
echo "Configuring GitHub Actions Runner"
- token=$(< "$STATE_DIRECTORY"/${newConfigTokenFilename})
- RUNNER_ROOT="$STATE_DIRECTORY" ${cfg.package}/bin/config.sh \
- --unattended \
- --disableupdate \
- --work "$RUNTIME_DIRECTORY" \
- --url ${escapeShellArg cfg.url} \
- --token "$token" \
- --labels ${escapeShellArg (concatStringsSep "," cfg.extraLabels)} \
- --name ${escapeShellArg cfg.name} \
- ${optionalString cfg.replace "--replace"} \
+ args=(
+ --unattended
+ --disableupdate
+ --work "$RUNTIME_DIRECTORY"
+ --url ${escapeShellArg cfg.url}
+ --labels ${escapeShellArg (concatStringsSep "," cfg.extraLabels)}
+ --name ${escapeShellArg cfg.name}
+ ${optionalString cfg.replace "--replace"}
${optionalString (cfg.runnerGroup != null) "--runnergroup ${escapeShellArg cfg.runnerGroup}"}
+ ${optionalString cfg.ephemeral "--ephemeral"}
+ )
+
+ # If the token file contains a PAT (i.e., it starts with "ghp_"), we have to use the --pat option,
+ # if it is not a PAT, we assume it contains a registration token and use the --token option
+ token=$(<"$STATE_DIRECTORY/${newConfigTokenFilename}")
+ if [[ "$token" =~ ^ghp_* ]]; then
+ args+=(--pat "$token")
+ else
+ args+=(--token "$token")
+ fi
+
+ ${cfg.package}/bin/config.sh "''${args[@]}"
# Move the automatically created _diag dir to the logs dir
mkdir -p "$STATE_DIRECTORY/_diag"
@@ -250,6 +291,10 @@ in
setupRuntimeDir
];
+ # If running in ephemeral mode, restart the service on-exit (i.e., successful de-registration of the runner)
+ # to trigger a fresh registration.
+ Restart = if cfg.ephemeral then "on-success" else "no";
+
# Contains _diag
LogsDirectory = [ systemdDir ];
# Default RUNNER_ROOT which contains ephemeral Runner data
@@ -269,8 +314,7 @@ in
# By default, use a dynamically allocated user
DynamicUser = true;
- KillMode = "process";
- KillSignal = "SIGTERM";
+ KillSignal = "SIGINT";
# Hardening (may overlap with DynamicUser=)
# The following options are only for optimizing:
diff --git a/third_party/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix b/third_party/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
index 9e1fb03075..83518344b3 100644
--- a/third_party/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
+++ b/third_party/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
@@ -103,15 +103,15 @@ let
defaultText = literalExpression ''baseDirectory + "/secrets"'';
};
clusterJoinTokenPath = mkOption {
- description = ''
+ description = lib.mdDoc ''
Location of the cluster-join-token.key file.
You can retrieve the contents of the file when creating a new agent via
- https://hercules-ci.com/dashboard.
+ .
As this value is confidential, it should not be in the store, but
installed using other means, such as agenix, NixOps
- deployment.keys, or manual installation.
+ `deployment.keys`, or manual installation.
The contents of the file are used for authentication between the agent and the API.
'';
@@ -120,29 +120,28 @@ let
defaultText = literalExpression ''staticSecretsDirectory + "/cluster-join-token.key"'';
};
binaryCachesPath = mkOption {
- description = ''
+ description = lib.mdDoc ''
Path to a JSON file containing binary cache secret keys.
As these values are confidential, they should not be in the store, but
copied over using other means, such as agenix, NixOps
- deployment.keys, or manual installation.
+ `deployment.keys`, or manual installation.
- The format is described on https://docs.hercules-ci.com/hercules-ci-agent/binary-caches-json/.
+ The format is described on .
'';
type = types.path;
default = config.staticSecretsDirectory + "/binary-caches.json";
defaultText = literalExpression ''staticSecretsDirectory + "/binary-caches.json"'';
};
secretsJsonPath = mkOption {
- description = ''
+ description = lib.mdDoc ''
Path to a JSON file containing secrets for effects.
As these values are confidential, they should not be in the store, but
copied over using other means, such as agenix, NixOps
- deployment.keys, or manual installation.
-
- The format is described on https://docs.hercules-ci.com/hercules-ci-agent/secrets-json/.
+ `deployment.keys`, or manual installation.
+ The format is described on .
'';
type = types.path;
default = config.staticSecretsDirectory + "/secrets.json";
diff --git a/third_party/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix b/third_party/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix
index 7159ec287f..8b5c1228c5 100644
--- a/third_party/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix
@@ -87,7 +87,7 @@ in
type = types.str;
default = localDB;
example = "dbi:Pg:dbname=hydra;host=postgres.example.org;user=foo;";
- description = ''
+ description = lib.mdDoc ''
The DBI string for Hydra database connection.
NOTE: Attempts to set `application_name` will be overridden by
@@ -115,8 +115,8 @@ in
type = types.str;
default = "*";
example = "localhost";
- description = ''
- The hostname or address to listen on or * to listen
+ description = lib.mdDoc ''
+ The hostname or address to listen on or `*` to listen
on all interfaces.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/databases/foundationdb.nix b/third_party/nixpkgs/nixos/modules/services/databases/foundationdb.nix
index f71228708e..16998b9979 100644
--- a/third_party/nixpkgs/nixos/modules/services/databases/foundationdb.nix
+++ b/third_party/nixpkgs/nixos/modules/services/databases/foundationdb.nix
@@ -97,9 +97,9 @@ in
openFirewall = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Open the firewall ports corresponding to FoundationDB processes and coordinators
- using .
+ using {option}`config.networking.firewall.*`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/databases/mongodb.nix b/third_party/nixpkgs/nixos/modules/services/databases/mongodb.nix
index 981185cc53..5a52eb98b9 100644
--- a/third_party/nixpkgs/nixos/modules/services/databases/mongodb.nix
+++ b/third_party/nixpkgs/nixos/modules/services/databases/mongodb.nix
@@ -35,9 +35,9 @@ in
default = pkgs.mongodb;
defaultText = literalExpression "pkgs.mongodb";
type = types.package;
- description = "
+ description = lib.mdDoc ''
Which MongoDB derivation to use.
- ";
+ '';
};
user = mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/services/databases/mysql.nix b/third_party/nixpkgs/nixos/modules/services/databases/mysql.nix
index 1a096d2a88..ddb4eceb31 100644
--- a/third_party/nixpkgs/nixos/modules/services/databases/mysql.nix
+++ b/third_party/nixpkgs/nixos/modules/services/databases/mysql.nix
@@ -36,9 +36,9 @@ in
package = mkOption {
type = types.package;
example = literalExpression "pkgs.mariadb";
- description = "
+ description = lib.mdDoc ''
Which MySQL derivation to use. MariaDB packages are supported too.
- ";
+ '';
};
user = mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/services/databases/neo4j.nix b/third_party/nixpkgs/nixos/modules/services/databases/neo4j.nix
index d1be4034dd..833e6606d9 100644
--- a/third_party/nixpkgs/nixos/modules/services/databases/neo4j.nix
+++ b/third_party/nixpkgs/nixos/modules/services/databases/neo4j.nix
@@ -36,48 +36,43 @@ let
serverConfig = pkgs.writeText "neo4j.conf" ''
# General
dbms.allow_upgrade=${boolToString cfg.allowUpgrade}
- dbms.connectors.default_listen_address=${cfg.defaultListenAddress}
- dbms.read_only=${boolToString cfg.readOnly}
+ dbms.default_listen_address=${cfg.defaultListenAddress}
+ dbms.databases.default_to_read_only=${boolToString cfg.readOnly}
${optionalString (cfg.workerCount > 0) ''
dbms.threads.worker_count=${toString cfg.workerCount}
''}
- # Directories
+ # Directories (readonly)
dbms.directories.certificates=${cfg.directories.certificates}
- dbms.directories.data=${cfg.directories.data}
- dbms.directories.logs=${cfg.directories.home}/logs
dbms.directories.plugins=${cfg.directories.plugins}
+ dbms.directories.lib=${cfg.package}/share/neo4j/lib
${optionalString (cfg.constrainLoadCsv) ''
dbms.directories.import=${cfg.directories.imports}
- ''}
+ ''}
+
+ # Directories (read and write)
+ dbms.directories.data=${cfg.directories.data}
+ dbms.directories.logs=${cfg.directories.home}/logs
+ dbms.directories.run=${cfg.directories.home}/run
# HTTP Connector
${optionalString (cfg.http.enable) ''
dbms.connector.http.enabled=${boolToString cfg.http.enable}
dbms.connector.http.listen_address=${cfg.http.listenAddress}
- ''}
- ${optionalString (!cfg.http.enable) ''
- # It is not possible to disable the HTTP connector. To fully prevent
- # clients from connecting to HTTP, block the HTTP port (7474 by default)
- # via firewall. listen_address is set to the loopback interface to
- # prevent remote clients from connecting.
- dbms.connector.http.listen_address=127.0.0.1
+ dbms.connector.http.advertised_address=${cfg.http.listenAddress}
''}
# HTTPS Connector
dbms.connector.https.enabled=${boolToString cfg.https.enable}
dbms.connector.https.listen_address=${cfg.https.listenAddress}
- https.ssl_policy=${cfg.https.sslPolicy}
+ dbms.connector.https.advertised_address=${cfg.https.listenAddress}
# BOLT Connector
dbms.connector.bolt.enabled=${boolToString cfg.bolt.enable}
dbms.connector.bolt.listen_address=${cfg.bolt.listenAddress}
- bolt.ssl_policy=${cfg.bolt.sslPolicy}
+ dbms.connector.bolt.advertised_address=${cfg.bolt.listenAddress}
dbms.connector.bolt.tls_level=${cfg.bolt.tlsLevel}
- # neo4j-shell
- dbms.shell.enabled=${boolToString cfg.shell.enable}
-
# SSL Policies
${concatStringsSep "\n" sslPolicies}
@@ -95,8 +90,10 @@ let
dbms.jvm.additional=-Djdk.tls.rejectClientInitiatedRenegotiation=true
dbms.jvm.additional=-Dunsupported.dbms.udc.source=tarball
- # Usage Data Collector
- dbms.udc.enabled=${boolToString cfg.udc.enable}
+ #dbms.memory.heap.initial_size=12000m
+ #dbms.memory.heap.max_size=12000m
+ #dbms.memory.pagecache.size=4g
+ #dbms.tx_state.max_off_heap_memory=8000m
# Extra Configuration
${cfg.extraServerConfig}
@@ -114,6 +111,8 @@ in {
(mkRemovedOptionModule [ "services" "neo4j" "port" ] "Use services.neo4j.http.listenAddress instead.")
(mkRemovedOptionModule [ "services" "neo4j" "boltPort" ] "Use services.neo4j.bolt.listenAddress instead.")
(mkRemovedOptionModule [ "services" "neo4j" "httpsPort" ] "Use services.neo4j.https.listenAddress instead.")
+ (mkRemovedOptionModule [ "services" "neo4j" "shell" "enabled" ] "shell.enabled was removed upstream")
+ (mkRemovedOptionModule [ "services" "neo4j" "udc" "enabled" ] "udc.enabled was removed upstream")
];
###### interface
@@ -334,13 +333,10 @@ in {
enable = mkOption {
type = types.bool;
default = true;
- description = lib.mdDoc ''
- The HTTP connector is required for Neo4j, and cannot be disabled.
- Setting this option to `false` will force the HTTP
- connector's {option}`listenAddress` to the loopback
- interface to prevent connection of remote clients. To prevent all
- clients from connecting, block the HTTP port (7474 by default) by
- firewall.
+ description = ''
+ Enable the HTTP connector for Neo4j. Setting this option to
+ false will stop Neo4j from listening for incoming
+ connections on the HTTPS port (7474 by default).
'';
};
@@ -568,19 +564,6 @@ in {
'';
};
- udc = {
- enable = mkOption {
- type = types.bool;
- default = false;
- description = lib.mdDoc ''
- Enable the Usage Data Collector which Neo4j uses to collect usage
- data. Refer to the operations manual section on the
- [Usage Data Collector](https://neo4j.com/docs/operations-manual/current/configuration/usage-data-collector/)
- for more information.
- '';
- };
- };
-
};
###### implementation
@@ -612,7 +595,7 @@ in {
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
environment = {
- NEO4J_HOME = "${cfg.package}/share/neo4j";
+ NEO4J_HOME = "${cfg.directories.home}";
NEO4J_CONF = "${cfg.directories.home}/conf";
};
serviceConfig = {
@@ -653,6 +636,6 @@ in {
};
meta = {
- maintainers = with lib.maintainers; [ patternspandemic ];
+ maintainers = with lib.maintainers; [ patternspandemic jonringer erictapen ];
};
}
diff --git a/third_party/nixpkgs/nixos/modules/services/databases/postgresql.nix b/third_party/nixpkgs/nixos/modules/services/databases/postgresql.nix
index d0135647d6..36de8b9e87 100644
--- a/third_party/nixpkgs/nixos/modules/services/databases/postgresql.nix
+++ b/third_party/nixpkgs/nixos/modules/services/databases/postgresql.nix
@@ -79,15 +79,15 @@ in
authentication = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Defines how users authenticate themselves to the server. See the
- PostgreSQL documentation for pg_hba.conf
+ [PostgreSQL documentation for pg_hba.conf](https://www.postgresql.org/docs/current/auth-pg-hba-conf.html)
for details on the expected format of this option. By default,
peer based authentication will be used for users connecting
via the Unix socket, and md5 password authentication will be
used for users connecting via TCP. Any added rules will be
inserted above the default rules. If you'd like to replace the
- default rules entirely, you can use lib.mkForce in your
+ default rules entirely, you can use `lib.mkForce` in your
module.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/databases/rethinkdb.nix b/third_party/nixpkgs/nixos/modules/services/databases/rethinkdb.nix
index c764d6c21c..d93f15e863 100644
--- a/third_party/nixpkgs/nixos/modules/services/databases/rethinkdb.nix
+++ b/third_party/nixpkgs/nixos/modules/services/databases/rethinkdb.nix
@@ -24,22 +24,22 @@ in
user = mkOption {
default = "rethinkdb";
- description = "User account under which RethinkDB runs.";
+ description = lib.mdDoc "User account under which RethinkDB runs.";
};
group = mkOption {
default = "rethinkdb";
- description = "Group which rethinkdb user belongs to.";
+ description = lib.mdDoc "Group which rethinkdb user belongs to.";
};
dbpath = mkOption {
default = "/var/db/rethinkdb";
- description = "Location where RethinkDB stores its data, 1 data directory per instance.";
+ description = lib.mdDoc "Location where RethinkDB stores its data, 1 data directory per instance.";
};
pidpath = mkOption {
default = "/run/rethinkdb";
- description = "Location where each instance's pid file is located.";
+ description = lib.mdDoc "Location where each instance's pid file is located.";
};
#cfgpath = mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/daemon/pipewire.conf.json b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/daemon/pipewire.conf.json
index 7c79f0168c..bf3b2d6608 100644
--- a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/daemon/pipewire.conf.json
+++ b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/daemon/pipewire.conf.json
@@ -10,6 +10,7 @@
},
"context.spa-libs": {
"audio.convert.*": "audioconvert/libspa-audioconvert",
+ "avb.*": "avb/libspa-avb",
"api.alsa.*": "alsa/libspa-alsa",
"api.v4l2.*": "v4l2/libspa-v4l2",
"api.libcamera.*": "libcamera/libspa-libcamera",
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
index 09761d6300..203139294c 100644
--- a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
+++ b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire-media-session.nix
@@ -39,14 +39,14 @@ in {
enable = mkOption {
type = types.bool;
default = false;
- description = "Whether to enable the deprecated example Pipewire session manager";
+ description = lib.mdDoc "Whether to enable the deprecated example Pipewire session manager";
};
package = mkOption {
type = types.package;
default = pkgs.pipewire-media-session;
defaultText = literalExpression "pkgs.pipewire-media-session";
- description = ''
+ description = lib.mdDoc ''
The pipewire-media-session derivation to use.
'';
};
@@ -54,7 +54,7 @@ in {
config = {
media-session = mkOption {
type = json.type;
- description = ''
+ description = lib.mdDoc ''
Configuration for the media session core. For details see
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/media-session.conf
'';
@@ -63,7 +63,7 @@ in {
alsa-monitor = mkOption {
type = json.type;
- description = ''
+ description = lib.mdDoc ''
Configuration for the alsa monitor. For details see
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/alsa-monitor.conf
'';
@@ -72,7 +72,7 @@ in {
bluez-monitor = mkOption {
type = json.type;
- description = ''
+ description = lib.mdDoc ''
Configuration for the bluez5 monitor. For details see
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/bluez-monitor.conf
'';
@@ -81,7 +81,7 @@ in {
v4l2-monitor = mkOption {
type = json.type;
- description = ''
+ description = lib.mdDoc ''
Configuration for the V4L2 monitor. For details see
https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/v4l2-monitor.conf
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/system-config-printer.nix b/third_party/nixpkgs/nixos/modules/services/desktops/system-config-printer.nix
index 09c68c587b..55f27b0e65 100644
--- a/third_party/nixpkgs/nixos/modules/services/desktops/system-config-printer.nix
+++ b/third_party/nixpkgs/nixos/modules/services/desktops/system-config-printer.nix
@@ -34,7 +34,8 @@ with lib;
];
# for $out/bin/install-printer-driver
- services.packagekit.enable = true;
+ # TODO: Enable once #177946 is resolved
+ # services.packagekit.enable = true;
};
diff --git a/third_party/nixpkgs/nixos/modules/services/development/jupyter/default.nix b/third_party/nixpkgs/nixos/modules/services/development/jupyter/default.nix
index 7c86e8b647..66113ce094 100644
--- a/third_party/nixpkgs/nixos/modules/services/development/jupyter/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/development/jupyter/default.nix
@@ -29,7 +29,7 @@ in {
ip = mkOption {
type = types.str;
default = "localhost";
- description = ''
+ description = lib.mdDoc ''
IP address Jupyter will be listening on.
'';
};
@@ -41,7 +41,7 @@ in {
# saving a rebuild.
default = pkgs.python3.pkgs.notebook;
defaultText = literalExpression "pkgs.python3.pkgs.notebook";
- description = ''
+ description = lib.mdDoc ''
Jupyter package to use.
'';
};
@@ -50,7 +50,7 @@ in {
type = types.str;
default = "jupyter-notebook";
example = "jupyter-lab";
- description = ''
+ description = lib.mdDoc ''
Which command the service runs. Note that not all jupyter packages
have all commands, e.g. jupyter-lab isn't present in the default package.
'';
@@ -59,7 +59,7 @@ in {
port = mkOption {
type = types.int;
default = 8888;
- description = ''
+ description = lib.mdDoc ''
Port number Jupyter will be listening on.
'';
};
@@ -67,7 +67,7 @@ in {
notebookDir = mkOption {
type = types.str;
default = "~/";
- description = ''
+ description = lib.mdDoc ''
Root directory for notebooks.
'';
};
@@ -75,7 +75,7 @@ in {
user = mkOption {
type = types.str;
default = "jupyter";
- description = ''
+ description = lib.mdDoc ''
Name of the user used to run the jupyter service.
For security reason, jupyter should really not be run as root.
If not set (jupyter), the service will create a jupyter user with appropriate settings.
@@ -86,7 +86,7 @@ in {
group = mkOption {
type = types.str;
default = "jupyter";
- description = ''
+ description = lib.mdDoc ''
Name of the group used to run the jupyter service.
Use this if you want to create a group of users that are able to view the notebook directory's content.
'';
@@ -95,7 +95,7 @@ in {
password = mkOption {
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Password to use with notebook.
Can be generated using:
In [1]: from notebook.auth import passwd
@@ -112,7 +112,7 @@ in {
notebookConfig = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Raw jupyter config.
'';
};
@@ -149,13 +149,14 @@ in {
};
}
'';
- description = "Declarative kernel config
+ description = lib.mdDoc ''
+ Declarative kernel config.
- Kernels can be declared in any language that supports and has the required
- dependencies to communicate with a jupyter server.
- In python's case, it means that ipykernel package must always be included in
- the list of packages of the targeted environment.
- ";
+ Kernels can be declared in any language that supports and has the required
+ dependencies to communicate with a jupyter server.
+ In python's case, it means that ipykernel package must always be included in
+ the list of packages of the targeted environment.
+ '';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/development/jupyter/kernel-options.nix b/third_party/nixpkgs/nixos/modules/services/development/jupyter/kernel-options.nix
index 0a9eaafa31..42af47aeb3 100644
--- a/third_party/nixpkgs/nixos/modules/services/development/jupyter/kernel-options.nix
+++ b/third_party/nixpkgs/nixos/modules/services/development/jupyter/kernel-options.nix
@@ -13,7 +13,7 @@ with lib;
"Python 3"
"Python 3 for Data Science"
'';
- description = ''
+ description = lib.mdDoc ''
Name that will be shown to the user.
'';
};
@@ -27,7 +27,7 @@ with lib;
"-f"
"{connection_file}"
];
- description = ''
+ description = lib.mdDoc ''
Command and arguments to start the kernel.
'';
};
@@ -35,7 +35,7 @@ with lib;
language = mkOption {
type = types.str;
example = "python";
- description = ''
+ description = lib.mdDoc ''
Language of the environment. Typically the name of the binary.
'';
};
@@ -44,7 +44,7 @@ with lib;
type = types.nullOr types.path;
default = null;
example = literalExpression ''"''${env.sitePackages}/ipykernel/resources/logo-32x32.png"'';
- description = ''
+ description = lib.mdDoc ''
Path to 32x32 logo png.
'';
};
@@ -52,7 +52,7 @@ with lib;
type = types.nullOr types.path;
default = null;
example = literalExpression ''"''${env.sitePackages}/ipykernel/resources/logo-64x64.png"'';
- description = ''
+ description = lib.mdDoc ''
Path to 64x64 logo png.
'';
};
@@ -61,7 +61,7 @@ with lib;
type = types.attrsOf types.path;
default = { };
example = literalExpression ''"{ examples = ''${env.sitePack}/IRkernel/kernelspec/kernel.js"; }'';
- description = ''
+ description = lib.mdDoc ''
Extra paths to link in kernel directory
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/development/jupyterhub/default.nix b/third_party/nixpkgs/nixos/modules/services/development/jupyterhub/default.nix
index fa6b3be960..bd8a5f0bd2 100644
--- a/third_party/nixpkgs/nixos/modules/services/development/jupyterhub/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/development/jupyterhub/default.nix
@@ -35,7 +35,7 @@ in {
authentication = mkOption {
type = types.str;
default = "jupyterhub.auth.PAMAuthenticator";
- description = ''
+ description = lib.mdDoc ''
Jupyterhub authentication to use
There are many authenticators available including: oauth, pam,
@@ -46,7 +46,7 @@ in {
spawner = mkOption {
type = types.str;
default = "systemdspawner.SystemdSpawner";
- description = ''
+ description = lib.mdDoc ''
Jupyterhub spawner to use
There are many spawners available including: local process,
@@ -57,7 +57,7 @@ in {
extraConfig = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Extra contents appended to the jupyterhub configuration
Jupyterhub configuration is a normal python file using
@@ -84,7 +84,7 @@ in {
jupyterhub-systemdspawner
])
'';
- description = ''
+ description = lib.mdDoc ''
Python environment to run jupyterhub
Customizing will affect the packages available in the hub and
@@ -106,7 +106,7 @@ in {
jupyterlab
])
'';
- description = ''
+ description = lib.mdDoc ''
Python environment to run jupyterlab
Customizing will affect the packages available in the
@@ -146,7 +146,7 @@ in {
};
}
'';
- description = ''
+ description = lib.mdDoc ''
Declarative kernel config
Kernels can be declared in any language that supports and has
@@ -159,7 +159,7 @@ in {
port = mkOption {
type = types.port;
default = 8000;
- description = ''
+ description = lib.mdDoc ''
Port number Jupyterhub will be listening on
'';
};
@@ -167,7 +167,7 @@ in {
host = mkOption {
type = types.str;
default = "0.0.0.0";
- description = ''
+ description = lib.mdDoc ''
Bind IP JupyterHub will be listening on
'';
};
@@ -175,7 +175,7 @@ in {
stateDirectory = mkOption {
type = types.str;
default = "jupyterhub";
- description = ''
+ description = lib.mdDoc ''
Directory for jupyterhub state (token + database)
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/development/lorri.nix b/third_party/nixpkgs/nixos/modules/services/development/lorri.nix
index a82b3f57f8..8c64e3d9a5 100644
--- a/third_party/nixpkgs/nixos/modules/services/development/lorri.nix
+++ b/third_party/nixpkgs/nixos/modules/services/development/lorri.nix
@@ -9,7 +9,7 @@ in {
enable = lib.mkOption {
default = false;
type = lib.types.bool;
- description = ''
+ description = lib.mdDoc ''
Enables the daemon for `lorri`, a nix-shell replacement for project
development. The socket-activated daemon starts on the first request
issued by the `lorri` command.
diff --git a/third_party/nixpkgs/nixos/modules/services/editors/infinoted.nix b/third_party/nixpkgs/nixos/modules/services/editors/infinoted.nix
index d2eb4946f2..c91197ea57 100644
--- a/third_party/nixpkgs/nixos/modules/services/editors/infinoted.nix
+++ b/third_party/nixpkgs/nixos/modules/services/editors/infinoted.nix
@@ -36,7 +36,7 @@ in {
certificateChain = mkOption {
type = types.nullOr types.path;
default = null;
- description = ''
+ description = lib.mdDoc ''
Chain of CA-certificates to which our `certificateFile` is relative.
Optional for TLS.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/games/asf.nix b/third_party/nixpkgs/nixos/modules/services/games/asf.nix
index b789290037..592ab4bedc 100644
--- a/third_party/nixpkgs/nixos/modules/services/games/asf.nix
+++ b/third_party/nixpkgs/nixos/modules/services/games/asf.nix
@@ -81,11 +81,11 @@ in
settings = mkOption {
type = format.type;
- description = ''
- The ASF.json file, all the options are documented here.
+ description = lib.mdDoc ''
+ The ASF.json file, all the options are documented [here](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#global-config).
Do note that `AutoRestart` and `UpdateChannel` is always to `false` respectively `0` because NixOS takes care of updating everything.
`Headless` is also always set to `true` because there is no way to provide inputs via a systemd service.
- You should try to keep ASF up to date since upstream does not provide support for anything but the latest version and you're exposing yourself to all kinds of issues - as is outlined here.
+ You should try to keep ASF up to date since upstream does not provide support for anything but the latest version and you're exposing yourself to all kinds of issues - as is outlined [here](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Configuration#updateperiod).
'';
example = {
Statistics = false;
diff --git a/third_party/nixpkgs/nixos/modules/services/games/crossfire-server.nix b/third_party/nixpkgs/nixos/modules/services/games/crossfire-server.nix
index a0dc1e6c56..7820a08be4 100644
--- a/third_party/nixpkgs/nixos/modules/services/games/crossfire-server.nix
+++ b/third_party/nixpkgs/nixos/modules/services/games/crossfire-server.nix
@@ -41,7 +41,7 @@ in {
stateDir = mkOption {
type = types.str;
default = "/var/lib/crossfire";
- description = ''
+ description = lib.mdDoc ''
Where to store runtime data (save files, persistent items, etc).
If left at the default, this will be automatically created on server
@@ -61,7 +61,7 @@ in {
configFiles = mkOption {
type = types.attrsOf types.str;
- description = ''
+ description = lib.mdDoc ''
Text to append to the corresponding configuration files. Note that the
files given in the example are *not* the complete set of files available
to customize; look in /etc/crossfire after enabling the server to see
diff --git a/third_party/nixpkgs/nixos/modules/services/games/deliantra-server.nix b/third_party/nixpkgs/nixos/modules/services/games/deliantra-server.nix
index 17bdf2aef7..f39044eda7 100644
--- a/third_party/nixpkgs/nixos/modules/services/games/deliantra-server.nix
+++ b/third_party/nixpkgs/nixos/modules/services/games/deliantra-server.nix
@@ -41,7 +41,7 @@ in {
stateDir = mkOption {
type = types.str;
default = "/var/lib/deliantra";
- description = ''
+ description = lib.mdDoc ''
Where to store runtime data (save files, persistent items, etc).
If left at the default, this will be automatically created on server
diff --git a/third_party/nixpkgs/nixos/modules/services/games/minetest-server.nix b/third_party/nixpkgs/nixos/modules/services/games/minetest-server.nix
index bc6ab7462d..34e0ba8c8e 100644
--- a/third_party/nixpkgs/nixos/modules/services/games/minetest-server.nix
+++ b/third_party/nixpkgs/nixos/modules/services/games/minetest-server.nix
@@ -25,7 +25,7 @@ in
gameId = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Id of the game to use. To list available games run
`minetestserver --gameid list`.
@@ -36,7 +36,7 @@ in
world = mkOption {
type = types.nullOr types.path;
default = null;
- description = ''
+ description = lib.mdDoc ''
Name of the world to use. To list available worlds run
`minetestserver --world list`.
@@ -47,7 +47,7 @@ in
configPath = mkOption {
type = types.nullOr types.path;
default = null;
- description = ''
+ description = lib.mdDoc ''
Path to the config to use.
If set to null, the config of the running user will be used:
diff --git a/third_party/nixpkgs/nixos/modules/services/hardware/fwupd.nix b/third_party/nixpkgs/nixos/modules/services/hardware/fwupd.nix
index 241c9d143d..fe00cd1e32 100644
--- a/third_party/nixpkgs/nixos/modules/services/hardware/fwupd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/hardware/fwupd.nix
@@ -15,9 +15,9 @@ let
DisabledPlugins=${lib.concatStringsSep ";" cfg.disabledPlugins}
'';
};
- "fwupd/uefi.conf" = {
- source = pkgs.writeText "uefi.conf" ''
- [uefi]
+ "fwupd/uefi_capsule.conf" = {
+ source = pkgs.writeText "uefi_capsule.conf" ''
+ [uefi_capsule]
OverrideESPMountPoint=${config.boot.loader.efi.efiSysMountPoint}
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/hardware/pcscd.nix b/third_party/nixpkgs/nixos/modules/services/hardware/pcscd.nix
index c4ae6e19b7..22e4ea4984 100644
--- a/third_party/nixpkgs/nixos/modules/services/hardware/pcscd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/hardware/pcscd.nix
@@ -35,11 +35,10 @@ in
LIBPATH /path/to/serial_reader.so
CHANNELID 1
'';
- description = ''
+ description = lib.mdDoc ''
Configuration for devices that aren't hotpluggable.
- See reader.conf
- 5 for valid options.
+ See {manpage}`reader.conf(5)` for valid options.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/home-automation/home-assistant.nix b/third_party/nixpkgs/nixos/modules/services/home-automation/home-assistant.nix
index 2b81283836..c435491e71 100644
--- a/third_party/nixpkgs/nixos/modules/services/home-automation/home-assistant.nix
+++ b/third_party/nixpkgs/nixos/modules/services/home-automation/home-assistant.nix
@@ -126,10 +126,10 @@ in {
psycopg2
];
'';
- description = ''
+ description = lib.mdDoc ''
List of packages to add to propagatedBuildInputs.
- A popular example is python3Packages.psycopg2
+ A popular example is `python3Packages.psycopg2`
for PostgreSQL support in the recorder component.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/logging/awstats.nix b/third_party/nixpkgs/nixos/modules/services/logging/awstats.nix
index 8dbf895a76..ad87c3bd90 100644
--- a/third_party/nixpkgs/nixos/modules/services/logging/awstats.nix
+++ b/third_party/nixpkgs/nixos/modules/services/logging/awstats.nix
@@ -121,11 +121,9 @@ in
type = types.nullOr types.str;
default = null;
example = "hourly";
- description = ''
+ description = lib.mdDoc ''
Specification of the time at which awstats will get updated.
- (in the format described by
- systemd.time
- 7)
+ (in the format described by {manpage}`systemd.time(7)`)
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/logging/logrotate.nix b/third_party/nixpkgs/nixos/modules/services/logging/logrotate.nix
index 53230cc51e..3ea130a891 100644
--- a/third_party/nixpkgs/nixos/modules/services/logging/logrotate.nix
+++ b/third_party/nixpkgs/nixos/modules/services/logging/logrotate.nix
@@ -79,7 +79,7 @@ let
priority = mkOption {
type = types.int;
default = 1000;
- description = ''
+ description = lib.mdDoc ''
Order of this logrotate block in relation to the others. The semantics are
the same as with `lib.mkOrder`. Smaller values have a greater priority.
'';
@@ -260,7 +260,7 @@ in
priority = mkOption {
type = types.int;
default = 1000;
- description = ''
+ description = lib.mdDoc ''
Order of this logrotate block in relation to the others. The semantics are
the same as with `lib.mkOrder`. Smaller values are inserted first.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/mail/mlmmj.nix b/third_party/nixpkgs/nixos/modules/services/mail/mlmmj.nix
index 0a6c7eceaa..642f8b20fe 100644
--- a/third_party/nixpkgs/nixos/modules/services/mail/mlmmj.nix
+++ b/third_party/nixpkgs/nixos/modules/services/mail/mlmmj.nix
@@ -86,10 +86,9 @@ in
maintInterval = mkOption {
type = types.str;
default = "20min";
- description = ''
+ description = lib.mdDoc ''
Time interval between mlmmj-maintd runs, see
- systemd.time
- 7 for format information.
+ {manpage}`systemd.time(7)` for format information.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/mail/postfix.nix b/third_party/nixpkgs/nixos/modules/services/mail/postfix.nix
index 2fc79949fb..3dc5403866 100644
--- a/third_party/nixpkgs/nixos/modules/services/mail/postfix.nix
+++ b/third_party/nixpkgs/nixos/modules/services/mail/postfix.nix
@@ -355,125 +355,125 @@ in
setgidGroup = mkOption {
type = types.str;
default = "postdrop";
- description = "
+ description = lib.mdDoc ''
How to call postfix setgid group (for postdrop). Should
be uniquely used group.
- ";
+ '';
};
networks = mkOption {
type = types.nullOr (types.listOf types.str);
default = null;
example = ["192.168.0.1/24"];
- description = "
+ description = lib.mdDoc ''
Net masks for trusted - allowed to relay mail to third parties -
hosts. Leave empty to use mynetworks_style configuration or use
default (localhost-only).
- ";
+ '';
};
networksStyle = mkOption {
type = types.str;
default = "";
- description = "
+ description = lib.mdDoc ''
Name of standard way of trusted network specification to use,
leave blank if you specify it explicitly or if you want to use
default (localhost-only).
- ";
+ '';
};
hostname = mkOption {
type = types.str;
default = "";
- description ="
+ description = lib.mdDoc ''
Hostname to use. Leave blank to use just the hostname of machine.
It should be FQDN.
- ";
+ '';
};
domain = mkOption {
type = types.str;
default = "";
- description ="
+ description = lib.mdDoc ''
Domain to use. Leave blank to use hostname minus first component.
- ";
+ '';
};
origin = mkOption {
type = types.str;
default = "";
- description ="
+ description = lib.mdDoc ''
Origin to use in outgoing e-mail. Leave blank to use hostname.
- ";
+ '';
};
destination = mkOption {
type = types.nullOr (types.listOf types.str);
default = null;
example = ["localhost"];
- description = "
+ description = lib.mdDoc ''
Full (!) list of domains we deliver locally. Leave blank for
acceptable Postfix default.
- ";
+ '';
};
relayDomains = mkOption {
type = types.nullOr (types.listOf types.str);
default = null;
example = ["localdomain"];
- description = "
+ description = lib.mdDoc ''
List of domains we agree to relay to. Default is empty.
- ";
+ '';
};
relayHost = mkOption {
type = types.str;
default = "";
- description = "
+ description = lib.mdDoc ''
Mail relay for outbound mail.
- ";
+ '';
};
relayPort = mkOption {
type = types.int;
default = 25;
- description = "
+ description = lib.mdDoc ''
SMTP port for relay mail relay.
- ";
+ '';
};
lookupMX = mkOption {
type = types.bool;
default = false;
- description = "
+ description = lib.mdDoc ''
Whether relay specified is just domain whose MX must be used.
- ";
+ '';
};
postmasterAlias = mkOption {
type = types.str;
default = "root";
- description = "
+ description = lib.mdDoc ''
Who should receive postmaster e-mail. Multiple values can be added by
separating values with comma.
- ";
+ '';
};
rootAlias = mkOption {
type = types.str;
default = "";
- description = "
+ description = lib.mdDoc ''
Who should receive root e-mail. Blank for no redirection.
Multiple values can be added by separating values with comma.
- ";
+ '';
};
extraAliases = mkOption {
type = types.lines;
default = "";
- description = "
+ description = lib.mdDoc ''
Additional entries to put verbatim into aliases file, cf. man-page aliases(8).
- ";
+ '';
};
aliasMapType = mkOption {
@@ -497,9 +497,9 @@ in
extraConfig = mkOption {
type = types.lines;
default = "";
- description = "
+ description = lib.mdDoc ''
Extra lines to be added verbatim to the main.cf configuration file.
- ";
+ '';
};
tlsTrustedAuthorities = mkOption {
@@ -527,26 +527,25 @@ in
type = types.str;
default = "";
example = "+";
- description = "
+ description = lib.mdDoc ''
Delimiter for address extension: so mail to user+test can be handled by ~user/.forward+test
- ";
+ '';
};
canonical = mkOption {
type = types.lines;
default = "";
- description = ''
- Entries for the canonical
- 5 table.
+ description = lib.mdDoc ''
+ Entries for the {manpage}`canonical(5)` table.
'';
};
virtual = mkOption {
type = types.lines;
default = "";
- description = "
+ description = lib.mdDoc ''
Entries for the virtual alias map, cf. man-page virtual(5).
- ";
+ '';
};
virtualMapType = mkOption {
@@ -573,9 +572,9 @@ in
transport = mkOption {
default = "";
type = types.lines;
- description = "
+ description = lib.mdDoc ''
Entries for the transport map, cf. man-page transport(8).
- ";
+ '';
};
dnsBlacklists = mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/services/matrix/dendrite.nix b/third_party/nixpkgs/nixos/modules/services/matrix/dendrite.nix
index 4275950ec7..b336c5fd0f 100644
--- a/third_party/nixpkgs/nixos/modules/services/matrix/dendrite.nix
+++ b/third_party/nixpkgs/nixos/modules/services/matrix/dendrite.nix
@@ -26,24 +26,24 @@ in
type = lib.types.nullOr lib.types.path;
example = "/var/lib/dendrite/server.cert";
default = null;
- description = ''
+ description = lib.mdDoc ''
The path to the TLS certificate.
-
+ ```
nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
-
+ ```
'';
};
tlsKey = lib.mkOption {
type = lib.types.nullOr lib.types.path;
example = "/var/lib/dendrite/server.key";
default = null;
- description = ''
+ description = lib.mdDoc ''
The path to the TLS key.
-
+ ```
nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key"
-
+ ```
'';
};
environmentFile = lib.mkOption {
@@ -51,9 +51,7 @@ in
example = "/var/lib/dendrite/registration_secret";
default = null;
description = ''
- Environment file as defined in
- systemd.exec5
- .
+ Environment file as defined in systemd.exec5.
Secrets may be passed to the service without adding them to the world-readable
Nix store, by specifying placeholder variables as the option value in Nix and
setting these variables accordingly in the environment file. Currently only used
@@ -104,13 +102,13 @@ in
lib.types.path
(lib.types.strMatching "^\\$CREDENTIALS_DIRECTORY/.+");
example = "$CREDENTIALS_DIRECTORY/private_key";
- description = ''
+ description = lib.mdDoc ''
The path to the signing private key file, used to sign
requests and events.
-
+ ```
nix-shell -p dendrite --command "generate-keys --private-key matrix_key.pem"
-
+ ```
'';
};
trusted_third_party_id_servers = lib.mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/services/matrix/mjolnir.nix b/third_party/nixpkgs/nixos/modules/services/matrix/mjolnir.nix
index 278924b05c..abbbb4030e 100644
--- a/third_party/nixpkgs/nixos/modules/services/matrix/mjolnir.nix
+++ b/third_party/nixpkgs/nixos/modules/services/matrix/mjolnir.nix
@@ -70,27 +70,27 @@ in
homeserverUrl = mkOption {
type = types.str;
default = "https://matrix.org";
- description = ''
+ description = lib.mdDoc ''
Where the homeserver is located (client-server URL).
- If pantalaimon.enable is true, this option will become the homeserver to which pantalaimon connects.
- The listen address of pantalaimon will then become the homeserverUrl of mjolnir.
+ If `pantalaimon.enable` is `true`, this option will become the homeserver to which `pantalaimon` connects.
+ The listen address of `pantalaimon` will then become the `homeserverUrl` of `mjolnir`.
'';
};
accessTokenFile = mkOption {
type = with types; nullOr path;
default = null;
- description = ''
- File containing the matrix access token for the mjolnir user.
+ description = lib.mdDoc ''
+ File containing the matrix access token for the `mjolnir` user.
'';
};
pantalaimon = mkOption {
- description = ''
- pantalaimon options (enables E2E Encryption support).
+ description = lib.mdDoc ''
+ `pantalaimon` options (enables E2E Encryption support).
- This will create a pantalaimon instance with the name "mjolnir".
+ This will create a `pantalaimon` instance with the name "mjolnir".
'';
default = { };
type = types.submodule {
@@ -102,22 +102,22 @@ in
username = mkOption {
type = types.str;
- description = "The username to login with.";
+ description = lib.mdDoc "The username to login with.";
};
passwordFile = mkOption {
type = with types; nullOr path;
default = null;
- description = ''
- File containing the matrix password for the mjolnir user.
+ description = lib.mdDoc ''
+ File containing the matrix password for the `mjolnir` user.
'';
};
options = mkOption {
type = types.submodule (import ./pantalaimon-options.nix);
default = { };
- description = ''
- passthrough additional options to the pantalaimon service.
+ description = lib.mdDoc ''
+ passthrough additional options to the `pantalaimon` service.
'';
};
};
@@ -127,7 +127,7 @@ in
dataPath = mkOption {
type = types.path;
default = "/var/lib/mjolnir";
- description = ''
+ description = lib.mdDoc ''
The directory the bot should store various bits of information in.
'';
};
@@ -135,11 +135,11 @@ in
managementRoom = mkOption {
type = types.str;
default = "#moderators:example.org";
- description = ''
+ description = lib.mdDoc ''
The room ID where people can use the bot. The bot has no access controls, so
anyone in this room can use the bot - secure your room!
This should be a room alias or room ID - not a matrix.to URL.
- Note: mjolnir is fairly verbose - expect a lot of messages from it.
+ Note: `mjolnir` is fairly verbose - expect a lot of messages from it.
'';
};
@@ -152,7 +152,7 @@ in
"https://matrix.to/#/#anotherroom:example.org"
]
'';
- description = ''
+ description = lib.mdDoc ''
A list of rooms to protect (matrix.to URLs).
'';
};
@@ -166,8 +166,8 @@ in
automaticallyRedactForReasons = [ "spam" "advertising" ];
}
'';
- description = ''
- Additional settings (see mjolnir default config for available settings). These settings will override settings made by the module config.
+ description = lib.mdDoc ''
+ Additional settings (see [mjolnir default config](https://github.com/matrix-org/mjolnir/blob/main/config/default.yaml) for available settings). These settings will override settings made by the module config.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/matrix/pantalaimon-options.nix b/third_party/nixpkgs/nixos/modules/services/matrix/pantalaimon-options.nix
index 035c57540d..3945a70fc8 100644
--- a/third_party/nixpkgs/nixos/modules/services/matrix/pantalaimon-options.nix
+++ b/third_party/nixpkgs/nixos/modules/services/matrix/pantalaimon-options.nix
@@ -6,15 +6,15 @@ with lib;
dataPath = mkOption {
type = types.path;
default = "/var/lib/pantalaimon-${name}";
- description = ''
- The directory where pantalaimon should store its state such as the database file.
+ description = lib.mdDoc ''
+ The directory where `pantalaimon` should store its state such as the database file.
'';
};
logLevel = mkOption {
type = types.enum [ "info" "warning" "error" "debug" ];
default = "warning";
- description = ''
+ description = lib.mdDoc ''
Set the log level of the daemon.
'';
};
@@ -22,8 +22,8 @@ with lib;
homeserver = mkOption {
type = types.str;
example = "https://matrix.org";
- description = ''
- The URI of the homeserver that the pantalaimon proxy should
+ description = lib.mdDoc ''
+ The URI of the homeserver that the `pantalaimon` proxy should
forward requests to, without the matrix API path but including
the http(s) schema.
'';
@@ -32,7 +32,7 @@ with lib;
ssl = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether or not SSL verification should be enabled for outgoing
connections to the homeserver.
'';
@@ -41,7 +41,7 @@ with lib;
listenAddress = mkOption {
type = types.str;
default = "localhost";
- description = ''
+ description = lib.mdDoc ''
The address where the daemon will listen to client connections
for this homeserver.
'';
@@ -50,7 +50,7 @@ with lib;
listenPort = mkOption {
type = types.port;
default = 8009;
- description = ''
+ description = lib.mdDoc ''
The port where the daemon will listen to client connections for
this homeserver. Note that the listen address/port combination
needs to be unique between different homeservers.
@@ -60,9 +60,9 @@ with lib;
extraSettings = mkOption {
type = types.attrs;
default = { };
- description = ''
+ description = lib.mdDoc ''
Extra configuration options. See
- pantalaimon(5)
+ [pantalaimon(5)](https://github.com/matrix-org/pantalaimon/blob/master/docs/man/pantalaimon.5.md)
for available options.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/matrix/pantalaimon.nix b/third_party/nixpkgs/nixos/modules/services/matrix/pantalaimon.nix
index 63b40099ca..591ba9a7ab 100644
--- a/third_party/nixpkgs/nixos/modules/services/matrix/pantalaimon.nix
+++ b/third_party/nixpkgs/nixos/modules/services/matrix/pantalaimon.nix
@@ -51,11 +51,11 @@ in
options.services.pantalaimon-headless.instances = mkOption {
default = { };
type = types.attrsOf (types.submodule (import ./pantalaimon-options.nix));
- description = ''
+ description = lib.mdDoc ''
Declarative instance config.
Note: to use pantalaimon interactively, e.g. for a Matrix client which does not
- support End-to-end encryption (like fractal), refer to the home-manager module.
+ support End-to-end encryption (like `fractal`), refer to the home-manager module.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/matrix/synapse.nix b/third_party/nixpkgs/nixos/modules/services/matrix/synapse.nix
index 3d5d10cdf0..a40ed93b4a 100644
--- a/third_party/nixpkgs/nixos/modules/services/matrix/synapse.nix
+++ b/third_party/nixpkgs/nixos/modules/services/matrix/synapse.nix
@@ -143,7 +143,7 @@ in {
configFile = mkOption {
type = types.path;
readOnly = true;
- description = ''
+ description = lib.mdDoc ''
Path to the configuration file on the target system. Useful to configure e.g. workers
that also need this.
'';
@@ -153,7 +153,7 @@ in {
type = types.package;
default = pkgs.matrix-synapse;
defaultText = literalExpression "pkgs.matrix-synapse";
- description = ''
+ description = lib.mdDoc ''
Overridable attribute of the matrix synapse server package to use.
'';
};
@@ -167,7 +167,7 @@ in {
matrix-synapse-pam
];
'';
- description = ''
+ description = lib.mdDoc ''
List of additional Matrix plugins to make available.
'';
};
@@ -175,7 +175,7 @@ in {
withJemalloc = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to preload jemalloc to reduce memory fragmentation and overall usage.
'';
};
@@ -183,7 +183,7 @@ in {
dataDir = mkOption {
type = types.str;
default = "/var/lib/matrix-synapse";
- description = ''
+ description = lib.mdDoc ''
The directory where matrix-synapse stores its stateful data such as
certificates, media and uploads.
'';
@@ -210,7 +210,7 @@ in {
example = "example.com";
default = config.networking.hostName;
defaultText = literalExpression "config.networking.hostName";
- description = ''
+ description = lib.mdDoc ''
The domain name of the server, with optional explicit port.
This is used by remote servers to look up the server address.
This is also the last part of your UserID.
@@ -222,7 +222,7 @@ in {
enable_registration = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Enable registration for new users.
'';
};
@@ -253,7 +253,7 @@ in {
enable_metrics = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Enable collection and rendering of performance metrics
'';
};
@@ -261,7 +261,7 @@ in {
report_stats = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether or not to report anonymized homeserver usage statistics.
'';
};
@@ -269,7 +269,7 @@ in {
signing_key_path = mkOption {
type = types.path;
default = "${cfg.dataDir}/homeserver.signing.key";
- description = ''
+ description = lib.mdDoc ''
Path to the signing key to sign messages with.
'';
};
@@ -278,7 +278,7 @@ in {
type = types.path;
default = "/run/matrix-synapse.pid";
readOnly = true;
- description = ''
+ description = lib.mdDoc ''
The file to store the PID in.
'';
};
@@ -286,7 +286,7 @@ in {
log_config = mkOption {
type = types.path;
default = ./synapse-log_config.yaml;
- description = ''
+ description = lib.mdDoc ''
The file that holds the logging configuration.
'';
};
@@ -297,7 +297,7 @@ in {
then "${cfg.dataDir}/media_store"
else "${cfg.dataDir}/media";
defaultText = "${cfg.dataDir}/media_store for when system.stateVersion is at least 22.05, ${cfg.dataDir}/media when lower than 22.05";
- description = ''
+ description = lib.mdDoc ''
Directory where uploaded images and attachments are stored.
'';
};
@@ -306,7 +306,7 @@ in {
type = types.nullOr types.str;
default = null;
example = "https://example.com:8448/";
- description = ''
+ description = lib.mdDoc ''
The public-facing base URL for the client API (not including _matrix/...)
'';
};
@@ -315,7 +315,7 @@ in {
type = types.nullOr types.str;
default = null;
example = "/var/lib/acme/example.com/fullchain.pem";
- description = ''
+ description = lib.mdDoc ''
PEM encoded X509 certificate for TLS.
You can replace the self-signed certificate that synapse
autogenerates on launch with your own SSL certificate + key pair
@@ -328,7 +328,7 @@ in {
type = types.nullOr types.str;
default = null;
example = "/var/lib/acme/example.com/key.pem";
- description = ''
+ description = lib.mdDoc ''
PEM encoded private key for TLS. Specify null if synapse is not
speaking TLS directly.
'';
@@ -338,7 +338,7 @@ in {
type = types.bool;
default = true;
example = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable presence tracking.
Presence tracking allows users to see the state (e.g online/offline)
@@ -352,7 +352,7 @@ in {
port = mkOption {
type = types.port;
example = 8448;
- description = ''
+ description = lib.mdDoc ''
The port to listen for HTTP(S) requests on.
'';
};
@@ -369,7 +369,7 @@ in {
"0.0.0.0"
]
'';
- description = ''
+ description = lib.mdDoc ''
IP addresses to bind the listener to.
'';
};
@@ -383,7 +383,7 @@ in {
];
default = "http";
example = "metrics";
- description = ''
+ description = lib.mdDoc ''
The type of the listener, usually http.
'';
};
@@ -392,7 +392,7 @@ in {
type = types.bool;
default = true;
example = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable TLS on the listener socket.
'';
};
@@ -401,7 +401,7 @@ in {
type = types.bool;
default = false;
example = true;
- description = ''
+ description = lib.mdDoc ''
Use the X-Forwarded-For (XFF) header as the client IP and not the
actual client IP.
'';
@@ -422,7 +422,7 @@ in {
"replication"
"static"
]);
- description = ''
+ description = lib.mdDoc ''
List of resources to host on this listener.
'';
example = [
@@ -431,7 +431,7 @@ in {
};
compress = mkOption {
type = types.bool;
- description = ''
+ description = lib.mdDoc ''
Should synapse compress HTTP responses to clients that support it?
This should be disabled if running synapse behind a load balancer
that can do automatic compression.
@@ -439,7 +439,7 @@ in {
};
};
});
- description = ''
+ description = lib.mdDoc ''
List of HTTP resources to serve on this listener.
'';
};
@@ -459,7 +459,7 @@ in {
compress = false;
} ];
} ];
- description = ''
+ description = lib.mdDoc ''
List of ports that Synapse should listen on, their purpose and their configuration.
'';
};
@@ -477,7 +477,7 @@ in {
then "psycopg2"
else "sqlite3"
'';
- description = ''
+ description = lib.mdDoc ''
The database engine name. Can be sqlite3 or psycopg2.
'';
};
@@ -494,7 +494,7 @@ in {
psycopg2 = "matrix-synapse";
}.''${${options.services.matrix-synapse.settings}.database.name};
'';
- description = ''
+ description = lib.mdDoc ''
Name of the database when using the psycopg2 backend,
path to the database location when using sqlite3.
'';
@@ -506,7 +506,7 @@ in {
sqlite3 = null;
psycopg2 = "matrix-synapse";
}.${cfg.settings.database.name};
- description = ''
+ description = lib.mdDoc ''
Username to connect with psycopg2, set to null
when using sqlite3.
'';
@@ -516,7 +516,7 @@ in {
type = types.bool;
default = true;
example = false;
- description = ''
+ description = lib.mdDoc ''
Is the preview URL API enabled? If enabled, you *must* specify an
explicit url_preview_ip_range_blacklist of IPs that the spider is
denied from accessing.
@@ -546,7 +546,7 @@ in {
"fec0::/10"
"ff00::/8"
];
- description = ''
+ description = lib.mdDoc ''
List of IP address CIDR ranges that the URL preview spider is denied
from accessing.
'';
@@ -555,7 +555,7 @@ in {
url_preview_ip_range_whitelist = mkOption {
type = types.listOf types.str;
default = [];
- description = ''
+ description = lib.mdDoc ''
List of IP address CIDR ranges that the URL preview spider is allowed
to access even if they are specified in url_preview_ip_range_blacklist.
'';
@@ -564,7 +564,7 @@ in {
url_preview_url_blacklist = mkOption {
type = types.listOf types.str;
default = [];
- description = ''
+ description = lib.mdDoc ''
Optional list of URL matches that the URL preview spider is
denied from accessing.
'';
@@ -574,7 +574,7 @@ in {
type = types.str;
default = "50M";
example = "100M";
- description = ''
+ description = lib.mdDoc ''
The largest allowed upload size in bytes
'';
};
@@ -583,7 +583,7 @@ in {
type = types.str;
default = "32M";
example = "64M";
- description = ''
+ description = lib.mdDoc ''
Maximum number of pixels that will be thumbnailed
'';
};
@@ -592,7 +592,7 @@ in {
type = types.bool;
default = false;
example = true;
- description = ''
+ description = lib.mdDoc ''
Whether to generate new thumbnails on the fly to precisely match
the resolution requested by the client. If true then whenever
a new resolution is requested by the client the server will
@@ -610,7 +610,7 @@ in {
"turns:turn.example.com:5349?transport=udp"
"turns:turn.example.com:5349?transport=tcp"
];
- description = ''
+ description = lib.mdDoc ''
The public URIs of the TURN server to give to clients
'';
};
@@ -633,7 +633,7 @@ in {
server_name = mkOption {
type = types.str;
example = "matrix.org";
- description = ''
+ description = lib.mdDoc ''
Hostname of the trusted server.
'';
};
@@ -646,7 +646,7 @@ in {
"ed25519:auto" = "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw";
}
'';
- description = ''
+ description = lib.mdDoc ''
Attribute set from key id to base64 encoded public key.
If specified synapse will check that the response is signed
@@ -661,7 +661,7 @@ in {
"ed25519:auto" = "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw";
};
} ];
- description = ''
+ description = lib.mdDoc ''
The trusted servers to download signing keys from.
'';
};
@@ -669,7 +669,7 @@ in {
app_service_config_files = mkOption {
type = types.listOf types.path;
default = [ ];
- description = ''
+ description = lib.mdDoc ''
A list of application service config file to use
'';
};
@@ -681,7 +681,7 @@ in {
extraConfigFiles = mkOption {
type = types.listOf types.path;
default = [];
- description = ''
+ description = lib.mdDoc ''
Extra config files to include.
The configuration files will be included based on the command line
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/autorandr.nix b/third_party/nixpkgs/nixos/modules/services/misc/autorandr.nix
index 036bb4f41b..06f24d7c7e 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/autorandr.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/autorandr.nix
@@ -114,12 +114,9 @@ let
[ 0.0 0.0 1.0 ]
]
'';
- description = ''
+ description = lib.mdDoc ''
Refer to
-
- xrandr
- 1
-
+ {manpage}`xrandr(1)`
for the documentation of the transform matrix.
'';
};
@@ -156,10 +153,7 @@ let
Output scale configuration.
Either configure by pixels or a scaling factor. When using pixel method the
-
- xrandr
- 1
-
+ xrandr1
option
--scale-from
will be used; when using factor method the option
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/docker-registry.nix b/third_party/nixpkgs/nixos/modules/services/misc/docker-registry.nix
index 5b32762a36..7a9907fd35 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/docker-registry.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/docker-registry.nix
@@ -103,10 +103,9 @@ in {
garbageCollectDates = mkOption {
default = "daily";
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Specification (in the format described by
- systemd.time
- 7) of the time at
+ {manpage}`systemd.time(7)`) of the time at
which the garbage collect will occur.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/etebase-server.nix b/third_party/nixpkgs/nixos/modules/services/misc/etebase-server.nix
index 1359c265c8..76c7c6596c 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/etebase-server.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/etebase-server.nix
@@ -133,10 +133,10 @@ in
};
};
default = {};
- description = ''
- Configuration for etebase-server. Refer to
-
- and
+ description = lib.mdDoc ''
+ Configuration for `etebase-server`. Refer to
+
+ and
for details on supported values.
'';
example = {
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/exhibitor.nix b/third_party/nixpkgs/nixos/modules/services/misc/exhibitor.nix
index 3db42b8e4a..d804b21fd4 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/exhibitor.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/exhibitor.nix
@@ -71,9 +71,9 @@ in
enable = mkOption {
type = types.bool;
default = false;
- description = "
+ description = lib.mdDoc ''
Whether to enable the exhibitor server.
- ";
+ '';
};
# See https://github.com/soabase/exhibitor/wiki/Running-Exhibitor for what these mean
# General options for any type of config
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/freeswitch.nix b/third_party/nixpkgs/nixos/modules/services/misc/freeswitch.nix
index 8a74b229ce..88949bf980 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/freeswitch.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/freeswitch.nix
@@ -22,11 +22,11 @@ in {
enableReload = mkOption {
default = false;
type = types.bool;
- description = ''
- Issue the reloadxml command to FreeSWITCH when configuration directory changes (instead of restart).
- See FreeSWITCH documentation for more info.
- The configuration directory is exposed at /etc/freeswitch.
- See also systemd.services.*.restartIfChanged.
+ description = lib.mdDoc ''
+ Issue the `reloadxml` command to FreeSWITCH when configuration directory changes (instead of restart).
+ See [FreeSWITCH documentation](https://freeswitch.org/confluence/display/FREESWITCH/Reloading) for more info.
+ The configuration directory is exposed at {file}`/etc/freeswitch`.
+ See also `systemd.services.*.restartIfChanged`.
'';
};
configTemplate = mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/fstrim.nix b/third_party/nixpkgs/nixos/modules/services/misc/fstrim.nix
index a9fc04b46f..83e7ca359b 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/fstrim.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/fstrim.nix
@@ -16,13 +16,12 @@ in {
interval = mkOption {
type = types.str;
default = "weekly";
- description = ''
+ description = lib.mdDoc ''
How often we run fstrim. For most desktop and server systems
a sufficient trimming frequency is once a week.
The format is described in
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/geoipupdate.nix b/third_party/nixpkgs/nixos/modules/services/misc/geoipupdate.nix
index 98d4704121..444bd57893 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/geoipupdate.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/geoipupdate.nix
@@ -12,18 +12,16 @@ in
options = {
services.geoipupdate = {
enable = lib.mkEnableOption ''
- periodic downloading of GeoIP databases using
- geoipupdate.
+ periodic downloading of GeoIP databases using geoipupdate.
'';
interval = lib.mkOption {
type = lib.types.str;
default = "weekly";
- description = ''
+ description = lib.mdDoc ''
Update the GeoIP databases at this time / interval.
The format is described in
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
@@ -37,21 +35,20 @@ in
ProxyUserPassword = { _secret = "/run/keys/proxy_pass"; };
}
'';
- description = ''
- geoipupdate configuration
- options. See
-
+ description = lib.mdDoc ''
+ geoipupdate configuration options. See
+
for a full list of available options.
Settings containing secret data should be set to an
attribute set containing the attribute
- _secret - a string pointing to a file
+ `_secret` - a string pointing to a file
containing the value the option should be set to. See the
example to get a better picture of this: in the resulting
- GeoIP.conf file, the
- ProxyUserPassword key will be set to the
+ {file}`GeoIP.conf` file, the
+ `ProxyUserPassword` key will be set to the
contents of the
- /run/keys/proxy_pass file.
+ {file}`/run/keys/proxy_pass` file.
'';
type = lib.types.submodule {
freeformType =
@@ -86,13 +83,12 @@ in
LicenseKey = lib.mkOption {
type = with lib.types; either path (attrsOf path);
- description = ''
- A file containing the
- MaxMind license key.
+ description = lib.mdDoc ''
+ A file containing the MaxMind license key.
Always handled as a secret whether the value is
- wrapped in a { _secret = ...; }
- attrset or not (refer to for
+ wrapped in a `{ _secret = ...; }`
+ attrset or not (refer to [](#opt-services.geoipupdate.settings) for
details).
'';
apply = x: if isAttrs x then x else { _secret = x; };
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/gitea.nix b/third_party/nixpkgs/nixos/modules/services/misc/gitea.nix
index 82345ad786..f96b4fb6dd 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/gitea.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/gitea.nix
@@ -10,6 +10,7 @@ let
useMysql = cfg.database.type == "mysql";
usePostgresql = cfg.database.type == "postgres";
useSqlite = cfg.database.type == "sqlite3";
+ format = pkgs.formats.ini { };
configFile = pkgs.writeText "app.ini" ''
APP_NAME = ${cfg.appName}
RUN_USER = ${cfg.user}
@@ -22,6 +23,16 @@ let
in
{
+ imports = [
+ (mkRenamedOptionModule [ "services" "gitea" "cookieSecure" ] [ "services" "gitea" "settings" "session" "COOKIE_SECURE" ])
+ (mkRenamedOptionModule [ "services" "gitea" "disableRegistration" ] [ "services" "gitea" "settings" "service" "DISABLE_REGISTRATION" ])
+ (mkRenamedOptionModule [ "services" "gitea" "log" "level" ] [ "services" "gitea" "settings" "log" "LEVEL" ])
+ (mkRenamedOptionModule [ "services" "gitea" "log" "rootPath" ] [ "services" "gitea" "settings" "log" "ROOT_PATH" ])
+ (mkRenamedOptionModule [ "services" "gitea" "ssh" "clonePort" ] [ "services" "gitea" "settings" "server" "SSH_PORT" ])
+
+ (mkRemovedOptionModule [ "services" "gitea" "ssh" "enable" ] "services.gitea.ssh.enable has been migrated into freeform setting services.gitea.settings.server.DISABLE_SSH. Keep in mind that the setting is inverted")
+ ];
+
options = {
services.gitea = {
enable = mkOption {
@@ -49,20 +60,6 @@ in
description = lib.mdDoc "gitea data directory.";
};
- log = {
- rootPath = mkOption {
- default = "${cfg.stateDir}/log";
- defaultText = literalExpression ''"''${config.${opt.stateDir}}/log"'';
- type = types.str;
- description = lib.mdDoc "Root path for log files.";
- };
- level = mkOption {
- default = "Info";
- type = types.enum [ "Trace" "Debug" "Info" "Warn" "Error" "Critical" ];
- description = lib.mdDoc "General log level.";
- };
- };
-
user = mkOption {
type = types.str;
default = "gitea";
@@ -85,7 +82,7 @@ in
port = mkOption {
type = types.port;
- default = (if !usePostgresql then 3306 else pg.port);
+ default = if !usePostgresql then 3306 else pg.port;
defaultText = literalExpression ''
if config.${opt.database.type} != "postgresql"
then 3306
@@ -162,12 +159,11 @@ in
type = types.str;
default = "04:31";
example = "hourly";
- description = ''
+ description = lib.mdDoc ''
Run a gitea dump at this interval. Runs by default at 04:31 every day.
The format is described in
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
@@ -187,30 +183,11 @@ in
file = mkOption {
type = types.nullOr types.str;
default = null;
- description = "Filename to be used for the dump. If `null` a default name is choosen by gitea.";
+ description = lib.mdDoc "Filename to be used for the dump. If `null` a default name is choosen by gitea.";
example = "gitea-dump";
};
};
- ssh = {
- enable = mkOption {
- type = types.bool;
- default = true;
- description = lib.mdDoc "Enable external SSH feature.";
- };
-
- clonePort = mkOption {
- type = types.int;
- default = 22;
- example = 2222;
- description = lib.mdDoc ''
- SSH port displayed in clone URL.
- The option is required to configure a service when the external visible port
- differs from the local listening port i.e. if port forwarding is used.
- '';
- };
- };
-
lfs = {
enable = mkOption {
type = types.bool;
@@ -269,15 +246,6 @@ in
description = lib.mdDoc "Configure Gitea to listen on a unix socket instead of the default TCP port.";
};
- cookieSecure = mkOption {
- type = types.bool;
- default = false;
- description = lib.mdDoc ''
- Marks session cookies as "secure" as a hint for browsers to only send
- them via HTTPS. This option is recommend, if gitea is being served over HTTPS.
- '';
- };
-
staticRootPath = mkOption {
type = types.either types.str types.path;
default = gitea.data;
@@ -293,20 +261,7 @@ in
description = lib.mdDoc "Path to a file containing the SMTP password.";
};
- disableRegistration = mkEnableOption "the registration lock" // {
- description = ''
- By default any user can create an account on this gitea instance.
- This can be disabled by using this option.
-
- Note: please keep in mind that this should be added after the initial
- deploy unless services.gitea.useWizard
- is true as the first registered user will be the administrator if
- no install wizard is used.
- '';
- };
-
settings = mkOption {
- type = with types; attrsOf (attrsOf (oneOf [ bool int str ]));
default = {};
description = lib.mdDoc ''
Gitea configuration. Refer to
@@ -330,6 +285,68 @@ in
};
}
'';
+ type = with types; submodule {
+ freeformType = format.type;
+ options = {
+ log = {
+ ROOT_PATH = mkOption {
+ default = "${cfg.stateDir}/log";
+ defaultText = literalExpression ''"''${config.${opt.stateDir}}/log"'';
+ type = types.str;
+ description = lib.mdDoc "Root path for log files.";
+ };
+ LEVEL = mkOption {
+ default = "Info";
+ type = types.enum [ "Trace" "Debug" "Info" "Warn" "Error" "Critical" ];
+ description = lib.mdDoc "General log level.";
+ };
+ };
+
+ server = {
+ DISABLE_SSH = mkOption {
+ type = types.bool;
+ default = false;
+ description = lib.mdDoc "Disable external SSH feature.";
+ };
+
+ SSH_PORT = mkOption {
+ type = types.int;
+ default = 22;
+ example = 2222;
+ description = lib.mdDoc ''
+ SSH port displayed in clone URL.
+ The option is required to configure a service when the external visible port
+ differs from the local listening port i.e. if port forwarding is used.
+ '';
+ };
+ };
+
+ service = {
+ DISABLE_REGISTRATION = mkEnableOption "the registration lock" // {
+ description = ''
+ By default any user can create an account on this gitea instance.
+ This can be disabled by using this option.
+
+ Note: please keep in mind that this should be added after the initial
+ deploy unless services.gitea.useWizard
+ is true as the first registered user will be the administrator if
+ no install wizard is used.
+ '';
+ };
+ };
+
+ session = {
+ COOKIE_SECURE = mkOption {
+ type = types.bool;
+ default = false;
+ description = lib.mdDoc ''
+ Marks session cookies as "secure" as a hint for browsers to only send
+ them via HTTPS. This option is recommend, if gitea is being served over HTTPS.
+ '';
+ };
+ };
+ };
+ };
};
extraConfig = mkOption {
@@ -385,13 +402,6 @@ in
HTTP_ADDR = cfg.httpAddress;
HTTP_PORT = cfg.httpPort;
})
- (mkIf cfg.ssh.enable {
- DISABLE_SSH = false;
- SSH_PORT = cfg.ssh.clonePort;
- })
- (mkIf (!cfg.ssh.enable) {
- DISABLE_SSH = true;
- })
(mkIf cfg.lfs.enable {
LFS_START_SERVER = true;
LFS_CONTENT_PATH = cfg.lfs.contentDir;
@@ -400,8 +410,7 @@ in
];
session = {
- COOKIE_NAME = "session";
- COOKIE_SECURE = cfg.cookieSecure;
+ COOKIE_NAME = lib.mkDefault "session";
};
security = {
@@ -410,15 +419,6 @@ in
INSTALL_LOCK = true;
};
- log = {
- ROOT_PATH = cfg.log.rootPath;
- LEVEL = cfg.log.level;
- };
-
- service = {
- DISABLE_REGISTRATION = cfg.disableRegistration;
- };
-
mailer = mkIf (cfg.mailerPasswordFile != null) {
PASSWD = "#mailerpass#";
};
@@ -502,7 +502,7 @@ in
replaceSecretBin = "${pkgs.replace-secret}/bin/replace-secret";
in ''
# copy custom configuration and generate a random secret key if needed
- ${optionalString (cfg.useWizard == false) ''
+ ${optionalString (!cfg.useWizard) ''
function gitea_setup {
cp -f ${configFile} ${runConfig}
@@ -622,10 +622,10 @@ in
# Create database passwordFile default when password is configured.
services.gitea.database.passwordFile =
- (mkDefault (toString (pkgs.writeTextFile {
+ mkDefault (toString (pkgs.writeTextFile {
name = "gitea-database-password";
text = cfg.database.password;
- })));
+ }));
systemd.services.gitea-dump = mkIf cfg.dump.enable {
description = "gitea dump";
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/gitit.nix b/third_party/nixpkgs/nixos/modules/services/misc/gitit.nix
index 223fa76d91..f00c03337d 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/gitit.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/gitit.nix
@@ -31,14 +31,14 @@ let
enable = mkOption {
type = types.bool;
default = false;
- description = "Enable the gitit service.";
+ description = lib.mdDoc "Enable the gitit service.";
};
haskellPackages = mkOption {
default = pkgs.haskellPackages;
defaultText = literalExpression "pkgs.haskellPackages";
example = literalExpression "pkgs.haskell.packages.ghc784";
- description = "haskellPackages used to build gitit and plugins.";
+ description = lib.mdDoc "haskellPackages used to build gitit and plugins.";
};
extraPackages = mkOption {
@@ -59,31 +59,31 @@ let
address = mkOption {
type = types.str;
default = "0.0.0.0";
- description = "IP address on which the web server will listen.";
+ description = lib.mdDoc "IP address on which the web server will listen.";
};
port = mkOption {
type = types.int;
default = 5001;
- description = "Port on which the web server will run.";
+ description = lib.mdDoc "Port on which the web server will run.";
};
wikiTitle = mkOption {
type = types.str;
default = "Gitit!";
- description = "The wiki title.";
+ description = lib.mdDoc "The wiki title.";
};
repositoryType = mkOption {
type = types.enum ["git" "darcs" "mercurial"];
default = "git";
- description = "Specifies the type of repository used for wiki content.";
+ description = lib.mdDoc "Specifies the type of repository used for wiki content.";
};
repositoryPath = mkOption {
type = types.path;
default = homeDir + "/wiki";
- description = ''
+ description = lib.mdDoc ''
Specifies the path of the repository directory. If it does not
exist, gitit will create it on startup.
'';
@@ -92,7 +92,7 @@ let
requireAuthentication = mkOption {
type = types.enum [ "none" "modify" "read" ];
default = "modify";
- description = ''
+ description = lib.mdDoc ''
If 'none', login is never required, and pages can be edited
anonymously. If 'modify', login is required to modify the wiki
(edit, add, delete pages, upload files). If 'read', login is
@@ -103,7 +103,7 @@ let
authenticationMethod = mkOption {
type = types.enum [ "form" "http" "generic" "github" ];
default = "form";
- description = ''
+ description = lib.mdDoc ''
'form' means that users will be logged in and registered using forms
in the gitit web interface. 'http' means that gitit will assume that
HTTP authentication is in place and take the logged in username from
@@ -121,7 +121,7 @@ let
userFile = mkOption {
type = types.path;
default = homeDir + "/gitit-users";
- description = ''
+ description = lib.mdDoc ''
Specifies the path of the file containing user login information. If
it does not exist, gitit will create it (with an empty user list).
This file is not used if 'http' is selected for
@@ -132,7 +132,7 @@ let
sessionTimeout = mkOption {
type = types.int;
default = 60;
- description = ''
+ description = lib.mdDoc ''
Number of minutes of inactivity before a session expires.
'';
};
@@ -140,7 +140,7 @@ let
staticDir = mkOption {
type = types.path;
default = gititShared + "/data/static";
- description = ''
+ description = lib.mdDoc ''
Specifies the path of the static directory (containing javascript,
css, and images). If it does not exist, gitit will create it and
populate it with required scripts, stylesheets, and images.
@@ -150,7 +150,7 @@ let
defaultPageType = mkOption {
type = types.enum [ "markdown" "rst" "latex" "html" "markdown+lhs" "rst+lhs" "latex+lhs" ];
default = "markdown";
- description = ''
+ description = lib.mdDoc ''
Specifies the type of markup used to interpret pages in the wiki.
Possible values are markdown, rst, latex, html, markdown+lhs,
rst+lhs, and latex+lhs. (the +lhs variants treat the input as
@@ -166,7 +166,7 @@ let
math = mkOption {
type = types.enum [ "mathml" "raw" "mathjax" "jsmath" "google" ];
default = "mathml";
- description = ''
+ description = lib.mdDoc ''
Specifies how LaTeX math is to be displayed. Possible values are
mathml, raw, mathjax, jsmath, and google. If mathml is selected,
gitit will convert LaTeX math to MathML and link in a script,
@@ -186,7 +186,7 @@ let
mathJaxScript = mkOption {
type = types.str;
default = "https://d3eoax9i5htok0.cloudfront.net/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
- description = ''
+ description = lib.mdDoc ''
Specifies the path to MathJax rendering script. You might want to
use your own MathJax script to render formulas without Internet
connection or if you want to use some special LaTeX packages. Note:
@@ -202,7 +202,7 @@ let
showLhsBirdTracks = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Specifies whether to show Haskell code blocks in "bird style", with
"> " at the beginning of each line.
'';
@@ -224,7 +224,7 @@ let
logFile = mkOption {
type = types.path;
default = homeDir + "/gitit.log";
- description = ''
+ description = lib.mdDoc ''
Specifies the path of gitit's log file. If it does not exist, gitit
will create it. The log is in Apache combined log format.
'';
@@ -233,7 +233,7 @@ let
logLevel = mkOption {
type = types.enum [ "DEBUG" "INFO" "NOTICE" "WARNING" "ERROR" "CRITICAL" "ALERT" "EMERGENCY" ];
default = "ERROR";
- description = ''
+ description = lib.mdDoc ''
Determines how much information is logged. Possible values (from
most to least verbose) are DEBUG, INFO, NOTICE, WARNING, ERROR,
CRITICAL, ALERT, EMERGENCY.
@@ -243,7 +243,7 @@ let
frontPage = mkOption {
type = types.str;
default = "Front Page";
- description = ''
+ description = lib.mdDoc ''
Specifies which wiki page is to be used as the wiki's front page.
Gitit creates a default front page on startup, if one does not exist
already.
@@ -253,7 +253,7 @@ let
noDelete = mkOption {
type = types.str;
default = "Front Page, Help";
- description = ''
+ description = lib.mdDoc ''
Specifies pages that cannot be deleted through the web interface.
(They can still be deleted directly using git or darcs.) A
comma-separated list of page names. Leave blank to allow every page
@@ -264,7 +264,7 @@ let
noEdit = mkOption {
type = types.str;
default = "Help";
- description = ''
+ description = lib.mdDoc ''
Specifies pages that cannot be edited through the web interface.
Leave blank to allow every page to be edited.
'';
@@ -273,7 +273,7 @@ let
defaultSummary = mkOption {
type = types.str;
default = "";
- description = ''
+ description = lib.mdDoc ''
Specifies text to be used in the change description if the author
leaves the "description" field blank. If default-summary is blank
(the default), the author will be required to fill in the description
@@ -284,7 +284,7 @@ let
tableOfContents = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Specifies whether to print a tables of contents (with links to
sections) on each wiki page.
'';
@@ -293,7 +293,7 @@ let
plugins = mkOption {
type = with types; listOf str;
default = [ (gititShared + "/plugins/Dot.hs") ];
- description = ''
+ description = lib.mdDoc ''
Specifies a list of plugins to load. Plugins may be specified either
by their path or by their module name. If the plugin name starts
with Gitit.Plugin., gitit will assume that the plugin is an installed
@@ -304,7 +304,7 @@ let
useCache = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Specifies whether to cache rendered pages. Note that if use-feed is
selected, feeds will be cached regardless of the value of use-cache.
'';
@@ -313,13 +313,13 @@ let
cacheDir = mkOption {
type = types.path;
default = homeDir + "/cache";
- description = "Path where rendered pages will be cached.";
+ description = lib.mdDoc "Path where rendered pages will be cached.";
};
maxUploadSize = mkOption {
type = types.str;
default = "1000K";
- description = ''
+ description = lib.mdDoc ''
Specifies an upper limit on the size (in bytes) of files uploaded
through the wiki's web interface. To disable uploads, set this to
0K. This will result in the uploads link disappearing and the
@@ -330,19 +330,19 @@ let
maxPageSize = mkOption {
type = types.str;
default = "1000K";
- description = "Specifies an upper limit on the size (in bytes) of pages.";
+ description = lib.mdDoc "Specifies an upper limit on the size (in bytes) of pages.";
};
debugMode = mkOption {
type = types.bool;
default = false;
- description = "Causes debug information to be logged while gitit is running.";
+ description = lib.mdDoc "Causes debug information to be logged while gitit is running.";
};
compressResponses = mkOption {
type = types.bool;
default = true;
- description = "Specifies whether HTTP responses should be compressed.";
+ description = lib.mdDoc "Specifies whether HTTP responses should be compressed.";
};
mimeTypesFile = mkOption {
@@ -363,7 +363,7 @@ video/x-ms-wmx wmx
useReCaptcha = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
If true, causes gitit to use the reCAPTCHA service
(http://recaptcha.net) to prevent bots from creating accounts.
'';
@@ -372,7 +372,7 @@ video/x-ms-wmx wmx
reCaptchaPrivateKey = mkOption {
type = with types; nullOr str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Specifies the private key for the reCAPTCHA service. To get
these, you need to create an account at http://recaptcha.net.
'';
@@ -381,7 +381,7 @@ video/x-ms-wmx wmx
reCaptchaPublicKey = mkOption {
type = with types; nullOr str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Specifies the public key for the reCAPTCHA service. To get
these, you need to create an account at http://recaptcha.net.
'';
@@ -390,7 +390,7 @@ video/x-ms-wmx wmx
accessQuestion = mkOption {
type = types.str;
default = "What is the code given to you by Ms. X?";
- description = ''
+ description = lib.mdDoc ''
Specifies a question that users must answer when they attempt to
create an account
'';
@@ -399,7 +399,7 @@ video/x-ms-wmx wmx
accessQuestionAnswers = mkOption {
type = types.str;
default = "RED DOG, red dog";
- description = ''
+ description = lib.mdDoc ''
Specifies a question that users must answer when they attempt to
create an account, along with a comma-separated list of acceptable
answers. This can be used to institute a rudimentary password for
@@ -413,7 +413,7 @@ video/x-ms-wmx wmx
rpxDomain = mkOption {
type = with types; nullOr str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Specifies the domain and key of your RPX account. The domain is just
the prefix of the complete RPX domain, so if your full domain is
'https://foo.rpxnow.com/', use 'foo' as the value of rpx-domain.
@@ -423,13 +423,13 @@ video/x-ms-wmx wmx
rpxKey = mkOption {
type = with types; nullOr str;
default = null;
- description = "RPX account access key.";
+ description = lib.mdDoc "RPX account access key.";
};
mailCommand = mkOption {
type = types.str;
default = "sendmail %s";
- description = ''
+ description = lib.mdDoc ''
Specifies the command to use to send notification emails. '%s' will
be replaced by the destination email address. The body of the
message will be read from stdin. If this field is left blank,
@@ -451,7 +451,7 @@ video/x-ms-wmx wmx
>
> Regards
'';
- description = ''
+ description = lib.mdDoc ''
Gives the text of the message that will be sent to the user should
she want to reset her password, or change other registration info.
The lines must be indented, and must begin with '>'. The initial
@@ -471,7 +471,7 @@ video/x-ms-wmx wmx
useFeed = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Specifies whether an ATOM feed should be enabled (for the site and
for individual pages).
'';
@@ -480,7 +480,7 @@ video/x-ms-wmx wmx
baseUrl = mkOption {
type = with types; nullOr str;
default = null;
- description = ''
+ description = lib.mdDoc ''
The base URL of the wiki, to be used in constructing feed IDs and RPX
token_urls. Set this if useFeed is false or authentication-method
is 'rpx'.
@@ -502,19 +502,19 @@ video/x-ms-wmx wmx
feedDays = mkOption {
type = types.int;
default = 14;
- description = "Number of days to be included in feeds.";
+ description = lib.mdDoc "Number of days to be included in feeds.";
};
feedRefreshTime = mkOption {
type = types.int;
default = 60;
- description = "Number of minutes to cache feeds before refreshing.";
+ description = lib.mdDoc "Number of minutes to cache feeds before refreshing.";
};
pdfExport = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
If true, PDF will appear in export options. PDF will be created using
pdflatex, which must be installed and in the path. Note that PDF
exports create significant additional server load.
@@ -524,7 +524,7 @@ video/x-ms-wmx wmx
pandocUserData = mkOption {
type = with types; nullOr path;
default = null;
- description = ''
+ description = lib.mdDoc ''
If a directory is specified, this will be searched for pandoc
customizations. These can include a templates/ directory for custom
templates for various export formats, an S5 directory for custom S5
@@ -537,7 +537,7 @@ video/x-ms-wmx wmx
xssSanitize = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
If true, all HTML (including that produced by pandoc) is filtered
through xss-sanitize. Set to no only if you trust all of your users.
'';
@@ -546,37 +546,37 @@ video/x-ms-wmx wmx
oauthClientId = mkOption {
type = with types; nullOr str;
default = null;
- description = "OAuth client ID";
+ description = lib.mdDoc "OAuth client ID";
};
oauthClientSecret = mkOption {
type = with types; nullOr str;
default = null;
- description = "OAuth client secret";
+ description = lib.mdDoc "OAuth client secret";
};
oauthCallback = mkOption {
type = with types; nullOr str;
default = null;
- description = "OAuth callback URL";
+ description = lib.mdDoc "OAuth callback URL";
};
oauthAuthorizeEndpoint = mkOption {
type = with types; nullOr str;
default = null;
- description = "OAuth authorize endpoint";
+ description = lib.mdDoc "OAuth authorize endpoint";
};
oauthAccessTokenEndpoint = mkOption {
type = with types; nullOr str;
default = null;
- description = "OAuth access token endpoint";
+ description = lib.mdDoc "OAuth access token endpoint";
};
githubOrg = mkOption {
type = with types; nullOr str;
default = null;
- description = "Github organization";
+ description = lib.mdDoc "Github organization";
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/gitlab.nix b/third_party/nixpkgs/nixos/modules/services/misc/gitlab.nix
index 938b1d4ed1..aa2a05900f 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/gitlab.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/gitlab.nix
@@ -319,11 +319,10 @@ in {
type = with types; either str (listOf str);
default = [];
example = "03:00";
- description = ''
+ description = lib.mdDoc ''
The time(s) to run automatic backup of GitLab
state. Specified in systemd's time format; see
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
@@ -339,10 +338,9 @@ in {
default = 0;
example = 48;
apply = x: x * 60 * 60;
- description = ''
+ description = lib.mdDoc ''
How long to keep the backups around, in
- hours. 0 means keep
- forever.
+ hours. `0` means “keep forever”.
'';
};
@@ -416,9 +414,9 @@ in {
databaseHost = mkOption {
type = types.str;
default = "";
- description = ''
- GitLab database hostname. An empty string means use
- local unix socket connection.
+ description = lib.mdDoc ''
+ GitLab database hostname. An empty string means
+ “use local unix socket connection”.
'';
};
@@ -753,8 +751,7 @@ in {
description = ''
The number of worker processes Puma should spawn. This
controls the amount of parallel Ruby code can be
- executed. GitLab recommends Number of CPU cores -
- 1, but at least two.
+ executed. GitLab recommends Number of CPU cores - 1, but at least two.
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/gitolite.nix b/third_party/nixpkgs/nixos/modules/services/misc/gitolite.nix
index b313be074d..88b9ac4a0a 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/gitolite.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/gitolite.nix
@@ -14,12 +14,11 @@ in
enable = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Enable gitolite management under the
- gitolite user. After
+ `gitolite` user. After
switching to a configuration with Gitolite enabled, you can
- then run git clone
- gitolite@host:gitolite-admin.git to manage it further.
+ then run `git clone gitolite@host:gitolite-admin.git` to manage it further.
'';
};
@@ -72,25 +71,25 @@ in
@{$RC{ENABLE}} = grep { $_ ne 'desc' } @{$RC{ENABLE}}; # disable the command/feature
'''
'';
- description = ''
- Extra configuration to append to the default ~/.gitolite.rc.
+ description = lib.mdDoc ''
+ Extra configuration to append to the default `~/.gitolite.rc`.
- This should be Perl code that modifies the %RC
- configuration variable. The default ~/.gitolite.rc
- content is generated by invoking gitolite print-default-rc,
+ This should be Perl code that modifies the `%RC`
+ configuration variable. The default `~/.gitolite.rc`
+ content is generated by invoking `gitolite print-default-rc`,
and extra configuration from this option is appended to it. The result
- is placed to Nix store, and the ~/.gitolite.rc file
+ is placed to Nix store, and the `~/.gitolite.rc` file
becomes a symlink to it.
If you already have a customized (or otherwise changed)
- ~/.gitolite.rc file, NixOS will refuse to replace
+ `~/.gitolite.rc` file, NixOS will refuse to replace
it with a symlink, and the `gitolite-init` initialization service
will fail. In this situation, in order to use this option, you
will need to take any customizations you may have in
- ~/.gitolite.rc, convert them to appropriate Perl
+ `~/.gitolite.rc`, convert them to appropriate Perl
statements, add them to this option, and remove the file.
- See also the enableGitAnnex option.
+ See also the `enableGitAnnex` option.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/klipper.nix b/third_party/nixpkgs/nixos/modules/services/misc/klipper.nix
index 34e9acc719..0dadc0c747 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/klipper.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/klipper.nix
@@ -82,7 +82,7 @@ in
'';
configFile = mkOption {
type = path;
- description = "Path to firmware config which is generated using `klipper-genconf`";
+ description = lib.mdDoc "Path to firmware config which is generated using `klipper-genconf`";
};
};
});
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/nix-daemon.nix b/third_party/nixpkgs/nixos/modules/services/misc/nix-daemon.nix
index 93ff5fcfb8..2738d2ee6c 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/nix-daemon.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/nix-daemon.nix
@@ -155,30 +155,29 @@ in
type = types.enum [ "other" "batch" "idle" ];
default = "other";
example = "batch";
- description = ''
+ description = lib.mdDoc ''
Nix daemon process CPU scheduling policy. This policy propagates to
- build processes. other is the default scheduling
- policy for regular tasks. The batch policy is
- similar to other, but optimised for
- non-interactive tasks. idle is for extremely
+ build processes. `other` is the default scheduling
+ policy for regular tasks. The `batch` policy is
+ similar to `other`, but optimised for
+ non-interactive tasks. `idle` is for extremely
low-priority tasks that should only be run when no other task
requires CPU time.
- Please note that while using the idle policy may
+ Please note that while using the `idle` policy may
greatly improve responsiveness of a system performing expensive
builds, it may also slow down and potentially starve crucial
configuration updates during load.
- idle may therefore be a sensible policy for
+ `idle` may therefore be a sensible policy for
systems that experience only intermittent phases of high CPU load,
such as desktop or portable computers used interactively. Other
- systems should use the other or
- batch policy instead.
+ systems should use the `other` or
+ `batch` policy instead.
For more fine-grained resource control, please refer to
- systemd.resource-control
- 5 and adjust
- directly.
+ {manpage}`systemd.resource-control(5)` and adjust
+ {option}`systemd.services.nix-daemon` directly.
'';
};
@@ -265,7 +264,7 @@ in
type = types.nullOr types.str;
default = null;
example = "/root/.ssh/id_buildhost_builduser";
- description = ''
+ description = lib.mdDoc ''
The path to the SSH private key with which to authenticate on
the build machine. The private key must not have a passphrase.
If null, the building user (root on NixOS machines) must have an
@@ -563,13 +562,13 @@ in
trusted-public-keys = mkOption {
type = types.listOf types.str;
example = [ "hydra.nixos.org-1:CNHJZBh9K4tP3EKF6FkkgeVYsS3ohTl+oS0Qa8bezVs=" ];
- description = ''
+ description = lib.mdDoc ''
List of public keys used to sign binary caches. If
- is enabled,
+ {option}`nix.settings.trusted-public-keys` is enabled,
then Nix will use a binary from a binary cache if and only
- if it is signed by any of the keys
+ if it is signed by *any* of the keys
listed here. By default, only the key for
- cache.nixos.org is included.
+ `cache.nixos.org` is included.
'';
};
@@ -606,13 +605,13 @@ in
type = types.listOf types.str;
default = [ "*" ];
example = [ "@wheel" "@builders" "alice" "bob" ];
- description = ''
+ description = lib.mdDoc ''
A list of names of users (separated by whitespace) that are
allowed to connect to the Nix daemon. As with
- , you can specify groups by
- prefixing them with @. Also, you can
- allow all users by specifying *. The
- default is *. Note that trusted users are
+ {option}`nix.settings.trusted-users`, you can specify groups by
+ prefixing them with `@`. Also, you can
+ allow all users by specifying `*`. The
+ default is `*`. Note that trusted users are
always allowed to connect.
'';
};
@@ -631,10 +630,7 @@ in
description = ''
Configuration for Nix, see
or
-
- nix.conf
- 5
- for avalaible options.
+ nix.conf5 for avalaible options.
The value declared here will be translated directly to the key-value pairs Nix expects.
You can use nix-instantiate --eval --strict '<nixpkgs/nixos>' -A config.nix.settings
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/nix-gc.nix b/third_party/nixpkgs/nixos/modules/services/misc/nix-gc.nix
index ac554dcea8..97596d28cd 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/nix-gc.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/nix-gc.nix
@@ -24,13 +24,12 @@ in
type = types.str;
default = "03:15";
example = "weekly";
- description = ''
+ description = lib.mdDoc ''
How often or when garbage collection is performed. For most desktop and server systems
a sufficient garbage collection is once a week.
The format is described in
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
@@ -38,12 +37,11 @@ in
default = "0";
type = types.str;
example = "45min";
- description = ''
+ description = lib.mdDoc ''
Add a randomized delay before each garbage collection.
The delay will be chosen between zero and this value.
This value must be a time span in the format specified by
- systemd.time
- 7
+ {manpage}`systemd.time(7)`
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/nix-optimise.nix b/third_party/nixpkgs/nixos/modules/services/misc/nix-optimise.nix
index bcfc69c521..db8148c060 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/nix-optimise.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/nix-optimise.nix
@@ -23,10 +23,9 @@ in
dates = mkOption {
default = ["03:45"];
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
Specification (in the format described by
- systemd.time
- 7) of the time at
+ {manpage}`systemd.time(7)`) of the time at
which the optimiser will run.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/portunus.nix b/third_party/nixpkgs/nixos/modules/services/misc/portunus.nix
new file mode 100644
index 0000000000..a2247272fa
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/misc/portunus.nix
@@ -0,0 +1,288 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.portunus;
+
+in
+{
+ options.services.portunus = {
+ enable = mkEnableOption "Portunus, a self-contained user/group management and authentication service for LDAP";
+
+ domain = mkOption {
+ type = types.str;
+ example = "sso.example.com";
+ description = "Subdomain which gets reverse proxied to Portunus webserver.";
+ };
+
+ port = mkOption {
+ type = types.port;
+ default = 8080;
+ description = ''
+ Port where the Portunus webserver should listen on.
+
+ This must be put behind a TLS-capable reverse proxy because Portunus only listens on localhost.
+ '';
+ };
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.portunus;
+ defaultText = "pkgs.portunus";
+ description = "The Portunus package to use.";
+ };
+
+ seedPath = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = ''
+ Path to a portunus seed file in json format.
+ See for available options.
+ '';
+ };
+
+ stateDir = mkOption {
+ type = types.path;
+ default = "/var/lib/portunus";
+ description = "Path where Portunus stores its state.";
+ };
+
+ user = mkOption {
+ type = types.str;
+ default = "portunus";
+ description = "User account under which Portunus runs its webserver.";
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = "portunus";
+ description = "Group account under which Portunus runs its webserver.";
+ };
+
+ dex = {
+ enable = mkEnableOption ''
+ Dex ldap connector.
+
+ To activate dex, first a search user must be created in the Portunus web ui
+ and then the password must to be set as the DEX_SEARCH_USER_PASSWORD environment variable
+ in the setting.
+ '';
+
+ oidcClients = mkOption {
+ type = types.listOf (types.submodule {
+ options = {
+ callbackURL = mkOption {
+ type = types.str;
+ description = "URL where the OIDC client should redirect";
+ };
+ id = mkOption {
+ type = types.str;
+ description = "ID of the OIDC client";
+ };
+ };
+ });
+ default = [ ];
+ example = [
+ {
+ callbackURL = "https://example.com/client/oidc/callback";
+ id = "service";
+ }
+ ];
+ description = ''
+ List of OIDC clients.
+
+ The OIDC secret must be set as the DEX_CLIENT_''${id} environment variable
+ in the setting.
+ '';
+ };
+
+ port = mkOption {
+ type = types.port;
+ default = 5556;
+ description = "Port where dex should listen on.";
+ };
+ };
+
+ ldap = {
+ package = mkOption {
+ type = types.package;
+ default = pkgs.openldap;
+ defaultText = "pkgs.openldap";
+ description = "The OpenLDAP package to use.";
+ };
+
+ searchUserName = mkOption {
+ type = types.str;
+ default = "";
+ example = "admin";
+ description = ''
+ The login name of the search user.
+ This user account must be configured in Portunus either manually or via seeding.
+ '';
+ };
+
+ suffix = mkOption {
+ type = types.str;
+ example = "dc=example,dc=org";
+ description = ''
+ The DN of the topmost entry in your LDAP directory.
+ Please refer to the Portunus documentation for more information on how this impacts the structure of the LDAP directory.
+ '';
+ };
+
+ tls = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Wether to enable LDAPS protocol.
+ This also adds two entries to the /etc/hosts file to point to localhost,
+ so that CLIs and programs can use ldaps protocol and verify the certificate without opening the firewall port for the protocol.
+
+ This requires a TLS certificate for to be configured via .
+ '';
+ };
+
+ user = mkOption {
+ type = types.str;
+ default = "openldap";
+ description = "User account under which Portunus runs its LDAP server.";
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = "openldap";
+ description = "Group account under which Portunus runs its LDAP server.";
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ assertions = [
+ {
+ assertion = cfg.dex.enable -> cfg.ldap.searchUserName != "";
+ message = "services.portunus.dex.enable requires services.portunus.ldap.searchUserName to be set.";
+ }
+ ];
+
+ # add ldapsearch(1) etc. to interactive shells
+ environment.systemPackages = [ cfg.ldap.package ];
+
+ # allow connecting via ldaps /w certificate without opening ports
+ networking.hosts = mkIf cfg.ldap.tls {
+ "::1" = [ cfg.domain ];
+ "127.0.0.1" = [ cfg.domain ];
+ };
+
+ services.dex = mkIf cfg.dex.enable {
+ enable = true;
+ settings = {
+ issuer = "https://${cfg.domain}/dex";
+ web.http = "127.0.0.1:${toString cfg.dex.port}";
+ storage = {
+ type = "sqlite3";
+ config.file = "/var/lib/dex/dex.db";
+ };
+ enablePasswordDB = false;
+ connectors = [{
+ type = "ldap";
+ id = "ldap";
+ name = "LDAP";
+ config = {
+ host = "${cfg.domain}:636";
+ bindDN = "uid=${cfg.ldap.searchUserName},ou=users,${cfg.ldap.suffix}";
+ bindPW = "$DEX_SEARCH_USER_PASSWORD";
+ userSearch = {
+ baseDN = "ou=users,${cfg.ldap.suffix}";
+ filter = "(objectclass=person)";
+ username = "uid";
+ idAttr = "uid";
+ emailAttr = "mail";
+ nameAttr = "cn";
+ preferredUsernameAttr = "uid";
+ };
+ groupSearch = {
+ baseDN = "ou=groups,${cfg.ldap.suffix}";
+ filter = "(objectclass=groupOfNames)";
+ nameAttr = "cn";
+ userMatchers = [{ userAttr = "DN"; groupAttr = "member"; }];
+ };
+ };
+ }];
+
+ staticClients = forEach cfg.dex.oidcClients (client: {
+ inherit (client) id;
+ redirectURIs = [ client.callbackURI ];
+ name = "OIDC for ${client.id}";
+ secret = "$DEX_CLIENT_${client.id}";
+ });
+ };
+ };
+
+ systemd.services = {
+ dex.serviceConfig = mkIf cfg.dex.enable {
+ # `dex.service` is super locked down out of the box, but we need some
+ # place to write the SQLite database. This creates $STATE_DIRECTORY below
+ # /var/lib/private because DynamicUser=true, but it gets symlinked into
+ # /var/lib/dex inside the unit
+ StateDirectory = "dex";
+ };
+
+ portunus = {
+ description = "Self-contained authentication service";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+ serviceConfig.ExecStart = "${cfg.package.out}/bin/portunus-orchestrator";
+ environment = {
+ PORTUNUS_LDAP_SUFFIX = cfg.ldap.suffix;
+ PORTUNUS_SERVER_BINARY = "${cfg.package}/bin/portunus-server";
+ PORTUNUS_SERVER_GROUP = cfg.group;
+ PORTUNUS_SERVER_USER = cfg.user;
+ PORTUNUS_SERVER_HTTP_LISTEN = "[::]:${toString cfg.port}";
+ PORTUNUS_SERVER_STATE_DIR = cfg.stateDir;
+ PORTUNUS_SLAPD_BINARY = "${cfg.ldap.package}/libexec/slapd";
+ PORTUNUS_SLAPD_GROUP = cfg.ldap.group;
+ PORTUNUS_SLAPD_USER = cfg.ldap.user;
+ PORTUNUS_SLAPD_SCHEMA_DIR = "${cfg.ldap.package}/etc/schema";
+ } // (optionalAttrs (cfg.seedPath != null) ({
+ PORTUNUS_SEED_PATH = cfg.seedPath;
+ })) // (optionalAttrs cfg.ldap.tls (
+ let
+ acmeDirectory = config.security.acme.certs."${cfg.domain}".directory;
+ in
+ {
+ PORTUNUS_SLAPD_TLS_CA_CERTIFICATE = "/etc/ssl/certs/ca-certificates.crt";
+ PORTUNUS_SLAPD_TLS_CERTIFICATE = "${acmeDirectory}/cert.pem";
+ PORTUNUS_SLAPD_TLS_DOMAIN_NAME = cfg.domain;
+ PORTUNUS_SLAPD_TLS_PRIVATE_KEY = "${acmeDirectory}/key.pem";
+ }));
+ };
+ };
+
+ users.users = mkMerge [
+ (mkIf (cfg.ldap.user == "openldap") {
+ openldap = {
+ group = cfg.ldap.group;
+ isSystemUser = true;
+ };
+ })
+ (mkIf (cfg.user == "portunus") {
+ portunus = {
+ group = cfg.group;
+ isSystemUser = true;
+ };
+ })
+ ];
+
+ users.groups = mkMerge [
+ (mkIf (cfg.ldap.user == "openldap") {
+ openldap = { };
+ })
+ (mkIf (cfg.user == "portunus") {
+ portunus = { };
+ })
+ ];
+ };
+
+ meta.maintainers = [ majewsky ] ++ teams.c3d2.members;
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/rmfakecloud.nix b/third_party/nixpkgs/nixos/modules/services/misc/rmfakecloud.nix
index 2feb663f7c..c1b5291ce2 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/rmfakecloud.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/rmfakecloud.nix
@@ -50,7 +50,7 @@ in {
type = with types; attrsOf str;
default = { };
example = { DATADIR = "/custom/path/for/rmfakecloud/data"; };
- description = ''
+ description = lib.mdDoc ''
Extra settings in the form of a set of key-value pairs.
For tokens and secrets, use `environmentFile` instead.
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/snapper.nix b/third_party/nixpkgs/nixos/modules/services/misc/snapper.nix
index 7d7e3db3ce..cfdfa2830c 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/snapper.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/snapper.nix
@@ -20,24 +20,22 @@ in
snapshotInterval = mkOption {
type = types.str;
default = "hourly";
- description = ''
+ description = lib.mdDoc ''
Snapshot interval.
The format is described in
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
cleanupInterval = mkOption {
type = types.str;
default = "1d";
- description = ''
+ description = lib.mdDoc ''
Cleanup interval.
The format is described in
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/sourcehut/default.nix b/third_party/nixpkgs/nixos/modules/services/misc/sourcehut/default.nix
index de04797a80..113c53f739 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/sourcehut/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/sourcehut/default.nix
@@ -47,33 +47,33 @@ let
})));
commonServiceSettings = srv: {
origin = mkOption {
- description = "URL ${srv}.sr.ht is being served at (protocol://domain)";
+ description = lib.mdDoc "URL ${srv}.sr.ht is being served at (protocol://domain)";
type = types.str;
default = "https://${srv}.${domain}";
defaultText = "https://${srv}.example.com";
};
debug-host = mkOption {
- description = "Address to bind the debug server to.";
+ description = lib.mdDoc "Address to bind the debug server to.";
type = with types; nullOr str;
default = null;
};
debug-port = mkOption {
- description = "Port to bind the debug server to.";
+ description = lib.mdDoc "Port to bind the debug server to.";
type = with types; nullOr str;
default = null;
};
connection-string = mkOption {
- description = "SQLAlchemy connection string for the database.";
+ description = lib.mdDoc "SQLAlchemy connection string for the database.";
type = types.str;
default = "postgresql:///localhost?user=${srv}srht&host=/run/postgresql";
};
migrate-on-upgrade = mkEnableOption "automatic migrations on package upgrade" // { default = true; };
oauth-client-id = mkOption {
- description = "${srv}.sr.ht's OAuth client id for meta.sr.ht.";
+ description = lib.mdDoc "${srv}.sr.ht's OAuth client id for meta.sr.ht.";
type = types.str;
};
oauth-client-secret = mkOption {
- description = "${srv}.sr.ht's OAuth client secret for meta.sr.ht.";
+ description = lib.mdDoc "${srv}.sr.ht's OAuth client secret for meta.sr.ht.";
type = types.path;
apply = s: "<" + toString s;
};
@@ -117,7 +117,7 @@ in
type = with types; listOf (enum
[ "builds" "dispatch" "git" "hg" "hub" "lists" "man" "meta" "pages" "paste" "todo" ]);
defaultText = "locally enabled services";
- description = ''
+ description = lib.mdDoc ''
Services that may be displayed as links in the title bar of the Web interface.
'';
};
@@ -125,7 +125,7 @@ in
listenAddress = mkOption {
type = types.str;
default = "localhost";
- description = "Address to bind to.";
+ description = lib.mdDoc "Address to bind to.";
};
python = mkOption {
@@ -147,7 +147,7 @@ in
virtualHost = mkOption {
type = types.attrs;
default = {};
- description = "Virtual-host configuration merged with all Sourcehut's virtual-hosts.";
+ description = lib.mdDoc "Virtual-host configuration merged with all Sourcehut's virtual-hosts.";
};
};
@@ -168,48 +168,48 @@ in
freeformType = settingsFormat.type;
options."sr.ht" = {
global-domain = mkOption {
- description = "Global domain name.";
+ description = lib.mdDoc "Global domain name.";
type = types.str;
example = "example.com";
};
environment = mkOption {
- description = "Values other than \"production\" adds a banner to each page.";
+ description = lib.mdDoc "Values other than \"production\" adds a banner to each page.";
type = types.enum [ "development" "production" ];
default = "development";
};
network-key = mkOption {
- description = ''
+ description = lib.mdDoc ''
An absolute file path (which should be outside the Nix-store)
- to a secret key to encrypt internal messages with. Use srht-keygen network to
+ to a secret key to encrypt internal messages with. Use `srht-keygen network` to
generate this key. It must be consistent between all services and nodes.
'';
type = types.path;
apply = s: "<" + toString s;
};
owner-email = mkOption {
- description = "Owner's email.";
+ description = lib.mdDoc "Owner's email.";
type = types.str;
default = "contact@example.com";
};
owner-name = mkOption {
- description = "Owner's name.";
+ description = lib.mdDoc "Owner's name.";
type = types.str;
default = "John Doe";
};
site-blurb = mkOption {
- description = "Blurb for your site.";
+ description = lib.mdDoc "Blurb for your site.";
type = types.str;
default = "the hacker's forge";
};
site-info = mkOption {
- description = "The top-level info page for your site.";
+ description = lib.mdDoc "The top-level info page for your site.";
type = types.str;
default = "https://sourcehut.org";
};
service-key = mkOption {
- description = ''
+ description = lib.mdDoc ''
An absolute file path (which should be outside the Nix-store)
- to a key used for encrypting session cookies. Use srht-keygen service to
+ to a key used for encrypting session cookies. Use `srht-keygen service` to
generate the service key. This must be shared between each node of the same
service (e.g. git1.sr.ht and git2.sr.ht), but different services may use
different keys. If you configure all of your services with the same
@@ -219,12 +219,12 @@ in
apply = s: "<" + toString s;
};
site-name = mkOption {
- description = "The name of your network of sr.ht-based sites.";
+ description = lib.mdDoc "The name of your network of sr.ht-based sites.";
type = types.str;
default = "sourcehut";
};
source-url = mkOption {
- description = "The source code for your fork of sr.ht.";
+ description = lib.mdDoc "The source code for your fork of sr.ht.";
type = types.str;
default = "https://git.sr.ht/~sircmpwn/srht";
};
@@ -232,7 +232,7 @@ in
options.mail = {
smtp-host = mkOptionNullOrStr "Outgoing SMTP host.";
smtp-port = mkOption {
- description = "Outgoing SMTP port.";
+ description = lib.mdDoc "Outgoing SMTP port.";
type = with types; nullOr port;
default = null;
};
@@ -240,44 +240,44 @@ in
smtp-password = mkOptionNullOrStr "Outgoing SMTP password.";
smtp-from = mkOption {
type = types.str;
- description = "Outgoing SMTP FROM.";
+ description = lib.mdDoc "Outgoing SMTP FROM.";
};
error-to = mkOptionNullOrStr "Address receiving application exceptions";
error-from = mkOptionNullOrStr "Address sending application exceptions";
pgp-privkey = mkOption {
type = types.str;
- description = ''
+ description = lib.mdDoc ''
An absolute file path (which should be outside the Nix-store)
to an OpenPGP private key.
Your PGP key information (DO NOT mix up pub and priv here)
You must remove the password from your secret key, if present.
- You can do this with gpg --edit-key [key-id],
- then use the passwd command and do not enter a new password.
+ You can do this with `gpg --edit-key [key-id]`,
+ then use the `passwd` command and do not enter a new password.
'';
};
pgp-pubkey = mkOption {
type = with types; either path str;
- description = "OpenPGP public key.";
+ description = lib.mdDoc "OpenPGP public key.";
};
pgp-key-id = mkOption {
type = types.str;
- description = "OpenPGP key identifier.";
+ description = lib.mdDoc "OpenPGP key identifier.";
};
};
options.objects = {
s3-upstream = mkOption {
- description = "Configure the S3-compatible object storage service.";
+ description = lib.mdDoc "Configure the S3-compatible object storage service.";
type = with types; nullOr str;
default = null;
};
s3-access-key = mkOption {
- description = "Access key to the S3-compatible object storage service";
+ description = lib.mdDoc "Access key to the S3-compatible object storage service";
type = with types; nullOr str;
default = null;
};
s3-secret-key = mkOption {
- description = ''
+ description = lib.mdDoc ''
An absolute file path (which should be outside the Nix-store)
to the secret key of the S3-compatible object storage service.
'';
@@ -288,13 +288,13 @@ in
};
options.webhooks = {
private-key = mkOption {
- description = ''
+ description = lib.mdDoc ''
An absolute file path (which should be outside the Nix-store)
to a base64-encoded Ed25519 key for signing webhook payloads.
This should be consistent for all *.sr.ht sites,
as this key will be used to verify signatures
from other sites in your network.
- Use the srht-keygen webhook command to generate a key.
+ Use the `srht-keygen webhook` command to generate a key.
'';
type = types.path;
apply = s: "<" + toString s;
@@ -311,17 +311,17 @@ in
enabled = mkEnableOption "GitLab integration";
canonical-upstream = mkOption {
type = types.str;
- description = "Canonical upstream.";
+ description = lib.mdDoc "Canonical upstream.";
default = "gitlab.com";
};
repo-cache = mkOption {
type = types.str;
- description = "Repository cache directory.";
+ description = lib.mdDoc "Repository cache directory.";
default = "./repo-cache";
};
"gitlab.com" = mkOption {
type = with types; nullOr str;
- description = "GitLab id and secret.";
+ description = lib.mdDoc "GitLab id and secret.";
default = null;
example = "GitLab:application id:secret";
};
@@ -330,17 +330,17 @@ in
options."builds.sr.ht" = commonServiceSettings "builds" // {
allow-free = mkEnableOption "nonpaying users to submit builds";
redis = mkOption {
- description = "The Redis connection used for the Celery worker.";
+ description = lib.mdDoc "The Redis connection used for the Celery worker.";
type = types.str;
default = "redis+socket:///run/redis-sourcehut-buildsrht/redis.sock?virtual_host=2";
};
shell = mkOption {
- description = ''
+ description = lib.mdDoc ''
Scripts used to launch on SSH connection.
- /usr/bin/master-shell on master,
- /usr/bin/runner-shell on runner.
+ `/usr/bin/master-shell` on master,
+ `/usr/bin/runner-shell` on runner.
If master and worker are on the same system
- set to /usr/bin/runner-shell.
+ set to `/usr/bin/runner-shell`.
'';
type = types.enum ["/usr/bin/master-shell" "/usr/bin/runner-shell"];
default = "/usr/bin/master-shell";
@@ -348,19 +348,19 @@ in
};
options."builds.sr.ht::worker" = {
bind-address = mkOption {
- description = ''
+ description = lib.mdDoc ''
HTTP bind address for serving local build information/monitoring.
'';
type = types.str;
default = "localhost:8080";
};
buildlogs = mkOption {
- description = "Path to write build logs.";
+ description = lib.mdDoc "Path to write build logs.";
type = types.str;
default = "/var/log/sourcehut/buildsrht-worker";
};
name = mkOption {
- description = ''
+ description = lib.mdDoc ''
Listening address and listening port
of the build runner (with HTTP port if not 80).
'';
@@ -368,9 +368,9 @@ in
default = "localhost:5020";
};
timeout = mkOption {
- description = ''
+ description = lib.mdDoc ''
Max build duration.
- See .
+ See .
'';
type = types.str;
default = "3m";
@@ -379,12 +379,12 @@ in
options."git.sr.ht" = commonServiceSettings "git" // {
outgoing-domain = mkOption {
- description = "Outgoing domain.";
+ description = lib.mdDoc "Outgoing domain.";
type = types.str;
default = "https://git.localhost.localdomain";
};
post-update-script = mkOption {
- description = ''
+ description = lib.mdDoc ''
A post-update script which is installed in every git repo.
This setting is propagated to newer and existing repositories.
'';
@@ -393,7 +393,7 @@ in
defaultText = "\${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook";
};
repos = mkOption {
- description = ''
+ description = lib.mdDoc ''
Path to git repositories on disk.
If changing the default, you must ensure that
the gitsrht's user as read and write access to it.
@@ -402,18 +402,18 @@ in
default = "/var/lib/sourcehut/gitsrht/repos";
};
webhooks = mkOption {
- description = "The Redis connection used for the webhooks worker.";
+ description = lib.mdDoc "The Redis connection used for the webhooks worker.";
type = types.str;
default = "redis+socket:///run/redis-sourcehut-gitsrht/redis.sock?virtual_host=1";
};
};
options."git.sr.ht::api" = {
internal-ipnet = mkOption {
- description = ''
+ description = lib.mdDoc ''
Set of IP subnets which are permitted to utilize internal API
authentication. This should be limited to the subnets
from which your *.sr.ht services are running.
- See .
+ See [](#opt-services.sourcehut.listenAddress).
'';
type = with types; listOf str;
default = [ "127.0.0.0/8" "::1/128" ];
@@ -422,7 +422,7 @@ in
options."hg.sr.ht" = commonServiceSettings "hg" // {
changegroup-script = mkOption {
- description = ''
+ description = lib.mdDoc ''
A changegroup script which is installed in every mercurial repo.
This setting is propagated to newer and existing repositories.
'';
@@ -431,7 +431,7 @@ in
defaultText = "\${cfg.python}/bin/hgsrht-hook-changegroup";
};
repos = mkOption {
- description = ''
+ description = lib.mdDoc ''
Path to mercurial repositories on disk.
If changing the default, you must ensure that
the hgsrht's user as read and write access to it.
@@ -444,18 +444,18 @@ in
(defaults to where the hgsrht code is)
'';
clone_bundle_threshold = mkOption {
- description = ".hg/store size (in MB) past which the nightly job generates clone bundles.";
+ description = lib.mdDoc ".hg/store size (in MB) past which the nightly job generates clone bundles.";
type = types.ints.unsigned;
default = 50;
};
hg_ssh = mkOption {
- description = "Path to hg-ssh (if not in $PATH).";
+ description = lib.mdDoc "Path to hg-ssh (if not in $PATH).";
type = types.str;
default = "${pkgs.mercurial}/bin/hg-ssh";
defaultText = "\${pkgs.mercurial}/bin/hg-ssh";
};
webhooks = mkOption {
- description = "The Redis connection used for the webhooks worker.";
+ description = lib.mdDoc "The Redis connection used for the webhooks worker.";
type = types.str;
default = "redis+socket:///run/redis-sourcehut-hgsrht/redis.sock?virtual_host=1";
};
@@ -467,29 +467,29 @@ in
options."lists.sr.ht" = commonServiceSettings "lists" // {
allow-new-lists = mkEnableOption "Allow creation of new lists.";
notify-from = mkOption {
- description = "Outgoing email for notifications generated by users.";
+ description = lib.mdDoc "Outgoing email for notifications generated by users.";
type = types.str;
default = "lists-notify@localhost.localdomain";
};
posting-domain = mkOption {
- description = "Posting domain.";
+ description = lib.mdDoc "Posting domain.";
type = types.str;
default = "lists.localhost.localdomain";
};
redis = mkOption {
- description = "The Redis connection used for the Celery worker.";
+ description = lib.mdDoc "The Redis connection used for the Celery worker.";
type = types.str;
default = "redis+socket:///run/redis-sourcehut-listssrht/redis.sock?virtual_host=2";
};
webhooks = mkOption {
- description = "The Redis connection used for the webhooks worker.";
+ description = lib.mdDoc "The Redis connection used for the webhooks worker.";
type = types.str;
default = "redis+socket:///run/redis-sourcehut-listssrht/redis.sock?virtual_host=1";
};
};
options."lists.sr.ht::worker" = {
reject-mimetypes = mkOption {
- description = ''
+ description = lib.mdDoc ''
Comma-delimited list of Content-Types to reject. Messages with Content-Types
included in this list are rejected. Multipart messages are always supported,
and each part is checked against this list.
@@ -500,12 +500,12 @@ in
default = ["text/html"];
};
reject-url = mkOption {
- description = "Reject URL.";
+ description = lib.mdDoc "Reject URL.";
type = types.str;
default = "https://man.sr.ht/lists.sr.ht/etiquette.md";
};
sock = mkOption {
- description = ''
+ description = lib.mdDoc ''
Path for the lmtp daemon's unix socket. Direct incoming mail to this socket.
Alternatively, specify IP:PORT and an SMTP server will be run instead.
'';
@@ -513,7 +513,7 @@ in
default = "/tmp/lists.sr.ht-lmtp.sock";
};
sock-group = mkOption {
- description = ''
+ description = lib.mdDoc ''
The lmtp daemon will make the unix socket group-read/write
for users in this group.
'';
@@ -529,13 +529,13 @@ in
removeAttrs (commonServiceSettings "meta")
["oauth-client-id" "oauth-client-secret"] // {
api-origin = mkOption {
- description = "Origin URL for API, 100 more than web.";
+ description = lib.mdDoc "Origin URL for API, 100 more than web.";
type = types.str;
default = "http://${cfg.listenAddress}:${toString (cfg.meta.port + 100)}";
defaultText = ''http://:''${toString ( + 100)}'';
};
webhooks = mkOption {
- description = "The Redis connection used for the webhooks worker.";
+ description = lib.mdDoc "The Redis connection used for the webhooks worker.";
type = types.str;
default = "redis+socket:///run/redis-sourcehut-metasrht/redis.sock?virtual_host=1";
};
@@ -543,18 +543,18 @@ in
};
options."meta.sr.ht::api" = {
internal-ipnet = mkOption {
- description = ''
+ description = lib.mdDoc ''
Set of IP subnets which are permitted to utilize internal API
authentication. This should be limited to the subnets
from which your *.sr.ht services are running.
- See .
+ See [](#opt-services.sourcehut.listenAddress).
'';
type = with types; listOf str;
default = [ "127.0.0.0/8" "::1/128" ];
};
};
options."meta.sr.ht::aliases" = mkOption {
- description = "Aliases for the client IDs of commonly used OAuth clients.";
+ description = lib.mdDoc "Aliases for the client IDs of commonly used OAuth clients.";
type = with types; attrsOf int;
default = {};
example = { "git.sr.ht" = 12345; };
@@ -572,12 +572,12 @@ in
options."meta.sr.ht::settings" = {
registration = mkEnableOption "public registration";
onboarding-redirect = mkOption {
- description = "Where to redirect new users upon registration.";
+ description = lib.mdDoc "Where to redirect new users upon registration.";
type = types.str;
default = "https://meta.localhost.localdomain";
};
user-invites = mkOption {
- description = ''
+ description = lib.mdDoc ''
How many invites each user is issued upon registration
(only applicable if open registration is disabled).
'';
@@ -588,7 +588,7 @@ in
options."pages.sr.ht" = commonServiceSettings "pages" // {
gemini-certs = mkOption {
- description = ''
+ description = lib.mdDoc ''
An absolute file path (which should be outside the Nix-store)
to Gemini certificates.
'';
@@ -596,7 +596,7 @@ in
default = null;
};
max-site-size = mkOption {
- description = "Maximum size of any given site (post-gunzip), in MiB.";
+ description = lib.mdDoc "Maximum size of any given site (post-gunzip), in MiB.";
type = types.int;
default = 1024;
};
@@ -611,11 +611,11 @@ in
};
options."pages.sr.ht::api" = {
internal-ipnet = mkOption {
- description = ''
+ description = lib.mdDoc ''
Set of IP subnets which are permitted to utilize internal API
authentication. This should be limited to the subnets
from which your *.sr.ht services are running.
- See .
+ See [](#opt-services.sourcehut.listenAddress).
'';
type = with types; listOf str;
default = [ "127.0.0.0/8" "::1/128" ];
@@ -627,24 +627,24 @@ in
options."todo.sr.ht" = commonServiceSettings "todo" // {
notify-from = mkOption {
- description = "Outgoing email for notifications generated by users.";
+ description = lib.mdDoc "Outgoing email for notifications generated by users.";
type = types.str;
default = "todo-notify@localhost.localdomain";
};
webhooks = mkOption {
- description = "The Redis connection used for the webhooks worker.";
+ description = lib.mdDoc "The Redis connection used for the webhooks worker.";
type = types.str;
default = "redis+socket:///run/redis-sourcehut-todosrht/redis.sock?virtual_host=1";
};
};
options."todo.sr.ht::mail" = {
posting-domain = mkOption {
- description = "Posting domain.";
+ description = lib.mdDoc "Posting domain.";
type = types.str;
default = "todo.localhost.localdomain";
};
sock = mkOption {
- description = ''
+ description = lib.mdDoc ''
Path for the lmtp daemon's unix socket. Direct incoming mail to this socket.
Alternatively, specify IP:PORT and an SMTP server will be run instead.
'';
@@ -652,7 +652,7 @@ in
default = "/tmp/todo.sr.ht-lmtp.sock";
};
sock-group = mkOption {
- description = ''
+ description = lib.mdDoc ''
The lmtp daemon will make the unix socket group-read/write
for users in this group.
'';
@@ -662,7 +662,7 @@ in
};
};
default = { };
- description = ''
+ description = lib.mdDoc ''
The configuration for the sourcehut network.
'';
};
@@ -698,7 +698,7 @@ in
nixos.unstable.x86_64 = image_from_nixpkgs;
}
)'';
- description = ''
+ description = lib.mdDoc ''
Images for builds.sr.ht. Each package should be distro.release.arch and point to a /nix/store/package/root.img.qcow2.
'';
};
@@ -710,12 +710,12 @@ in
default = pkgs.git;
defaultText = literalExpression "pkgs.git";
example = literalExpression "pkgs.gitFull";
- description = ''
+ description = lib.mdDoc ''
Git package for git.sr.ht. This can help silence collisions.
'';
};
fcgiwrap.preforkProcess = mkOption {
- description = "Number of fcgiwrap processes to prefork.";
+ description = lib.mdDoc "Number of fcgiwrap processes to prefork.";
type = types.int;
default = 4;
};
@@ -726,14 +726,14 @@ in
type = types.package;
default = pkgs.mercurial;
defaultText = literalExpression "pkgs.mercurial";
- description = ''
+ description = lib.mdDoc ''
Mercurial package for hg.sr.ht. This can help silence collisions.
'';
};
cloneBundles = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Generate clonebundles (which require more disk space but dramatically speed up cloning large repositories).
'';
};
@@ -744,12 +744,12 @@ in
extraArgs = mkOption {
type = with types; listOf str;
default = [ "--loglevel DEBUG" "--pool eventlet" "--without-heartbeat" ];
- description = "Extra arguments passed to the Celery responsible for processing mails.";
+ description = lib.mdDoc "Extra arguments passed to the Celery responsible for processing mails.";
};
celeryConfig = mkOption {
type = types.lines;
default = "";
- description = "Content of the celeryconfig.py used by the Celery of listssrht-process.";
+ description = lib.mdDoc "Content of the `celeryconfig.py` used by the Celery of `listssrht-process`.";
};
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/sourcehut/service.nix b/third_party/nixpkgs/nixos/modules/services/misc/sourcehut/service.nix
index 4ecc7a7266..243a9cef59 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/sourcehut/service.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/sourcehut/service.nix
@@ -122,7 +122,7 @@ in
user = mkOption {
type = types.str;
default = srvsrht;
- description = ''
+ description = lib.mdDoc ''
User for ${srv}.sr.ht.
'';
};
@@ -130,7 +130,7 @@ in
group = mkOption {
type = types.str;
default = srvsrht;
- description = ''
+ description = lib.mdDoc ''
Group for ${srv}.sr.ht.
Membership grants access to the Git/Mercurial repositories by default,
but not to the config.ini file (where secrets are).
@@ -140,7 +140,7 @@ in
port = mkOption {
type = types.port;
default = port;
- description = ''
+ description = lib.mdDoc ''
Port on which the "${srv}" backend should listen.
'';
};
@@ -150,7 +150,7 @@ in
type = types.str;
default = "unix:///run/redis-sourcehut-${srvsrht}/redis.sock?db=0";
example = "redis://shared.wireguard:6379/0";
- description = ''
+ description = lib.mdDoc ''
The redis host URL. This is used for caching and temporary storage, and must
be shared between nodes (e.g. git1.sr.ht and git2.sr.ht), but need not be
shared between services. It may be shared between services, however, with no
@@ -163,9 +163,9 @@ in
database = mkOption {
type = types.str;
default = "${srv}.sr.ht";
- description = ''
+ description = lib.mdDoc ''
PostgreSQL database name for the ${srv}.sr.ht service,
- used if is true.
+ used if [](#opt-services.sourcehut.postgresql.enable) is `true`.
'';
};
};
@@ -174,7 +174,7 @@ in
extraArgs = mkOption {
type = with types; listOf str;
default = ["--timeout 120" "--workers 1" "--log-level=info"];
- description = "Extra arguments passed to Gunicorn.";
+ description = lib.mdDoc "Extra arguments passed to Gunicorn.";
};
};
} // optionalAttrs webhooks {
@@ -182,12 +182,12 @@ in
extraArgs = mkOption {
type = with types; listOf str;
default = ["--loglevel DEBUG" "--pool eventlet" "--without-heartbeat"];
- description = "Extra arguments passed to the Celery responsible for webhooks.";
+ description = lib.mdDoc "Extra arguments passed to the Celery responsible for webhooks.";
};
celeryConfig = mkOption {
type = types.lines;
default = "";
- description = "Content of the celeryconfig.py used by the Celery responsible for webhooks.";
+ description = lib.mdDoc "Content of the `celeryconfig.py` used by the Celery responsible for webhooks.";
};
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/spice-webdavd.nix b/third_party/nixpkgs/nixos/modules/services/misc/spice-webdavd.nix
new file mode 100644
index 0000000000..bfb5b262ee
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/misc/spice-webdavd.nix
@@ -0,0 +1,38 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+let
+ cfg = config.services.spice-webdavd;
+in
+{
+ options = {
+ services.spice-webdavd = {
+ enable = mkEnableOption "the spice guest webdav proxy daemon";
+
+ package = mkOption {
+ default = pkgs.phodav;
+ defaultText = literalExpression "pkgs.phodav";
+ type = types.package;
+ description = "spice-webdavd provider package to use.";
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ # ensure the webdav fs this exposes can actually be mounted
+ services.davfs2.enable = true;
+
+ # add the udev rule which starts the proxy when the spice socket is present
+ services.udev.packages = [ cfg.package ];
+
+ systemd.services.spice-webdavd = {
+ description = "spice-webdav proxy daemon";
+
+ serviceConfig = {
+ Type = "simple";
+ ExecStart = "${cfg.package}/bin/spice-webdavd -p 9843";
+ Restart = "on-success";
+ };
+ };
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/sssd.nix b/third_party/nixpkgs/nixos/modules/services/misc/sssd.nix
index 70afbe0433..60d4a799d5 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/sssd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/sssd.nix
@@ -3,6 +3,10 @@ with lib;
let
cfg = config.services.sssd;
nscd = config.services.nscd;
+
+ dataDir = "/var/lib/sssd";
+ settingsFile = "${dataDir}/sssd.conf";
+ settingsFileUnsubstituted = pkgs.writeText "${dataDir}/sssd-unsubstituted.conf" cfg.config;
in {
options = {
services.sssd = {
@@ -47,6 +51,30 @@ in {
Kerberos will be configured to cache credentials in SSS.
'';
};
+ environmentFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = ''
+ Environment file as defined in
+ systemd.exec5
+ .
+
+ Secrets may be passed to the service without adding them to the world-readable
+ Nix store, by specifying placeholder variables as the option value in Nix and
+ setting these variables accordingly in the environment file.
+
+
+ # snippet of sssd-related config
+ [domain/LDAP]
+ ldap_default_authtok = $SSSD_LDAP_DEFAULT_AUTHTOK
+
+
+
+ # contents of the environment file
+ SSSD_LDAP_DEFAULT_AUTHTOK=verysecretpassword
+
+ '';
+ };
};
};
config = mkMerge [
@@ -60,22 +88,29 @@ in {
wants = [ "nss-user-lookup.target" ];
restartTriggers = [
config.environment.etc."nscd.conf".source
- config.environment.etc."sssd/sssd.conf".source
+ settingsFileUnsubstituted
];
script = ''
export LDB_MODULES_PATH+="''${LDB_MODULES_PATH+:}${pkgs.ldb}/modules/ldb:${pkgs.sssd}/modules/ldb"
mkdir -p /var/lib/sss/{pubconf,db,mc,pipes,gpo_cache,secrets} /var/lib/sss/pipes/private /var/lib/sss/pubconf/krb5.include.d
- ${pkgs.sssd}/bin/sssd -D
+ ${pkgs.sssd}/bin/sssd -D -c ${settingsFile}
'';
serviceConfig = {
Type = "forking";
PIDFile = "/run/sssd.pid";
+ StateDirectory = baseNameOf dataDir;
+ # We cannot use LoadCredential here because it's not available in ExecStartPre
+ EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
};
- };
-
- environment.etc."sssd/sssd.conf" = {
- text = cfg.config;
- mode = "0400";
+ preStart = ''
+ [ -f ${settingsFile} ] && rm -f ${settingsFile}
+ old_umask=$(umask)
+ umask 0177
+ ${pkgs.envsubst}/bin/envsubst \
+ -o ${settingsFile} \
+ -i ${settingsFileUnsubstituted}
+ umask $old_umask
+ '';
};
system.nssModules = [ pkgs.sssd ];
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/taskserver/default.nix b/third_party/nixpkgs/nixos/modules/services/misc/taskserver/default.nix
index d9572f006e..ad4ab93a87 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/taskserver/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/taskserver/default.nix
@@ -227,11 +227,8 @@ in {
queueSize = mkOption {
type = types.int;
default = 10;
- description = ''
- Size of the connection backlog, see
- listen
- 2
- .
+ description = lib.mdDoc ''
+ Size of the connection backlog, see {manpage}`listen(2)`.
'';
};
@@ -324,18 +321,16 @@ in {
config = mkOption {
type = types.attrs;
example.client.cert = "/tmp/debugging.cert";
- description = ''
+ description = lib.mdDoc ''
Configuration options to pass to Taskserver.
- The options here are the same as described in
- taskdrc
- 5
- , but with one difference:
+ The options here are the same as described in
+ {manpage}`taskdrc(5)`, but with one difference:
- The server option is
- server.listen here, because the
- server option would collide with other options
- like server.cert and we would run in a type error
+ The `server` option is
+ `server.listen` here, because the
+ `server` option would collide with other options
+ like `server.cert` and we would run in a type error
(attribute set versus string).
Nix types like integers or booleans are automatically converted to
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/zoneminder.nix b/third_party/nixpkgs/nixos/modules/services/misc/zoneminder.nix
index ef3f6c1a0f..fa0e06a014 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/zoneminder.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/zoneminder.nix
@@ -80,7 +80,7 @@ in {
webserver = mkOption {
type = types.enum [ "nginx" "none" ];
default = "nginx";
- description = ''
+ description = lib.mdDoc ''
The webserver to configure for the PHP frontend.
Set it to `none` if you want to configure it yourself. PRs are welcome
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/collectd.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/collectd.nix
index 5c62d50951..3d518ebc67 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/collectd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/collectd.nix
@@ -52,7 +52,7 @@ in {
buildMinimalPackage = mkOption {
default = false;
- description = ''
+ description = lib.mdDoc ''
Build a minimal collectd package with only the configured `services.collectd.plugins`
'';
type = bool;
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/datadog-agent.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/datadog-agent.nix
index 9b984fafc1..a7f6fa23aa 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/datadog-agent.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/datadog-agent.nix
@@ -60,7 +60,7 @@ in {
package = mkOption {
default = pkgs.datadog-agent;
defaultText = literalExpression "pkgs.datadog-agent";
- description = ''
+ description = lib.mdDoc ''
Which DataDog v7 agent package to use. Note that the provided
package is expected to have an overridable `pythonPackages`-attribute
which configures the Python environment with the Datadog
@@ -168,7 +168,7 @@ in {
};
checks = mkOption {
- description = ''
+ description = lib.mdDoc ''
Configuration for all Datadog checks. Keys of this attribute
set will be used as the name of the check to create the
appropriate configuration in `conf.d/$check.d/conf.yaml`.
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/grafana-agent.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/grafana-agent.nix
index 8190f44c72..45b62d140c 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/grafana-agent.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/grafana-agent.nix
@@ -38,8 +38,8 @@ in
};
settings = mkOption {
- description = ''
- Configuration for grafana-agent.
+ description = lib.mdDoc ''
+ Configuration for `grafana-agent`.
See https://grafana.com/docs/agent/latest/configuration/
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/grafana-image-renderer.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/grafana-image-renderer.nix
index 4820b19469..d92ce5e1ee 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/grafana-image-renderer.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/grafana-image-renderer.nix
@@ -63,7 +63,7 @@ in {
default = "default";
type = types.enum [ "default" "reusable" "clustered" ];
description = ''
- Rendering mode of grafana-image-renderer:
+ Rendering mode of grafana-image-renderer:
default: Creates on browser-instance
per rendering request.
@@ -79,8 +79,8 @@ in {
args = mkOption {
type = types.listOf types.str;
default = [ "--no-sandbox" ];
- description = ''
- List of CLI flags passed to chromium.
+ description = lib.mdDoc ''
+ List of CLI flags passed to `chromium`.
'';
};
};
@@ -89,10 +89,10 @@ in {
default = {};
- description = ''
- Configuration attributes for grafana-image-renderer.
+ description = lib.mdDoc ''
+ Configuration attributes for `grafana-image-renderer`.
- See
+ See
for supported values.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/mackerel-agent.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/mackerel-agent.nix
index 89c6d4d6c6..9182739ee1 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/mackerel-agent.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/mackerel-agent.nix
@@ -20,11 +20,11 @@ in {
apiKeyFile = mkOption {
type = types.path;
example = "/run/keys/mackerel-api-key";
- description = ''
+ description = lib.mdDoc ''
Path to file containing the Mackerel API key. The file should contain a
single line of the following form:
- apikey = "EXAMPLE_API_KEY"
+ `apikey = "EXAMPLE_API_KEY"`
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/nagios.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/nagios.nix
index a17797f682..14dbc5fdb4 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/nagios.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/nagios.nix
@@ -91,11 +91,11 @@ in
enable = mkEnableOption ''Nagios to monitor your system or network.'';
objectDefs = mkOption {
- description = "
+ description = lib.mdDoc ''
A list of Nagios object configuration files that must define
the hosts, host groups, services and contacts for the
network that you want Nagios to monitor.
- ";
+ '';
type = types.listOf types.path;
example = literalExpression "[ ./objects.cfg ]";
};
@@ -104,18 +104,18 @@ in
type = types.listOf types.package;
default = with pkgs; [ monitoring-plugins msmtp mailutils ];
defaultText = literalExpression "[pkgs.monitoring-plugins pkgs.msmtp pkgs.mailutils]";
- description = "
+ description = ''
Packages to be added to the Nagios PATH.
Typically used to add plugins, but can be anything.
- ";
+ '';
};
mainConfigFile = mkOption {
type = types.nullOr types.package;
default = null;
- description = "
+ description = lib.mdDoc ''
If non-null, overrides the main configuration file of Nagios.
- ";
+ '';
};
extraConfig = mkOption {
@@ -125,33 +125,33 @@ in
debug_file = "/var/log/nagios/debug.log";
};
default = {};
- description = "Configuration to add to /etc/nagios.cfg";
+ description = lib.mdDoc "Configuration to add to /etc/nagios.cfg";
};
validateConfig = mkOption {
type = types.bool;
default = pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform;
defaultText = literalExpression "pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform";
- description = "if true, the syntax of the nagios configuration file is checked at build time";
+ description = lib.mdDoc "if true, the syntax of the nagios configuration file is checked at build time";
};
cgiConfigFile = mkOption {
type = types.package;
default = nagiosCGICfgFile;
defaultText = literalExpression "nagiosCGICfgFile";
- description = "
+ description = lib.mdDoc ''
Derivation for the configuration file of Nagios CGI scripts
that can be used in web servers for running the Nagios web interface.
- ";
+ '';
};
enableWebInterface = mkOption {
type = types.bool;
default = false;
- description = "
+ description = lib.mdDoc ''
Whether to enable the Nagios web interface. You should also
- enable Apache ().
- ";
+ enable Apache ({option}`services.httpd.enable`).
+ '';
};
virtualHost = mkOption {
@@ -164,9 +164,9 @@ in
sslServerKey = "/var/lib/acme/example.org/key.pem";
}
'';
- description = ''
- Apache configuration can be done by adapting .
- See for further information.
+ description = lib.mdDoc ''
+ Apache configuration can be done by adapting {option}`services.httpd.virtualHosts`.
+ See [](#opt-services.httpd.virtualHosts) for further information.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
index 3bc61fba15..ada66fe246 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
@@ -251,7 +251,7 @@ let
authorization = mkOption {
type = types.nullOr types.attrs;
default = null;
- description = ''
+ description = lib.mdDoc ''
Sets the `Authorization` header on every scrape request with the configured credentials.
'';
};
@@ -664,7 +664,7 @@ let
promTypes.dockerswarm_sd_config = mkDockerSdConfigModule {
role = mkOption {
type = types.enum [ "services" "tasks" "nodes" ];
- description = ''
+ description = lib.mdDoc ''
Role of the targets to retrieve. Must be `services`, `tasks`, or `nodes`.
'';
};
@@ -1222,7 +1222,7 @@ let
role = mkOption {
type = types.enum [ "instance" "baremetal" ];
- description = ''
+ description = lib.mdDoc ''
Role of the targets to retrieve. Must be `instance` or `baremetal`.
'';
};
@@ -1729,16 +1729,15 @@ in
type = with types; either bool (enum [ "syntax-only" ]);
default = true;
example = "syntax-only";
- description = ''
- Check configuration with promtool
- check. The call to promtool is
+ description = lib.mdDoc ''
+ Check configuration with `promtool check`. The call to `promtool` is
subject to sandboxing by Nix.
If you use credentials stored in external files
- (password_file, bearer_token_file, etc),
- they will not be visible to promtool
+ (`password_file`, `bearer_token_file`, etc),
+ they will not be visible to `promtool`
and it will report errors, despite a correct configuration.
- To resolve this, you may set this option to "syntax-only"
+ To resolve this, you may set this option to `"syntax-only"`
in order to only syntax check the Prometheus configuration.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
index 41302d6d3c..47c30a0f24 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -84,28 +84,28 @@ let
port = mkOption {
type = types.port;
default = port;
- description = ''
+ description = lib.mdDoc ''
Port to listen on.
'';
};
listenAddress = mkOption {
type = types.str;
default = "0.0.0.0";
- description = ''
+ description = lib.mdDoc ''
Address to listen on.
'';
};
extraFlags = mkOption {
type = types.listOf types.str;
default = [];
- description = ''
+ description = lib.mdDoc ''
Extra commandline options to pass to the ${name} exporter.
'';
};
openFirewall = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Open port in firewall for incoming connections.
'';
};
@@ -124,14 +124,14 @@ let
user = mkOption {
type = types.str;
default = "${name}-exporter";
- description = ''
+ description = lib.mdDoc ''
User name under which the ${name} exporter shall be run.
'';
};
group = mkOption {
type = types.str;
default = "${name}-exporter";
- description = ''
+ description = lib.mdDoc ''
Group under which the ${name} exporter shall be run.
'';
};
@@ -227,7 +227,7 @@ in
type = types.submodule {
options = (mkSubModules);
};
- description = "Prometheus exporter configuration";
+ description = lib.mdDoc "Prometheus exporter configuration";
default = {};
example = literalExpression ''
{
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix
index 57c35a742c..a8a9f84ea8 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix
@@ -11,7 +11,7 @@ in
apcupsdAddress = mkOption {
type = types.str;
default = ":3551";
- description = ''
+ description = lib.mdDoc ''
Address of the apcupsd Network Information Server (NIS).
'';
};
@@ -19,7 +19,7 @@ in
apcupsdNetwork = mkOption {
type = types.enum ["tcp" "tcp4" "tcp6"];
default = "tcp";
- description = ''
+ description = lib.mdDoc ''
Network of the apcupsd Network Information Server (NIS): one of "tcp", "tcp4", or "tcp6".
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/artifactory.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/artifactory.nix
index 2adcecc728..bc67fe59b3 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/artifactory.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/artifactory.nix
@@ -11,14 +11,14 @@ in
scrapeUri = mkOption {
type = types.str;
default = "http://localhost:8081/artifactory";
- description = ''
+ description = lib.mdDoc ''
URI on which to scrape JFrog Artifactory.
'';
};
artiUsername = mkOption {
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Username for authentication against JFrog Artifactory API.
'';
};
@@ -26,7 +26,7 @@ in
artiPassword = mkOption {
type = types.str;
default = "";
- description = ''
+ description = lib.mdDoc ''
Password for authentication against JFrog Artifactory API.
One of the password or access token needs to be set.
'';
@@ -35,7 +35,7 @@ in
artiAccessToken = mkOption {
type = types.str;
default = "";
- description = ''
+ description = lib.mdDoc ''
Access token for authentication against JFrog Artifactory API.
One of the password or access token needs to be set.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bind.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bind.nix
index 16c2920751..bd2003f065 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bind.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bind.nix
@@ -11,28 +11,28 @@ in
bindURI = mkOption {
type = types.str;
default = "http://localhost:8053/";
- description = ''
+ description = lib.mdDoc ''
HTTP XML API address of an Bind server.
'';
};
bindTimeout = mkOption {
type = types.str;
default = "10s";
- description = ''
+ description = lib.mdDoc ''
Timeout for trying to get stats from Bind.
'';
};
bindVersion = mkOption {
type = types.enum [ "xml.v2" "xml.v3" "auto" ];
default = "auto";
- description = ''
+ description = lib.mdDoc ''
BIND statistics version. Can be detected automatically.
'';
};
bindGroups = mkOption {
type = types.listOf (types.enum [ "server" "view" "tasks" ]);
default = [ "server" "view" ];
- description = ''
+ description = lib.mdDoc ''
List of statistics to collect. Available: [server, view, tasks]
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bird.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bird.nix
index 5fda4c980e..5f6c36f4c5 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bird.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bird.nix
@@ -11,21 +11,21 @@ in
birdVersion = mkOption {
type = types.enum [ 1 2 ];
default = 2;
- description = ''
+ description = lib.mdDoc ''
Specifies whether BIRD1 or BIRD2 is in use.
'';
};
birdSocket = mkOption {
type = types.path;
default = "/run/bird/bird.ctl";
- description = ''
+ description = lib.mdDoc ''
Path to BIRD2 (or BIRD1 v4) socket.
'';
};
newMetricFormat = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Enable the new more-generic metric format.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix
index 43721f70b4..330d541264 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix
@@ -11,14 +11,14 @@ in
rpcUser = mkOption {
type = types.str;
default = "bitcoinrpc";
- description = ''
+ description = lib.mdDoc ''
RPC user name.
'';
};
rpcPasswordFile = mkOption {
type = types.path;
- description = ''
+ description = lib.mdDoc ''
File containing RPC password.
'';
};
@@ -26,7 +26,7 @@ in
rpcScheme = mkOption {
type = types.enum [ "http" "https" ];
default = "http";
- description = ''
+ description = lib.mdDoc ''
Whether to connect to bitcoind over http or https.
'';
};
@@ -34,7 +34,7 @@ in
rpcHost = mkOption {
type = types.str;
default = "localhost";
- description = ''
+ description = lib.mdDoc ''
RPC host.
'';
};
@@ -42,7 +42,7 @@ in
rpcPort = mkOption {
type = types.port;
default = 8332;
- description = ''
+ description = lib.mdDoc ''
RPC port number.
'';
};
@@ -50,7 +50,7 @@ in
refreshSeconds = mkOption {
type = types.ints.unsigned;
default = 300;
- description = ''
+ description = lib.mdDoc ''
How often to ask bitcoind for metrics.
'';
};
@@ -58,7 +58,7 @@ in
extraEnv = mkOption {
type = types.attrsOf types.str;
default = {};
- description = ''
+ description = lib.mdDoc ''
Extra environment variables for the exporter.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix
index fe8d905da3..66eaed51d2 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix
@@ -35,14 +35,14 @@ in {
extraOpts = {
configFile = mkOption {
type = types.path;
- description = ''
+ description = lib.mdDoc ''
Path to configuration file.
'';
};
enableConfigCheck = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether to run a correctness check for the configuration file. This depends
on the configuration file residing in the nix-store. Paths passed as string will
be copied to the store.
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/buildkite-agent.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/buildkite-agent.nix
index e9be39608f..0515b72b13 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/buildkite-agent.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/buildkite-agent.nix
@@ -11,7 +11,7 @@ in
tokenPath = mkOption {
type = types.nullOr types.path;
apply = final: if final == null then null else toString final;
- description = ''
+ description = lib.mdDoc ''
The token from your Buildkite "Agents" page.
A run-time path to the token file, which is supposed to be provisioned
@@ -22,14 +22,14 @@ in
type = types.str;
default = "30s";
example = "1min";
- description = ''
+ description = lib.mdDoc ''
How often to update metrics.
'';
};
endpoint = mkOption {
type = types.str;
default = "https://agent.buildkite.com/v3";
- description = ''
+ description = lib.mdDoc ''
The Buildkite Agent API endpoint.
'';
};
@@ -37,7 +37,7 @@ in
type = with types; nullOr (listOf str);
default = null;
example = literalExpression ''[ "my-queue1" "my-queue2" ]'';
- description = ''
+ description = lib.mdDoc ''
Which specific queues to process.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/collectd.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/collectd.nix
index a7f4d3e096..eab1f9e7b4 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/collectd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/collectd.nix
@@ -14,19 +14,19 @@ in
authFile = mkOption {
default = null;
type = types.nullOr types.path;
- description = "File mapping user names to pre-shared keys (passwords).";
+ description = lib.mdDoc "File mapping user names to pre-shared keys (passwords).";
};
port = mkOption {
type = types.int;
default = 25826;
- description = "Network address on which to accept collectd binary network packets.";
+ description = lib.mdDoc "Network address on which to accept collectd binary network packets.";
};
listenAddress = mkOption {
type = types.str;
default = "0.0.0.0";
- description = ''
+ description = lib.mdDoc ''
Address to listen on for binary network packets.
'';
};
@@ -34,7 +34,7 @@ in
securityLevel = mkOption {
type = types.enum ["None" "Sign" "Encrypt"];
default = "None";
- description = ''
+ description = lib.mdDoc ''
Minimum required security level for accepted packets.
'';
};
@@ -44,7 +44,7 @@ in
type = types.enum [ "logfmt" "json" ];
default = "logfmt";
example = "json";
- description = ''
+ description = lib.mdDoc ''
Set the log format.
'';
};
@@ -52,7 +52,7 @@ in
logLevel = mkOption {
type = types.enum ["debug" "info" "warn" "error" "fatal"];
default = "info";
- description = ''
+ description = lib.mdDoc ''
Only log messages with the given severity or above.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dmarc.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dmarc.nix
index 25950e1ece..437cece588 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dmarc.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dmarc.nix
@@ -24,28 +24,28 @@ in {
host = mkOption {
type = types.str;
default = "localhost";
- description = ''
+ description = lib.mdDoc ''
Hostname of IMAP server to connect to.
'';
};
port = mkOption {
type = types.port;
default = 993;
- description = ''
+ description = lib.mdDoc ''
Port of the IMAP server to connect to.
'';
};
username = mkOption {
type = types.str;
example = "postmaster@example.org";
- description = ''
+ description = lib.mdDoc ''
Login username for the IMAP connection.
'';
};
passwordFile = mkOption {
type = types.str;
example = "/run/secrets/dovecot_pw";
- description = ''
+ description = lib.mdDoc ''
File containing the login password for the IMAP connection.
'';
};
@@ -54,21 +54,21 @@ in {
inbox = mkOption {
type = types.str;
default = "INBOX";
- description = ''
+ description = lib.mdDoc ''
IMAP mailbox that is checked for incoming DMARC aggregate reports
'';
};
done = mkOption {
type = types.str;
default = "Archive";
- description = ''
+ description = lib.mdDoc ''
IMAP mailbox that successfully processed reports are moved to.
'';
};
error = mkOption {
type = types.str;
default = "Invalid";
- description = ''
+ description = lib.mdDoc ''
IMAP mailbox that emails are moved to that could not be processed.
'';
};
@@ -76,7 +76,7 @@ in {
pollIntervalSeconds = mkOption {
type = types.ints.unsigned;
default = 60;
- description = ''
+ description = lib.mdDoc ''
How often to poll the IMAP server in seconds.
'';
};
@@ -84,7 +84,7 @@ in {
type = types.ints.unsigned;
default = 604800;
defaultText = "7 days (in seconds)";
- description = ''
+ description = lib.mdDoc ''
How long individual report IDs will be remembered to avoid
counting double delivered reports twice.
'';
@@ -92,8 +92,8 @@ in {
debug = mkOption {
type = types.bool;
default = false;
- description = ''
- Whether to declare enable --debug.
+ description = lib.mdDoc ''
+ Whether to declare enable `--debug`.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dnsmasq.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dnsmasq.nix
index 68afba21d6..ece42a34cb 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dnsmasq.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dnsmasq.nix
@@ -11,7 +11,7 @@ in
dnsmasqListenAddress = mkOption {
type = types.str;
default = "localhost:53";
- description = ''
+ description = lib.mdDoc ''
Address on which dnsmasq listens.
'';
};
@@ -19,8 +19,8 @@ in
type = types.path;
default = "/var/lib/misc/dnsmasq.leases";
example = "/var/lib/dnsmasq/dnsmasq.leases";
- description = ''
- Path to the dnsmasq.leases file.
+ description = lib.mdDoc ''
+ Path to the `dnsmasq.leases` file.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
index 4e7aae0b34..80a2f92881 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
@@ -11,7 +11,7 @@ in
telemetryPath = mkOption {
type = types.str;
default = "/metrics";
- description = ''
+ description = lib.mdDoc ''
Path under which to expose metrics.
'';
};
@@ -33,10 +33,10 @@ in
work with this exporter:
{
- = true;
- = "/var/run/dovecot2/old-stats";
- = [ "old_stats" ];
- = '''
+ services.prometheus.exporters.dovecot.enable = true;
+ services.prometheus.exporters.dovecot.socketPath = "/var/run/dovecot2/old-stats";
+ services.dovecot2.mailPlugins.globally.enable = [ "old_stats" ];
+ services.dovecot2.extraConfig = '''
service old-stats {
unix_listener old-stats {
user = dovecot-exporter
@@ -67,7 +67,7 @@ in
type = types.listOf types.str;
default = [ "user" ];
example = [ "user" "global" ];
- description = ''
+ description = lib.mdDoc ''
Stats scopes to query.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix
index 55a61c4949..182a1131c0 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix
@@ -12,9 +12,9 @@ in
configFile = mkOption {
type = types.nullOr types.path;
default = null;
- description = ''
+ description = lib.mdDoc ''
Path to a fastly-exporter configuration file.
- Example one can be generated with fastly-exporter --config-file-example.
+ Example one can be generated with `fastly-exporter --config-file-example`.
'';
example = "./fastly-exporter-config.txt";
};
@@ -22,7 +22,7 @@ in
tokenPath = mkOption {
type = types.nullOr types.path;
apply = final: if final == null then null else toString final;
- description = ''
+ description = lib.mdDoc ''
A run-time path to the token file, which is supposed to be provisioned
outside of Nix store.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/flow.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/flow.nix
index b85e5461f2..81099aaf17 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/flow.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/flow.nix
@@ -10,19 +10,19 @@ in {
brokers = mkOption {
type = types.listOf types.str;
example = literalExpression ''[ "kafka.example.org:19092" ]'';
- description = "List of Kafka brokers to connect to.";
+ description = lib.mdDoc "List of Kafka brokers to connect to.";
};
asn = mkOption {
type = types.ints.positive;
example = 65542;
- description = "The ASN being monitored.";
+ description = lib.mdDoc "The ASN being monitored.";
};
partitions = mkOption {
type = types.listOf types.int;
default = [];
- description = ''
+ description = lib.mdDoc ''
The number of the partitions to consume, none means all.
'';
};
@@ -30,7 +30,7 @@ in {
topic = mkOption {
type = types.str;
example = "pmacct.acct";
- description = "The Kafka topic to consume from.";
+ description = lib.mdDoc "The Kafka topic to consume from.";
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fritzbox.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fritzbox.nix
index 9526597b8c..dc53d21406 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fritzbox.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fritzbox.nix
@@ -11,7 +11,7 @@ in
gatewayAddress = mkOption {
type = types.str;
default = "fritz.box";
- description = ''
+ description = lib.mdDoc ''
The hostname or IP of the FRITZ!Box.
'';
};
@@ -19,7 +19,7 @@ in
gatewayPort = mkOption {
type = types.int;
default = 49000;
- description = ''
+ description = lib.mdDoc ''
The port of the FRITZ!Box UPnP service.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/influxdb.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/influxdb.nix
index ba45173e94..61c0c08d22 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/influxdb.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/influxdb.nix
@@ -12,13 +12,13 @@ in
type = types.str;
default = "5m";
example = "10m";
- description = "How long a sample is valid for";
+ description = lib.mdDoc "How long a sample is valid for";
};
udpBindAddress = mkOption {
type = types.str;
default = ":9122";
example = "192.0.2.1:9122";
- description = "Address on which to listen for udp packets";
+ description = lib.mdDoc "Address on which to listen for udp packets";
};
};
serviceOpts = {
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix
index c93a8f98e5..0246027186 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix
@@ -11,7 +11,7 @@ in
url = mkOption {
type = types.str;
default = "http://localhost:8080/colibri/stats";
- description = ''
+ description = lib.mdDoc ''
Jitsi Videobridge metrics URL to monitor.
This is usually /colibri/stats on port 8080 of the jitsi videobridge host.
'';
@@ -20,7 +20,7 @@ in
type = types.str;
default = "30s";
example = "1min";
- description = ''
+ description = lib.mdDoc ''
How often to scrape new data
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/json.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/json.nix
index 1800da69a2..473f3a7e47 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/json.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/json.nix
@@ -10,7 +10,7 @@ in
extraOpts = {
configFile = mkOption {
type = types.path;
- description = ''
+ description = lib.mdDoc ''
Path to configuration file.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/kea.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/kea.nix
index e0ee90d9b9..0682f9da40 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/kea.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/kea.nix
@@ -19,7 +19,7 @@ in {
"/run/kea/kea-dhcp6.socket"
]
'';
- description = ''
+ description = lib.mdDoc ''
Paths to kea control sockets
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/knot.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/knot.nix
index 29e543f101..a73425b37d 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/knot.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/knot.nix
@@ -11,24 +11,23 @@ in {
type = types.str;
default = "${pkgs.knot-dns.out}/lib/libknot.so";
defaultText = literalExpression ''"''${pkgs.knot-dns.out}/lib/libknot.so"'';
- description = ''
- Path to the library of knot-dns.
+ description = lib.mdDoc ''
+ Path to the library of `knot-dns`.
'';
};
knotSocketPath = mkOption {
type = types.str;
default = "/run/knot/knot.sock";
- description = ''
- Socket path of knotd
- 8.
+ description = lib.mdDoc ''
+ Socket path of {manpage}`knotd(8)`.
'';
};
knotSocketTimeout = mkOption {
type = types.int;
default = 2000;
- description = ''
+ description = lib.mdDoc ''
Timeout in seconds.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/lnd.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/lnd.nix
index 35f9720205..9f914b1dc1 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/lnd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/lnd.nix
@@ -11,21 +11,21 @@ in
lndHost = mkOption {
type = types.str;
default = "localhost:10009";
- description = ''
+ description = lib.mdDoc ''
lnd instance gRPC address:port.
'';
};
lndTlsPath = mkOption {
type = types.path;
- description = ''
+ description = lib.mdDoc ''
Path to lnd TLS certificate.
'';
};
lndMacaroonDir = mkOption {
type = types.path;
- description = ''
+ description = lib.mdDoc ''
Path to lnd macaroons.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mail.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
index a60f47f639..4ebe7128e2 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
@@ -22,41 +22,41 @@ let
serverOptions.options = {
name = mkOption {
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Value for label 'configname' which will be added to all metrics.
'';
};
server = mkOption {
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Hostname of the server that should be probed.
'';
};
port = mkOption {
type = types.int;
example = 587;
- description = ''
+ description = lib.mdDoc ''
Port to use for SMTP.
'';
};
from = mkOption {
type = types.str;
example = "exporteruser@domain.tld";
- description = ''
+ description = lib.mdDoc ''
Content of 'From' Header for probing mails.
'';
};
to = mkOption {
type = types.str;
example = "exporteruser@domain.tld";
- description = ''
+ description = lib.mdDoc ''
Content of 'To' Header for probing mails.
'';
};
detectionDir = mkOption {
type = types.path;
example = "/var/spool/mail/exporteruser/new";
- description = ''
+ description = lib.mdDoc ''
Directory in which new mails for the exporter user are placed.
Note that this needs to exist when the exporter starts.
'';
@@ -65,14 +65,14 @@ let
type = types.nullOr types.str;
default = null;
example = "exporteruser@domain.tld";
- description = ''
+ description = lib.mdDoc ''
Username to use for SMTP authentication.
'';
};
passphrase = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Password to use for SMTP authentication.
'';
};
@@ -82,20 +82,20 @@ let
monitoringInterval = mkOption {
type = types.str;
example = "10s";
- description = ''
+ description = lib.mdDoc ''
Time interval between two probe attempts.
'';
};
mailCheckTimeout = mkOption {
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Timeout until mails are considered "didn't make it".
'';
};
disableFileDeletion = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Disables the exporter's function to delete probing mails.
'';
};
@@ -115,14 +115,13 @@ let
description = ''
List of servers that should be probed.
- Note: if your mailserver has
- rspamd8 configured,
+ Note: if your mailserver has rspamd8 configured,
it can happen that emails from this exporter are marked as spam.
It's possible to work around the issue with a config like this:
{
- services.rspamd.locals."multimap.conf".text = '''
+ services.rspamd.locals."multimap.conf".text = '''
ALLOWLIST_PROMETHEUS {
filter = "email:domain:tld";
type = "from";
@@ -142,28 +141,28 @@ in
environmentFile = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
File containing env-vars to be substituted into the exporter's config.
'';
};
configFile = mkOption {
type = types.nullOr types.path;
default = null;
- description = ''
+ description = lib.mdDoc ''
Specify the mailexporter configuration file to use.
'';
};
configuration = mkOption {
type = types.nullOr (types.submodule exporterOptions);
default = null;
- description = ''
+ description = lib.mdDoc ''
Specify the mailexporter configuration file to use.
'';
};
telemetryPath = mkOption {
type = types.str;
default = "/metrics";
- description = ''
+ description = lib.mdDoc ''
Path under which to expose metrics.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mikrotik.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mikrotik.nix
index 8f9536b702..54dab4b558 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mikrotik.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mikrotik.nix
@@ -11,9 +11,9 @@ in
configFile = mkOption {
type = types.nullOr types.path;
default = null;
- description = ''
+ description = lib.mdDoc ''
Path to a mikrotik exporter configuration file. Mutually exclusive with
- option.
+ {option}`configuration` option.
'';
example = literalExpression "./mikrotik.yml";
};
@@ -21,11 +21,11 @@ in
configuration = mkOption {
type = types.nullOr types.attrs;
default = null;
- description = ''
+ description = lib.mdDoc ''
Mikrotik exporter configuration as nix attribute set. Mutually exclusive with
- option.
+ {option}`configFile` option.
- See
+ See
for the description of the configuration file format.
'';
example = literalExpression ''
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/minio.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/minio.nix
index d6dd62f871..82cc3fc314 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/minio.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/minio.nix
@@ -11,7 +11,7 @@ in
minioAddress = mkOption {
type = types.str;
example = "https://10.0.0.1:9000";
- description = ''
+ description = lib.mdDoc ''
The URL of the minio server.
Use HTTPS if Minio accepts secure connections only.
By default this connects to the local minio server if enabled.
@@ -21,28 +21,28 @@ in
minioAccessKey = mkOption {
type = types.str;
example = "yourMinioAccessKey";
- description = ''
+ description = lib.mdDoc ''
The value of the Minio access key.
It is required in order to connect to the server.
By default this uses the one from the local minio server if enabled
- and config.services.minio.accessKey.
+ and `config.services.minio.accessKey`.
'';
};
minioAccessSecret = mkOption {
type = types.str;
- description = ''
+ description = lib.mdDoc ''
The value of the Minio access secret.
It is required in order to connect to the server.
By default this uses the one from the local minio server if enabled
- and config.services.minio.secretKey.
+ and `config.services.minio.secretKey`.
'';
};
minioBucketStats = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Collect statistics about the buckets and files in buckets.
It requires more computation, use it carefully in case of large buckets..
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix
index afd03f6c27..222ea3e538 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix
@@ -11,7 +11,7 @@ in
refreshRate = mkOption {
type = types.str;
default = "5s";
- description = ''
+ description = lib.mdDoc ''
How frequently ModemManager will refresh the extended signal quality
information for each modem. The duration should be specified in seconds
("5s"), minutes ("1m"), or hours ("1h").
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nextcloud.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nextcloud.nix
index ce7125bf5a..7808c8861a 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nextcloud.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nextcloud.nix
@@ -11,16 +11,16 @@ in
url = mkOption {
type = types.str;
example = "https://domain.tld";
- description = ''
+ description = lib.mdDoc ''
URL to the Nextcloud serverinfo page.
Adding the path to the serverinfo API is optional, it defaults
- to /ocs/v2.php/apps/serverinfo/api/v1/info.
+ to `/ocs/v2.php/apps/serverinfo/api/v1/info`.
'';
};
username = mkOption {
type = types.str;
default = "nextcloud-exporter";
- description = ''
+ description = lib.mdDoc ''
Username for connecting to Nextcloud.
Note that this account needs to have admin privileges in Nextcloud.
'';
@@ -28,7 +28,7 @@ in
passwordFile = mkOption {
type = types.path;
example = "/path/to/password-file";
- description = ''
+ description = lib.mdDoc ''
File containing the password for connecting to Nextcloud.
Make sure that this file is readable by the exporter user.
'';
@@ -36,7 +36,7 @@ in
timeout = mkOption {
type = types.str;
default = "5s";
- description = ''
+ description = lib.mdDoc ''
Timeout for getting server info document.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
index 6f69f5919d..3158e71f04 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
@@ -11,7 +11,7 @@ in
scrapeUri = mkOption {
type = types.str;
default = "http://localhost/nginx_status";
- description = ''
+ description = lib.mdDoc ''
Address to access the nginx status page.
Can be enabled with services.nginx.statusPage = true.
'';
@@ -19,14 +19,14 @@ in
telemetryPath = mkOption {
type = types.str;
default = "/metrics";
- description = ''
+ description = lib.mdDoc ''
Path under which to expose metrics.
'';
};
sslVerify = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether to perform certificate verification for https.
'';
};
@@ -37,7 +37,7 @@ in
"label1=value1"
"label2=value2"
];
- description = ''
+ description = lib.mdDoc ''
A list of constant labels that will be used in every metric.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginxlog.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginxlog.nix
index 8c1f552d58..9e507423c7 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginxlog.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginxlog.nix
@@ -10,7 +10,7 @@ in {
settings = mkOption {
type = types.attrs;
default = {};
- description = ''
+ description = lib.mdDoc ''
All settings of nginxlog expressed as an Nix attrset.
Check the official documentation for the corresponding YAML
@@ -24,7 +24,7 @@ in {
metricsEndpoint = mkOption {
type = types.str;
default = "/metrics";
- description = ''
+ description = lib.mdDoc ''
Path under which to expose metrics.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/node.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/node.nix
index 417920402f..ae69c29d0a 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/node.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/node.nix
@@ -12,7 +12,7 @@ in
type = types.listOf types.str;
default = [];
example = [ "systemd" ];
- description = ''
+ description = lib.mdDoc ''
Collectors to enable. The collectors listed here are enabled in addition to the default ones.
'';
};
@@ -20,7 +20,7 @@ in
type = types.listOf types.str;
default = [];
example = [ "timex" ];
- description = ''
+ description = lib.mdDoc ''
Collectors to disable which are enabled by default.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/openldap.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/openldap.nix
index 888611ee6f..6f77c05562 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/openldap.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/openldap.nix
@@ -12,7 +12,7 @@ in {
example = "/run/keys/ldap_pass";
description = ''
Environment file to contain the credentials to authenticate against
- openldap.
+ openldap.
The file should look like this:
@@ -26,21 +26,21 @@ in {
default = "tcp";
example = "udp";
type = types.str;
- description = ''
- Which protocol to use to connect against openldap.
+ description = lib.mdDoc ''
+ Which protocol to use to connect against `openldap`.
'';
};
ldapAddr = mkOption {
default = "localhost:389";
type = types.str;
- description = ''
- Address of the openldap-instance.
+ description = lib.mdDoc ''
+ Address of the `openldap`-instance.
'';
};
metricsPath = mkOption {
default = "/metrics";
type = types.str;
- description = ''
+ description = lib.mdDoc ''
URL path where metrics should be exposed.
'';
};
@@ -48,7 +48,7 @@ in {
default = "30s";
type = types.str;
example = "1m";
- description = ''
+ description = lib.mdDoc ''
Scrape interval of the exporter.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/openvpn.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/openvpn.nix
index a97a753ebc..5b54dad998 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/openvpn.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/openvpn.nix
@@ -9,15 +9,15 @@ in {
extraOpts = {
statusPaths = mkOption {
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
Paths to OpenVPN status files. Please configure the OpenVPN option
- status accordingly.
+ `status` accordingly.
'';
};
telemetryPath = mkOption {
type = types.str;
default = "/metrics";
- description = ''
+ description = lib.mdDoc ''
Path under which to expose metrics.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix
index 4bc27ebc32..537d72e85c 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix
@@ -12,7 +12,7 @@ in
type = types.str;
default = "";
example = "580a770cb40511eb85290242ac130003580a770cb40511eb85290242ac130003";
- description = ''
+ description = lib.mdDoc ''
pi-hole API token which can be used instead of a password
'';
};
@@ -20,7 +20,7 @@ in
type = types.str;
default = "10s";
example = "30s";
- description = ''
+ description = lib.mdDoc ''
How often to scrape new data
'';
};
@@ -28,7 +28,7 @@ in
type = types.str;
default = "";
example = "password";
- description = ''
+ description = lib.mdDoc ''
The password to login into pihole. An api token can be used instead.
'';
};
@@ -36,7 +36,7 @@ in
type = types.str;
default = "pihole";
example = "127.0.0.1";
- description = ''
+ description = lib.mdDoc ''
Hostname or address where to find the pihole webinterface
'';
};
@@ -44,7 +44,7 @@ in
type = types.port;
default = 80;
example = 443;
- description = ''
+ description = lib.mdDoc ''
The port pihole webinterface is reachable on
'';
};
@@ -52,7 +52,7 @@ in
type = types.enum [ "http" "https" ];
default = "http";
example = "https";
- description = ''
+ description = lib.mdDoc ''
The protocol which is used to connect to pihole
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
index 53509b7a38..9f402b1231 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
@@ -10,17 +10,17 @@ in
extraOpts = {
group = mkOption {
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Group under which the postfix exporter shall be run.
It should match the group that is allowed to access the
- showq socket in the queue/public/ directory.
- Defaults to services.postfix.setgidGroup when postfix is enabled.
+ `showq` socket in the `queue/public/` directory.
+ Defaults to `services.postfix.setgidGroup` when postfix is enabled.
'';
};
telemetryPath = mkOption {
type = types.str;
default = "/metrics";
- description = ''
+ description = lib.mdDoc ''
Path under which to expose metrics.
'';
};
@@ -28,7 +28,7 @@ in
type = types.path;
default = "/var/log/postfix_exporter_input.log";
example = "/var/log/mail.log";
- description = ''
+ description = lib.mdDoc ''
Path where Postfix writes log entries.
This file will be truncated by this exporter!
'';
@@ -37,7 +37,7 @@ in
type = types.path;
default = "/var/lib/postfix/queue/public/showq";
example = "/var/spool/postfix/public/showq";
- description = ''
+ description = lib.mdDoc ''
Path where Postfix places its showq socket.
'';
};
@@ -45,29 +45,29 @@ in
enable = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether to enable reading metrics from the systemd journal instead of from a logfile
'';
};
unit = mkOption {
type = types.str;
default = "postfix.service";
- description = ''
+ description = lib.mdDoc ''
Name of the postfix systemd unit.
'';
};
slice = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Name of the postfix systemd slice.
- This overrides the .
+ This overrides the {option}`systemd.unit`.
'';
};
journalPath = mkOption {
type = types.nullOr types.path;
default = null;
- description = ''
+ description = lib.mdDoc ''
Path to the systemd journal.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix
index 3f9a32ef39..5e8dd21af8 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix
@@ -11,7 +11,7 @@ in
telemetryPath = mkOption {
type = types.str;
default = "/metrics";
- description = ''
+ description = lib.mdDoc ''
Path under which to expose metrics.
'';
};
@@ -19,14 +19,14 @@ in
type = types.str;
default = "user=postgres database=postgres host=/run/postgresql sslmode=disable";
example = "postgresql://username:password@localhost:5432/postgres?sslmode=disable";
- description = ''
+ description = lib.mdDoc ''
Accepts PostgreSQL URI form and key=value form arguments.
'';
};
runAsLocalSuperUser = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to run the exporter as the local 'postgres' super user.
'';
};
@@ -37,9 +37,7 @@ in
default = null;
example = "/root/prometheus-postgres-exporter.env";
description = ''
- Environment file as defined in
- systemd.exec5
- .
+ Environment file as defined in systemd.exec5.
Secrets may be passed to the service without adding them to the
world-readable Nix store, by specifying placeholder variables as
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/process.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/process.nix
index 666116991b..278d6cd780 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/process.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/process.nix
@@ -18,11 +18,11 @@ in
{ name = "{{.Matches.Wrapped}} {{ .Matches.Args }}"; cmdline = [ "^/nix/store[^ ]*/(?P[^ /]*) (?P.*)" ]; }
]
'';
- description = ''
+ description = lib.mdDoc ''
All settings expressed as an Nix attrset.
Check the official documentation for the corresponding YAML
- settings that can all be used here:
+ settings that can all be used here:
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pve.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pve.nix
index ef708414c9..8e2573d084 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pve.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pve.nix
@@ -20,7 +20,7 @@ in
default = pkgs.prometheus-pve-exporter;
defaultText = literalExpression "pkgs.prometheus-pve-exporter";
example = literalExpression "pkgs.prometheus-pve-exporter";
- description = ''
+ description = lib.mdDoc ''
The package to use for prometheus-pve-exporter
'';
};
@@ -29,7 +29,7 @@ in
type = with types; nullOr path;
default = null;
example = "/etc/prometheus-pve-exporter/pve.env";
- description = ''
+ description = lib.mdDoc ''
Path to the service's environment file. This path can either be a computed path in /nix/store or a path in the local filesystem.
The environment file should NOT be stored in /nix/store as it contains passwords and/or keys in plain text.
@@ -42,7 +42,7 @@ in
type = with types; nullOr path;
default = null;
example = "/etc/prometheus-pve-exporter/pve.yml";
- description = ''
+ description = lib.mdDoc ''
Path to the service's config file. This path can either be a computed path in /nix/store or a path in the local filesystem.
The config file should NOT be stored in /nix/store as it will contain passwords and/or keys in plain text.
@@ -57,42 +57,42 @@ in
status = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Collect Node/VM/CT status
'';
};
version = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Collect PVE version info
'';
};
node = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Collect PVE node info
'';
};
cluster = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Collect PVE cluster info
'';
};
resources = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Collect PVE resources info
'';
};
config = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Collect PVE onboot status
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/py-air-control.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/py-air-control.nix
index d9ab99221d..f03b3c4df9 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/py-air-control.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/py-air-control.nix
@@ -14,14 +14,14 @@ in
deviceHostname = mkOption {
type = types.str;
example = "192.168.1.123";
- description = ''
+ description = lib.mdDoc ''
The hostname of the air purification device from which to scrape the metrics.
'';
};
protocol = mkOption {
type = types.str;
default = "http";
- description = ''
+ description = lib.mdDoc ''
The protocol to use when communicating with the air purification device.
Available: [http, coap, plain_coap]
'';
@@ -29,8 +29,8 @@ in
stateDir = mkOption {
type = types.str;
default = "prometheus-py-air-control-exporter";
- description = ''
- Directory below /var/lib to store runtime data.
+ description = lib.mdDoc ''
+ Directory below `/var/lib` to store runtime data.
This directory will be created automatically using systemd's StateDirectory mechanism.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
index ed985751e4..0b48827f43 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
@@ -69,7 +69,7 @@ in
custom_label = "some_value";
}
'';
- description = "Set of labels added to each metric.";
+ description = lib.mdDoc "Set of labels added to each metric.";
};
};
serviceOpts.serviceConfig.ExecStart = ''
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rtl_433.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rtl_433.nix
index ef829a1b7d..42bf1788ae 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rtl_433.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rtl_433.nix
@@ -12,7 +12,7 @@ in
options = {
name = lib.mkOption {
type = str;
- description = "Name to match.";
+ description = lib.mdDoc "Name to match.";
};
"${field}" = lib.mkOption {
type = int;
@@ -20,7 +20,7 @@ in
};
location = lib.mkOption {
type = str;
- description = "Location to match.";
+ description = lib.mdDoc "Location to match.";
};
};
});
@@ -30,9 +30,9 @@ in
type = lib.types.str;
default = "-C si";
example = "-C si -R 19";
- description = ''
+ description = lib.mdDoc ''
Flags passed verbatim to rtl_433 binary.
- Having -C si (the default) is recommended since only Celsius temperatures are parsed.
+ Having `-C si` (the default) is recommended since only Celsius temperatures are parsed.
'';
};
channels = lib.mkOption {
@@ -41,7 +41,7 @@ in
example = [
{ name = "Acurite"; channel = 6543; location = "Kitchen"; }
];
- description = ''
+ description = lib.mdDoc ''
List of channel matchers to export.
'';
};
@@ -51,7 +51,7 @@ in
example = [
{ name = "Nexus"; id = 1; location = "Bedroom"; }
];
- description = ''
+ description = lib.mdDoc ''
List of ID matchers to export.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/script.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/script.nix
index 2a43fbcab3..eab0e1d8a6 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/script.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/script.nix
@@ -15,18 +15,18 @@ in
name = mkOption {
type = str;
example = "sleep";
- description = "Name of the script.";
+ description = lib.mdDoc "Name of the script.";
};
script = mkOption {
type = str;
example = "sleep 5";
- description = "Shell script to execute when metrics are requested.";
+ description = lib.mdDoc "Shell script to execute when metrics are requested.";
};
timeout = mkOption {
type = nullOr int;
default = null;
example = 60;
- description = "Optional timeout for the script in seconds.";
+ description = lib.mdDoc "Optional timeout for the script in seconds.";
};
};
});
@@ -37,11 +37,11 @@ in
];
}
'';
- description = ''
+ description = lib.mdDoc ''
All settings expressed as an Nix attrset.
Check the official documentation for the corresponding YAML
- settings that can all be used here:
+ settings that can all be used here:
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix
index bac9836453..8906c25d50 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix
@@ -24,7 +24,7 @@ in {
example = literalExpression ''
[ "/dev/sda", "/dev/nvme0n1" ];
'';
- description = ''
+ description = lib.mdDoc ''
Paths to the disks that will be monitored. Will autodiscover
all disks if none given.
'';
@@ -33,7 +33,7 @@ in {
type = types.str;
default = "60s";
example = "2m";
- description = ''
+ description = lib.mdDoc ''
Interval that limits how often a disk can be queried.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix
index 0181c341a7..459f5842f5 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix
@@ -17,27 +17,27 @@ in
telemetryPath = mkOption {
type = types.str;
default = "/metrics";
- description = ''
+ description = lib.mdDoc ''
Path under which to expose metrics.
'';
};
pingInterval = mkOption {
type = goDuration;
default = "1s";
- description = ''
+ description = lib.mdDoc ''
Interval between pings.
'';
};
buckets = mkOption {
type = types.commas;
default = "5e-05,0.0001,0.0002,0.0004,0.0008,0.0016,0.0032,0.0064,0.0128,0.0256,0.0512,0.1024,0.2048,0.4096,0.8192,1.6384,3.2768,6.5536,13.1072,26.2144";
- description = ''
+ description = lib.mdDoc ''
List of buckets to use for the response duration histogram.
'';
};
hosts = mkOption {
type = with types; listOf str;
- description = ''
+ description = lib.mdDoc ''
List of endpoints to probe.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
index de42663e67..edc6e4b502 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
@@ -11,7 +11,7 @@ in
configurationPath = mkOption {
type = types.nullOr types.path;
default = null;
- description = ''
+ description = lib.mdDoc ''
Path to a snmp exporter configuration file. Mutually exclusive with 'configuration' option.
'';
example = literalExpression "./snmp.yml";
@@ -20,7 +20,7 @@ in
configuration = mkOption {
type = types.nullOr types.attrs;
default = null;
- description = ''
+ description = lib.mdDoc ''
Snmp exporter configuration as nix attribute set. Mutually exclusive with 'configurationPath' option.
'';
example = {
@@ -36,7 +36,7 @@ in
logFormat = mkOption {
type = types.enum ["logfmt" "json"];
default = "logfmt";
- description = ''
+ description = lib.mdDoc ''
Output format of log messages.
'';
};
@@ -44,7 +44,7 @@ in
logLevel = mkOption {
type = types.enum ["debug" "info" "warn" "error"];
default = "info";
- description = ''
+ description = lib.mdDoc ''
Only log messages with the given severity or above.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/sql.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/sql.nix
index 3496fd9541..678bc34867 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/sql.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/sql.nix
@@ -7,7 +7,7 @@ let
jobs = mkOption {
type = attrsOf (submodule jobOptions);
default = { };
- description = "An attrset of metrics scraping jobs to run.";
+ description = lib.mdDoc "An attrset of metrics scraping jobs to run.";
};
};
};
@@ -15,23 +15,23 @@ let
options = with types; {
interval = mkOption {
type = str;
- description = ''
+ description = lib.mdDoc ''
How often to run this job, specified in
- Go duration format.
+ [Go duration](https://golang.org/pkg/time/#ParseDuration) format.
'';
};
connections = mkOption {
type = listOf str;
- description = "A list of connection strings of the SQL servers to scrape metrics from";
+ description = lib.mdDoc "A list of connection strings of the SQL servers to scrape metrics from";
};
startupSql = mkOption {
type = listOf str;
default = [];
- description = "A list of SQL statements to execute once after making a connection.";
+ description = lib.mdDoc "A list of SQL statements to execute once after making a connection.";
};
queries = mkOption {
type = attrsOf (submodule queryOptions);
- description = "SQL queries to run.";
+ description = lib.mdDoc "SQL queries to run.";
};
};
};
@@ -40,20 +40,20 @@ let
help = mkOption {
type = nullOr str;
default = null;
- description = "A human-readable description of this metric.";
+ description = lib.mdDoc "A human-readable description of this metric.";
};
labels = mkOption {
type = listOf str;
default = [ ];
- description = "A set of columns that will be used as Prometheus labels.";
+ description = lib.mdDoc "A set of columns that will be used as Prometheus labels.";
};
query = mkOption {
type = str;
- description = "The SQL query to run.";
+ description = lib.mdDoc "The SQL query to run.";
};
values = mkOption {
type = listOf str;
- description = "A set of columns that will be used as values of this metric.";
+ description = lib.mdDoc "A set of columns that will be used as values of this metric.";
};
};
};
@@ -77,14 +77,14 @@ in
configFile = mkOption {
type = with types; nullOr path;
default = null;
- description = ''
+ description = lib.mdDoc ''
Path to configuration file.
'';
};
configuration = mkOption {
type = with types; nullOr (submodule cfgOptions);
default = null;
- description = ''
+ description = lib.mdDoc ''
Exporter configuration as nix attribute set. Mutually exclusive with 'configFile' option.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/surfboard.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/surfboard.nix
index 81c5c70ed9..b1d6760b40 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/surfboard.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/surfboard.nix
@@ -11,7 +11,7 @@ in
modemAddress = mkOption {
type = types.str;
default = "192.168.100.1";
- description = ''
+ description = lib.mdDoc ''
The hostname or IP of the cable modem.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/tor.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/tor.nix
index 36c473677e..edf9b57607 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/tor.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/tor.nix
@@ -11,7 +11,7 @@ in
torControlAddress = mkOption {
type = types.str;
default = "127.0.0.1";
- description = ''
+ description = lib.mdDoc ''
Tor control IP address or hostname.
'';
};
@@ -19,7 +19,7 @@ in
torControlPort = mkOption {
type = types.int;
default = 9051;
- description = ''
+ description = lib.mdDoc ''
Tor control port.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix
index cf0efddd34..f52d92a73d 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix
@@ -12,7 +12,7 @@ in
# TODO: add shm when upstream implemented it
type = types.enum [ "tcp" "uds" ];
default = "uds";
- description = ''
+ description = lib.mdDoc ''
Which methods the exporter uses to get the information from unbound.
'';
};
@@ -20,7 +20,7 @@ in
telemetryPath = mkOption {
type = types.str;
default = "/metrics";
- description = ''
+ description = lib.mdDoc ''
Path under which to expose metrics.
'';
};
@@ -29,7 +29,7 @@ in
type = types.nullOr types.str;
default = null;
example = "/run/unbound/unbound.socket";
- description = ''
+ description = lib.mdDoc ''
Path to the unbound socket for uds mode or the control interface port for tcp mode.
Example:
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unifi.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unifi.nix
index 8d0e876400..70f26d9783 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unifi.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unifi.nix
@@ -11,7 +11,7 @@ in
unifiAddress = mkOption {
type = types.str;
example = "https://10.0.0.1:8443";
- description = ''
+ description = lib.mdDoc ''
URL of the UniFi Controller API.
'';
};
@@ -19,7 +19,7 @@ in
unifiInsecure = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
If enabled skip the verification of the TLS certificate of the UniFi Controller API.
Use with caution.
'';
@@ -28,14 +28,14 @@ in
unifiUsername = mkOption {
type = types.str;
example = "ReadOnlyUser";
- description = ''
+ description = lib.mdDoc ''
username for authentication against UniFi Controller API.
'';
};
unifiPassword = mkOption {
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Password for authentication against UniFi Controller API.
'';
};
@@ -44,7 +44,7 @@ in
type = types.str;
default = "5s";
example = "2m";
- description = ''
+ description = lib.mdDoc ''
Timeout including unit for UniFi Controller API requests.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix
index ede6028933..a7e5b41dff 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix
@@ -11,35 +11,35 @@ in
noExit = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Do not exit server on Varnish scrape errors.
'';
};
withGoMetrics = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Export go runtime and http handler metrics.
'';
};
verbose = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Enable verbose logging.
'';
};
raw = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Enable raw stdout logging without timestamps.
'';
};
varnishStatPath = mkOption {
type = types.str;
default = "varnishstat";
- description = ''
+ description = lib.mdDoc ''
Path to varnishstat.
'';
};
@@ -47,21 +47,21 @@ in
type = types.nullOr types.str;
default = config.services.varnish.stateDir;
defaultText = lib.literalExpression "config.services.varnish.stateDir";
- description = ''
+ description = lib.mdDoc ''
varnishstat -n value.
'';
};
healthPath = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Path under which to expose healthcheck. Disabled unless configured.
'';
};
telemetryPath = mkOption {
type = types.str;
default = "/metrics";
- description = ''
+ description = lib.mdDoc ''
Path under which to expose metrics.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix
index 2d329a1af1..20631f2af9 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix
@@ -17,13 +17,13 @@ in {
type = with types; nullOr (either path str);
default = null;
- description = ''
+ description = lib.mdDoc ''
Path to the Wireguard Config to
- add the peer's name to the stats of a peer.
+ [add the peer's name to the stats of a peer](https://github.com/MindFlavor/prometheus_wireguard_exporter/tree/2.0.0#usage).
- Please note that networking.wg-quick is required for this feature
- as networking.wireguard uses
- wg8
+ Please note that `networking.wg-quick` is required for this feature
+ as `networking.wireguard` uses
+ {manpage}`wg(8)`
to set the peers up.
'';
};
@@ -31,18 +31,18 @@ in {
singleSubnetPerField = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
By default, all allowed IPs and subnets are comma-separated in the
- allowed_ips field. With this option enabled,
- a single IP and subnet will be listed in fields like allowed_ip_0,
- allowed_ip_1 and so on.
+ `allowed_ips` field. With this option enabled,
+ a single IP and subnet will be listed in fields like `allowed_ip_0`,
+ `allowed_ip_1` and so on.
'';
};
withRemoteIp = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether or not the remote IP of a WireGuard peer should be exposed via prometheus.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/riemann-tools.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/riemann-tools.nix
index b5cd79c743..28821267b4 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/riemann-tools.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/riemann-tools.nix
@@ -37,7 +37,7 @@ in {
extraArgs = mkOption {
type = types.listOf types.str;
default = [];
- description = ''
+ description = lib.mdDoc ''
A list of commandline-switches forwarded to a riemann-tool.
See for example `riemann-health --help` for available options.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/tuptime.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/tuptime.nix
index ffe24c0ef0..770fbee2a8 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/tuptime.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/tuptime.nix
@@ -45,7 +45,7 @@ in {
services = {
tuptime = {
- description = "the total uptime service";
+ description = "The total uptime service";
documentation = [ "man:tuptime(1)" ];
after = [ "time-sync.target" ];
wantedBy = [ "multi-user.target" ];
@@ -59,10 +59,9 @@ in {
};
};
- tuptime-oneshot = mkIf cfg.timer.enable {
- description = "the tuptime scheduled execution unit";
+ tuptime-sync = mkIf cfg.timer.enable {
+ description = "Tuptime scheduled sync service";
serviceConfig = {
- StateDirectory = "tuptime";
Type = "oneshot";
User = "_tuptime";
ExecStart = "${pkgs.tuptime}/bin/tuptime -x";
@@ -70,8 +69,8 @@ in {
};
};
- timers.tuptime = mkIf cfg.timer.enable {
- description = "the tuptime scheduled execution timer";
+ timers.tuptime-sync = mkIf cfg.timer.enable {
+ description = "Tuptime scheduled sync timer";
# this timer should be started if the service is started
# even if the timer was previously stopped
wantedBy = [ "tuptime.service" "timers.target" ];
@@ -80,7 +79,7 @@ in {
timerConfig = {
OnBootSec = "1min";
OnCalendar = cfg.timer.period;
- Unit = "tuptime-oneshot.service";
+ Unit = "tuptime-sync.service";
};
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/litestream/default.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/litestream/default.nix
index 25744b9196..92ae1d0fd3 100644
--- a/third_party/nixpkgs/nixos/modules/services/network-filesystems/litestream/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/litestream/default.nix
@@ -41,9 +41,7 @@ in
default = null;
example = "/run/secrets/litestream";
description = ''
- Environment file as defined in
- systemd.exec5
- .
+ Environment file as defined in systemd.exec5.
Secrets may be passed to the service without adding them to the
world-readable Nix store, by specifying placeholder variables as
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/netatalk.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/netatalk.nix
index e870056e1d..838a374ba6 100644
--- a/third_party/nixpkgs/nixos/modules/services/network-filesystems/netatalk.nix
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/netatalk.nix
@@ -32,20 +32,18 @@ in {
"read only" = true;
};
};
- description = ''
+ description = lib.mdDoc ''
Configuration for Netatalk. See
- afp.conf
- 5.
+ {manpage}`afp.conf(5)`.
'';
};
extmap = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
File name extension mappings.
- See extmap.conf
- 5. for more information.
+ See {manpage}`extmap.conf(5)`. for more information.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/nfsd.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/nfsd.nix
index 22c7c8790c..c9e1cbcbbd 100644
--- a/third_party/nixpkgs/nixos/modules/services/network-filesystems/nfsd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/nfsd.nix
@@ -42,21 +42,19 @@ in
exports = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Contents of the /etc/exports file. See
- exports
- 5 for the format.
+ {manpage}`exports(5)` for the format.
'';
};
hostName = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Hostname or address on which NFS requests will be accepted.
- Default is all. See the option in
- nfsd
- 8.
+ Default is all. See the {option}`-H` option in
+ {manpage}`nfsd(8)`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/openafs/client.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/openafs/client.nix
index c8cc5052c2..bb0fee087e 100644
--- a/third_party/nixpkgs/nixos/modules/services/network-filesystems/openafs/client.nix
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/openafs/client.nix
@@ -33,29 +33,29 @@ in
enable = mkOption {
default = false;
type = types.bool;
- description = "Whether to enable the OpenAFS client.";
+ description = lib.mdDoc "Whether to enable the OpenAFS client.";
};
afsdb = mkOption {
default = true;
type = types.bool;
- description = "Resolve cells via AFSDB DNS records.";
+ description = lib.mdDoc "Resolve cells via AFSDB DNS records.";
};
cellName = mkOption {
default = "";
type = types.str;
- description = "Cell name.";
+ description = lib.mdDoc "Cell name.";
example = "grand.central.org";
};
cellServDB = mkOption {
default = [];
type = with types; listOf (submodule { options = cellServDBConfig; });
- description = ''
+ description = lib.mdDoc ''
This cell's database server records, added to the global
CellServDB. See CellServDB(5) man page for syntax. Ignored when
- afsdb is set to true.
+ `afsdb` is set to `true`.
'';
example = [
{ ip = "1.2.3.4"; dnsname = "first.afsdb.server.dns.fqdn.org"; }
@@ -67,15 +67,15 @@ in
blocks = mkOption {
default = 100000;
type = types.int;
- description = "Cache size in 1KB blocks.";
+ description = lib.mdDoc "Cache size in 1KB blocks.";
};
chunksize = mkOption {
default = 0;
type = types.ints.between 0 30;
- description = ''
+ description = lib.mdDoc ''
Size of each cache chunk given in powers of
- 2. 0 resets the chunk size to its default
+ 2. `0` resets the chunk size to its default
values (13 (8 KB) for memcache, 18-20 (256 KB to 1 MB) for
diskcache). Maximum value is 30. Important performance
parameter. Set to higher values when dealing with large files.
@@ -85,13 +85,13 @@ in
directory = mkOption {
default = "/var/cache/openafs";
type = types.str;
- description = "Cache directory.";
+ description = lib.mdDoc "Cache directory.";
};
diskless = mkOption {
default = false;
type = types.bool;
- description = ''
+ description = lib.mdDoc ''
Use in-memory cache for diskless machines. Has no real
performance benefit anymore.
'';
@@ -101,13 +101,13 @@ in
crypt = mkOption {
default = true;
type = types.bool;
- description = "Whether to enable (weak) protocol encryption.";
+ description = lib.mdDoc "Whether to enable (weak) protocol encryption.";
};
daemons = mkOption {
default = 2;
type = types.int;
- description = ''
+ description = lib.mdDoc ''
Number of daemons to serve user requests. Numbers higher than 6
usually do no increase performance. Default is sufficient for up
to five concurrent users.
@@ -117,9 +117,9 @@ in
fakestat = mkOption {
default = false;
type = types.bool;
- description = ''
- Return fake data on stat() calls. If true,
- always do so. If false, only do so for
+ description = lib.mdDoc ''
+ Return fake data on stat() calls. If `true`,
+ always do so. If `false`, only do so for
cross-cell mounts (as these are potentially expensive).
'';
};
@@ -127,9 +127,9 @@ in
inumcalc = mkOption {
default = "compat";
type = types.strMatching "compat|md5";
- description = ''
- Inode calculation method. compat is
- computationally less expensive, but md5 greatly
+ description = lib.mdDoc ''
+ Inode calculation method. `compat` is
+ computationally less expensive, but `md5` greatly
reduces the likelihood of inode collisions in larger scenarios
involving multiple cells mounted into one AFS space.
'';
@@ -138,9 +138,9 @@ in
mountPoint = mkOption {
default = "/afs";
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Mountpoint of the AFS file tree, conventionally
- /afs. When set to a different value, only
+ `/afs`. When set to a different value, only
cross-cells that use the same value can be accessed.
'';
};
@@ -150,28 +150,28 @@ in
default = config.boot.kernelPackages.openafs;
defaultText = literalExpression "config.boot.kernelPackages.openafs";
type = types.package;
- description = "OpenAFS kernel module package. MUST match the userland package!";
+ description = lib.mdDoc "OpenAFS kernel module package. MUST match the userland package!";
};
programs = mkOption {
default = getBin pkgs.openafs;
defaultText = literalExpression "getBin pkgs.openafs";
type = types.package;
- description = "OpenAFS programs package. MUST match the kernel module package!";
+ description = lib.mdDoc "OpenAFS programs package. MUST match the kernel module package!";
};
};
sparse = mkOption {
default = true;
type = types.bool;
- description = "Minimal cell list in /afs.";
+ description = lib.mdDoc "Minimal cell list in /afs.";
};
startDisconnected = mkOption {
default = false;
type = types.bool;
- description = ''
+ description = lib.mdDoc ''
Start up in disconnected mode. You need to execute
- fs disco online (as root) to switch to
+ `fs disco online` (as root) to switch to
connected mode. Useful for roaming devices.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/openafs/lib.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/openafs/lib.nix
index e068ee761c..80628f4dfa 100644
--- a/third_party/nixpkgs/nixos/modules/services/network-filesystems/openafs/lib.nix
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/openafs/lib.nix
@@ -17,13 +17,13 @@ in {
type = types.str;
default = "";
example = "1.2.3.4";
- description = "IP Address of a database server";
+ description = lib.mdDoc "IP Address of a database server";
};
dnsname = mkOption {
type = types.str;
default = "";
example = "afs.example.org";
- description = "DNS full-qualified domain name of a database server";
+ description = lib.mdDoc "DNS full-qualified domain name of a database server";
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/openafs/server.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/openafs/server.nix
index 9c974335de..1c615d3bfb 100644
--- a/third_party/nixpkgs/nixos/modules/services/network-filesystems/openafs/server.nix
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/openafs/server.nix
@@ -49,13 +49,13 @@ in {
enable = mkOption {
default = false;
type = types.bool;
- description = ''
+ description = lib.mdDoc ''
Whether to enable the OpenAFS server. An OpenAFS server needs a
complex setup. So, be aware that enabling this service and setting
some options does not give you a turn-key-ready solution. You need
at least a running Kerberos 5 setup, as OpenAFS relies on it for
authentication. See the Guide "QuickStartUnix" coming with
- pkgs.openafs.doc for complete setup
+ `pkgs.openafs.doc` for complete setup
instructions.
'';
};
@@ -63,27 +63,27 @@ in {
advertisedAddresses = mkOption {
type = types.listOf types.str;
default = [];
- description = "List of IP addresses this server is advertised under. See NetInfo(5)";
+ description = lib.mdDoc "List of IP addresses this server is advertised under. See NetInfo(5)";
};
cellName = mkOption {
default = "";
type = types.str;
- description = "Cell name, this server will serve.";
+ description = lib.mdDoc "Cell name, this server will serve.";
example = "grand.central.org";
};
cellServDB = mkOption {
default = [];
type = with types; listOf (submodule [ { options = cellServDBConfig;} ]);
- description = "Definition of all cell-local database server machines.";
+ description = lib.mdDoc "Definition of all cell-local database server machines.";
};
package = mkOption {
default = pkgs.openafs.server or pkgs.openafs;
defaultText = literalExpression "pkgs.openafs.server or pkgs.openafs";
type = types.package;
- description = "OpenAFS package for the server binaries";
+ description = lib.mdDoc "OpenAFS package for the server binaries";
};
roles = {
@@ -91,33 +91,33 @@ in {
enable = mkOption {
default = true;
type = types.bool;
- description = "Fileserver role, serves files and volumes from its local storage.";
+ description = lib.mdDoc "Fileserver role, serves files and volumes from its local storage.";
};
fileserverArgs = mkOption {
default = "-vattachpar 128 -vhashsize 11 -L -rxpck 400 -cb 1000000";
type = types.str;
- description = "Arguments to the dafileserver process. See its man page.";
+ description = lib.mdDoc "Arguments to the dafileserver process. See its man page.";
};
volserverArgs = mkOption {
default = "";
type = types.str;
- description = "Arguments to the davolserver process. See its man page.";
+ description = lib.mdDoc "Arguments to the davolserver process. See its man page.";
example = "-sync never";
};
salvageserverArgs = mkOption {
default = "";
type = types.str;
- description = "Arguments to the salvageserver process. See its man page.";
+ description = lib.mdDoc "Arguments to the salvageserver process. See its man page.";
example = "-showlog";
};
salvagerArgs = mkOption {
default = "";
type = types.str;
- description = "Arguments to the dasalvager process. See its man page.";
+ description = lib.mdDoc "Arguments to the dasalvager process. See its man page.";
example = "-showlog -showmounts";
};
};
@@ -126,10 +126,10 @@ in {
enable = mkOption {
default = true;
type = types.bool;
- description = ''
+ description = lib.mdDoc ''
Database server role, maintains the Volume Location Database,
Protection Database (and Backup Database, see
- backup role). There can be multiple
+ `backup` role). There can be multiple
servers in the database role for replication, which then need
reliable network connection to each other.
@@ -141,14 +141,14 @@ in {
vlserverArgs = mkOption {
default = "";
type = types.str;
- description = "Arguments to the vlserver process. See its man page.";
+ description = lib.mdDoc "Arguments to the vlserver process. See its man page.";
example = "-rxbind";
};
ptserverArgs = mkOption {
default = "";
type = types.str;
- description = "Arguments to the ptserver process. See its man page.";
+ description = lib.mdDoc "Arguments to the ptserver process. See its man page.";
example = "-restricted -default_access S---- S-M---";
};
};
@@ -157,9 +157,9 @@ in {
enable = mkOption {
default = false;
type = types.bool;
- description = ''
+ description = lib.mdDoc ''
Backup server role. Use in conjunction with the
- database role to maintain the Backup
+ `database` role to maintain the Backup
Database. Normally only used in conjunction with tape storage
or IBM's Tivoli Storage Manager.
'';
@@ -168,14 +168,14 @@ in {
buserverArgs = mkOption {
default = "";
type = types.str;
- description = "Arguments to the buserver process. See its man page.";
+ description = lib.mdDoc "Arguments to the buserver process. See its man page.";
example = "-p 8";
};
cellServDB = mkOption {
default = [];
type = with types; listOf (submodule [ { options = cellServDBConfig;} ]);
- description = ''
+ description = lib.mdDoc ''
Definition of all cell-local backup database server machines.
Use this when your cell uses less backup database servers than
other database server machines.
@@ -187,7 +187,7 @@ in {
dottedPrincipals= mkOption {
default = false;
type = types.bool;
- description = ''
+ description = lib.mdDoc ''
If enabled, allow principal names containing (.) dots. Enabling
this has security implications!
'';
@@ -196,11 +196,11 @@ in {
udpPacketSize = mkOption {
default = 1310720;
type = types.int;
- description = ''
+ description = lib.mdDoc ''
UDP packet size to use in Bytes. Higher values can speed up
communications. The default of 1 MB is a sufficient in most
cases. Make sure to increase the kernel's UDP buffer size
- accordingly via net.core(w|r|opt)mem_max
+ accordingly via `net.core(w|r|opt)mem_max`
sysctl.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/rsyncd.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/rsyncd.nix
index ab24ebfee2..d65113c84b 100644
--- a/third_party/nixpkgs/nixos/modules/services/network-filesystems/rsyncd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/rsyncd.nix
@@ -39,10 +39,9 @@ in {
"secrets file" = "/etc/rsyncd.secrets";
};
};
- description = ''
+ description = lib.mdDoc ''
Configuration for rsyncd. See
- rsyncd.conf
- 5.
+ {manpage}`rsyncd.conf(5)`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/webdav.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/webdav.nix
index 5628fd1e6c..b7c07b8c12 100644
--- a/third_party/nixpkgs/nixos/modules/services/network-filesystems/webdav.nix
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/webdav.nix
@@ -67,10 +67,8 @@ in
environmentFile = mkOption {
type = types.nullOr types.path;
default = null;
- description = ''
- Environment file as defined in
- systemd.exec5
- .
+ description = lib.mdDoc ''
+ Environment file as defined in {manpage}`systemd.exec(5)`.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/xtreemfs.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/xtreemfs.nix
index 7b476fc7ac..09d517740a 100644
--- a/third_party/nixpkgs/nixos/modules/services/network-filesystems/xtreemfs.nix
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/xtreemfs.nix
@@ -111,7 +111,7 @@ in
uuid = mkOption {
example = "eacb6bab-f444-4ebf-a06a-3f72d7465e40";
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Must be set to a unique identifier, preferably a UUID according to
RFC 4122. UUIDs can be generated with `uuidgen` command, found in
the `util-linux` package.
@@ -236,7 +236,7 @@ in
uuid = mkOption {
example = "eacb6bab-f444-4ebf-a06a-3f72d7465e41";
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Must be set to a unique identifier, preferably a UUID according to
RFC 4122. UUIDs can be generated with `uuidgen` command, found in
the `util-linux` package.
@@ -379,7 +379,7 @@ in
uuid = mkOption {
example = "eacb6bab-f444-4ebf-a06a-3f72d7465e42";
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Must be set to a unique identifier, preferably a UUID according to
RFC 4122. UUIDs can be generated with `uuidgen` command, found in
the `util-linux` package.
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/yandex-disk.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/yandex-disk.nix
index 94f806a617..1078df0bed 100644
--- a/third_party/nixpkgs/nixos/modules/services/network-filesystems/yandex-disk.nix
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/yandex-disk.nix
@@ -23,9 +23,9 @@ in
enable = mkOption {
type = types.bool;
default = false;
- description = "
+ description = lib.mdDoc ''
Whether to enable Yandex-disk client. See https://disk.yandex.ru/
- ";
+ '';
};
username = mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/avahi-daemon.nix b/third_party/nixpkgs/nixos/modules/services/networking/avahi-daemon.nix
index 498e5a4767..56113bd345 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/avahi-daemon.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/avahi-daemon.nix
@@ -150,10 +150,9 @@ in
''';
}
'';
- description = ''
+ description = lib.mdDoc ''
Specify custom service definitions which are placed in the avahi service directory.
- See the avahi.service
- 5 manpage for detailed information.
+ See the {manpage}`avahi.service(5)` manpage for detailed information.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/bind.nix b/third_party/nixpkgs/nixos/modules/services/networking/bind.nix
index 0966332f7d..630d1b2073 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/bind.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/bind.nix
@@ -117,62 +117,62 @@ in
cacheNetworks = mkOption {
default = [ "127.0.0.0/24" ];
type = types.listOf types.str;
- description = "
+ description = lib.mdDoc ''
What networks are allowed to use us as a resolver. Note
that this is for recursive queries -- all networks are
allowed to query zones configured with the `zones` option.
It is recommended that you limit cacheNetworks to avoid your
server being used for DNS amplification attacks.
- ";
+ '';
};
blockedNetworks = mkOption {
default = [ ];
type = types.listOf types.str;
- description = "
+ description = lib.mdDoc ''
What networks are just blocked.
- ";
+ '';
};
ipv4Only = mkOption {
default = false;
type = types.bool;
- description = "
+ description = lib.mdDoc ''
Only use ipv4, even if the host supports ipv6.
- ";
+ '';
};
forwarders = mkOption {
default = config.networking.nameservers;
defaultText = literalExpression "config.networking.nameservers";
type = types.listOf types.str;
- description = "
+ description = lib.mdDoc ''
List of servers we should forward requests to.
- ";
+ '';
};
forward = mkOption {
default = "first";
type = types.enum ["first" "only"];
- description = "
+ description = lib.mdDoc ''
Whether to forward 'first' (try forwarding but lookup directly if forwarding fails) or 'only'.
- ";
+ '';
};
listenOn = mkOption {
default = [ "any" ];
type = types.listOf types.str;
- description = "
+ description = lib.mdDoc ''
Interfaces to listen on.
- ";
+ '';
};
listenOnIpv6 = mkOption {
default = [ "any" ];
type = types.listOf types.str;
- description = "
+ description = lib.mdDoc ''
Ipv6 interfaces to listen on.
- ";
+ '';
};
directory = mkOption {
@@ -184,9 +184,9 @@ in
zones = mkOption {
default = [ ];
type = with types; coercedTo (listOf attrs) bindZoneCoerce (attrsOf (types.submodule bindZoneOptions));
- description = "
+ description = lib.mdDoc ''
List of zones we claim authority over.
- ";
+ '';
example = {
"example.com" = {
master = false;
@@ -201,9 +201,9 @@ in
extraConfig = mkOption {
type = types.lines;
default = "";
- description = "
+ description = lib.mdDoc ''
Extra lines to be added verbatim to the generated named configuration file.
- ";
+ '';
};
extraOptions = mkOption {
@@ -219,10 +219,10 @@ in
type = types.path;
default = confFile;
defaultText = literalExpression "confFile";
- description = "
+ description = lib.mdDoc ''
Overridable config file to use for named. By default, that
generated by nixos.
- ";
+ '';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/cloudflare-dyndns.nix b/third_party/nixpkgs/nixos/modules/services/networking/cloudflare-dyndns.nix
index 5dd90cfe35..92d7f97b0b 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/cloudflare-dyndns.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/cloudflare-dyndns.nix
@@ -13,7 +13,7 @@ in
apiTokenFile = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
The path to a file containing the CloudFlare API token.
The file must have the form `CLOUDFLARE_API_TOKEN=...`
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/create_ap.nix b/third_party/nixpkgs/nixos/modules/services/networking/create_ap.nix
index a3c330fab0..2fcf9b8a54 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/create_ap.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/create_ap.nix
@@ -12,9 +12,9 @@ in {
settings = mkOption {
type = with types; attrsOf (oneOf [ int bool str ]);
default = {};
- description = ''
- Configuration for create_ap.
- See upstream example configuration
+ description = lib.mdDoc ''
+ Configuration for `create_ap`.
+ See [upstream example configuration](https://raw.githubusercontent.com/lakinduakash/linux-wifi-hotspot/master/src/scripts/create_ap.conf)
for supported values.
'';
example = {
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/dhcpcd.nix b/third_party/nixpkgs/nixos/modules/services/networking/dhcpcd.nix
index 6b7ce82891..ac5d45a65e 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/dhcpcd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/dhcpcd.nix
@@ -155,7 +155,7 @@ in
type = types.lines;
default = "";
example = "if [[ $reason =~ BOUND ]]; then echo $interface: Routers are $new_routers - were $old_routers; fi";
- description = ''
+ description = lib.mdDoc ''
Shell code that will be run after all other hooks. See
`man dhcpcd-run-hooks` for details on what is possible.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/ferm.nix b/third_party/nixpkgs/nixos/modules/services/networking/ferm.nix
index 7faebcef63..ea96a736fe 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/ferm.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/ferm.nix
@@ -20,7 +20,7 @@ in {
enable = mkOption {
default = false;
type = types.bool;
- description = ''
+ description = lib.mdDoc ''
Whether to enable Ferm Firewall.
*Warning*: Enabling this service WILL disable the existing NixOS
firewall! Default firewall rules provided by packages are not
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/firefox-syncserver.nix b/third_party/nixpkgs/nixos/modules/services/networking/firefox-syncserver.nix
index 254d5c1dc6..2944124b10 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/firefox-syncserver.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/firefox-syncserver.nix
@@ -55,7 +55,7 @@ in
type = lib.types.package;
default = pkgs.syncstorage-rs;
defaultText = lib.literalExpression "pkgs.syncstorage-rs";
- description = ''
+ description = lib.mdDoc ''
Package to use.
'';
};
@@ -66,16 +66,16 @@ in
# behavior ever change.
type = lib.types.strMatching "[a-z_][a-z0-9_]*";
default = defaultDatabase;
- description = ''
+ description = lib.mdDoc ''
Database to use for storage. Will be created automatically if it does not exist
- and config.${opt.database.createLocally} is set.
+ and `config.${opt.database.createLocally}` is set.
'';
};
database.user = lib.mkOption {
type = lib.types.str;
default = defaultUser;
- description = ''
+ description = lib.mdDoc ''
Username for database connections.
'';
};
@@ -83,8 +83,8 @@ in
database.host = lib.mkOption {
type = lib.types.str;
default = "localhost";
- description = ''
- Database host name. localhost is treated specially and inserts
+ description = lib.mdDoc ''
+ Database host name. `localhost` is treated specially and inserts
systemd dependencies, other hostnames or IP addresses of the local machine do not.
'';
};
@@ -92,7 +92,7 @@ in
database.createLocally = lib.mkOption {
type = lib.types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether to create database and user on the local machine if they do not exist.
This includes enabling unix domain socket authentication for the configured user.
'';
@@ -101,19 +101,19 @@ in
logLevel = lib.mkOption {
type = lib.types.str;
default = "error";
- description = ''
- Log level to run with. This can be a simple log level like error
- or trace, or a more complicated logging expression.
+ description = lib.mdDoc ''
+ Log level to run with. This can be a simple log level like `error`
+ or `trace`, or a more complicated logging expression.
'';
};
secrets = lib.mkOption {
type = lib.types.path;
- description = ''
+ description = lib.mdDoc ''
A file containing the various secrets. Should be in the format expected by systemd's
- EnvironmentFile directory. Two secrets are currently available:
- SYNC_MASTER_SECRET and
- SYNC_TOKENSERVER__FXA_METRICS_HASH_SECRET.
+ `EnvironmentFile` directory. Two secrets are currently available:
+ `SYNC_MASTER_SECRET` and
+ `SYNC_TOKENSERVER__FXA_METRICS_HASH_SECRET`.
'';
};
@@ -126,7 +126,7 @@ in
hostname = lib.mkOption {
type = lib.types.str;
- description = ''
+ description = lib.mdDoc ''
Host name to use for this service.
'';
};
@@ -134,7 +134,7 @@ in
capacity = lib.mkOption {
type = lib.types.ints.unsigned;
default = 10;
- description = ''
+ description = lib.mdDoc ''
How many sync accounts are allowed on this server. Setting this value
equal to or less than the number of currently active accounts will
effectively deny service to accounts not yet registered here.
@@ -147,7 +147,7 @@ in
defaultText = lib.literalExpression ''
''${if cfg.singleNode.enableTLS then "https" else "http"}://''${config.${opt.singleNode.hostname}}
'';
- description = ''
+ description = lib.mdDoc ''
URL of the host. If you are not using the automatic webserver proxy setup you will have
to change this setting or your sync server may not be functional.
'';
@@ -162,7 +162,7 @@ in
port = lib.mkOption {
type = lib.types.port;
default = 5000;
- description = ''
+ description = lib.mdDoc ''
Port to bind to.
'';
};
@@ -170,21 +170,21 @@ in
tokenserver.enabled = lib.mkOption {
type = lib.types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether to enable the token service as well.
'';
};
};
};
default = { };
- description = ''
+ description = lib.mdDoc ''
Settings for the sync server. These take priority over values computed
from NixOS options.
- See the doc comments on the Settings structs in
-
+ See the doc comments on the `Settings` structs in
+
and
-
+
for available options.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/fireqos.nix b/third_party/nixpkgs/nixos/modules/services/networking/fireqos.nix
index 5469bce58c..b7f51a89c0 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/fireqos.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/fireqos.nix
@@ -10,7 +10,7 @@ in {
enable = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
If enabled, FireQOS will be launched with the specified
configuration given in `config`.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/ghostunnel.nix b/third_party/nixpkgs/nixos/modules/services/networking/ghostunnel.nix
index 79cf80e57b..4b9620cea2 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/ghostunnel.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/ghostunnel.nix
@@ -37,12 +37,12 @@ let
};
keystore = mkOption {
- description = ''
+ description = lib.mdDoc ''
Path to keystore (combined PEM with cert/key, or PKCS12 keystore).
- NB: storepass is not supported because it would expose credentials via /proc/*/cmdline.
+ NB: storepass is not supported because it would expose credentials via `/proc/*/cmdline`.
- Specify this or cert and key.
+ Specify this or `cert` and `key`.
'';
type = types.nullOr types.str;
default = null;
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/globalprotect-vpn.nix b/third_party/nixpkgs/nixos/modules/services/networking/globalprotect-vpn.nix
index 19d6e8bfac..bb60916244 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/globalprotect-vpn.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/globalprotect-vpn.nix
@@ -5,7 +5,8 @@ with lib;
let
cfg = config.services.globalprotect;
- execStart = if cfg.csdWrapper == null then
+ execStart =
+ if cfg.csdWrapper == null then
"${pkgs.globalprotect-openconnect}/bin/gpservice"
else
"${pkgs.globalprotect-openconnect}/bin/gpservice --csd-wrapper=${cfg.csdWrapper}";
@@ -15,6 +16,22 @@ in
options.services.globalprotect = {
enable = mkEnableOption "globalprotect";
+ settings = mkOption {
+ description = ''
+ GlobalProtect-openconnect configuration. For more information, visit
+ .
+ '';
+ default = { };
+ example = {
+ "vpn1.company.com" = {
+ openconnect-args = "--script=/path/to/vpnc-script";
+ };
+ };
+ type = types.attrs;
+ };
+
csdWrapper = mkOption {
description = lib.mdDoc ''
A script that will produce a Host Integrity Protection (HIP) report,
@@ -29,12 +46,14 @@ in
config = mkIf cfg.enable {
services.dbus.packages = [ pkgs.globalprotect-openconnect ];
+ environment.etc."gpservice/gp.conf".text = lib.generators.toINI { } cfg.settings;
+
systemd.services.gpservice = {
description = "GlobalProtect openconnect DBus service";
serviceConfig = {
- Type="dbus";
- BusName="com.yuezk.qt.GPService";
- ExecStart=execStart;
+ Type = "dbus";
+ BusName = "com.yuezk.qt.GPService";
+ ExecStart = execStart;
};
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/gnunet.nix b/third_party/nixpkgs/nixos/modules/services/networking/gnunet.nix
index 2ab9097e7f..9d1c9746f7 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/gnunet.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/gnunet.nix
@@ -123,7 +123,7 @@ in
extraOptions = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Additional options that will be copied verbatim in `gnunet.conf'.
See `gnunet.conf(5)' for details.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/headscale.nix b/third_party/nixpkgs/nixos/modules/services/networking/headscale.nix
index f7141de97b..23d8dac2f9 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/headscale.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/headscale.nix
@@ -216,7 +216,7 @@ in
magicDns = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether to use [MagicDNS](https://tailscale.com/kb/1081/magicdns/).
Only works if there is at least a nameserver defined.
'';
@@ -286,11 +286,11 @@ in
'';
};
challengeType = mkOption {
- type = types.enum [ "TLS_ALPN-01" "HTTP-01" ];
+ type = types.enum [ "TLS-ALPN-01" "HTTP-01" ];
default = "HTTP-01";
description = lib.mdDoc ''
Type of ACME challenge to use, currently supported types:
- `HTTP-01` or `TLS_ALPN-01`.
+ `HTTP-01` or `TLS-ALPN-01`.
'';
};
httpListen = mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/https-dns-proxy.nix b/third_party/nixpkgs/nixos/modules/services/networking/https-dns-proxy.nix
index 4b6e302e44..18b07a5ca3 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/https-dns-proxy.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/https-dns-proxy.nix
@@ -20,19 +20,23 @@ let
ips = [ "9.9.9.9" "149.112.112.112" ];
url = "https://dns.quad9.net/dns-query";
};
+ opendns = {
+ ips = [ "208.67.222.222" "208.67.220.220" ];
+ url = "https://doh.opendns.com/dns-query";
+ };
+ custom = {
+ inherit (cfg.provider) ips url;
+ };
};
defaultProvider = "quad9";
providerCfg =
- let
- isCustom = cfg.provider.kind == "custom";
- in
- lib.concatStringsSep " " [
+ concatStringsSep " " [
"-b"
- (concatStringsSep "," (if isCustom then cfg.provider.ips else providers."${cfg.provider.kind}".ips))
+ (concatStringsSep "," providers."${cfg.provider.kind}".ips)
"-r"
- (if isCustom then cfg.provider.url else providers."${cfg.provider.kind}".url)
+ providers."${cfg.provider.kind}".url
];
in
@@ -62,14 +66,16 @@ in
The upstream provider to use or custom in case you do not trust any of
the predefined providers or just want to use your own.
- The default is ${defaultProvider} and there are privacy and security trade-offs
- when using any upstream provider. Please consider that before using any
- of them.
+ The default is ${defaultProvider} and there are privacy and security
+ trade-offs when using any upstream provider. Please consider that
+ before using any of them.
- If you pick a custom provider, you will need to provide the bootstrap
- IP addresses as well as the resolver https URL.
+ Supported providers: ${concatStringsSep ", " (builtins.attrNames providers)}
+
+ If you pick the custom provider, you will need to provide the
+ bootstrap IP addresses as well as the resolver https URL.
'';
- type = types.enum ((builtins.attrNames providers) ++ [ "custom" ]);
+ type = types.enum (builtins.attrNames providers);
default = defaultProvider;
};
@@ -105,14 +111,18 @@ in
config = lib.mkIf cfg.enable {
systemd.services.https-dns-proxy = {
description = "DNS to DNS over HTTPS (DoH) proxy";
+ requires = [ "network.target" ];
after = [ "network.target" ];
+ wants = [ "nss-lookup.target" ];
+ before = [ "nss-lookup.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = rec {
Type = "exec";
DynamicUser = true;
+ ProtectHome = "tmpfs";
ExecStart = lib.concatStringsSep " " (
[
- "${pkgs.https-dns-proxy}/bin/https_dns_proxy"
+ (lib.getExe pkgs.https-dns-proxy)
"-a ${toString cfg.address}"
"-p ${toString cfg.port}"
"-l -"
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/hylafax/options.nix b/third_party/nixpkgs/nixos/modules/services/networking/hylafax/options.nix
index bc289132a7..79275d628b 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/hylafax/options.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/hylafax/options.nix
@@ -235,9 +235,9 @@ in
InternationalPrefix = "00";
LongDistancePrefix = "0";
};
- description = ''
+ description = lib.mdDoc ''
Attribute set of default values for
- modem config files etc/config.*.
+ modem config files {file}`etc/config.*`.
${commonDescr}
Think twice before changing
paths of fax-processing scripts.
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/ircd-hybrid/default.nix b/third_party/nixpkgs/nixos/modules/services/networking/ircd-hybrid/default.nix
index f659f3f3e8..44fadde1fb 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/ircd-hybrid/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/ircd-hybrid/default.nix
@@ -41,69 +41,69 @@ in
serverName = mkOption {
default = "hades.arpa";
type = types.str;
- description = "
+ description = lib.mdDoc ''
IRCD server name.
- ";
+ '';
};
sid = mkOption {
default = "0NL";
type = types.str;
- description = "
+ description = lib.mdDoc ''
IRCD server unique ID in a net of servers.
- ";
+ '';
};
description = mkOption {
default = "Hybrid-7 IRC server.";
type = types.str;
- description = "
+ description = lib.mdDoc ''
IRCD server description.
- ";
+ '';
};
rsaKey = mkOption {
default = null;
example = literalExpression "/root/certificates/irc.key";
type = types.nullOr types.path;
- description = "
+ description = lib.mdDoc ''
IRCD server RSA key.
- ";
+ '';
};
certificate = mkOption {
default = null;
example = literalExpression "/root/certificates/irc.pem";
type = types.nullOr types.path;
- description = "
+ description = lib.mdDoc ''
IRCD server SSL certificate. There are some limitations - read manual.
- ";
+ '';
};
adminEmail = mkOption {
default = "";
type = types.str;
example = "";
- description = "
+ description = lib.mdDoc ''
IRCD server administrator e-mail.
- ";
+ '';
};
extraIPs = mkOption {
default = [];
example = ["127.0.0.1"];
type = types.listOf types.str;
- description = "
+ description = lib.mdDoc ''
Extra IP's to bind.
- ";
+ '';
};
extraPort = mkOption {
default = "7117";
type = types.str;
- description = "
+ description = lib.mdDoc ''
Extra port to avoid filtering.
- ";
+ '';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/iscsi/root-initiator.nix b/third_party/nixpkgs/nixos/modules/services/networking/iscsi/root-initiator.nix
index b55fda6725..4434fedce1 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/iscsi/root-initiator.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/iscsi/root-initiator.nix
@@ -77,7 +77,7 @@ in
};
extraConfigFile = mkOption {
- description = ''
+ description = lib.mdDoc ''
Append an additional file's contents to `/etc/iscsid.conf`. Use a non-store path
and store passwords in this file. Note: the file specified here must be available
in the initrd, see: `boot.initrd.secrets`.
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/keepalived/default.nix b/third_party/nixpkgs/nixos/modules/services/networking/keepalived/default.nix
index c9ac2ee259..768c8e4b13 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/keepalived/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/keepalived/default.nix
@@ -147,7 +147,7 @@ in
enable = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable Keepalived.
'';
};
@@ -155,7 +155,7 @@ in
enableScriptSecurity = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Don't run scripts configured to be run as root if any part of the path is writable by a non-root user.
'';
};
@@ -165,7 +165,7 @@ in
enable = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable the builtin AgentX subagent.
'';
};
@@ -173,7 +173,7 @@ in
socket = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Socket to use for connecting to SNMP master agent. If this value is
set to null, keepalived's default will be used, which is
unix:/var/agentx/master, unless using a network namespace, when the
@@ -184,7 +184,7 @@ in
enableKeepalived = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Enable SNMP handling of vrrp element of KEEPALIVED MIB.
'';
};
@@ -192,7 +192,7 @@ in
enableChecker = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Enable SNMP handling of checker element of KEEPALIVED MIB.
'';
};
@@ -200,7 +200,7 @@ in
enableRfc = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Enable SNMP handling of RFC2787 and RFC6527 VRRP MIBs.
'';
};
@@ -208,7 +208,7 @@ in
enableRfcV2 = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Enable SNMP handling of RFC2787 VRRP MIB.
'';
};
@@ -216,7 +216,7 @@ in
enableRfcV3 = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Enable SNMP handling of RFC6527 VRRP MIB.
'';
};
@@ -224,7 +224,7 @@ in
enableTraps = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Enable SNMP traps.
'';
};
@@ -236,7 +236,7 @@ in
inherit lib;
}));
default = {};
- description = "Declarative vrrp script config";
+ description = lib.mdDoc "Declarative vrrp script config";
};
vrrpInstances = mkOption {
@@ -244,13 +244,13 @@ in
inherit lib;
}));
default = {};
- description = "Declarative vhost config";
+ description = lib.mdDoc "Declarative vhost config";
};
extraGlobalDefs = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Extra lines to be added verbatim to the 'global_defs' block of the
configuration file
'';
@@ -259,7 +259,7 @@ in
extraConfig = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Extra lines to be added verbatim to the configuration file.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/keepalived/virtual-ip-options.nix b/third_party/nixpkgs/nixos/modules/services/networking/keepalived/virtual-ip-options.nix
index 1b8889b1b4..1fa6a0ee3b 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/keepalived/virtual-ip-options.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/keepalived/virtual-ip-options.nix
@@ -6,7 +6,7 @@ with lib;
addr = mkOption {
type = types.str;
- description = ''
+ description = lib.mdDoc ''
IP address, optionally with a netmask: IPADDR[/MASK]
'';
};
@@ -14,7 +14,7 @@ with lib;
brd = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
The broadcast address on the interface.
'';
};
@@ -22,7 +22,7 @@ with lib;
dev = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
The name of the device to add the address to.
'';
};
@@ -30,7 +30,7 @@ with lib;
scope = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
The scope of the area where this address is valid.
'';
};
@@ -38,7 +38,7 @@ with lib;
label = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Each address may be tagged with a label string. In order to preserve
compatibility with Linux-2.0 net aliases, this string must coincide with
the name of the device or must be prefixed with the device name followed
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/keepalived/vrrp-instance-options.nix b/third_party/nixpkgs/nixos/modules/services/networking/keepalived/vrrp-instance-options.nix
index e96dde5fa8..20e5558d78 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/keepalived/vrrp-instance-options.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/keepalived/vrrp-instance-options.nix
@@ -6,7 +6,7 @@ with lib;
interface = mkOption {
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Interface for inside_network, bound by vrrp.
'';
};
@@ -14,7 +14,7 @@ with lib;
state = mkOption {
type = types.enum [ "MASTER" "BACKUP" ];
default = "BACKUP";
- description = ''
+ description = lib.mdDoc ''
Initial state. As soon as the other machine(s) come up, an election will
be held and the machine with the highest "priority" will become MASTER.
So the entry here doesn't matter a whole lot.
@@ -23,7 +23,7 @@ with lib;
virtualRouterId = mkOption {
type = types.int;
- description = ''
+ description = lib.mdDoc ''
Arbitrary unique number 0..255. Used to differentiate multiple instances
of vrrpd running on the same NIC (and hence same socket).
'';
@@ -32,7 +32,7 @@ with lib;
priority = mkOption {
type = types.int;
default = 100;
- description = ''
+ description = lib.mdDoc ''
For electing MASTER, highest priority wins. To be MASTER, make 50 more
than other machines.
'';
@@ -41,7 +41,7 @@ with lib;
noPreempt = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
VRRP will normally preempt a lower priority machine when a higher
priority machine comes online. "nopreempt" allows the lower priority
machine to maintain the master role, even when a higher priority machine
@@ -53,7 +53,7 @@ with lib;
useVmac = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Use VRRP Virtual MAC.
'';
};
@@ -61,7 +61,7 @@ with lib;
vmacInterface = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Name of the vmac interface to use. keepalived will come up with a name
if you don't specify one.
'';
@@ -70,7 +70,7 @@ with lib;
vmacXmitBase = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Send/Recv VRRP messages from base interface instead of VMAC interface.
'';
};
@@ -78,7 +78,7 @@ with lib;
unicastSrcIp = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Default IP for binding vrrpd is the primary IP on interface. If you
want to hide location of vrrpd, use this IP as src_addr for unicast
vrrp packets.
@@ -88,7 +88,7 @@ with lib;
unicastPeers = mkOption {
type = types.listOf types.str;
default = [];
- description = ''
+ description = lib.mdDoc ''
Do not send VRRP adverts over VRRP multicast group. Instead it sends
adverts to the following list of ip addresses using unicast design
fashion. It can be cool to use VRRP FSM and features in a networking
@@ -103,27 +103,27 @@ with lib;
}));
default = [];
# TODO: example
- description = "Declarative vhost config";
+ description = lib.mdDoc "Declarative vhost config";
};
trackScripts = mkOption {
type = types.listOf types.str;
default = [];
example = [ "chk_cmd1" "chk_cmd2" ];
- description = "List of script names to invoke for health tracking.";
+ description = lib.mdDoc "List of script names to invoke for health tracking.";
};
trackInterfaces = mkOption {
type = types.listOf types.str;
default = [];
example = [ "eth0" "eth1" ];
- description = "List of network interfaces to monitor for health tracking.";
+ description = lib.mdDoc "List of network interfaces to monitor for health tracking.";
};
extraConfig = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Extra lines to be added verbatim to the vrrp_instance section.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/keepalived/vrrp-script-options.nix b/third_party/nixpkgs/nixos/modules/services/networking/keepalived/vrrp-script-options.nix
index df7a89cff8..852d6b0ec2 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/keepalived/vrrp-script-options.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/keepalived/vrrp-script-options.nix
@@ -8,55 +8,55 @@ with lib.types;
script = mkOption {
type = str;
example = literalExpression ''"''${pkgs.curl} -f http://localhost:80"'';
- description = "(Path of) Script command to execute followed by args, i.e. cmd [args]...";
+ description = lib.mdDoc "(Path of) Script command to execute followed by args, i.e. cmd [args]...";
};
interval = mkOption {
type = int;
default = 1;
- description = "Seconds between script invocations.";
+ description = lib.mdDoc "Seconds between script invocations.";
};
timeout = mkOption {
type = int;
default = 5;
- description = "Seconds after which script is considered to have failed.";
+ description = lib.mdDoc "Seconds after which script is considered to have failed.";
};
weight = mkOption {
type = int;
default = 0;
- description = "Following a failure, adjust the priority by this weight.";
+ description = lib.mdDoc "Following a failure, adjust the priority by this weight.";
};
rise = mkOption {
type = int;
default = 5;
- description = "Required number of successes for OK transition.";
+ description = lib.mdDoc "Required number of successes for OK transition.";
};
fall = mkOption {
type = int;
default = 3;
- description = "Required number of failures for KO transition.";
+ description = lib.mdDoc "Required number of failures for KO transition.";
};
user = mkOption {
type = str;
default = "keepalived_script";
- description = "Name of user to run the script under.";
+ description = lib.mdDoc "Name of user to run the script under.";
};
group = mkOption {
type = nullOr str;
default = null;
- description = "Name of group to run the script under. Defaults to user group.";
+ description = lib.mdDoc "Name of group to run the script under. Defaults to user group.";
};
extraConfig = mkOption {
type = lines;
default = "";
- description = "Extra lines to be added verbatim to the vrrp_script section.";
+ description = lib.mdDoc "Extra lines to be added verbatim to the vrrp_script section.";
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/kresd.nix b/third_party/nixpkgs/nixos/modules/services/networking/kresd.nix
index 623e477ca7..55af6abd5e 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/kresd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/kresd.nix
@@ -59,9 +59,9 @@ in {
};
package = mkOption {
type = types.package;
- description = "
+ description = lib.mdDoc ''
knot-resolver package to use.
- ";
+ '';
default = pkgs.knot-resolver;
defaultText = literalExpression "pkgs.knot-resolver";
example = literalExpression "pkgs.knot-resolver.override { extraFeatures = true; }";
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/lokinet.nix b/third_party/nixpkgs/nixos/modules/services/networking/lokinet.nix
index 6dc33faa82..59622d173a 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/lokinet.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/lokinet.nix
@@ -95,7 +95,7 @@ in with lib; {
network.exit-node = [ "example.loki" "example2.loki" ];
}
'';
- description = ''
+ description = lib.mdDoc ''
Configuration for Lokinet.
Currently, the best way to view the available settings is by
generating a config file using `lokinet -g`.
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/monero.nix b/third_party/nixpkgs/nixos/modules/services/networking/monero.nix
index 032f6df4e7..bac705843e 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/monero.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/monero.nix
@@ -181,7 +181,7 @@ in
exclusiveNodes = mkOption {
type = types.listOf types.str;
default = [ ];
- description = ''
+ description = lib.mdDoc ''
List of peer IP addresses to connect to *only*.
If given the other peer options will be ignored.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/murmur.nix b/third_party/nixpkgs/nixos/modules/services/networking/murmur.nix
index 3bff9faa6a..73787f433b 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/murmur.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/murmur.nix
@@ -219,7 +219,7 @@ in
registerHostname = mkOption {
type = types.str;
default = "";
- description = ''
+ description = lib.mdDoc ''
DNS hostname where your server can be reached. This is only
needed if you want your server to be accessed by its
hostname and not IP - but the name *must* resolve on the
@@ -262,9 +262,7 @@ in
default = null;
example = "/var/lib/murmur/murmurd.env";
description = ''
- Environment file as defined in
- systemd.exec5
- .
+ Environment file as defined in systemd.exec5.
Secrets may be passed to the service without adding them to the world-readable
Nix store, by specifying placeholder variables as the option value in Nix and
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/mxisd.nix b/third_party/nixpkgs/nixos/modules/services/networking/mxisd.nix
index 9ddc2094b6..571326c5ac 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/mxisd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/mxisd.nix
@@ -49,9 +49,9 @@ in {
environmentFile = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Path to an environment-file which may contain secrets to be
- substituted via envsubst.
+ substituted via `envsubst`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/nar-serve.nix b/third_party/nixpkgs/nixos/modules/services/networking/nar-serve.nix
index 09f019d41b..a725f4453c 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/nar-serve.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/nar-serve.nix
@@ -23,7 +23,7 @@ in
cacheURL = mkOption {
type = types.str;
default = "https://cache.nixos.org/";
- description = ''
+ description = lib.mdDoc ''
Binary cache URL to connect to.
The URL format is compatible with the nix remote url style, such as:
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/nbd.nix b/third_party/nixpkgs/nixos/modules/services/networking/nbd.nix
index 3a813d1025..76ca11dfea 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/nbd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/nbd.nix
@@ -56,10 +56,9 @@ in
default = {
allowlist = false;
};
- description = ''
+ description = lib.mdDoc ''
Extra options for the server. See
- nbd-server
- 5.
+ {manpage}`nbd-server(5)`.
'';
};
@@ -88,10 +87,9 @@ in
flush = true;
fua = true;
};
- description = ''
+ description = lib.mdDoc ''
Extra options for this export. See
- nbd-server
- 5.
+ {manpage}`nbd-server(5)`.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/ncdns.nix b/third_party/nixpkgs/nixos/modules/services/networking/ncdns.nix
index 958231963c..8af1b532cf 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/ncdns.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/ncdns.nix
@@ -126,7 +126,7 @@ in
description = ''
Path to the file containing the KSK public key.
The key can be generated using the dnssec-keygen
- command, provided by the package bind as follows:
+ command, provided by the package bind as follows:
$ dnssec-keygen -a RSASHA256 -3 -b 2048 -f KSK bit
@@ -147,7 +147,7 @@ in
description = ''
Path to the file containing the ZSK public key.
The key can be generated using the dnssec-keygen
- command, provided by the package bind as follows:
+ command, provided by the package bind as follows:
$ dnssec-keygen -a RSASHA256 -3 -b 2048 bit
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/networkmanager.nix b/third_party/nixpkgs/nixos/modules/services/networking/networkmanager.nix
index e77fa97d24..d5d562e7ba 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/networkmanager.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/networkmanager.nix
@@ -173,17 +173,14 @@ in {
str
]));
default = {};
- description = ''
+ description = lib.mdDoc ''
Configuration for the [connection] section of NetworkManager.conf.
Refer to
-
+ [
https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html#id-1.2.3.11
-
+ ](https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html)
or
-
- NetworkManager.conf
- 5
-
+ {manpage}`NetworkManager.conf(5)`
for more information.
'';
};
@@ -191,17 +188,14 @@ in {
extraConfig = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Configuration appended to the generated NetworkManager.conf.
Refer to
-
+ [
https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html
-
+ ](https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html)
or
-
- NetworkManager.conf
- 5
-
+ {manpage}`NetworkManager.conf(5)`
for more information.
'';
};
@@ -209,18 +203,15 @@ in {
unmanaged = mkOption {
type = types.listOf types.str;
default = [];
- description = ''
+ description = lib.mdDoc ''
List of interfaces that will not be managed by NetworkManager.
Interface name can be specified here, but if you need more fidelity,
refer to
-
+ [
https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html#device-spec
-
+ ](https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html#device-spec)
or the "Device List Format" Appendix of
-
- NetworkManager.conf
- 5
- .
+ {manpage}`NetworkManager.conf(5)`.
'';
};
@@ -327,18 +318,15 @@ in {
dns = mkOption {
type = types.enum [ "default" "dnsmasq" "unbound" "systemd-resolved" "none" ];
default = "default";
- description = ''
- Set the DNS (resolv.conf) processing mode.
+ description = lib.mdDoc ''
+ Set the DNS (`resolv.conf`) processing mode.
A description of these modes can be found in the main section of
-
+ [
https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html
-
+ ](https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html)
or in
-
- NetworkManager.conf
- 5
- .
+ {manpage}`NetworkManager.conf(5)`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/nghttpx/backend-submodule.nix b/third_party/nixpkgs/nixos/modules/services/networking/nghttpx/backend-submodule.nix
index eb559e926e..af99b21c9a 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/nghttpx/backend-submodule.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/nghttpx/backend-submodule.nix
@@ -13,7 +13,7 @@
host = "127.0.0.1";
port = 80;
};
- description = ''
+ description = lib.mdDoc ''
Backend server location specified as either a host:port pair
or a unix domain docket.
'';
@@ -27,7 +27,7 @@
"/somepath"
];
default = [];
- description = ''
+ description = lib.mdDoc ''
List of nghttpx backend patterns.
Please see https://nghttp2.org/documentation/nghttpx.1.html#cmdoption-nghttpx-b
@@ -42,7 +42,7 @@
tls = true;
};
default = null;
- description = ''
+ description = lib.mdDoc ''
Parameters to configure a backend.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/nghttpx/frontend-submodule.nix b/third_party/nixpkgs/nixos/modules/services/networking/nghttpx/frontend-submodule.nix
index 887ef45021..3175df20ee 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/nghttpx/frontend-submodule.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/nghttpx/frontend-submodule.nix
@@ -13,7 +13,7 @@
host = "127.0.0.1";
port = 80;
};
- description = ''
+ description = lib.mdDoc ''
Frontend server interface binding specification as either a
host:port pair or a unix domain docket.
@@ -28,7 +28,7 @@
tls = "tls";
};
default = null;
- description = ''
+ description = lib.mdDoc ''
Parameters to configure a backend.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/nghttpx/nghttpx-options.nix b/third_party/nixpkgs/nixos/modules/services/networking/nghttpx/nghttpx-options.nix
index 51f1d081b9..13c328b418 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/nghttpx/nghttpx-options.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/nghttpx/nghttpx-options.nix
@@ -4,7 +4,7 @@
frontends = lib.mkOption {
type = lib.types.listOf (lib.types.submodule (import ./frontend-submodule.nix));
- description = ''
+ description = lib.mdDoc ''
A list of frontend listener specifications.
'';
example = [
@@ -22,7 +22,7 @@
backends = lib.mkOption {
type = lib.types.listOf (lib.types.submodule (import ./backend-submodule.nix));
- description = ''
+ description = lib.mdDoc ''
A list of backend specifications.
'';
example = [
@@ -42,10 +42,10 @@
tls = lib.mkOption {
type = lib.types.nullOr (lib.types.submodule (import ./tls-submodule.nix));
default = null;
- description = ''
+ description = lib.mdDoc ''
TLS certificate and key paths. Note that this does not enable
TLS for a frontend listener, to do so, a frontend
- specification must set params.tls to true.
+ specification must set `params.tls` to true.
'';
example = {
key = "/etc/ssl/keys/server.key";
@@ -56,7 +56,7 @@
extraConfig = lib.mkOption {
type = lib.types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Extra configuration options to be appended to the generated
configuration file.
'';
@@ -65,7 +65,7 @@
single-process = lib.mkOption {
type = lib.types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Run this program in a single process mode for debugging
purpose. Without this option, nghttpx creates at least 2
processes: master and worker processes. If this option is
@@ -81,7 +81,7 @@
backlog = lib.mkOption {
type = lib.types.int;
default = 65536;
- description = ''
+ description = lib.mdDoc ''
Listen backlog size.
Please see https://nghttp2.org/documentation/nghttpx.1.html#cmdoption-nghttpx--backlog
@@ -95,7 +95,7 @@
"IPv6"
];
default = "auto";
- description = ''
+ description = lib.mdDoc ''
Specify address family of backend connections. If "auto" is
given, both IPv4 and IPv6 are considered. If "IPv4" is given,
only IPv4 address is considered. If "IPv6" is given, only IPv6
@@ -108,7 +108,7 @@
workers = lib.mkOption {
type = lib.types.int;
default = 1;
- description = ''
+ description = lib.mdDoc ''
Set the number of worker threads.
Please see https://nghttp2.org/documentation/nghttpx.1.html#cmdoption-nghttpx-n
@@ -118,7 +118,7 @@
single-thread = lib.mkOption {
type = lib.types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Run everything in one thread inside the worker process. This
feature is provided for better debugging experience, or for
the platforms which lack thread support. If threading is
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/nix-serve.nix b/third_party/nixpkgs/nixos/modules/services/networking/nix-serve.nix
index 04cbc0c0d8..5deb31a486 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/nix-serve.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/nix-serve.nix
@@ -39,9 +39,9 @@ in
The path to the file used for signing derivation data.
Generate with:
- ```
+
nix-store --generate-binary-cache-key key-name secret-key-file public-key-file
- ```
+
For more details see nix-store1.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/nixops-dns.nix b/third_party/nixpkgs/nixos/modules/services/networking/nixops-dns.nix
index 4abdb50d69..378c2ee6d0 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/nixops-dns.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/nixops-dns.nix
@@ -40,7 +40,7 @@ in
dnsmasq = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Enable dnsmasq forwarding to nixops-dns. This allows to use
nixops-dns for `services.nixops-dns.domain` resolution
while forwarding the rest of the queries to original resolvers.
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/ocserv.nix b/third_party/nixpkgs/nixos/modules/services/networking/ocserv.nix
index dc26ffeafe..efe1d240a9 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/ocserv.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/ocserv.nix
@@ -15,7 +15,7 @@ in
config = mkOption {
type = types.lines;
- description = ''
+ description = lib.mdDoc ''
Configuration content to start an OCServ server.
For a full configuration reference,please refer to the online documentation
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/redsocks.nix b/third_party/nixpkgs/nixos/modules/services/networking/redsocks.nix
index 5aa9f003ba..85ae3125de 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/redsocks.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/redsocks.nix
@@ -30,7 +30,7 @@ in
type = types.str;
default = "stderr";
description =
- ''
+ lib.mdDoc ''
Where to send logs.
Possible values are:
@@ -122,7 +122,7 @@ in
"Forwarded_ipport" ];
default = "false";
description =
- ''
+ lib.mdDoc ''
Way to disclose client IP to the proxy.
- "false": do not disclose
http-connect supports the following ways:
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/resilio.nix b/third_party/nixpkgs/nixos/modules/services/networking/resilio.nix
index 05798a2c83..d21f108024 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/resilio.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/resilio.nix
@@ -199,25 +199,25 @@ in
];
}
];
- description = ''
+ description = lib.mdDoc ''
Shared folder list. If enabled, web UI must be
- disabled. Secrets can be generated using rslsync
- --generate-secret. Note that this secret will be
+ disabled. Secrets can be generated using `rslsync --generate-secret`.
+ Note that this secret will be
put inside the Nix store, so it is realistically not very
secret.
If you would like to be able to modify the contents of this
directories, it is recommended that you make your user a
- member of the rslsync group.
+ member of the `rslsync` group.
Directories in this list should be in the
- rslsync group, and that group must have
+ `rslsync` group, and that group must have
write access to the directory. It is also recommended that
- chmod g+s is applied to the directory
+ `chmod g+s` is applied to the directory
so that any sub directories created will also belong to
- the rslsync group. Also,
- setfacl -d -m group:rslsync:rwx and
- setfacl -m group:rslsync:rwx should also
+ the `rslsync` group. Also,
+ `setfacl -d -m group:rslsync:rwx` and
+ `setfacl -m group:rslsync:rwx` should also
be applied so that the sub directories are writable by
the group.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/rpcbind.nix b/third_party/nixpkgs/nixos/modules/services/networking/rpcbind.nix
index 0a5df69870..aa04214deb 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/rpcbind.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/rpcbind.nix
@@ -13,7 +13,7 @@ with lib;
enable = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable `rpcbind', an ONC RPC directory service
notably used by NFS and NIS, and which can be queried
using the rpcinfo(1) command. `rpcbind` is a replacement for
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/soju.nix b/third_party/nixpkgs/nixos/modules/services/networking/soju.nix
index 32ace43660..dddacea200 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/soju.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/soju.nix
@@ -32,11 +32,10 @@ in
listen = mkOption {
type = types.listOf types.str;
default = [ ":6697" ];
- description = ''
+ description = lib.mdDoc ''
Where soju should listen for incoming connections. See the
- listen directive in
- soju
- 1.
+ `listen` directive in
+ {manpage}`soju(1)`.
'';
};
@@ -70,11 +69,10 @@ in
httpOrigins = mkOption {
type = types.listOf types.str;
default = [];
- description = ''
+ description = lib.mdDoc ''
List of allowed HTTP origins for WebSocket listeners. The parameters are
interpreted as shell patterns, see
- glob
- 7.
+ {manpage}`glob(7)`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/ssh/sshd.nix b/third_party/nixpkgs/nixos/modules/services/networking/ssh/sshd.nix
index 00ec15c54b..af8200c7e2 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/ssh/sshd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/ssh/sshd.nix
@@ -156,11 +156,10 @@ in
gatewayPorts = mkOption {
type = types.str;
default = "no";
- description = ''
+ description = lib.mdDoc ''
Specifies whether remote hosts are allowed to connect to
ports forwarded for the client. See
- sshd_config
- 5.
+ {manpage}`sshd_config(5)`.
'';
};
@@ -237,11 +236,10 @@ in
[ { type = "rsa"; bits = 4096; path = "/etc/ssh/ssh_host_rsa_key"; rounds = 100; openSSHFormat = true; }
{ type = "ed25519"; path = "/etc/ssh/ssh_host_ed25519_key"; rounds = 100; comment = "key comment"; }
];
- description = ''
+ description = lib.mdDoc ''
NixOS can automatically generate SSH host keys. This option
specifies the path, type and size of each key. See
- ssh-keygen
- 1 for supported types
+ {manpage}`ssh-keygen(1)` for supported types
and sizes.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/module.nix b/third_party/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/module.nix
index 9287943fcd..a92834f0ec 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/module.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/strongswan-swanctl/module.nix
@@ -14,7 +14,7 @@ in {
type = types.package;
default = pkgs.strongswan;
defaultText = literalExpression "pkgs.strongswan";
- description = ''
+ description = lib.mdDoc ''
The strongswan derivation to use.
'';
};
@@ -22,8 +22,8 @@ in {
strongswan.extraConfig = mkOption {
type = types.str;
default = "";
- description = ''
- Contents of the strongswan.conf file.
+ description = lib.mdDoc ''
+ Contents of the `strongswan.conf` file.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/stunnel.nix b/third_party/nixpkgs/nixos/modules/services/networking/stunnel.nix
index d7311a24bb..3bd0367a0b 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/stunnel.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/stunnel.nix
@@ -77,11 +77,10 @@ in
servers = mkOption {
- description = ''
+ description = lib.mdDoc ''
Define the server configuations.
- See "SERVICE-LEVEL OPTIONS" in stunnel
- 8.
+ See "SERVICE-LEVEL OPTIONS" in {manpage}`stunnel(8)`.
'';
type = with types; attrsOf (attrsOf (nullOr (oneOf [bool int str])));
example = {
@@ -95,13 +94,12 @@ in
};
clients = mkOption {
- description = ''
+ description = lib.mdDoc ''
Define the client configurations.
By default, verifyChain and OCSPaia are enabled and a CAFile is provided from pkgs.cacert.
- See "SERVICE-LEVEL OPTIONS" in stunnel
- 8.
+ See "SERVICE-LEVEL OPTIONS" in {manpage}`stunnel(8)`.
'';
type = with types; attrsOf (attrsOf (nullOr (oneOf [bool int str])));
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/unbound.nix b/third_party/nixpkgs/nixos/modules/services/networking/unbound.nix
index 7460ba3df7..5bbb0f79d5 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/unbound.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/unbound.nix
@@ -150,10 +150,9 @@ in {
remote-control.control-enable = true;
};
'';
- description = ''
+ description = lib.mdDoc ''
Declarative Unbound configuration
- See the unbound.conf
- 5 manpage for a list of
+ See the {manpage}`unbound.conf(5)` manpage for a list of
available options.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/v2ray.nix b/third_party/nixpkgs/nixos/modules/services/networking/v2ray.nix
index f063ddfed0..1ff1feed8f 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/v2ray.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/v2ray.nix
@@ -51,12 +51,12 @@ with lib;
protocol = "freedom";
}];
};
- description = ''
+ description = lib.mdDoc ''
The configuration object.
Either `configFile` or `config` must be specified.
- See .
+ See .
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix b/third_party/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix
index ac5f597b47..72b665f411 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix
@@ -189,10 +189,10 @@ in {
allowAuxiliaryImperativeNetworks = mkEnableOption "support for imperative & declarative networks" // {
description = ''
Whether to allow configuring networks "imperatively" (e.g. via
- wpa_supplicant_gui) and declaratively via
+ wpa_supplicant_gui) and declaratively via
.
- Please note that this adds a custom patch to wpa_supplicant.
+ Please note that this adds a custom patch to wpa_supplicant.
'';
};
@@ -226,9 +226,7 @@ in {
File consisting of lines of the form varname=value
to define variables for the wireless configuration.
- See section "EnvironmentFile=" in
- systemd.exec5
- for a syntax reference.
+ See section "EnvironmentFile=" in systemd.exec5 for a syntax reference.
Secrets (PSKs, passwords, etc.) can be provided without adding them to
the world-readable Nix store by defining them in the environment file and
@@ -348,10 +346,7 @@ in {
description = ''
Use this option to configure advanced authentication methods like EAP.
See
-
- wpa_supplicant.conf
- 5
-
+ wpa_supplicant.conf5
for example configurations.
@@ -401,13 +396,10 @@ in {
example = ''
bssid_blacklist=02:11:22:33:44:55 02:22:aa:44:55:66
'';
- description = ''
+ description = lib.mdDoc ''
Extra configuration lines appended to the network block.
See
-
- wpa_supplicant.conf
- 5
-
+ {manpage}`wpa_supplicant.conf(5)`
for available options.
'';
};
@@ -478,13 +470,10 @@ in {
example = ''
p2p_disabled=1
'';
- description = ''
+ description = lib.mdDoc ''
Extra lines appended to the configuration file.
See
-
- wpa_supplicant.conf
- 5
-
+ {manpage}`wpa_supplicant.conf(5)`
for available options.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/x2goserver.nix b/third_party/nixpkgs/nixos/modules/services/networking/x2goserver.nix
index 3c2424b6f4..a1e096c19a 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/x2goserver.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/x2goserver.nix
@@ -50,7 +50,7 @@ in {
settings = mkOption {
type = types.attrsOf types.attrs;
default = {};
- description = ''
+ description = lib.mdDoc ''
x2goserver.conf ini configuration as nix attributes. See
`x2goserver.conf(5)` for details
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/yggdrasil.nix b/third_party/nixpkgs/nixos/modules/services/networking/yggdrasil.nix
index 81ed6d1dd5..e7513c5627 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/yggdrasil.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/yggdrasil.nix
@@ -31,29 +31,28 @@ in {
"tcp://0.0.0.0:xxxxx"
];
};
- description = ''
+ description = lib.mdDoc ''
Configuration for yggdrasil, as a Nix attribute set.
Warning: this is stored in the WORLD-READABLE Nix store!
Therefore, it is not appropriate for private keys. If you
- wish to specify the keys, use .
+ wish to specify the keys, use {option}`configFile`.
- If the is enabled then the
+ If the {option}`persistentKeys` is enabled then the
keys that are generated during activation will override
- those in or
- .
+ those in {option}`config` or
+ {option}`configFile`.
If no keys are specified then ephemeral keys are generated
and the Yggdrasil interface will have a random IPv6 address
each time the service is started, this is the default.
- If both and
+ If both {option}`configFile` and {option}`config`
are supplied, they will be combined, with values from
- taking precedence.
+ {option}`configFile` taking precedence.
- You can use the command nix-shell -p yggdrasil --run
- "yggdrasil -genconf" to generate default
- configuration values with documentation.
+ You can use the command `nix-shell -p yggdrasil --run "yggdrasil -genconf"`
+ to generate default configuration values with documentation.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/znc/default.nix b/third_party/nixpkgs/nixos/modules/services/networking/znc/default.nix
index 42a332d6bf..7ca28700da 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/znc/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/znc/default.nix
@@ -87,7 +87,7 @@ in
default = "znc";
example = "john";
type = types.str;
- description = ''
+ description = lib.mdDoc ''
The name of an existing user account to use to own the ZNC server
process. If not specified, a default user will be created.
'';
@@ -97,7 +97,7 @@ in
default = defaultUser;
example = "users";
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Group to own the ZNC process.
'';
};
@@ -106,7 +106,7 @@ in
default = "/var/lib/znc";
example = "/home/john/.znc";
type = types.path;
- description = ''
+ description = lib.mdDoc ''
The state directory for ZNC. The config and the modules will be linked
to from this directory as well.
'';
@@ -115,10 +115,10 @@ in
openFirewall = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to open ports in the firewall for ZNC. Does work with
ports for listeners specified in
- .
+ {option}`services.znc.config.Listener`.
'';
};
@@ -177,12 +177,12 @@ in
configFile = mkOption {
type = types.path;
example = literalExpression "~/.znc/configs/znc.conf";
- description = ''
+ description = lib.mdDoc ''
Configuration file for ZNC. It is recommended to use the
- option instead.
+ {option}`config` option instead.
Setting this option will override any auto-generated config file
- through the or
+ through the {option}`confOptions` or {option}`config`
options.
'';
};
@@ -191,7 +191,7 @@ in
type = types.listOf types.package;
default = [ ];
example = literalExpression "[ pkgs.zncModules.fish pkgs.zncModules.push ]";
- description = ''
+ description = lib.mdDoc ''
A list of global znc module packages to add to znc.
'';
};
@@ -199,9 +199,9 @@ in
mutable = mkOption {
default = true; # TODO: Default to true when config is set, make sure to not delete the old config if present
type = types.bool;
- description = ''
+ description = lib.mdDoc ''
Indicates whether to allow the contents of the
- dataDir directory to be changed by the user at
+ `dataDir` directory to be changed by the user at
run-time.
If enabled, modifications to the ZNC configuration after its initial
@@ -217,7 +217,7 @@ in
default = [ ];
example = [ "--debug" ];
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
Extra arguments to use for executing znc.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/znc/options.nix b/third_party/nixpkgs/nixos/modules/services/networking/znc/options.nix
index 021fea9819..9d472abdf4 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/znc/options.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/znc/options.nix
@@ -118,7 +118,7 @@ in
type = types.listOf types.str;
default = [ "webadmin" "adminlog" ];
example = [ "partyline" "webadmin" "adminlog" "log" ];
- description = ''
+ description = lib.mdDoc ''
A list of modules to include in the `znc.conf` file.
'';
};
@@ -127,7 +127,7 @@ in
type = types.listOf types.str;
default = [ "chansaver" "controlpanel" ];
example = [ "chansaver" "controlpanel" "fish" "push" ];
- description = ''
+ description = lib.mdDoc ''
A list of user modules to include in the `znc.conf` file.
'';
};
@@ -178,7 +178,7 @@ in
'';
type = types.str;
description = ''
- Generate with `nix-shell -p znc --command "znc --makepass"`.
+ Generate with nix-shell -p znc --command "znc --makepass".
This is the password used to log in to the ZNC web admin interface.
You can also set this through
@@ -216,7 +216,7 @@ in
extraZncConf = mkOption {
default = "";
type = types.lines;
- description = ''
+ description = lib.mdDoc ''
Extra config to `znc.conf` file.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/search/meilisearch.nix b/third_party/nixpkgs/nixos/modules/services/search/meilisearch.nix
index 9a03fc1f71..496200b808 100644
--- a/third_party/nixpkgs/nixos/modules/services/search/meilisearch.nix
+++ b/third_party/nixpkgs/nixos/modules/services/search/meilisearch.nix
@@ -68,7 +68,7 @@ in
};
logLevel = mkOption {
- description = ''
+ description = lib.mdDoc ''
Defines how much detail should be present in MeiliSearch's logs.
MeiliSearch currently supports four log levels, listed in order of increasing verbosity:
- 'ERROR': only log unexpected events indicating MeiliSearch is not functioning as expected
diff --git a/third_party/nixpkgs/nixos/modules/services/security/fail2ban.nix b/third_party/nixpkgs/nixos/modules/services/security/fail2ban.nix
index 24c84151bc..29aa49c8aa 100644
--- a/third_party/nixpkgs/nixos/modules/services/security/fail2ban.nix
+++ b/third_party/nixpkgs/nixos/modules/services/security/fail2ban.nix
@@ -73,7 +73,7 @@ in
default = [];
type = types.listOf types.package;
example = lib.literalExpression "[ pkgs.ipset ]";
- description = ''
+ description = lib.mdDoc ''
Extra packages to be made available to the fail2ban service. The example contains
the packages needed by the `iptables-ipset-proto6` action.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/security/haka.nix b/third_party/nixpkgs/nixos/modules/services/security/haka.nix
index 10b7cef54d..893ab89d2a 100644
--- a/third_party/nixpkgs/nixos/modules/services/security/haka.nix
+++ b/third_party/nixpkgs/nixos/modules/services/security/haka.nix
@@ -61,9 +61,9 @@ in
default = pkgs.haka;
defaultText = literalExpression "pkgs.haka";
type = types.package;
- description = "
+ description = lib.mdDoc ''
Which Haka derivation to use.
- ";
+ '';
};
configFile = mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/services/security/infnoise.nix b/third_party/nixpkgs/nixos/modules/services/security/infnoise.nix
index 4fb8adaf33..883185fab1 100644
--- a/third_party/nixpkgs/nixos/modules/services/security/infnoise.nix
+++ b/third_party/nixpkgs/nixos/modules/services/security/infnoise.nix
@@ -10,7 +10,7 @@ in {
enable = mkEnableOption "the Infinite Noise TRNG driver";
fillDevRandom = mkOption {
- description = ''
+ description = lib.mdDoc ''
Whether to run the infnoise driver as a daemon to refill /dev/random.
If disabled, you can use the `infnoise` command-line tool to
diff --git a/third_party/nixpkgs/nixos/modules/services/security/oauth2_proxy.nix b/third_party/nixpkgs/nixos/modules/services/security/oauth2_proxy.nix
index 8b2c7fa214..e0b22d3f38 100644
--- a/third_party/nixpkgs/nixos/modules/services/security/oauth2_proxy.nix
+++ b/third_party/nixpkgs/nixos/modules/services/security/oauth2_proxy.nix
@@ -160,9 +160,9 @@ in
domains = mkOption {
type = types.listOf types.str;
default = [];
- description = ''
+ description = lib.mdDoc ''
Authenticate emails with the specified domains. Use
- * to authenticate any email.
+ `*` to authenticate any email.
'';
};
@@ -347,7 +347,7 @@ in
domain = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Optional cookie domains to force cookies to (ie: `.yourcompany.com`).
The longest domain matching the request's host will be used (or the shortest
cookie domain if there is no match).
diff --git a/third_party/nixpkgs/nixos/modules/services/security/privacyidea.nix b/third_party/nixpkgs/nixos/modules/services/security/privacyidea.nix
index 29c499e33a..ce98b0393e 100644
--- a/third_party/nixpkgs/nixos/modules/services/security/privacyidea.nix
+++ b/third_party/nixpkgs/nixos/modules/services/security/privacyidea.nix
@@ -75,7 +75,7 @@ in
description = ''
File to load as environment file. Environment variables
from this file will be interpolated into the config file
- using envsubst which is helpful for specifying
+ using envsubst which is helpful for specifying
secrets:
{ = "$SECRET"; }
@@ -204,11 +204,11 @@ in
settings = mkOption {
type = with types; attrsOf (attrsOf (oneOf [ str bool int (listOf str) ]));
default = {};
- description = ''
- Attribute-set containing the settings for privacyidea-ldap-proxy.
+ description = lib.mdDoc ''
+ Attribute-set containing the settings for `privacyidea-ldap-proxy`.
It's possible to pass secrets using env-vars as substitutes and
- use the option
- to inject them via envsubst.
+ use the option [](#opt-services.privacyidea.ldap-proxy.environmentFile)
+ to inject them via `envsubst`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/security/usbguard.nix b/third_party/nixpkgs/nixos/modules/services/security/usbguard.nix
index eb3c335d97..2424759390 100644
--- a/third_party/nixpkgs/nixos/modules/services/security/usbguard.nix
+++ b/third_party/nixpkgs/nixos/modules/services/security/usbguard.nix
@@ -57,21 +57,19 @@ in
example = ''
allow with-interface equals { 08:*:* }
'';
- description = ''
+ description = lib.mdDoc ''
The USBGuard daemon will load this as the policy rule set.
As these rules are NixOS managed they are immutable and can't
be changed by the IPC interface.
If you do not set this option, the USBGuard daemon will load
- it's policy rule set from ${defaultRuleFile}.
+ it's policy rule set from `${defaultRuleFile}`.
This file can be changed manually or via the IPC interface.
- Running usbguard generate-policy as root will
+ Running `usbguard generate-policy` as root will
generate a config for your currently plugged in devices.
- For more details see
- usbguard-rules.conf
- 5.
+ For more details see {manpage}`usbguard-rules.conf(5)`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/security/vault.nix b/third_party/nixpkgs/nixos/modules/services/security/vault.nix
index ef98296302..c471bf0186 100644
--- a/third_party/nixpkgs/nixos/modules/services/security/vault.nix
+++ b/third_party/nixpkgs/nixos/modules/services/security/vault.nix
@@ -104,9 +104,9 @@ in
storagePath = mkOption {
type = types.nullOr types.path;
- default = if cfg.storageBackend == "file" then "/var/lib/vault" else null;
+ default = if cfg.storageBackend == "file" || cfg.storageBackend == "raft" then "/var/lib/vault" else null;
defaultText = literalExpression ''
- if config.${opt.storageBackend} == "file"
+ if config.${opt.storageBackend} == "file" || cfg.storageBackend == "raft"
then "/var/lib/vault"
else null
'';
@@ -172,11 +172,16 @@ in
config = mkIf cfg.enable {
assertions = [
- { assertion = cfg.storageBackend == "inmem" -> (cfg.storagePath == null && cfg.storageConfig == null);
+ {
+ assertion = cfg.storageBackend == "inmem" -> (cfg.storagePath == null && cfg.storageConfig == null);
message = ''The "inmem" storage expects no services.vault.storagePath nor services.vault.storageConfig'';
}
- { assertion = (cfg.storageBackend == "file" -> (cfg.storagePath != null && cfg.storageConfig == null)) && (cfg.storagePath != null -> cfg.storageBackend == "file");
- message = ''You must set services.vault.storagePath only when using the "file" backend'';
+ {
+ assertion = (
+ (cfg.storageBackend == "file" -> (cfg.storagePath != null && cfg.storageConfig == null)) &&
+ (cfg.storagePath != null -> (cfg.storageBackend == "file" || cfg.storageBackend == "raft"))
+ );
+ message = ''You must set services.vault.storagePath only when using the "file" or "raft" backend'';
}
];
diff --git a/third_party/nixpkgs/nixos/modules/services/security/vaultwarden/default.nix b/third_party/nixpkgs/nixos/modules/services/security/vaultwarden/default.nix
index 1433438ba0..3aa38ed819 100644
--- a/third_party/nixpkgs/nixos/modules/services/security/vaultwarden/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/security/vaultwarden/default.nix
@@ -126,9 +126,7 @@ in {
default = null;
example = "/var/lib/vaultwarden.env";
description = ''
- Additional environment file as defined in
- systemd.exec5
- .
+ Additional environment file as defined in systemd.exec5.
Secrets like ADMIN_TOKEN and SMTP_PASSWORD
may be passed to the service without adding them to the world-readable Nix store.
diff --git a/third_party/nixpkgs/nixos/modules/services/system/cloud-init.nix b/third_party/nixpkgs/nixos/modules/services/system/cloud-init.nix
index 111cfa83c2..95ca5fb48d 100644
--- a/third_party/nixpkgs/nixos/modules/services/system/cloud-init.nix
+++ b/third_party/nixpkgs/nixos/modules/services/system/cloud-init.nix
@@ -39,7 +39,7 @@ in
btrfs.enable = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Allow the cloud-init service to operate `btrfs` filesystem.
'';
};
@@ -47,7 +47,7 @@ in
ext4.enable = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Allow the cloud-init service to operate `ext4` filesystem.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/system/kerberos/default.nix b/third_party/nixpkgs/nixos/modules/services/system/kerberos/default.nix
index 9a1e673990..3ace9de5ea 100644
--- a/third_party/nixpkgs/nixos/modules/services/system/kerberos/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/system/kerberos/default.nix
@@ -9,19 +9,19 @@ let
options = {
principal = mkOption {
type = types.str;
- description = "Which principal the rule applies to";
+ description = lib.mdDoc "Which principal the rule applies to";
};
access = mkOption {
type = types.either
(types.listOf (types.enum ["add" "cpw" "delete" "get" "list" "modify"]))
(types.enum ["all"]);
default = "all";
- description = "The changes the principal is allowed to make.";
+ description = lib.mdDoc "The changes the principal is allowed to make.";
};
target = mkOption {
type = types.str;
default = "*";
- description = "The principals that 'access' applies to.";
+ description = lib.mdDoc "The principals that 'access' applies to.";
};
};
};
@@ -34,7 +34,7 @@ let
{ principal = "*/admin"; access = "all"; }
{ principal = "admin"; access = "all"; }
];
- description = ''
+ description = lib.mdDoc ''
The privileges granted to a user.
'';
};
@@ -55,7 +55,7 @@ in
realms = mkOption {
type = types.attrsOf (types.submodule realm);
- description = ''
+ description = lib.mdDoc ''
The realm(s) to serve keys for.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/system/localtime.nix b/third_party/nixpkgs/nixos/modules/services/system/localtime.nix
deleted file mode 100644
index c80fe36645..0000000000
--- a/third_party/nixpkgs/nixos/modules/services/system/localtime.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
- cfg = config.services.localtimed;
-in {
- imports = [ (lib.mkRenamedOptionModule [ "services" "localtime" ] [ "services" "localtimed" ]) ];
-
- options = {
- services.localtimed = {
- enable = mkOption {
- type = types.bool;
- default = false;
- description = lib.mdDoc ''
- Enable `localtimed`, a simple daemon for keeping the
- system timezone up-to-date based on the current location. It uses
- geoclue2 to determine the current location.
- '';
- };
- };
- };
-
- config = mkIf cfg.enable {
- services.geoclue2.appConfig.localtimed = {
- isAllowed = true;
- isSystem = true;
- };
-
- # Install the polkit rules.
- environment.systemPackages = [ pkgs.localtime ];
- # Install the systemd unit.
- systemd.packages = [ pkgs.localtime ];
-
- systemd.services.localtime.wantedBy = [ "multi-user.target" ];
- };
-}
diff --git a/third_party/nixpkgs/nixos/modules/services/system/localtimed.nix b/third_party/nixpkgs/nixos/modules/services/system/localtimed.nix
new file mode 100644
index 0000000000..345bdbd8dd
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/system/localtimed.nix
@@ -0,0 +1,66 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.localtimed;
+in {
+ imports = [ (lib.mkRenamedOptionModule [ "services" "localtime" ] [ "services" "localtimed" ]) ];
+
+ options = {
+ services.localtimed = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = lib.mdDoc ''
+ Enable `localtimed`, a simple daemon for keeping the
+ system timezone up-to-date based on the current location. It uses
+ geoclue2 to determine the current location.
+ '';
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ services.geoclue2.appConfig.localtimed = {
+ isAllowed = true;
+ isSystem = true;
+ users = [ (toString config.ids.uids.localtimed) ];
+ };
+
+ # Install the polkit rules.
+ environment.systemPackages = [ pkgs.localtime ];
+
+ systemd.services.localtimed = {
+ wantedBy = [ "multi-user.target" ];
+ partOf = [ "localtimed-geoclue-agent.service" ];
+ after = [ "localtimed-geoclue-agent.service" ];
+ serviceConfig = {
+ ExecStart = "${pkgs.localtime}/bin/localtimed";
+ Restart = "on-failure";
+ Type = "exec";
+ User = "localtimed";
+ };
+ };
+
+ systemd.services.localtimed-geoclue-agent = {
+ wantedBy = [ "multi-user.target" ];
+ partOf = [ "geoclue.service" ];
+ after = [ "geoclue.service" ];
+ serviceConfig = {
+ ExecStart = "${pkgs.geoclue2-with-demo-agent}/libexec/geoclue-2.0/demos/agent";
+ Restart = "on-failure";
+ Type = "exec";
+ User = "localtimed";
+ };
+ };
+
+ users = {
+ users.localtimed = {
+ uid = config.ids.uids.localtimed;
+ group = "localtimed";
+ };
+ groups.localtimed.gid = config.ids.gids.localtimed;
+ };
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/system/nscd.nix b/third_party/nixpkgs/nixos/modules/services/system/nscd.nix
index 002c409278..f3dfd2af3d 100644
--- a/third_party/nixpkgs/nixos/modules/services/system/nscd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/system/nscd.nix
@@ -20,17 +20,33 @@ in
enable = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether to enable the Name Service Cache Daemon.
Disabling this is strongly discouraged, as this effectively disables NSS Lookups
from all non-glibc NSS modules, including the ones provided by systemd.
'';
};
+ user = mkOption {
+ type = types.str;
+ default = "nscd";
+ description = ''
+ User account under which nscd runs.
+ '';
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = "nscd";
+ description = ''
+ User group under which nscd runs.
+ '';
+ };
+
config = mkOption {
type = types.lines;
default = builtins.readFile ./nscd.conf;
- description = "Configuration to use for Name Service Cache Daemon.";
+ description = lib.mdDoc "Configuration to use for Name Service Cache Daemon.";
};
package = mkOption {
@@ -43,7 +59,7 @@ in
then pkgs.stdenv.cc.libc.bin
else pkgs.glibc.bin;
'';
- description = "package containing the nscd binary to be used by the service";
+ description = lib.mdDoc "package containing the nscd binary to be used by the service";
};
};
@@ -56,12 +72,20 @@ in
config = mkIf cfg.enable {
environment.etc."nscd.conf".text = cfg.config;
+ users.users.${cfg.user} = {
+ isSystemUser = true;
+ group = cfg.group;
+ };
+
+ users.groups.${cfg.group} = {};
+
systemd.services.nscd =
{ description = "Name Service Cache Daemon";
before = [ "nss-lookup.target" "nss-user-lookup.target" ];
wants = [ "nss-lookup.target" "nss-user-lookup.target" ];
wantedBy = [ "multi-user.target" ];
+ requiredBy = [ "nss-lookup.target" "nss-user-lookup.target" ];
environment = { LD_LIBRARY_PATH = nssModulesPath; };
@@ -69,18 +93,29 @@ in
config.environment.etc.hosts.source
config.environment.etc."nsswitch.conf".source
config.environment.etc."nscd.conf".source
+ ] ++ optionals config.users.mysql.enable [
+ config.environment.etc."libnss-mysql.cfg".source
+ config.environment.etc."libnss-mysql-root.cfg".source
];
- # We use DynamicUser because in default configurations nscd doesn't
- # create any files that need to survive restarts. However, in some
- # configurations, nscd needs to be started as root; it will drop
- # privileges after all the NSS modules have read their configuration
- # files. So prefix the ExecStart command with "!" to prevent systemd
- # from dropping privileges early. See ExecStart in systemd.service(5).
+ # In some configurations, nscd needs to be started as root; it will
+ # drop privileges after all the NSS modules have read their
+ # configuration files. So prefix the ExecStart command with "!" to
+ # prevent systemd from dropping privileges early. See ExecStart in
+ # systemd.service(5). We use a static user, because some NSS modules
+ # sill want to read their configuration files after the privilege drop
+ # and so users can set the owner of those files to the nscd user.
serviceConfig =
{ ExecStart = "!@${cfg.package}/bin/nscd nscd";
Type = "forking";
- DynamicUser = true;
+ User = cfg.user;
+ Group = cfg.group;
+ RemoveIPC = true;
+ PrivateTmp = true;
+ NoNewPrivileges = true;
+ RestrictSUIDSGID = true;
+ ProtectSystem = "strict";
+ ProtectHome = "read-only";
RuntimeDirectory = "nscd";
PIDFile = "/run/nscd/nscd.pid";
Restart = "always";
diff --git a/third_party/nixpkgs/nixos/modules/services/system/self-deploy.nix b/third_party/nixpkgs/nixos/modules/services/system/self-deploy.nix
index ff56206573..ecba2e43dc 100644
--- a/third_party/nixpkgs/nixos/modules/services/system/self-deploy.nix
+++ b/third_party/nixpkgs/nixos/modules/services/system/self-deploy.nix
@@ -41,7 +41,7 @@ in
default = null;
- description = ''
+ description = lib.mdDoc ''
Attribute of `nixFile` that builds the current system.
'';
};
@@ -51,7 +51,7 @@ in
default = { };
- description = ''
+ description = lib.mdDoc ''
Arguments to `nix-build` passed as `--argstr` or `--arg` depending on
the type.
'';
@@ -62,7 +62,7 @@ in
default = "switch";
- description = ''
+ description = lib.mdDoc ''
The `switch-to-configuration` subcommand used.
'';
};
@@ -70,7 +70,7 @@ in
repository = lib.mkOption {
type = with lib.types; oneOf [ path str ];
- description = ''
+ description = lib.mdDoc ''
The repository to fetch from. Must be properly formatted for git.
If this value is set to a path (must begin with `/`) then it's
@@ -99,7 +99,7 @@ in
default = "master";
- description = ''
+ description = lib.mdDoc ''
Branch to track
Technically speaking any ref can be specified here, as this is
@@ -113,7 +113,7 @@ in
default = "hourly";
- description = ''
+ description = lib.mdDoc ''
The schedule on which to run the `self-deploy` service. Format
specified by `systemd.time 7`.
diff --git a/third_party/nixpkgs/nixos/modules/services/torrent/magnetico.nix b/third_party/nixpkgs/nixos/modules/services/torrent/magnetico.nix
index 11f1c71e3f..ffc8577375 100644
--- a/third_party/nixpkgs/nixos/modules/services/torrent/magnetico.nix
+++ b/third_party/nixpkgs/nixos/modules/services/torrent/magnetico.nix
@@ -124,9 +124,9 @@ in {
Usernames must start with a lowercase ([a-z]) ASCII character, might
contain non-consecutive underscores except at the end, and consists of
small-case a-z characters and digits 0-9. The
- htpasswd tool from the apacheHttpd
- package may be used to generate the hash: htpasswd
- -bnBC 12 username password
+ htpasswd tool from the apacheHttpd
+ package may be used to generate the hash:
+ htpasswd -bnBC 12 username password
@@ -150,8 +150,8 @@ in {
start with a lowecase ([a-z]) ASCII character, might contain
non-consecutive underscores except at the end, and consists of
small-case a-z characters and digits 0-9.
- The htpasswd tool from the apacheHttpd
- package may be used to generate the hash:
+ The htpasswd tool from the apacheHttpd
+ package may be used to generate the hash:
htpasswd -bnBC 12 username password
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/ttys/getty.nix b/third_party/nixpkgs/nixos/modules/services/ttys/getty.nix
index e8efe72577..aec65903ce 100644
--- a/third_party/nixpkgs/nixos/modules/services/ttys/getty.nix
+++ b/third_party/nixpkgs/nixos/modules/services/ttys/getty.nix
@@ -52,15 +52,13 @@ in
loginOptions = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Template for arguments to be passed to
- login
- 1.
+ {manpage}`login(1)`.
- See agetty
- 1 for details,
+ See {manpage}`agetty(1)` for details,
including security considerations. If unspecified, agetty
- will not be invoked with a
+ will not be invoked with a {option}`--login-options`
option.
'';
example = "-h darkstar -- \\u";
diff --git a/third_party/nixpkgs/nixos/modules/services/video/mirakurun.nix b/third_party/nixpkgs/nixos/modules/services/video/mirakurun.nix
index 90119361af..6891b84ff4 100644
--- a/third_party/nixpkgs/nixos/modules/services/video/mirakurun.nix
+++ b/third_party/nixpkgs/nixos/modules/services/video/mirakurun.nix
@@ -189,6 +189,7 @@ in
CHANNELS_CONFIG_PATH = "/etc/mirakurun/channels.yml";
SERVICES_DB_PATH = "/var/lib/mirakurun/services.json";
PROGRAMS_DB_PATH = "/var/lib/mirakurun/programs.json";
+ LOGO_DATA_DIR_PATH = "/var/lib/mirakurun/logos";
NODE_ENV = "production";
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/bookstack.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/bookstack.nix
index 5d22a3b9a8..b939adc50f 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/bookstack.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/bookstack.nix
@@ -38,21 +38,21 @@ in {
user = mkOption {
default = "bookstack";
- description = "User bookstack runs as.";
+ description = lib.mdDoc "User bookstack runs as.";
type = types.str;
};
group = mkOption {
default = "bookstack";
- description = "Group bookstack runs as.";
+ description = lib.mdDoc "Group bookstack runs as.";
type = types.str;
};
appKeyFile = mkOption {
- description = ''
+ description = lib.mdDoc ''
A file containing the Laravel APP_KEY - a 32 character long,
base64 encoded key used for encryption where needed. Can be
- generated with head -c 32 /dev/urandom | base64.
+ generated with `head -c 32 /dev/urandom | base64`.
'';
example = "/run/keys/bookstack-appkey";
type = types.path;
@@ -66,15 +66,15 @@ in {
config.networking.hostName;
defaultText = lib.literalExpression "config.networking.fqdn";
example = "bookstack.example.com";
- description = ''
+ description = lib.mdDoc ''
The hostname to serve BookStack on.
'';
};
appURL = mkOption {
- description = ''
+ description = lib.mdDoc ''
The root URL that you want to host BookStack on. All URLs in BookStack will be generated using this value.
- If you change this in the future you may need to run a command to update stored URLs in the database. Command example: php artisan bookstack:update-url https://old.example.com https://new.example.com
+ If you change this in the future you may need to run a command to update stored URLs in the database. Command example: `php artisan bookstack:update-url https://old.example.com https://new.example.com`
'';
default = "http${lib.optionalString tlsEnabled "s"}://${cfg.hostname}";
defaultText = ''http''${lib.optionalString tlsEnabled "s"}://''${cfg.hostname}'';
@@ -83,7 +83,7 @@ in {
};
dataDir = mkOption {
- description = "BookStack data directory";
+ description = lib.mdDoc "BookStack data directory";
default = "/var/lib/bookstack";
type = types.path;
};
@@ -92,37 +92,37 @@ in {
host = mkOption {
type = types.str;
default = "localhost";
- description = "Database host address.";
+ description = lib.mdDoc "Database host address.";
};
port = mkOption {
type = types.port;
default = 3306;
- description = "Database host port.";
+ description = lib.mdDoc "Database host port.";
};
name = mkOption {
type = types.str;
default = "bookstack";
- description = "Database name.";
+ description = lib.mdDoc "Database name.";
};
user = mkOption {
type = types.str;
default = user;
defaultText = literalExpression "user";
- description = "Database username.";
+ description = lib.mdDoc "Database username.";
};
passwordFile = mkOption {
type = with types; nullOr path;
default = null;
example = "/run/keys/bookstack-dbpassword";
- description = ''
+ description = lib.mdDoc ''
A file containing the password corresponding to
- .
+ {option}`database.user`.
'';
};
createLocally = mkOption {
type = types.bool;
default = false;
- description = "Create the database and database user locally.";
+ description = lib.mdDoc "Create the database and database user locally.";
};
};
@@ -130,47 +130,47 @@ in {
driver = mkOption {
type = types.enum [ "smtp" "sendmail" ];
default = "smtp";
- description = "Mail driver to use.";
+ description = lib.mdDoc "Mail driver to use.";
};
host = mkOption {
type = types.str;
default = "localhost";
- description = "Mail host address.";
+ description = lib.mdDoc "Mail host address.";
};
port = mkOption {
type = types.port;
default = 1025;
- description = "Mail host port.";
+ description = lib.mdDoc "Mail host port.";
};
fromName = mkOption {
type = types.str;
default = "BookStack";
- description = "Mail \"from\" name.";
+ description = lib.mdDoc "Mail \"from\" name.";
};
from = mkOption {
type = types.str;
default = "mail@bookstackapp.com";
- description = "Mail \"from\" email.";
+ description = lib.mdDoc "Mail \"from\" email.";
};
user = mkOption {
type = with types; nullOr str;
default = null;
example = "bookstack";
- description = "Mail username.";
+ description = lib.mdDoc "Mail username.";
};
passwordFile = mkOption {
type = with types; nullOr path;
default = null;
example = "/run/keys/bookstack-mailpassword";
- description = ''
+ description = lib.mdDoc ''
A file containing the password corresponding to
- .
+ {option}`mail.user`.
'';
};
encryption = mkOption {
type = with types; nullOr (enum [ "tls" ]);
default = null;
- description = "SMTP encryption mechanism to use.";
+ description = lib.mdDoc "SMTP encryption mechanism to use.";
};
};
@@ -178,7 +178,7 @@ in {
type = types.str;
default = "18M";
example = "1G";
- description = "The maximum size for uploads (e.g. images).";
+ description = lib.mdDoc "The maximum size for uploads (e.g. images).";
};
poolConfig = mkOption {
@@ -191,8 +191,8 @@ in {
"pm.max_spare_servers" = 4;
"pm.max_requests" = 500;
};
- description = ''
- Options for the bookstack PHP pool. See the documentation on php-fpm.conf
+ description = lib.mdDoc ''
+ Options for the bookstack PHP pool. See the documentation on `php-fpm.conf`
for details on configuration directives.
'';
};
@@ -213,7 +213,7 @@ in {
enableACME = true;
}
'';
- description = ''
+ description = lib.mdDoc ''
With this option, you can customize the nginx virtualHost settings.
'';
};
@@ -256,20 +256,20 @@ in {
OIDC_ISSUER_DISCOVER = true;
}
'';
- description = ''
+ description = lib.mdDoc ''
BookStack configuration options to set in the
- .env file.
+ {file}`.env` file.
- Refer to
+ Refer to
for details on supported values.
Settings containing secret data should be set to an attribute
- set containing the attribute _secret - a
+ set containing the attribute `_secret` - a
string pointing to a file containing the value the option
should be set to. See the example to get a better picture of
- this: in the resulting .env file, the
- OIDC_CLIENT_SECRET key will be set to the
- contents of the /run/keys/oidc_secret
+ this: in the resulting {file}`.env` file, the
+ `OIDC_CLIENT_SECRET` key will be set to the
+ contents of the {file}`/run/keys/oidc_secret`
file.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/dex.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/dex.nix
index eebf4b740c..82fdcd212f 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/dex.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/dex.nix
@@ -11,15 +11,26 @@ let
settingsFormat = pkgs.formats.yaml {};
configFile = settingsFormat.generate "config.yaml" filteredSettings;
- startPreScript = pkgs.writeShellScript "dex-start-pre" (''
- '' + (concatStringsSep "\n" (builtins.map (file: ''
- ${pkgs.replace-secret}/bin/replace-secret '${file}' '${file}' /run/dex/config.yaml
- '') secretFiles)));
+ startPreScript = pkgs.writeShellScript "dex-start-pre"
+ (concatStringsSep "\n" (map (file: ''
+ replace-secret '${file}' '${file}' /run/dex/config.yaml
+ '')
+ secretFiles));
in
{
options.services.dex = {
enable = mkEnableOption "the OpenID Connect and OAuth2 identity provider";
+ environmentFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = ''
+ Environment file (see systemd.exec(5)
+ "EnvironmentFile=" section for the syntax) to define variables for dex.
+ This option can be used to safely include secret keys into the dex configuration.
+ '';
+ };
+
settings = mkOption {
type = settingsFormat.type;
default = {};
@@ -48,6 +59,9 @@ in
description = lib.mdDoc ''
The available options can be found in
[the example configuration](https://github.com/dexidp/dex/blob/v${pkgs.dex.version}/config.yaml.dist).
+
+ It's also possible to refer to environment variables (defined in [services.dex.environmentFile](#opt-services.dex.environmentFile))
+ using the syntax `$VARIABLE_NAME`.
'';
};
};
@@ -57,15 +71,15 @@ in
description = "dex identity provider";
wantedBy = [ "multi-user.target" ];
after = [ "networking.target" ] ++ (optional (cfg.settings.storage.type == "postgres") "postgresql.service");
-
+ path = with pkgs; [ replace-secret ];
serviceConfig = {
ExecStart = "${pkgs.dex-oidc}/bin/dex serve /run/dex/config.yaml";
ExecStartPre = [
"${pkgs.coreutils}/bin/install -m 600 ${configFile} /run/dex/config.yaml"
"+${startPreScript}"
];
- RuntimeDirectory = "dex";
+ RuntimeDirectory = "dex";
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
BindReadOnlyPaths = [
"/nix/store"
@@ -109,6 +123,8 @@ in
TemporaryFileSystem = "/:ro";
# Does not work well with the temporary root
#UMask = "0066";
+ } // optionalAttrs (cfg.environmentFile != null) {
+ EnvironmentFile = cfg.environmentFile;
};
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/discourse.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/discourse.nix
index 20ad653429..0ebc6f5399 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/discourse.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/discourse.nix
@@ -6,7 +6,7 @@ let
cfg = config.services.discourse;
opt = options.services.discourse;
- # Keep in sync with https://github.com/discourse/discourse_docker/blob/master/image/base/Dockerfile#L5
+ # Keep in sync with https://github.com/discourse/discourse_docker/blob/main/image/base/slim.Dockerfile#L5
upstreamPostgresqlVersion = lib.getVersion pkgs.postgresql_13;
postgresqlPackage = if config.services.postgresql.enable then
@@ -121,17 +121,16 @@ in
max_reqs_per_ip_mode = "warn+block";
};
'';
- description = ''
+ description = lib.mdDoc ''
Additional settings to put in the
- discourse.conf file.
+ {file}`discourse.conf` file.
Look in the
- discourse_defaults.conf
+ [discourse_defaults.conf](https://github.com/discourse/discourse/blob/master/config/discourse_defaults.conf)
file in the upstream distribution to find available options.
- Setting an option to null means
- define variable, but leave right-hand side
- empty.
+ Setting an option to `null` means
+ “define variable, but leave right-hand side empty”.
'';
};
@@ -241,9 +240,9 @@ in
host = lib.mkOption {
type = with lib.types; nullOr str;
default = null;
- description = ''
- Discourse database hostname. null means prefer
- local unix socket connection.
+ description = lib.mdDoc ''
+ Discourse database hostname. `null` means
+ “prefer local unix socket connection”.
'';
};
@@ -494,10 +493,8 @@ in
discourse-github
];
'';
- description = ''
- Plugins to install as part of
- Discourse, expressed as a list of
- derivations.
+ description = lib.mdDoc ''
+ Plugins to install as part of Discourse, expressed as a list of derivations.
'';
};
@@ -604,7 +601,6 @@ in
cors_origin = "";
serve_static_assets = false;
sidekiq_workers = 5;
- rtl_css = false;
connection_reaper_age = 30;
connection_reaper_interval = 30;
relative_url_root = null;
@@ -940,7 +936,6 @@ in
proxy_cache discourse;
proxy_cache_key "$scheme,$host,$request_uri";
proxy_cache_valid 200 301 302 7d;
- proxy_cache_valid any 1m;
'';
};
"/message-bus/" = proxy {
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/fluidd.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/fluidd.nix
index 6ac1acc9d0..8d6d48b3dd 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/fluidd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/fluidd.nix
@@ -10,7 +10,7 @@ in
package = mkOption {
type = types.package;
- description = "Fluidd package to be used in the module";
+ description = lib.mdDoc "Fluidd package to be used in the module";
default = pkgs.fluidd;
defaultText = literalExpression "pkgs.fluidd";
};
@@ -18,7 +18,7 @@ in
hostName = mkOption {
type = types.str;
default = "localhost";
- description = "Hostname to serve fluidd on";
+ description = lib.mdDoc "Hostname to serve fluidd on";
};
nginx = mkOption {
@@ -30,7 +30,7 @@ in
serverAliases = [ "fluidd.''${config.networking.domain}" ];
}
'';
- description = "Extra configuration for the nginx virtual host of fluidd.";
+ description = lib.mdDoc "Extra configuration for the nginx virtual host of fluidd.";
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/hedgedoc.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/hedgedoc.nix
index 6f579b365c..f1c450005a 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/hedgedoc.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/hedgedoc.nix
@@ -189,9 +189,9 @@ in
allowAnonymousEdits = mkOption {
type = types.bool;
default = false;
- description = ''
- Whether to allow guests to edit existing notes with the `freely' permission,
- when is enabled.
+ description = lib.mdDoc ''
+ Whether to allow guests to edit existing notes with the `freely` permission,
+ when {option}`allowAnonymous` is enabled.
'';
};
allowFreeURL = mkOption {
@@ -937,7 +937,7 @@ in
id = mkOption {
type = types.str;
default = "";
- description = ''
+ description = lib.mdDoc ''
Attribute map for `id'.
Defaults to `NameID' of SAML response.
'';
@@ -945,7 +945,7 @@ in
username = mkOption {
type = types.str;
default = "";
- description = ''
+ description = lib.mdDoc ''
Attribute map for `username'.
Defaults to `NameID' of SAML response.
'';
@@ -953,10 +953,10 @@ in
email = mkOption {
type = types.str;
default = "";
- description = ''
- Attribute map for `email'.
- Defaults to `NameID' of SAML response if
- has
+ description = lib.mdDoc ''
+ Attribute map for `email`.
+ Defaults to `NameID` of SAML response if
+ {option}`identifierFormat` has
the default value.
'';
};
@@ -983,9 +983,7 @@ in
default = null;
example = "/var/lib/hedgedoc/hedgedoc.env";
description = ''
- Environment file as defined in
- systemd.exec5
- .
+ Environment file as defined in systemd.exec5.
Secrets may be passed to the service without adding them to the world-readable
Nix store, by specifying placeholder variables as the option value in Nix and
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/invidious.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/invidious.nix
index 0b9d9b03c6..cf6e7f92f0 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/invidious.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/invidious.nix
@@ -246,11 +246,11 @@ in
nginx.enable = lib.mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to configure nginx as a reverse proxy for Invidious.
- It serves it under the domain specified in with enabled TLS and ACME.
- Further configuration can be done through ,
+ It serves it under the domain specified in {option}`services.invidious.settings.domain` with enabled TLS and ACME.
+ Further configuration can be done through {option}`services.nginx.virtualHosts.''${config.services.invidious.settings.domain}.*`,
which can also be used to disable AMCE and TLS.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/isso.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/isso.nix
index 4c01781a6a..a5d3d8bd73 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/isso.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/isso.nix
@@ -20,10 +20,10 @@ in {
'';
settings = mkOption {
- description = ''
- Configuration for isso.
+ description = lib.mdDoc ''
+ Configuration for `isso`.
- See Isso Server Configuration
+ See [Isso Server Configuration](https://posativ.org/isso/docs/configuration/server/)
for supported values.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/jirafeau.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/jirafeau.nix
index 328c61c8e6..c95d8ffd52 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/jirafeau.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/jirafeau.nix
@@ -25,7 +25,7 @@ in
adminPasswordSha256 = mkOption {
type = types.str;
default = "";
- description = ''
+ description = lib.mdDoc ''
SHA-256 of the desired administration password. Leave blank/unset for no password.
'';
};
@@ -33,7 +33,7 @@ in
dataDir = mkOption {
type = types.path;
default = "/var/lib/jirafeau/data/";
- description = "Location of Jirafeau storage directory.";
+ description = lib.mdDoc "Location of Jirafeau storage directory.";
};
enable = mkEnableOption "Jirafeau file upload application.";
@@ -58,13 +58,13 @@ in
hostName = mkOption {
type = types.str;
default = "localhost";
- description = "URL of instance. Must have trailing slash.";
+ description = lib.mdDoc "URL of instance. Must have trailing slash.";
};
maxUploadSizeMegabytes = mkOption {
type = types.int;
default = 0;
- description = "Maximum upload size of accepted files.";
+ description = lib.mdDoc "Maximum upload size of accepted files.";
};
maxUploadTimeout = mkOption {
@@ -89,14 +89,14 @@ in
serverAliases = [ "wiki.''${config.networking.domain}" ];
}
'';
- description = "Extra configuration for the nginx virtual host of Jirafeau.";
+ description = lib.mdDoc "Extra configuration for the nginx virtual host of Jirafeau.";
};
package = mkOption {
type = types.package;
default = pkgs.jirafeau;
defaultText = literalExpression "pkgs.jirafeau";
- description = "Jirafeau package to use";
+ description = lib.mdDoc "Jirafeau package to use";
};
poolConfig = mkOption {
@@ -109,8 +109,8 @@ in
"pm.max_spare_servers" = 4;
"pm.max_requests" = 500;
};
- description = ''
- Options for Jirafeau PHP pool. See documentation on php-fpm.conf for
+ description = lib.mdDoc ''
+ Options for Jirafeau PHP pool. See documentation on `php-fpm.conf` for
details on configuration directives.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/keycloak.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/keycloak.nix
index c1091bc09a..b878cb74b5 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/keycloak.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/keycloak.nix
@@ -562,7 +562,7 @@ in
shopt -s inherit_errexit
create_role="$(mktemp)"
- trap 'rm -f "$create_role"' ERR EXIT
+ trap 'rm -f "$create_role"' EXIT
db_password="$(<"$CREDENTIALS_DIRECTORY/db_password")"
echo "CREATE ROLE keycloak WITH LOGIN PASSWORD '$db_password' CREATEDB" > "$create_role"
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/komga.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/komga.nix
new file mode 100644
index 0000000000..a2809e64a9
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/komga.nix
@@ -0,0 +1,99 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+ cfg = config.services.komga;
+
+in {
+ options = {
+ services.komga = {
+ enable = mkEnableOption "Komga, a free and open source comics/mangas media server";
+
+ port = mkOption {
+ type = types.port;
+ default = 8080;
+ description = lib.mdDoc ''
+ The port that Komga will listen on.
+ '';
+ };
+
+ user = mkOption {
+ type = types.str;
+ default = "komga";
+ description = lib.mdDoc ''
+ User account under which Komga runs.
+ '';
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = "komga";
+ description = lib.mdDoc ''
+ Group under which Komga runs.
+ '';
+ };
+
+ stateDir = mkOption {
+ type = types.str;
+ default = "/var/lib/komga";
+ description = lib.mdDoc ''
+ State and configuration directory Komga will use.
+ '';
+ };
+
+ openFirewall = mkOption {
+ type = types.bool;
+ default = false;
+ description = lib.mdDoc ''
+ Whether to open the firewall for the port in {option}`services.komga.port`.
+ '';
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+
+ networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
+
+ users.groups = mkIf (cfg.group == "komga") {
+ komga = {};
+ };
+
+ users.users = mkIf (cfg.user == "komga") {
+ komga = {
+ group = cfg.group;
+ home = cfg.stateDir;
+ description = "Komga Daemon user";
+ isSystemUser = true;
+ };
+ };
+
+ systemd.services.komga = {
+ environment = {
+ SERVER_PORT = builtins.toString cfg.port;
+ KOMGA_CONFIGDIR = cfg.stateDir;
+ };
+
+ description = "Komga is a free and open source comics/mangas media server";
+
+ wantedBy = [ "multi-user.target" ];
+ wants = [ "network-online.target" ];
+ after = [ "network-online.target" ];
+
+ serviceConfig = {
+ User = cfg.user;
+ Group = cfg.group;
+
+ Type = "simple";
+ Restart = "on-failure";
+ ExecStart = "${pkgs.komga}/bin/komga";
+
+ StateDirectory = mkIf (cfg.stateDir == "/var/lib/komga") "komga";
+ };
+
+ };
+ };
+
+ meta.maintainers = with maintainers; [ govanify ];
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/limesurvey.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/limesurvey.nix
index 5ccd742a30..e0995e0b5a 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/limesurvey.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/limesurvey.nix
@@ -39,41 +39,41 @@ in
type = types.enum [ "mysql" "pgsql" "odbc" "mssql" ];
example = "pgsql";
default = "mysql";
- description = "Database engine to use.";
+ description = lib.mdDoc "Database engine to use.";
};
host = mkOption {
type = types.str;
default = "localhost";
- description = "Database host address.";
+ description = lib.mdDoc "Database host address.";
};
port = mkOption {
type = types.int;
default = if cfg.database.type == "pgsql" then 5442 else 3306;
defaultText = literalExpression "3306";
- description = "Database host port.";
+ description = lib.mdDoc "Database host port.";
};
name = mkOption {
type = types.str;
default = "limesurvey";
- description = "Database name.";
+ description = lib.mdDoc "Database name.";
};
user = mkOption {
type = types.str;
default = "limesurvey";
- description = "Database user.";
+ description = lib.mdDoc "Database user.";
};
passwordFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/run/keys/limesurvey-dbpassword";
- description = ''
+ description = lib.mdDoc ''
A file containing the password corresponding to
- .
+ {option}`database.user`.
'';
};
@@ -85,14 +85,14 @@ in
else null
;
defaultText = literalExpression "/run/mysqld/mysqld.sock";
- description = "Path to the unix socket file to use for authentication.";
+ description = lib.mdDoc "Path to the unix socket file to use for authentication.";
};
createLocally = mkOption {
type = types.bool;
default = cfg.database.type == "mysql";
defaultText = literalExpression "true";
- description = ''
+ description = lib.mdDoc ''
Create the database and database user locally.
This currently only applies if database type "mysql" is selected.
'';
@@ -109,9 +109,9 @@ in
enableACME = true;
}
'';
- description = ''
- Apache configuration can be done by adapting services.httpd.virtualHosts.<name>.
- See for further information.
+ description = lib.mdDoc ''
+ Apache configuration can be done by adapting `services.httpd.virtualHosts.`.
+ See [](#opt-services.httpd.virtualHosts) for further information.
'';
};
@@ -125,8 +125,8 @@ in
"pm.max_spare_servers" = 4;
"pm.max_requests" = 500;
};
- description = ''
- Options for the LimeSurvey PHP pool. See the documentation on php-fpm.conf
+ description = lib.mdDoc ''
+ Options for the LimeSurvey PHP pool. See the documentation on `php-fpm.conf`
for details on configuration directives.
'';
};
@@ -134,9 +134,9 @@ in
config = mkOption {
type = configType;
default = {};
- description = ''
+ description = lib.mdDoc ''
LimeSurvey configuration. Refer to
-
+
for details on supported values.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/mastodon.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/mastodon.nix
index d0594ff741..5abaad85b4 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/mastodon.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/mastodon.nix
@@ -130,18 +130,18 @@ in {
};
user = lib.mkOption {
- description = ''
+ description = lib.mdDoc ''
User under which mastodon runs. If it is set to "mastodon",
that user will be created, otherwise it should be set to the
name of a user created elsewhere. In both cases,
- mastodon and a package containing only
- the shell script mastodon-env will be added to
+ `mastodon` and a package containing only
+ the shell script `mastodon-env` will be added to
the user's package set. To run a command from
- mastodon such as tootctl
+ `mastodon` such as `tootctl`
with the environment configured by this module use
- mastodon-env, as in:
+ `mastodon-env`, as in:
- mastodon-env tootctl accounts create newuser --email newuser@example.com
+ `mastodon-env tootctl accounts create newuser --email newuser@example.com`
'';
type = lib.types.str;
default = "mastodon";
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/matomo.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/matomo.nix
index c6d4ed6d39..f9927992a8 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/matomo.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/matomo.nix
@@ -32,7 +32,7 @@ in {
enable = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Enable Matomo web analytics with php-fpm backend.
Either the nginx option or the webServerUser option is mandatory.
'';
@@ -40,7 +40,7 @@ in {
package = mkOption {
type = types.package;
- description = ''
+ description = lib.mdDoc ''
Matomo package for the service to use.
This can be used to point to newer releases from nixos-unstable,
as they don't get backported if they are not security-relevant.
@@ -57,20 +57,20 @@ in {
Name of the web server user that forwards requests to the fastcgi socket for Matomo if the nginx
option is not used. Either this option or the nginx option is mandatory.
If you want to use another webserver than nginx, you need to set this to that server's user
- and pass fastcgi requests to `index.php`, `matomo.php` and `piwik.php` (legacy name) to this socket.
+ and pass fastcgi requests to index.php, matomo.php and piwik.php (legacy name) to this socket.
'';
};
periodicArchiveProcessing = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Enable periodic archive processing, which generates aggregated reports from the visits.
This means that you can safely disable browser triggers for Matomo archiving,
and safely enable to delete old visitor logs.
Before deleting visitor logs,
- make sure though that you run systemctl start matomo-archive-processing.service
+ make sure though that you run `systemctl start matomo-archive-processing.service`
at least once without errors if you have already collected data before.
'';
};
@@ -84,7 +84,7 @@ in {
else "${user}.''${config.${options.networking.hostName}}"
'';
example = "matomo.yourdomain.org";
- description = ''
+ description = lib.mdDoc ''
URL of the host, without https prefix. You may want to change it if you
run Matomo on a different URL than matomo.yourdomain.
'';
@@ -112,12 +112,12 @@ in {
enableACME = false;
}
'';
- description = ''
+ description = lib.mdDoc ''
With this option, you can customize an nginx virtualHost which already has sensible defaults for Matomo.
Either this option or the webServerUser option is mandatory.
Set this to {} to just enable the virtualHost if you don't need any customization.
- If enabled, then by default, the is
- ''${user}.''${config.networking.hostName}.''${config.networking.domain},
+ If enabled, then by default, the {option}`serverName` is
+ `''${user}.''${config.networking.hostName}.''${config.networking.domain}`,
SSL is active, and certificates are acquired via ACME.
If this is set to null (the default), no nginx virtualHost will be configured.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/mediawiki.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/mediawiki.nix
index 7115455594..01083eff61 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/mediawiki.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/mediawiki.nix
@@ -177,20 +177,20 @@ in
type = types.package;
default = pkgs.mediawiki;
defaultText = literalExpression "pkgs.mediawiki";
- description = "Which MediaWiki package to use.";
+ description = lib.mdDoc "Which MediaWiki package to use.";
};
name = mkOption {
type = types.str;
default = "MediaWiki";
example = "Foobar Wiki";
- description = "Name of the wiki.";
+ description = lib.mdDoc "Name of the wiki.";
};
uploadsDir = mkOption {
type = types.nullOr types.path;
default = "${stateDir}/uploads";
- description = ''
+ description = lib.mdDoc ''
This directory is used for uploads of pictures. The directory passed here is automatically
created and permissions adjusted as required.
'';
@@ -198,15 +198,15 @@ in
passwordFile = mkOption {
type = types.path;
- description = "A file containing the initial password for the admin user.";
+ description = lib.mdDoc "A file containing the initial password for the admin user.";
example = "/run/keys/mediawiki-password";
};
skins = mkOption {
default = {};
type = types.attrsOf types.path;
- description = ''
- Attribute set of paths whose content is copied to the skins
+ description = lib.mdDoc ''
+ Attribute set of paths whose content is copied to the {file}`skins`
subdirectory of the MediaWiki installation in addition to the default skins.
'';
};
@@ -214,11 +214,11 @@ in
extensions = mkOption {
default = {};
type = types.attrsOf (types.nullOr types.path);
- description = ''
- Attribute set of paths whose content is copied to the extensions
+ description = lib.mdDoc ''
+ Attribute set of paths whose content is copied to the {file}`extensions`
subdirectory of the MediaWiki installation and enabled in configuration.
- Use null instead of path to enable extensions that are part of MediaWiki.
+ Use `null` instead of path to enable extensions that are part of MediaWiki.
'';
example = literalExpression ''
{
@@ -235,52 +235,52 @@ in
type = mkOption {
type = types.enum [ "mysql" "postgres" "sqlite" "mssql" "oracle" ];
default = "mysql";
- description = "Database engine to use. MySQL/MariaDB is the database of choice by MediaWiki developers.";
+ description = lib.mdDoc "Database engine to use. MySQL/MariaDB is the database of choice by MediaWiki developers.";
};
host = mkOption {
type = types.str;
default = "localhost";
- description = "Database host address.";
+ description = lib.mdDoc "Database host address.";
};
port = mkOption {
type = types.port;
default = 3306;
- description = "Database host port.";
+ description = lib.mdDoc "Database host port.";
};
name = mkOption {
type = types.str;
default = "mediawiki";
- description = "Database name.";
+ description = lib.mdDoc "Database name.";
};
user = mkOption {
type = types.str;
default = "mediawiki";
- description = "Database user.";
+ description = lib.mdDoc "Database user.";
};
passwordFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/run/keys/mediawiki-dbpassword";
- description = ''
+ description = lib.mdDoc ''
A file containing the password corresponding to
- .
+ {option}`database.user`.
'';
};
tablePrefix = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
If you only have access to a single database and wish to install more than
one version of MediaWiki, or have other applications that also use the
database, you can give the table names a unique prefix to stop any naming
conflicts or confusion.
- See .
+ See .
'';
};
@@ -288,14 +288,14 @@ in
type = types.nullOr types.path;
default = if cfg.database.createLocally then "/run/mysqld/mysqld.sock" else null;
defaultText = literalExpression "/run/mysqld/mysqld.sock";
- description = "Path to the unix socket file to use for authentication.";
+ description = lib.mdDoc "Path to the unix socket file to use for authentication.";
};
createLocally = mkOption {
type = types.bool;
default = cfg.database.type == "mysql";
defaultText = literalExpression "true";
- description = ''
+ description = lib.mdDoc ''
Create the database and database user locally.
This currently only applies if database type "mysql" is selected.
'';
@@ -312,9 +312,9 @@ in
enableACME = true;
}
'';
- description = ''
- Apache configuration can be done by adapting .
- See for further information.
+ description = lib.mdDoc ''
+ Apache configuration can be done by adapting {option}`services.httpd.virtualHosts`.
+ See [](#opt-services.httpd.virtualHosts) for further information.
'';
};
@@ -328,18 +328,18 @@ in
"pm.max_spare_servers" = 4;
"pm.max_requests" = 500;
};
- description = ''
- Options for the MediaWiki PHP pool. See the documentation on php-fpm.conf
+ description = lib.mdDoc ''
+ Options for the MediaWiki PHP pool. See the documentation on `php-fpm.conf`
for details on configuration directives.
'';
};
extraConfig = mkOption {
type = types.lines;
- description = ''
+ description = lib.mdDoc ''
Any additional text to be appended to MediaWiki's
LocalSettings.php configuration file. For configuration
- settings, see .
+ settings, see .
'';
default = "";
example = ''
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/moodle.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/moodle.nix
index 55e5ac9281..03dd57753a 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/moodle.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/moodle.nix
@@ -68,13 +68,13 @@ in
type = types.package;
default = pkgs.moodle;
defaultText = literalExpression "pkgs.moodle";
- description = "The Moodle package to use.";
+ description = lib.mdDoc "The Moodle package to use.";
};
initialPassword = mkOption {
type = types.str;
example = "correcthorsebatterystaple";
- description = ''
+ description = lib.mdDoc ''
Specifies the initial password for the admin, i.e. the password assigned if the user does not already exist.
The password specified here is world-readable in the Nix store, so it should be changed promptly.
'';
@@ -84,18 +84,18 @@ in
type = mkOption {
type = types.enum [ "mysql" "pgsql" ];
default = "mysql";
- description = "Database engine to use.";
+ description = lib.mdDoc "Database engine to use.";
};
host = mkOption {
type = types.str;
default = "localhost";
- description = "Database host address.";
+ description = lib.mdDoc "Database host address.";
};
port = mkOption {
type = types.int;
- description = "Database host port.";
+ description = lib.mdDoc "Database host port.";
default = {
mysql = 3306;
pgsql = 5432;
@@ -106,22 +106,22 @@ in
name = mkOption {
type = types.str;
default = "moodle";
- description = "Database name.";
+ description = lib.mdDoc "Database name.";
};
user = mkOption {
type = types.str;
default = "moodle";
- description = "Database user.";
+ description = lib.mdDoc "Database user.";
};
passwordFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/run/keys/moodle-dbpassword";
- description = ''
+ description = lib.mdDoc ''
A file containing the password corresponding to
- .
+ {option}`database.user`.
'';
};
@@ -132,13 +132,13 @@ in
else if pgsqlLocal then "/run/postgresql"
else null;
defaultText = literalExpression "/run/mysqld/mysqld.sock";
- description = "Path to the unix socket file to use for authentication.";
+ description = lib.mdDoc "Path to the unix socket file to use for authentication.";
};
createLocally = mkOption {
type = types.bool;
default = true;
- description = "Create the database and database user locally.";
+ description = lib.mdDoc "Create the database and database user locally.";
};
};
@@ -152,9 +152,9 @@ in
enableACME = true;
}
'';
- description = ''
- Apache configuration can be done by adapting .
- See for further information.
+ description = lib.mdDoc ''
+ Apache configuration can be done by adapting {option}`services.httpd.virtualHosts`.
+ See [](#opt-services.httpd.virtualHosts) for further information.
'';
};
@@ -168,8 +168,8 @@ in
"pm.max_spare_servers" = 4;
"pm.max_requests" = 500;
};
- description = ''
- Options for the Moodle PHP pool. See the documentation on php-fpm.conf
+ description = lib.mdDoc ''
+ Options for the Moodle PHP pool. See the documentation on `php-fpm.conf`
for details on configuration directives.
'';
};
@@ -177,10 +177,10 @@ in
extraConfig = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Any additional text to be appended to the config.php
configuration file. This is a PHP script. For configuration
- details, see .
+ details, see .
'';
example = ''
$CFG->disableupdatenotifications = true;
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
index feee7494a7..b286b1a64c 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
@@ -532,7 +532,7 @@ in {
here because it has the side-effect that personal information is even accessible to
unauthenticated users by default.
- By default, the following properties are set to Show to everyone
+ By default, the following properties are set to “Show to everyone”
if this flag is enabled:
About
@@ -569,10 +569,10 @@ in {
secretFile = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Secret options which will be appended to nextcloud's config.php file (written as JSON, in the same
- form as the option), for example
- {"redis":{"password":"secret"}}.
+ form as the [](#opt-services.nextcloud.extraOptions) option), for example
+ `{"redis":{"password":"secret"}}`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/nexus.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/nexus.nix
index cfa137e77d..64dc0b625d 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/nexus.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/nexus.nix
@@ -93,7 +93,7 @@ in
'''
'';
- description = ''
+ description = lib.mdDoc ''
Options for the JVM written to `nexus.jvmopts`.
Please refer to the docs (https://help.sonatype.com/repomanager3/installation/configuring-the-runtime-environment)
for further information.
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/pgpkeyserver-lite.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
index faf0ce1323..2552441bef 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
@@ -24,34 +24,34 @@ in
default = pkgs.pgpkeyserver-lite;
defaultText = literalExpression "pkgs.pgpkeyserver-lite";
type = types.package;
- description = "
+ description = lib.mdDoc ''
Which webgui derivation to use.
- ";
+ '';
};
hostname = mkOption {
type = types.str;
- description = "
+ description = lib.mdDoc ''
Which hostname to set the vHost to that is proxying to sks.
- ";
+ '';
};
hkpAddress = mkOption {
default = builtins.head sksCfg.hkpAddress;
defaultText = literalExpression "head config.${sksOpt.hkpAddress}";
type = types.str;
- description = "
+ description = lib.mdDoc ''
Wich ip address the sks-keyserver is listening on.
- ";
+ '';
};
hkpPort = mkOption {
default = sksCfg.hkpPort;
defaultText = literalExpression "config.${sksOpt.hkpPort}";
type = types.int;
- description = "
+ description = lib.mdDoc ''
Which port the sks-keyserver is listening on.
- ";
+ '';
};
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/plausible.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/plausible.nix
index 6f098134c9..d938cc0ad8 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/plausible.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/plausible.nix
@@ -49,8 +49,8 @@ in {
url = mkOption {
default = "http://localhost:8123/default";
type = types.str;
- description = ''
- The URL to be used to connect to clickhouse.
+ description = lib.mdDoc ''
+ The URL to be used to connect to `clickhouse`.
'';
};
};
@@ -66,8 +66,8 @@ in {
socket = mkOption {
default = "/run/postgresql";
type = types.str;
- description = ''
- Path to the UNIX domain-socket to communicate with postgres.
+ description = lib.mdDoc ''
+ Path to the UNIX domain-socket to communicate with `postgres`.
'';
};
};
@@ -188,7 +188,11 @@ in {
inherit (pkgs.plausible.meta) description;
documentation = [ "https://plausible.io/docs/self-hosting" ];
wantedBy = [ "multi-user.target" ];
- after = optionals cfg.database.postgres.setup [ "postgresql.service" "plausible-postgres.service" ];
+ after = optional cfg.database.clickhouse.setup "clickhouse.service"
+ ++ optionals cfg.database.postgres.setup [
+ "postgresql.service"
+ "plausible-postgres.service"
+ ];
requires = optional cfg.database.clickhouse.setup "clickhouse.service"
++ optionals cfg.database.postgres.setup [
"postgresql.service"
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/rss-bridge.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/rss-bridge.nix
index b1a3907d19..bef3d9de2a 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/rss-bridge.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/rss-bridge.nix
@@ -66,10 +66,10 @@ in
"Twitter"
]
'';
- description = ''
+ description = lib.mdDoc ''
List of bridges to be whitelisted.
If the list is empty, rss-bridge will use whitelist.default.txt.
- Use [ "*" ] to whitelist all.
+ Use `[ "*" ]` to whitelist all.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/snipe-it.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/snipe-it.nix
index e2562ddd98..c0d29b048a 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/snipe-it.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/snipe-it.nix
@@ -32,21 +32,21 @@ in {
user = mkOption {
default = "snipeit";
- description = "User snipe-it runs as.";
+ description = lib.mdDoc "User snipe-it runs as.";
type = types.str;
};
group = mkOption {
default = "snipeit";
- description = "Group snipe-it runs as.";
+ description = lib.mdDoc "Group snipe-it runs as.";
type = types.str;
};
appKeyFile = mkOption {
- description = ''
+ description = lib.mdDoc ''
A file containing the Laravel APP_KEY - a 32 character long,
base64 encoded key used for encryption where needed. Can be
- generated with head -c 32 /dev/urandom | base64.
+ generated with `head -c 32 /dev/urandom | base64`.
'';
example = "/run/keys/snipe-it/appkey";
type = types.path;
@@ -60,16 +60,16 @@ in {
config.networking.hostName;
defaultText = lib.literalExpression "config.networking.fqdn";
example = "snipe-it.example.com";
- description = ''
+ description = lib.mdDoc ''
The hostname to serve Snipe-IT on.
'';
};
appURL = mkOption {
- description = ''
+ description = lib.mdDoc ''
The root URL that you want to host Snipe-IT on. All URLs in Snipe-IT will be generated using this value.
If you change this in the future you may need to run a command to update stored URLs in the database.
- Command example: snipe-it snipe-it:update-url https://old.example.com https://new.example.com
+ Command example: `snipe-it snipe-it:update-url https://old.example.com https://new.example.com`
'';
default = "http${lib.optionalString tlsEnabled "s"}://${cfg.hostName}";
defaultText = ''
@@ -80,7 +80,7 @@ in {
};
dataDir = mkOption {
- description = "snipe-it data directory";
+ description = lib.mdDoc "snipe-it data directory";
default = "/var/lib/snipe-it";
type = types.path;
};
@@ -89,37 +89,37 @@ in {
host = mkOption {
type = types.str;
default = "localhost";
- description = "Database host address.";
+ description = lib.mdDoc "Database host address.";
};
port = mkOption {
type = types.port;
default = 3306;
- description = "Database host port.";
+ description = lib.mdDoc "Database host port.";
};
name = mkOption {
type = types.str;
default = "snipeit";
- description = "Database name.";
+ description = lib.mdDoc "Database name.";
};
user = mkOption {
type = types.str;
default = user;
defaultText = literalExpression "user";
- description = "Database username.";
+ description = lib.mdDoc "Database username.";
};
passwordFile = mkOption {
type = with types; nullOr path;
default = null;
example = "/run/keys/snipe-it/dbpassword";
- description = ''
+ description = lib.mdDoc ''
A file containing the password corresponding to
- .
+ {option}`database.user`.
'';
};
createLocally = mkOption {
type = types.bool;
default = false;
- description = "Create the database and database user locally.";
+ description = lib.mdDoc "Create the database and database user locally.";
};
};
@@ -127,65 +127,65 @@ in {
driver = mkOption {
type = types.enum [ "smtp" "sendmail" ];
default = "smtp";
- description = "Mail driver to use.";
+ description = lib.mdDoc "Mail driver to use.";
};
host = mkOption {
type = types.str;
default = "localhost";
- description = "Mail host address.";
+ description = lib.mdDoc "Mail host address.";
};
port = mkOption {
type = types.port;
default = 1025;
- description = "Mail host port.";
+ description = lib.mdDoc "Mail host port.";
};
encryption = mkOption {
type = with types; nullOr (enum [ "tls" "ssl" ]);
default = null;
- description = "SMTP encryption mechanism to use.";
+ description = lib.mdDoc "SMTP encryption mechanism to use.";
};
user = mkOption {
type = with types; nullOr str;
default = null;
example = "snipeit";
- description = "Mail username.";
+ description = lib.mdDoc "Mail username.";
};
passwordFile = mkOption {
type = with types; nullOr path;
default = null;
example = "/run/keys/snipe-it/mailpassword";
- description = ''
+ description = lib.mdDoc ''
A file containing the password corresponding to
- .
+ {option}`mail.user`.
'';
};
backupNotificationAddress = mkOption {
type = types.str;
default = "backup@example.com";
- description = "Email Address to send Backup Notifications to.";
+ description = lib.mdDoc "Email Address to send Backup Notifications to.";
};
from = {
name = mkOption {
type = types.str;
default = "Snipe-IT Asset Management";
- description = "Mail \"from\" name.";
+ description = lib.mdDoc "Mail \"from\" name.";
};
address = mkOption {
type = types.str;
default = "mail@example.com";
- description = "Mail \"from\" address.";
+ description = lib.mdDoc "Mail \"from\" address.";
};
};
replyTo = {
name = mkOption {
type = types.str;
default = "Snipe-IT Asset Management";
- description = "Mail \"reply-to\" name.";
+ description = lib.mdDoc "Mail \"reply-to\" name.";
};
address = mkOption {
type = types.str;
default = "mail@example.com";
- description = "Mail \"reply-to\" address.";
+ description = lib.mdDoc "Mail \"reply-to\" address.";
};
};
};
@@ -194,7 +194,7 @@ in {
type = types.str;
default = "18M";
example = "1G";
- description = "The maximum size for uploads (e.g. images).";
+ description = lib.mdDoc "The maximum size for uploads (e.g. images).";
};
poolConfig = mkOption {
@@ -207,8 +207,8 @@ in {
"pm.max_spare_servers" = 4;
"pm.max_requests" = 500;
};
- description = ''
- Options for the snipe-it PHP pool. See the documentation on php-fpm.conf
+ description = lib.mdDoc ''
+ Options for the snipe-it PHP pool. See the documentation on `php-fpm.conf`
for details on configuration directives.
'';
};
@@ -229,7 +229,7 @@ in {
enableACME = true;
}
'';
- description = ''
+ description = lib.mdDoc ''
With this option, you can customize the nginx virtualHost settings.
'';
};
@@ -272,19 +272,19 @@ in {
OIDC_ISSUER_DISCOVER = true;
}
'';
- description = ''
+ description = lib.mdDoc ''
Snipe-IT configuration options to set in the
- .env file.
- Refer to
+ {file}`.env` file.
+ Refer to
for details on supported values.
Settings containing secret data should be set to an attribute
- set containing the attribute _secret - a
+ set containing the attribute `_secret` - a
string pointing to a file containing the value the option
should be set to. See the example to get a better picture of
- this: in the resulting .env file, the
- OIDC_CLIENT_SECRET key will be set to the
- contents of the /run/keys/oidc_secret
+ this: in the resulting {file}`.env` file, the
+ `OIDC_CLIENT_SECRET` key will be set to the
+ contents of the {file}`/run/keys/oidc_secret`
file.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/wiki-js.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/wiki-js.nix
index 5dc0bb7325..c648cfff6c 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/wiki-js.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/wiki-js.nix
@@ -54,10 +54,10 @@ in {
type = mkOption {
default = "postgres";
type = types.enum [ "postgres" "mysql" "mariadb" "mssql" ];
- description = ''
- Database driver to use for persistence. Please note that sqlite
+ description = lib.mdDoc ''
+ Database driver to use for persistence. Please note that `sqlite`
is currently not supported as the build process for it is currently not implemented
- in pkgs.wiki-js and it's not recommended by upstream for
+ in `pkgs.wiki-js` and it's not recommended by upstream for
production use.
'';
};
@@ -94,7 +94,7 @@ in {
};
};
description = ''
- Settings to configure wiki-js. This directly
+ Settings to configure wiki-js. This directly
corresponds to the upstream configuration options.
Secrets can be injected via the environment by
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/wordpress.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/wordpress.nix
index b1ae4deb27..c841ded353 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/wordpress.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/wordpress.nix
@@ -82,13 +82,13 @@ let
type = types.package;
default = pkgs.wordpress;
defaultText = literalExpression "pkgs.wordpress";
- description = "Which WordPress package to use.";
+ description = lib.mdDoc "Which WordPress package to use.";
};
uploadsDir = mkOption {
type = types.path;
default = "/var/lib/wordpress/${name}/uploads";
- description = ''
+ description = lib.mdDoc ''
This directory is used for uploads of pictures. The directory passed here is automatically
created and permissions adjusted as required.
'';
@@ -152,47 +152,47 @@ let
host = mkOption {
type = types.str;
default = "localhost";
- description = "Database host address.";
+ description = lib.mdDoc "Database host address.";
};
port = mkOption {
type = types.port;
default = 3306;
- description = "Database host port.";
+ description = lib.mdDoc "Database host port.";
};
name = mkOption {
type = types.str;
default = "wordpress";
- description = "Database name.";
+ description = lib.mdDoc "Database name.";
};
user = mkOption {
type = types.str;
default = "wordpress";
- description = "Database user.";
+ description = lib.mdDoc "Database user.";
};
passwordFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/run/keys/wordpress-dbpassword";
- description = ''
+ description = lib.mdDoc ''
A file containing the password corresponding to
- .
+ {option}`database.user`.
'';
};
tablePrefix = mkOption {
type = types.str;
default = "wp_";
- description = ''
+ description = lib.mdDoc ''
The $table_prefix is the value placed in the front of your database tables.
Change the value if you want to use something other than wp_ for your database
prefix. Typically this is changed if you are installing multiple WordPress blogs
in the same database.
- See .
+ See .
'';
};
@@ -200,13 +200,13 @@ let
type = types.nullOr types.path;
default = null;
defaultText = literalExpression "/run/mysqld/mysqld.sock";
- description = "Path to the unix socket file to use for authentication.";
+ description = lib.mdDoc "Path to the unix socket file to use for authentication.";
};
createLocally = mkOption {
type = types.bool;
default = true;
- description = "Create the database and database user locally.";
+ description = lib.mdDoc "Create the database and database user locally.";
};
};
@@ -219,8 +219,8 @@ let
enableACME = true;
}
'';
- description = ''
- Apache configuration can be done by adapting .
+ description = lib.mdDoc ''
+ Apache configuration can be done by adapting {option}`services.httpd.virtualHosts`.
'';
};
@@ -234,8 +234,8 @@ let
"pm.max_spare_servers" = 4;
"pm.max_requests" = 500;
};
- description = ''
- Options for the WordPress PHP pool. See the documentation on php-fpm.conf
+ description = lib.mdDoc ''
+ Options for the WordPress PHP pool. See the documentation on `php-fpm.conf`
for details on configuration directives.
'';
};
@@ -243,10 +243,10 @@ let
extraConfig = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Any additional text to be appended to the wp-config.php
configuration file. This is a PHP script. For configuration
- settings, see .
+ settings, see .
'';
example = ''
define( 'AUTOSAVE_INTERVAL', 60 ); // Seconds
@@ -265,20 +265,20 @@ in
sites = mkOption {
type = types.attrsOf (types.submodule siteOpts);
default = {};
- description = "Specification of one or more WordPress sites to serve";
+ description = lib.mdDoc "Specification of one or more WordPress sites to serve";
};
webserver = mkOption {
type = types.enum [ "httpd" "nginx" "caddy" ];
default = "httpd";
- description = ''
+ description = lib.mdDoc ''
Whether to use apache2 or nginx for virtual host management.
- Further nginx configuration can be done by adapting services.nginx.virtualHosts.<name>.
- See for further information.
+ Further nginx configuration can be done by adapting `services.nginx.virtualHosts.`.
+ See [](#opt-services.nginx.virtualHosts) for further information.
- Further apache2 configuration can be done by adapting services.httpd.virtualHosts.<name>.
- See for further information.
+ Further apache2 configuration can be done by adapting `services.httpd.virtualHosts.`.
+ See [](#opt-services.httpd.virtualHosts) for further information.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/zabbix.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/zabbix.nix
index 538dac0d5b..c6ac809a73 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-apps/zabbix.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/zabbix.nix
@@ -46,19 +46,19 @@ in
type = types.package;
default = pkgs.zabbix.web;
defaultText = literalExpression "zabbix.web";
- description = "Which Zabbix package to use.";
+ description = lib.mdDoc "Which Zabbix package to use.";
};
server = {
port = mkOption {
type = types.int;
- description = "The port of the Zabbix server to connect to.";
+ description = lib.mdDoc "The port of the Zabbix server to connect to.";
default = 10051;
};
address = mkOption {
type = types.str;
- description = "The IP address or hostname of the Zabbix server to connect to.";
+ description = lib.mdDoc "The IP address or hostname of the Zabbix server to connect to.";
default = "localhost";
};
};
@@ -68,13 +68,13 @@ in
type = types.enum [ "mysql" "pgsql" "oracle" ];
example = "mysql";
default = "pgsql";
- description = "Database engine to use.";
+ description = lib.mdDoc "Database engine to use.";
};
host = mkOption {
type = types.str;
default = "";
- description = "Database host address.";
+ description = lib.mdDoc "Database host address.";
};
port = mkOption {
@@ -88,28 +88,28 @@ in
else if config.${opt.database.type} == "pgsql" then config.${options.services.postgresql.port}
else 1521
'';
- description = "Database host port.";
+ description = lib.mdDoc "Database host port.";
};
name = mkOption {
type = types.str;
default = "zabbix";
- description = "Database name.";
+ description = lib.mdDoc "Database name.";
};
user = mkOption {
type = types.str;
default = "zabbix";
- description = "Database user.";
+ description = lib.mdDoc "Database user.";
};
passwordFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/run/keys/zabbix-dbpassword";
- description = ''
+ description = lib.mdDoc ''
A file containing the password corresponding to
- .
+ {option}`database.user`.
'';
};
@@ -117,7 +117,7 @@ in
type = types.nullOr types.path;
default = null;
example = "/run/postgresql";
- description = "Path to the unix socket file to use for authentication.";
+ description = lib.mdDoc "Path to the unix socket file to use for authentication.";
};
};
@@ -131,9 +131,9 @@ in
enableACME = true;
}
'';
- description = ''
- Apache configuration can be done by adapting services.httpd.virtualHosts.<name>.
- See for further information.
+ description = lib.mdDoc ''
+ Apache configuration can be done by adapting `services.httpd.virtualHosts.`.
+ See [](#opt-services.httpd.virtualHosts) for further information.
'';
};
@@ -147,16 +147,16 @@ in
"pm.max_spare_servers" = 4;
"pm.max_requests" = 500;
};
- description = ''
- Options for the Zabbix PHP pool. See the documentation on php-fpm.conf for details on configuration directives.
+ description = lib.mdDoc ''
+ Options for the Zabbix PHP pool. See the documentation on `php-fpm.conf` for details on configuration directives.
'';
};
extraConfig = mkOption {
type = types.lines;
default = "";
- description = ''
- Additional configuration to be copied verbatim into zabbix.conf.php.
+ description = lib.mdDoc ''
+ Additional configuration to be copied verbatim into {file}`zabbix.conf.php`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
index 3099705acb..a8c9fe2636 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -410,7 +410,7 @@ in
type = types.package;
default = pkgs.apacheHttpd;
defaultText = literalExpression "pkgs.apacheHttpd";
- description = ''
+ description = lib.mdDoc ''
Overridable attribute of the Apache HTTP Server package to use.
'';
};
@@ -420,7 +420,7 @@ in
default = confFile;
defaultText = literalExpression "confFile";
example = literalExpression ''pkgs.writeText "httpd.conf" "# my custom config file ..."'';
- description = ''
+ description = lib.mdDoc ''
Override the configuration file used by Apache. By default,
NixOS generates one automatically.
'';
@@ -429,10 +429,10 @@ in
extraConfig = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Configuration lines appended to the generated Apache
configuration file. Note that this mechanism will not work
- when is overridden.
+ when {option}`configFile` is overridden.
'';
};
@@ -457,27 +457,27 @@ in
adminAddr = mkOption {
type = types.str;
example = "admin@example.org";
- description = "E-mail address of the server administrator.";
+ description = lib.mdDoc "E-mail address of the server administrator.";
};
logFormat = mkOption {
type = types.str;
default = "common";
example = "combined";
- description = ''
+ description = lib.mdDoc ''
Log format for log files. Possible values are: combined, common, referer, agent, none.
- See for more details.
+ See for more details.
'';
};
logPerVirtualHost = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
If enabled, each virtual host gets its own
- access.log and
- error.log, namely suffixed by the
- of the virtual host.
+ {file}`access.log` and
+ {file}`error.log`, namely suffixed by the
+ {option}`hostName` of the virtual host.
'';
};
@@ -498,7 +498,7 @@ in
group = mkOption {
type = types.str;
default = "wwwrun";
- description = ''
+ description = lib.mdDoc ''
Group under which httpd children processes run.
'';
};
@@ -506,7 +506,7 @@ in
logDir = mkOption {
type = types.path;
default = "/var/log/httpd";
- description = ''
+ description = lib.mdDoc ''
Directory for Apache's log files. It is created automatically.
'';
};
@@ -537,7 +537,7 @@ in
};
}
'';
- description = ''
+ description = lib.mdDoc ''
Specification of the virtual hosts served by Apache. Each
element should be an attribute set specifying the
configuration of the virtual host.
@@ -547,20 +547,20 @@ in
enableMellon = mkOption {
type = types.bool;
default = false;
- description = "Whether to enable the mod_auth_mellon module.";
+ description = lib.mdDoc "Whether to enable the mod_auth_mellon module.";
};
enablePHP = mkOption {
type = types.bool;
default = false;
- description = "Whether to enable the PHP module.";
+ description = lib.mdDoc "Whether to enable the PHP module.";
};
phpPackage = mkOption {
type = types.package;
default = pkgs.php;
defaultText = literalExpression "pkgs.php";
- description = ''
+ description = lib.mdDoc ''
Overridable attribute of the PHP package to use.
'';
};
@@ -568,7 +568,7 @@ in
enablePerl = mkOption {
type = types.bool;
default = false;
- description = "Whether to enable the Perl module (mod_perl).";
+ description = lib.mdDoc "Whether to enable the Perl module (mod_perl).";
};
phpOptions = mkOption {
@@ -578,8 +578,8 @@ in
''
date.timezone = "CET"
'';
- description = ''
- Options appended to the PHP configuration file php.ini.
+ description = lib.mdDoc ''
+ Options appended to the PHP configuration file {file}`php.ini`.
'';
};
@@ -588,13 +588,13 @@ in
default = "event";
example = "worker";
description =
- ''
+ lib.mdDoc ''
Multi-processing module to be used by Apache. Available
- modules are prefork (handles each
- request in a separate child process), worker
+ modules are `prefork` (handles each
+ request in a separate child process), `worker`
(hybrid approach that starts a number of child processes
- each running a number of threads) and event
- (the default; a recent variant of worker
+ each running a number of threads) and `event`
+ (the default; a recent variant of `worker`
that handles persistent connections more efficiently).
'';
};
@@ -603,14 +603,14 @@ in
type = types.int;
default = 150;
example = 8;
- description = "Maximum number of httpd processes (prefork)";
+ description = lib.mdDoc "Maximum number of httpd processes (prefork)";
};
maxRequestsPerChild = mkOption {
type = types.int;
default = 0;
example = 500;
- description = ''
+ description = lib.mdDoc ''
Maximum number of httpd requests answered per httpd child (prefork), 0 means unlimited.
'';
};
@@ -618,14 +618,14 @@ in
sslCiphers = mkOption {
type = types.str;
default = "HIGH:!aNULL:!MD5:!EXP";
- description = "Cipher Suite available for negotiation in SSL proxy handshake.";
+ description = lib.mdDoc "Cipher Suite available for negotiation in SSL proxy handshake.";
};
sslProtocols = mkOption {
type = types.str;
default = "All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1";
example = "All -SSLv2 -SSLv3";
- description = "Allowed SSL/TLS protocol versions.";
+ description = lib.mdDoc "Allowed SSL/TLS protocol versions.";
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/apache-httpd/location-options.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/apache-httpd/location-options.nix
index 726ad2683d..f2d4f83570 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/apache-httpd/location-options.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/apache-httpd/location-options.nix
@@ -43,7 +43,7 @@ in
priority = mkOption {
type = types.int;
default = 1000;
- description = ''
+ description = lib.mdDoc ''
Order of this location block in relation to the others in the vhost.
The semantics are the same as with `lib.mkOrder`. Smaller values have
a greater priority.
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix
index 559210a141..4f84cad735 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix
@@ -8,14 +8,14 @@ in
hostName = mkOption {
type = types.str;
default = name;
- description = "Canonical hostname for the server.";
+ description = lib.mdDoc "Canonical hostname for the server.";
};
serverAliases = mkOption {
type = types.listOf types.str;
default = [];
example = ["www.example.org" "www.example.org:8080" "example.org"];
- description = ''
+ description = lib.mdDoc ''
Additional names of virtual hosts served by this virtual host configuration.
'';
};
@@ -25,17 +25,17 @@ in
options = {
port = mkOption {
type = types.port;
- description = "Port to listen on";
+ description = lib.mdDoc "Port to listen on";
};
ip = mkOption {
type = types.str;
default = "*";
- description = "IP to listen on. 0.0.0.0 for IPv4 only, * for all.";
+ description = lib.mdDoc "IP to listen on. 0.0.0.0 for IPv4 only, * for all.";
};
ssl = mkOption {
type = types.bool;
default = false;
- description = "Whether to enable SSL (https) support.";
+ description = lib.mdDoc "Whether to enable SSL (https) support.";
};
};
}));
@@ -61,9 +61,9 @@ in
listenAddresses = mkOption {
type = with types; nonEmptyListOf str;
- description = ''
+ description = lib.mdDoc ''
Listen addresses for this virtual host.
- Compared to listen this only sets the addreses
+ Compared to `listen` this only sets the addreses
and the ports are chosen automatically.
'';
default = [ "*" ];
@@ -79,9 +79,9 @@ in
addSSL = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable HTTPS in addition to plain HTTP. This will set defaults for
- listen to listen on all interfaces on the respective default
+ `listen` to listen on all interfaces on the respective default
ports (80, 443).
'';
};
@@ -89,19 +89,19 @@ in
onlySSL = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable HTTPS and reject plain HTTP connections. This will set
- defaults for listen to listen on all interfaces on port 443.
+ defaults for `listen` to listen on all interfaces on port 443.
'';
};
forceSSL = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to add a separate nginx server block that permanently redirects (301)
all plain HTTP traffic to HTTPS. This will set defaults for
- listen to listen on all interfaces on the respective default
+ `listen` to listen on all interfaces on the respective default
ports (80, 443), where the non-SSL listens are used for the redirect vhosts.
'';
};
@@ -109,9 +109,9 @@ in
enableACME = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to ask Let's Encrypt to sign a certificate for this vhost.
- Alternately, you can use an existing certificate through .
+ Alternately, you can use an existing certificate through {option}`useACMEHost`.
'';
};
@@ -130,7 +130,7 @@ in
acmeRoot = mkOption {
type = types.nullOr types.str;
default = "/var/lib/acme/acme-challenge";
- description = ''
+ description = lib.mdDoc ''
Directory for the acme challenge which is PUBLIC, don't put certs or keys in here.
Set to null to inherit from config.security.acme.
'';
@@ -139,28 +139,28 @@ in
sslServerCert = mkOption {
type = types.path;
example = "/var/host.cert";
- description = "Path to server SSL certificate.";
+ description = lib.mdDoc "Path to server SSL certificate.";
};
sslServerKey = mkOption {
type = types.path;
example = "/var/host.key";
- description = "Path to server SSL certificate key.";
+ description = lib.mdDoc "Path to server SSL certificate key.";
};
sslServerChain = mkOption {
type = types.nullOr types.path;
default = null;
example = "/var/ca.pem";
- description = "Path to server SSL chain file.";
+ description = lib.mdDoc "Path to server SSL chain file.";
};
http2 = mkOption {
type = types.bool;
default = true;
- description = ''
- Whether to enable HTTP 2. HTTP/2 is supported in all multi-processing modules that come with httpd. However, if you use the prefork mpm, there will
- be severe restrictions. Refer to for details.
+ description = lib.mdDoc ''
+ Whether to enable HTTP 2. HTTP/2 is supported in all multi-processing modules that come with httpd. *However, if you use the prefork mpm, there will
+ be severe restrictions.* Refer to for details.
'';
};
@@ -168,14 +168,14 @@ in
type = types.nullOr types.str;
default = null;
example = "admin@example.org";
- description = "E-mail address of the server administrator.";
+ description = lib.mdDoc "E-mail address of the server administrator.";
};
documentRoot = mkOption {
type = types.nullOr types.path;
default = null;
example = "/data/webserver/docs";
- description = ''
+ description = lib.mdDoc ''
The path of Apache's document root directory. If left undefined,
an empty directory in the Nix store will be used as root.
'';
@@ -189,7 +189,7 @@ in
dir = "/home/eelco/Dev/nix-homepage";
}
];
- description = ''
+ description = lib.mdDoc ''
This option provides a simple way to serve static directories.
'';
};
@@ -222,7 +222,7 @@ in
AllowOverride All
'';
- description = ''
+ description = lib.mdDoc ''
These lines go to httpd.conf verbatim. They will go after
directories and directory aliases defined by default.
'';
@@ -231,9 +231,9 @@ in
enableUserDir = mkOption {
type = types.bool;
default = false;
- description = ''
- Whether to enable serving ~/public_html as
- /~«username».
+ description = lib.mdDoc ''
+ Whether to enable serving {file}`~/public_html` as
+ `/~«username»`.
'';
};
@@ -241,7 +241,7 @@ in
type = types.nullOr types.str;
default = null;
example = "http://newserver.example.org/";
- description = ''
+ description = lib.mdDoc ''
If set, all requests for this host are redirected permanently to
the given URL.
'';
@@ -251,7 +251,7 @@ in
type = types.str;
default = "common";
example = "combined";
- description = ''
+ description = lib.mdDoc ''
Log format for Apache's log files. Possible values are: combined, common, referer, agent.
'';
};
@@ -260,8 +260,8 @@ in
type = types.lines;
default = "";
example = "Disallow: /foo/";
- description = ''
- Specification of pages to be ignored by web crawlers. See for details.
+ description = lib.mdDoc ''
+ Specification of pages to be ignored by web crawlers. See for details.
'';
};
@@ -278,8 +278,8 @@ in
};
};
'';
- description = ''
- Declarative location config. See for details.
+ description = lib.mdDoc ''
+ Declarative location config. See for details.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/caddy/default.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/caddy/default.nix
index b262313577..7f6bc3c4a4 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/caddy/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/caddy/default.nix
@@ -86,7 +86,7 @@ in
default = pkgs.caddy;
defaultText = literalExpression "pkgs.caddy";
type = types.package;
- description = ''
+ description = lib.mdDoc ''
Caddy package to use.
'';
};
@@ -133,9 +133,9 @@ in
example = literalExpression ''
mkForce "level INFO";
'';
- description = ''
+ description = lib.mdDoc ''
Configuration for the default logger. See
-
+
for details.
'';
};
@@ -153,7 +153,7 @@ in
file_server
''';
'';
- description = ''
+ description = lib.mdDoc ''
Override the configuration file used by Caddy. By default,
NixOS generates one automatically.
'';
@@ -178,8 +178,8 @@ in
resume = mkOption {
default = false;
type = types.bool;
- description = ''
- Use saved config, if any (and prefer over any specified configuration passed with --config).
+ description = lib.mdDoc ''
+ Use saved config, if any (and prefer over any specified configuration passed with `--config`).
'';
};
@@ -194,11 +194,11 @@ in
}
}
'';
- description = ''
+ description = lib.mdDoc ''
Additional lines of configuration appended to the global config section
- of the Caddyfile.
+ of the `Caddyfile`.
- Refer to
+ Refer to
for details on supported values.
'';
};
@@ -213,9 +213,9 @@ in
root /srv/http
}
'';
- description = ''
+ description = lib.mdDoc ''
Additional lines of configuration appended to the automatically
- generated Caddyfile.
+ generated `Caddyfile`.
'';
};
@@ -233,7 +233,7 @@ in
};
};
'';
- description = ''
+ description = lib.mdDoc ''
Declarative specification of virtual hosts served by Caddy.
'';
};
@@ -242,11 +242,11 @@ in
default = "https://acme-v02.api.letsencrypt.org/directory";
example = "https://acme-staging-v02.api.letsencrypt.org/directory";
type = with types; nullOr str;
- description = ''
+ description = lib.mdDoc ''
The URL to the ACME CA's directory. It is strongly recommended to set
this to Let's Encrypt's staging endpoint for testing or development.
- Set it to null if you want to write a more
+ Set it to `null` if you want to write a more
fine-grained configuration manually.
'';
};
@@ -254,7 +254,7 @@ in
email = mkOption {
default = null;
type = with types; nullOr str;
- description = ''
+ description = lib.mdDoc ''
Your email address. Mainly used when creating an ACME account with your
CA, and is highly recommended in case there are problems with your
certificates.
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/caddy/vhost-options.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/caddy/vhost-options.nix
index f240ec605c..ed4902b037 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/caddy/vhost-options.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/caddy/vhost-options.nix
@@ -9,21 +9,21 @@ in
hostName = mkOption {
type = types.str;
default = name;
- description = "Canonical hostname for the server.";
+ description = lib.mdDoc "Canonical hostname for the server.";
};
serverAliases = mkOption {
type = with types; listOf str;
default = [ ];
example = [ "www.example.org" "example.org" ];
- description = ''
+ description = lib.mdDoc ''
Additional names of virtual hosts served by this virtual host configuration.
'';
};
listenAddresses = mkOption {
type = with types; listOf str;
- description = ''
+ description = lib.mdDoc ''
A list of host interfaces to bind to for this virtual host.
'';
default = [ ];
@@ -59,9 +59,9 @@ in
output discard
''';
'';
- description = ''
+ description = lib.mdDoc ''
Configuration for HTTP request logging (also known as access logs). See
-
+
for details.
'';
};
@@ -69,9 +69,9 @@ in
extraConfig = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Additional lines of configuration appended to this virtual host in the
- automatically generated Caddyfile.
+ automatically generated `Caddyfile`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/darkhttpd.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/darkhttpd.nix
index 5663e9ca9d..ca079ea005 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/darkhttpd.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/darkhttpd.nix
@@ -29,7 +29,7 @@ in {
address = mkOption {
default = "127.0.0.1";
type = str;
- description = ''
+ description = lib.mdDoc ''
Address to listen on.
Pass `all` to listen on all interfaces.
'';
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/hydron.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/hydron.nix
index 046d527b2a..292493c4c7 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/hydron.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/hydron.nix
@@ -17,12 +17,11 @@ in with lib; {
type = types.str;
default = "weekly";
example = "06:00";
- description = ''
+ description = lib.mdDoc ''
How often we run hydron import and possibly fetch tags. Runs by default every week.
The format is described in
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/keter/bundle.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/keter/bundle.nix
new file mode 100644
index 0000000000..32b08c3be2
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/keter/bundle.nix
@@ -0,0 +1,40 @@
+/* This makes a keter bundle as described on the github page:
+ https://github.com/snoyberg/keter#bundling-your-app-for-keter
+*/
+{ keterDomain
+, keterExecutable
+, gnutar
+, writeTextFile
+, lib
+, stdenv
+, ...
+}:
+
+let
+ str.stanzas = [{
+ # we just use nix as an absolute path so we're not bundling any binaries
+ type = "webapp";
+ /* Note that we're not actually putting the executable in the bundle,
+ we already can use the nix store for copying, so we just
+ symlink to the app. */
+ exec = keterExecutable;
+ host = keterDomain;
+ }];
+ configFile = writeTextFile {
+ name = "keter.yml";
+ text = (lib.generators.toYAML { } str);
+ };
+
+in
+stdenv.mkDerivation {
+ name = "keter-bundle";
+ buildCommand = ''
+ mkdir -p config
+ cp ${configFile} config/keter.yaml
+
+ echo 'create a gzipped tarball'
+ mkdir -p $out
+ tar -zcvf $out/bundle.tar.gz.keter ./.
+ '';
+ buildInputs = [ gnutar ];
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/keter/default.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/keter/default.nix
new file mode 100644
index 0000000000..83e221add3
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/keter/default.nix
@@ -0,0 +1,162 @@
+{ config, pkgs, lib, ... }:
+let
+ cfg = config.services.keter;
+in
+{
+ meta = {
+ maintainers = with lib.maintainers; [ jappie ];
+ };
+
+ options.services.keter = {
+ enable = lib.mkEnableOption ''keter, a web app deployment manager.
+Note that this module only support loading of webapps:
+Keep an old app running and swap the ports when the new one is booted.
+'';
+
+ keterRoot = lib.mkOption {
+ type = lib.types.str;
+ default = "/var/lib/keter";
+ description = "Mutable state folder for keter";
+ };
+
+ keterPackage = lib.mkOption {
+ type = lib.types.package;
+ default = pkgs.haskellPackages.keter;
+ defaultText = lib.literalExpression "pkgs.haskellPackages.keter";
+ description = "The keter package to be used";
+ };
+
+ globalKeterConfig = lib.mkOption {
+ type = lib.types.attrs;
+ default = {
+ ip-from-header = true;
+ listeners = [{
+ host = "*4";
+ port = 6981;
+ }];
+ };
+ # You want that ip-from-header in the nginx setup case
+ # so it's not set to 127.0.0.1.
+ # using a port above 1024 allows you to avoid needing CAP_NET_BIND_SERVICE
+ defaultText = lib.literalExpression ''
+ {
+ ip-from-header = true;
+ listeners = [{
+ host = "*4";
+ port = 6981;
+ }];
+ }
+ '';
+ description = "Global config for keter";
+ };
+
+ bundle = {
+ appName = lib.mkOption {
+ type = lib.types.str;
+ default = "myapp";
+ description = "The name keter assigns to this bundle";
+ };
+
+ executable = lib.mkOption {
+ type = lib.types.path;
+ description = "The executable to be run";
+ };
+
+ domain = lib.mkOption {
+ type = lib.types.str;
+ default = "example.com";
+ description = "The domain keter will bind to";
+ };
+
+ publicScript = lib.mkOption {
+ type = lib.types.str;
+ default = "";
+ description = ''
+ Allows loading of public environment variables,
+ these are emitted to the log so it shouldn't contain secrets.
+ '';
+ example = "ADMIN_EMAIL=hi@example.com";
+ };
+
+ secretScript = lib.mkOption {
+ type = lib.types.str;
+ default = "";
+ description = "Allows loading of private environment variables";
+ example = "MY_AWS_KEY=$(cat /run/keys/AWS_ACCESS_KEY_ID)";
+ };
+ };
+
+ };
+
+ config = lib.mkIf cfg.enable (
+ let
+ incoming = "${cfg.keterRoot}/incoming";
+
+
+ globalKeterConfigFile = pkgs.writeTextFile {
+ name = "keter-config.yml";
+ text = (lib.generators.toYAML { } (cfg.globalKeterConfig // { root = cfg.keterRoot; }));
+ };
+
+ # If things are expected to change often, put it in the bundle!
+ bundle = pkgs.callPackage ./bundle.nix
+ (cfg.bundle // { keterExecutable = executable; keterDomain = cfg.bundle.domain; });
+
+ # This indirection is required to ensure the nix path
+ # gets copied over to the target machine in remote deployments.
+ # Furthermore, it's important that we use exec to
+ # run the binary otherwise we get process leakage due to this
+ # being executed on every change.
+ executable = pkgs.writeShellScript "bundle-wrapper" ''
+ set -e
+ ${cfg.bundle.secretScript}
+ set -xe
+ ${cfg.bundle.publicScript}
+ exec ${cfg.bundle.executable}
+ '';
+
+ in
+ {
+ systemd.services.keter = {
+ description = "keter app loader";
+ script = ''
+ set -xe
+ mkdir -p ${incoming}
+ { tail -F ${cfg.keterRoot}/log/keter/current.log -n 0 & ${cfg.keterPackage}/bin/keter ${globalKeterConfigFile}; }
+ '';
+ wantedBy = [ "multi-user.target" "nginx.service" ];
+
+ serviceConfig = {
+ Restart = "always";
+ RestartSec = "10s";
+ };
+
+ after = [
+ "network.target"
+ "local-fs.target"
+ "postgresql.service"
+ ];
+ };
+
+ # On deploy this will load our app, by moving it into the incoming dir
+ # If the bundle content changes, this will run again.
+ # Because the bundle content contains the nix path to the exectuable,
+ # we inherit nix based cache busting.
+ systemd.services.load-keter-bundle = {
+ description = "load keter bundle into incoming folder";
+ after = [ "keter.service" ];
+ wantedBy = [ "multi-user.target" ];
+ # we can't override keter bundles because it'll stop the previous app
+ # https://github.com/snoyberg/keter#deploying
+ script = ''
+ set -xe
+ cp ${bundle}/bundle.tar.gz.keter ${incoming}/${cfg.bundle.appName}.keter
+ '';
+ path = [
+ executable
+ cfg.bundle.executable
+ ]; # this is a hack to get the executable copied over to the machine.
+ };
+ }
+ );
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/minio.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/minio.nix
index f4fca2275e..60e3068521 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/minio.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/minio.nix
@@ -102,7 +102,7 @@ in
systemd.services.minio = {
description = "Minio Object Storage";
- after = [ "network.target" ];
+ after = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${cfg.package}/bin/minio server --json --address ${cfg.listenAddress} --console-address ${cfg.consoleAddress} --config-dir=${cfg.configDir} ${toString cfg.dataDir}";
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
index 166f38f9ea..0c4b2246a1 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
@@ -390,50 +390,50 @@ in
statusPage = mkOption {
default = false;
type = types.bool;
- description = "
+ description = lib.mdDoc ''
Enable status page reachable from localhost on http://127.0.0.1/nginx_status.
- ";
+ '';
};
recommendedTlsSettings = mkOption {
default = false;
type = types.bool;
- description = "
+ description = lib.mdDoc ''
Enable recommended TLS settings.
- ";
+ '';
};
recommendedOptimisation = mkOption {
default = false;
type = types.bool;
- description = "
+ description = lib.mdDoc ''
Enable recommended optimisation settings.
- ";
+ '';
};
recommendedGzipSettings = mkOption {
default = false;
type = types.bool;
- description = "
+ description = lib.mdDoc ''
Enable recommended gzip settings.
- ";
+ '';
};
recommendedProxySettings = mkOption {
default = false;
type = types.bool;
- description = "
+ description = lib.mdDoc ''
Whether to enable recommended proxy settings if a vhost does not specify the option manually.
- ";
+ '';
};
proxyTimeout = mkOption {
type = types.str;
default = "60s";
example = "20s";
- description = "
+ description = lib.mdDoc ''
Change the proxy related timeouts in recommendedProxySettings.
- ";
+ '';
};
defaultListenAddresses = mkOption {
@@ -441,9 +441,9 @@ in
default = [ "0.0.0.0" ] ++ optional enableIPv6 "[::0]";
defaultText = literalExpression ''[ "0.0.0.0" ] ++ lib.optional config.networking.enableIPv6 "[::0]"'';
example = literalExpression ''[ "10.0.0.12" "[2002:a00:1::]" ]'';
- description = "
+ description = lib.mdDoc ''
If vhosts do not specify listenAddresses, use these addresses by default.
- ";
+ '';
};
package = mkOption {
@@ -453,28 +453,28 @@ in
apply = p: p.override {
modules = p.modules ++ cfg.additionalModules;
};
- description = "
+ description = lib.mdDoc ''
Nginx package to use. This defaults to the stable version. Note
that the nginx team recommends to use the mainline version which
- available in nixpkgs as nginxMainline.
- ";
+ available in nixpkgs as `nginxMainline`.
+ '';
};
additionalModules = mkOption {
default = [];
type = types.listOf (types.attrsOf types.anything);
example = literalExpression "[ pkgs.nginxModules.brotli ]";
- description = ''
- Additional third-party nginx modules
+ description = lib.mdDoc ''
+ Additional [third-party nginx modules](https://www.nginx.com/resources/wiki/modules/)
to install. Packaged modules are available in
- pkgs.nginxModules.
+ `pkgs.nginxModules`.
'';
};
logError = mkOption {
default = "stderr";
type = types.str;
- description = "
+ description = lib.mdDoc ''
Configures logging.
The first parameter defines a file that will store the log. The
special value stderr selects the standard error file. Logging to
@@ -485,15 +485,15 @@ in
increasing severity. Setting a certain log level will cause all
messages of the specified and more severe log levels to be logged.
If this parameter is omitted then error is used.
- ";
+ '';
};
preStart = mkOption {
type = types.lines;
default = "";
- description = "
+ description = lib.mdDoc ''
Shell commands executed before the service's nginx is started.
- ";
+ '';
};
config = mkOption {
@@ -520,12 +520,12 @@ in
appendConfig = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Configuration lines appended to the generated Nginx
configuration file. Commonly used by different modules
- providing http snippets.
+ providing http snippets. {option}`appendConfig`
can be specified more than once and it's value will be
- concatenated (contrary to which
+ concatenated (contrary to {option}`config` which
can be set only once).
'';
};
@@ -540,7 +540,7 @@ in
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
'';
- description = ''
+ description = lib.mdDoc ''
With nginx you must provide common http context definitions before
they are used, e.g. log_format, resolver, etc. inside of server
or location contexts. Use this attribute to set these definitions
@@ -551,12 +551,12 @@ in
httpConfig = mkOption {
type = types.lines;
default = "";
- description = "
+ description = lib.mdDoc ''
Configuration lines to be set inside the http block.
This is mutually exclusive with the structured configuration
via virtualHosts and the recommendedXyzSettings configuration
options. See appendHttpConfig for appending to the generated http block.
- ";
+ '';
};
streamConfig = mkOption {
@@ -569,15 +569,15 @@ in
proxy_pass 192.168.0.1:53535;
}
'';
- description = "
+ description = lib.mdDoc ''
Configuration lines to be set inside the stream block.
- ";
+ '';
};
eventsConfig = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
Configuration lines to be set inside the events block.
'';
};
@@ -585,72 +585,72 @@ in
appendHttpConfig = mkOption {
type = types.lines;
default = "";
- description = "
+ description = lib.mdDoc ''
Configuration lines to be appended to the generated http block.
This is mutually exclusive with using config and httpConfig for
specifying the whole http block verbatim.
- ";
+ '';
};
enableReload = mkOption {
default = false;
type = types.bool;
- description = ''
+ description = lib.mdDoc ''
Reload nginx when configuration file changes (instead of restart).
- The configuration file is exposed at /etc/nginx/nginx.conf.
- See also systemd.services.*.restartIfChanged.
+ The configuration file is exposed at {file}`/etc/nginx/nginx.conf`.
+ See also `systemd.services.*.restartIfChanged`.
'';
};
user = mkOption {
type = types.str;
default = "nginx";
- description = "User account under which nginx runs.";
+ description = lib.mdDoc "User account under which nginx runs.";
};
group = mkOption {
type = types.str;
default = "nginx";
- description = "Group account under which nginx runs.";
+ description = lib.mdDoc "Group account under which nginx runs.";
};
serverTokens = mkOption {
type = types.bool;
default = false;
- description = "Show nginx version in headers and error pages.";
+ description = lib.mdDoc "Show nginx version in headers and error pages.";
};
clientMaxBodySize = mkOption {
type = types.str;
default = "10m";
- description = "Set nginx global client_max_body_size.";
+ description = lib.mdDoc "Set nginx global client_max_body_size.";
};
sslCiphers = mkOption {
type = types.nullOr types.str;
# Keep in sync with https://ssl-config.mozilla.org/#server=nginx&config=intermediate
default = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
- description = "Ciphers to choose from when negotiating TLS handshakes.";
+ description = lib.mdDoc "Ciphers to choose from when negotiating TLS handshakes.";
};
sslProtocols = mkOption {
type = types.str;
default = "TLSv1.2 TLSv1.3";
example = "TLSv1 TLSv1.1 TLSv1.2 TLSv1.3";
- description = "Allowed TLS protocol versions.";
+ description = lib.mdDoc "Allowed TLS protocol versions.";
};
sslDhparam = mkOption {
type = types.nullOr types.path;
default = null;
example = "/path/to/dhparams.pem";
- description = "Path to DH parameters file.";
+ description = lib.mdDoc "Path to DH parameters file.";
};
proxyResolveWhileRunning = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Resolves domains of proxyPass targets at runtime
and not only at start, you have to set
services.nginx.resolver, too.
@@ -660,7 +660,7 @@ in
mapHashBucketSize = mkOption {
type = types.nullOr (types.enum [ 32 64 128 ]);
default = null;
- description = ''
+ description = lib.mdDoc ''
Sets the bucket size for the map variables hash tables. Default
value depends on the processor’s cache line size.
'';
@@ -669,7 +669,7 @@ in
mapHashMaxSize = mkOption {
type = types.nullOr types.ints.positive;
default = null;
- description = ''
+ description = lib.mdDoc ''
Sets the maximum size of the map variables hash tables.
'';
};
@@ -677,7 +677,7 @@ in
serverNamesHashBucketSize = mkOption {
type = types.nullOr types.ints.positive;
default = null;
- description = ''
+ description = lib.mdDoc ''
Sets the bucket size for the server names hash tables. Default
value depends on the processor’s cache line size.
'';
@@ -686,7 +686,7 @@ in
serverNamesHashMaxSize = mkOption {
type = types.nullOr types.ints.positive;
default = null;
- description = ''
+ description = lib.mdDoc ''
Sets the maximum size of the server names hash tables.
'';
};
@@ -698,13 +698,13 @@ in
type = types.listOf types.str;
default = [];
example = literalExpression ''[ "[::1]" "127.0.0.1:5353" ]'';
- description = "List of resolvers to use";
+ description = lib.mdDoc "List of resolvers to use";
};
valid = mkOption {
type = types.str;
default = "";
example = "30s";
- description = ''
+ description = lib.mdDoc ''
By default, nginx caches answers using the TTL value of a response.
An optional valid parameter allows overriding it
'';
@@ -712,7 +712,7 @@ in
ipv6 = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
By default, nginx will look up both IPv4 and IPv6 addresses while resolving.
If looking up of IPv6 addresses is not desired, the ipv6=off parameter can be
specified.
@@ -720,7 +720,7 @@ in
};
};
};
- description = ''
+ description = lib.mdDoc ''
Configures name servers used to resolve names of upstream servers into addresses
'';
default = {};
@@ -735,14 +735,14 @@ in
backup = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Marks the server as a backup server. It will be passed
requests when the primary servers are unavailable.
'';
};
};
});
- description = ''
+ description = lib.mdDoc ''
Defines the address and other parameters of the upstream servers.
'';
default = {};
@@ -751,13 +751,13 @@ in
extraConfig = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
These lines go to the end of the upstream verbatim.
'';
};
};
});
- description = ''
+ description = lib.mdDoc ''
Defines a group of servers to use as proxy target.
'';
default = {};
@@ -789,7 +789,7 @@ in
};
};
'';
- description = "Declarative vhost config";
+ description = lib.mdDoc "Declarative vhost config";
};
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/location-options.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/location-options.nix
index 49dd889301..2728852058 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/location-options.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/location-options.nix
@@ -17,7 +17,7 @@ with lib;
user = "password";
};
'';
- description = ''
+ description = lib.mdDoc ''
Basic Auth protection for a vhost.
WARNING: This is implemented to store the password in plain text in the
@@ -28,9 +28,9 @@ with lib;
basicAuthFile = mkOption {
type = types.nullOr types.path;
default = null;
- description = ''
+ description = lib.mdDoc ''
Basic Auth password file for a vhost.
- Can be created via: htpasswd -c <filename> <username>.
+ Can be created via: {command}`htpasswd -c `.
WARNING: The generate file contains the users' passwords in a
non-cryptographically-securely hashed way.
@@ -41,7 +41,7 @@ with lib;
type = types.nullOr types.str;
default = null;
example = "http://www.example.org/";
- description = ''
+ description = lib.mdDoc ''
Adds proxy_pass directive and sets recommended proxy headers if
recommendedProxySettings is enabled.
'';
@@ -51,7 +51,7 @@ with lib;
type = types.bool;
default = false;
example = true;
- description = ''
+ description = lib.mdDoc ''
Whether to support proxying websocket connections with HTTP/1.1.
'';
};
@@ -60,7 +60,7 @@ with lib;
type = types.nullOr types.str;
default = null;
example = "index.php index.html";
- description = ''
+ description = lib.mdDoc ''
Adds index directive.
'';
};
@@ -69,7 +69,7 @@ with lib;
type = types.nullOr types.str;
default = null;
example = "$uri =404";
- description = ''
+ description = lib.mdDoc ''
Adds try_files directive.
'';
};
@@ -78,7 +78,7 @@ with lib;
type = types.nullOr types.path;
default = null;
example = "/your/root/directory";
- description = ''
+ description = lib.mdDoc ''
Root directory for requests.
'';
};
@@ -87,7 +87,7 @@ with lib;
type = types.nullOr types.path;
default = null;
example = "/your/alias/directory";
- description = ''
+ description = lib.mdDoc ''
Alias directory for requests.
'';
};
@@ -96,7 +96,7 @@ with lib;
type = types.nullOr types.str;
default = null;
example = "301 http://example.com$request_uri";
- description = ''
+ description = lib.mdDoc ''
Adds a return directive, for e.g. redirections.
'';
};
@@ -104,7 +104,7 @@ with lib;
fastcgiParams = mkOption {
type = types.attrsOf (types.either types.str types.path);
default = {};
- description = ''
+ description = lib.mdDoc ''
FastCGI parameters to override. Unlike in the Nginx
configuration file, overriding only some default parameters
won't unset the default values for other parameters.
@@ -114,7 +114,7 @@ with lib;
extraConfig = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
These lines go to the end of the location verbatim.
'';
};
@@ -122,7 +122,7 @@ with lib;
priority = mkOption {
type = types.int;
default = 1000;
- description = ''
+ description = lib.mdDoc ''
Order of this location block in relation to the others in the vhost.
The semantics are the same as with `lib.mkOrder`. Smaller values have
a greater priority.
@@ -133,7 +133,7 @@ with lib;
type = types.bool;
default = config.services.nginx.recommendedProxySettings;
defaultText = literalExpression "config.services.nginx.recommendedProxySettings";
- description = ''
+ description = lib.mdDoc ''
Enable recommended proxy settings.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/vhost-options.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/vhost-options.nix
index 61eef9f7ac..96006f8875 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/vhost-options.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/vhost-options.nix
@@ -11,7 +11,7 @@ with lib;
serverName = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Name of this virtual host. Defaults to attribute name in virtualHosts.
'';
example = "example.org";
@@ -21,43 +21,43 @@ with lib;
type = types.listOf types.str;
default = [];
example = [ "www.example.org" "example.org" ];
- description = ''
+ description = lib.mdDoc ''
Additional names of virtual hosts served by this virtual host configuration.
'';
};
listen = mkOption {
type = with types; listOf (submodule { options = {
- addr = mkOption { type = str; description = "IP address."; };
- port = mkOption { type = int; description = "Port number."; default = 80; };
- ssl = mkOption { type = bool; description = "Enable SSL."; default = false; };
- extraParameters = mkOption { type = listOf str; description = "Extra parameters of this listen directive."; default = []; example = [ "backlog=1024" "deferred" ]; };
+ addr = mkOption { type = str; description = lib.mdDoc "IP address."; };
+ port = mkOption { type = int; description = lib.mdDoc "Port number."; default = 80; };
+ ssl = mkOption { type = bool; description = lib.mdDoc "Enable SSL."; default = false; };
+ extraParameters = mkOption { type = listOf str; description = lib.mdDoc "Extra parameters of this listen directive."; default = []; example = [ "backlog=1024" "deferred" ]; };
}; });
default = [];
example = [
{ addr = "195.154.1.1"; port = 443; ssl = true; }
{ addr = "192.154.1.1"; port = 80; }
];
- description = ''
+ description = lib.mdDoc ''
Listen addresses and ports for this virtual host.
IPv6 addresses must be enclosed in square brackets.
- Note: this option overrides addSSL
- and onlySSL.
+ Note: this option overrides `addSSL`
+ and `onlySSL`.
If you only want to set the addresses manually and not
- the ports, take a look at listenAddresses
+ the ports, take a look at `listenAddresses`
'';
};
listenAddresses = mkOption {
type = with types; listOf str;
- description = ''
+ description = lib.mdDoc ''
Listen addresses for this virtual host.
- Compared to listen this only sets the addreses
+ Compared to `listen` this only sets the addreses
and the ports are choosen automatically.
- Note: This option overrides enableIPv6
+ Note: This option overrides `enableIPv6`
'';
default = [];
example = [ "127.0.0.1" "[::1]" ];
@@ -66,9 +66,9 @@ with lib;
enableACME = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to ask Let's Encrypt to sign a certificate for this vhost.
- Alternately, you can use an existing certificate through .
+ Alternately, you can use an existing certificate through {option}`useACMEHost`.
'';
};
@@ -87,7 +87,7 @@ with lib;
acmeRoot = mkOption {
type = types.nullOr types.str;
default = "/var/lib/acme/acme-challenge";
- description = ''
+ description = lib.mdDoc ''
Directory for the acme challenge which is PUBLIC, don't put certs or keys in here.
Set to null to inherit from config.security.acme.
'';
@@ -96,7 +96,7 @@ with lib;
acmeFallbackHost = mkOption {
type = types.nullOr types.str;
default = null;
- description = ''
+ description = lib.mdDoc ''
Host which to proxy requests to if acme challenge is not found. Useful
if you want multiple hosts to be able to verify the same domain name.
'';
@@ -105,9 +105,9 @@ with lib;
addSSL = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable HTTPS in addition to plain HTTP. This will set defaults for
- listen to listen on all interfaces on the respective default
+ `listen` to listen on all interfaces on the respective default
ports (80, 443).
'';
};
@@ -115,9 +115,9 @@ with lib;
onlySSL = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable HTTPS and reject plain HTTP connections. This will set
- defaults for listen to listen on all interfaces on port 443.
+ defaults for `listen` to listen on all interfaces on port 443.
'';
};
@@ -130,10 +130,10 @@ with lib;
forceSSL = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to add a separate nginx server block that permanently redirects (301)
all plain HTTP traffic to HTTPS. This will set defaults for
- listen to listen on all interfaces on the respective default
+ `listen` to listen on all interfaces on the respective default
ports (80, 443), where the non-SSL listens are used for the redirect vhosts.
'';
};
@@ -141,11 +141,11 @@ with lib;
rejectSSL = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to listen for and reject all HTTPS connections to this vhost. Useful in
- default
+ [default](#opt-services.nginx.virtualHosts._name_.default)
server blocks to avoid serving the certificate for another vhost. Uses the
- ssl_reject_handshake directive available in nginx versions
+ `ssl_reject_handshake` directive available in nginx versions
1.19.4 and above.
'';
};
@@ -153,7 +153,7 @@ with lib;
kTLS = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable kTLS support.
Implementing TLS in the kernel (kTLS) improves performance by significantly
reducing the need for copying operations between user space and the kernel.
@@ -164,26 +164,26 @@ with lib;
sslCertificate = mkOption {
type = types.path;
example = "/var/host.cert";
- description = "Path to server SSL certificate.";
+ description = lib.mdDoc "Path to server SSL certificate.";
};
sslCertificateKey = mkOption {
type = types.path;
example = "/var/host.key";
- description = "Path to server SSL certificate key.";
+ description = lib.mdDoc "Path to server SSL certificate key.";
};
sslTrustedCertificate = mkOption {
type = types.nullOr types.path;
default = null;
example = literalExpression ''"''${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"'';
- description = "Path to root SSL certificate for stapling and client certificates.";
+ description = lib.mdDoc "Path to root SSL certificate for stapling and client certificates.";
};
http2 = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether to enable HTTP 2.
Note that (as of writing) due to nginx's implementation, to disable
HTTP 2 you have to disable it on all vhosts that use a given
@@ -197,10 +197,10 @@ with lib;
http3 = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable HTTP 3.
- This requires using pkgs.nginxQuic package
- which can be achieved by setting services.nginx.package = pkgs.nginxQuic;.
+ This requires using `pkgs.nginxQuic` package
+ which can be achieved by setting `services.nginx.package = pkgs.nginxQuic;`.
Note that HTTP 3 support is experimental and
*not* yet recommended for production.
Read more at https://quic.nginx.org/
@@ -210,7 +210,7 @@ with lib;
reuseport = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Create an individual listening socket .
It is required to specify only once on one of the hosts.
'';
@@ -220,7 +220,7 @@ with lib;
type = types.nullOr types.path;
default = null;
example = "/data/webserver/docs";
- description = ''
+ description = lib.mdDoc ''
The path of the web root directory.
'';
};
@@ -228,7 +228,7 @@ with lib;
default = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Makes this vhost the default.
'';
};
@@ -236,7 +236,7 @@ with lib;
extraConfig = mkOption {
type = types.lines;
default = "";
- description = ''
+ description = lib.mdDoc ''
These lines go to the end of the vhost verbatim.
'';
};
@@ -245,7 +245,7 @@ with lib;
type = types.nullOr types.str;
default = null;
example = "newserver.example.org";
- description = ''
+ description = lib.mdDoc ''
If set, all requests for this host are redirected permanently to
the given hostname.
'';
@@ -259,7 +259,7 @@ with lib;
user = "password";
};
'';
- description = ''
+ description = lib.mdDoc ''
Basic Auth protection for a vhost.
WARNING: This is implemented to store the password in plain text in the
@@ -270,9 +270,9 @@ with lib;
basicAuthFile = mkOption {
type = types.nullOr types.path;
default = null;
- description = ''
+ description = lib.mdDoc ''
Basic Auth password file for a vhost.
- Can be created via: htpasswd -c <filename> <username>.
+ Can be created via: {command}`htpasswd -c `.
WARNING: The generate file contains the users' passwords in a
non-cryptographically-securely hashed way.
@@ -291,7 +291,7 @@ with lib;
};
};
'';
- description = "Declarative location config";
+ description = lib.mdDoc "Declarative location config";
};
};
}
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/tomcat.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/tomcat.nix
index ec7f46e25e..95c307dba6 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/tomcat.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/tomcat.nix
@@ -34,7 +34,7 @@ in
purifyOnStart = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
On startup, the `baseDir` directory is populated with various files,
subdirectories and symlinks. If this option is enabled, these items
(except for the `logs` and `work` subdirectories) are first removed.
@@ -46,7 +46,7 @@ in
baseDir = mkOption {
type = lib.types.path;
default = "/var/tomcat";
- description = ''
+ description = lib.mdDoc ''
Location where Tomcat stores configuration files, web applications
and logfiles. Note that it is partially cleared on each service startup
if `purifyOnStart` is enabled.
@@ -112,10 +112,10 @@ in
serverXml = mkOption {
type = types.lines;
default = "";
- description = "
+ description = lib.mdDoc ''
Verbatim server.xml configuration.
This is mutually exclusive with the virtualHosts options.
- ";
+ '';
};
commonLibs = mkOption {
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/varnish/default.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/varnish/default.nix
index 39ebe63387..c812c36642 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/varnish/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/varnish/default.nix
@@ -27,43 +27,43 @@ in
http_address = mkOption {
type = types.str;
default = "*:6081";
- description = "
+ description = lib.mdDoc ''
HTTP listen address and port.
- ";
+ '';
};
config = mkOption {
type = types.lines;
- description = "
+ description = lib.mdDoc ''
Verbatim default.vcl configuration.
- ";
+ '';
};
stateDir = mkOption {
type = types.path;
default = "/var/spool/varnish/${config.networking.hostName}";
defaultText = literalExpression ''"/var/spool/varnish/''${config.networking.hostName}"'';
- description = "
+ description = lib.mdDoc ''
Directory holding all state for Varnish to run.
- ";
+ '';
};
extraModules = mkOption {
type = types.listOf types.package;
default = [];
example = literalExpression "[ pkgs.varnishPackages.geoip ]";
- description = "
+ description = lib.mdDoc ''
Varnish modules (except 'std').
- ";
+ '';
};
extraCommandLine = mkOption {
type = types.str;
default = "";
example = "-s malloc,256M";
- description = "
+ description = lib.mdDoc ''
Command line switches for varnishd (run 'varnishd -?' to get list of options)
- ";
+ '';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix
index 5a7d9e28b5..a8e0bf9ddd 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix
@@ -58,13 +58,18 @@ in
};
config = mkMerge [
- (mkIf (cfg.enable && config.services.xserver.displayManager.lightdm.enable && config.services.xserver.displayManager.lightdm.greeters.gtk.enable) {
- services.xserver.displayManager.lightdm.greeters.gtk.extraConfig = mkDefault (builtins.readFile "${pkgs.cinnamon.mint-artwork}/etc/lightdm/lightdm-gtk-greeter.conf.d/99_linuxmint.conf");
- })
-
(mkIf cfg.enable {
services.xserver.displayManager.sessionPackages = [ pkgs.cinnamon.cinnamon-common ];
+ services.xserver.displayManager.lightdm.greeters.slick = {
+ enable = mkDefault true;
+
+ # Taken from mint-artwork.gschema.override
+ theme.name = mkDefault "Mint-X";
+ theme.package = mkDefault pkgs.cinnamon.mint-themes;
+ iconTheme.name = mkDefault "Mint-X-Dark";
+ iconTheme.package = mkDefault pkgs.cinnamon.mint-x-icons;
+ };
services.xserver.displayManager.sessionCommands = ''
if test "$XDG_CURRENT_DESKTOP" = "Cinnamon"; then
true
@@ -212,6 +217,7 @@ in
# external apps shipped with linux-mint
hexchat
gnome-calculator
+ gnome-screenshot
] config.environment.cinnamon.excludePackages;
})
];
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix
index ffdf7e9a86..a0fc3e4b5a 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix
@@ -33,25 +33,25 @@ in
type = types.enum [ "center" "fill" "max" "scale" "tile" ];
default = "scale";
example = "fill";
- description = ''
- The file ~/.background-image is used as a background image.
+ description = lib.mdDoc ''
+ The file {file}`~/.background-image` is used as a background image.
This option specifies the placement of this image onto your desktop.
Possible values:
- center: Center the image on the background. If it is too small, it will be surrounded by a black border.
- fill: Like scale, but preserves aspect ratio by zooming the image until it fits. Either a horizontal or a vertical part of the image will be cut off.
- max: Like fill, but scale the image to the maximum size that fits the screen with black borders on one side.
- scale: Fit the file into the background without repeating it, cutting off stuff or using borders. But the aspect ratio is not preserved either.
- tile: Tile (repeat) the image in case it is too small for the screen.
+ `center`: Center the image on the background. If it is too small, it will be surrounded by a black border.
+ `fill`: Like `scale`, but preserves aspect ratio by zooming the image until it fits. Either a horizontal or a vertical part of the image will be cut off.
+ `max`: Like `fill`, but scale the image to the maximum size that fits the screen with black borders on one side.
+ `scale`: Fit the file into the background without repeating it, cutting off stuff or using borders. But the aspect ratio is not preserved either.
+ `tile`: Tile (repeat) the image in case it is too small for the screen.
'';
};
combineScreens = mkOption {
type = types.bool;
default = false;
- description = ''
- When set to true the wallpaper will stretch across all screens.
- When set to false the wallpaper is duplicated to all screens.
+ description = lib.mdDoc ''
+ When set to `true` the wallpaper will stretch across all screens.
+ When set to `false` the wallpaper is duplicated to all screens.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.nix b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.nix
index bbecd2796a..b69102f046 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/gnome.nix
@@ -361,7 +361,8 @@ in
services.gnome.tracker-miners.enable = mkDefault true;
services.gnome.tracker.enable = mkDefault true;
services.hardware.bolt.enable = mkDefault true;
- services.packagekit.enable = mkDefault true;
+ # TODO: Enable once #177946 is resolved
+ # services.packagekit.enable = mkDefault true;
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true; # for controlling touchpad settings via gnome control center
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/none.nix b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/none.nix
index b5e498b67a..074b729cc3 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/none.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/none.nix
@@ -8,16 +8,16 @@ in
services.xserver.desktopManager.runXdgAutostartIfNone = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to run XDG autostart files for sessions without a desktop manager
(with only a window manager), these sessions usually don't handle XDG
autostart files by default.
- Some services like and
- use XDG autostart files to start.
- If this option is not set to true and you are using
+ Some services like {option}`i18n.inputMethod` and
+ {option}`service.earlyoom` use XDG autostart files to start.
+ If this option is not set to `true` and you are using
a window manager without a desktop manager, you need to manually start
- them or running dex somewhere.
+ them or running `dex` somewhere.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
index 2ada36c12a..94de7f4dd7 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -134,7 +134,8 @@ in
services.bamf.enable = true;
services.colord.enable = mkDefault true;
services.fwupd.enable = mkDefault true;
- services.packagekit.enable = mkDefault true;
+ # TODO: Enable once #177946 is resolved
+ # services.packagekit.enable = mkDefault true;
services.power-profiles-daemon.enable = mkDefault true;
services.touchegg.enable = mkDefault true;
services.touchegg.package = pkgs.pantheon.touchegg;
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/phosh.nix b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/phosh.nix
index 0ff5d6fd1b..2f670d3492 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/phosh.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/desktop-managers/phosh.nix
@@ -24,7 +24,7 @@ let
phocConfigType = types.submodule {
options = {
xwayland = mkOption {
- description = ''
+ description = lib.mdDoc ''
Whether to enable XWayland support.
To start XWayland immediately, use `immediate`.
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/default.nix b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/default.nix
index cc94fe7c0b..03bf5d1cd2 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/default.nix
@@ -35,6 +35,10 @@ let
# Shared environment setup for graphical sessions.
. /etc/profile
+ if test -f ~/.profile; then
+ source ~/.profile
+ fi
+
cd "$HOME"
# Allow the user to execute commands at the beginning of the X session.
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/slick.nix b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/slick.nix
new file mode 100644
index 0000000000..d9d15522c9
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/slick.nix
@@ -0,0 +1,118 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ ldmcfg = config.services.xserver.displayManager.lightdm;
+ cfg = ldmcfg.greeters.slick;
+
+ inherit (pkgs) writeText;
+
+ theme = cfg.theme.package;
+ icons = cfg.iconTheme.package;
+ font = cfg.font.package;
+
+ slickGreeterConf = writeText "slick-greeter.conf" ''
+ [Greeter]
+ background=${ldmcfg.background}
+ theme-name=${cfg.theme.name}
+ icon-theme-name=${cfg.iconTheme.name}
+ font-name=${cfg.font.name}
+ draw-user-backgrounds=${boolToString cfg.draw-user-backgrounds}
+ ${cfg.extraConfig}
+ '';
+in
+{
+ options = {
+ services.xserver.displayManager.lightdm.greeters.slick = {
+ enable = mkEnableOption "lightdm-slick-greeter as the lightdm greeter";
+
+ theme = {
+ package = mkOption {
+ type = types.package;
+ default = pkgs.gnome.gnome-themes-extra;
+ defaultText = literalExpression "pkgs.gnome.gnome-themes-extra";
+ description = lib.mdDoc ''
+ The package path that contains the theme given in the name option.
+ '';
+ };
+
+ name = mkOption {
+ type = types.str;
+ default = "Adwaita";
+ description = lib.mdDoc ''
+ Name of the theme to use for the lightdm-slick-greeter.
+ '';
+ };
+ };
+
+ iconTheme = {
+ package = mkOption {
+ type = types.package;
+ default = pkgs.gnome.adwaita-icon-theme;
+ defaultText = literalExpression "pkgs.gnome.adwaita-icon-theme";
+ description = lib.mdDoc ''
+ The package path that contains the icon theme given in the name option.
+ '';
+ };
+
+ name = mkOption {
+ type = types.str;
+ default = "Adwaita";
+ description = lib.mdDoc ''
+ Name of the icon theme to use for the lightdm-slick-greeter.
+ '';
+ };
+ };
+
+ font = {
+ package = mkOption {
+ type = types.package;
+ default = pkgs.ubuntu_font_family;
+ defaultText = literalExpression "pkgs.ubuntu_font_family";
+ description = lib.mdDoc ''
+ The package path that contains the font given in the name option.
+ '';
+ };
+
+ name = mkOption {
+ type = types.str;
+ default = "Ubuntu 11";
+ description = lib.mdDoc ''
+ Name of the font to use.
+ '';
+ };
+ };
+
+ draw-user-backgrounds = mkEnableOption "draw user backgrounds";
+
+ extraConfig = mkOption {
+ type = types.lines;
+ default = "";
+ description = lib.mdDoc ''
+ Extra configuration that should be put in the lightdm-slick-greeter.conf
+ configuration file.
+ '';
+ };
+ };
+ };
+
+ config = mkIf (ldmcfg.enable && cfg.enable) {
+ services.xserver.displayManager.lightdm = {
+ greeters.gtk.enable = false;
+ greeter = mkDefault {
+ package = pkgs.lightdm-slick-greeter.xgreeters;
+ name = "lightdm-slick-greeter";
+ };
+ };
+
+ environment.systemPackages = [
+ icons
+ theme
+ ];
+
+ fonts.fonts = [ font ];
+
+ environment.etc."lightdm/slick-greeter.conf".source = slickGreeterConf;
+ };
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix
index 302c8fe0d9..1d557fb5f3 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -82,6 +82,7 @@ in
./lightdm-greeters/enso-os.nix
./lightdm-greeters/pantheon.nix
./lightdm-greeters/tiny.nix
+ ./lightdm-greeters/slick.nix
(mkRenamedOptionModule [ "services" "xserver" "displayManager" "lightdm" "autoLogin" "enable" ] [
"services"
"xserver"
@@ -105,7 +106,7 @@ in
enable = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable lightdm as the display manager.
'';
};
@@ -114,14 +115,14 @@ in
enable = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
If set to false, run lightdm in greeterless mode. This only works if autologin
is enabled and autoLogin.timeout is zero.
'';
};
package = mkOption {
type = types.package;
- description = ''
+ description = lib.mdDoc ''
The LightDM greeter to login via. The package should be a directory
containing a .desktop file matching the name in the 'name' option.
'';
@@ -129,7 +130,7 @@ in
};
name = mkOption {
type = types.str;
- description = ''
+ description = lib.mdDoc ''
The name of a .desktop file in the directory specified
in the 'package' option.
'';
@@ -142,14 +143,14 @@ in
example = ''
user-authority-in-system-dir = true
'';
- description = "Extra lines to append to LightDM section.";
+ description = lib.mdDoc "Extra lines to append to LightDM section.";
};
background = mkOption {
type = types.either types.path (types.strMatching "^#[0-9]\{6\}$");
# Manual cannot depend on packages, we are actually setting the default in config below.
defaultText = literalExpression "pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom.gnomeFilePath";
- description = ''
+ description = lib.mdDoc ''
The background image or color to use.
'';
};
@@ -160,14 +161,14 @@ in
example = ''
greeter-show-manual-login=true
'';
- description = "Extra lines to append to SeatDefaults section.";
+ description = lib.mdDoc "Extra lines to append to SeatDefaults section.";
};
# Configuration for automatic login specific to LightDM
autoLogin.timeout = mkOption {
type = types.int;
default = 0;
- description = ''
+ description = lib.mdDoc ''
Show the greeter for this many seconds before automatic login occurs.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/services/x11/xserver.nix b/third_party/nixpkgs/nixos/modules/services/x11/xserver.nix
index d488e9b55d..dc48f3ac03 100644
--- a/third_party/nixpkgs/nixos/modules/services/x11/xserver.nix
+++ b/third_party/nixpkgs/nixos/modules/services/x11/xserver.nix
@@ -37,18 +37,16 @@ let
output = mkOption {
type = types.str;
example = "DVI-0";
- description = ''
- The output name of the monitor, as shown by
- xrandr
- 1
- invoked without arguments.
+ description = lib.mdDoc ''
+ The output name of the monitor, as shown by
+ {manpage}`xrandr(1)` invoked without arguments.
'';
};
primary = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether this head is treated as the primary monitor,
'';
};
@@ -60,11 +58,10 @@ let
DisplaySize 408 306
Option "DPMS" "false"
'';
- description = ''
- Extra lines to append to the Monitor section
+ description = lib.mdDoc ''
+ Extra lines to append to the `Monitor` section
verbatim. Available options are documented in the MONITOR section in
- xorg.conf
- 5.
+ {manpage}`xorg.conf(5)`.
'';
};
};
@@ -168,7 +165,7 @@ in
enable = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable the X server.
'';
};
@@ -176,7 +173,7 @@ in
autorun = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether to start the X server automatically.
'';
};
@@ -185,22 +182,22 @@ in
default = [];
example = literalExpression "[ pkgs.xterm ]";
type = types.listOf types.package;
- description = "Which X11 packages to exclude from the default environment";
+ description = lib.mdDoc "Which X11 packages to exclude from the default environment";
};
exportConfiguration = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to symlink the X server configuration under
- /etc/X11/xorg.conf.
+ {file}`/etc/X11/xorg.conf`.
'';
};
enableTCP = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to allow the X server to accept TCP connections.
'';
};
@@ -208,7 +205,7 @@ in
autoRepeatDelay = mkOption {
type = types.nullOr types.int;
default = null;
- description = ''
+ description = lib.mdDoc ''
Sets the autorepeat delay (length of time in milliseconds that a key must be depressed before autorepeat starts).
'';
};
@@ -216,7 +213,7 @@ in
autoRepeatInterval = mkOption {
type = types.nullOr types.int;
default = null;
- description = ''
+ description = lib.mdDoc ''
Sets the autorepeat interval (length of time in milliseconds that should elapse between autorepeat-generated keystrokes).
'';
};
@@ -234,21 +231,21 @@ in
'''
]
'';
- description = "Content of additional InputClass sections of the X server configuration file.";
+ description = lib.mdDoc "Content of additional InputClass sections of the X server configuration file.";
};
modules = mkOption {
type = types.listOf types.path;
default = [];
example = literalExpression "[ pkgs.xf86_input_wacom ]";
- description = "Packages to be added to the module search path of the X server.";
+ description = lib.mdDoc "Packages to be added to the module search path of the X server.";
};
resolutions = mkOption {
type = types.listOf types.attrs;
default = [];
example = [ { x = 1600; y = 1200; } { x = 1024; y = 786; } ];
- description = ''
+ description = lib.mdDoc ''
The screen resolutions for the X server. The first element
is the default resolution. If this list is empty, the X
server will automatically configure the resolution.
@@ -269,7 +266,7 @@ in
path = [ "xorg" n ];
title = removePrefix "xf86video" n;
}) pkgs.xorg);
- description = ''
+ description = lib.mdDoc ''
The names of the video drivers the configuration
supports. They will be tried in order until one that
supports your card is found.
@@ -285,10 +282,10 @@ in
type = types.nullOr types.str;
default = null;
example = "i810";
- description = ''
+ description = lib.mdDoc ''
The name of the video driver for your graphics card. This
option is obsolete; please set the
- instead.
+ {option}`services.xserver.videoDrivers` instead.
'';
};
@@ -304,17 +301,17 @@ in
dpi = mkOption {
type = types.nullOr types.int;
default = null;
- description = ''
+ description = lib.mdDoc ''
Force global DPI resolution to use for X server. It's recommended to
use this only when DPI is detected incorrectly; also consider using
- Monitor section in configuration file instead.
+ `Monitor` section in configuration file instead.
'';
};
updateDbusEnvironment = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to update the DBus activation environment after launching the
desktop manager.
'';
@@ -323,7 +320,7 @@ in
layout = mkOption {
type = types.str;
default = "us";
- description = ''
+ description = lib.mdDoc ''
Keyboard layout, or multiple keyboard layouts separated by commas.
'';
};
@@ -332,7 +329,7 @@ in
type = types.str;
default = "pc104";
example = "presario";
- description = ''
+ description = lib.mdDoc ''
Keyboard model.
'';
};
@@ -341,7 +338,7 @@ in
type = types.commas;
default = "terminate:ctrl_alt_bksp";
example = "grp:caps_toggle,grp_led:scroll";
- description = ''
+ description = lib.mdDoc ''
X keyboard options; layout switching goes here.
'';
};
@@ -350,7 +347,7 @@ in
type = types.str;
default = "";
example = "colemak";
- description = ''
+ description = lib.mdDoc ''
X keyboard variant.
'';
};
@@ -359,22 +356,22 @@ in
type = types.path;
default = "${pkgs.xkeyboard_config}/etc/X11/xkb";
defaultText = literalExpression ''"''${pkgs.xkeyboard_config}/etc/X11/xkb"'';
- description = ''
+ description = lib.mdDoc ''
Path used for -xkbdir xserver parameter.
'';
};
config = mkOption {
type = types.lines;
- description = ''
+ description = lib.mdDoc ''
The contents of the configuration file of the X server
- (xorg.conf).
+ ({file}`xorg.conf`).
This option is set by multiple modules, and the configs are
concatenated together.
In Xorg configs the last config entries take precedence,
- so you may want to use lib.mkAfter on this option
+ so you may want to use `lib.mkAfter` on this option
to override NixOS's defaults.
'';
};
@@ -383,14 +380,14 @@ in
type = types.lines;
default = "";
example = ''FontPath "/path/to/my/fonts"'';
- description = "Contents of the first Files section of the X server configuration file.";
+ description = lib.mdDoc "Contents of the first `Files` section of the X server configuration file.";
};
deviceSection = mkOption {
type = types.lines;
default = "";
example = "VideoRAM 131072";
- description = "Contents of the first Device section of the X server configuration file.";
+ description = lib.mdDoc "Contents of the first Device section of the X server configuration file.";
};
screenSection = mkOption {
@@ -399,20 +396,20 @@ in
example = ''
Option "RandRRotation" "on"
'';
- description = "Contents of the first Screen section of the X server configuration file.";
+ description = lib.mdDoc "Contents of the first Screen section of the X server configuration file.";
};
monitorSection = mkOption {
type = types.lines;
default = "";
example = "HorizSync 28-49";
- description = "Contents of the first Monitor section of the X server configuration file.";
+ description = lib.mdDoc "Contents of the first Monitor section of the X server configuration file.";
};
extraConfig = mkOption {
type = types.lines;
default = "";
- description = "Additional contents (sections) included in the X server configuration file";
+ description = lib.mdDoc "Additional contents (sections) included in the X server configuration file";
};
xrandrHeads = mkOption {
@@ -466,7 +463,7 @@ in
Option "SuspendTime" "0"
Option "OffTime" "0"
'';
- description = "Contents of the ServerFlags section of the X server configuration file.";
+ description = lib.mdDoc "Contents of the ServerFlags section of the X server configuration file.";
};
moduleSection = mkOption {
@@ -477,7 +474,7 @@ in
SubSection "extmod"
EndSubsection
'';
- description = "Contents of the Module section of the X server configuration file.";
+ description = lib.mdDoc "Contents of the Module section of the X server configuration file.";
};
serverLayoutSection = mkOption {
@@ -487,28 +484,28 @@ in
''
Option "AIGLX" "true"
'';
- description = "Contents of the ServerLayout section of the X server configuration file.";
+ description = lib.mdDoc "Contents of the ServerLayout section of the X server configuration file.";
};
extraDisplaySettings = mkOption {
type = types.lines;
default = "";
example = "Virtual 2048 2048";
- description = "Lines to be added to every Display subsection of the Screen section.";
+ description = lib.mdDoc "Lines to be added to every Display subsection of the Screen section.";
};
defaultDepth = mkOption {
type = types.int;
default = 0;
example = 8;
- description = "Default colour depth.";
+ description = lib.mdDoc "Default colour depth.";
};
fontPath = mkOption {
type = types.nullOr types.str;
default = null;
example = "unix/:7100";
- description = ''
+ description = lib.mdDoc ''
Set the X server FontPath. Defaults to null, which
means the compiled in defaults will be used. See
man xorg.conf for details.
@@ -518,20 +515,20 @@ in
tty = mkOption {
type = types.nullOr types.int;
default = 7;
- description = "Virtual console for the X server.";
+ description = lib.mdDoc "Virtual console for the X server.";
};
display = mkOption {
type = types.nullOr types.int;
default = 0;
- description = "Display number for the X server.";
+ description = lib.mdDoc "Display number for the X server.";
};
virtualScreen = mkOption {
type = types.nullOr types.attrs;
default = null;
example = { x = 2048; y = 2048; };
- description = ''
+ description = lib.mdDoc ''
Virtual screen size for Xrandr.
'';
};
@@ -540,12 +537,12 @@ in
type = types.nullOr types.str;
default = "/dev/null";
example = "/var/log/Xorg.0.log";
- description = ''
+ description = lib.mdDoc ''
Controls the file Xorg logs to.
- The default of /dev/null is set so that systemd services (like displayManagers) only log to the journal and don't create their own log files.
+ The default of `/dev/null` is set so that systemd services (like `displayManagers`) only log to the journal and don't create their own log files.
- Setting this to null will not pass the -logfile argument to Xorg which allows it to log to its default logfile locations instead (see man Xorg). You probably only want this behaviour when running Xorg manually (e.g. via startx).
+ Setting this to `null` will not pass the `-logfile` argument to Xorg which allows it to log to its default logfile locations instead (see `man Xorg`). You probably only want this behaviour when running Xorg manually (e.g. via `startx`).
'';
};
@@ -553,7 +550,7 @@ in
type = types.nullOr types.int;
default = 3;
example = 7;
- description = ''
+ description = lib.mdDoc ''
Controls verbosity of X logging.
'';
};
@@ -561,7 +558,7 @@ in
useGlamor = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to use the Glamor module for 2D acceleration,
if possible.
'';
@@ -570,7 +567,7 @@ in
enableCtrlAltBackspace = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to enable the DontZap option, which binds Ctrl+Alt+Backspace
to forcefully kill X. This can lead to data loss and is disabled
by default.
@@ -580,7 +577,7 @@ in
terminateOnReset = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Whether to terminate X upon server reset.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/system/activation/activation-script.nix b/third_party/nixpkgs/nixos/modules/system/activation/activation-script.nix
index 88b3ac1d18..3a57642a53 100644
--- a/third_party/nixpkgs/nixos/modules/system/activation/activation-script.nix
+++ b/third_party/nixpkgs/nixos/modules/system/activation/activation-script.nix
@@ -92,8 +92,8 @@ let
Whether this activation script supports being dry-activated.
These activation scripts will also be executed on dry-activate
activations with the environment variable
- NIXOS_ACTION being set to dry-activate
- . it's important that these activation scripts don't
+ NIXOS_ACTION being set to dry-activate.
+ it's important that these activation scripts don't
modify anything about the system when the variable is set.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/system/activation/top-level.nix b/third_party/nixpkgs/nixos/modules/system/activation/top-level.nix
index 0ceaed9ea6..76150cc959 100644
--- a/third_party/nixpkgs/nixos/modules/system/activation/top-level.nix
+++ b/third_party/nixpkgs/nixos/modules/system/activation/top-level.nix
@@ -185,12 +185,12 @@ in
options.inheritParentConfig = mkOption {
type = types.bool;
default = true;
- description = "Include the entire system's configuration. Set to false to make a completely differently configured system.";
+ description = lib.mdDoc "Include the entire system's configuration. Set to false to make a completely differently configured system.";
};
options.configuration = mkOption {
default = {};
- description = ''
+ description = lib.mdDoc ''
Arbitrary NixOS configuration.
Anything you can add to a normal NixOS configuration, you can add
@@ -255,7 +255,7 @@ in
toplevel = mkOption {
type = types.package;
readOnly = true;
- description = ''
+ description = lib.mdDoc ''
This option contains the store path that typically represents a NixOS system.
You can read this path in a custom deployment tool for example.
@@ -267,11 +267,11 @@ in
system.copySystemConfiguration = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
If enabled, copies the NixOS configuration file
- (usually /etc/nixos/configuration.nix)
+ (usually {file}`/etc/nixos/configuration.nix`)
and links it from the resulting system
- (getting to /run/current-system/configuration.nix).
+ (getting to {file}`/run/current-system/configuration.nix`).
Note that only this single file is copied, even if it imports others.
'';
};
@@ -288,7 +288,7 @@ in
system.extraDependencies = mkOption {
type = types.listOf types.package;
default = [];
- description = ''
+ description = lib.mdDoc ''
A list of packages that should be included in the system
closure but not otherwise made available to users. This is
primarily used by the installation tests.
@@ -302,12 +302,12 @@ in
{ ... }: {
options.original = mkOption {
type = types.package;
- description = "The original package to override.";
+ description = lib.mdDoc "The original package to override.";
};
options.replacement = mkOption {
type = types.package;
- description = "The replacement package.";
+ description = lib.mdDoc "The replacement package.";
};
})
);
@@ -315,7 +315,7 @@ in
oldDependency = original;
newDependency = replacement;
});
- description = ''
+ description = lib.mdDoc ''
List of packages to override without doing a full rebuild.
The original derivation and replacement derivation must have the same
name length, and ideally should have close-to-identical directory layout.
@@ -333,11 +333,11 @@ in
then "unnamed"
else config.networking.hostName;
'';
- description = ''
- The name of the system used in the derivation.
+ description = lib.mdDoc ''
+ The name of the system used in the {option}`system.build.toplevel` derivation.
That derivation has the following name:
- "nixos-system-''${config.system.name}-''${config.system.nixos.label}"
+ `"nixos-system-''${config.system.name}-''${config.system.nixos.label}"`
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/kernel_config.nix b/third_party/nixpkgs/nixos/modules/system/boot/kernel_config.nix
index 448835c3e6..997c404be1 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/kernel_config.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/kernel_config.nix
@@ -91,7 +91,7 @@ in
USB? y
DEBUG n
'';
- description = ''
+ description = lib.mdDoc ''
The result of converting the structured kernel configuration in settings
to an intermediate string that can be parsed by generate-config.pl to
answer the kernel `make defconfig`.
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix b/third_party/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix
index 545b594674..5ef3c5cd52 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix
@@ -20,12 +20,12 @@ in
enable = mkOption {
default = false;
type = types.bool;
- description = ''
+ description = lib.mdDoc ''
Whether to generate an extlinux-compatible configuration file
- under /boot/extlinux.conf. For instance,
+ under `/boot/extlinux.conf`. For instance,
U-Boot's generic distro boot support uses this file format.
- See U-boot's documentation
+ See [U-boot's documentation](http://git.denx.de/?p=u-boot.git;a=blob;f=doc/README.distro;hb=refs/heads/master)
for more information.
'';
};
@@ -33,7 +33,7 @@ in
useGenerationDeviceTree = mkOption {
default = true;
type = types.bool;
- description = ''
+ description = lib.mdDoc ''
Whether to generate Device Tree-related directives in the
extlinux configuration.
@@ -49,7 +49,7 @@ in
default = 20;
example = 10;
type = types.int;
- description = ''
+ description = lib.mdDoc ''
Maximum number of configurations in the boot menu.
'';
};
@@ -57,9 +57,9 @@ in
populateCmd = mkOption {
type = types.str;
readOnly = true;
- description = ''
+ description = lib.mdDoc ''
Contains the builder command used to populate an image,
- honoring all options except the -c <path-to-default-configuration>
+ honoring all options except the `-c `
argument.
Useful to have for sdImage.populateRootCommands
'';
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/luksroot.nix b/third_party/nixpkgs/nixos/modules/system/boot/luksroot.nix
index 78301a57bd..8cd1697491 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/luksroot.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/luksroot.nix
@@ -532,15 +532,15 @@ in
boot.initrd.luks.reusePassphrases = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
When opening a new LUKS device try reusing last successful
passphrase.
Useful for mounting a number of devices that use the same
passphrase without retyping it several times.
- Such setup can be useful if you use cryptsetup
- luksSuspend. Different LUKS devices will still have
+ Such setup can be useful if you use {command}`cryptsetup luksSuspend`.
+ Different LUKS devices will still have
different master keys even when using the same passphrase.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/modprobe.nix b/third_party/nixpkgs/nixos/modules/system/boot/modprobe.nix
index 4438afe4b3..c8ab3b0d8e 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/modprobe.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/modprobe.nix
@@ -24,12 +24,11 @@ with lib;
''
options parport_pc io=0x378 irq=7 dma=1
'';
- description = ''
+ description = lib.mdDoc ''
Any additional configuration to be appended to the generated
- modprobe.conf. This is typically used to
+ {file}`modprobe.conf`. This is typically used to
specify module options. See
- modprobe.d
- 5 for details.
+ {manpage}`modprobe.d(5)` for details.
'';
type = types.lines;
};
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/networkd.nix b/third_party/nixpkgs/nixos/modules/system/boot/networkd.nix
index dd4c63ab72..337d238f91 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/networkd.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/networkd.nix
@@ -916,11 +916,10 @@ let
default = {};
example = { SpeedMeter = true; ManageForeignRoutingPolicyRules = false; };
type = types.addCheck (types.attrsOf unitOption) check.global.sectionNetwork;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Network] section of the networkd config.
- See networkd.conf
- 5 for details.
+ `[Network]` section of the networkd config.
+ See {manpage}`networkd.conf(5)` for details.
'';
};
@@ -928,11 +927,10 @@ let
default = {};
example = { DUIDType = "vendor"; };
type = types.addCheck (types.attrsOf unitOption) check.global.sectionDHCPv4;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [DHCPv4] section of the networkd config.
- See networkd.conf
- 5 for details.
+ `[DHCPv4]` section of the networkd config.
+ See {manpage}`networkd.conf(5)` for details.
'';
};
@@ -940,11 +938,10 @@ let
default = {};
example = { DUIDType = "vendor"; };
type = types.addCheck (types.attrsOf unitOption) check.global.sectionDHCPv6;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [DHCPv6] section of the networkd config.
- See networkd.conf
- 5 for details.
+ `[DHCPv6]` section of the networkd config.
+ See {manpage}`networkd.conf(5)` for details.
'';
};
};
@@ -963,11 +960,10 @@ let
default = {};
example = { MACAddress = "00:ff:ee:aa:cc:dd"; };
type = types.addCheck (types.attrsOf unitOption) check.link.sectionLink;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Link] section of the unit. See
- systemd.link
- 5 for details.
+ `[Link]` section of the unit. See
+ {manpage}`systemd.link(5)` for details.
'';
};
@@ -978,11 +974,10 @@ let
wireguardPeerConfig = mkOption {
default = {};
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionWireGuardPeer;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [WireGuardPeer] section of the unit. See
- systemd.network
- 5 for details.
+ `[WireGuardPeer]` section of the unit. See
+ {manpage}`systemd.network(5)` for details.
'';
};
};
@@ -993,11 +988,10 @@ let
netdevConfig = mkOption {
example = { Name = "mybridge"; Kind = "bridge"; };
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionNetdev;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Netdev] section of the unit. See
- systemd.netdev
- 5 for details.
+ `[Netdev]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
'';
};
@@ -1005,11 +999,10 @@ let
default = {};
example = { Id = 4; };
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionVLAN;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [VLAN] section of the unit. See
- systemd.netdev
- 5 for details.
+ `[VLAN]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
'';
};
@@ -1017,22 +1010,20 @@ let
default = {};
example = { Mode = "private"; };
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionMACVLAN;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [MACVLAN] section of the unit. See
- systemd.netdev
- 5 for details.
+ `[MACVLAN]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
'';
};
vxlanConfig = mkOption {
default = {};
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionVXLAN;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [VXLAN] section of the unit. See
- systemd.netdev
- 5 for details.
+ `[VXLAN]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
'';
};
@@ -1040,11 +1031,10 @@ let
default = {};
example = { Remote = "192.168.1.1"; };
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionTunnel;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Tunnel] section of the unit. See
- systemd.netdev
- 5 for details.
+ `[Tunnel]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
'';
};
@@ -1052,11 +1042,10 @@ let
default = { };
example = { Port = 9001; };
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionFooOverUDP;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [FooOverUDP] section of the unit. See
- systemd.netdev
- 5 for details.
+ `[FooOverUDP]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
'';
};
@@ -1064,11 +1053,10 @@ let
default = {};
example = { Name = "veth2"; };
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionPeer;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Peer] section of the unit. See
- systemd.netdev
- 5 for details.
+ `[Peer]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
'';
};
@@ -1076,11 +1064,10 @@ let
default = {};
example = { User = "openvpn"; };
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionTun;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Tun] section of the unit. See
- systemd.netdev
- 5 for details.
+ `[Tun]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
'';
};
@@ -1088,11 +1075,10 @@ let
default = {};
example = { User = "openvpn"; };
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionTap;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Tap] section of the unit. See
- systemd.netdev
- 5 for details.
+ `[Tap]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
'';
};
@@ -1104,13 +1090,12 @@ let
FirewallMark = 42;
};
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionWireGuard;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [WireGuard] section of the unit. See
- systemd.netdev
- 5 for details.
- Use PrivateKeyFile instead of
- PrivateKey: the nix store is
+ `[WireGuard]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
+ Use `PrivateKeyFile` instead of
+ `PrivateKey`: the nix store is
world-readable.
'';
};
@@ -1125,13 +1110,12 @@ let
PersistentKeepalive = 15;
};}];
type = with types; listOf (submodule wireguardPeerOptions);
- description = ''
+ description = lib.mdDoc ''
Each item in this array specifies an option in the
- [WireGuardPeer] section of the unit. See
- systemd.netdev
- 5 for details.
- Use PresharedKeyFile instead of
- PresharedKey: the nix store is
+ `[WireGuardPeer]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
+ Use `PresharedKeyFile` instead of
+ `PresharedKey`: the nix store is
world-readable.
'';
};
@@ -1140,11 +1124,10 @@ let
default = {};
example = { Mode = "802.3ad"; };
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionBond;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Bond] section of the unit. See
- systemd.netdev
- 5 for details.
+ `[Bond]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
'';
};
@@ -1152,11 +1135,10 @@ let
default = {};
example = { InterfaceId = 1; };
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionXfrm;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Xfrm] section of the unit. See
- systemd.netdev
- 5 for details.
+ `[Xfrm]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
'';
};
@@ -1164,13 +1146,12 @@ let
default = {};
example = { Table = 2342; };
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionVRF;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [VRF] section of the unit. See
- systemd.netdev
- 5 for details.
+ `[VRF]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
A detailed explanation about how VRFs work can be found in the
- kernel docs.
+ [kernel docs](https://www.kernel.org/doc/Documentation/networking/vrf.txt).
'';
};
@@ -1181,11 +1162,10 @@ let
RoutingAlgorithm = "batman-v";
};
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionBatmanAdvanced;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [BatmanAdvanced] section of the unit. See
- systemd.netdev
- 5 for details.
+ `[BatmanAdvanced]` section of the unit. See
+ {manpage}`systemd.netdev(5)` for details.
'';
};
@@ -1196,11 +1176,10 @@ let
addressConfig = mkOption {
example = { Address = "192.168.0.100/24"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionAddress;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Address] section of the unit. See
- systemd.network
- 5 for details.
+ `[Address]` section of the unit. See
+ {manpage}`systemd.network(5)` for details.
'';
};
};
@@ -1212,11 +1191,10 @@ let
default = { };
example = { Table = 10; IncomingInterface = "eth1"; Family = "both"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionRoutingPolicyRule;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [RoutingPolicyRule] section of the unit. See
- systemd.network
- 5 for details.
+ `[RoutingPolicyRule]` section of the unit. See
+ {manpage}`systemd.network(5)` for details.
'';
};
};
@@ -1228,11 +1206,10 @@ let
default = {};
example = { Gateway = "192.168.0.1"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionRoute;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Route] section of the unit. See
- systemd.network
- 5 for details.
+ `[Route]` section of the unit. See
+ {manpage}`systemd.network(5)` for details.
'';
};
};
@@ -1244,11 +1221,10 @@ let
default = {};
example = { Prefix = "fd00::/64"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6Prefix;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [IPv6Prefix] section of the unit. See
- systemd.network
- 5 for details.
+ `[IPv6Prefix]` section of the unit. See
+ {manpage}`systemd.network(5)` for details.
'';
};
};
@@ -1260,14 +1236,13 @@ let
default = {};
example = { MACAddress = "65:43:4a:5b:d8:5f"; Address = "192.168.1.42"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPServerStaticLease;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [DHCPServerStaticLease] section of the unit. See
- systemd.network
- 5 for details.
+ `[DHCPServerStaticLease]` section of the unit. See
+ {manpage}`systemd.network(5)` for details.
Make sure to configure the corresponding client interface to use
- ClientIdentifier=mac.
+ `ClientIdentifier=mac`.
'';
};
};
@@ -1279,11 +1254,10 @@ let
default = {};
example = { Unmanaged = true; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionLink;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Link] section of the unit. See
- systemd.network
- 5 for details.
+ `[Link]` section of the unit. See
+ {manpage}`systemd.network(5)` for details.
'';
};
@@ -1291,11 +1265,10 @@ let
default = {};
example = { Description = "My Network"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionNetwork;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Network] section of the unit. See
- systemd.network
- 5 for details.
+ `[Network]` section of the unit. See
+ {manpage}`systemd.network(5)` for details.
'';
};
@@ -1310,11 +1283,10 @@ let
default = {};
example = { UseDNS = true; UseRoutes = true; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPv4;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [DHCPv4] section of the unit. See
- systemd.network
- 5 for details.
+ `[DHCPv4]` section of the unit. See
+ {manpage}`systemd.network(5)` for details.
'';
};
@@ -1322,11 +1294,10 @@ let
default = {};
example = { UseDNS = true; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPv6;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [DHCPv6] section of the unit. See
- systemd.network
- 5 for details.
+ `[DHCPv6]` section of the unit. See
+ {manpage}`systemd.network(5)` for details.
'';
};
@@ -1334,11 +1305,10 @@ let
default = {};
example = { SubnetId = "auto"; Announce = true; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPv6PrefixDelegation;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [DHCPv6PrefixDelegation] section of the unit. See
- systemd.network
- 5 for details.
+ `[DHCPv6PrefixDelegation]` section of the unit. See
+ {manpage}`systemd.network(5)` for details.
'';
};
@@ -1346,11 +1316,10 @@ let
default = {};
example = { UseDNS = true; DHCPv6Client = "always"; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6AcceptRA;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [IPv6AcceptRA] section of the unit. See
- systemd.network
- 5 for details.
+ `[IPv6AcceptRA]` section of the unit. See
+ {manpage}`systemd.network(5)` for details.
'';
};
@@ -1358,11 +1327,10 @@ let
default = {};
example = { PoolOffset = 50; EmitDNS = false; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPServer;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [DHCPServer] section of the unit. See
- systemd.network
- 5 for details.
+ `[DHCPServer]` section of the unit. See
+ {manpage}`systemd.network(5)` for details.
'';
};
@@ -1377,11 +1345,10 @@ let
default = {};
example = { EmitDNS = true; Managed = true; OtherInformation = true; };
type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6SendRA;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [IPv6SendRA] section of the unit. See
- systemd.network
- 5 for details.
+ `[IPv6SendRA]` section of the unit. See
+ {manpage}`systemd.network(5)` for details.
'';
};
@@ -1389,10 +1356,9 @@ let
default = [];
example = [ { dhcpServerStaticLeaseConfig = { MACAddress = "65:43:4a:5b:d8:5f"; Address = "192.168.1.42"; }; } ];
type = with types; listOf (submodule dhcpServerStaticLeaseOptions);
- description = ''
+ description = lib.mdDoc ''
A list of DHCPServerStaticLease sections to be added to the unit. See
- systemd.network
- 5 for details.
+ {manpage}`systemd.network(5)` for details.
'';
};
@@ -1400,10 +1366,9 @@ let
default = [];
example = [ { ipv6PrefixConfig = { AddressAutoconfiguration = true; OnLink = true; }; } ];
type = with types; listOf (submodule ipv6PrefixOptions);
- description = ''
+ description = lib.mdDoc ''
A list of ipv6Prefix sections to be added to the unit. See
- systemd.network
- 5 for details.
+ {manpage}`systemd.network(5)` for details.
'';
};
@@ -1434,150 +1399,135 @@ let
address = mkOption {
default = [ ];
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
A list of addresses to be added to the network section of the
- unit. See systemd.network
- 5 for details.
+ unit. See {manpage}`systemd.network(5)` for details.
'';
};
gateway = mkOption {
default = [ ];
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
A list of gateways to be added to the network section of the
- unit. See systemd.network
- 5 for details.
+ unit. See {manpage}`systemd.network(5)` for details.
'';
};
dns = mkOption {
default = [ ];
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
A list of dns servers to be added to the network section of the
- unit. See systemd.network
- 5 for details.
+ unit. See {manpage}`systemd.network(5)` for details.
'';
};
ntp = mkOption {
default = [ ];
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
A list of ntp servers to be added to the network section of the
- unit. See systemd.network
- 5 for details.
+ unit. See {manpage}`systemd.network(5)` for details.
'';
};
bridge = mkOption {
default = [ ];
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
A list of bridge interfaces to be added to the network section of the
- unit. See systemd.network
- 5 for details.
+ unit. See {manpage}`systemd.network(5)` for details.
'';
};
bond = mkOption {
default = [ ];
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
A list of bond interfaces to be added to the network section of the
- unit. See systemd.network
- 5 for details.
+ unit. See {manpage}`systemd.network(5)` for details.
'';
};
vrf = mkOption {
default = [ ];
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
A list of vrf interfaces to be added to the network section of the
- unit. See systemd.network
- 5 for details.
+ unit. See {manpage}`systemd.network(5)` for details.
'';
};
vlan = mkOption {
default = [ ];
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
A list of vlan interfaces to be added to the network section of the
- unit. See systemd.network
- 5 for details.
+ unit. See {manpage}`systemd.network(5)` for details.
'';
};
macvlan = mkOption {
default = [ ];
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
A list of macvlan interfaces to be added to the network section of the
- unit. See systemd.network
- 5 for details.
+ unit. See {manpage}`systemd.network(5)` for details.
'';
};
vxlan = mkOption {
default = [ ];
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
A list of vxlan interfaces to be added to the network section of the
- unit. See systemd.network
- 5 for details.
+ unit. See {manpage}`systemd.network(5)` for details.
'';
};
tunnel = mkOption {
default = [ ];
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
A list of tunnel interfaces to be added to the network section of the
- unit. See systemd.network
- 5 for details.
+ unit. See {manpage}`systemd.network(5)` for details.
'';
};
xfrm = mkOption {
default = [ ];
type = types.listOf types.str;
- description = ''
+ description = lib.mdDoc ''
A list of xfrm interfaces to be added to the network section of the
- unit. See systemd.network
- 5 for details.
+ unit. See {manpage}`systemd.network(5)` for details.
'';
};
addresses = mkOption {
default = [ ];
type = with types; listOf (submodule addressOptions);
- description = ''
+ description = lib.mdDoc ''
A list of address sections to be added to the unit. See
- systemd.network
- 5 for details.
+ {manpage}`systemd.network(5)` for details.
'';
};
routingPolicyRules = mkOption {
default = [ ];
type = with types; listOf (submodule routingPolicyRulesOptions);
- description = ''
+ description = lib.mdDoc ''
A list of routing policy rules sections to be added to the unit. See
- systemd.network
- 5 for details.
+ {manpage}`systemd.network(5)` for details.
'';
};
routes = mkOption {
default = [ ];
type = with types; listOf (submodule routeOptions);
- description = ''
+ description = lib.mdDoc ''
A list of route sections to be added to the unit. See
- systemd.network
- 5 for details.
+ {manpage}`systemd.network(5)` for details.
'';
};
@@ -1602,10 +1552,9 @@ let
default = {};
example = { foo = 27; };
type = with types; attrsOf int;
- description = ''
+ description = lib.mdDoc ''
Defines route table names as an attrset of name to number.
- See networkd.conf
- 5 for details.
+ See {manpage}`networkd.conf(5)` for details.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/systemd/initrd.nix b/third_party/nixpkgs/nixos/modules/system/boot/systemd/initrd.nix
index 888653469e..8b3bbfdd24 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/systemd/initrd.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/systemd/initrd.nix
@@ -100,12 +100,6 @@ let
fileSystems = filter utils.fsNeededForBoot config.system.build.fileSystems;
- fstab = pkgs.writeText "initrd-fstab" (lib.concatMapStringsSep "\n"
- ({ fsType, mountPoint, device, options, autoFormat, autoResize, ... }@fs: let
- opts = options ++ optional autoFormat "x-systemd.makefs" ++ optional autoResize "x-systemd.growfs";
- finalDevice = if (lib.elem "bind" options) then "/sysroot${device}" else device;
- in "${finalDevice} /sysroot${mountPoint} ${fsType} ${lib.concatStringsSep "," opts}") fileSystems);
-
needMakefs = lib.any (fs: fs.autoFormat) fileSystems;
needGrowfs = lib.any (fs: fs.autoResize) fileSystems;
@@ -354,8 +348,6 @@ in {
DefaultEnvironment=PATH=/bin:/sbin ${optionalString (isBool cfg.emergencyAccess && cfg.emergencyAccess) "SYSTEMD_SULOGIN_FORCE=1"}
'';
- "/etc/fstab".source = fstab;
-
"/lib/modules".source = "${modulesClosure}/lib/modules";
"/lib/firmware".source = "${modulesClosure}/lib/firmware";
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/systemd/nspawn.nix b/third_party/nixpkgs/nixos/modules/system/boot/systemd/nspawn.nix
index c17dc951cc..0d06fb3c03 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/systemd/nspawn.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/systemd/nspawn.nix
@@ -50,11 +50,10 @@ let
default = {};
example = { Parameters = "/bin/sh"; };
type = types.addCheck (types.attrsOf unitOption) checkExec;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Exec] section of this unit. See
- systemd.nspawn
- 5 for details.
+ `[Exec]` section of this unit. See
+ {manpage}`systemd.nspawn(5)` for details.
'';
};
@@ -62,11 +61,10 @@ let
default = {};
example = { Bind = [ "/home/alice" ]; };
type = types.addCheck (types.attrsOf unitOption) checkFiles;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Files] section of this unit. See
- systemd.nspawn
- 5 for details.
+ `[Files]` section of this unit. See
+ {manpage}`systemd.nspawn(5)` for details.
'';
};
@@ -74,11 +72,10 @@ let
default = {};
example = { Private = false; };
type = types.addCheck (types.attrsOf unitOption) checkNetwork;
- description = ''
+ description = lib.mdDoc ''
Each attribute in this set specifies an option in the
- [Network] section of this unit. See
- systemd.nspawn
- 5 for details.
+ `[Network]` section of this unit. See
+ {manpage}`systemd.nspawn(5)` for details.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/tasks/auto-upgrade.nix b/third_party/nixpkgs/nixos/modules/tasks/auto-upgrade.nix
index ca26901678..29e3e31333 100644
--- a/third_party/nixpkgs/nixos/modules/tasks/auto-upgrade.nix
+++ b/third_party/nixpkgs/nixos/modules/tasks/auto-upgrade.nix
@@ -46,11 +46,11 @@ in {
type = types.nullOr types.str;
default = null;
example = "https://nixos.org/channels/nixos-14.12-small";
- description = ''
+ description = lib.mdDoc ''
The URI of the NixOS channel to use for automatic
upgrades. By default, this is the channel set using
- nix-channel (run nix-channel
- --list to see the current value).
+ {command}`nix-channel` (run `nix-channel --list`
+ to see the current value).
'';
};
@@ -77,13 +77,12 @@ in {
type = types.str;
default = "04:40";
example = "daily";
- description = ''
+ description = lib.mdDoc ''
How often or when upgrade occurs. For most desktop and server systems
a sufficient upgrade frequency is once a day.
The format is described in
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
@@ -102,12 +101,11 @@ in {
default = "0";
type = types.str;
example = "45min";
- description = ''
+ description = lib.mdDoc ''
Add a randomized delay before each automatic upgrade.
The delay will be chosen between zero and this value.
This value must be a time span in the format specified by
- systemd.time
- 7
+ {manpage}`systemd.time(7)`
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/tasks/filesystems.nix b/third_party/nixpkgs/nixos/modules/tasks/filesystems.nix
index c1e96e7aed..4cf974b2ed 100644
--- a/third_party/nixpkgs/nixos/modules/tasks/filesystems.nix
+++ b/third_party/nixpkgs/nixos/modules/tasks/filesystems.nix
@@ -153,6 +153,34 @@ let
specialMount "${mount.device}" "${mount.mountPoint}" "${concatStringsSep "," mount.options}" "${mount.fsType}"
'') mounts);
+ makeFstabEntries =
+ let
+ fsToSkipCheck = [ "none" "bindfs" "btrfs" "zfs" "tmpfs" "nfs" "vboxsf" "glusterfs" "apfs" "9p" "cifs" "prl_fs" "vmhgfs" ];
+ isBindMount = fs: builtins.elem "bind" fs.options;
+ skipCheck = fs: fs.noCheck || fs.device == "none" || builtins.elem fs.fsType fsToSkipCheck || isBindMount fs;
+ # https://wiki.archlinux.org/index.php/fstab#Filepath_spaces
+ escape = string: builtins.replaceStrings [ " " "\t" ] [ "\\040" "\\011" ] string;
+ in fstabFileSystems: { rootPrefix ? "", excludeChecks ? false, extraOpts ? (fs: []) }: concatMapStrings (fs:
+ (optionalString (isBindMount fs) (escape rootPrefix))
+ + (if fs.device != null then escape fs.device
+ else if fs.label != null then "/dev/disk/by-label/${escape fs.label}"
+ else throw "No device specified for mount point ‘${fs.mountPoint}’.")
+ + " " + escape (rootPrefix + fs.mountPoint)
+ + " " + fs.fsType
+ + " " + builtins.concatStringsSep "," (fs.options ++ (extraOpts fs))
+ + " " + (optionalString (!excludeChecks)
+ ("0 " + (if skipCheck fs then "0" else if fs.mountPoint == "/" then "1" else "2")))
+ + "\n"
+ ) fstabFileSystems;
+
+ initrdFstab = pkgs.writeText "initrd-fstab" (makeFstabEntries (filter utils.fsNeededForBoot fileSystems) {
+ rootPrefix = "/sysroot";
+ excludeChecks = true;
+ extraOpts = fs:
+ (optional fs.autoResize "x-systemd.growfs")
+ ++ (optional fs.autoFormat "x-systemd.makefs");
+ });
+
in
{
@@ -175,21 +203,20 @@ in
}
'';
type = types.attrsOf (types.submodule [coreFileSystemOpts fileSystemOpts]);
- description = ''
+ description = lib.mdDoc ''
The file systems to be mounted. It must include an entry for
- the root directory (mountPoint = "/"). Each
+ the root directory (`mountPoint = "/"`). Each
entry in the list is an attribute set with the following fields:
- mountPoint, device,
- fsType (a file system type recognised by
- mount; defaults to
- "auto"), and options
- (the mount options passed to mount using the
- flag; defaults to [ "defaults" ]).
+ `mountPoint`, `device`,
+ `fsType` (a file system type recognised by
+ {command}`mount`; defaults to
+ `"auto"`), and `options`
+ (the mount options passed to {command}`mount` using the
+ {option}`-o` flag; defaults to `[ "defaults" ]`).
- Instead of specifying device, you can also
- specify a volume label (label) for file
- systems that support it, such as ext2/ext3 (see mke2fs
- -L).
+ Instead of specifying `device`, you can also
+ specify a volume label (`label`) for file
+ systems that support it, such as ext2/ext3 (see {command}`mke2fs -L`).
'';
};
@@ -279,11 +306,6 @@ in
environment.etc.fstab.text =
let
- fsToSkipCheck = [ "none" "bindfs" "btrfs" "zfs" "tmpfs" "nfs" "vboxsf" "glusterfs" "apfs" ];
- isBindMount = fs: builtins.elem "bind" fs.options;
- skipCheck = fs: fs.noCheck || fs.device == "none" || builtins.elem fs.fsType fsToSkipCheck || isBindMount fs;
- # https://wiki.archlinux.org/index.php/fstab#Filepath_spaces
- escape = string: builtins.replaceStrings [ " " "\t" ] [ "\\040" "\\011" ] string;
swapOptions = sw: concatStringsSep "," (
sw.options
++ optional (sw.priority != null) "pri=${toString sw.priority}"
@@ -298,18 +320,7 @@ in
#
# Filesystems.
- ${concatMapStrings (fs:
- (if fs.device != null then escape fs.device
- else if fs.label != null then "/dev/disk/by-label/${escape fs.label}"
- else throw "No device specified for mount point ‘${fs.mountPoint}’.")
- + " " + escape fs.mountPoint
- + " " + fs.fsType
- + " " + builtins.concatStringsSep "," fs.options
- + " 0"
- + " " + (if skipCheck fs then "0" else
- if fs.mountPoint == "/" then "1" else "2")
- + "\n"
- ) fileSystems}
+ ${makeFstabEntries fileSystems {}}
# Swap devices.
${flip concatMapStrings config.swapDevices (sw:
@@ -317,6 +328,8 @@ in
)}
'';
+ boot.initrd.systemd.contents."/etc/fstab".source = initrdFstab;
+
# Provide a target that pulls in all filesystems.
systemd.targets.fs =
{ description = "All File Systems";
diff --git a/third_party/nixpkgs/nixos/modules/tasks/filesystems/btrfs.nix b/third_party/nixpkgs/nixos/modules/tasks/filesystems/btrfs.nix
index 4e5180f213..32bfaba95c 100644
--- a/third_party/nixpkgs/nixos/modules/tasks/filesystems/btrfs.nix
+++ b/third_party/nixpkgs/nixos/modules/tasks/filesystems/btrfs.nix
@@ -36,14 +36,12 @@ in
default = "monthly";
type = types.str;
example = "weekly";
- description = ''
+ description = lib.mdDoc ''
Systemd calendar expression for when to scrub btrfs filesystems.
The recommended period is a month but could be less
- (btrfs-scrub
- 8).
+ ({manpage}`btrfs-scrub(8)`).
See
- systemd.time
- 7
+ {manpage}`systemd.time(7)`
for more information on the syntax.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix b/third_party/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
index 1d661eae82..0975ed0aab 100644
--- a/third_party/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
+++ b/third_party/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
@@ -388,13 +388,12 @@ in
default = "weekly";
type = types.str;
example = "daily";
- description = ''
+ description = lib.mdDoc ''
How often we run trim. For most desktop and server systems
a sufficient trimming frequency is once a week.
The format is described in
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
};
@@ -406,10 +405,9 @@ in
default = "Sun, 02:00";
type = types.str;
example = "daily";
- description = ''
+ description = lib.mdDoc ''
Systemd calendar expression when to scrub ZFS pools. See
- systemd.time
- 7.
+ {manpage}`systemd.time(7)`.
'';
};
@@ -428,7 +426,7 @@ in
type = types.either (types.enum [ "disabled" "all" ]) (types.listOf types.str);
default = "disabled";
example = [ "tank" "dozer" ];
- description = ''
+ description = lib.mdDoc ''
After importing, expand each device in the specified pools.
Set the value to the plain string "all" to expand all pools on boot:
diff --git a/third_party/nixpkgs/nixos/modules/tasks/network-interfaces-systemd.nix b/third_party/nixpkgs/nixos/modules/tasks/network-interfaces-systemd.nix
index 1657fabcd9..b24b29c32d 100644
--- a/third_party/nixpkgs/nixos/modules/tasks/network-interfaces-systemd.nix
+++ b/third_party/nixpkgs/nixos/modules/tasks/network-interfaces-systemd.nix
@@ -134,7 +134,7 @@ in
# Most of these route options have not been tested.
# Please fix or report any mistakes you may find.
routeConfig =
- optionalAttrs (route.prefixLength > 0) {
+ optionalAttrs (route.address != null && route.prefixLength != null) {
Destination = "${route.address}/${toString route.prefixLength}";
} //
optionalAttrs (route.options ? fastopen_no_cookie) {
diff --git a/third_party/nixpkgs/nixos/modules/tasks/network-interfaces.nix b/third_party/nixpkgs/nixos/modules/tasks/network-interfaces.nix
index a462035329..eb4818756b 100644
--- a/third_party/nixpkgs/nixos/modules/tasks/network-interfaces.nix
+++ b/third_party/nixpkgs/nixos/modules/tasks/network-interfaces.nix
@@ -785,7 +785,7 @@ in
default = null;
example = "fast";
type = types.nullOr types.str;
- description = ''
+ description = lib.mdDoc ''
DEPRECATED, use `driverOptions`.
Option specifying the rate in which we'll ask our link partner
to transmit LACPDU packets in 802.3ad mode.
@@ -796,7 +796,7 @@ in
default = null;
example = 100;
type = types.nullOr types.int;
- description = ''
+ description = lib.mdDoc ''
DEPRECATED, use `driverOptions`.
Miimon is the number of millisecond in between each round of polling
by the device driver for failed links. By default polling is not
@@ -809,7 +809,7 @@ in
default = null;
example = "active-backup";
type = types.nullOr types.str;
- description = ''
+ description = lib.mdDoc ''
DEPRECATED, use `driverOptions`.
The mode which the bond will be running. The default mode for
the bonding driver is balance-rr, optimizing for throughput.
@@ -822,7 +822,7 @@ in
default = null;
example = "layer2+3";
type = types.nullOr types.str;
- description = ''
+ description = lib.mdDoc ''
DEPRECATED, use `driverOptions`.
Selects the transmit hash policy to use for slave selection in
balance-xor, 802.3ad, and tlb modes.
@@ -876,10 +876,9 @@ in
primary = { port = 9001; local = { address = "192.0.2.1"; dev = "eth0"; }; };
backup = { port = 9002; };
};
- description = ''
+ description = lib.mdDoc ''
This option allows you to configure Foo Over UDP and Generic UDP Encapsulation
- endpoints. See ip-fou
- 8 for details.
+ endpoints. See {manpage}`ip-fou(8)` for details.
'';
type = with types; attrsOf (submodule {
options = {
@@ -998,10 +997,9 @@ in
options = {
type = mkOption {
type = enum [ "fou" "gue" ];
- description = ''
+ description = lib.mdDoc ''
Selects encapsulation type. See
- ip-link
- 8 for details.
+ {manpage}`ip-link(8)` for details.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/amazon-options.nix b/third_party/nixpkgs/nixos/modules/virtualisation/amazon-options.nix
index 52c960d453..ef0ad52b90 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/amazon-options.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/amazon-options.nix
@@ -14,7 +14,7 @@ in {
};
datasets = lib.mkOption {
- description = ''
+ description = lib.mdDoc ''
Datasets to create under the `tank` and `boot` zpools.
**NOTE:** This option is used only at image creation time, and
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/azure-agent.nix b/third_party/nixpkgs/nixos/modules/virtualisation/azure-agent.nix
index e2425b44ea..31047c4ddc 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/azure-agent.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/azure-agent.nix
@@ -60,15 +60,15 @@ in
options.virtualisation.azure.agent = {
enable = mkOption {
default = false;
- description = "Whether to enable the Windows Azure Linux Agent.";
+ description = lib.mdDoc "Whether to enable the Windows Azure Linux Agent.";
};
verboseLogging = mkOption {
default = false;
- description = "Whether to enable verbose logging.";
+ description = lib.mdDoc "Whether to enable verbose logging.";
};
mountResourceDisk = mkOption {
default = true;
- description = "Whether the agent should format (ext4) and mount the resource disk to /mnt/resource.";
+ description = lib.mdDoc "Whether the agent should format (ext4) and mount the resource disk to /mnt/resource.";
};
};
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/azure-image.nix b/third_party/nixpkgs/nixos/modules/virtualisation/azure-image.nix
index 03dd3c0513..17cfd39383 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/azure-image.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/azure-image.nix
@@ -12,7 +12,7 @@ in
type = with types; either (enum [ "auto" ]) int;
default = "auto";
example = 2048;
- description = ''
+ description = lib.mdDoc ''
Size of disk image. Unit is MB.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/containers.nix b/third_party/nixpkgs/nixos/modules/virtualisation/containers.nix
index a9a2f3c148..956844352f 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/containers.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/containers.nix
@@ -8,20 +8,20 @@ let
in
{
meta = {
- maintainers = [] ++ lib.teams.podman.members;
+ maintainers = [ ] ++ lib.teams.podman.members;
};
imports = [
(
lib.mkRemovedOptionModule
- [ "virtualisation" "containers" "users" ]
- "All users with `isNormalUser = true` set now get appropriate subuid/subgid mappings."
+ [ "virtualisation" "containers" "users" ]
+ "All users with `isNormalUser = true` set now get appropriate subuid/subgid mappings."
)
(
lib.mkRemovedOptionModule
- [ "virtualisation" "containers" "containersConf" "extraConfig" ]
- "Use virtualisation.containers.containersConf.settings instead."
+ [ "virtualisation" "containers" "containersConf" "extraConfig" ]
+ "Use virtualisation.containers.containersConf.settings instead."
)
];
@@ -87,7 +87,7 @@ in
};
insecure = mkOption {
- default = [];
+ default = [ ];
type = types.listOf types.str;
description = lib.mdDoc ''
List of insecure repositories.
@@ -95,7 +95,7 @@ in
};
block = mkOption {
- default = [];
+ default = [ ];
type = types.listOf types.str;
description = lib.mdDoc ''
List of blocked repositories.
@@ -104,7 +104,7 @@ in
};
policy = mkOption {
- default = {};
+ default = { };
type = types.attrs;
example = literalExpression ''
{
@@ -149,7 +149,7 @@ in
};
environment.etc."containers/policy.json".source =
- if cfg.policy != {} then pkgs.writeText "policy.json" (builtins.toJSON cfg.policy)
+ if cfg.policy != { } then pkgs.writeText "policy.json" (builtins.toJSON cfg.policy)
else utils.copyFile "${pkgs.skopeo.src}/default-policy.json";
};
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/docker.nix b/third_party/nixpkgs/nixos/modules/virtualisation/docker.nix
index 062ad7f53c..66c94f3008 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/docker.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/docker.nix
@@ -142,10 +142,9 @@ in
dates = mkOption {
default = "weekly";
type = types.str;
- description = ''
+ description = lib.mdDoc ''
Specification (in the format described by
- systemd.time
- 7) of the time at
+ {manpage}`systemd.time(7)`) of the time at
which the prune will occur.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/google-compute-image.nix b/third_party/nixpkgs/nixos/modules/virtualisation/google-compute-image.nix
index 0c72696f80..197ebb18b9 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/google-compute-image.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/google-compute-image.nix
@@ -21,7 +21,7 @@ in
type = with types; either (enum [ "auto" ]) int;
default = "auto";
example = 1536;
- description = ''
+ description = lib.mdDoc ''
Size of disk image. Unit is MB.
'';
};
@@ -29,7 +29,7 @@ in
virtualisation.googleComputeImage.configFile = mkOption {
type = with types; nullOr str;
default = null;
- description = ''
+ description = lib.mdDoc ''
A path to a configuration file which will be placed at `/etc/nixos/configuration.nix`
and be used when switching to a new configuration.
If set to `null`, a default configuration is used, where the only import is
@@ -40,7 +40,7 @@ in
virtualisation.googleComputeImage.compressionLevel = mkOption {
type = types.int;
default = 6;
- description = ''
+ description = lib.mdDoc ''
GZIP compression level of the resulting disk image (1-9).
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/hyperv-image.nix b/third_party/nixpkgs/nixos/modules/virtualisation/hyperv-image.nix
index 6845d67500..efaea0c110 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/hyperv-image.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/hyperv-image.nix
@@ -12,21 +12,21 @@ in {
type = with types; either (enum [ "auto" ]) int;
default = "auto";
example = 2048;
- description = ''
+ description = lib.mdDoc ''
The size of the hyper-v base image in MiB.
'';
};
vmDerivationName = mkOption {
type = types.str;
default = "nixos-hyperv-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
- description = ''
+ description = lib.mdDoc ''
The name of the derivation for the hyper-v appliance.
'';
};
vmFileName = mkOption {
type = types.str;
default = "nixos-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.vhdx";
- description = ''
+ description = lib.mdDoc ''
The file name of the hyper-v appliance.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/includes-to-excludes.py b/third_party/nixpkgs/nixos/modules/virtualisation/includes-to-excludes.py
new file mode 100644
index 0000000000..05ef9c0f23
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/includes-to-excludes.py
@@ -0,0 +1,86 @@
+
+# Convert a list of strings to a regex that matches everything but those strings
+# ... and it had to be a POSIX regex; no negative lookahead :(
+# This is a workaround for erofs supporting only exclude regex, not an include list
+
+import sys
+import re
+from collections import defaultdict
+
+# We can configure this script to match in different ways if we need to.
+# The regex got too long for the argument list, so we had to truncate the
+# hashes and use MATCH_STRING_PREFIX. That's less accurate, and might pick up some
+# garbage like .lock files, but only if the sandbox doesn't hide those. Even
+# then it should be harmless.
+
+# Produce the negation of ^a$
+MATCH_EXACTLY = ".+"
+# Produce the negation of ^a
+MATCH_STRING_PREFIX = "//X" # //X should be epsilon regex instead. Not supported??
+# Produce the negation of ^a/?
+MATCH_SUBPATHS = "[^/].*$"
+
+# match_end = MATCH_SUBPATHS
+match_end = MATCH_STRING_PREFIX
+# match_end = MATCH_EXACTLY
+
+def chars_to_inverted_class(letters):
+ assert len(letters) > 0
+ letters = list(letters)
+
+ s = "[^"
+
+ if "]" in letters:
+ s += "]"
+ letters.remove("]")
+
+ final = ""
+ if "-" in letters:
+ final = "-"
+ letters.remove("-")
+
+ s += "".join(letters)
+
+ s += final
+
+ s += "]"
+
+ return s
+
+# There's probably at least one bug in here, but it seems to works well enough
+# for filtering store paths.
+def strings_to_inverted_regex(strings):
+ s = "("
+
+ # Match anything that starts with the wrong character
+
+ chars = defaultdict(list)
+
+ for item in strings:
+ if item != "":
+ chars[item[0]].append(item[1:])
+
+ if len(chars) == 0:
+ s += match_end
+ else:
+ s += chars_to_inverted_class(chars)
+
+ # Now match anything that starts with the right char, but then goes wrong
+
+ for char, sub in chars.items():
+ s += "|(" + re.escape(char) + strings_to_inverted_regex(sub) + ")"
+
+ s += ")"
+ return s
+
+if __name__ == "__main__":
+ stdin_lines = []
+ for line in sys.stdin:
+ if line.strip() != "":
+ stdin_lines.append(line.strip())
+
+ print("^" + strings_to_inverted_regex(stdin_lines))
+
+# Test:
+# (echo foo; echo fo/; echo foo/; echo foo/ba/r; echo b; echo az; echo az/; echo az/a; echo ab; echo ab/a; echo ab/; echo abc; echo abcde; echo abb; echo ac; echo b) | grep -vE "$((echo ab; echo az; echo foo;) | python includes-to-excludes.py | tee /dev/stderr )"
+# should print ab, az, foo and their subpaths
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/kvmgt.nix b/third_party/nixpkgs/nixos/modules/virtualisation/kvmgt.nix
index 5ea71c3a91..5671e5b66d 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/kvmgt.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/kvmgt.nix
@@ -10,7 +10,7 @@ let
vgpuOptions = {
uuid = mkOption {
type = with types; listOf str;
- description = "UUID(s) of VGPU device. You can generate one with libossp_uuid.";
+ description = lib.mdDoc "UUID(s) of VGPU device. You can generate one with `libossp_uuid`.";
};
};
@@ -31,9 +31,9 @@ in {
vgpus = mkOption {
default = {};
type = with types; attrsOf (submodule [ { options = vgpuOptions; } ]);
- description = ''
- Virtual GPUs to be used in Qemu. You can find devices via ls /sys/bus/pci/devices/*/mdev_supported_types
- and find info about device via cat /sys/bus/pci/devices/*/mdev_supported_types/i915-GVTg_V5_4/description
+ description = lib.mdDoc ''
+ Virtual GPUs to be used in Qemu. You can find devices via {command}`ls /sys/bus/pci/devices/*/mdev_supported_types`
+ and find info about device via {command}`cat /sys/bus/pci/devices/*/mdev_supported_types/i915-GVTg_V5_4/description`
'';
example = {
i915-GVTg_V5_8.uuid = [ "a297db4a-f4c2-11e6-90f6-d3b88d6c9525" ];
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/libvirtd.nix b/third_party/nixpkgs/nixos/modules/virtualisation/libvirtd.nix
index f7d0ef39c5..c2ff6b611a 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/libvirtd.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/libvirtd.nix
@@ -81,7 +81,7 @@ let
type = types.package;
default = pkgs.qemu;
defaultText = literalExpression "pkgs.qemu";
- description = ''
+ description = lib.mdDoc ''
Qemu package to use with libvirt.
`pkgs.qemu` can emulate alien architectures (e.g. aarch64 on x86)
`pkgs.qemu_kvm` saves disk space allowing to emulate only host architectures.
@@ -293,7 +293,7 @@ in
# Copy default libvirt network config .xml files to /var/lib
# Files modified by the user will not be overwritten
for i in $(cd ${cfg.package}/var/lib && echo \
- libvirt/qemu/networks/*.xml libvirt/qemu/networks/autostart/*.xml \
+ libvirt/qemu/networks/*.xml \
libvirt/nwfilter/*.xml );
do
mkdir -p /var/lib/$(dirname $i) -m 755
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/lxc.nix b/third_party/nixpkgs/nixos/modules/virtualisation/lxc.nix
index 2b184960da..5bd64a5f9a 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/lxc.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/lxc.nix
@@ -31,10 +31,9 @@ in
type = types.lines;
default = "";
description =
- ''
+ lib.mdDoc ''
This is the system-wide LXC config. See
- lxc.system.conf
- 5.
+ {manpage}`lxc.system.conf(5)`.
'';
};
@@ -43,10 +42,9 @@ in
type = types.lines;
default = "";
description =
- ''
+ lib.mdDoc ''
Default config (default.conf) for new containers, i.e. for
- network config. See lxc.container.conf
- 5.
+ network config. See {manpage}`lxc.container.conf(5)`.
'';
};
@@ -55,11 +53,9 @@ in
type = types.lines;
default = "";
description =
- ''
+ lib.mdDoc ''
This is the config file for managing unprivileged user network
- administration access in LXC. See
- lxc-usernet5
- .
+ administration access in LXC. See {manpage}`lxc-usernet(5)`.
'';
};
};
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix b/third_party/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
index a4cd41e45d..f15511f2df 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
@@ -536,13 +536,13 @@ in
type = types.path;
default = pkgs.path;
defaultText = literalExpression "pkgs.path";
- description = ''
+ description = lib.mdDoc ''
A path to the nixpkgs that provide the modules, pkgs and lib for evaluating the container.
- To only change the pkgs argument used inside the container modules,
- set the nixpkgs.* options in the container .
- Setting config.nixpkgs.pkgs = pkgs speeds up the container evaluation
- by reusing the system pkgs, but the nixpkgs.config option in the
+ To only change the `pkgs` argument used inside the container modules,
+ set the `nixpkgs.*` options in the container {option}`config`.
+ Setting `config.nixpkgs.pkgs = pkgs` speeds up the container evaluation
+ by reusing the system pkgs, but the `nixpkgs.config` option in the
container config is ignored in this case.
'';
};
@@ -629,11 +629,10 @@ in
timeoutStartSec = mkOption {
type = types.str;
default = "1min";
- description = ''
+ description = lib.mdDoc ''
Time for the container to start. In case of a timeout,
the container processes get killed.
- See systemd.time
- 7
+ See {manpage}`systemd.time(7)`
for more information about the format.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/openstack-options.nix b/third_party/nixpkgs/nixos/modules/virtualisation/openstack-options.nix
index eded418c9c..e1985a2073 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/openstack-options.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/openstack-options.nix
@@ -15,7 +15,7 @@ in
};
datasets = lib.mkOption {
- description = ''
+ description = lib.mdDoc ''
Datasets to create under the `tank` and `boot` zpools.
**NOTE:** This option is used only at image creation time, and
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/parallels-guest.nix b/third_party/nixpkgs/nixos/modules/virtualisation/parallels-guest.nix
index d3affe2b8f..07a61bf208 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/parallels-guest.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/parallels-guest.nix
@@ -23,7 +23,7 @@ in
autoMountShares = mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Control prlfsmountd service. When this service is running, shares can not be manually
mounted through `mount -t prl_fs ...` as this service will remount and trample any set options.
Recommended to enable for simple file sharing, but extended share use such as for code should
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/podman/default.nix b/third_party/nixpkgs/nixos/modules/virtualisation/podman/default.nix
index 1e2f8a7fae..ccf30a0ff6 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/podman/default.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/podman/default.nix
@@ -12,10 +12,11 @@ let
});
# Provides a fake "docker" binary mapping to podman
- dockerCompat = pkgs.runCommand "${podmanPackage.pname}-docker-compat-${podmanPackage.version}" {
- outputs = [ "out" "man" ];
- inherit (podmanPackage) meta;
- } ''
+ dockerCompat = pkgs.runCommand "${podmanPackage.pname}-docker-compat-${podmanPackage.version}"
+ {
+ outputs = [ "out" "man" ];
+ inherit (podmanPackage) meta;
+ } ''
mkdir -p $out/bin
ln -s ${podmanPackage}/bin/podman $out/bin/docker
@@ -26,13 +27,14 @@ let
done
'';
- net-conflist = pkgs.runCommand "87-podman-bridge.conflist" {
- nativeBuildInputs = [ pkgs.jq ];
- extraPlugins = builtins.toJSON cfg.defaultNetwork.extraPlugins;
- jqScript = ''
- . + { "plugins": (.plugins + $extraPlugins) }
- '';
- } ''
+ net-conflist = pkgs.runCommand "87-podman-bridge.conflist"
+ {
+ nativeBuildInputs = [ pkgs.jq ];
+ extraPlugins = builtins.toJSON cfg.defaultNetwork.extraPlugins;
+ jqScript = ''
+ . + { "plugins": (.plugins + $extraPlugins) }
+ '';
+ } ''
jq <${cfg.package}/etc/cni/net.d/87-podman-bridge.conflist \
--argjson extraPlugins "$extraPlugins" \
"$jqScript" \
@@ -57,24 +59,24 @@ in
mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
This option enables Podman, a daemonless container engine for
developing, managing, and running OCI Containers on your Linux System.
- It is a drop-in replacement for the docker command.
+ It is a drop-in replacement for the {command}`docker` command.
'';
};
dockerSocket.enable = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Make the Podman socket available in place of the Docker socket, so
Docker tools can find the Podman socket.
Podman implements the Docker API.
- Users must be in the podman group in order to connect. As
+ Users must be in the `podman` group in order to connect. As
with Docker, members of this group can gain root access.
'';
};
@@ -82,15 +84,15 @@ in
dockerCompat = mkOption {
type = types.bool;
default = false;
- description = ''
- Create an alias mapping docker to podman.
+ description = lib.mdDoc ''
+ Create an alias mapping {command}`docker` to {command}`podman`.
'';
};
enableNvidia = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Enable use of NVidia GPUs from within podman containers.
'';
};
@@ -103,7 +105,7 @@ in
pkgs.gvisor
]
'';
- description = ''
+ description = lib.mdDoc ''
Extra packages to be installed in the Podman wrapper.
'';
};
@@ -119,8 +121,8 @@ in
defaultNetwork.extraPlugins = lib.mkOption {
type = types.listOf json.type;
- default = [];
- description = ''
+ default = [ ];
+ description = lib.mdDoc ''
Extra CNI plugin configurations to add to podman's default network.
'';
};
@@ -167,14 +169,15 @@ in
grep -v 'D! /run/podman 0700 root root' \
<$package/lib/tmpfiles.d/podman.conf \
>$out/lib/tmpfiles.d/podman.conf
- '') ];
+ '')
+ ];
systemd.tmpfiles.rules =
lib.optionals cfg.dockerSocket.enable [
"L! /run/docker.sock - - - - /run/podman/podman.sock"
];
- users.groups.podman = {};
+ users.groups.podman = { };
assertions = [
{
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/podman/network-socket-ghostunnel.nix b/third_party/nixpkgs/nixos/modules/virtualisation/podman/network-socket-ghostunnel.nix
index a0e7e43316..ade4926c94 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/podman/network-socket-ghostunnel.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/podman/network-socket-ghostunnel.nix
@@ -26,7 +26,7 @@ in
allowAll = lib.mkDefault true;
};
};
- systemd.services.ghostunnel-server-podman-socket.serviceConfig.SupplementaryGroups = ["podman"];
+ systemd.services.ghostunnel-server-podman-socket.serviceConfig.SupplementaryGroups = [ "podman" ];
};
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/podman/network-socket.nix b/third_party/nixpkgs/nixos/modules/virtualisation/podman/network-socket.nix
index 5f6ce49355..a10597175a 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/podman/network-socket.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/podman/network-socket.nix
@@ -17,22 +17,22 @@ in
enable = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Make the Podman and Docker compatibility API available over the network
with TLS client certificate authentication.
This allows Docker clients to connect with the equivalents of the Docker
- CLI -H and --tls* family of options.
+ CLI `-H` and `--tls*` family of options.
For certificate setup, see https://docs.docker.com/engine/security/protect-access/
- This option is independent of .
+ This option is independent of [](#opt-virtualisation.podman.dockerSocket.enable).
'';
};
server = mkOption {
- type = types.enum [];
- description = ''
+ type = types.enum [ ];
+ description = lib.mdDoc ''
Choice of TLS proxy server.
'';
example = "ghostunnel";
@@ -41,28 +41,28 @@ in
openFirewall = mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Whether to open the port in the firewall.
'';
};
tls.cacert = mkOption {
type = types.path;
- description = ''
+ description = lib.mdDoc ''
Path to CA certificate to use for client authentication.
'';
};
tls.cert = mkOption {
type = types.path;
- description = ''
+ description = lib.mdDoc ''
Path to certificate describing the server.
'';
};
tls.key = mkOption {
type = types.path;
- description = ''
+ description = lib.mdDoc ''
Path to the private key corresponding to the server certificate.
Use a string for this setting. Otherwise it will be copied to the Nix
@@ -73,14 +73,14 @@ in
port = mkOption {
type = types.port;
default = 2376;
- description = ''
+ description = lib.mdDoc ''
TCP port number for receiving TLS connections.
'';
};
listenAddress = mkOption {
type = types.str;
default = "0.0.0.0";
- description = ''
+ description = lib.mdDoc ''
Interface address for receiving TLS connections.
'';
};
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/proxmox-image.nix b/third_party/nixpkgs/nixos/modules/virtualisation/proxmox-image.nix
index e07d1d1eb3..4076d68b93 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/proxmox-image.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/proxmox-image.nix
@@ -10,7 +10,7 @@ with lib;
type = types.str;
default = "";
example = "order=scsi0;net0";
- description = ''
+ description = lib.mdDoc ''
Default boot device. PVE will try all devices in its default order if this value is empty.
'';
};
@@ -18,16 +18,16 @@ with lib;
type = types.str;
default = "virtio-scsi-pci";
example = "lsi";
- description = ''
+ description = lib.mdDoc ''
SCSI controller type. Must be one of the supported values given in
-
+
'';
};
virtio0 = mkOption {
type = types.str;
default = "local-lvm:vm-9999-disk-0";
example = "ceph:vm-123-disk-0";
- description = ''
+ description = lib.mdDoc ''
Configuration for the default virtio disk. It can be used as a cue for PVE to autodetect the target sotrage.
This parameter is required by PVE even if it isn't used.
'';
@@ -35,21 +35,21 @@ with lib;
ostype = mkOption {
type = types.str;
default = "l26";
- description = ''
+ description = lib.mdDoc ''
Guest OS type
'';
};
cores = mkOption {
type = types.ints.positive;
default = 1;
- description = ''
+ description = lib.mdDoc ''
Guest core count
'';
};
memory = mkOption {
type = types.ints.positive;
default = 1024;
- description = ''
+ description = lib.mdDoc ''
Guest memory in MB
'';
};
@@ -58,14 +58,14 @@ with lib;
name = mkOption {
type = types.str;
default = "nixos-${config.system.nixos.label}";
- description = ''
+ description = lib.mdDoc ''
VM name
'';
};
net0 = mkOption {
type = types.commas;
default = "virtio=00:00:00:00:00:00,bridge=vmbr0,firewall=1";
- description = ''
+ description = lib.mdDoc ''
Configuration for the default interface. When restoring from VMA, check the
"unique" box to ensure device mac is randomized.
'';
@@ -74,7 +74,7 @@ with lib;
type = types.str;
default = "socket";
example = "/dev/ttyS0";
- description = ''
+ description = lib.mdDoc ''
Create a serial device inside the VM (n is 0 to 3), and pass through a host serial device (i.e. /dev/ttyS0),
or create a unix socket on the host side (use qm terminal to open a terminal connection).
'';
@@ -83,7 +83,7 @@ with lib;
type = types.bool;
apply = x: if x then "1" else "0";
default = true;
- description = ''
+ description = lib.mdDoc ''
Expect guest to have qemu agent running
'';
};
@@ -95,7 +95,7 @@ with lib;
cpu = "host";
onboot = 1;
}'';
- description = ''
+ description = lib.mdDoc ''
Additional options appended to qemu-server.conf
'';
};
@@ -103,7 +103,7 @@ with lib;
type = types.str;
default = config.proxmox.qemuConf.name;
example = "999-nixos_template";
- description = ''
+ description = lib.mdDoc ''
Filename of the image will be vzdump-qemu-''${filenameSuffix}.vma.zstd.
This will also determine the default name of the VM on restoring the VMA.
Start this value with a number if you want the VMA to be detected as a backup of
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix b/third_party/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix
index 98617a397a..5cb2a99bc3 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix
@@ -17,6 +17,8 @@ let
cfg = config.virtualisation;
+ opt = options.virtualisation;
+
qemu = cfg.qemu.package;
consoles = lib.concatMapStringsSep " " (c: "console=${c}") cfg.qemu.consoles;
@@ -27,26 +29,26 @@ let
file = mkOption {
type = types.str;
- description = "The file image used for this drive.";
+ description = lib.mdDoc "The file image used for this drive.";
};
driveExtraOpts = mkOption {
type = types.attrsOf types.str;
default = {};
- description = "Extra options passed to drive flag.";
+ description = lib.mdDoc "Extra options passed to drive flag.";
};
deviceExtraOpts = mkOption {
type = types.attrsOf types.str;
default = {};
- description = "Extra options passed to device flag.";
+ description = lib.mdDoc "Extra options passed to device flag.";
};
name = mkOption {
type = types.nullOr types.str;
default = null;
description =
- "A name for the drive. Must be unique in the drives list. Not passed to qemu.";
+ lib.mdDoc "A name for the drive. Must be unique in the drives list. Not passed to qemu.";
};
};
@@ -122,11 +124,32 @@ let
TMPDIR=$(mktemp -d nix-vm.XXXXXXXXXX --tmpdir)
fi
- ${lib.optionalString cfg.useNixStoreImage
- ''
- # Create a writable copy/snapshot of the store image.
- ${qemu}/bin/qemu-img create -f qcow2 -F qcow2 -b ${storeImage}/nixos.qcow2 "$TMPDIR"/store.img
- ''}
+ ${lib.optionalString (cfg.useNixStoreImage)
+ (if cfg.writableStore
+ then ''
+ # Create a writable copy/snapshot of the store image.
+ ${qemu}/bin/qemu-img create -f qcow2 -F qcow2 -b ${storeImage}/nixos.qcow2 "$TMPDIR"/store.img
+ ''
+ else ''
+ (
+ cd ${builtins.storeDir}
+ ${pkgs.erofs-utils}/bin/mkfs.erofs \
+ --force-uid=0 \
+ --force-gid=0 \
+ -U eb176051-bd15-49b7-9e6b-462e0b467019 \
+ -T 0 \
+ --exclude-regex="$(
+ <${pkgs.closureInfo { rootPaths = [ config.system.build.toplevel regInfo ]; }}/store-paths \
+ sed -e 's^.*/^^g' \
+ | cut -c -10 \
+ | ${pkgs.python3}/bin/python ${./includes-to-excludes.py} )" \
+ "$TMPDIR"/store.img \
+ . \
+ /dev/null
+ )
+ ''
+ )
+ }
# Create a directory for exchanging data with the VM.
mkdir -p "$TMPDIR/xchg"
@@ -298,7 +321,7 @@ in
type = types.ints.positive;
default = 1024;
description =
- ''
+ lib.mdDoc ''
The memory size in megabytes of the virtual machine.
'';
};
@@ -308,7 +331,7 @@ in
type = types.ints.positive;
default = 16384;
description =
- ''
+ lib.mdDoc ''
The msize (maximum packet size) option passed to 9p file systems, in
bytes. Increasing this should increase performance significantly,
at the cost of higher RAM usage.
@@ -320,7 +343,7 @@ in
type = types.nullOr types.ints.positive;
default = 1024;
description =
- ''
+ lib.mdDoc ''
The disk size in megabytes of the virtual machine.
'';
};
@@ -331,7 +354,7 @@ in
default = "./${config.system.name}.qcow2";
defaultText = literalExpression ''"./''${config.system.name}.qcow2"'';
description =
- ''
+ lib.mdDoc ''
Path to the disk image containing the root filesystem.
The image will be created on startup if it does not
exist.
@@ -343,7 +366,7 @@ in
type = types.path;
example = "/dev/vda";
description =
- ''
+ lib.mdDoc ''
The disk to be used for the root filesystem.
'';
};
@@ -353,7 +376,7 @@ in
type = types.listOf types.ints.positive;
default = [];
description =
- ''
+ lib.mdDoc ''
Additional disk images to provide to the VM. The value is
a list of size in megabytes of each disk. These disks are
writeable by the VM.
@@ -365,7 +388,7 @@ in
type = types.bool;
default = true;
description =
- ''
+ lib.mdDoc ''
Whether to run QEMU with a graphics window, or in nographic mode.
Serial console will be enabled on both settings, but this will
change the preferred console.
@@ -377,7 +400,7 @@ in
type = options.services.xserver.resolutions.type.nestedTypes.elemType;
default = { x = 1024; y = 768; };
description =
- ''
+ lib.mdDoc ''
The resolution of the virtual machine display.
'';
};
@@ -387,7 +410,7 @@ in
type = types.ints.positive;
default = 1;
description =
- ''
+ lib.mdDoc ''
Specify the number of cores the guest is permitted to use.
The number can be higher than the available cores on the
host system.
@@ -400,11 +423,11 @@ in
(types.submodule {
options.source = mkOption {
type = types.str;
- description = "The path of the directory to share, can be a shell variable";
+ description = lib.mdDoc "The path of the directory to share, can be a shell variable";
};
options.target = mkOption {
type = types.path;
- description = "The mount point of the directory inside the virtual machine";
+ description = lib.mdDoc "The mount point of the directory inside the virtual machine";
};
});
default = { };
@@ -412,7 +435,7 @@ in
my-share = { source = "/path/to/be/shared"; target = "/mnt/shared"; };
};
description =
- ''
+ lib.mdDoc ''
An attributes set of directories that will be shared with the
virtual machine using VirtFS (9P filesystem over VirtIO).
The attribute name will be used as the 9P mount tag.
@@ -424,7 +447,7 @@ in
type = types.listOf types.path;
default = [];
description =
- ''
+ lib.mdDoc ''
A list of paths whose closure should be made available to
the VM.
@@ -434,7 +457,7 @@ in
garbage (because they are not registered in the Nix
database of the guest).
- When is
+ When {option}`virtualisation.useNixStoreImage` is
set, the closure is copied to the Nix store image.
'';
};
@@ -459,25 +482,25 @@ in
options.proto = mkOption {
type = types.enum [ "tcp" "udp" ];
default = "tcp";
- description = "The protocol to forward.";
+ description = lib.mdDoc "The protocol to forward.";
};
options.host.address = mkOption {
type = types.str;
default = "";
- description = "The IPv4 address of the host.";
+ description = lib.mdDoc "The IPv4 address of the host.";
};
options.host.port = mkOption {
type = types.port;
- description = "The host port to be mapped.";
+ description = lib.mdDoc "The host port to be mapped.";
};
options.guest.address = mkOption {
type = types.str;
default = "";
- description = "The IPv4 address on the guest VLAN.";
+ description = lib.mdDoc "The IPv4 address on the guest VLAN.";
};
options.guest.port = mkOption {
type = types.port;
- description = "The guest port to be mapped.";
+ description = lib.mdDoc "The guest port to be mapped.";
};
});
default = [];
@@ -514,13 +537,13 @@ in
default = [ 1 ];
example = [ 1 2 ];
description =
- ''
+ lib.mdDoc ''
Virtual networks to which the VM is connected. Each
number «N» in this list causes
the VM to have a virtual Ethernet interface attached to a
separate virtual network on which it will be assigned IP
address
- 192.168.«N».«M»,
+ `192.168.«N».«M»`,
where «M» is the index of this VM
in the list of VMs.
'';
@@ -531,7 +554,7 @@ in
type = types.bool;
default = true; # FIXME
description =
- ''
+ lib.mdDoc ''
If enabled, the Nix store in the VM is made writable by
layering an overlay filesystem on top of the host's Nix
store.
@@ -543,7 +566,7 @@ in
type = types.bool;
default = true;
description =
- ''
+ lib.mdDoc ''
Use a tmpfs for the writable store instead of writing to the VM's
own filesystem.
'';
@@ -563,7 +586,7 @@ in
type = types.package;
default = pkgs.qemu_kvm;
example = "pkgs.qemu_test";
- description = "QEMU package to use.";
+ description = lib.mdDoc "QEMU package to use.";
};
options =
@@ -571,7 +594,7 @@ in
type = types.listOf types.str;
default = [];
example = [ "-vga std" ];
- description = "Options passed to QEMU.";
+ description = lib.mdDoc "Options passed to QEMU.";
};
consoles = mkOption {
@@ -580,14 +603,14 @@ in
consoles = [ "${qemu-common.qemuSerialDevice},115200n8" "tty0" ];
in if cfg.graphics then consoles else reverseList consoles;
example = [ "console=tty1" ];
- description = ''
+ description = lib.mdDoc ''
The output console devices to pass to the kernel command line via the
- console parameter, the primary console is the last
+ `console` parameter, the primary console is the last
item of this list.
By default it enables both serial console and
- tty0. The preferred console (last one) is based on
- the value of .
+ `tty0`. The preferred console (last one) is based on
+ the value of {option}`virtualisation.graphics`.
'';
};
@@ -599,7 +622,7 @@ in
"-net nic,netdev=user.0,model=virtio"
"-netdev user,id=user.0,\${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}"
];
- description = ''
+ description = lib.mdDoc ''
Networking-related command-line options that should be passed to qemu.
The default is to use userspace networking (SLiRP).
@@ -612,7 +635,7 @@ in
drives =
mkOption {
type = types.listOf (types.submodule driveOpts);
- description = "Drives passed to qemu.";
+ description = lib.mdDoc "Drives passed to qemu.";
apply = addDeviceNames;
};
@@ -621,14 +644,14 @@ in
type = types.enum [ "virtio" "scsi" "ide" ];
default = "virtio";
example = "scsi";
- description = "The interface used for the virtual hard disks.";
+ description = lib.mdDoc "The interface used for the virtual hard disks.";
};
guestAgent.enable =
mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Enable the Qemu guest agent.
'';
};
@@ -637,7 +660,7 @@ in
mkOption {
type = types.bool;
default = true;
- description = ''
+ description = lib.mdDoc ''
Enable the virtio-keyboard device.
'';
};
@@ -647,7 +670,7 @@ in
mkOption {
type = types.bool;
default = false;
- description = ''
+ description = lib.mdDoc ''
Build and use a disk image for the Nix store, instead of
accessing the host's one through 9p.
@@ -662,7 +685,7 @@ in
type = types.bool;
default = false;
description =
- ''
+ lib.mdDoc ''
If enabled, the virtual machine will be booted using the
regular boot loader (i.e., GRUB 1 or 2). This allows
testing of the boot loader. If
@@ -677,7 +700,7 @@ in
type = types.bool;
default = false;
description =
- ''
+ lib.mdDoc ''
If enabled, the virtual machine will provide a EFI boot
manager.
useEFIBoot is ignored if useBootLoader == false.
@@ -689,7 +712,7 @@ in
type = types.bool;
default = true;
description =
- ''
+ lib.mdDoc ''
If enabled, the boot disk of the virtual machine will be
formatted and mounted with the default filesystems for
testing. Swap devices and LUKS will be disabled.
@@ -705,7 +728,7 @@ in
default = "./${config.system.name}-efi-vars.fd";
defaultText = literalExpression ''"./''${config.system.name}-efi-vars.fd"'';
description =
- ''
+ lib.mdDoc ''
Path to nvram image containing UEFI variables. The will be created
on startup if it does not exist.
'';
@@ -716,10 +739,10 @@ in
type = types.nullOr types.package;
default = null;
description =
- ''
- An alternate BIOS (such as qboot) with which to start the VM.
- Should contain a file named bios.bin.
- If null, QEMU's builtin SeaBIOS will be used.
+ lib.mdDoc ''
+ An alternate BIOS (such as `qboot`) with which to start the VM.
+ Should contain a file named `bios.bin`.
+ If `null`, QEMU's builtin SeaBIOS will be used.
'';
};
@@ -746,6 +769,26 @@ in
}
]));
+ warnings =
+ optional (
+ cfg.writableStore &&
+ cfg.useNixStoreImage &&
+ opt.writableStore.highestPrio > lib.modules.defaultPriority)
+ ''
+ You have enabled ${opt.useNixStoreImage} = true,
+ without setting ${opt.writableStore} = false.
+
+ This causes a store image to be written to the store, which is
+ costly, especially for the binary cache, and because of the need
+ for more frequent garbage collection.
+
+ If you really need this combination, you can set ${opt.writableStore}
+ explicitly to true, incur the cost and make this warning go away.
+ Otherwise, we recommend
+
+ ${opt.writableStore} = false;
+ '';
+
# Note [Disk layout with `useBootLoader`]
#
# If `useBootLoader = true`, we configure 2 drives:
@@ -769,6 +812,8 @@ in
);
boot.loader.grub.gfxmodeBios = with cfg.resolution; "${toString x}x${toString y}";
+ boot.initrd.kernelModules = optionals (cfg.useNixStoreImage && !cfg.writableStore) [ "erofs" ];
+
boot.initrd.extraUtilsCommands = lib.mkIf (cfg.useDefaultFilesystems && !config.boot.initrd.systemd.enable)
''
# We need mke2fs in the initrd.
@@ -905,6 +950,7 @@ in
name = "nix-store";
file = ''"$TMPDIR"/store.img'';
deviceExtraOpts.bootindex = if cfg.useBootLoader then "3" else "2";
+ driveExtraOpts.format = if cfg.writableStore then "qcow2" else "raw";
}])
(mkIf cfg.useBootLoader [
# The order of this list determines the device names, see
diff --git a/third_party/nixpkgs/nixos/modules/virtualisation/vmware-image.nix b/third_party/nixpkgs/nixos/modules/virtualisation/vmware-image.nix
index f6cd12e2bb..a38713b4d4 100644
--- a/third_party/nixpkgs/nixos/modules/virtualisation/vmware-image.nix
+++ b/third_party/nixpkgs/nixos/modules/virtualisation/vmware-image.nix
@@ -21,34 +21,34 @@ in {
type = with types; either (enum [ "auto" ]) int;
default = "auto";
example = 2048;
- description = ''
+ description = lib.mdDoc ''
The size of the VMWare base image in MiB.
'';
};
vmDerivationName = mkOption {
type = types.str;
default = "nixos-vmware-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
- description = ''
+ description = lib.mdDoc ''
The name of the derivation for the VMWare appliance.
'';
};
vmFileName = mkOption {
type = types.str;
default = "nixos-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.vmdk";
- description = ''
+ description = lib.mdDoc ''
The file name of the VMWare appliance.
'';
};
vmSubformat = mkOption {
type = types.enum subformats;
default = "monolithicSparse";
- description = "Specifies which VMDK subformat to use.";
+ description = lib.mdDoc "Specifies which VMDK subformat to use.";
};
vmCompat6 = mkOption {
type = types.bool;
default = false;
example = true;
- description = "Create a VMDK version 6 image (instead of version 4).";
+ description = lib.mdDoc "Create a VMDK version 6 image (instead of version 4).";
};
};
};
diff --git a/third_party/nixpkgs/nixos/tests/all-tests.nix b/third_party/nixpkgs/nixos/tests/all-tests.nix
index affb179a92..c718c292b2 100644
--- a/third_party/nixpkgs/nixos/tests/all-tests.nix
+++ b/third_party/nixpkgs/nixos/tests/all-tests.nix
@@ -41,6 +41,7 @@ in {
apparmor = handleTest ./apparmor.nix {};
atd = handleTest ./atd.nix {};
atop = handleTest ./atop.nix {};
+ auth-mysql = handleTest ./auth-mysql.nix {};
avahi = handleTest ./avahi.nix {};
avahi-with-resolved = handleTest ./avahi.nix { networkd = true; };
babeld = handleTest ./babeld.nix {};
@@ -266,10 +267,12 @@ in {
kerberos = handleTest ./kerberos/default.nix {};
kernel-generic = handleTest ./kernel-generic.nix {};
kernel-latest-ath-user-regd = handleTest ./kernel-latest-ath-user-regd.nix {};
+ keter = handleTest ./keter.nix {};
kexec = handleTest ./kexec.nix {};
keycloak = discoverTests (import ./keycloak.nix);
keymap = handleTest ./keymap.nix {};
knot = handleTest ./knot.nix {};
+ komga = handleTest ./komga.nix {};
krb5 = discoverTests (import ./krb5 {});
ksm = handleTest ./ksm.nix {};
kubernetes = handleTestOn ["x86_64-linux"] ./kubernetes {};
@@ -417,6 +420,7 @@ in {
pam-u2f = handleTest ./pam/pam-u2f.nix {};
pam-ussh = handleTest ./pam/pam-ussh.nix {};
pass-secret-service = handleTest ./pass-secret-service.nix {};
+ patroni = handleTest ./patroni.nix {};
pantalaimon = handleTest ./matrix/pantalaimon.nix {};
pantheon = handleTest ./pantheon.nix {};
paperless = handleTest ./paperless.nix {};
diff --git a/third_party/nixpkgs/nixos/tests/auth-mysql.nix b/third_party/nixpkgs/nixos/tests/auth-mysql.nix
new file mode 100644
index 0000000000..0ed4b050a6
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/auth-mysql.nix
@@ -0,0 +1,177 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }:
+
+let
+ dbUser = "nixos_auth";
+ dbPassword = "topsecret123";
+ dbName = "auth";
+
+ mysqlUsername = "mysqltest";
+ mysqlPassword = "topsecretmysqluserpassword123";
+ mysqlGroup = "mysqlusers";
+
+ localUsername = "localtest";
+ localPassword = "topsecretlocaluserpassword123";
+
+ mysqlInit = pkgs.writeText "mysqlInit" ''
+ CREATE USER '${dbUser}'@'localhost' IDENTIFIED BY '${dbPassword}';
+ CREATE DATABASE ${dbName};
+ GRANT ALL PRIVILEGES ON ${dbName}.* TO '${dbUser}'@'localhost';
+ FLUSH PRIVILEGES;
+
+ USE ${dbName};
+ CREATE TABLE `groups` (
+ rowid int(11) NOT NULL auto_increment,
+ gid int(11) NOT NULL,
+ name char(255) NOT NULL,
+ PRIMARY KEY (rowid)
+ );
+
+ CREATE TABLE `users` (
+ name varchar(255) NOT NULL,
+ uid int(11) NOT NULL auto_increment,
+ gid int(11) NOT NULL,
+ password varchar(255) NOT NULL,
+ PRIMARY KEY (uid),
+ UNIQUE (name)
+ ) AUTO_INCREMENT=5000;
+
+ INSERT INTO `users` (name, uid, gid, password) VALUES
+ ('${mysqlUsername}', 5000, 5000, SHA2('${mysqlPassword}', 256));
+ INSERT INTO `groups` (name, gid) VALUES ('${mysqlGroup}', 5000);
+ '';
+in
+{
+ name = "auth-mysql";
+ meta.maintainers = with lib.maintainers; [ netali ];
+
+ nodes.machine =
+ { ... }:
+ {
+ services.mysql = {
+ enable = true;
+ package = pkgs.mariadb;
+ settings.mysqld.bind-address = "127.0.0.1";
+ initialScript = mysqlInit;
+ };
+
+ users.users.${localUsername} = {
+ isNormalUser = true;
+ password = localPassword;
+ };
+
+ security.pam.services.login.makeHomeDir = true;
+
+ users.mysql = {
+ enable = true;
+ host = "127.0.0.1";
+ user = dbUser;
+ database = dbName;
+ passwordFile = "${builtins.toFile "dbPassword" dbPassword}";
+ pam = {
+ table = "users";
+ userColumn = "name";
+ passwordColumn = "password";
+ passwordCrypt = "sha256";
+ disconnectEveryOperation = true;
+ };
+ nss = {
+ getpwnam = ''
+ SELECT name, 'x', uid, gid, name, CONCAT('/home/', name), "/run/current-system/sw/bin/bash" \
+ FROM users \
+ WHERE name='%1$s' \
+ LIMIT 1
+ '';
+ getpwuid = ''
+ SELECT name, 'x', uid, gid, name, CONCAT('/home/', name), "/run/current-system/sw/bin/bash" \
+ FROM users \
+ WHERE id=%1$u \
+ LIMIT 1
+ '';
+ getspnam = ''
+ SELECT name, password, 1, 0, 99999, 7, 0, -1, 0 \
+ FROM users \
+ WHERE name='%1$s' \
+ LIMIT 1
+ '';
+ getpwent = ''
+ SELECT name, 'x', uid, gid, name, CONCAT('/home/', name), "/run/current-system/sw/bin/bash" \
+ FROM users
+ '';
+ getspent = ''
+ SELECT name, password, 1, 0, 99999, 7, 0, -1, 0 \
+ FROM users
+ '';
+ getgrnam = ''
+ SELECT name, 'x', gid FROM groups WHERE name='%1$s' LIMIT 1
+ '';
+ getgrgid = ''
+ SELECT name, 'x', gid FROM groups WHERE gid='%1$u' LIMIT 1
+ '';
+ getgrent = ''
+ SELECT name, 'x', gid FROM groups
+ '';
+ memsbygid = ''
+ SELECT name FROM users WHERE gid=%1$u
+ '';
+ gidsbymem = ''
+ SELECT gid FROM users WHERE name='%1$s'
+ '';
+ };
+ };
+ };
+
+ testScript = ''
+ def switch_to_tty(tty_number):
+ machine.fail(f"pgrep -f 'agetty.*tty{tty_number}'")
+ machine.send_key(f"alt-f{tty_number}")
+ machine.wait_until_succeeds(f"[ $(fgconsole) = {tty_number} ]")
+ machine.wait_for_unit(f"getty@tty{tty_number}.service")
+ machine.wait_until_succeeds(f"pgrep -f 'agetty.*tty{tty_number}'")
+
+
+ def try_login(tty_number, username, password):
+ machine.wait_until_tty_matches(tty_number, "login: ")
+ machine.send_chars(f"{username}\n")
+ machine.wait_until_tty_matches(tty_number, f"login: {username}")
+ machine.wait_until_succeeds("pgrep login")
+ machine.wait_until_tty_matches(tty_number, "Password: ")
+ machine.send_chars(f"{password}\n")
+
+
+ machine.wait_for_unit("multi-user.target")
+ machine.wait_for_unit("mysql.service")
+ machine.wait_until_succeeds("pgrep -f 'agetty.*tty1'")
+
+ with subtest("Local login"):
+ switch_to_tty("2")
+ try_login("2", "${localUsername}", "${localPassword}")
+
+ machine.wait_until_succeeds("pgrep -u ${localUsername} bash")
+ machine.send_chars("id > local_id.txt\n")
+ machine.wait_for_file("/home/${localUsername}/local_id.txt")
+ machine.succeed("cat /home/${localUsername}/local_id.txt | grep 'uid=1000(${localUsername}) gid=100(users) groups=100(users)'")
+
+ with subtest("Local incorrect login"):
+ switch_to_tty("3")
+ try_login("3", "${localUsername}", "wrongpassword")
+
+ machine.wait_until_tty_matches("3", "Login incorrect")
+ machine.wait_until_tty_matches("3", "login:")
+
+ with subtest("MySQL login"):
+ switch_to_tty("4")
+ try_login("4", "${mysqlUsername}", "${mysqlPassword}")
+
+ machine.wait_until_succeeds("pgrep -u ${mysqlUsername} bash")
+ machine.send_chars("id > mysql_id.txt\n")
+ machine.wait_for_file("/home/${mysqlUsername}/mysql_id.txt")
+ machine.succeed("cat /home/${mysqlUsername}/mysql_id.txt | grep 'uid=5000(${mysqlUsername}) gid=5000(${mysqlGroup}) groups=5000(${mysqlGroup})'")
+
+ with subtest("MySQL incorrect login"):
+ switch_to_tty("5")
+ try_login("5", "${mysqlUsername}", "wrongpassword")
+
+ machine.wait_until_tty_matches("5", "Login incorrect")
+ machine.wait_until_tty_matches("5", "login:")
+ '';
+})
diff --git a/third_party/nixpkgs/nixos/tests/bitcoind.nix b/third_party/nixpkgs/nixos/tests/bitcoind.nix
index 04655b7f6a..7726a23d85 100644
--- a/third_party/nixpkgs/nixos/tests/bitcoind.nix
+++ b/third_party/nixpkgs/nixos/tests/bitcoind.nix
@@ -13,9 +13,11 @@ import ./make-test-python.nix ({ pkgs, ... }: {
users.rpc2.passwordHMAC = "1495e4a3ad108187576c68f7f9b5ddc5$accce0881c74aa01bb8960ff3bdbd39f607fd33178147679e055a4ac35f53225";
};
};
+
+ environment.etc."test.blank".text = "";
services.bitcoind."testnet" = {
enable = true;
- configFile = "/test.blank";
+ configFile = "/etc/test.blank";
testnet = true;
rpc = {
port = 18332;
diff --git a/third_party/nixpkgs/nixos/tests/discourse.nix b/third_party/nixpkgs/nixos/tests/discourse.nix
index cfac5f84a6..35ca083c6c 100644
--- a/third_party/nixpkgs/nixos/tests/discourse.nix
+++ b/third_party/nixpkgs/nixos/tests/discourse.nix
@@ -30,6 +30,7 @@ import ./make-test-python.nix (
virtualisation.memorySize = 2048;
virtualisation.cores = 4;
virtualisation.useNixStoreImage = true;
+ virtualisation.writableStore = false;
imports = [ common/user-account.nix ];
diff --git a/third_party/nixpkgs/nixos/tests/gitlab.nix b/third_party/nixpkgs/nixos/tests/gitlab.nix
index 4f7d3f07f0..d9d75d1cbd 100644
--- a/third_party/nixpkgs/nixos/tests/gitlab.nix
+++ b/third_party/nixpkgs/nixos/tests/gitlab.nix
@@ -38,6 +38,8 @@ in {
virtualisation.memorySize = if pkgs.stdenv.is64bit then 4096 else 2047;
virtualisation.cores = 4;
virtualisation.useNixStoreImage = true;
+ virtualisation.writableStore = false;
+
systemd.services.gitlab.serviceConfig.Restart = mkForce "no";
systemd.services.gitlab-workhorse.serviceConfig.Restart = mkForce "no";
systemd.services.gitaly.serviceConfig.Restart = mkForce "no";
diff --git a/third_party/nixpkgs/nixos/tests/isso.nix b/third_party/nixpkgs/nixos/tests/isso.nix
index f4560ba3e6..575e1c52ec 100644
--- a/third_party/nixpkgs/nixos/tests/isso.nix
+++ b/third_party/nixpkgs/nixos/tests/isso.nix
@@ -22,7 +22,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
''
machine.wait_for_unit("isso.service")
- machine.wait_for_open_port(port)
+ machine.wait_for_open_port(${toString port})
machine.succeed("curl --fail http://localhost:${toString port}/?uri")
machine.succeed("curl --fail http://localhost:${toString port}/js/embed.min.js")
diff --git a/third_party/nixpkgs/nixos/tests/keter.nix b/third_party/nixpkgs/nixos/tests/keter.nix
new file mode 100644
index 0000000000..0bfb96e1c3
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/keter.nix
@@ -0,0 +1,42 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+let
+ port = 81;
+in
+{
+ name = "keter";
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ jappie ];
+ };
+
+
+ nodes.machine = { config, pkgs, ... }: {
+ services.keter = {
+ enable = true;
+
+ globalKeterConfig = {
+ listeners = [{
+ host = "*4";
+ inherit port;
+ }];
+ };
+ bundle = {
+ appName = "test-bundle";
+ domain = "localhost";
+ executable = pkgs.writeShellScript "run" ''
+ ${pkgs.python3}/bin/python -m http.server $PORT
+ '';
+ };
+ };
+ };
+
+ testScript =
+ ''
+ machine.wait_for_unit("keter.service")
+
+ machine.wait_for_open_port(${toString port})
+ machine.wait_for_console_text("Activating app test-bundle with hosts: localhost")
+
+
+ machine.succeed("curl --fail http://localhost:${toString port}/")
+ '';
+})
diff --git a/third_party/nixpkgs/nixos/tests/komga.nix b/third_party/nixpkgs/nixos/tests/komga.nix
new file mode 100644
index 0000000000..02db50ef25
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/komga.nix
@@ -0,0 +1,22 @@
+import ./make-test-python.nix ({ lib, ... }:
+
+with lib;
+
+{
+ name = "komga";
+ meta.maintainers = with maintainers; [ govanify ];
+
+ nodes.machine =
+ { pkgs, ... }:
+ { services.komga = {
+ enable = true;
+ port = 1234;
+ };
+ };
+
+ testScript = ''
+ machine.wait_for_unit("komga.service")
+ machine.wait_for_open_port(1234)
+ machine.succeed("curl --fail http://localhost:1234/")
+ '';
+})
diff --git a/third_party/nixpkgs/nixos/tests/neo4j.nix b/third_party/nixpkgs/nixos/tests/neo4j.nix
index 8329e5630d..0b57f5b2e0 100644
--- a/third_party/nixpkgs/nixos/tests/neo4j.nix
+++ b/third_party/nixpkgs/nixos/tests/neo4j.nix
@@ -2,19 +2,25 @@ import ./make-test-python.nix {
name = "neo4j";
nodes = {
- master =
+ server =
{ ... }:
{
+ virtualisation.memorySize = 4096;
+ virtualisation.diskSize = 1024;
+
services.neo4j.enable = true;
+ # require tls certs to be available
+ services.neo4j.https.enable = false;
+ services.neo4j.bolt.enable = false;
};
};
testScript = ''
start_all()
- master.wait_for_unit("neo4j")
- master.wait_for_open_port(7474)
- master.succeed("curl -f http://localhost:7474/")
+ server.wait_for_unit("neo4j.service")
+ server.wait_for_open_port(7474)
+ server.succeed("curl -f http://localhost:7474/")
'';
}
diff --git a/third_party/nixpkgs/nixos/tests/patroni.nix b/third_party/nixpkgs/nixos/tests/patroni.nix
new file mode 100644
index 0000000000..f512fddcdb
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/patroni.nix
@@ -0,0 +1,204 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }:
+
+ let
+ nodesIps = [
+ "192.168.1.1"
+ "192.168.1.2"
+ "192.168.1.3"
+ ];
+
+ createNode = index: { pkgs, ... }:
+ let
+ ip = builtins.elemAt nodesIps index; # since we already use IPs to identify servers
+ in
+ {
+ networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
+ { address = ip; prefixLength = 16; }
+ ];
+
+ networking.firewall.allowedTCPPorts = [ 5432 8008 5010 ];
+
+ environment.systemPackages = [ pkgs.jq ];
+
+ services.patroni = {
+
+ enable = true;
+
+ postgresqlPackage = pkgs.postgresql_14.withPackages (p: [ p.pg_safeupdate ]);
+
+ scope = "cluster1";
+ name = "node${toString(index + 1)}";
+ nodeIp = ip;
+ otherNodesIps = builtins.filter (h: h != ip) nodesIps;
+ softwareWatchdog = true;
+
+ settings = {
+ bootstrap = {
+ dcs = {
+ ttl = 30;
+ loop_wait = 10;
+ retry_timeout = 10;
+ maximum_lag_on_failover = 1048576;
+ };
+ initdb = [
+ { encoding = "UTF8"; }
+ "data-checksums"
+ ];
+ };
+
+ postgresql = {
+ use_pg_rewind = true;
+ use_slots = true;
+ authentication = {
+ replication = {
+ username = "replicator";
+ };
+ superuser = {
+ username = "postgres";
+ };
+ rewind = {
+ username = "rewind";
+ };
+ };
+ parameters = {
+ listen_addresses = "${ip}";
+ wal_level = "replica";
+ hot_standby_feedback = "on";
+ unix_socket_directories = "/tmp";
+ };
+ pg_hba = [
+ "host replication replicator 192.168.1.0/24 md5"
+ # Unsafe, do not use for anything other than tests
+ "host all all 0.0.0.0/0 trust"
+ ];
+ };
+
+ etcd3 = {
+ host = "192.168.1.4:2379";
+ };
+ };
+
+ environmentFiles = {
+ PATRONI_REPLICATION_PASSWORD = pkgs.writeText "replication-password" "postgres";
+ PATRONI_SUPERUSER_PASSWORD = pkgs.writeText "superuser-password" "postgres";
+ PATRONI_REWIND_PASSWORD = pkgs.writeText "rewind-password" "postgres";
+ };
+ };
+
+ # We always want to restart so the tests never hang
+ systemd.services.patroni.serviceConfig.StartLimitIntervalSec = 0;
+ };
+ in
+ {
+ name = "patroni";
+
+ nodes = {
+ node1 = createNode 0;
+ node2 = createNode 1;
+ node3 = createNode 2;
+
+ etcd = { pkgs, ... }: {
+
+ networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
+ { address = "192.168.1.4"; prefixLength = 16; }
+ ];
+
+ services.etcd = {
+ enable = true;
+ listenClientUrls = [ "http://192.168.1.4:2379" ];
+ };
+
+ networking.firewall.allowedTCPPorts = [ 2379 ];
+ };
+
+ client = { pkgs, ... }: {
+ environment.systemPackages = [ pkgs.postgresql_14 ];
+
+ networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
+ { address = "192.168.2.1"; prefixLength = 16; }
+ ];
+
+ services.haproxy = {
+ enable = true;
+ config = ''
+ global
+ maxconn 100
+
+ defaults
+ log global
+ mode tcp
+ retries 2
+ timeout client 30m
+ timeout connect 4s
+ timeout server 30m
+ timeout check 5s
+
+ listen cluster1
+ bind 127.0.0.1:5432
+ option httpchk
+ http-check expect status 200
+ default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions
+ ${builtins.concatStringsSep "\n" (map (ip: "server postgresql_${ip}_5432 ${ip}:5432 maxconn 100 check port 8008") nodesIps)}
+ '';
+ };
+ };
+ };
+
+
+
+ testScript = ''
+ nodes = [node1, node2, node3]
+
+ def wait_for_all_nodes_ready(expected_replicas=2):
+ booted_nodes = filter(lambda node: node.booted, nodes)
+ for node in booted_nodes:
+ print(node.succeed("patronictl list cluster1"))
+ node.wait_until_succeeds(f"[ $(patronictl list -f json cluster1 | jq 'length') == {expected_replicas + 1} ]")
+ node.wait_until_succeeds("[ $(patronictl list -f json cluster1 | jq 'map(select(.Role | test(\"^Leader$\"))) | map(select(.State | test(\"^running$\"))) | length') == 1 ]")
+ node.wait_until_succeeds(f"[ $(patronictl list -f json cluster1 | jq 'map(select(.Role | test(\"^Replica$\"))) | map(select(.State | test(\"^running$\"))) | length') == {expected_replicas} ]")
+ print(node.succeed("patronictl list cluster1"))
+ client.wait_until_succeeds("psql -h 127.0.0.1 -U postgres --command='select 1;'")
+
+ def run_dummy_queries():
+ client.succeed("psql -h 127.0.0.1 -U postgres --pset='pager=off' --tuples-only --command='insert into dummy(val) values (101);'")
+ client.succeed("test $(psql -h 127.0.0.1 -U postgres --pset='pager=off' --tuples-only --command='select val from dummy where val = 101;') -eq 101")
+ client.succeed("psql -h 127.0.0.1 -U postgres --pset='pager=off' --tuples-only --command='delete from dummy where val = 101;'")
+
+ start_all()
+
+ with subtest("should bootstrap a new patroni cluster"):
+ wait_for_all_nodes_ready()
+
+ with subtest("should be able to insert and select"):
+ client.succeed("psql -h 127.0.0.1 -U postgres --command='create table dummy as select * from generate_series(1, 100) as val;'")
+ client.succeed("test $(psql -h 127.0.0.1 -U postgres --pset='pager=off' --tuples-only --command='select count(distinct val) from dummy;') -eq 100")
+
+ with subtest("should restart after all nodes are crashed"):
+ for node in nodes:
+ node.crash()
+ for node in nodes:
+ node.start()
+ wait_for_all_nodes_ready()
+
+ with subtest("should be able to run queries while any one node is crashed"):
+ masterNodeName = node1.succeed("patronictl list -f json cluster1 | jq '.[] | select(.Role | test(\"^Leader$\")) | .Member' -r").strip()
+ masterNodeIndex = int(masterNodeName[len(masterNodeName)-1]) - 1
+
+ # Move master node at the end of the list to avoid multiple failovers (makes the test faster and more consistent)
+ nodes.append(nodes.pop(masterNodeIndex))
+
+ for node in nodes:
+ node.crash()
+ wait_for_all_nodes_ready(1)
+
+ # Execute some queries while a node is down.
+ run_dummy_queries()
+
+ # Restart crashed node.
+ node.start()
+ wait_for_all_nodes_ready()
+
+ # Execute some queries with the node back up.
+ run_dummy_queries()
+ '';
+ })
diff --git a/third_party/nixpkgs/nixos/tests/powerdns.nix b/third_party/nixpkgs/nixos/tests/powerdns.nix
index 70060bad87..d3708d25f0 100644
--- a/third_party/nixpkgs/nixos/tests/powerdns.nix
+++ b/third_party/nixpkgs/nixos/tests/powerdns.nix
@@ -47,7 +47,9 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
with subtest("Adding an example zone works"):
# Extract configuration file needed by pdnsutil
unit = server.succeed("systemctl cat pdns")
- conf = re.search("(--config-dir=[^ ]+)", unit).group(1)
+ match = re.search("(--config-dir=[^ ]+)", unit)
+ assert(match is not None)
+ conf = match.group(1)
pdnsutil = "sudo -u pdns pdnsutil " + conf
server.succeed(f"{pdnsutil} create-zone example.com ns1.example.com")
server.succeed(f"{pdnsutil} add-record example.com ns1 A 192.168.1.2")
diff --git a/third_party/nixpkgs/nixos/tests/sanoid.nix b/third_party/nixpkgs/nixos/tests/sanoid.nix
index 3bdbe0a8d8..97833c37e6 100644
--- a/third_party/nixpkgs/nixos/tests/sanoid.nix
+++ b/third_party/nixpkgs/nixos/tests/sanoid.nix
@@ -48,6 +48,9 @@ in {
};
# Take snapshot and sync
"pool/syncoid".target = "root@target:pool/syncoid";
+
+ # Test pool without parent (regression test for https://github.com/NixOS/nixpkgs/pull/180111)
+ "pool".target = "root@target:pool/full-pool";
};
};
};
@@ -105,6 +108,9 @@ in {
source.systemctl("start --wait syncoid-pool-syncoid.service")
target.succeed("cat /mnt/pool/syncoid/test.txt")
+ source.systemctl("start --wait syncoid-pool.service")
+ target.succeed("[[ -d /mnt/pool/full-pool/syncoid ]]")
+
assert len(source.succeed("zfs allow pool")) == 0, "Pool shouldn't have delegated permissions set after syncing snapshots"
assert len(source.succeed("zfs allow pool/sanoid")) == 0, "Sanoid dataset shouldn't have delegated permissions set after syncing snapshots"
assert len(source.succeed("zfs allow pool/syncoid")) == 0, "Syncoid dataset shouldn't have delegated permissions set after syncing snapshots"
diff --git a/third_party/nixpkgs/nixos/tests/sssd-ldap.nix b/third_party/nixpkgs/nixos/tests/sssd-ldap.nix
index f816c0652c..27dce6ceb9 100644
--- a/third_party/nixpkgs/nixos/tests/sssd-ldap.nix
+++ b/third_party/nixpkgs/nixos/tests/sssd-ldap.nix
@@ -28,7 +28,7 @@ in import ./make-test-python.nix ({pkgs, ...}: {
attrs = {
objectClass = [ "olcDatabaseConfig" "olcMdbConfig" ];
olcDatabase = "{1}mdb";
- olcDbDirectory = "/var/db/openldap";
+ olcDbDirectory = "/var/lib/openldap/db";
olcSuffix = dbSuffix;
olcRootDN = "cn=${ldapRootUser},${dbSuffix}";
olcRootPW = ldapRootPassword;
@@ -67,6 +67,8 @@ in import ./make-test-python.nix ({pkgs, ...}: {
services.sssd = {
enable = true;
+ # just for testing purposes, don't put this into the Nix store in production!
+ environmentFile = "${pkgs.writeText "ldap-root" "LDAP_BIND_PW=${ldapRootPassword}"}";
config = ''
[sssd]
config_file_version = 2
@@ -80,7 +82,7 @@ in import ./make-test-python.nix ({pkgs, ...}: {
ldap_search_base = ${dbSuffix}
ldap_default_bind_dn = cn=${ldapRootUser},${dbSuffix}
ldap_default_authtok_type = password
- ldap_default_authtok = ${ldapRootPassword}
+ ldap_default_authtok = $LDAP_BIND_PW
'';
};
};
diff --git a/third_party/nixpkgs/nixos/tests/systemd-machinectl.nix b/third_party/nixpkgs/nixos/tests/systemd-machinectl.nix
index d4a23877aa..5c7926e24a 100644
--- a/third_party/nixpkgs/nixos/tests/systemd-machinectl.nix
+++ b/third_party/nixpkgs/nixos/tests/systemd-machinectl.nix
@@ -33,12 +33,12 @@ import ./make-test-python.nix (
networking.useNetworkd = true;
networking.useDHCP = false;
- # open DHCP server on interface to container
- networking.firewall.trustedInterfaces = [ "ve-+" ];
-
# do not try to access cache.nixos.org
nix.settings.substituters = lib.mkForce [ ];
+ # auto-start container
+ systemd.targets.machines.wants = [ "systemd-nspawn@${containerName}.service" ];
+
virtualisation.additionalPaths = [ containerSystem ];
};
@@ -59,6 +59,12 @@ import ./make-test-python.nix (
machine.succeed("machinectl start ${containerName}");
machine.wait_until_succeeds("systemctl -M ${containerName} is-active default.target");
+ # Test nss_mymachines without nscd
+ machine.succeed('LD_LIBRARY_PATH="/run/current-system/sw/lib" getent -s hosts:mymachines hosts ${containerName}');
+
+ # Test nss_mymachines via nscd
+ machine.succeed("getent hosts ${containerName}");
+
# Test systemd-nspawn network configuration
machine.succeed("ping -n -c 1 ${containerName}");
@@ -73,6 +79,14 @@ import ./make-test-python.nix (
machine.succeed("machinectl reboot ${containerName}");
machine.wait_until_succeeds("systemctl -M ${containerName} is-active default.target");
+ # Restart machine
+ machine.shutdown()
+ machine.start()
+ machine.wait_for_unit("default.target");
+
+ # Test auto-start
+ machine.succeed("machinectl show ${containerName}")
+
# Test machinectl stop
machine.succeed("machinectl stop ${containerName}");
machine.wait_until_succeeds("test $(systemctl is-active systemd-nspawn@${containerName}) = inactive");
diff --git a/third_party/nixpkgs/pkgs/applications/audio/MMA/default.nix b/third_party/nixpkgs/pkgs/applications/audio/MMA/default.nix
index 3034de750c..8f54e6e297 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/MMA/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/MMA/default.nix
@@ -1,12 +1,12 @@
{ lib, stdenv, fetchurl, makeWrapper, python3, alsa-utils, timidity }:
- stdenv.mkDerivation rec {
- version = "20.12";
+stdenv.mkDerivation rec {
+ version = "21.09";
pname = "mma";
src = fetchurl {
url = "https://www.mellowood.ca/mma/mma-bin-${version}.tar.gz";
- sha256 = "18k0hwlqky5x4y461fxmw77gvz7z8jyrvxicrqphsgvwwinzy732";
+ sha256 = "sha256-5YzdaZ499AGiKAPUsgBCj3AQ9s0WlfgAbHhOQSOLLO8=";
};
nativeBuildInputs = [ makeWrapper ];
@@ -38,8 +38,7 @@
cp util/mup2mma.py $out/bin/mup2mma
cp util/pg2mma.py $out/bin/pg2mma
cp util/synthsplit.py $out/bin/mma-synthsplit
- cp -r {docs,egs,includes,lib,MMA,text} $out/share/mma
- rmdir $out/share/mma/includes/aria
+ cp -r {docs,egs,includes,lib,MMA,text,plugins} $out/share/mma
cp util/README.* $out/share/mma/docs
mv $out/share/mma/docs/man/mma-libdoc.8 $out/share/man/man8
@@ -61,8 +60,9 @@
'';
meta = {
- description = "Creates MIDI tracks for a soloist to perform over from a user supplied file containing chords";
- homepage = "https://www.mellowood.ca/mma/index.html";
+ description =
+ "Creates MIDI tracks for a soloist to perform over from a user supplied file containing chords";
+ homepage = "https://www.mellowood.ca/mma/index.html";
license = lib.licenses.gpl2;
maintainers = [ lib.maintainers.magnetophon ];
platforms = lib.platforms.linux;
diff --git a/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix b/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
index a66a5e6c9d..d803b09c19 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
@@ -27,10 +27,6 @@ stdenv.mkDerivation rec {
libxkbfile pixman xcbutil xcbutilwm zlib
];
- binPath = lib.makeBinPath [
- xdg-utils zenity ffmpeg
- ];
-
installPhase = ''
mkdir -p $out
cp -r opt/bitwig-studio $out/libexec
@@ -77,7 +73,8 @@ stdenv.mkDerivation rec {
-not -path '*/resources/*' | \
while IFS= read -r f ; do
wrapProgram $f \
- --prefix PATH : "${binPath}" \
+ --suffix PATH : "${lib.makeBinPath [ ffmpeg zenity ]}" \
+ --prefix PATH : "${lib.makeBinPath [ xdg-utils ]}" \
"''${gappsWrapperArgs[@]}" \
--set LD_PRELOAD "${libxkbcommon.out}/lib/libxkbcommon.so" || true
done
diff --git a/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index 6b272a408a..5eb94f8445 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
@@ -27,10 +27,6 @@ stdenv.mkDerivation rec {
alsa-lib cairo freetype gdk-pixbuf glib gtk3 libxcb xcbutil xcbutilwm zlib libXtst libxkbcommon pulseaudio libjack2 libX11 libglvnd libXcursor stdenv.cc.cc.lib
];
- binPath = lib.makeBinPath [
- xdg-utils ffmpeg
- ];
-
ldLibraryPath = lib.strings.makeLibraryPath buildInputs;
installPhase = ''
@@ -60,8 +56,9 @@ stdenv.mkDerivation rec {
patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $f
wrapProgram $f \
"''${gappsWrapperArgs[@]}" \
- --prefix PATH : "${binPath}" \
- --suffix LD_LIBRARY_PATH : "${ldLibraryPath}"
+ --prefix LD_LIBRARY_PATH : "${ldLibraryPath}" \
+ --prefix PATH : "${lib.makeBinPath [ ffmpeg ]}" \
+ --suffix PATH : "${lib.makeBinPath [ xdg-utils ]}"
done
'';
diff --git a/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix b/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
index 2ad0b6bf6a..b51419784d 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
@@ -53,9 +53,11 @@ stdenv.mkDerivation rec {
-not -path '*/resources/*' | \
while IFS= read -r f ; do
patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $f
+ # make xdg-open overrideable at runtime
wrapProgram $f \
"''${gappsWrapperArgs[@]}" \
- --prefix PATH : "${lib.makeBinPath [ xdg-utils ffmpeg ]}" \
+ --prefix PATH : "${lib.makeBinPath [ ffmpeg ]}" \
+ --suffix PATH : "${lib.makeBinPath [ xdg-utils ]}" \
--suffix LD_LIBRARY_PATH : "${lib.strings.makeLibraryPath buildInputs}"
done
diff --git a/third_party/nixpkgs/pkgs/applications/audio/librespot/default.nix b/third_party/nixpkgs/pkgs/applications/audio/librespot/default.nix
index 8772171c8c..5917739f24 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/librespot/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/librespot/default.nix
@@ -4,16 +4,16 @@
rustPlatform.buildRustPackage rec {
pname = "librespot";
- version = "0.3.1";
+ version = "0.4.2";
src = fetchFromGitHub {
owner = "librespot-org";
repo = "librespot";
rev = "v${version}";
- sha256 = "1fv2sk89rf1vraq823bxddlxj6b4gqhfpc36xr7ibz2405zickfv";
+ sha256 = "sha256-DtF6asSlLdC2m/0JTBo4YUx9HgsojpfiqVdqaIwniKA=";
};
- cargoSha256 = "1sal85gsbnrabxi39298w9njdc08csnwl40akd6k9fsc0fmpn1b0";
+ cargoSha256 = "sha256-tbDlWP0sUIa0W9HhdYNOvo9cGeqFemclhA7quh7f/Rw=";
nativeBuildInputs = [ pkg-config ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix b/third_party/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix
index 5fc0a94d75..c0da4fd228 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix
@@ -1,22 +1,22 @@
{ lib, stdenv, fetchurl, pkg-config, makeWrapper
, libsndfile, jack2
, libGLU, libGL, lv2, cairo
-, ladspaH, php }:
+, ladspaH, php, libXrandr }:
stdenv.mkDerivation rec {
- pname = "lsp-plugins";
- version = "1.2.1";
+ pname = "lsp-plugins";
+ version = "1.2.2";
- src = fetchurl {
- url = "https://github.com/sadko4u/${pname}/releases/download/${version}/${pname}-src-${version}.tar.gz";
- sha256 = "sha256-wHibZJbrgy7t0z2rRDe1FUAG38BW/dR0JgoKVWYCn60=";
- };
+ src = fetchurl {
+ url = "https://github.com/sadko4u/${pname}/releases/download/${version}/${pname}-src-${version}.tar.gz";
+ sha256 = "sha256-qIakDWNs8fQmlw/VHwTET2LmIvI+6I6zK88bmsWF4VI=";
+ };
- nativeBuildInputs = [ pkg-config php makeWrapper ];
- buildInputs = [ jack2 libsndfile libGLU libGL lv2 cairo ladspaH ];
+ nativeBuildInputs = [ pkg-config php makeWrapper ];
+ buildInputs = [ jack2 libsndfile libGLU libGL lv2 cairo ladspaH libXrandr ];
- makeFlags = [
- "PREFIX=${placeholder "out"}"
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
];
NIX_CFLAGS_COMPILE = "-DLSP_NO_EXPERIMENTAL";
diff --git a/third_party/nixpkgs/pkgs/applications/audio/mid2key/default.nix b/third_party/nixpkgs/pkgs/applications/audio/mid2key/default.nix
index 0a5aecfecb..d4af7108c1 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/mid2key/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/mid2key/default.nix
@@ -7,12 +7,10 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "dnschneid";
repo = "mid2key";
- rev = "v${version}";
- sha256 = "0j2vsjvdgx51nd1qmaa18mcy0yw9pwrhbv2mdwnf913bwsk4y904";
+ rev = "r${version}";
+ sha256 = "Zo0mqdBJ1JKD9ZCA8te3f5opyYslFncYcx9iuXq2B9g=";
};
- unpackPhase = "tar xvzf $src";
-
buildInputs = [ alsa-lib libX11 libXi libXtst xorgproto ];
buildPhase = "make";
diff --git a/third_party/nixpkgs/pkgs/applications/audio/munt/mt32emu-qt.nix b/third_party/nixpkgs/pkgs/applications/audio/munt/mt32emu-qt.nix
index c2b84fd6ed..207fbc3717 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/munt/mt32emu-qt.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/munt/mt32emu-qt.nix
@@ -18,13 +18,13 @@ let
in
mkDerivation rec {
pname = "mt32emu-qt";
- version = "1.10.2";
+ version = "1.11.1";
src = fetchFromGitHub {
owner = "munt";
repo = "munt";
rev = "${char2underscore "-" pname}_${char2underscore "." version}";
- sha256 = "1dh5xpnsgx367ch45mm5c2p26vnxf3shax2afg2cd2lrbrlii7l9";
+ sha256 = "sha256-PqYPYnKPlnU3PByxksBscl4GqDRllQdmD6RWpy/Ura0=";
};
postPatch = ''
diff --git a/third_party/nixpkgs/pkgs/applications/audio/munt/mt32emu-smf2wav.nix b/third_party/nixpkgs/pkgs/applications/audio/munt/mt32emu-smf2wav.nix
index eee9f01ebb..86b5dcee4a 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/munt/mt32emu-smf2wav.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/munt/mt32emu-smf2wav.nix
@@ -12,13 +12,13 @@ let
in
stdenv.mkDerivation rec {
pname = "mt32emu-smf2wav";
- version = "1.8.2";
+ version = "1.9.0";
src = fetchFromGitHub {
owner = "munt";
repo = "munt";
rev = "${char2underscore "-" pname}_${char2underscore "." version}";
- sha256 = "1dh5xpnsgx367ch45mm5c2p26vnxf3shax2afg2cd2lrbrlii7l9";
+ sha256 = "sha256-XGds9lDfSiY0D8RhYG4TGyjYEVvVYuAfNSv9+VxiJEs=";
};
postPatch = ''
diff --git a/third_party/nixpkgs/pkgs/applications/audio/musikcube/default.nix b/third_party/nixpkgs/pkgs/applications/audio/musikcube/default.nix
index 273b62401e..b19e22eeeb 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/musikcube/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/musikcube/default.nix
@@ -76,6 +76,11 @@ stdenv.mkDerivation rec {
"-DDISABLE_STRIP=true"
];
+ postFixup = lib.optionals stdenv.isDarwin ''
+ install_name_tool -add_rpath $out/share/${pname} $out/share/${pname}/${pname}
+ install_name_tool -add_rpath $out/share/${pname} $out/share/${pname}/${pname}d
+ '';
+
meta = with lib; {
description = "A fully functional terminal-based music player, library, and streaming audio server";
homepage = "https://musikcube.com/";
diff --git a/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/cargo-lock.patch b/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/cargo-lock.patch
index 7fc21c11ff..2820506c51 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/cargo-lock.patch
+++ b/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/cargo-lock.patch
@@ -1,14 +1,26 @@
diff --git a/Cargo.lock b/Cargo.lock
new file mode 100644
-index 0000000..41d41a5
+index 0000000..7171b64
--- /dev/null
+++ b/Cargo.lock
-@@ -0,0 +1,2001 @@
+@@ -0,0 +1,2145 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
++name = "adler"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
++
++[[package]]
++name = "adler32"
++version = "1.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
++
++[[package]]
+name = "aho-corasick"
+version = "0.7.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -18,19 +30,10 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "ansi_term"
-+version = "0.12.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-+dependencies = [
-+ "winapi",
-+]
-+
-+[[package]]
+name = "anyhow"
-+version = "1.0.45"
++version = "1.0.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ee10e43ae4a853c0a3591d4e2ada1719e553be18199d9da9d4a83f5927c2f5c7"
++checksum = "c794e162a5eff65c72ef524dfe393eb923c354e350bb78b9c7383df13f3bc142"
+
+[[package]]
+name = "async-channel"
@@ -44,153 +47,10 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "async-executor"
-+version = "1.4.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
-+dependencies = [
-+ "async-task",
-+ "concurrent-queue",
-+ "fastrand",
-+ "futures-lite",
-+ "once_cell",
-+ "slab",
-+]
-+
-+[[package]]
-+name = "async-global-executor"
-+version = "2.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6"
-+dependencies = [
-+ "async-channel",
-+ "async-executor",
-+ "async-io",
-+ "async-mutex",
-+ "blocking",
-+ "futures-lite",
-+ "num_cpus",
-+ "once_cell",
-+]
-+
-+[[package]]
-+name = "async-io"
-+version = "1.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b"
-+dependencies = [
-+ "concurrent-queue",
-+ "futures-lite",
-+ "libc",
-+ "log",
-+ "once_cell",
-+ "parking",
-+ "polling",
-+ "slab",
-+ "socket2",
-+ "waker-fn",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "async-lock"
-+version = "2.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b"
-+dependencies = [
-+ "event-listener",
-+]
-+
-+[[package]]
-+name = "async-mutex"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e"
-+dependencies = [
-+ "event-listener",
-+]
-+
-+[[package]]
-+name = "async-std"
-+version = "1.10.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f8056f1455169ab86dd47b47391e4ab0cbd25410a70e9fe675544f49bafaf952"
-+dependencies = [
-+ "async-channel",
-+ "async-global-executor",
-+ "async-io",
-+ "async-lock",
-+ "crossbeam-utils",
-+ "futures-channel",
-+ "futures-core",
-+ "futures-io",
-+ "futures-lite",
-+ "gloo-timers",
-+ "kv-log-macro",
-+ "log",
-+ "memchr",
-+ "num_cpus",
-+ "once_cell",
-+ "pin-project-lite",
-+ "pin-utils",
-+ "slab",
-+ "wasm-bindgen-futures",
-+]
-+
-+[[package]]
-+name = "async-task"
-+version = "4.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0"
-+
-+[[package]]
-+name = "atk"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "812b4911e210bd51b24596244523c856ca749e6223c50a7fbbba3f89ee37c426"
-+dependencies = [
-+ "atk-sys",
-+ "bitflags",
-+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "atk-sys"
-+version = "0.10.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f530e4af131d94cc4fa15c5c9d0348f0ef28bac64ba660b6b2a1cf2605dedfce"
-+dependencies = [
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+ "system-deps",
-+]
-+
-+[[package]]
-+name = "atomic-waker"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a"
-+
-+[[package]]
-+name = "atty"
-+version = "0.2.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-+dependencies = [
-+ "hermit-abi",
-+ "libc",
-+ "winapi",
-+]
-+
-+[[package]]
+name = "autocfg"
-+version = "1.0.1"
++version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
++checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "base64"
@@ -199,13 +59,10 @@ index 0000000..41d41a5
+checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+
+[[package]]
-+name = "bincode"
-+version = "1.3.3"
++name = "bit_field"
++version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
-+dependencies = [
-+ "serde",
-+]
++checksum = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4"
+
+[[package]]
+name = "bitflags"
@@ -214,57 +71,59 @@ index 0000000..41d41a5
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
-+name = "blocking"
-+version = "1.0.2"
++name = "block"
++version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c5e170dbede1f740736619b776d7251cb1b9095c435c34d8ca9f57fcd2f335e9"
-+dependencies = [
-+ "async-channel",
-+ "async-task",
-+ "atomic-waker",
-+ "fastrand",
-+ "futures-lite",
-+ "once_cell",
-+]
++checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "bumpalo"
-+version = "3.8.0"
++version = "3.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c"
++checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3"
++
++[[package]]
++name = "bytemuck"
++version = "1.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a5377c8865e74a160d21f29c2d40669f53286db6eab59b88540cbb12ffc8b835"
++
++[[package]]
++name = "byteorder"
++version = "1.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+[[package]]
+name = "bytes"
-+version = "1.1.0"
++version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
++checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db"
+
+[[package]]
+name = "cache-padded"
-+version = "1.1.1"
++version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba"
++checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
+
+[[package]]
+name = "cairo-rs"
-+version = "0.9.1"
++version = "0.15.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c5c0f2e047e8ca53d0ff249c54ae047931d7a6ebe05d00af73e0ffeb6e34bdb8"
++checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc"
+dependencies = [
+ "bitflags",
+ "cairo-sys-rs",
+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
+ "libc",
+ "thiserror",
+]
+
+[[package]]
+name = "cairo-sys-rs"
-+version = "0.10.0"
++version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2ed2639b9ad5f1d6efa76de95558e11339e7318426d84ac4890b86c03e828ca7"
++checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8"
+dependencies = [
+ "glib-sys",
+ "libc",
@@ -273,15 +132,24 @@ index 0000000..41d41a5
+
+[[package]]
+name = "castaway"
-+version = "0.1.1"
++version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ed247d1586918e46f2bbe0f13b06498db8dab5a8c1093f156652e9f2e0a73fc3"
++checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
+
+[[package]]
+name = "cc"
-+version = "1.0.71"
++version = "1.0.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd"
++checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
++
++[[package]]
++name = "cfg-expr"
++version = "0.10.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db"
++dependencies = [
++ "smallvec",
++]
+
+[[package]]
+name = "cfg-if"
@@ -290,52 +158,79 @@ index 0000000..41d41a5
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
-+name = "chrono"
-+version = "0.4.19"
++name = "color_quant"
++version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
-+dependencies = [
-+ "libc",
-+ "num-integer",
-+ "num-traits",
-+ "time",
-+ "winapi",
-+]
++checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+
+[[package]]
+name = "concurrent-queue"
-+version = "1.2.2"
++version = "1.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3"
++checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c"
+dependencies = [
+ "cache-padded",
+]
+
+[[package]]
-+name = "crossbeam-utils"
-+version = "0.8.5"
++name = "crc32fast"
++version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
++checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+dependencies = [
+ "cfg-if",
-+ "lazy_static",
+]
+
+[[package]]
-+name = "ctor"
-+version = "0.1.21"
++name = "crossbeam-channel"
++version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa"
++checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
+dependencies = [
-+ "quote",
-+ "syn",
++ "cfg-if",
++ "crossbeam-utils",
++]
++
++[[package]]
++name = "crossbeam-deque"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
++dependencies = [
++ "cfg-if",
++ "crossbeam-epoch",
++ "crossbeam-utils",
++]
++
++[[package]]
++name = "crossbeam-epoch"
++version = "0.9.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1"
++dependencies = [
++ "autocfg",
++ "cfg-if",
++ "crossbeam-utils",
++ "memoffset",
++ "once_cell",
++ "scopeguard",
++]
++
++[[package]]
++name = "crossbeam-utils"
++version = "0.8.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc"
++dependencies = [
++ "cfg-if",
++ "once_cell",
+]
+
+[[package]]
+name = "curl"
-+version = "0.4.40"
++version = "0.4.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "877cc2f9b8367e32b6dabb9d581557e651cb3aa693a37f8679091bbf42687d5d"
++checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22"
+dependencies = [
+ "curl-sys",
+ "libc",
@@ -348,9 +243,9 @@ index 0000000..41d41a5
+
+[[package]]
+name = "curl-sys"
-+version = "0.4.50+curl-7.79.1"
++version = "0.4.56+curl-7.83.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4856b76919dd599f31236bb18db5f5bd36e2ce131e64f857ca5c259665b76171"
++checksum = "6093e169dd4de29e468fa649fbae11cdcd5551c81fe5bf1b0677adad7ef3d26f"
+dependencies = [
+ "cc",
+ "libc",
@@ -363,12 +258,6 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "custom_error"
-+version = "1.9.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4f8a51dd197fa6ba5b4dc98a990a43cc13693c23eb0089ebb0fcc1f04152bca6"
-+
-+[[package]]
+name = "dbus"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -379,65 +268,94 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "dirs"
-+version = "3.0.2"
++name = "deflate"
++version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309"
++checksum = "c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f"
+dependencies = [
-+ "dirs-sys",
-+]
-+
-+[[package]]
-+name = "dirs"
-+version = "4.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
-+dependencies = [
-+ "dirs-sys",
-+]
-+
-+[[package]]
-+name = "dirs-sys"
-+version = "0.3.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780"
-+dependencies = [
-+ "libc",
-+ "redox_users",
-+ "winapi",
++ "adler32",
+]
+
+[[package]]
+name = "either"
-+version = "1.6.1"
++version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
++checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
+
+[[package]]
+name = "encoding_rs"
-+version = "0.8.29"
++version = "0.8.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a74ea89a0a1b98f6332de42c95baff457ada66d1cb4030f9ff151b2041a1c746"
++checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "event-listener"
-+version = "2.5.1"
++version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59"
++checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
++
++[[package]]
++name = "exr"
++version = "1.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "14cc0e06fb5f67e5d6beadf3a382fec9baca1aa751c6d5368fdeee7e5932c215"
++dependencies = [
++ "bit_field",
++ "deflate",
++ "flume",
++ "half",
++ "inflate",
++ "lebe",
++ "smallvec",
++ "threadpool",
++]
+
+[[package]]
+name = "fastrand"
-+version = "1.5.0"
++version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e"
++checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+dependencies = [
+ "instant",
+]
+
+[[package]]
++name = "field-offset"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92"
++dependencies = [
++ "memoffset",
++ "rustc_version",
++]
++
++[[package]]
++name = "flate2"
++version = "1.0.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
++dependencies = [
++ "crc32fast",
++ "miniz_oxide",
++]
++
++[[package]]
++name = "flume"
++version = "0.10.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
++dependencies = [
++ "futures-core",
++ "futures-sink",
++ "nanorand",
++ "pin-project",
++ "spin",
++]
++
++[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -470,46 +388,30 @@ index 0000000..41d41a5
+
+[[package]]
+name = "fragile"
-+version = "1.0.0"
++version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "69a039c3498dc930fe810151a34ba0c1c70b02b8625035592e74432f678591f2"
-+
-+[[package]]
-+name = "futures"
-+version = "0.3.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca"
-+dependencies = [
-+ "futures-channel",
-+ "futures-core",
-+ "futures-executor",
-+ "futures-io",
-+ "futures-sink",
-+ "futures-task",
-+ "futures-util",
-+]
++checksum = "85dcb89d2b10c5f6133de2efd8c11959ce9dbb46a2f7a4cab208c4eeda6ce1ab"
+
+[[package]]
+name = "futures-channel"
-+version = "0.3.17"
++version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888"
++checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
+dependencies = [
+ "futures-core",
-+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
-+version = "0.3.17"
++version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d"
++checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
+
+[[package]]
+name = "futures-executor"
-+version = "0.3.17"
++version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c"
++checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6"
+dependencies = [
+ "futures-core",
+ "futures-task",
@@ -518,9 +420,9 @@ index 0000000..41d41a5
+
+[[package]]
+name = "futures-io"
-+version = "0.3.17"
++version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377"
++checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
+
+[[package]]
+name = "futures-lite"
@@ -538,91 +440,48 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "futures-macro"
-+version = "0.3.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb"
-+dependencies = [
-+ "autocfg",
-+ "proc-macro-hack",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
+name = "futures-sink"
-+version = "0.3.17"
++version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11"
++checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
+
+[[package]]
+name = "futures-task"
-+version = "0.3.17"
++version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99"
++checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
+
+[[package]]
+name = "futures-util"
-+version = "0.3.17"
++version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481"
++checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
+dependencies = [
-+ "autocfg",
-+ "futures-channel",
+ "futures-core",
-+ "futures-io",
-+ "futures-macro",
-+ "futures-sink",
+ "futures-task",
-+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
-+ "proc-macro-hack",
-+ "proc-macro-nested",
+ "slab",
+]
+
+[[package]]
-+name = "gdk"
-+version = "0.13.2"
++name = "gdk-pixbuf"
++version = "0.15.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "db00839b2a68a7a10af3fa28dfb3febaba3a20c3a9ac2425a33b7df1f84a6b7d"
++checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a"
+dependencies = [
+ "bitflags",
-+ "cairo-rs",
-+ "cairo-sys-rs",
-+ "gdk-pixbuf",
-+ "gdk-sys",
-+ "gio",
-+ "gio-sys",
-+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+ "pango",
-+]
-+
-+[[package]]
-+name = "gdk-pixbuf"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8f6dae3cb99dd49b758b88f0132f8d401108e63ae8edd45f432d42cdff99998a"
-+dependencies = [
+ "gdk-pixbuf-sys",
+ "gio",
-+ "gio-sys",
+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
+ "libc",
+]
+
+[[package]]
+name = "gdk-pixbuf-sys"
-+version = "0.10.0"
++version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3bfe468a7f43e97b8d193a762b6c5cf67a7d36cacbc0b9291dbcae24bfea1e8f"
++checksum = "140b2f5378256527150350a8346dbdb08fadc13453a7a2d73aecd5fab3c402a7"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
@@ -632,10 +491,26 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "gdk-sys"
-+version = "0.10.0"
++name = "gdk4"
++version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0a9653cfc500fd268015b1ac055ddbc3df7a5c9ea3f4ccef147b3957bd140d69"
++checksum = "4fabb7cf843c26b085a5d68abb95d0c0bf27a9ae2eeff9c4adb503a1eb580876"
++dependencies = [
++ "bitflags",
++ "cairo-rs",
++ "gdk-pixbuf",
++ "gdk4-sys",
++ "gio",
++ "glib",
++ "libc",
++ "pango",
++]
++
++[[package]]
++name = "gdk4-sys"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "efe7dcb44f5c00aeabff3f69abfc5673de46559070f89bd3fbb7b66485d9cef2"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
@@ -650,31 +525,59 @@ index 0000000..41d41a5
+
+[[package]]
+name = "getrandom"
-+version = "0.2.3"
++version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
++checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+dependencies = [
+ "cfg-if",
++ "js-sys",
+ "libc",
+ "wasi",
++ "wasm-bindgen",
++]
++
++[[package]]
++name = "gettext-rs"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364"
++dependencies = [
++ "gettext-sys",
++ "locale_config",
++]
++
++[[package]]
++name = "gettext-sys"
++version = "0.21.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d"
++dependencies = [
++ "cc",
++ "temp-dir",
++]
++
++[[package]]
++name = "gif"
++version = "0.11.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06"
++dependencies = [
++ "color_quant",
++ "weezl",
+]
+
+[[package]]
+name = "gio"
-+version = "0.9.1"
++version = "0.15.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1fb60242bfff700772dae5d9e3a1f7aa2e4ebccf18b89662a16acb2822568561"
++checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b"
+dependencies = [
+ "bitflags",
-+ "futures",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
-+ "futures-util",
+ "gio-sys",
+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
+ "libc",
+ "once_cell",
+ "thiserror",
@@ -682,9 +585,9 @@ index 0000000..41d41a5
+
+[[package]]
+name = "gio-sys"
-+version = "0.10.1"
++version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5e24fb752f8f5d2cf6bbc2c606fd2bc989c81c5e2fe321ab974d54f8b6344eac"
++checksum = "32157a475271e2c4a023382e9cab31c4584ee30a97da41d3c4e9fdd605abcf8d"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
@@ -695,32 +598,32 @@ index 0000000..41d41a5
+
+[[package]]
+name = "glib"
-+version = "0.10.3"
++version = "0.15.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0c685013b7515e668f1b57a165b009d4d28cb139a8a989bbd699c10dad29d0c5"
++checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d"
+dependencies = [
+ "bitflags",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-task",
-+ "futures-util",
+ "glib-macros",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "once_cell",
++ "smallvec",
++ "thiserror",
+]
+
+[[package]]
+name = "glib-macros"
-+version = "0.10.1"
++version = "0.15.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "41486a26d1366a8032b160b59065a59fb528530a46a49f627e7048fb8c064039"
++checksum = "25a68131a662b04931e71891fb14aaf65ee4b44d08e8abc10f49e77418c86c64"
+dependencies = [
+ "anyhow",
+ "heck",
-+ "itertools",
+ "proc-macro-crate",
+ "proc-macro-error",
+ "proc-macro2",
@@ -730,32 +633,19 @@ index 0000000..41d41a5
+
+[[package]]
+name = "glib-sys"
-+version = "0.10.1"
++version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c7e9b997a66e9a23d073f2b1abb4dbfc3925e0b8952f67efd8d9b6e168e4cdc1"
++checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
-+name = "gloo-timers"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891f"
-+dependencies = [
-+ "futures-channel",
-+ "futures-core",
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
+name = "gobject-sys"
-+version = "0.10.0"
++version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "952133b60c318a62bf82ee75b93acc7e84028a093e06b9e27981c2b6fe68218c"
++checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a"
+dependencies = [
+ "glib-sys",
+ "libc",
@@ -763,10 +653,65 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "gstreamer"
-+version = "0.16.7"
++name = "graphene-rs"
++version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9ff5d0f7ff308ae37e6eb47b6ded17785bdea06e438a708cd09e0288c1862f33"
++checksum = "7c54f9fbbeefdb62c99f892dfca35f83991e2cb5b46a8dc2a715e58612f85570"
++dependencies = [
++ "glib",
++ "graphene-sys",
++ "libc",
++]
++
++[[package]]
++name = "graphene-sys"
++version = "0.15.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fa691fc7337ba1df599afb55c3bcb85c04f1b3f17362570e9bb0ff0d1bc3028a"
++dependencies = [
++ "glib-sys",
++ "libc",
++ "pkg-config",
++ "system-deps",
++]
++
++[[package]]
++name = "gsk4"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05e9020d333280b3aa38d496495bfa9b50712eebf1ad63f0ec5bcddb5eb61be4"
++dependencies = [
++ "bitflags",
++ "cairo-rs",
++ "gdk4",
++ "glib",
++ "graphene-rs",
++ "gsk4-sys",
++ "libc",
++ "pango",
++]
++
++[[package]]
++name = "gsk4-sys"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7add39ccf60078508c838643a2dcc91f045c46ed63b5ea6ab701b2e25bda3fea"
++dependencies = [
++ "cairo-sys-rs",
++ "gdk4-sys",
++ "glib-sys",
++ "gobject-sys",
++ "graphene-sys",
++ "libc",
++ "pango-sys",
++ "system-deps",
++]
++
++[[package]]
++name = "gstreamer"
++version = "0.18.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d66363bacf5e4f6eb281564adc2902e44c52ae5c45082423e7439e9012b75456"
+dependencies = [
+ "bitflags",
+ "cfg-if",
@@ -774,13 +719,13 @@ index 0000000..41d41a5
+ "futures-core",
+ "futures-util",
+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
+ "gstreamer-sys",
+ "libc",
+ "muldiv",
-+ "num-rational 0.3.2",
++ "num-integer",
++ "num-rational",
+ "once_cell",
++ "option-operations",
+ "paste",
+ "pretty-hex",
+ "thiserror",
@@ -788,25 +733,23 @@ index 0000000..41d41a5
+
+[[package]]
+name = "gstreamer-base"
-+version = "0.16.5"
++version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bafd01c56f59cb10f4b5a10f97bb4bdf8c2b2784ae5b04da7e2d400cf6e6afcf"
++checksum = "224f35f36582407caf58ded74854526beeecc23d0cf64b8d1c3e00584ed6863f"
+dependencies = [
+ "bitflags",
++ "cfg-if",
+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
+ "gstreamer",
+ "gstreamer-base-sys",
-+ "gstreamer-sys",
+ "libc",
+]
+
+[[package]]
+name = "gstreamer-base-sys"
-+version = "0.9.1"
++version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a4b7b6dc2d6e160a1ae28612f602bd500b3fa474ce90bf6bb2f08072682beef5"
++checksum = "a083493c3c340e71fa7c66eebda016e9fafc03eb1b4804cf9b2bad61994b078e"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
@@ -817,26 +760,24 @@ index 0000000..41d41a5
+
+[[package]]
+name = "gstreamer-player"
-+version = "0.16.5"
++version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "34edf65e48e0d29c18101d77a2e004488a61f81a852a75e19d9c73e03d35cb77"
++checksum = "5f14ee02352ba73cadebe640bfb33f12fe8d03cbcad816a102d55a0251fb99bb"
+dependencies = [
+ "bitflags",
+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
+ "gstreamer",
+ "gstreamer-player-sys",
-+ "gstreamer-sys",
+ "gstreamer-video",
+ "libc",
++ "once_cell",
+]
+
+[[package]]
+name = "gstreamer-player-sys"
-+version = "0.9.1"
++version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "53aaf79503e691a32266670bc631edb6c52bdb854984da76a0ce2756f49584a2"
++checksum = "1f9b674b39a4d0e18710f6e3d2b109f1793d8028ee4e39da3909b55b4529d399"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
@@ -848,9 +789,9 @@ index 0000000..41d41a5
+
+[[package]]
+name = "gstreamer-sys"
-+version = "0.9.1"
++version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fc1f154082d01af5718c5f8a8eb4f565a4ea5586ad8833a8fc2c2aa6844b601d"
++checksum = "e3517a65d3c2e6f8905b456eba5d53bda158d664863aef960b44f651cb7d33e2"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
@@ -860,20 +801,16 @@ index 0000000..41d41a5
+
+[[package]]
+name = "gstreamer-video"
-+version = "0.16.7"
++version = "0.18.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f7bbb1485d87469849ec45c08e03c2f280d3ea20ff3c439d03185be54e3ce98e"
++checksum = "9418adfc72dafa1ad9eb106527ce4804887d101027c4528ec28c7d29cc899519"
+dependencies = [
+ "bitflags",
++ "cfg-if",
+ "futures-channel",
-+ "futures-util",
+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
+ "gstreamer",
+ "gstreamer-base",
-+ "gstreamer-base-sys",
-+ "gstreamer-sys",
+ "gstreamer-video-sys",
+ "libc",
+ "once_cell",
@@ -881,9 +818,9 @@ index 0000000..41d41a5
+
+[[package]]
+name = "gstreamer-video-sys"
-+version = "0.9.1"
++version = "0.18.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "92347e46438007d6a2386302125f62cb9df6769cdacb931af5c0f12c1ee21de4"
++checksum = "33331b1675e73b5b000c796354278eca7fdde9327015971d9f41afe28b96e0dc"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
@@ -894,59 +831,73 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "gtk"
-+version = "0.9.2"
++name = "gtk4"
++version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2f022f2054072b3af07666341984562c8e626a79daa8be27b955d12d06a5ad6a"
++checksum = "c64f0c2a3d80e899dc3febddad5bac193ffcf74a0fd7e31037f30dd34d6f7396"
+dependencies = [
-+ "atk",
+ "bitflags",
+ "cairo-rs",
-+ "cairo-sys-rs",
-+ "cc",
-+ "gdk",
++ "field-offset",
++ "futures-channel",
+ "gdk-pixbuf",
-+ "gdk-pixbuf-sys",
-+ "gdk-sys",
++ "gdk4",
+ "gio",
-+ "gio-sys",
+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "gtk-sys",
++ "graphene-rs",
++ "gsk4",
++ "gtk4-macros",
++ "gtk4-sys",
+ "libc",
+ "once_cell",
+ "pango",
-+ "pango-sys",
-+ "pkg-config",
+]
+
+[[package]]
-+name = "gtk-sys"
-+version = "0.10.0"
++name = "gtk4-macros"
++version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "89acda6f084863307d948ba64a4b1ef674e8527dddab147ee4cdcc194c880457"
++checksum = "fafbcc920af4eb677d7d164853e7040b9de5a22379c596f570190c675d45f7a7"
++dependencies = [
++ "anyhow",
++ "proc-macro-crate",
++ "proc-macro-error",
++ "proc-macro2",
++ "quick-xml",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "gtk4-sys"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5bc8006eea634b7c72da3ff79e24606e45f21b3b832a3c5a1f543f5f97eb0f63"
+dependencies = [
-+ "atk-sys",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
-+ "gdk-sys",
++ "gdk4-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
++ "graphene-sys",
++ "gsk4-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
-+name = "heck"
-+version = "0.3.3"
++name = "half"
++version = "1.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
-+dependencies = [
-+ "unicode-segmentation",
-+]
++checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
++
++[[package]]
++name = "heck"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
+
+[[package]]
+name = "hermit-abi"
@@ -964,10 +915,19 @@ index 0000000..41d41a5
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
-+name = "http"
-+version = "0.2.5"
++name = "html-escape"
++version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b"
++checksum = "b8e7479fa1ef38eb49fb6a42c426be515df2d063f06cb8efd3e50af073dbc26c"
++dependencies = [
++ "utf8-width",
++]
++
++[[package]]
++name = "http"
++version = "0.2.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
+dependencies = [
+ "bytes",
+ "fnv",
@@ -975,6 +935,12 @@ index 0000000..41d41a5
+]
+
+[[package]]
++name = "httpdate"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
++
++[[package]]
+name = "idna"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -986,6 +952,34 @@ index 0000000..41d41a5
+]
+
+[[package]]
++name = "image"
++version = "0.24.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e30ca2ecf7666107ff827a8e481de6a132a9b687ed3bb20bb1c144a36c00964"
++dependencies = [
++ "bytemuck",
++ "byteorder",
++ "color_quant",
++ "exr",
++ "gif",
++ "jpeg-decoder",
++ "num-rational",
++ "num-traits",
++ "png",
++ "scoped_threadpool",
++ "tiff",
++]
++
++[[package]]
++name = "inflate"
++version = "0.4.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff"
++dependencies = [
++ "adler32",
++]
++
++[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -996,13 +990,12 @@ index 0000000..41d41a5
+
+[[package]]
+name = "isahc"
-+version = "1.5.1"
++version = "1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "40ef5402b1791c9fc479ef9871601a2f10e4cc0f14414a5c9c6e043fb51e5a56"
++checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9"
+dependencies = [
+ "async-channel",
+ "castaway",
-+ "chrono",
+ "crossbeam-utils",
+ "curl",
+ "curl-sys",
@@ -1010,6 +1003,7 @@ index 0000000..41d41a5
+ "event-listener",
+ "futures-lite",
+ "http",
++ "httpdate",
+ "log",
+ "mime",
+ "once_cell",
@@ -1023,49 +1017,78 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "itertools"
-+version = "0.9.0"
++name = "itoa"
++version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
-+dependencies = [
-+ "either",
-+]
++checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754"
+
+[[package]]
-+name = "itoa"
-+version = "0.4.8"
++name = "jpeg-decoder"
++version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
++checksum = "9478aa10f73e7528198d75109c8be5cd7d15fb530238040148d5f9a22d4c5b3b"
++dependencies = [
++ "rayon",
++]
+
+[[package]]
+name = "js-sys"
-+version = "0.3.55"
++version = "0.3.59"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84"
++checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
-+name = "kv-log-macro"
-+version = "1.0.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
-+dependencies = [
-+ "log",
-+]
-+
-+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
-+name = "libc"
-+version = "0.2.107"
++name = "lebe"
++version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219"
++checksum = "7efd1d698db0759e6ef11a7cd44407407399a910c774dd804c64c032da7826ff"
++
++[[package]]
++name = "libadwaita"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f2ae453d28e3b91f03749f02b1531e8cfe315a1d0762b77a61797d2ab80bb87d"
++dependencies = [
++ "gdk-pixbuf",
++ "gdk4",
++ "gio",
++ "glib",
++ "gtk4",
++ "libadwaita-sys",
++ "libc",
++ "once_cell",
++ "pango",
++]
++
++[[package]]
++name = "libadwaita-sys"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f18b6ac4cadd252a89f5cba0a5a4e99836131795d6fad37b859ac79e8cb7d2c8"
++dependencies = [
++ "gdk4-sys",
++ "gio-sys",
++ "glib-sys",
++ "gobject-sys",
++ "gtk4-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "libc"
++version = "0.2.127"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "505e71a4706fa491e9b1b55f51b95d4037d0821ee40131190475f692b35b009b"
+
+[[package]]
+name = "libdbus-sys"
@@ -1088,9 +1111,9 @@ index 0000000..41d41a5
+
+[[package]]
+name = "libz-sys"
-+version = "1.1.3"
++version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66"
++checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
+dependencies = [
+ "cc",
+ "libc",
@@ -1099,24 +1122,44 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "log"
-+version = "0.4.14"
++name = "locale_config"
++version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
++checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
+dependencies = [
-+ "cfg-if",
-+ "value-bag",
++ "lazy_static",
++ "objc",
++ "objc-foundation",
++ "regex",
++ "winapi",
+]
+
+[[package]]
-+name = "loggerv"
-+version = "0.7.2"
++name = "lock_api"
++version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "60d8de15ae71e760bce7f05447f85f73624fe0d3b1e4c5a63ba5d4cb0748d374"
++checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
+dependencies = [
-+ "ansi_term",
-+ "atty",
-+ "log",
++ "autocfg",
++ "scopeguard",
++]
++
++[[package]]
++name = "log"
++version = "0.4.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "malloc_buf"
++version = "0.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
++dependencies = [
++ "libc",
+]
+
+[[package]]
@@ -1127,9 +1170,18 @@ index 0000000..41d41a5
+
+[[package]]
+name = "memchr"
-+version = "2.4.1"
++version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
++checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
++
++[[package]]
++name = "memoffset"
++version = "0.6.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
++dependencies = [
++ "autocfg",
++]
+
+[[package]]
+name = "mime"
@@ -1138,26 +1190,19 @@ index 0000000..41d41a5
+checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+
+[[package]]
-+name = "mp4ameta"
-+version = "0.9.1"
++name = "miniz_oxide"
++version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "619f6fe86b8690efad1c53d2cc8b9c1af2a5f8b93247e0ba05ece1b7639b4e66"
++checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc"
+dependencies = [
-+ "lazy_static",
-+ "mp4ameta_proc",
++ "adler",
+]
+
+[[package]]
-+name = "mp4ameta_proc"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4975ce203cd69e96a89f803d87b7b53d1950a6e93668a666d177c28aebd15c8a"
-+
-+[[package]]
+name = "mpris-player"
-+version = "0.6.1"
++version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4f6badd6ebe31be46eb2e2975cf3b34b183bace5f8a8db1d609fefc4d46fbb07"
++checksum = "be832ec9171fdaf43609d02bb552f4129ba6eacd184bb25186e2906dbd3cf098"
+dependencies = [
+ "dbus",
+ "glib",
@@ -1165,108 +1210,71 @@ index 0000000..41d41a5
+
+[[package]]
+name = "muldiv"
-+version = "0.2.1"
++version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0419348c027fa7be448d2ae7ea0e4e04c2334c31dc4e74ab29f00a2a7ca69204"
++checksum = "b5136edda114182728ccdedb9f5eda882781f35fa6e80cc360af12a8932507f3"
+
+[[package]]
-+name = "netease-cloud-music-gtk"
-+version = "1.2.2"
++name = "nanorand"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
+dependencies = [
-+ "async-std",
++ "getrandom",
++]
++
++[[package]]
++name = "netease-cloud-music-api"
++version = "1.0.0"
++source = "git+https://github.com/gmg137/netease-cloud-music-api.git#56c64c6d96ee36c716ac02f145a635456746ad54"
++dependencies = [
++ "anyhow",
+ "base64",
-+ "bincode",
-+ "cairo-rs",
-+ "chrono",
-+ "custom_error",
-+ "dirs 4.0.0",
-+ "fragile",
-+ "futures",
-+ "gdk",
-+ "gdk-pixbuf",
-+ "gio",
-+ "glib",
-+ "gstreamer",
-+ "gstreamer-player",
-+ "gtk",
+ "hex",
+ "isahc",
+ "lazy_static",
-+ "log",
-+ "loggerv",
-+ "mp4ameta",
-+ "mpris-player",
-+ "num",
+ "openssl",
-+ "pango",
+ "rand",
+ "regex",
+ "serde",
+ "serde_json",
+ "urlqstring",
-+ "xdg",
+]
+
+[[package]]
-+name = "num"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
++name = "netease-cloud-music-gtk4"
++version = "2.0.1"
+dependencies = [
-+ "num-bigint",
-+ "num-complex",
-+ "num-integer",
-+ "num-iter",
-+ "num-rational 0.4.0",
-+ "num-traits",
-+]
-+
-+[[package]]
-+name = "num-bigint"
-+version = "0.4.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
-+dependencies = [
-+ "autocfg",
-+ "num-integer",
-+ "num-traits",
-+]
-+
-+[[package]]
-+name = "num-complex"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085"
-+dependencies = [
-+ "num-traits",
++ "anyhow",
++ "fastrand",
++ "fragile",
++ "gettext-rs",
++ "gstreamer",
++ "gstreamer-player",
++ "gtk4",
++ "libadwaita",
++ "mpris-player",
++ "netease-cloud-music-api",
++ "once_cell",
++ "qrcode-generator",
++ "regex",
+]
+
+[[package]]
+name = "num-integer"
-+version = "0.1.44"
++version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
++checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
-+name = "num-iter"
-+version = "0.1.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
-+dependencies = [
-+ "autocfg",
-+ "num-integer",
-+ "num-traits",
-+]
-+
-+[[package]]
+name = "num-rational"
-+version = "0.3.2"
++version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
++checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+dependencies = [
+ "autocfg",
+ "num-integer",
@@ -1274,67 +1282,96 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "num-rational"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a"
-+dependencies = [
-+ "autocfg",
-+ "num-bigint",
-+ "num-integer",
-+ "num-traits",
-+]
-+
-+[[package]]
+name = "num-traits"
-+version = "0.2.14"
++version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
++checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
-+version = "1.13.0"
++version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
++checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
-+name = "once_cell"
-+version = "1.8.0"
++name = "objc"
++version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
++checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
++dependencies = [
++ "malloc_buf",
++]
++
++[[package]]
++name = "objc-foundation"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
++dependencies = [
++ "block",
++ "objc",
++ "objc_id",
++]
++
++[[package]]
++name = "objc_id"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
++dependencies = [
++ "objc",
++]
++
++[[package]]
++name = "once_cell"
++version = "1.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+
+[[package]]
+name = "openssl"
-+version = "0.10.38"
++version = "0.10.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95"
++checksum = "618febf65336490dfcf20b73f885f5651a0c89c64c2d4a8c3662585a70bf5bd0"
+dependencies = [
+ "bitflags",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
++ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
-+name = "openssl-probe"
-+version = "0.1.4"
++name = "openssl-macros"
++version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
++checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "openssl-probe"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
-+version = "0.9.70"
++version = "0.9.75"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c6517987b3f8226b5da3661dad65ff7f300cc59fb5ea8333ca191fc65fde3edf"
++checksum = "e5f9bd0c2710541a3cda73d6f9ac4f1b240de4ae261065d309dbe73d9dceb42f"
+dependencies = [
+ "autocfg",
+ "cc",
@@ -1344,15 +1381,22 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "pango"
-+version = "0.9.1"
++name = "option-operations"
++version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9937068580bebd8ced19975938573803273ccbcbd598c58d4906efd4ac87c438"
++checksum = "42b01597916c91a493b1e8a2fde64fec1764be3259abc1f06efc99c274f150a2"
++dependencies = [
++ "paste",
++]
++
++[[package]]
++name = "pango"
++version = "0.15.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f"
+dependencies = [
+ "bitflags",
+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
+ "libc",
+ "once_cell",
+ "pango-sys",
@@ -1360,9 +1404,9 @@ index 0000000..41d41a5
+
+[[package]]
+name = "pango-sys"
-+version = "0.10.0"
++version = "0.15.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "24d2650c8b62d116c020abd0cea26a4ed96526afda89b1c4ea567131fdefc890"
++checksum = "d2a00081cde4661982ed91d80ef437c20eacaf6aa1a5962c0279ae194662c3aa"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
@@ -1378,9 +1422,9 @@ index 0000000..41d41a5
+
+[[package]]
+name = "paste"
-+version = "1.0.6"
++version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5"
++checksum = "9423e2b32f7a043629287a536f21951e8c6a82482d0acb1eeebfc90bc2225b22"
+
+[[package]]
+name = "percent-encoding"
@@ -1389,19 +1433,29 @@ index 0000000..41d41a5
+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+
+[[package]]
-+name = "pin-project"
-+version = "1.0.8"
++name = "pest"
++version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08"
++checksum = "69486e2b8c2d2aeb9762db7b4e00b0331156393555cff467f4163ff06821eef8"
++dependencies = [
++ "thiserror",
++ "ucd-trie",
++]
++
++[[package]]
++name = "pin-project"
++version = "1.0.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
-+version = "1.0.8"
++version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389"
++checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74"
+dependencies = [
+ "proc-macro2",
+ "quote",
@@ -1410,9 +1464,9 @@ index 0000000..41d41a5
+
+[[package]]
+name = "pin-project-lite"
-+version = "0.2.7"
++version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
++checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+[[package]]
+name = "pin-utils"
@@ -1422,15 +1476,27 @@ index 0000000..41d41a5
+
+[[package]]
+name = "pkg-config"
-+version = "0.3.22"
++version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f"
++checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
++
++[[package]]
++name = "png"
++version = "0.17.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc38c0ad57efb786dd57b9864e5b18bae478c00c824dc55a38bbc9da95dde3ba"
++dependencies = [
++ "bitflags",
++ "crc32fast",
++ "deflate",
++ "miniz_oxide",
++]
+
+[[package]]
+name = "polling"
-+version = "2.1.0"
++version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "92341d779fa34ea8437ef4d82d440d5e1ce3f3ff7f824aa64424cd481f9a1f25"
++checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259"
+dependencies = [
+ "cfg-if",
+ "libc",
@@ -1441,22 +1507,24 @@ index 0000000..41d41a5
+
+[[package]]
+name = "ppv-lite86"
-+version = "0.2.15"
++version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba"
++checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
+
+[[package]]
+name = "pretty-hex"
-+version = "0.2.1"
++version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bc5c99d529f0d30937f6f4b8a86d988047327bb88d04d2c4afc356de74722131"
++checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5"
+
+[[package]]
+name = "proc-macro-crate"
-+version = "0.1.5"
++version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
++checksum = "26d50bfb8c23f23915855a00d98b5a35ef2e0b871bb52937bacadb798fbb66c8"
+dependencies = [
++ "once_cell",
++ "thiserror",
+ "toml",
+]
+
@@ -1485,45 +1553,58 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "proc-macro-hack"
-+version = "0.5.19"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
-+
-+[[package]]
-+name = "proc-macro-nested"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
-+
-+[[package]]
+name = "proc-macro2"
-+version = "1.0.32"
++version = "1.0.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43"
++checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab"
+dependencies = [
-+ "unicode-xid",
++ "unicode-ident",
++]
++
++[[package]]
++name = "qrcode-generator"
++version = "4.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "501c33c9127afb867693646b38817bf63a9a756d4b66aefbc5c0d7e5e8c3125a"
++dependencies = [
++ "html-escape",
++ "image",
++ "qrcodegen",
++]
++
++[[package]]
++name = "qrcodegen"
++version = "1.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4339fc7a1021c9c1621d87f5e3505f2805c8c105420ba2f2a4df86814590c142"
++
++[[package]]
++name = "quick-xml"
++version = "0.22.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8533f14c8382aaad0d592c812ac3b826162128b65662331e1127b45c3d18536b"
++dependencies = [
++ "memchr",
+]
+
+[[package]]
+name = "quote"
-+version = "1.0.10"
++version = "1.0.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
++checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
-+version = "0.8.4"
++version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
++checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
-+ "rand_hc",
+]
+
+[[package]]
@@ -1546,38 +1627,34 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "rand_hc"
-+version = "0.3.1"
++name = "rayon"
++version = "1.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
++checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
+dependencies = [
-+ "rand_core",
++ "autocfg",
++ "crossbeam-deque",
++ "either",
++ "rayon-core",
+]
+
+[[package]]
-+name = "redox_syscall"
-+version = "0.2.10"
++name = "rayon-core"
++version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
++checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
+dependencies = [
-+ "bitflags",
-+]
-+
-+[[package]]
-+name = "redox_users"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
-+dependencies = [
-+ "getrandom",
-+ "redox_syscall",
++ "crossbeam-channel",
++ "crossbeam-deque",
++ "crossbeam-utils",
++ "num_cpus",
+]
+
+[[package]]
+name = "regex"
-+version = "1.5.4"
++version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
++checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+dependencies = [
+ "aho-corasick",
+ "memchr",
@@ -1586,40 +1663,79 @@ index 0000000..41d41a5
+
+[[package]]
+name = "regex-syntax"
-+version = "0.6.25"
++version = "0.6.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
++checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
++
++[[package]]
++name = "rustc_version"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
++dependencies = [
++ "semver",
++]
+
+[[package]]
+name = "ryu"
-+version = "1.0.5"
++version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
++checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
+
+[[package]]
+name = "schannel"
-+version = "0.1.19"
++version = "0.1.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
++checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2"
+dependencies = [
+ "lazy_static",
-+ "winapi",
++ "windows-sys",
++]
++
++[[package]]
++name = "scoped_threadpool"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
++
++[[package]]
++name = "scopeguard"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
++
++[[package]]
++name = "semver"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
++dependencies = [
++ "semver-parser",
++]
++
++[[package]]
++name = "semver-parser"
++version = "0.10.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
++dependencies = [
++ "pest",
+]
+
+[[package]]
+name = "serde"
-+version = "1.0.130"
++version = "1.0.142"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
++checksum = "e590c437916fb6b221e1d00df6e3294f3fccd70ca7e92541c475d6ed6ef5fee2"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
-+version = "1.0.130"
++version = "1.0.142"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b"
++checksum = "34b5b8d809babe02f538c2cfec6f2c1ed10804c0e5a6a041a049a4f5588ccc2e"
+dependencies = [
+ "proc-macro2",
+ "quote",
@@ -1628,9 +1744,9 @@ index 0000000..41d41a5
+
+[[package]]
+name = "serde_json"
-+version = "1.0.69"
++version = "1.0.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e466864e431129c7e0d3476b92f20458e5879919a0596c6472738d9fa2d342f8"
++checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7"
+dependencies = [
+ "itoa",
+ "ryu",
@@ -1639,9 +1755,12 @@ index 0000000..41d41a5
+
+[[package]]
+name = "slab"
-+version = "0.4.5"
++version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5"
++checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
++dependencies = [
++ "autocfg",
++]
+
+[[package]]
+name = "sluice"
@@ -1655,73 +1774,74 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "socket2"
-+version = "0.4.2"
++name = "smallvec"
++version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516"
++checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
++
++[[package]]
++name = "socket2"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
-+name = "strum"
-+version = "0.18.0"
++name = "spin"
++version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b"
-+
-+[[package]]
-+name = "strum_macros"
-+version = "0.18.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c"
++checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
+dependencies = [
-+ "heck",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
++ "lock_api",
+]
+
+[[package]]
+name = "syn"
-+version = "1.0.81"
++version = "1.0.99"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966"
++checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13"
+dependencies = [
+ "proc-macro2",
+ "quote",
-+ "unicode-xid",
++ "unicode-ident",
+]
+
+[[package]]
+name = "system-deps"
-+version = "1.3.2"
++version = "6.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
++checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709"
+dependencies = [
++ "cfg-expr",
+ "heck",
+ "pkg-config",
-+ "strum",
-+ "strum_macros",
-+ "thiserror",
+ "toml",
+ "version-compare",
+]
+
+[[package]]
-+name = "thiserror"
-+version = "1.0.30"
++name = "temp-dir"
++version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
++checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
++
++[[package]]
++name = "thiserror"
++version = "1.0.32"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
-+version = "1.0.30"
++version = "1.0.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
++checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21"
+dependencies = [
+ "proc-macro2",
+ "quote",
@@ -1729,20 +1849,30 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "time"
-+version = "0.1.43"
++name = "threadpool"
++version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
++checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+dependencies = [
-+ "libc",
-+ "winapi",
++ "num_cpus",
++]
++
++[[package]]
++name = "tiff"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7259662e32d1e219321eb309d5f9d898b779769d81b76e762c07c8e5d38fcb65"
++dependencies = [
++ "flate2",
++ "jpeg-decoder",
++ "weezl",
+]
+
+[[package]]
+name = "tinyvec"
-+version = "1.5.1"
++version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2"
++checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
@@ -1755,18 +1885,18 @@ index 0000000..41d41a5
+
+[[package]]
+name = "toml"
-+version = "0.5.8"
++version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
++checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "tracing"
-+version = "0.1.29"
++version = "0.1.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105"
++checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307"
+dependencies = [
+ "cfg-if",
+ "log",
@@ -1777,9 +1907,9 @@ index 0000000..41d41a5
+
+[[package]]
+name = "tracing-attributes"
-+version = "0.1.18"
++version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e"
++checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2"
+dependencies = [
+ "proc-macro2",
+ "quote",
@@ -1788,11 +1918,11 @@ index 0000000..41d41a5
+
+[[package]]
+name = "tracing-core"
-+version = "0.1.21"
++version = "0.1.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4"
++checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7"
+dependencies = [
-+ "lazy_static",
++ "once_cell",
+]
+
+[[package]]
@@ -1806,33 +1936,33 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "unicode-bidi"
-+version = "0.3.7"
++name = "ucd-trie"
++version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
++checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c"
++
++[[package]]
++name = "unicode-bidi"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
++
++[[package]]
++name = "unicode-ident"
++version = "1.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf"
+
+[[package]]
+name = "unicode-normalization"
-+version = "0.1.19"
++version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
++checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
-+name = "unicode-segmentation"
-+version = "1.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-+
-+[[package]]
+name = "url"
+version = "2.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1851,14 +1981,10 @@ index 0000000..41d41a5
+checksum = "25ef3473a06a065718d8ec7cd7acc6a35fc20f836dee7661ad3b64ea3cc2e0cc"
+
+[[package]]
-+name = "value-bag"
-+version = "1.0.0-alpha.8"
++name = "utf8-width"
++version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "79923f7731dc61ebfba3633098bf3ac533bbd35ccd8c57e7088d9a5eebe0263f"
-+dependencies = [
-+ "ctor",
-+ "version_check",
-+]
++checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1"
+
+[[package]]
+name = "vcpkg"
@@ -1868,15 +1994,15 @@ index 0000000..41d41a5
+
+[[package]]
+name = "version-compare"
-+version = "0.0.10"
++version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"
++checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73"
+
+[[package]]
+name = "version_check"
-+version = "0.9.3"
++version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
++checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "waker-fn"
@@ -1886,15 +2012,15 @@ index 0000000..41d41a5
+
+[[package]]
+name = "wasi"
-+version = "0.10.2+wasi-snapshot-preview1"
++version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
++checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
-+version = "0.2.78"
++version = "0.2.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce"
++checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
@@ -1902,13 +2028,13 @@ index 0000000..41d41a5
+
+[[package]]
+name = "wasm-bindgen-backend"
-+version = "0.2.78"
++version = "0.2.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b"
++checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f"
+dependencies = [
+ "bumpalo",
-+ "lazy_static",
+ "log",
++ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn",
@@ -1916,22 +2042,10 @@ index 0000000..41d41a5
+]
+
+[[package]]
-+name = "wasm-bindgen-futures"
-+version = "0.4.28"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39"
-+dependencies = [
-+ "cfg-if",
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
+name = "wasm-bindgen-macro"
-+version = "0.2.78"
++version = "0.2.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9"
++checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
@@ -1939,9 +2053,9 @@ index 0000000..41d41a5
+
+[[package]]
+name = "wasm-bindgen-macro-support"
-+version = "0.2.78"
++version = "0.2.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab"
++checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da"
+dependencies = [
+ "proc-macro2",
+ "quote",
@@ -1952,19 +2066,15 @@ index 0000000..41d41a5
+
+[[package]]
+name = "wasm-bindgen-shared"
-+version = "0.2.78"
++version = "0.2.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc"
++checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a"
+
+[[package]]
-+name = "web-sys"
-+version = "0.3.55"
++name = "weezl"
++version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+]
++checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+
+[[package]]
+name = "wepoll-ffi"
@@ -1998,10 +2108,44 @@ index 0000000..41d41a5
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
-+name = "xdg"
-+version = "2.4.0"
++name = "windows-sys"
++version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3a23fe958c70412687039c86f578938b4a0bb50ec788e96bce4d6ab00ddd5803"
++checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+dependencies = [
-+ "dirs 3.0.2",
++ "windows_aarch64_msvc",
++ "windows_i686_gnu",
++ "windows_i686_msvc",
++ "windows_x86_64_gnu",
++ "windows_x86_64_msvc",
+]
++
++[[package]]
++name = "windows_aarch64_msvc"
++version = "0.36.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
++
++[[package]]
++name = "windows_i686_gnu"
++version = "0.36.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
++
++[[package]]
++name = "windows_i686_msvc"
++version = "0.36.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
++
++[[package]]
++name = "windows_x86_64_gnu"
++version = "0.36.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
++
++[[package]]
++name = "windows_x86_64_msvc"
++version = "0.36.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
diff --git a/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/default.nix b/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/default.nix
index 72027fe922..b854ebb8ce 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/default.nix
@@ -1,60 +1,78 @@
{ lib
, stdenv
-, glib
-, gtk3
-, curl
-, dbus
-, openssl
-, gst_all_1
-, pkg-config
-, rustPlatform
-, wrapGAppsHook
-, fetchurl
, fetchFromGitHub
+, rustPlatform
+, meson
+, ninja
+, pkg-config
+, glib
+, gtk4
+, appstream-glib
+, desktop-file-utils
+, libxml2
+, wrapGAppsHook4
+, openssl
+, dbus
+, libadwaita
+, gst_all_1
+, Foundation
+, SystemConfiguration
}:
-rustPlatform.buildRustPackage rec {
+
+stdenv.mkDerivation rec {
pname = "netease-cloud-music-gtk";
- version = "1.2.2";
+ version = "2.0.1";
+
src = fetchFromGitHub {
owner = "gmg137";
- repo = "netease-cloud-music-gtk";
+ repo = pname;
rev = version;
- sha256 = "sha256-42MaylfG5LY+TiYHWQMoh9CiVLShKXSBpMrxdWhujow=";
+ hash = "sha256-dlJZvmfw9+cavAysxVzCekgPdygg5zbU3ZR5BOjPk08=";
+ };
+
+ patches = [ ./cargo-lock.patch ];
+
+ cargoDeps = rustPlatform.fetchCargoTarball {
+ inherit src patches;
+ hash = "sha256-mJyjWEBsLhHwJCeZyRdby/K/jse0F9UBwfQxkNtZito=";
};
- cargoSha256 = "sha256-A9wIcESdaJwLY4g/QlOxMU5PBB9wjvIzaXBSqeiRJBM=";
- cargoPatches = [ ./cargo-lock.patch ];
nativeBuildInputs = [
- glib
- gtk3
- dbus
+ meson
+ ninja
pkg-config
- wrapGAppsHook
- ];
+ glib # glib-compile-resources
+ gtk4 # gtk4-update-icon-cache
+ appstream-glib # appstream-util
+ desktop-file-utils # update-desktop-database
+ libxml2 # xmllint
+ wrapGAppsHook4
+ ] ++ (with rustPlatform; [
+ cargoSetupHook
+ rust.cargo
+ rust.rustc
+ ]);
buildInputs = [
- glib
- gtk3
- curl
- dbus
openssl
+ dbus
+ libadwaita
] ++ (with gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-bad
gst-plugins-ugly
- ]);
-
- postPatch = ''
- install -D netease-cloud-music-gtk.desktop $out/share/applications/netease-cloud-music-gtk.desktop
- install -D icons/netease-cloud-music-gtk.svg $out/share/icons/hicolor/scalable/apps/netease-cloud-music-gtk.svg
- '';
+ ]) ++ lib.optionals stdenv.isDarwin [
+ Foundation
+ SystemConfiguration
+ ];
meta = with lib; {
- description = "netease-cloud-music-gtk is a Rust + GTK based netease cloud music player";
+ description = "A Rust + GTK based netease cloud music player";
homepage = "https://github.com/gmg137/netease-cloud-music-gtk";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ diffumist ];
+ mainProgram = "netease-cloud-music-gtk4";
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/update-cargo-lock.sh b/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/update-cargo-lock.sh
index 75b04d1e77..ef5b1dcbbc 100755
--- a/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/update-cargo-lock.sh
+++ b/third_party/nixpkgs/pkgs/applications/audio/netease-cloud-music-gtk/update-cargo-lock.sh
@@ -6,7 +6,7 @@
set -eu -vx
here=$PWD
-version=$(cat default.nix | rg '^ version = "' | cut -d '"' -f 2)
+version=$(rg '^ version = "' default.nix | cut -d '"' -f 2)
checkout=$(mktemp -d)
git clone -b "$version" --depth=1 https://github.com/gmg137/netease-cloud-music-gtk "$checkout"
diff --git a/third_party/nixpkgs/pkgs/applications/audio/osdlyrics/default.nix b/third_party/nixpkgs/pkgs/applications/audio/osdlyrics/default.nix
index 0c14b8be2b..6a057f1a03 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/osdlyrics/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/osdlyrics/default.nix
@@ -17,13 +17,13 @@
stdenv.mkDerivation rec {
pname = "osdlyrics";
- version = "0.5.10";
+ version = "0.5.11";
src = fetchFromGitHub {
owner = "osdlyrics";
repo = "osdlyrics";
rev = version;
- sha256 = "sha256-x9gIT1JkfPIc4RmmQJLv9rOG2WqAftoTK5uiRlS65zU=";
+ sha256 = "sha256-VxLNaNe4hFwgSW4JEF1T4BWC2NwiOgfwVGiAIOszfGE=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix b/third_party/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
index c51d50fdc4..ebf4429b24 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
@@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "pt2-clone";
- version = "1.50";
+ version = "1.51";
src = fetchFromGitHub {
owner = "8bitbubsy";
repo = "pt2-clone";
rev = "v${version}";
- sha256 = "sha256-IZakhYVtVXmcKwUMl/v1w6Huu5XWQfaBCatTN4hQAbM=";
+ sha256 = "sha256-kTYtn68gPwEHZjJl/Vmr5lTtxyEB6r3EGQlVSlBpCZg=";
};
nativeBuildInputs = [ cmake ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/schismtracker/default.nix b/third_party/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
index 7439e566da..c491d8ef24 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "schismtracker";
- version = "20220125";
+ version = "20220506";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
- sha256 = "sha256-Hqbm5+YyCde/6QuyIy4NE/jG4xNDzeNjEefMr60GEZM=";
+ sha256 = "sha256-fK0FBn9e7l1Y/A7taFlaoas6ZPREFhEmskVBqjda6q0=";
};
configureFlags = [ "--enable-dependency-tracking" ]
diff --git a/third_party/nixpkgs/pkgs/applications/audio/snd/default.nix b/third_party/nixpkgs/pkgs/applications/audio/snd/default.nix
index 01e8f5d236..bcb254ad87 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/snd/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/snd/default.nix
@@ -5,11 +5,11 @@
stdenv.mkDerivation rec {
pname = "snd";
- version = "22.2";
+ version = "22.5";
src = fetchurl {
url = "mirror://sourceforge/snd/snd-${version}.tar.gz";
- sha256 = "sha256-MZ8Vm/d+0r7YsXdySKcH5rqXBh4iFLyUe44LBOD58E0=";
+ sha256 = "sha256-a/nYq6Cfbx93jfA6I8it+U0U36dOAFSpRis32spPks4=";
};
nativeBuildInputs = [ pkg-config ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/spot/default.nix b/third_party/nixpkgs/pkgs/applications/audio/spot/default.nix
index 7dab868b94..e995f8cfa1 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/spot/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/spot/default.nix
@@ -80,5 +80,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/xou816/spot";
license = licenses.mit;
maintainers = with maintainers; [ jtojnar tomfitzhenry ];
+ platforms = platforms.linux;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix b/third_party/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix
index 45ff1bebc7..67edd91949 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix
@@ -9,13 +9,13 @@
mkDerivation rec {
pname = "spotify-qt";
- version = "3.8";
+ version = "3.9";
src = fetchFromGitHub {
owner = "kraxarn";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-Rgtw+nrM8YUBHPIIe9zVhLij/ep07piPf/2MSmTVQKk=";
+ sha256 = "sha256-8rLpasgXiaL2KpGnYMQdNN2ayjcSkmz5hDkNBnKNWHk=";
};
buildInputs = [ libxcb qtbase qtsvg ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/squeezelite/default.nix b/third_party/nixpkgs/pkgs/applications/audio/squeezelite/default.nix
index 5fc0d6f420..e13a791ccb 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/squeezelite/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/squeezelite/default.nix
@@ -34,13 +34,13 @@ stdenv.mkDerivation {
pname = binName;
# versions are specified in `squeezelite.h`
# see https://github.com/ralph-irving/squeezelite/issues/29
- version = "1.9.9.1401";
+ version = "1.9.9.1403";
src = fetchFromGitHub {
owner = "ralph-irving";
repo = "squeezelite";
- rev = "894df3ea80f66a27a9ae5fab918acf62a6798b8b";
- hash = "sha256-LIi+9vb0+56AGvVrLx4gQaUkUNjIi6PmqrLViLT1DSU=";
+ rev = "bc72c0de3fff771540a2a45aaafafed539387b3c";
+ hash = "sha256-205i61mbeQG2MzSE9NtPHSuNeyMbjZzbZVCFFzjqKqQ=";
};
buildInputs = [ flac libmad libvorbis mpg123 ]
diff --git a/third_party/nixpkgs/pkgs/applications/audio/termusic/default.nix b/third_party/nixpkgs/pkgs/applications/audio/termusic/default.nix
index 64ad86825e..5cf216a6e2 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/termusic/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/termusic/default.nix
@@ -7,14 +7,14 @@
rustPlatform.buildRustPackage rec {
pname = "termusic";
- version = "0.7.1";
+ version = "0.7.3";
src = fetchCrate {
inherit pname version;
- sha256 = "sha256-n5Z6LnZ0x+V46Exa9vSMrndZHperJlcXl1unfeTuo9M=";
+ sha256 = "sha256-5I9Fu+A5IBfaxaPcYKTzWq3/8ts0BPSOOVeU6D61dbc=";
};
- cargoHash = "sha256-eIM0/SWLZVyVsHyQ4GzKSjVTvK7oActAiBEv56+JqK4=";
+ cargoHash = "sha256-R/hElL0MjeBqboJTQkIREPOh+/YbdKtUAzqPD6BpSPs=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ alsa-lib ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/yoshimi/default.nix b/third_party/nixpkgs/pkgs/applications/audio/yoshimi/default.nix
index 1f47a456c9..beeb2fe3f1 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/yoshimi/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/yoshimi/default.nix
@@ -22,13 +22,13 @@
stdenv.mkDerivation rec {
pname = "yoshimi";
- version = "2.1.2.2";
+ version = "2.2.1";
src = fetchFromGitHub {
owner = "Yoshimi";
repo = pname;
rev = version;
- hash = "sha256-6YsA6tC94yJuuWp5rXXqHzqRy28tvmJzjOR92YwQYO0=";
+ hash = "sha256-Uo403vxzmDntmdoQZQqncuLpDXVJ2FdGi4pQ9jE9b/k=";
};
sourceRoot = "source/src";
diff --git a/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/ZynLogo.svg b/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/ZynLogo.svg
new file mode 100644
index 0000000000..8a1bc56d08
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/ZynLogo.svg
@@ -0,0 +1,6 @@
+
diff --git a/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix b/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
index e738a0fbcb..fae337c079 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
@@ -15,7 +15,7 @@
, zlib
# Optional dependencies
-, alsaSupport ? true
+, alsaSupport ? stdenv.isLinux
, alsa-lib
, dssiSupport ? false
, dssi
@@ -27,11 +27,13 @@
, ossSupport ? true
, portaudioSupport ? true
, portaudio
+, sndioSupport ? stdenv.isOpenBSD
+, sndio
# Optional GUI dependencies
, guiModule ? "off"
, cairo
-, fltk13
+, fltk
, libGL
, libjpeg
, libX11
@@ -40,6 +42,7 @@
# Test dependencies
, cxxtest
+, ruby
}:
assert builtins.any (g: guiModule == g) [ "fltk" "ntk" "zest" "off" ];
@@ -50,20 +53,24 @@ let
"ntk" = "NTK";
"zest" = "Zyn-Fusion";
}.${guiModule};
+
mruby-zest = callPackage ./mruby-zest { };
in stdenv.mkDerivation rec {
pname = "zynaddsubfx";
- version = "3.0.5";
+ version = "3.0.6";
src = fetchFromGitHub {
owner = pname;
repo = pname;
- rev = version;
- sha256 = "1vh1gszgjxwn8m32rk5222z1j2cnjax0bqpag7b47v6i36p2q4x8";
+ rev = "refs/tags/${version}";
fetchSubmodules = true;
+ sha256 = "sha256-0siAx141DZx39facXWmKbsi0rHBNpobApTdey07EcXg=";
};
+ outputs = [ "out" "doc" ];
+
postPatch = ''
+ patchShebangs rtosc/test/test-port-checker.rb src/Tests/check-ports.rb
substituteInPlace src/Misc/Config.cpp --replace /usr $out
'';
@@ -75,7 +82,8 @@ in stdenv.mkDerivation rec {
++ lib.optionals jackSupport [ libjack2 ]
++ lib.optionals lashSupport [ lash ]
++ lib.optionals portaudioSupport [ portaudio ]
- ++ lib.optionals (guiModule == "fltk") [ fltk13 libjpeg libXpm ]
+ ++ lib.optionals sndioSupport [ sndio ]
+ ++ lib.optionals (guiModule == "fltk") [ fltk libjpeg libXpm ]
++ lib.optionals (guiModule == "ntk") [ ntk cairo libXpm ]
++ lib.optionals (guiModule == "zest") [ libGL libX11 ];
@@ -87,29 +95,39 @@ in stdenv.mkDerivation rec {
++ lib.optional (guiModule == "fltk") "-DFLTK_SKIP_OPENGL=ON";
doCheck = true;
- checkInputs = [ cxxtest ];
+ checkInputs = [ cxxtest ruby ];
# TODO: Update cmake hook to make it simpler to selectively disable cmake tests: #113829
checkPhase = let
- # Tests fail on aarch64
- disabledTests = lib.optionals stdenv.isAarch64 [
- "MessageTest"
- "UnisonTest"
- ];
+ disabledTests =
+ # PortChecker test fails when lashSupport is enabled because
+ # zynaddsubfx takes to long to start trying to connect to lash
+ lib.optionals lashSupport [ "PortChecker" ]
+
+ # Tests fail on aarch64
+ ++ lib.optionals stdenv.isAarch64 [ "MessageTest" "UnisonTest" ];
in ''
runHook preCheck
ctest --output-on-failure -E '^${lib.concatStringsSep "|" disabledTests}$'
runHook postCheck
'';
+ # Use Zyn-Fusion logo for zest build
+ # An SVG version of the logo isn't hosted anywhere we can fetch, I
+ # had to manually derive it from the code that draws it in-app:
+ # https://github.com/mruby-zest/mruby-zest-build/blob/3.0.6/src/mruby-zest/example/ZynLogo.qml#L65-L97
+ postInstall = lib.optionalString (guiModule == "zest") ''
+ rm -r "$out/share/pixmaps"
+ mkdir -p "$out/share/icons/hicolor/scalable/apps"
+ cp ${./ZynLogo.svg} "$out/share/icons/hicolor/scalable/apps/zynaddsubfx.svg"
+ '';
+
# When building with zest GUI, patch plugins
# and standalone executable to properly locate zest
postFixup = lib.optionalString (guiModule == "zest") ''
- patchelf --set-rpath "${mruby-zest}:$(patchelf --print-rpath "$out/lib/lv2/ZynAddSubFX.lv2/ZynAddSubFX_ui.so")" \
- "$out/lib/lv2/ZynAddSubFX.lv2/ZynAddSubFX_ui.so"
-
- patchelf --set-rpath "${mruby-zest}:$(patchelf --print-rpath "$out/lib/vst/ZynAddSubFX.so")" \
- "$out/lib/vst/ZynAddSubFX.so"
+ for lib in "$out/lib/lv2/ZynAddSubFX.lv2/ZynAddSubFX_ui.so" "$out/lib/vst/ZynAddSubFX.so"; do
+ patchelf --set-rpath "${mruby-zest}:$(patchelf --print-rpath "$lib")" "$lib"
+ done
wrapProgram "$out/bin/zynaddsubfx" \
--prefix PATH : ${mruby-zest} \
@@ -123,8 +141,15 @@ in stdenv.mkDerivation rec {
then "https://zynaddsubfx.sourceforge.io/zyn-fusion.html"
else "https://zynaddsubfx.sourceforge.io";
- license = licenses.gpl2;
+ license = licenses.gpl2Plus;
maintainers = with maintainers; [ goibhniu kira-bruneau ];
- platforms = platforms.linux;
+ platforms = platforms.all;
+
+ # On macOS:
+ # - Tests don't compile (ld: unknown option: --no-as-needed)
+ # - ZynAddSubFX LV2 & VST plugin fail to compile (not setup to use ObjC version of pugl)
+ # - TTL generation crashes (`pointer being freed was not allocated`) for all VST plugins using AbstractFX
+ # - Zest UI fails to start on pulg_setup: Could not open display, aborting.
+ broken = stdenv.isDarwin;
};
}
diff --git a/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix b/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix
index 1c9cb0a463..797b4624b9 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/default.nix
@@ -1,9 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchFromGitHub
-, fetchpatch
, bison
-, git
-, python2
+, pkg-config
, rake
, ruby
, libGL
@@ -11,87 +10,42 @@
, libX11
}:
-let
- mgem-list = fetchFromGitHub {
- owner = "mruby";
- repo = "mgem-list";
- rev = "2033837203c8a141b1f9d23bb781fe0cbaefbd24";
- sha256 = "0igf2nsx5i6g0yf7sjxxkngyriv213d0sjs3yidrflrabiywpxmm";
- };
-
- mruby-dir = fetchFromGitHub {
- owner = "iij";
- repo = "mruby-dir";
- rev = "89dceefa1250fb1ae868d4cb52498e9e24293cd1";
- sha256 = "0zrhiy9wmwmc9ls62iyb2z86j2ijqfn7rn4xfmrbrfxygczarsm9";
- };
-
- mruby-errno = fetchFromGitHub {
- owner = "iij";
- repo = "mruby-errno";
- rev = "b4415207ff6ea62360619c89a1cff83259dc4db0";
- sha256 = "12djcwjjw0fygai5kssxbfs3pzh3cpnq07h9m2h5b51jziw380xj";
- };
-
- mruby-file-stat = fetchFromGitHub {
- owner = "ksss";
- repo = "mruby-file-stat";
- rev = "aa474589f065c71d9e39ab8ba976f3bea6f9aac2";
- sha256 = "1clarmr67z133ivkbwla1a42wcjgj638j9w0mlv5n21mhim9rid5";
- };
-
- mruby-process = fetchFromGitHub {
- owner = "iij";
- repo = "mruby-process";
- rev = "fe171fbe2a6cc3c2cf7d713641bddde71024f7c8";
- sha256 = "00yrzc371f90gl5m1gbkw0qq8c394bpifssjr8p1wh5fmzhxqyml";
- };
-
- mruby-pack = fetchFromGitHub {
- owner = "iij";
- repo = "mruby-pack";
- rev = "383a9c79e191d524a9a2b4107cc5043ecbf6190b";
- sha256 = "003glxgxifk4ixl12sy4gn9bhwvgb79b4wga549ic79isgv81w2d";
- };
-in
stdenv.mkDerivation rec {
pname = "mruby-zest";
- version = "3.0.5";
+ version = "3.0.6";
src = fetchFromGitHub {
owner = pname;
repo = "${pname}-build";
- rev = version;
- sha256 = "0fxljrgamgz2rm85mclixs00b0f2yf109jc369039n1vf0l5m57d";
+ rev = "refs/tags/${version}";
fetchSubmodules = true;
+ sha256 = "sha256-rIb6tQimwrUj+623IU5zDyKNWsNYYBElLQClOsP+5Dc=";
};
- nativeBuildInputs = [ bison git python2 rake ruby ];
- buildInputs = [ libGL libuv libX11 ];
-
patches = [
- ./force-gcc-as-linker.patch
- ./system-libuv.patch
-
- # Pull upstream fix for -fno-common toolchains:
- # https://github.com/mruby-zest/mruby-zest-build/issues/25
- (fetchpatch {
- name = "fno-common.patch";
- url = "https://github.com/mruby-zest/mruby-zest-build/commit/4eb88250f22ee684acac95d4d1f114df504e37a7.patch";
- sha256 = "0wg7qy1vg0mzcxagf35bv35dlr0q17pxjicigpf86yqppvgrzrsb";
- })
+ ./force-cxx-as-linker.patch
];
- # Add missing dependencies of deps/mruby-dir-glob/mrbgem.rake
- # Should be fixed in next release, see bcadb0a5490bd6d599f1a0e66ce09b46363c9dae
- postPatch = ''
- mkdir -p mruby/build/mrbgems
- ln -s ${mgem-list} mruby/build/mrbgems/mgem-list
- ln -s ${mruby-dir} mruby/build/mrbgems/mruby-dir
- ln -s ${mruby-errno} mruby/build/mrbgems/mruby-errno
- ln -s ${mruby-file-stat} mruby/build/mrbgems/mruby-file-stat
- ln -s ${mruby-process} mruby/build/mrbgems/mruby-process
- ln -s ${mruby-pack} mruby/build/mrbgems/mruby-pack
+ nativeBuildInputs = [
+ bison
+ pkg-config
+ rake
+ ruby
+ ];
+
+ buildInputs = [
+ libGL
+ libuv
+ libX11
+ ];
+
+ # Force optimization to fix:
+ # warning: #warning _FORTIFY_SOURCE requires compiling with optimization (-O)
+ NIX_CFLAGS_COMPILE = "-O3";
+
+ # Remove pre-built y.tab.c to generate with nixpkgs bison
+ preBuild = ''
+ rm mruby/mrbgems/mruby-compiler/core/y.tab.c
'';
installTargets = [ "pack" ];
@@ -102,8 +56,8 @@ stdenv.mkDerivation rec {
# mruby-widget-lib/src/api.c requires MainWindow.qml as part of a
# sanity check, even though qml files are compiled into the binary
- # https://github.com/mruby-zest/mruby-zest-build/tree/3.0.5/src/mruby-widget-lib/src/api.c#L99-L116
- # https://github.com/mruby-zest/mruby-zest-build/tree/3.0.5/linux-pack.sh#L17-L18
+ # https://github.com/mruby-zest/mruby-zest-build/blob/3.0.6/src/mruby-widget-lib/src/api.c#L107-L124
+ # https://github.com/mruby-zest/mruby-zest-build/blob/3.0.6/linux-pack.sh#L17-L18
mkdir -p "$out/qml"
touch "$out/qml/MainWindow.qml"
'';
@@ -111,7 +65,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "The Zest Framework used in ZynAddSubFX's UI";
homepage = "https://github.com/mruby-zest";
- license = licenses.lgpl21;
+ license = licenses.lgpl21Plus;
maintainers = with maintainers; [ kira-bruneau ];
platforms = platforms.all;
};
diff --git a/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/force-gcc-as-linker.patch b/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/force-cxx-as-linker.patch
similarity index 55%
rename from third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/force-gcc-as-linker.patch
rename to third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/force-cxx-as-linker.patch
index c521d24077..bd5cd1edd8 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/force-gcc-as-linker.patch
+++ b/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/force-cxx-as-linker.patch
@@ -1,13 +1,13 @@
diff --git a/mruby/tasks/toolchains/gcc.rake b/mruby/tasks/toolchains/gcc.rake
-index f370c0ab..e5ab9f60 100644
+index 51bda6517..9bc96d0e2 100644
--- a/mruby/tasks/toolchains/gcc.rake
+++ b/mruby/tasks/toolchains/gcc.rake
-@@ -22,7 +22,7 @@ MRuby::Toolchain.new(:gcc) do |conf, _params|
+@@ -23,7 +23,7 @@ MRuby::Toolchain.new(:gcc) do |conf, params|
end
conf.linker do |linker|
-- linker.command = ENV['LD'] || 'gcc'
-+ linker.command = 'gcc'
+- linker.command = ENV['LD'] || ENV['CXX'] || ENV['CC'] || default_command
++ linker.command = ENV['CXX'] || ENV['CC'] || default_command
linker.flags = [ENV['LDFLAGS'] || %w()]
linker.libraries = %w(m)
linker.library_paths = []
diff --git a/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/system-libuv.patch b/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/system-libuv.patch
deleted file mode 100644
index b7050abc12..0000000000
--- a/third_party/nixpkgs/pkgs/applications/audio/zynaddsubfx/mruby-zest/system-libuv.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-diff --git a/Makefile b/Makefile
-index f3e3be2..2398852 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,8 +1,3 @@
--UV_DIR = libuv-v1.9.1
--UV_FILE = $(UV_DIR).tar.gz
--UV_URL = http://dist.libuv.org/dist/v1.9.1/$(UV_FILE)
--
--
- all:
- ruby ./rebuild-fcache.rb
- cd deps/nanovg/src && $(CC) nanovg.c -c -fPIC
-@@ -10,12 +5,12 @@ all:
- # cd deps/pugl && python2 ./waf configure --no-cairo --static
- cd deps/pugl && python2 ./waf configure --no-cairo --static --debug
- cd deps/pugl && python2 ./waf
-- cd src/osc-bridge && CFLAGS="-I ../../deps/$(UV_DIR)/include " make lib
-+ cd src/osc-bridge && make lib
- cd mruby && MRUBY_CONFIG=../build_config.rb rake
- $(CC) -shared -o libzest.so `find mruby/build/host -type f | grep -e "\.o$$" | grep -v bin` ./deps/libnanovg.a \
- ./deps/libnanovg.a \
- src/osc-bridge/libosc-bridge.a \
-- ./deps/$(UV_DIR)/.libs/libuv.a -lm -lX11 -lGL -lpthread
-+ -luv -lm -lX11 -lGL -lpthread
- $(CC) test-libversion.c deps/pugl/build/libpugl-0.a -ldl -o zest -lX11 -lGL -lpthread -I deps/pugl -std=gnu99
-
- osx:
-@@ -25,12 +20,12 @@ osx:
- cd deps/pugl && python2 ./waf configure --no-cairo --static
- # cd deps/pugl && python2 ./waf configure --no-cairo --static --debug
- cd deps/pugl && python2 ./waf
-- cd src/osc-bridge && CFLAGS="-I ../../deps/$(UV_DIR)/include " make lib
-+ cd src/osc-bridge && make lib
- cd mruby && MRUBY_CONFIG=../build_config.rb rake
- $(CC) -shared -o libzest.so `find mruby/build/host -type f | grep -e "\.o$$" | grep -v bin` ./deps/libnanovg.a \
- ./deps/libnanovg.a \
- src/osc-bridge/libosc-bridge.a \
-- ./deps/$(UV_DIR)/.libs/libuv.a -lm -framework OpenGL -lpthread
-+ -luv -lm -framework OpenGL -lpthread
- $(CC) test-libversion.c deps/pugl/build/libpugl-0.a -ldl -o zest -framework OpenGL -framework AppKit -lpthread -I deps/pugl -std=gnu99
-
- windows:
-@@ -38,38 +33,14 @@ windows:
- $(AR) rc deps/libnanovg.a deps/nanovg/src/*.o
- cd deps/pugl && CFLAGS="-mstackrealign" python2 ./waf configure --no-cairo --static --target=win32
- cd deps/pugl && python2 ./waf
-- cd src/osc-bridge && CFLAGS="-mstackrealign -I ../../deps/$(UV_DIR)/include " make lib
-+ cd src/osc-bridge && CFLAGS="-mstackrealign" make lib
- cd mruby && WINDOWS=1 MRUBY_CONFIG=../build_config.rb rake
- $(CC) -mstackrealign -shared -o libzest.dll -static-libgcc `find mruby/build/w64 -type f | grep -e "\.o$$" | grep -v bin` \
- ./deps/libnanovg.a \
- src/osc-bridge/libosc-bridge.a \
-- ./deps/libuv-win.a \
-- -lm -lpthread -lws2_32 -lkernel32 -lpsapi -luserenv -liphlpapi -lglu32 -lgdi32 -lopengl32
-+ -luv -lm -lpthread -lws2_32 -lkernel32 -lpsapi -luserenv -liphlpapi -lglu32 -lgdi32 -lopengl32
- $(CC) -mstackrealign -DWIN32 test-libversion.c deps/pugl/build/libpugl-0.a -o zest.exe -lpthread -I deps/pugl -std=c99 -lws2_32 -lkernel32 -lpsapi -luserenv -liphlpapi -lglu32 -lgdi32 -lopengl32
-
--
--builddep: deps/libuv.a
--deps/libuv.a:
-- cd deps/$(UV_DIR) && ./autogen.sh
-- cd deps/$(UV_DIR) && CFLAGS=-fPIC ./configure
-- cd deps/$(UV_DIR) && CFLAGS=-fPIC make
-- cp deps/$(UV_DIR)/.libs/libuv.a deps/
--
--builddepwin: deps/libuv-win.a
--deps/libuv-win.a:
-- cd deps/$(UV_DIR) && ./autogen.sh
-- cd deps/$(UV_DIR) && CFLAGS="-mstackrealign" ./configure --host=x86_64-w64-mingw32
-- cd deps/$(UV_DIR) && LD=x86_64-w64-mingw32-gcc make
-- cp deps/$(UV_DIR)/.libs/libuv.a deps/libuv-win.a
--
--deps/$(UV_DIR):
-- cd deps && wget -4 $(UV_URL) && tar xvf $(UV_FILE)
--setup: deps/$(UV_DIR)
--
--setupwin:
-- cd deps && wget -4 $(UV_URL)
-- cd deps && tar xvf $(UV_FILE)
--
- push:
- cd src/osc-bridge && git push
- cd src/mruby-qml-parse && git push
-diff --git a/build_config.rb b/build_config.rb
-index 00f1f69..11ac15b 100644
---- a/build_config.rb
-+++ b/build_config.rb
-@@ -96,7 +96,6 @@ build_type.new(build_name) do |conf|
- conf.cc do |cc|
- cc.include_paths << "#{`pwd`.strip}/../deps/nanovg/src"
- cc.include_paths << "#{`pwd`.strip}/../deps/pugl/"
-- cc.include_paths << "#{`pwd`.strip}/../deps/libuv-v1.9.1/include/"
- cc.include_paths << "/usr/share/mingw-w64/include/" if windows
- cc.include_paths << "/usr/x86_64-w64-mingw32/include/" if windows
- cc.flags << "-DLDBL_EPSILON=1e-6" if windows
-@@ -117,14 +116,14 @@ build_type.new(build_name) do |conf|
- linker.flags_after_libraries << "#{`pwd`.strip}/../deps/pugl/build/libpugl-0.a"
- linker.flags_after_libraries << "#{`pwd`.strip}/../deps/libnanovg.a"
- if(!windows)
-- linker.flags_after_libraries << "#{`pwd`.strip}/../deps/libuv.a"
-+ linker.flags_after_libraries << "-luv"
- if(ENV['OS'] != "Mac")
- linker.libraries << 'GL'
- linker.libraries << 'X11'
- end
- linker.flags_after_libraries << "-lpthread -ldl -lm"
- else
-- linker.flags_after_libraries << "#{`pwd`.strip}/../deps/libuv-win.a"
-+ linker.flags_after_libraries << "-luv"
- linker.flags_after_libraries << "-lws2_32 -lkernel32 -lpsapi -luserenv -liphlpapi"
- linker.flags_after_libraries << "-lglu32 -lgdi32 -lopengl32"
- end
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
index 942c411762..eb43013010 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
@@ -6,13 +6,13 @@
buildDotnetModule rec {
pname = "btcpayserver";
- version = "1.6.6";
+ version = "1.6.9";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
- sha256 = "sha256-790/XBeFS1iM73WuBMXcEoB3gjBlU1dMPRwtQNB7taE=";
+ sha256 = "sha256-kN+/TQCc35iI8gr9pYlW4B3B6WasGyKQffkJ8rMffVk=";
};
projectFile = "BTCPayServer/BTCPayServer.csproj";
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix b/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
index 4dcbafb87d..8112240c0b 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
@@ -31,8 +31,8 @@
})
(fetchNuGet {
pname = "BTCPayServer.Lightning.All";
- version = "1.3.12";
- sha256 = "005nl3sl3awdpwnvdsww8kg4ysj804459a5yip283fy7a29xagyh";
+ version = "1.3.13";
+ sha256 = "103isdymijx4bdpjs968dmfc26kdxjzvqlca2p7vxxzp8ww7yjcz";
})
(fetchNuGet {
pname = "BTCPayServer.Lightning.Charge";
@@ -71,8 +71,8 @@
})
(fetchNuGet {
pname = "BTCPayServer.Lightning.LNDhub";
- version = "1.0.2";
- sha256 = "1jyn0r9qm9r8szmzx0g0ja2k93r8adi1vn100c8d9wpnr83xwj03";
+ version = "1.0.3";
+ sha256 = "185b9b7h00w92mg5cgwfr94b8lz2xbg8wyhjbzkmb0588crv3y8k";
})
(fetchNuGet {
pname = "BuildBundlerMinifier";
@@ -1091,8 +1091,8 @@
})
(fetchNuGet {
pname = "Selenium.WebDriver.ChromeDriver";
- version = "103.0.5060.5300";
- sha256 = "1dr1d4nx2qb6is29p3rsmp254v1v6c24pdsx7kyj1yamh89sqd5k";
+ version = "104.0.5112.7900";
+ sha256 = "0mq6m5qmlxaq37nh1pzm13s1s4abdgamwwazdc53gf5ll0qwcyxb";
})
(fetchNuGet {
pname = "Selenium.WebDriver";
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/exodus/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
index 82da3f2917..f3884106a4 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
@@ -4,11 +4,11 @@ cups, vivaldi-ffmpeg-codecs, libpulseaudio, at-spi2-core, libxkbcommon, mesa }:
stdenv.mkDerivation rec {
pname = "exodus";
- version = "22.7.29";
+ version = "22.8.12";
src = fetchzip {
url = "https://downloads.exodus.io/releases/${pname}-linux-x64-${version}.zip";
- sha256 = "sha256-vshcXuFuOuXlmdgqK+pj6dAbeYGNR2YA79AzkeUzNtk=";
+ sha256 = "sha256-jNzHh4zYhFzpFZAC9rHmwjTdFkbpROSEN3qpL7geiOU=";
};
installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 18909852ac..1fc4170ffe 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -2,11 +2,11 @@
let
pname = "ledger-live-desktop";
- version = "2.45.0";
+ version = "2.45.1";
src = fetchurl {
url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage";
- hash = "sha256-jw4ocBtyxhPhI2GnhL9tbduY4iIQK53vUHB64qSGXKI=";
+ hash = "sha256-KUp7ZQZ+THjioOSe3A40Zj+5OteWxEv+dnSbTUM8qME=";
};
appimageContents = appimageTools.extractType2 {
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/monero-cli/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/monero-cli/default.nix
index 39e416e430..1709c8833c 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/monero-cli/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/monero-cli/default.nix
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "monero-cli";
- version = "0.17.3.2";
+ version = "0.18.1.0";
src = fetchFromGitHub {
owner = "monero-project";
repo = "monero";
rev = "v${version}";
- sha256 = "19sgcbli7fc1l6ms7ma6hcz1mmpbnd296lc8a19rl410acpv45zy";
+ sha256 = "sha256-xniGiGqZpL1b6alnCxa2MNzuDQxPgMdNjqifOC8h0qM=";
fetchSubmodules = true;
};
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
postPatch = ''
# remove vendored libraries
- rm -r external/{miniupnp,randomx,rapidjson,unbound}
+ rm -r external/{miniupnp,randomx,rapidjson}
# export patched source for monero-gui
cp -r . $source
'';
diff --git a/third_party/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix b/third_party/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
index 6b2cc4a7f9..6627c29d99 100644
--- a/third_party/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
@@ -14,13 +14,13 @@
stdenv.mkDerivation rec {
pname = "monero-gui";
- version = "0.17.3.2";
+ version = "0.18.1.0";
src = fetchFromGitHub {
- owner = "monero-project";
- repo = "monero-gui";
- rev = "v${version}";
- sha256 = "10gincmgc0qpsgm94m1fqfy9j8jn9g1gjk12lcqnf77kvcnz37hq";
+ owner = "monero-project";
+ repo = "monero-gui";
+ rev = "v${version}";
+ sha256 = "sha256-XL7DV4YD/U6RiqgdYJf6zFfvJWlOx//4YVmnc51riiE=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix b/third_party/nixpkgs/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix
new file mode 100644
index 0000000000..fe8132fb1b
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix
@@ -0,0 +1,110 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, python3
+, vala
+, intltool
+, autoreconfHook
+, wrapGAppsHook
+, lightdm
+, gtk3
+, pixman
+, libcanberra
+, libX11
+, libXext
+, linkFarm
+, lightdm-slick-greeter
+, numlockx
+}:
+
+stdenv.mkDerivation rec {
+ pname = "lightdm-slick-greeter";
+ version = "1.5.9";
+
+ src = fetchFromGitHub {
+ owner = "linuxmint";
+ repo = "slick-greeter";
+ rev = version;
+ sha256 = "sha256-UEzidH4ZWggcOWHHuAclHbbgATDBdogL99Ze0PlwRoc=";
+ };
+
+ nativeBuildInputs = [
+ pkg-config
+ vala
+ intltool
+ autoreconfHook
+ wrapGAppsHook
+ python3
+ python3.pkgs.wrapPython
+ ];
+
+ buildInputs = [
+ lightdm
+ gtk3
+ pixman
+ libcanberra
+ libX11
+ libXext
+ ];
+
+ pythonPath = [
+ python3.pkgs.pygobject3 # for slick-greeter-check-hidpi
+ ];
+
+ postPatch = ''
+ substituteInPlace src/slick-greeter.vala \
+ --replace "/usr/bin/numlockx" "${numlockx}/bin/numlockx" \
+ --replace "/usr/share/xsessions/" "/run/current-system/sw/share/xsessions/" \
+ --replace "/usr/bin/slick-greeter" "${placeholder "out"}/bin/slick-greeter"
+
+ substituteInPlace src/session-list.vala \
+ --replace "/usr/share" "${placeholder "out"}/share"
+
+ patchShebangs files/usr/bin/*
+ '';
+
+ preAutoreconf = ''
+ # intltoolize fails during autoreconfPhase unless this
+ # directory is created manually.
+ mkdir m4
+ '';
+
+ configureFlags = [
+ "--localstatedir=/var"
+ "--sysconfdir=/etc"
+ "--sbindir=${placeholder "out"}/bin"
+ ];
+
+ installFlags = [
+ "localstatedir=\${TMPDIR}"
+ "sysconfdir=${placeholder "out"}/etc"
+ ];
+
+ postInstall = ''
+ substituteInPlace "$out/share/xgreeters/slick-greeter.desktop" \
+ --replace "Exec=slick-greeter" "Exec=$out/bin/slick-greeter"
+
+ cp -r files/usr/* $out
+ '';
+
+ preFixup = ''
+ buildPythonPath "$out $pythonPath"
+ gappsWrapperArgs+=(
+ --prefix PYTHONPATH : "$program_PYTHONPATH"
+ )
+ '';
+
+ passthru.xgreeters = linkFarm "lightdm-slick-greeter-xgreeters" [{
+ path = "${lightdm-slick-greeter}/share/xgreeters/slick-greeter.desktop";
+ name = "lightdm-slick-greeter.desktop";
+ }];
+
+ meta = with lib; {
+ description = "A slick-looking LightDM greeter";
+ homepage = "https://github.com/linuxmint/slick-greeter";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ water-sucks ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/editors/emacs/generic.nix b/third_party/nixpkgs/pkgs/applications/editors/emacs/generic.nix
index b1c8a8d6cc..1f49c3c23a 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/emacs/generic.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/emacs/generic.nix
@@ -26,7 +26,7 @@
, withWebP ? false
, srcRepo ? true, autoreconfHook ? null, texinfo ? null
, siteStart ? ./site-start.el
-, nativeComp ? false
+, nativeComp ? true
, withAthena ? false
, withToolkitScrollBars ? true
, withPgtk ? false
diff --git a/third_party/nixpkgs/pkgs/applications/editors/jupyter/kernel.nix b/third_party/nixpkgs/pkgs/applications/editors/jupyter/kernel.nix
index 0fd59ca391..3640de28e8 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/jupyter/kernel.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/jupyter/kernel.nix
@@ -15,8 +15,8 @@ let
"{connection_file}"
];
language = "python";
- logo32 = "${env.sitePackages}/ipykernel/resources/logo-32x32.png";
- logo64 = "${env.sitePackages}/ipykernel/resources/logo-64x64.png";
+ logo32 = "${env}/${env.sitePackages}/ipykernel/resources/logo-32x32.png";
+ logo64 = "${env}/${env.sitePackages}/ipykernel/resources/logo-64x64.png";
};
};
diff --git a/third_party/nixpkgs/pkgs/applications/editors/leo-editor/default.nix b/third_party/nixpkgs/pkgs/applications/editors/leo-editor/default.nix
index efe431c339..1f4fbdf4ed 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/leo-editor/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/leo-editor/default.nix
@@ -2,13 +2,13 @@
mkDerivation rec {
pname = "leo-editor";
- version = "6.6-b2";
+ version = "6.6.3";
src = fetchFromGitHub {
owner = "leo-editor";
repo = "leo-editor";
rev = version;
- sha256 = "sha256-oUOsAYcxknG+bao76bzPhStO1m08pMWTEEiG2rLkklA=";
+ sha256 = "sha256-QBK+4V9Nff3K6KcJ1PEyU0Ohn3cLawKe/5sR4Tih0dM=";
};
dontBuild = true;
diff --git a/third_party/nixpkgs/pkgs/applications/editors/micro/default.nix b/third_party/nixpkgs/pkgs/applications/editors/micro/default.nix
index bace622004..081b038e23 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/micro/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/micro/default.nix
@@ -24,9 +24,14 @@ buildGoModule rec {
"-X ${t}/util.CommitHash=${src.rev}"
];
+ preBuild = ''
+ go generate ./runtime
+ '';
+
postInstall = ''
installManPage assets/packaging/micro.1
install -Dt $out/share/applications assets/packaging/micro.desktop
+ install -Dm644 assets/micro-logo-mark.svg $out/share/icons/hicolor/scalable/apps/micro.svg
'';
passthru.tests.expect = callPackage ./test-with-expect.nix {};
diff --git a/third_party/nixpkgs/pkgs/applications/editors/nano/default.nix b/third_party/nixpkgs/pkgs/applications/editors/nano/default.nix
index 20b18814cb..5d4d84e6fe 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/nano/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/nano/default.nix
@@ -16,11 +16,11 @@ let
in stdenv.mkDerivation rec {
pname = "nano";
- version = "6.3";
+ version = "6.4";
src = fetchurl {
url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
- sha256 = "61MtpJhWcnMLUA9oXbqriFpGbQj7v3QVgyuVgF5vhoc=";
+ sha256 = "QZmujKeKd5beVt4aQbgh3EeRLAMH6YFrVswxffNGYcA=";
};
nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/third_party/nixpkgs/pkgs/applications/editors/neovim/neovide/default.nix b/third_party/nixpkgs/pkgs/applications/editors/neovim/neovide/default.nix
index 346647838e..d806e6e7d5 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/neovim/neovide/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/neovim/neovide/default.nix
@@ -25,16 +25,16 @@
}:
rustPlatform.buildRustPackage rec {
pname = "neovide";
- version = "0.9.0";
+ version = "0.10.1";
src = fetchFromGitHub {
owner = "Kethku";
repo = "neovide";
rev = version;
- sha256 = "sha256-2fN05o8Zo1MGdIYUcsCgkiW/kG6DkY8uTnpw2XrKxrI=";
+ sha256 = "sha256-PViSiK6+H79MLIOFe26cNqUZ6gZdqDC/S+ksTrbOm54=";
};
- cargoSha256 = "sha256-eATUyczkcwHI8Y7Gl2ts4dRgiFUAL8yrWDNe4JzserE=";
+ cargoSha256 = "sha256-GvueDUY4Hzfih/MyEfhdz/QNVd9atTC8SCF+PyuJJic=";
SKIA_SOURCE_DIR =
let
@@ -42,8 +42,8 @@ rustPlatform.buildRustPackage rec {
owner = "rust-skia";
repo = "skia";
# see rust-skia:skia-bindings/Cargo.toml#package.metadata skia
- rev = "m100-0.48.7";
- sha256 = "sha256-roZUv5YoLolRi0iWAB+5WlCFV+8GdzNzS+JINnEHaMs=";
+ rev = "m103-0.51.1";
+ sha256 = "sha256-w5dw/lGm40gKkHPR1ji/L82Oa808Kuh8qaCeiqBLkLw=";
};
# The externals for skia are taken from skia/DEPS
externals = lib.mapAttrs (n: fetchgit) (lib.importJSON ./skia-externals.json);
diff --git a/third_party/nixpkgs/pkgs/applications/editors/neovim/neovide/skia-externals.json b/third_party/nixpkgs/pkgs/applications/editors/neovim/neovide/skia-externals.json
index fe0bcdea93..e7ee3fc53a 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/neovim/neovide/skia-externals.json
+++ b/third_party/nixpkgs/pkgs/applications/editors/neovim/neovide/skia-externals.json
@@ -6,8 +6,8 @@
},
"libjpeg-turbo": {
"url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git",
- "rev": "02959c3ee17abacfd1339ec22ea93301292ffd56",
- "sha256": "sha256-cuSBVhHCX2Fh2SmmRpjinYtge8yaxcM06jlSXfvCywk="
+ "rev": "22f1a22c99e9dde8cd3c72ead333f425c5a7aa77",
+ "sha256": "sha256-5MaYvyrhADFGKBxcS3kbKcn9tj0FNXAN/rAXXYW6ljs="
},
"icu": {
"url": "https://chromium.googlesource.com/chromium/deps/icu.git",
@@ -21,8 +21,8 @@
},
"harfbuzz": {
"url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git",
- "rev": "a8b7f1880412c7f0c9ecdada0a4935011816c7dc",
- "sha256": "sha256-QyVkeBVl45gygOylhnojcQuDIBp2DT2d7pD+OcX29VU="
+ "rev": "8d1b000a3edc90c12267b836b4ef3f81c0e53edc",
+ "sha256": "sha256-nFAT7HnYkIWZcV6kjDQiRltbPcmbtuRM4m5ecY4/s6E="
},
"libpng": {
"url": "https://skia.googlesource.com/third_party/libpng.git",
diff --git a/third_party/nixpkgs/pkgs/applications/editors/neovim/tests.nix b/third_party/nixpkgs/pkgs/applications/editors/neovim/tests/default.nix
similarity index 86%
rename from third_party/nixpkgs/pkgs/applications/editors/neovim/tests.nix
rename to third_party/nixpkgs/pkgs/applications/editors/neovim/tests/default.nix
index 3f38abee50..97c7a2505a 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/neovim/tests.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/neovim/tests/default.nix
@@ -2,6 +2,7 @@
, lib, fetchFromGitHub, neovimUtils, wrapNeovimUnstable
, neovim-unwrapped
, fetchFromGitLab
+, runCommandLocal
, pkgs
}:
let
@@ -19,6 +20,24 @@ let
}
];
+ packagesWithSingleLineConfigs = with vimPlugins; [
+ {
+ plugin = vim-obsession;
+ config = ''map $ Obsession'';
+ }
+ {
+ plugin = trouble-nvim;
+ config = ''" placeholder config'';
+ }
+ ];
+
+ nvimConfSingleLines = makeNeovimConfig {
+ plugins = packagesWithSingleLineConfigs;
+ customRC = ''
+ " just a comment
+ '';
+ };
+
nvimConfNix = makeNeovimConfig {
inherit plugins;
customRC = ''
@@ -47,8 +66,9 @@ let
sha256 = "1ykcvyx82nhdq167kbnpgwkgjib8ii7c92y3427v986n2s5lsskc";
};
+ # neovim-drv must be a wrapped neovim
runTest = neovim-drv: buildCommand:
- pkgs.runCommandLocal "test-${neovim-drv.name}" ({
+ runCommandLocal "test-${neovim-drv.name}" ({
nativeBuildInputs = [ ];
meta.platforms = neovim-drv.meta.platforms;
}) (''
@@ -68,6 +88,12 @@ rec {
##################
nvim_with_plugins = wrapNeovim2 "-with-plugins" nvimConfNix;
+ singlelinesconfig = runTest (wrapNeovim2 "-single-lines" nvimConfSingleLines) ''
+ assertFileContent \
+ "$vimrcGeneric" \
+ "${./init-single-lines.vim}"
+ '';
+
nvim_via_override = neovim.override {
extraName = "-via-override";
configure = {
@@ -131,7 +157,7 @@ rec {
nvim_via_override-test = runTest nvim_via_override ''
assertFileContent \
"$vimrcGeneric" \
- "${./neovim-override.vim}"
+ "${./init-override.vim}"
'';
diff --git a/third_party/nixpkgs/pkgs/applications/editors/neovim/neovim-override.vim b/third_party/nixpkgs/pkgs/applications/editors/neovim/tests/init-override.vim
similarity index 100%
rename from third_party/nixpkgs/pkgs/applications/editors/neovim/neovim-override.vim
rename to third_party/nixpkgs/pkgs/applications/editors/neovim/tests/init-override.vim
diff --git a/third_party/nixpkgs/pkgs/applications/editors/neovim/tests/init-single-lines.vim b/third_party/nixpkgs/pkgs/applications/editors/neovim/tests/init-single-lines.vim
new file mode 100644
index 0000000000..7b4df77876
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/editors/neovim/tests/init-single-lines.vim
@@ -0,0 +1,3 @@
+map $ Obsession
+" placeholder config
+" just a comment
diff --git a/third_party/nixpkgs/pkgs/applications/editors/neovim/utils.nix b/third_party/nixpkgs/pkgs/applications/editors/neovim/utils.nix
index c3e4196653..cb0c005759 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/neovim/utils.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/neovim/utils.nix
@@ -49,12 +49,17 @@ let
};
# transform all plugins into an attrset
- # { optional = bool; plugin = package; dest = filename; }
- pluginsNormalized = map (x: if x ? plugin then { dest = "init.vim"; optional = false; } // x else { plugin = x; optional = false;}) plugins;
+ # { optional = bool; plugin = package; }
+ pluginsNormalized = let
+ defaultPlugin = {
+ plugin = null;
+ config = null;
+ optional = false;
+ };
+ in
+ map (x: defaultPlugin // (if (x ? plugin) then x else { plugin = x; })) plugins;
-
-
- pluginRC = lib.concatMapStrings (p: p.config or "") pluginsNormalized;
+ pluginRC = lib.foldl (acc: p: if p.config != null then acc ++ [p.config] else acc) [] pluginsNormalized;
pluginsPartitioned = lib.partition (x: x.optional == true) pluginsNormalized;
requiredPlugins = vimUtils.requiredPluginsForPackage myVimPackage;
@@ -116,7 +121,11 @@ let
manifestRc = vimUtils.vimrcContent ({ customRC = ""; }) ;
# we call vimrcContent without 'packages' to avoid the init.vim generation
- neovimRcContent = vimUtils.vimrcContent ({ beforePlugins = ""; customRC = pluginRC + customRC; packages = null; });
+ neovimRcContent = vimUtils.vimrcContent ({
+ beforePlugins = "";
+ customRC = lib.concatStringsSep "\n" (pluginRC ++ [customRC]);
+ packages = null;
+ });
in
builtins.removeAttrs args ["plugins"] // {
diff --git a/third_party/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix b/third_party/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
index 2a0d60ce5a..d0df6b7356 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
@@ -123,7 +123,7 @@ let
unwrapped = neovim;
initRc = neovimRcContent;
- tests = callPackage ./tests.nix {
+ tests = callPackage ./tests {
};
};
diff --git a/third_party/nixpkgs/pkgs/applications/editors/o/default.nix b/third_party/nixpkgs/pkgs/applications/editors/o/default.nix
new file mode 100644
index 0000000000..20bb6e7ac0
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/editors/o/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles, makeWrapper, pkg-config
+, tcsh
+, withGui ? stdenv.isLinux, vte # vte is broken on darwin
+}:
+
+buildGoModule rec {
+ pname = "o";
+ version = "2.55.1";
+
+ src = fetchFromGitHub {
+ owner = "xyproto";
+ repo = "o";
+ rev = "v${version}";
+ hash = "sha256-owueLd6kR/bDFxKI9QOUgriH63XRsEEpIFfp5aRTSbI=";
+ };
+
+ postPatch = ''
+ substituteInPlace ko/main.cpp --replace '/bin/csh' '${tcsh}/bin/tcsh'
+ '';
+
+ vendorSha256 = null;
+
+ nativeBuildInputs = [ installShellFiles makeWrapper pkg-config ];
+
+ buildInputs = lib.optional withGui vte;
+
+ preBuild = "cd v2";
+
+ postInstall = ''
+ cd ..
+ installManPage o.1
+ '' + lib.optionalString withGui ''
+ make install-gui PREFIX=$out
+ wrapProgram $out/bin/ko --prefix PATH : $out/bin
+ '';
+
+ meta = with lib; {
+ description = "Config-free text editor and IDE limited to VT100";
+ homepage = "https://github.com/xyproto/o";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ sikmir ];
+ };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/editors/pixelorama/default.nix b/third_party/nixpkgs/pkgs/applications/editors/pixelorama/default.nix
index 9846d10491..4c95a93a14 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/pixelorama/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/pixelorama/default.nix
@@ -9,13 +9,13 @@ let
else throw "unsupported platform";
in stdenv.mkDerivation rec {
pname = "pixelorama";
- version = "0.10.1";
+ version = "0.10.2";
src = fetchFromGitHub {
owner = "Orama-Interactive";
repo = "Pixelorama";
rev = "v${version}";
- sha256 = "sha256-+Sfhv66skHawe6jzfzQyFxejN5TvTdmWunzl0/7yy4M=";
+ sha256 = "sha256-IqOBZGo0M8JfREpCv14AvRub6yVTpKfAd5JCNqCVolQ=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/editors/setzer/default.nix b/third_party/nixpkgs/pkgs/applications/editors/setzer/default.nix
index 10fb4e0a97..193d7a0416 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/setzer/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/setzer/default.nix
@@ -18,13 +18,13 @@
python3.pkgs.buildPythonApplication rec {
pname = "setzer";
- version = "0.4.7";
+ version = "0.4.8";
src = fetchFromGitHub {
owner = "cvfosammmm";
repo = "Setzer";
rev = "v${version}";
- hash = "sha256-IP56jOiiIK9EW4D5yEdLc49rUzcvegAX3Yyk2ERK/pE=";
+ hash = "sha256-7NPyvAof0xObYZws3KFAbdue/GpIRthzdX00jc9GhYs=";
};
format = "other";
@@ -37,10 +37,10 @@ python3.pkgs.buildPythonApplication rec {
appstream-glib
wrapGAppsHook
desktop-file-utils
+ gobject-introspection
];
buildInputs = [
- gobject-introspection
gtksourceview4
gspell
poppler_gi
diff --git a/third_party/nixpkgs/pkgs/applications/editors/sigil/default.nix b/third_party/nixpkgs/pkgs/applications/editors/sigil/default.nix
index b93fbd6110..7525b41508 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/sigil/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/sigil/default.nix
@@ -6,13 +6,13 @@
mkDerivation rec {
pname = "sigil";
- version = "1.9.2";
+ version = "1.9.10";
src = fetchFromGitHub {
repo = "Sigil";
owner = "Sigil-Ebook";
rev = version;
- sha256 = "sha256-LfP3qUzoHuYSpkTz1queVGTWOP9v9kbgbgvvtiMK6Eo=";
+ sha256 = "sha256-FWUrhTTV1TCoBhitopQc469I7SRy4UDKdRLifVKhCCg=";
};
pythonPath = with python3Packages; [ lxml ];
diff --git a/third_party/nixpkgs/pkgs/applications/editors/texstudio/default.nix b/third_party/nixpkgs/pkgs/applications/editors/texstudio/default.nix
index 89896b9dd8..7f34fc6e07 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/texstudio/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/texstudio/default.nix
@@ -3,13 +3,13 @@
mkDerivation rec {
pname = "texstudio";
- version = "4.2.3";
+ version = "4.3.0";
src = fetchFromGitHub {
owner = "${pname}-org";
repo = pname;
rev = version;
- sha256 = "19z9dx8258qbjyzgskkg0xdn88mvx191y1sz4nk15yxsdyf2z3p8";
+ hash = "sha256-nw6LG8U4ne5nngmE7F4yFE8mTEvaRSMfwwOxg2TnAdA=";
};
nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];
diff --git a/third_party/nixpkgs/pkgs/applications/editors/vim/common.nix b/third_party/nixpkgs/pkgs/applications/editors/vim/common.nix
index 70993d2ccb..b8d4c0a916 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/vim/common.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }:
rec {
- version = "9.0.0115";
+ version = "9.0.0135";
src = fetchFromGitHub {
owner = "vim";
repo = "vim";
rev = "v${version}";
- sha256 = "sha256-McotjgjN+ze1jdaAxkdJGTqIIIuOlHENriHdMrYSf5w=";
+ sha256 = "sha256-xAIfGNJIPO9XoSbAQTRa36Tjln3y+oWQk0lADCnL25g=";
};
enableParallelBuilding = true;
diff --git a/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/aliases.nix b/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/aliases.nix
index 955590cafe..d7db61d428 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/aliases.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/aliases.nix
@@ -130,6 +130,7 @@ mapAliases (with prev; {
unite = unite-vim;
UltiSnips = ultisnips;
vim-addon-vim2nix = vim2nix;
+ vim-sourcetrail = throw "vim-sourcetrail has been removed: abandoned by upstream"; # Added 2022-08-14
vimproc = vimproc-vim;
vimshell = vimshell-vim;
vinegar = vim-vinegar;
diff --git a/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/deprecated.json b/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/deprecated.json
index bdfc403d06..091de4dede 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/deprecated.json
+++ b/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/deprecated.json
@@ -1,6 +1,6 @@
{
"TrueZen-nvim": {
- "date": "2022-07-27",
+ "date": "2022-08-20",
"new": "true-zen-nvim"
},
"compe-tmux": {
diff --git a/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/generated.nix b/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/generated.nix
index 38f9e8c105..bcc8d5de3e 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/generated.nix
@@ -53,12 +53,12 @@ final: prev:
Coqtail = buildVimPluginFrom2Nix {
pname = "Coqtail";
- version = "2022-07-12";
+ version = "2022-08-07";
src = fetchFromGitHub {
owner = "whonore";
repo = "Coqtail";
- rev = "adb5905c617c06d56a72be4dc012c400aba591ec";
- sha256 = "0j48r4048f3rxgjmjghiv91f0xy729m7d790vafdg72ml5zabwa9";
+ rev = "7401364dac202bc67ce8ccc11ec374de384d2d6a";
+ sha256 = "1wqmamz0y8p0sgk529kw59m4fvaifzmvm7s24jg5a17jh3qiq3n2";
};
meta.homepage = "https://github.com/whonore/Coqtail/";
};
@@ -281,12 +281,12 @@ final: prev:
SchemaStore-nvim = buildVimPluginFrom2Nix {
pname = "SchemaStore.nvim";
- version = "2022-07-26";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "b0o";
repo = "SchemaStore.nvim";
- rev = "ff0d80ed00726a9b20596d165511bd902867457f";
- sha256 = "0v246d21fw5r6wl10674w6p980l7z16427yq0v2rq1lnlk48y49w";
+ rev = "539a2d39f1c675132412c55135950b829bfee886";
+ sha256 = "1spxk4011fq1jby17kk2rbyiq7p0is3lp81bpsxkqk5c92ii4d5g";
};
meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
};
@@ -341,12 +341,12 @@ final: prev:
SpaceVim = buildVimPluginFrom2Nix {
pname = "SpaceVim";
- version = "2022-07-25";
+ version = "2022-07-28";
src = fetchFromGitHub {
owner = "SpaceVim";
repo = "SpaceVim";
- rev = "ba187ae41fc33fbd57efb29e1eae69e6dc761e70";
- sha256 = "15xfdxv2zs0ap1y1fgxz3pmbvjwzhjpxn5s0sgkp328kbihl5832";
+ rev = "9fa6fad9ed2ff3c56b35c1d82d5fcdf79721e3ef";
+ sha256 = "13wvm3xnpq0yi5piksjrni1xd72dl2w0d9wnp8b5mxcy1sisbn10";
};
meta.homepage = "https://github.com/SpaceVim/SpaceVim/";
};
@@ -365,24 +365,24 @@ final: prev:
SudoEdit-vim = buildVimPluginFrom2Nix {
pname = "SudoEdit.vim";
- version = "2020-02-27";
+ version = "2022-08-15";
src = fetchFromGitHub {
owner = "chrisbra";
repo = "SudoEdit.vim";
- rev = "e203eada5b563e9134ce2aae26b09edae0904fd7";
- sha256 = "0pf9iix50pw3p430ky51rv11ra1hppdpwa5flzcd5kciybr76n0n";
+ rev = "bcf23412e9f307036ae3dbd7968930c1fd48f02b";
+ sha256 = "1zrf32d4v5751vivwl976sjy901vjrl1m5b2vzzmp7aic76rji7y";
};
meta.homepage = "https://github.com/chrisbra/SudoEdit.vim/";
};
TrueZen-nvim = buildVimPluginFrom2Nix {
pname = "TrueZen.nvim";
- version = "2022-07-01";
+ version = "2022-08-07";
src = fetchFromGitHub {
owner = "Pocco81";
repo = "true-zen.nvim";
- rev = "fd0af396aa06c4aaa7c021cffca3a64a66a4b11f";
- sha256 = "1q88knxcasjn17yx93lmhlynvrmybg2gxy7933ii49r36nqk0hqi";
+ rev = "98740c76254c65576ec294551028b65081053588";
+ sha256 = "1g7wwb081yliqzpzmgjgvv9fn9qcry9k4xbgv0zcgz7z1lbhmyj1";
};
meta.homepage = "https://github.com/Pocco81/true-zen.nvim/";
};
@@ -449,12 +449,12 @@ final: prev:
YouCompleteMe = buildVimPluginFrom2Nix {
pname = "YouCompleteMe";
- version = "2022-07-06";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "ycm-core";
repo = "YouCompleteMe";
- rev = "d35df6136146b12f3a78f8b8fbdaf55f4e2ee462";
- sha256 = "0s7g7xraxy2ypr1rx1rpn003c42ci3f5vi29c9k5y60f8qqia8kk";
+ rev = "535ff847abc4f2fb2a1570bfb9b6505a141286a2";
+ sha256 = "0ns5jz8nk8vxd1a18g0m2hf5iyhaqiyf2cxilyrlrhkfscjfj6ky";
fetchSubmodules = true;
};
meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -498,12 +498,12 @@ final: prev:
aerial-nvim = buildVimPluginFrom2Nix {
pname = "aerial.nvim";
- version = "2022-07-25";
+ version = "2022-08-10";
src = fetchFromGitHub {
owner = "stevearc";
repo = "aerial.nvim";
- rev = "86b8341bb8c58ece7e7f3f9b2d0310f4a328ab21";
- sha256 = "1bigmmdr16ypd6khvs3m0lv5agjw06bw3wc5s3zp4rvj91vdz56k";
+ rev = "f40bb382b1b2fc6a83fd452cc67bf6ecfba094e3";
+ sha256 = "1gnaisvqankjhgazp4jwphb4953va1gfxxm8jbs02a269mya9lln";
};
meta.homepage = "https://github.com/stevearc/aerial.nvim/";
};
@@ -546,12 +546,12 @@ final: prev:
ale = buildVimPluginFrom2Nix {
pname = "ale";
- version = "2022-07-26";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "dense-analysis";
repo = "ale";
- rev = "e10fcf22dcc0441da3c984e26ae2e467b0ae554f";
- sha256 = "1lzkx2ayyk1ja17i0dli7632rrg687fqvg2dqin0j9hnz93fx9ql";
+ rev = "992476982ab97bfa7298f5da1ec0d38026f5960a";
+ sha256 = "0rcxsa87dk004mfdx6m5gm3i5p8rdm4fv5wz2qwjy3yimza41kz6";
};
meta.homepage = "https://github.com/dense-analysis/ale/";
};
@@ -582,12 +582,12 @@ final: prev:
aniseed = buildVimPluginFrom2Nix {
pname = "aniseed";
- version = "2022-05-14";
+ version = "2022-07-23";
src = fetchFromGitHub {
owner = "Olical";
repo = "aniseed";
- rev = "bfaefa11c9e6b36b17a7fe11f8f005198411c3e5";
- sha256 = "0fddy9c2bzzbmvc7kqci0cdavnrj5a3vk8gnsciylzp2z2c4hcr9";
+ rev = "411d81776d996f3d6afee07469ebe58248fe9e36";
+ sha256 = "0a1a241c2ldkrxyil8d3x67v6f3vqqjnihh6qx8mswg6qdyv60jl";
};
meta.homepage = "https://github.com/Olical/aniseed/";
};
@@ -690,12 +690,12 @@ final: prev:
asynctasks-vim = buildVimPluginFrom2Nix {
pname = "asynctasks.vim";
- version = "2022-05-01";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "skywind3000";
repo = "asynctasks.vim";
- rev = "9cdb34314d5066b40627c83829b9d04943c9c66d";
- sha256 = "1cjlnwgqyy95xq9nkzx7mp2iqwwd47yyp6y0mng8hrnhn4ixdfkw";
+ rev = "2fcc169529109b5e54589c9e8540e7b6095e8550";
+ sha256 = "0mzzyciq50dp90y4bib42qjrk3zhxnxv2lzsi5pll1n79lcp46jg";
};
meta.homepage = "https://github.com/skywind3000/asynctasks.vim/";
};
@@ -714,12 +714,12 @@ final: prev:
aurora = buildVimPluginFrom2Nix {
pname = "aurora";
- version = "2022-07-25";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "ray-x";
repo = "aurora";
- rev = "bc13049ee772cc19f94c69e7f9c198861336a692";
- sha256 = "05qz9jnhwcswwayvkpghqsffvpkpczj8dknh7gx9dpjh8zvjh8vv";
+ rev = "d6f95bcd8bb9bf18628eaf805a5beef0f4a5b79f";
+ sha256 = "1lv58w08dsjnzvx4nnw9dfw5dv2611l1n0h5c3nhsa9h1l4kchv4";
};
meta.homepage = "https://github.com/ray-x/aurora/";
};
@@ -750,12 +750,12 @@ final: prev:
auto-session = buildVimPluginFrom2Nix {
pname = "auto-session";
- version = "2022-07-14";
+ version = "2022-08-10";
src = fetchFromGitHub {
owner = "rmagatti";
repo = "auto-session";
- rev = "50f5f2eaa7ff825c7036dc3c9981ebae7584b48e";
- sha256 = "1h89cw34dnk3xgvpd12ic9bpll62sa3qpif4sfhb8rjcdxi9b1sl";
+ rev = "9c302e01ebb474f9b19998488060d9f110ef75c5";
+ sha256 = "0m9jjbrqvlhgzp8gcif678f6315jy1qrs86sc712q3ban9zs2ykw";
};
meta.homepage = "https://github.com/rmagatti/auto-session/";
};
@@ -798,12 +798,12 @@ final: prev:
barbar-nvim = buildVimPluginFrom2Nix {
pname = "barbar.nvim";
- version = "2022-07-24";
+ version = "2022-08-10";
src = fetchFromGitHub {
owner = "romgrk";
repo = "barbar.nvim";
- rev = "4a19df133df71b51e82302db06b31570d7dedd58";
- sha256 = "1jjp3rpqvn4ngv91pp3d2v2dlg894412p97z4i88g1ifixdadhiv";
+ rev = "8c6a2e6e472ff9b7dc0a53d9a3bd88f1fbc7da6d";
+ sha256 = "1nc45lp9lszxqjknrhqhjmyialfv6nqb60087snx212wm9igy661";
};
meta.homepage = "https://github.com/romgrk/barbar.nvim/";
};
@@ -930,36 +930,36 @@ final: prev:
bufferline-nvim = buildVimPluginFrom2Nix {
pname = "bufferline.nvim";
- version = "2022-07-24";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "akinsho";
repo = "bufferline.nvim";
- rev = "c4dd9b4de03b891f648b098c25e4dc1bc48a13e5";
- sha256 = "0i9xpsg49m4m16m22iixhsfajnbcyw383iql1r9s5r8cwmzax0kq";
+ rev = "06eb4ad9486bd13440ffea243ea83d314f4a8e7e";
+ sha256 = "1chrq34v657jbdbkg5l2vyisxb5h2mvxrx9hwvvwgiqlzyvksivp";
};
meta.homepage = "https://github.com/akinsho/bufferline.nvim/";
};
bullets-vim = buildVimPluginFrom2Nix {
pname = "bullets.vim";
- version = "2022-01-30";
+ version = "2022-08-13";
src = fetchFromGitHub {
owner = "dkarter";
repo = "bullets.vim";
- rev = "f3b4ae71f60b5723077a77cfe9e8776a3ca553ac";
- sha256 = "1dfgxdmvzjqjc1viqx2nmzzrjr2n7c6931d3iypv96p2zywld99s";
+ rev = "5b38374ead59c84ecc1013d3267af14b624f4469";
+ sha256 = "1zk06c72lqyppm3y8iipb9q0lap56qmbsdrqp7s9spvpf5bcj1hz";
};
meta.homepage = "https://github.com/dkarter/bullets.vim/";
};
calendar-vim = buildVimPluginFrom2Nix {
pname = "calendar.vim";
- version = "2022-07-24";
+ version = "2022-08-10";
src = fetchFromGitHub {
owner = "itchyny";
repo = "calendar.vim";
- rev = "2cd2e55ca86e891a359b82a40ffc6f6ba799cbc4";
- sha256 = "16d4wcx3zb536jpf617xi9a4yhhk9c3ljrrqi9a7nk34j211b13d";
+ rev = "fe13024cc3575d83f158339562f0e2d97fb44375";
+ sha256 = "05yd27j35vicfj3kab2kbndzknmnn4ar100sibrvnag88m3ld5h5";
};
meta.homepage = "https://github.com/itchyny/calendar.vim/";
};
@@ -1098,12 +1098,12 @@ final: prev:
cmp-buffer = buildVimPluginFrom2Nix {
pname = "cmp-buffer";
- version = "2022-06-15";
+ version = "2022-08-10";
src = fetchFromGitHub {
owner = "hrsh7th";
repo = "cmp-buffer";
- rev = "62fc67a2b0205136bc3e312664624ba2ab4a9323";
- sha256 = "0wcys2z1yw6raxr9x5nm19ac04q8gfri4pw9mfsh18smv4rnl8zs";
+ rev = "3022dbc9166796b644a841a02de8dd1cc1d311fa";
+ sha256 = "1cwx8ky74633y0bmqmvq1lqzmphadnhzmhzkddl3hpb7rgn18vkl";
};
meta.homepage = "https://github.com/hrsh7th/cmp-buffer/";
};
@@ -1134,12 +1134,12 @@ final: prev:
cmp-cmdline = buildVimPluginFrom2Nix {
pname = "cmp-cmdline";
- version = "2022-05-02";
+ version = "2022-08-05";
src = fetchFromGitHub {
owner = "hrsh7th";
repo = "cmp-cmdline";
- rev = "c36ca4bc1dedb12b4ba6546b96c43896fd6e7252";
- sha256 = "04h6np207781l3wa36l6nqd56lx39s1kycf4jvclgfrr6ddnbv68";
+ rev = "9c0e331fe78cab7ede1c051c065ee2fc3cf9432e";
+ sha256 = "0aadafmcbf23pw6swwfmbj4hcp4gawshz2ddhzagxflw398c0n9x";
};
meta.homepage = "https://github.com/hrsh7th/cmp-cmdline/";
};
@@ -1278,12 +1278,12 @@ final: prev:
cmp-git = buildVimPluginFrom2Nix {
pname = "cmp-git";
- version = "2022-05-11";
+ version = "2022-08-08";
src = fetchFromGitHub {
owner = "petertriho";
repo = "cmp-git";
- rev = "60e3de62b925ea05c7aa37883408859c72d498fb";
- sha256 = "0qbfby0b7ix1x5ak130ja2h1ngq0p20jb9msr29bijfy68afpdw1";
+ rev = "fae6cdb407ad6c63a0b1928670bad1a67a55b887";
+ sha256 = "1iz6jkwk6fpn8vpqn8nvxrn35bbx6q2ssgycsrpny5293dkyiwgx";
};
meta.homepage = "https://github.com/petertriho/cmp-git/";
};
@@ -1374,12 +1374,12 @@ final: prev:
cmp-nvim-lsp-signature-help = buildVimPluginFrom2Nix {
pname = "cmp-nvim-lsp-signature-help";
- version = "2022-07-20";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "hrsh7th";
repo = "cmp-nvim-lsp-signature-help";
- rev = "57c4db7d3a663bd31ef60c4b5ed32683301247e9";
- sha256 = "0lygd43zfhss9kirlhfc3rq95m0hdkk3cxc85nlfr2xx36plrarc";
+ rev = "3dd40097196bdffe5f868d5dddcc0aa146ae41eb";
+ sha256 = "0kfa0pw5yx961inirqwi0fjvgdbmsgw16703mw2w9km8313x17zw";
};
meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp-signature-help/";
};
@@ -1398,12 +1398,12 @@ final: prev:
cmp-nvim-tags = buildVimPluginFrom2Nix {
pname = "cmp-nvim-tags";
- version = "2022-03-31";
+ version = "2022-07-28";
src = fetchFromGitHub {
owner = "quangnguyen30192";
repo = "cmp-nvim-tags";
- rev = "98b15fee0cd64760345be3a30f1a592b5a9abb20";
- sha256 = "19fgzaxapazrl07q0ikximgm8k77vasz5fras3xnbax7r3bln127";
+ rev = "85904963ae63e64601e1e63b8c6d46726db360ee";
+ sha256 = "1xzfasxmir0j1i3k3kk8l2f36wl7d33pb0ixl8j873378rk6vlfa";
};
meta.homepage = "https://github.com/quangnguyen30192/cmp-nvim-tags/";
};
@@ -1506,24 +1506,24 @@ final: prev:
cmp-tabnine = buildVimPluginFrom2Nix {
pname = "cmp-tabnine";
- version = "2022-07-17";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "tzachar";
repo = "cmp-tabnine";
- rev = "bfc45c962a4e8da957e9972d4f4ddeda92580db0";
- sha256 = "08lzssdalgr322wkah0gsspkf57spwlv1nz4yxnnlfpg1f51amik";
+ rev = "cdfa2b1609e1e05e9cc56ffda1438b6dbe9fa791";
+ sha256 = "0y0pr8vq53hixwax5jdgwqamzxpdvr96lzjzmpv1jlkd7ghynj35";
};
meta.homepage = "https://github.com/tzachar/cmp-tabnine/";
};
cmp-tmux = buildVimPluginFrom2Nix {
pname = "cmp-tmux";
- version = "2022-01-09";
+ version = "2022-08-02";
src = fetchFromGitHub {
owner = "andersevenrud";
repo = "cmp-tmux";
- rev = "3c16f7e73abee43b3ea3e919e8b34c24427d9530";
- sha256 = "1zc543zf3j09wlyka2srqp6zb0xf88m5jd2j0axmxb7rhl9sjhr4";
+ rev = "e32f2f1417c9ff307ad348a134788eabd76c6112";
+ sha256 = "1fq9jiyf19mxlq13cg9775wmmrpm6jphhl0hrf7jb1aikvdi1b6y";
};
meta.homepage = "https://github.com/andersevenrud/cmp-tmux/";
};
@@ -1650,12 +1650,12 @@ final: prev:
coc-lua = buildVimPluginFrom2Nix {
pname = "coc-lua";
- version = "2022-07-27";
+ version = "2022-08-13";
src = fetchFromGitHub {
owner = "josa42";
repo = "coc-lua";
- rev = "e6fe722e82282e5f12e44f2dbe33b3b937603f68";
- sha256 = "1bmvzkmgl6wlqwd2h23y4gjxychm9zz1dig5p4w7hgx24ivm5izx";
+ rev = "183214d6c56f45a5d74a4d8b6387404e9634f113";
+ sha256 = "0970yda1ilqfwz38yg2r40h1rbjnda67sjlbn131566dybpdl648";
};
meta.homepage = "https://github.com/josa42/coc-lua/";
};
@@ -1710,12 +1710,12 @@ final: prev:
coc-nvim = buildVimPluginFrom2Nix {
pname = "coc.nvim";
- version = "2022-06-14";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "neoclide";
repo = "coc.nvim";
- rev = "87e5dd692ec8ed7be25b15449fd0ab15a48bfb30";
- sha256 = "17a7vg7yb1qxzz4a4b0bwqrh3mv1y31233xd1wihw81a0jzc5jkf";
+ rev = "a2f7d232d7d5e05c3aecd47074c49bce625b5a0c";
+ sha256 = "1v11gs75sv2r4czixqn9nmv8wirziyasyynglyrxslywhjw4bscy";
};
meta.homepage = "https://github.com/neoclide/coc.nvim/";
};
@@ -1734,12 +1734,12 @@ final: prev:
codi-vim = buildVimPluginFrom2Nix {
pname = "codi.vim";
- version = "2022-05-25";
+ version = "2022-08-16";
src = fetchFromGitHub {
owner = "metakirby5";
repo = "codi.vim";
- rev = "c120785c950f9991d32d3d4d2f3696fa8a8b5582";
- sha256 = "0fq01fh717fkq1qlr4ykn7b97l8775c8ja6q3gqs368nf6l94a4i";
+ rev = "28983696f59f47221380b4f7d78237dc04f9c62f";
+ sha256 = "11di3w5gvw6a0npjj6y4n7ajra0xzv20nmz7rvq4aw78cvgrxa6a";
};
meta.homepage = "https://github.com/metakirby5/codi.vim/";
};
@@ -1795,12 +1795,12 @@ final: prev:
comment-nvim = buildVimPluginFrom2Nix {
pname = "comment.nvim";
- version = "2022-07-26";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "numtostr";
repo = "comment.nvim";
- rev = "78ab4e9785b6da9b7a539df3bd6f70300dc9482b";
- sha256 = "1dgbhf8l3212rvhs424cdb2qh07k95biazyc0qy5xa7asrdwj1m7";
+ rev = "350bf0cb47bfb2a48ddca79475888bc333c74a37";
+ sha256 = "0z9jn3rcnsmq91k8w508w7a18ps9g19lcrk0226dypqbscswwgl6";
};
meta.homepage = "https://github.com/numtostr/comment.nvim/";
};
@@ -1819,14 +1819,14 @@ final: prev:
compe-conjure = buildVimPluginFrom2Nix {
pname = "compe-conjure";
- version = "2021-02-02";
+ version = "2020-12-06";
src = fetchFromGitHub {
- owner = "kkharji";
+ owner = "hrsh7th";
repo = "compe-conjure";
- rev = "809853ff8098dffcf8ba5ac89bcf07806eb8f981";
- sha256 = "0p7p4bgkh05zy0gzmq0g9nn9npykh1l17cvfzjyhcb3n1sczpjzf";
+ rev = "8d00e1dcee861a296bab36c06511ae4e083d5a0c";
+ sha256 = "1ral3rmzw96xsvjnlf65mvlnvm05jmy90abrgay6ilng20bfxjiz";
};
- meta.homepage = "https://github.com/kkharji/compe-conjure/";
+ meta.homepage = "https://github.com/hrsh7th/compe-conjure/";
};
compe-latex-symbols = buildVimPluginFrom2Nix {
@@ -1939,12 +1939,12 @@ final: prev:
conjure = buildVimPluginFrom2Nix {
pname = "conjure";
- version = "2022-07-23";
+ version = "2022-08-07";
src = fetchFromGitHub {
owner = "Olical";
repo = "conjure";
- rev = "572c9717d82de38f5bc60c2942843ce9b941aed6";
- sha256 = "0yh1i2jhifdvdpb2zih0fg6v0xp5imy5byx3laijbqvycl2aa8za";
+ rev = "08236a13164a948fe403f34fe1f593ead0a3c6fe";
+ sha256 = "13iqzsj4x5fyzd40119jcng5vlz35y3ylrndiqwl62qj4pk4xqjb";
};
meta.homepage = "https://github.com/Olical/conjure/";
};
@@ -1963,36 +1963,36 @@ final: prev:
copilot-vim = buildVimPluginFrom2Nix {
pname = "copilot.vim";
- version = "2022-06-17";
+ version = "2022-08-15";
src = fetchFromGitHub {
owner = "github";
repo = "copilot.vim";
- rev = "c2e75a3a7519c126c6fdb35984976df9ae13f564";
- sha256 = "0m65y0pvc7sdj2xc3r97nb5md1i0iqcyri6h83hvs88skrmwnpap";
+ rev = "554460008f18cbffecb9f1e5de58fec8410dc16f";
+ sha256 = "19chh2085dfq69dv9faxc7sawwxmz00i9h80d095zj8nc35rqk4j";
};
meta.homepage = "https://github.com/github/copilot.vim/";
};
coq-artifacts = buildVimPluginFrom2Nix {
pname = "coq.artifacts";
- version = "2022-07-27";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "ms-jpq";
repo = "coq.artifacts";
- rev = "e39572495d27ebbcd6ccaf580da193a900c5fad9";
- sha256 = "0ss009wd68973s7p2905bs2nczcp6k6vj7nsi9kdmh0zg7nw92pm";
+ rev = "fa7eb726e42611ec43696d7faaa88ac4337ab61d";
+ sha256 = "0dp8bfrmc09pd7cnlhjiz8587d66r2nrdfg4860k61lprk0pg42g";
};
meta.homepage = "https://github.com/ms-jpq/coq.artifacts/";
};
coq-thirdparty = buildVimPluginFrom2Nix {
pname = "coq.thirdparty";
- version = "2022-07-27";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "ms-jpq";
repo = "coq.thirdparty";
- rev = "3c43d8b07b3ebd1db825ff2cd7f83ee67c78a674";
- sha256 = "0aqwb98mn7x9zhi7n2xi8pkk00bg5mi1ijam8i2var2bv5wpgm28";
+ rev = "5695d4c6cd23e45a953ad2a183cd880941675cbf";
+ sha256 = "1m6xmc7sl6w52rics1qkwhgj6cndvs3jy00i3whklg3yfc32dqv0";
};
meta.homepage = "https://github.com/ms-jpq/coq.thirdparty/";
};
@@ -2011,12 +2011,12 @@ final: prev:
coq_nvim = buildVimPluginFrom2Nix {
pname = "coq_nvim";
- version = "2022-07-27";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "ms-jpq";
repo = "coq_nvim";
- rev = "d913a16b930c6fb83ea62c47d9367ed725debaf3";
- sha256 = "03cwv1mbvvww6p4137z8blap4pbm823yi2qrcg0j4kv39vv432wy";
+ rev = "6cbd89e1270aa84d88843b702aa33e37529fa100";
+ sha256 = "0j16g15x57c3wsfav8rvcailgdj74mmy1rrad9sfi1f6fg0yynhq";
};
meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
};
@@ -2047,12 +2047,12 @@ final: prev:
crates-nvim = buildVimPluginFrom2Nix {
pname = "crates.nvim";
- version = "2022-07-22";
+ version = "2022-08-15";
src = fetchFromGitHub {
owner = "saecki";
repo = "crates.nvim";
- rev = "868f6e2439e0de3bfaed1e2ec13a5bf32a9b4a5b";
- sha256 = "0c8a9jsfmp1pfcnxyw1qldv57fcsyrp6svv5q75y2hcnp08yk1ad";
+ rev = "75ee7231a2d29f80b14c42300ec96235518638db";
+ sha256 = "0v86kxc063h5b3gn8imix0r8xikqx36xw8x36rdbyi8vi73y74ar";
};
meta.homepage = "https://github.com/saecki/crates.nvim/";
};
@@ -2083,12 +2083,12 @@ final: prev:
csv-vim = buildVimPluginFrom2Nix {
pname = "csv.vim";
- version = "2022-07-08";
+ version = "2022-08-04";
src = fetchFromGitHub {
owner = "chrisbra";
repo = "csv.vim";
- rev = "bb02b77deb6337eed8d8cbda0f564dfd537f937d";
- sha256 = "1v041qcg28lm15asvxxhggnvvfn1q39nj3lxw2yhggx2rkfn5hfc";
+ rev = "5a62e08b7191848f2d67fcf7e25c3f672285d64d";
+ sha256 = "08r1nfdkixwnm8vf9r428klp9qd8x67w1qvg2adiyj95y1fb8j2b";
};
meta.homepage = "https://github.com/chrisbra/csv.vim/";
};
@@ -2131,12 +2131,12 @@ final: prev:
ctrlp-vim = buildVimPluginFrom2Nix {
pname = "ctrlp.vim";
- version = "2022-04-14";
+ version = "2022-08-03";
src = fetchFromGitHub {
owner = "ctrlpvim";
repo = "ctrlp.vim";
- rev = "3ce448c9687ae96dea0caf4da388ecd8d9072f72";
- sha256 = "1fgmj63844nydfqcxyxwmn528451dbh1s0y2fi38r10svwvddiil";
+ rev = "8b4a9523632049b3b373de1233bef346073b8982";
+ sha256 = "0g7mymqgncnmc326xysx9rlhja5601b18sn4hbpr7p49sqqspyv4";
};
meta.homepage = "https://github.com/ctrlpvim/ctrlp.vim/";
};
@@ -2155,12 +2155,12 @@ final: prev:
dashboard-nvim = buildVimPluginFrom2Nix {
pname = "dashboard-nvim";
- version = "2022-07-25";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "glepnir";
repo = "dashboard-nvim";
- rev = "6e48e4fd8b03b47d09c686b38e968d5dcd261c8d";
- sha256 = "098iwm2x2xc63pyyvi4v5xkz1n2kvr76alz7r9wj4lp15mmm5w5p";
+ rev = "b7e9f65bb259e52c29770e3c6cca32dd8519c76f";
+ sha256 = "0lmzhw6a86kfnmpli1bw711yjx6v7bi5fxbrvrp352w7c05d3b9v";
};
meta.homepage = "https://github.com/glepnir/dashboard-nvim/";
};
@@ -2373,12 +2373,12 @@ final: prev:
deoplete-lsp = buildVimPluginFrom2Nix {
pname = "deoplete-lsp";
- version = "2022-07-07";
+ version = "2022-08-02";
src = fetchFromGitHub {
owner = "deoplete-plugins";
repo = "deoplete-lsp";
- rev = "0aa0b577ffbb872bebd6ab00f498fb6fe34a2391";
- sha256 = "13a3q2j4baxn509cvn7ssx4c7k1vg4fr5bz4p81nk5ca12hbbw8i";
+ rev = "44178ee1dd02baa0958677cd8ec4c6e431ec7d67";
+ sha256 = "0bwdz4f8rwqh15wf8vfildchg2ny24c0p6zm8y069mz0m1n9c3l6";
};
meta.homepage = "https://github.com/deoplete-plugins/deoplete-lsp/";
};
@@ -2469,12 +2469,12 @@ final: prev:
deoplete-nvim = buildVimPluginFrom2Nix {
pname = "deoplete.nvim";
- version = "2022-05-17";
+ version = "2022-08-15";
src = fetchFromGitHub {
owner = "Shougo";
repo = "deoplete.nvim";
- rev = "33ed4fa0cd704999f9f74b37640bf6d7334bac37";
- sha256 = "1gabd83gy3skx3q3prk6drn3dzwag5jmzmp43492mihdak0iks3i";
+ rev = "036a265c1983bb872afbeea931d85ffe3ad708ad";
+ sha256 = "0n3j4yscw9x8pgrk58hcxa5iw03iih00f0abm4xaai2raf716ylk";
};
meta.homepage = "https://github.com/Shougo/deoplete.nvim/";
};
@@ -2529,12 +2529,12 @@ final: prev:
diffview-nvim = buildVimPluginFrom2Nix {
pname = "diffview.nvim";
- version = "2022-07-20";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "sindrets";
repo = "diffview.nvim";
- rev = "a45163cb9ee65742cf26b940c2b24cc652f295c9";
- sha256 = "0vp6id3lqhvn9db5hd2bml5xfsmcy65hn19wbl82pscl6vqx80n4";
+ rev = "c244577dd425072275eff925e87739820ac5e0aa";
+ sha256 = "0wh2ccsizkjb92pb5b00qf6rm1vx6a08p5bd7j0f8j1x6wlrpciw";
};
meta.homepage = "https://github.com/sindrets/diffview.nvim/";
};
@@ -2553,24 +2553,24 @@ final: prev:
doki-theme-vim = buildVimPluginFrom2Nix {
pname = "doki-theme-vim";
- version = "2022-07-21";
+ version = "2022-08-06";
src = fetchFromGitHub {
owner = "doki-theme";
repo = "doki-theme-vim";
- rev = "6101e530676eddb7cedf75c731b29f98d6e41c4e";
- sha256 = "0973x7fqjz0xccqkwf7wyvh8dd5kbqxbbrch2ldl4dmsrfkafjdb";
+ rev = "6008ae292f0d8b21505f56402cbe7906e4c9c7d6";
+ sha256 = "02hclsqqj78pa12yf1xj0m19nnkkcwfz3v866d78jk4sniwh2sqw";
};
meta.homepage = "https://github.com/doki-theme/doki-theme-vim/";
};
dressing-nvim = buildVimPluginFrom2Nix {
pname = "dressing.nvim";
- version = "2022-07-21";
+ version = "2022-07-31";
src = fetchFromGitHub {
owner = "stevearc";
repo = "dressing.nvim";
- rev = "e9d0de44707fe5ce06be6f6959d33a3fab985a3c";
- sha256 = "0a10cr3ay429k6pj2i124qigr6pyp5qnkq0lx6q34m8cqjf5gdkr";
+ rev = "d886a1bb0b43a81af58e0331fedbe8b02ac414fa";
+ sha256 = "1cd11p19hi6jcmirahnmz8cp6962wm9rpjjypvffihj1j8wgl23p";
};
meta.homepage = "https://github.com/stevearc/dressing.nvim/";
};
@@ -2589,12 +2589,12 @@ final: prev:
edge = buildVimPluginFrom2Nix {
pname = "edge";
- version = "2022-07-26";
+ version = "2022-08-16";
src = fetchFromGitHub {
owner = "sainnhe";
repo = "edge";
- rev = "33dbe6b7ac23f8666d36ad27db7f82ff58cb2408";
- sha256 = "15glvybxj1i8abbhkqc3x7q0jbs9f08k7s5b34p1zwk96vwashk7";
+ rev = "b2df9d53ebd796f6304966d4bd0740d41b160538";
+ sha256 = "0bag2l66fgh4hk8la4dbipprdgicmyxxjakfb49m7fal54a9qjqj";
};
meta.homepage = "https://github.com/sainnhe/edge/";
};
@@ -2614,12 +2614,12 @@ final: prev:
editorconfig-nvim = buildVimPluginFrom2Nix {
pname = "editorconfig.nvim";
- version = "2022-07-18";
+ version = "2022-08-07";
src = fetchFromGitHub {
owner = "gpanders";
repo = "editorconfig.nvim";
- rev = "764577498694a1035c7d592149458c5799db69d4";
- sha256 = "0rsqpyyj0hwpsr036wml9ks0mk80r8jmr57bdb62b4zqacim4iry";
+ rev = "73786507073250cf6e32272a630f16a57687c7d8";
+ sha256 = "1vp254hy8pg5xg4fsszizrsb84bilx8haznpcwipjp5zhqjdbmj8";
};
meta.homepage = "https://github.com/gpanders/editorconfig.nvim/";
};
@@ -2675,24 +2675,24 @@ final: prev:
everforest = buildVimPluginFrom2Nix {
pname = "everforest";
- version = "2022-07-16";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "sainnhe";
repo = "everforest";
- rev = "9a8b4f85a7f1bb0e3019911f2c425b994cedb18f";
- sha256 = "103ncn51p1b0g6xynlh5ss36dxhxg9d0amzdc47l83i41q562cxc";
+ rev = "b89036098577d6b1b31806e67697038f78c1769d";
+ sha256 = "01xvpp8k92d7dm3wsq7w43grx6fv7ava95wb7z9fsa1axlpy6adb";
};
meta.homepage = "https://github.com/sainnhe/everforest/";
};
falcon = buildVimPluginFrom2Nix {
pname = "falcon";
- version = "2021-12-19";
+ version = "2022-07-28";
src = fetchFromGitHub {
owner = "fenetikm";
repo = "falcon";
- rev = "01cc57decb4086644b07ba100f22fed770c91428";
- sha256 = "0qaj37z4npd3azj912330qq84srmgwacgs1ywyhzcpmfp96smkxk";
+ rev = "ab7876c3318f4f43d8c5f22ba61077d61b77db56";
+ sha256 = "16f6alb6y0ynq1qaz2c17nwznqcgip0jkhkm3b2j05b18p3kp81k";
};
meta.homepage = "https://github.com/fenetikm/falcon/";
};
@@ -2735,12 +2735,12 @@ final: prev:
feline-nvim = buildVimPluginFrom2Nix {
pname = "feline.nvim";
- version = "2022-07-11";
+ version = "2022-08-08";
src = fetchFromGitHub {
owner = "feline-nvim";
repo = "feline.nvim";
- rev = "2962c8c4a67f41ef35c58aa367ff2afb7a9691d3";
- sha256 = "1ypm1yjcsxiy99329wswcfq68rrqh6nvc0w4w70cv7bbswx2ib1m";
+ rev = "b7391bbfcb9cf6acf28e8015d9e41a9c9b6c91f5";
+ sha256 = "0cjwp7c99xhdc0s40k7s5j1yn47yzib07zzhlj6wp3jmm5lnhjj5";
};
meta.homepage = "https://github.com/feline-nvim/feline.nvim/";
};
@@ -2759,12 +2759,12 @@ final: prev:
fern-vim = buildVimPluginFrom2Nix {
pname = "fern.vim";
- version = "2022-07-23";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "lambdalisue";
repo = "fern.vim";
- rev = "23dc0773849919cbfcc12f310dd2187e0267c5ed";
- sha256 = "1k00ns58z8nfsvw1dxn8ah4rqvnr7jy1b8wvs26j30r705x9qf2r";
+ rev = "3afc6aa1e4f591c8706f92759f364c4573d863d7";
+ sha256 = "1khwqng9sdmrzlbvf9dpdpd9xqa7a1bwm5byndqrzh7h6cfvg4v0";
};
meta.homepage = "https://github.com/lambdalisue/fern.vim/";
};
@@ -2856,24 +2856,24 @@ final: prev:
flutter-tools-nvim = buildVimPluginFrom2Nix {
pname = "flutter-tools.nvim";
- version = "2022-07-26";
+ version = "2022-08-16";
src = fetchFromGitHub {
owner = "akinsho";
repo = "flutter-tools.nvim";
- rev = "789c41dddd602ae3d4d9e91f7c2f2461dc505e93";
- sha256 = "03g34brqyrcmq59984c9i0kx0fi6ivf9rhp3g047ylkcrazvf5kr";
+ rev = "78551498310e25055ec26d0f8dec2b5297043676";
+ sha256 = "0lihim61vp59ffdk86gwqpb41n79grjhbs71s9m51b6pnljnda29";
};
meta.homepage = "https://github.com/akinsho/flutter-tools.nvim/";
};
formatter-nvim = buildVimPluginFrom2Nix {
pname = "formatter.nvim";
- version = "2022-06-29";
+ version = "2022-08-06";
src = fetchFromGitHub {
owner = "mhartington";
repo = "formatter.nvim";
- rev = "27ea7a8cf689e0b5dd742bada416c00f64450360";
- sha256 = "1dw240wxrqm8i3mijb5bynsy2gfr360x8jwf8nyra7sr4gdd2pcj";
+ rev = "6e5fbf459ebb522b84cd3ae5f6c76fe3f58039d2";
+ sha256 = "0hwfk3jax9cp53ccyfa8xy9ax609hv3cywqnxk4msjwn1722vrcg";
};
meta.homepage = "https://github.com/mhartington/formatter.nvim/";
};
@@ -2892,12 +2892,12 @@ final: prev:
friendly-snippets = buildVimPluginFrom2Nix {
pname = "friendly-snippets";
- version = "2022-07-24";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "rafamadriz";
repo = "friendly-snippets";
- rev = "5632135df892a742e5c3bbf97f0f634e273254d4";
- sha256 = "1j1q6zmbq9xgsmnyg9x8wg6dkasmbd629aw4p6cg0lij1fngc65s";
+ rev = "6227548c97d7bd7d2f5f0897814c16649fcce368";
+ sha256 = "1rywcw65fk81didm7dxgpmssvik2s2na4smp5dssazr9qb99ryip";
};
meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
};
@@ -3000,24 +3000,24 @@ final: prev:
fzf-lua = buildVimPluginFrom2Nix {
pname = "fzf-lua";
- version = "2022-07-19";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "ibhagwan";
repo = "fzf-lua";
- rev = "8dade5e9989eb4b99f3551384e090afa9da8b633";
- sha256 = "13bg8b68k44wc5f8g9ixva4jpql801mfldjgs12k8ljzkbpy89gs";
+ rev = "d4ec9eea65454590506dba8ace92c11ff751c367";
+ sha256 = "0vib3kdk3kb50jfwiccza6zsah11cvv8gpw1428cy425qi4kn6ll";
};
meta.homepage = "https://github.com/ibhagwan/fzf-lua/";
};
fzf-vim = buildVimPluginFrom2Nix {
pname = "fzf.vim";
- version = "2022-06-28";
+ version = "2022-08-09";
src = fetchFromGitHub {
owner = "junegunn";
repo = "fzf.vim";
- rev = "c311c0a95fc2529c26ab36a8f530e9dd4426304c";
- sha256 = "12mxrvvvq6dkka0dp1kipmf6dncl0mx4169amkwxk62a18a894q2";
+ rev = "c491d702b76c6b4918abb80be3cfb57d1b618ffa";
+ sha256 = "04sw236gjzaj3rmzmmlk6z1mb533lq81ymmm5dnjxygiiskl9x6j";
};
meta.homepage = "https://github.com/junegunn/fzf.vim/";
};
@@ -3096,12 +3096,12 @@ final: prev:
git-blame-nvim = buildVimPluginFrom2Nix {
pname = "git-blame.nvim";
- version = "2022-06-15";
+ version = "2022-08-02";
src = fetchFromGitHub {
owner = "f-person";
repo = "git-blame.nvim";
- rev = "1bb73289929107309d2d90f7582ece5e9436bfd8";
- sha256 = "02ybfv5pm7m8mbciccz0j9k21bjhf6kjpp527y6m4r2mdc4q808r";
+ rev = "65292dfcd80897a5f24962096b8df2bb5bb65e15";
+ sha256 = "0z7lxwsa4zrhl23vz61jj8gl8sqn7sqj2jjw8nipywvrqq2p8h5i";
};
meta.homepage = "https://github.com/f-person/git-blame.nvim/";
};
@@ -3156,12 +3156,12 @@ final: prev:
gitsigns-nvim = buildNeovimPluginFrom2Nix {
pname = "gitsigns.nvim";
- version = "2022-07-25";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "lewis6991";
repo = "gitsigns.nvim";
- rev = "8b817e76b6399634f3f49e682d6e409844241858";
- sha256 = "1dpxnk6b7rlj13y15sfsc05k3mzcp1b3dmvpj03af0imp9lq70c3";
+ rev = "79c55eb553bb68840539651b083937f1010ba4db";
+ sha256 = "0q3vjm2g436lxas5rxrqpp4l5djlramxdd7qzg35lma572w1axgy";
};
meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
};
@@ -3240,12 +3240,12 @@ final: prev:
goyo-vim = buildVimPluginFrom2Nix {
pname = "goyo.vim";
- version = "2021-11-18";
+ version = "2022-08-03";
src = fetchFromGitHub {
owner = "junegunn";
repo = "goyo.vim";
- rev = "a9c7283dce60ffcdec952384f6451ff42f8914f2";
- sha256 = "0ikp0hal6hqvkbzmd2vsp27rkhl9n5iv2nkzlsc3ahwihy6p6xn8";
+ rev = "d0bb582dd478011cfdba18ac3b2d52a7f1659aeb";
+ sha256 = "1gb34x4djv34z3s1v6c1kcngwzfyx9vslhjx5vm73lbxyxs2nkjl";
};
meta.homepage = "https://github.com/junegunn/goyo.vim/";
};
@@ -3300,24 +3300,24 @@ final: prev:
gruvbox-material = buildVimPluginFrom2Nix {
pname = "gruvbox-material";
- version = "2022-07-16";
+ version = "2022-08-16";
src = fetchFromGitHub {
owner = "sainnhe";
repo = "gruvbox-material";
- rev = "d60d97144193502e1ba19aa6a5f90284ed418f95";
- sha256 = "14nv148cl68papwq5sp5f5hjfi6hcq8k4jvijyd9z5l15r56f9ga";
+ rev = "5ffcbe2d00e2200ff50533d96e97f2da06ecd39e";
+ sha256 = "0nddblbxxsdagaal42z3rsayvx68g9963166l1m0660v7rfn3a91";
};
meta.homepage = "https://github.com/sainnhe/gruvbox-material/";
};
gruvbox-nvim = buildVimPluginFrom2Nix {
pname = "gruvbox.nvim";
- version = "2022-07-15";
+ version = "2022-08-02";
src = fetchFromGitHub {
owner = "ellisonleao";
repo = "gruvbox.nvim";
- rev = "29c50f1327d9d84436e484aac362d2fa6bca590b";
- sha256 = "114az2y9xgsds7qn2jgz5amsvafbvbmf376rjppjb1n6789k4gbz";
+ rev = "a78dbbe5bcf8d01292b26d06f569f06835f70b0a";
+ sha256 = "047svnk0bimlwncy2iyfmkydcx3n00cxc7ksyqskl9yskinrlmnp";
};
meta.homepage = "https://github.com/ellisonleao/gruvbox.nvim/";
};
@@ -3348,23 +3348,23 @@ final: prev:
hare-vim = buildVimPluginFrom2Nix {
pname = "hare.vim";
- version = "2022-07-02";
+ version = "2022-08-15";
src = fetchgit {
url = "https://git.sr.ht/~sircmpwn/hare.vim";
- rev = "5c758cdbbabd6e4ba92bced9428cd1fa4212f003";
- sha256 = "0l1q9x1n30h32zfnd2krg3frywydfmb8ic05619pylamnyh4w918";
+ rev = "3be6efa5ef6e43683d6b72a209a90cd090b3ab64";
+ sha256 = "181207ccgbj7layf860yfzbx23q65r7azqxhshwb7yi2k4ma7zy8";
};
meta.homepage = "https://git.sr.ht/~sircmpwn/hare.vim";
};
harpoon = buildVimPluginFrom2Nix {
pname = "harpoon";
- version = "2022-05-08";
+ version = "2022-08-10";
src = fetchFromGitHub {
owner = "ThePrimeagen";
repo = "harpoon";
- rev = "d3d3d22b6207f46f8ca64946f4d781e975aec0fc";
- sha256 = "0vc14gg4ll4ghmvyqvzij9pkvm30sml61nhs7pbpw3qq5mfizb7z";
+ rev = "f4aff5bf9b512f5a85fe20eb1dcf4a87e512d971";
+ sha256 = "0jfc9d4dkx331567aic36mbqv3p2rq5nds35n33qg4f4mwqy8n6b";
};
meta.homepage = "https://github.com/ThePrimeagen/harpoon/";
};
@@ -3419,12 +3419,12 @@ final: prev:
hologram-nvim = buildVimPluginFrom2Nix {
pname = "hologram.nvim";
- version = "2022-07-11";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "edluffy";
repo = "hologram.nvim";
- rev = "53906ca0d742c2d3ef00e79a0956e5d60710c959";
- sha256 = "1hkj6xdhmwmkx9gvh9p3sqvf9zwdjqzzmnn35ida5bj9s5v48s4q";
+ rev = "842c0b0b1e6f25165078eb83d76d4f3ee0f04340";
+ sha256 = "129f03pr7rjycws0ak68b1qf4i5il6gamikwjwgrpwmmnjl5dbvf";
};
meta.homepage = "https://github.com/edluffy/hologram.nvim/";
};
@@ -3443,12 +3443,12 @@ final: prev:
hop-nvim = buildVimPluginFrom2Nix {
pname = "hop.nvim";
- version = "2022-07-22";
+ version = "2022-07-31";
src = fetchFromGitHub {
owner = "phaazon";
repo = "hop.nvim";
- rev = "ced6c94204c6cd55c583e6bce6397fd1c91eb214";
- sha256 = "0zf61ny76cnrs21w3iwra2gqq5fdn0hfw3dvw5d37pxc4pp95dyv";
+ rev = "2a1b686aad85a3c241f8cd8fd42eb09c7de5ed79";
+ sha256 = "1f8p8cxi74kgqs20knx7yq1bd7m30va1dqpsy5dqdzsazr50fymc";
};
meta.homepage = "https://github.com/phaazon/hop.nvim/";
};
@@ -3479,12 +3479,12 @@ final: prev:
iceberg-vim = buildVimPluginFrom2Nix {
pname = "iceberg.vim";
- version = "2022-04-26";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "cocopon";
repo = "iceberg.vim";
- rev = "5ac9da61e8626d1218498a35e515f36387efe454";
- sha256 = "12vqa244zsg8gxc7rar5sfjcajrhprxpxazjmpmi4db25wvbmpsq";
+ rev = "61efc9c61dec54076c093af0cff304e30b0c3a07";
+ sha256 = "1aiarshkw8cs3kjfdj3v30294i7dj1x7pmv9j83wnssj7i4y6kp5";
};
meta.homepage = "https://github.com/cocopon/iceberg.vim/";
};
@@ -3515,12 +3515,12 @@ final: prev:
impatient-nvim = buildVimPluginFrom2Nix {
pname = "impatient.nvim";
- version = "2022-07-07";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "lewis6991";
repo = "impatient.nvim";
- rev = "2aa872de40dbbebe8e2d3a0b8c5651b81fe8b235";
- sha256 = "0v15pbxhrz1ndb12pl6pwfynsfzlaqqam5kn9gpc7y9kfdb7yby3";
+ rev = "b842e16ecc1a700f62adb9802f8355b99b52a5a6";
+ sha256 = "1q4ym3n98l3njs8qhiabvxc576xr7a5riykfcw6mh6vjkgs26jyd";
};
meta.homepage = "https://github.com/lewis6991/impatient.nvim/";
};
@@ -3744,12 +3744,12 @@ final: prev:
kanagawa-nvim = buildVimPluginFrom2Nix {
pname = "kanagawa.nvim";
- version = "2022-07-15";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "rebelot";
repo = "kanagawa.nvim";
- rev = "a423ff33e9f9182cf6ee346ae19df2583ab37f55";
- sha256 = "1h42x991dgxk7y4vp2gbqqfq6sgvasx9nfjrcsbly2d76mhz8f0f";
+ rev = "6ee96842cbfe3b7ebf7a1c3fa9602c2a3f5fdf38";
+ sha256 = "18j6v7apbp13zz1kziisj0rwvn1ysvrrsvmvc91w4a4vxzja9q3p";
};
meta.homepage = "https://github.com/rebelot/kanagawa.nvim/";
};
@@ -3828,12 +3828,12 @@ final: prev:
lean-nvim = buildVimPluginFrom2Nix {
pname = "lean.nvim";
- version = "2022-07-21";
+ version = "2022-08-15";
src = fetchFromGitHub {
owner = "Julian";
repo = "lean.nvim";
- rev = "60ac136bf74ddf39fb19a1b0cfd261dfced11b1d";
- sha256 = "03cpyqgzalbvx10w1d23fq8sddd7sagbnipnhbab4fh9223wnfgm";
+ rev = "be320485b450166054d65317662b48171e63f71e";
+ sha256 = "1i4dflin65b0pw8f8gw02p0pcsh9mhy4rb7hargf43pyw34aysxl";
};
meta.homepage = "https://github.com/Julian/lean.nvim/";
};
@@ -3850,6 +3850,18 @@ final: prev:
meta.homepage = "https://github.com/leanprover/lean.vim/";
};
+ legendary-nvim = buildVimPluginFrom2Nix {
+ pname = "legendary.nvim";
+ version = "2022-07-26";
+ src = fetchFromGitHub {
+ owner = "mrjones2014";
+ repo = "legendary.nvim";
+ rev = "b0bcc7681ba884d1222faa8f2a56a438a02fc7c7";
+ sha256 = "1w1d5z47l72wmj5wi44yvmbicdczw4ym85msq333hhilh2866fw0";
+ };
+ meta.homepage = "https://github.com/mrjones2014/legendary.nvim/";
+ };
+
lens-vim = buildVimPluginFrom2Nix {
pname = "lens.vim";
version = "2021-05-30";
@@ -3876,12 +3888,12 @@ final: prev:
lexima-vim = buildVimPluginFrom2Nix {
pname = "lexima.vim";
- version = "2022-07-20";
+ version = "2022-08-05";
src = fetchFromGitHub {
owner = "cohama";
repo = "lexima.vim";
- rev = "6723e86c4168b6c1ca6ec463900fd9b370798e99";
- sha256 = "0mlv9k5nkrbk0dij7ng1xn0rqzhqkh7gg9bvknfxkkf01jlmafgn";
+ rev = "75cc50a13f3c8c8dcfcdff871bc1a89b2c323dc1";
+ sha256 = "1bwvacf9z6dynjcz3ss7pjn5c4k0f54vmvspmp9278mra7hnfqga";
};
meta.homepage = "https://github.com/cohama/lexima.vim/";
};
@@ -3936,12 +3948,12 @@ final: prev:
lightline-bufferline = buildVimPluginFrom2Nix {
pname = "lightline-bufferline";
- version = "2022-06-24";
+ version = "2022-08-16";
src = fetchFromGitHub {
owner = "mengelbrecht";
repo = "lightline-bufferline";
- rev = "3a8a4efba81f6c65b94510e93160e0e4061bf03d";
- sha256 = "0h6g99092cnkcnvx65gzppf68p9x0gxy6rp4gf077ci9xc010kyl";
+ rev = "f838276ce0a29518b8c7fdecf6d6e61c53eb73ef";
+ sha256 = "0d346kbdyziawzhdxszwlvmii4s1cbcxphihrwwjrnma37xz2byg";
};
meta.homepage = "https://github.com/mengelbrecht/lightline-bufferline/";
};
@@ -3984,24 +3996,24 @@ final: prev:
lightspeed-nvim = buildVimPluginFrom2Nix {
pname = "lightspeed.nvim";
- version = "2022-07-04";
+ version = "2022-08-16";
src = fetchFromGitHub {
owner = "ggandor";
repo = "lightspeed.nvim";
- rev = "a4b4277d143270c6a7d85ef2e1574a1bbeab6677";
- sha256 = "02lsll8ajmg9dapk57g48b7xgsp4lsh0010l2vakzw0066pav0d2";
+ rev = "a5b79ddbd755ac8d21a8704c370b5f643dda94aa";
+ sha256 = "0r4d6vvj412sj0hadxckirgfa68zkqxxij1609f5nmv9kvm6w190";
};
meta.homepage = "https://github.com/ggandor/lightspeed.nvim/";
};
limelight-vim = buildVimPluginFrom2Nix {
pname = "limelight.vim";
- version = "2021-11-18";
+ version = "2022-08-03";
src = fetchFromGitHub {
owner = "junegunn";
repo = "limelight.vim";
- rev = "eebac6c4fce06d3b849cccd213b7233d37ab037f";
- sha256 = "0nhiwmklkn4p8njw6l891yk5bnya1hyx4zg0a8d4yb2j734bmr2g";
+ rev = "86aaec1700b27618d33d6182f44691d84d2cb6e5";
+ sha256 = "1a07gsrzbwsdbwm56rmh7k83kxp16awclgf51i0a15zpgwl2kv01";
};
meta.homepage = "https://github.com/junegunn/limelight.vim/";
};
@@ -4020,12 +4032,12 @@ final: prev:
lir-nvim = buildVimPluginFrom2Nix {
pname = "lir.nvim";
- version = "2022-05-17";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "tamago324";
repo = "lir.nvim";
- rev = "41b57761d118ab919d265ad2983a696ca1081562";
- sha256 = "0rxdqbndzw0qkhy04w00mmb1wv1r2i13rq0msvz10rc3060lisvp";
+ rev = "aecaa3fed11c4e19d869bb1e31f6ea4ef845578c";
+ sha256 = "1cqp18v4l7r9w1bfdnxgsrlc80n71rxppx6zd2ac6gvvl5x6ig4g";
};
meta.homepage = "https://github.com/tamago324/lir.nvim/";
};
@@ -4044,48 +4056,48 @@ final: prev:
litee-calltree-nvim = buildVimPluginFrom2Nix {
pname = "litee-calltree.nvim";
- version = "2022-07-11";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "ldelossa";
repo = "litee-calltree.nvim";
- rev = "77799885c1929cc4a9d982670afcc6d6bc0506b1";
- sha256 = "1030rb93dfx3683vdkzjx26hnh5yvfam1cjdc9m5aksj4h81lvrc";
+ rev = "25aa3be6a029519b68fa69d39d9ef104d8129455";
+ sha256 = "113q4adwph8s4sjgarisdh0kxs7qgksqaywh0npsa1rdbhmgy9wx";
};
meta.homepage = "https://github.com/ldelossa/litee-calltree.nvim/";
};
litee-filetree-nvim = buildVimPluginFrom2Nix {
pname = "litee-filetree.nvim";
- version = "2022-07-13";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "ldelossa";
repo = "litee-filetree.nvim";
- rev = "fe0f41da067c7ea5816a3c96d83efa3ba95106df";
- sha256 = "15h1pnhhddgffmrym7nmacf50nk00hlh4d08kcic6aphnnifll2q";
+ rev = "ffab70e4b783a87519f23ca82ace501904226c3d";
+ sha256 = "05p2jfs093p96gwvn67qcmlcf7z6anxhyw6lk4y7h12hpz2b62cg";
};
meta.homepage = "https://github.com/ldelossa/litee-filetree.nvim/";
};
litee-symboltree-nvim = buildVimPluginFrom2Nix {
pname = "litee-symboltree.nvim";
- version = "2022-07-11";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "ldelossa";
repo = "litee-symboltree.nvim";
- rev = "426d4db8a66ef4741b16d7fff006402bd5de43a6";
- sha256 = "1i9zzag0izzm9gmnp6qrvg9j1q7cz0vp8jp9d6sy11hbigrfgjjl";
+ rev = "d1d2da3484bb71da7d43aa08daf9baabb1bd3a66";
+ sha256 = "01snjcr4zrib1834x666ncyjx6g208q8mdl81m99wbl1dpf6mc3a";
};
meta.homepage = "https://github.com/ldelossa/litee-symboltree.nvim/";
};
litee-nvim = buildVimPluginFrom2Nix {
pname = "litee.nvim";
- version = "2022-07-22";
+ version = "2022-07-30";
src = fetchFromGitHub {
owner = "ldelossa";
repo = "litee.nvim";
- rev = "4d366989f73ac080a782629ea5b5ae609b59940a";
- sha256 = "1kp9fr2ab2nlrw4nkg79qixd9ir19kgrsgpxdi3kl5k29d0vx6py";
+ rev = "d346001fe1754da8f6ca9ce1059ba80c183643fe";
+ sha256 = "023hz8al9y7dszfz4cvhl2pdzsbx4qpjjrkqxcqafj8q7w7knhq3";
};
meta.homepage = "https://github.com/ldelossa/litee.nvim/";
};
@@ -4102,6 +4114,18 @@ final: prev:
meta.homepage = "https://github.com/folke/lsp-colors.nvim/";
};
+ lsp-format-nvim = buildVimPluginFrom2Nix {
+ pname = "lsp-format.nvim";
+ version = "2022-05-21";
+ src = fetchFromGitHub {
+ owner = "lukas-reineke";
+ repo = "lsp-format.nvim";
+ rev = "a5a54eeb36d7001b4a6f0874dde6afd167319ac9";
+ sha256 = "0lj40p9ykj5f0d3sl4g0g0gjbfwx1vm6y5q613zphimpjgs3wl64";
+ };
+ meta.homepage = "https://github.com/lukas-reineke/lsp-format.nvim/";
+ };
+
lsp-rooter-nvim = buildVimPluginFrom2Nix {
pname = "lsp-rooter.nvim";
version = "2021-08-13";
@@ -4116,12 +4140,12 @@ final: prev:
lsp-status-nvim = buildVimPluginFrom2Nix {
pname = "lsp-status.nvim";
- version = "2021-12-08";
+ version = "2022-08-03";
src = fetchFromGitHub {
owner = "nvim-lua";
repo = "lsp-status.nvim";
- rev = "4073f766f1303fb602802075e558fe43e382cc92";
- sha256 = "1aicy5n57ihpy1fkrv3bpxdcmwbdldl6pnxisndfk2h0l2vc1bp4";
+ rev = "54f48eb5017632d81d0fd40112065f1d062d0629";
+ sha256 = "1cncfsn5vgq8ni2irw1pvq1cpgwryz9xmgciwmgwcbzjf1bdwql2";
};
meta.homepage = "https://github.com/nvim-lua/lsp-status.nvim/";
};
@@ -4140,23 +4164,23 @@ final: prev:
lsp_lines-nvim = buildVimPluginFrom2Nix {
pname = "lsp_lines.nvim";
- version = "2022-07-26";
+ version = "2022-08-03";
src = fetchgit {
url = "https://git.sr.ht/~whynothugo/lsp_lines.nvim";
- rev = "db67e94c813aae166c3d2f119ea7d2e85164922a";
- sha256 = "0xz30jwccpl0xrigfl503garpjhdfikasnmcd98r1n4jmg5rl1w8";
+ rev = "dbfd8e96ec2696e1ceedcd23fd70e842256e3dea";
+ sha256 = "1cch7sc3728z07rhfnc9fjpnq39dj3laxkvsv4iqfr5vl9c2pqvk";
};
meta.homepage = "https://git.sr.ht/~whynothugo/lsp_lines.nvim";
};
lsp_signature-nvim = buildVimPluginFrom2Nix {
pname = "lsp_signature.nvim";
- version = "2022-07-26";
+ version = "2022-08-15";
src = fetchFromGitHub {
owner = "ray-x";
repo = "lsp_signature.nvim";
- rev = "aea1e060d465fcb565bc1178e4189fc79524ba61";
- sha256 = "19dg7k59i088xhyc2kizjgiy87r6v1i2hlj0wyflnzmpaxy4lll1";
+ rev = "e65a63858771db3f086c8d904ff5f80705fd962b";
+ sha256 = "17qxn2ldvh1gas3i55vigqsz4mm7sxfl721v7lix9xs9bqgm73n1";
};
meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/";
};
@@ -4187,12 +4211,12 @@ final: prev:
lspsaga-nvim = buildVimPluginFrom2Nix {
pname = "lspsaga.nvim";
- version = "2022-07-05";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "kkharji";
repo = "lspsaga.nvim";
- rev = "ea39528f8eab7af4bcd8b0f88abfad86e3ea2995";
- sha256 = "0l5hqmk8dp2rjr1hdppvjr376dv216rp05jkk8fx3p7cyzj19wjk";
+ rev = "9ec569a49aa7ff265764081acff9e5da839c13fe";
+ sha256 = "1h4r63na7n18pnfbl0n3x7pkfm1pd01zz2h0py6pxd1az6il9dng";
};
meta.homepage = "https://github.com/kkharji/lspsaga.nvim/";
};
@@ -4223,24 +4247,24 @@ final: prev:
lualine-nvim = buildVimPluginFrom2Nix {
pname = "lualine.nvim";
- version = "2022-07-23";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "nvim-lualine";
repo = "lualine.nvim";
- rev = "5f68f070e4f7158517afc55f125a6f5ed1f7db47";
- sha256 = "0p900s02gsy03fbfmy7zs3c3qrq4214jkfbswq0ss3gi5biyzij0";
+ rev = "9076378ac1c53684c4fbfcf34b1277018c15c233";
+ sha256 = "0cj6lslgmcgc0z5xwq6ms9xb04la70b71hw56pk9bh26pd0il813";
};
meta.homepage = "https://github.com/nvim-lualine/lualine.nvim/";
};
luasnip = buildVimPluginFrom2Nix {
pname = "luasnip";
- version = "2022-07-26";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "l3mon4d3";
repo = "luasnip";
- rev = "281a89e374eb04663e18e786db5f215092a56595";
- sha256 = "1xkysyqqwdhympljg44hgi5fbfgz042qx91vpf85j99wqhaiz4i4";
+ rev = "faa525713e1244551877a4d89646a10f3c3fa31e";
+ sha256 = "0ynd51j4wl9q49m9cm6lic87rbq4xcsfn1w8xw40ahm8wg813ahj";
};
meta.homepage = "https://github.com/l3mon4d3/luasnip/";
};
@@ -4259,12 +4283,12 @@ final: prev:
lush-nvim = buildVimPluginFrom2Nix {
pname = "lush.nvim";
- version = "2022-07-13";
+ version = "2022-08-09";
src = fetchFromGitHub {
owner = "rktjmp";
repo = "lush.nvim";
- rev = "3df0790319b0985d04e2f09fe879b6c2b15692f2";
- sha256 = "0a042blv5zrimfvrsmsn6lls5qss2imgkg73h2vi14z2z4jyk266";
+ rev = "6b9f399245de7bea8dac2c3bf91096ffdedfcbb7";
+ sha256 = "0rb77rwmbm438bmbjfk5hwrrcn5sihsa1413bdpc27rw3rrn8v8z";
};
meta.homepage = "https://github.com/rktjmp/lush.nvim/";
};
@@ -4295,12 +4319,12 @@ final: prev:
marks-nvim = buildVimPluginFrom2Nix {
pname = "marks.nvim";
- version = "2022-06-18";
+ version = "2022-07-31";
src = fetchFromGitHub {
owner = "chentoast";
repo = "marks.nvim";
- rev = "bb257578fef656812d87375f950f4e4018a39ae4";
- sha256 = "069frp4j53211rkw3yjhx8dr2sqlpmb9frwnb8dijd981c7difk8";
+ rev = "b27cbb78e9082229590b396d3ae4fe07f1aeafe0";
+ sha256 = "02bhaal3lq0bly1rx2v8n14nibjnj2lsr0r2gx9xf740dchy1mjx";
};
meta.homepage = "https://github.com/chentoast/marks.nvim/";
};
@@ -4319,12 +4343,12 @@ final: prev:
material-nvim = buildVimPluginFrom2Nix {
pname = "material.nvim";
- version = "2022-07-11";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "marko-cerovac";
repo = "material.nvim";
- rev = "94414171611bed8603a35f78f75cd543e591c178";
- sha256 = "1khpg29sn6i2fldabw62wgk1kirp47g4qvr7qh3wmgwfk757zgj8";
+ rev = "901dae9cc3a0afafb6b86fabd2a10235d5865f2f";
+ sha256 = "08ynsrplwa4p9scp4c83wla3rqblk7zyrigbd010nj4jk1gljbnv";
};
meta.homepage = "https://github.com/marko-cerovac/material.nvim/";
};
@@ -4343,12 +4367,12 @@ final: prev:
mini-nvim = buildVimPluginFrom2Nix {
pname = "mini.nvim";
- version = "2022-07-24";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "echasnovski";
repo = "mini.nvim";
- rev = "004a53297d1360b604d725acd86e21865fccbcec";
- sha256 = "0cypyf6w96hpm4lhhgbfdxhf5il1ggqrns6f646lfr399r5vgvyb";
+ rev = "9d5a7d27d292b81f08f5f10d9cab3f558ab687fa";
+ sha256 = "006qz18h64hdhzff9xp6gwwqh4a6m7sz7wrq0gy8g0s5jf989wnd";
};
meta.homepage = "https://github.com/echasnovski/mini.nvim/";
};
@@ -4391,12 +4415,12 @@ final: prev:
mkdx = buildVimPluginFrom2Nix {
pname = "mkdx";
- version = "2022-06-24";
+ version = "2022-08-13";
src = fetchFromGitHub {
owner = "SidOfc";
repo = "mkdx";
- rev = "1717c7a5e90d6485386b5d239d55a7a775ce8dfb";
- sha256 = "1ljh3hp1salkk3qmisykm5yy8dc9349r7aj631z8agqvr2hngiak";
+ rev = "6d7208e3bcf53862d52e82c3a3db61116ce61f4c";
+ sha256 = "1n5axz0xv3wdvy0ic60897cdb16pn1bgsvyl0qcpq5xnlbbw53d4";
};
meta.homepage = "https://github.com/SidOfc/mkdx/";
};
@@ -4415,12 +4439,12 @@ final: prev:
mru = buildVimPluginFrom2Nix {
pname = "mru";
- version = "2022-05-24";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "yegappan";
repo = "mru";
- rev = "8e8220a005d070dbd01caae86e3139d83fc444c4";
- sha256 = "1ysqzx3nwl1ll06rwcl4zq7ff06vzvgyf4bv5m1jm8n6gadywkgi";
+ rev = "9953e039984fb0d9995c3b571ccbbf924ac72477";
+ sha256 = "103na5bp43xrgpfwrn3zz0z3sgk8kp4v4lkq7nycfckxmr7nz8hc";
};
meta.homepage = "https://github.com/yegappan/mru/";
};
@@ -4691,24 +4715,24 @@ final: prev:
neoformat = buildVimPluginFrom2Nix {
pname = "neoformat";
- version = "2022-07-22";
+ version = "2022-08-15";
src = fetchFromGitHub {
owner = "sbdchd";
repo = "neoformat";
- rev = "892be036fa82871f602f20a5245dfd4bc88d2f08";
- sha256 = "17mgv9qr9bn4ajy825yk5zr3cqhdqz113261vckx43sfia4ligbg";
+ rev = "c7f4580019ea5f001a7a38734b03b6cb29743b4f";
+ sha256 = "1x9wcmwzrv4yzz09qflyhzmchcgvpsx35x95llwk2hj1xp3l4s7p";
};
meta.homepage = "https://github.com/sbdchd/neoformat/";
};
neogit = buildVimPluginFrom2Nix {
pname = "neogit";
- version = "2022-07-21";
+ version = "2022-08-12";
src = fetchFromGitHub {
owner = "TimUntersberger";
repo = "neogit";
- rev = "06e986fab0d0c31ba981b9f21c712dc72b3d237f";
- sha256 = "0pc90hvjkxjg9q4qcn3h2j2z4s40h3ly9pi4jfp61cnqcqm67nsw";
+ rev = "05386ff1e9da447d4688525d64f7611c863f05ca";
+ sha256 = "1zarnnv3qh7gq3q5vd1r68vp6h26a1jbfqvg6hjwssb1ilaxzidb";
};
meta.homepage = "https://github.com/TimUntersberger/neogit/";
};
@@ -4751,24 +4775,24 @@ final: prev:
neon = buildVimPluginFrom2Nix {
pname = "neon";
- version = "2021-07-30";
+ version = "2022-08-10";
src = fetchFromGitHub {
owner = "rafamadriz";
repo = "neon";
- rev = "5c6d24504e2177a709ad16ae9e89ab5732327ad8";
- sha256 = "1p7g3204hjj52qnm5vdvh425r4xh0y8bsyfivpnp4zgz44rqd6v3";
+ rev = "c7834a5a8f58ef99200cafcf705d03edda26d220";
+ sha256 = "0ngbwhfnpiz3dg97n1x1aiz2liph77n2x696f4brp9qy6qgh78v8";
};
meta.homepage = "https://github.com/rafamadriz/neon/";
};
neorg = buildVimPluginFrom2Nix {
pname = "neorg";
- version = "2022-07-25";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "nvim-neorg";
repo = "neorg";
- rev = "2c4305eb32b10710a043380069c5538632160260";
- sha256 = "0cbvf0qj31s6pbv0g5nm966v86l1yfan0c7dlyy2lipxhr01x420";
+ rev = "4c0a5b1e49577fba0bd61ea18cf130d9545d2d52";
+ sha256 = "1qw3ns1i0aa03ihycynrx589sqd4pgr17jksnjprh4wz2w3k78dr";
};
meta.homepage = "https://github.com/nvim-neorg/neorg/";
};
@@ -4823,12 +4847,12 @@ final: prev:
neovim-ayu = buildVimPluginFrom2Nix {
pname = "neovim-ayu";
- version = "2022-06-29";
+ version = "2022-07-30";
src = fetchFromGitHub {
owner = "Shatur";
repo = "neovim-ayu";
- rev = "596caf119426b2d88ced6b41904611e025d54045";
- sha256 = "07jkxjjp7nn44574c76r17dj7svp0xj8k69z2m9yq0ihcsdfnjaf";
+ rev = "bd5a30430ca5e24dc2eb210e4549c9d646154684";
+ sha256 = "1si7106jc76wb0vva27xiq9ynysxxxy7jdj27hw2vfx0cwcb5m1d";
};
meta.homepage = "https://github.com/Shatur/neovim-ayu/";
};
@@ -4943,12 +4967,12 @@ final: prev:
nightfox-nvim = buildVimPluginFrom2Nix {
pname = "nightfox.nvim";
- version = "2022-07-26";
+ version = "2022-08-09";
src = fetchFromGitHub {
owner = "EdenEast";
repo = "nightfox.nvim";
- rev = "4899a1680e5b41436dc92a1f6e5f2a5bbc0b9454";
- sha256 = "10fxqnrl21my3qfg26gl1wsyxksgniynp9ji23hvm72a38mn2g9v";
+ rev = "e2f961859cbfb2ba38147dc59fdd2314992c8b62";
+ sha256 = "10m27rm3bcrq38h08p0sxvwxgl0mdjs231rn0bk0mn5myvqq44ja";
};
meta.homepage = "https://github.com/EdenEast/nightfox.nvim/";
};
@@ -5003,24 +5027,24 @@ final: prev:
nord-nvim = buildVimPluginFrom2Nix {
pname = "nord.nvim";
- version = "2022-07-18";
+ version = "2022-08-13";
src = fetchFromGitHub {
owner = "shaunsingh";
repo = "nord.nvim";
- rev = "baf9ab55a8b8a75325ed8a9673e60e4d8fef6092";
- sha256 = "0jyn9r7fq2iknmwj1ca1wl9zbyff80n5haa37jcj4sn5cqkfywg5";
+ rev = "6bfb0f7d6e4faf7cddedd34489efe2d2f586325c";
+ sha256 = "1i6pyi3fh259b57cksw2pf1k3cnw3h1rhhc29a3f371yrgmm1ams";
};
meta.homepage = "https://github.com/shaunsingh/nord.nvim/";
};
nordic-nvim = buildVimPluginFrom2Nix {
pname = "nordic.nvim";
- version = "2022-07-10";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "andersevenrud";
repo = "nordic.nvim";
- rev = "eb096c03853b8cc24457263c9ceed90256566118";
- sha256 = "1fmxxlndm8ab5i71242d8vai6fbcddslgvcnkg19c09028khmsmy";
+ rev = "40c71de9596ad9e7a7c742ba969399790cadd711";
+ sha256 = "1md1ykr1anjxf2fcksk2wjhkqd7nc144l3v6pyc6pb0vs27qakzg";
};
meta.homepage = "https://github.com/andersevenrud/nordic.nvim/";
};
@@ -5039,24 +5063,24 @@ final: prev:
nui-nvim = buildVimPluginFrom2Nix {
pname = "nui.nvim";
- version = "2022-07-26";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "MunifTanjim";
repo = "nui.nvim";
- rev = "26622d147762f2212bf30e0792df1d0164a73cd9";
- sha256 = "1is2pbmiv92h4m22la4phpjxrv9zj6lmwmylsm4067yyqsr21jf9";
+ rev = "cc76e6ff13629b18d3dedfadd4f52e35ff085700";
+ sha256 = "1zgczj68d8nq5p0w0xs4bry0dqzyy855g1w0dfanhlfz1bldkyp6";
};
meta.homepage = "https://github.com/MunifTanjim/nui.nvim/";
};
null-ls-nvim = buildVimPluginFrom2Nix {
pname = "null-ls.nvim";
- version = "2022-07-20";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "jose-elias-alvarez";
repo = "null-ls.nvim";
- rev = "9c396ab880bec1097dc4d124c0961cdfa2aa3848";
- sha256 = "0b4cqsiw57bmpnkak8rc6263sgv8vp1r51rr5b1ljrrhdnwx0adr";
+ rev = "9d1f8dc1c8984e30efd8406aceba53dfadeaadbd";
+ sha256 = "14ix8d2w8s7k4qai8vi7q47g14kxv0ba09r62lhabbqnd4fl9qyx";
};
meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/";
};
@@ -5099,36 +5123,36 @@ final: prev:
nvim-autopairs = buildVimPluginFrom2Nix {
pname = "nvim-autopairs";
- version = "2022-07-06";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "windwp";
repo = "nvim-autopairs";
- rev = "972a7977e759733dd6721af7bcda7a67e40c010e";
- sha256 = "07qzjlbzaa0w1iyd8mmx166ldfrmmicm4mw0ajpdwfvfmlvgnv3b";
+ rev = "0a18e10a0c3fde190437567e40557dcdbbc89ea1";
+ sha256 = "11pxmmbm67ihzjcnclkcpq5jp643s0a3kqvkh5hz2hgnia8gls45";
};
meta.homepage = "https://github.com/windwp/nvim-autopairs/";
};
nvim-base16 = buildVimPluginFrom2Nix {
pname = "nvim-base16";
- version = "2022-07-04";
+ version = "2022-08-13";
src = fetchFromGitHub {
owner = "RRethy";
repo = "nvim-base16";
- rev = "da2a27cbda9b086c201b36778e7cdfd00966627a";
- sha256 = "1a0lnfvjfbplr1n0dz1ymy9sqlnrjx9c4xncykir179b75qw8hs6";
+ rev = "5ca2b50a0c71b631b40dc65430187acb88858b51";
+ sha256 = "1628rfc3hcbzic3nc0a8i4k6lfic7v1yzwpsalxs3kwy1xflv75g";
};
meta.homepage = "https://github.com/RRethy/nvim-base16/";
};
nvim-biscuits = buildVimPluginFrom2Nix {
pname = "nvim-biscuits";
- version = "2022-06-26";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "code-biscuits";
repo = "nvim-biscuits";
- rev = "75f5e457b97ac0ac11cd94f2f861eceae05b19b0";
- sha256 = "0yhiq2ad0jlw1c252fqbxr4ghy6dndyk4gnx30kyqmirsja0dwdv";
+ rev = "5257ea28f377bc6ec0371f9bcbafdd4c6306199a";
+ sha256 = "07b8pfi1n4kfs6gr0ci7adgsd186a5hab9jml6v3piqq152nbn05";
};
meta.homepage = "https://github.com/code-biscuits/nvim-biscuits/";
};
@@ -5171,12 +5195,12 @@ final: prev:
nvim-cmp = buildVimPluginFrom2Nix {
pname = "nvim-cmp";
- version = "2022-07-25";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "hrsh7th";
repo = "nvim-cmp";
- rev = "706371f1300e7c0acb98b346f80dad2dd9b5f679";
- sha256 = "1cwzzdwhsy3fqxwdx0big2qfvqha4m97nml83i1mp31agjk016pk";
+ rev = "828768631bf224a1a63771aefd09c1a072b6fe84";
+ sha256 = "00dg06kl18wx6lanqis7h4ghcb3x96b1vsi2f0g8qidnl2jgg5af";
};
meta.homepage = "https://github.com/hrsh7th/nvim-cmp/";
};
@@ -5207,12 +5231,12 @@ final: prev:
nvim-comment = buildVimPluginFrom2Nix {
pname = "nvim-comment";
- version = "2022-03-15";
+ version = "2022-08-09";
src = fetchFromGitHub {
owner = "terrortylor";
repo = "nvim-comment";
- rev = "861921706a39144ea528a6200a059a549b02d8f0";
- sha256 = "0r1yb20r8p53y5dli81sm5ycgs76vpwdwcggcwadgiv2rq78ax90";
+ rev = "e9ac16ab056695cad6461173693069ec070d2b23";
+ sha256 = "1rsf0il8f3lrlza7f47296dsfqzpgsgn1dzr663saagi6npf2s1v";
};
meta.homepage = "https://github.com/terrortylor/nvim-comment/";
};
@@ -5267,36 +5291,36 @@ final: prev:
nvim-dap = buildVimPluginFrom2Nix {
pname = "nvim-dap";
- version = "2022-07-26";
+ version = "2022-08-15";
src = fetchFromGitHub {
owner = "mfussenegger";
repo = "nvim-dap";
- rev = "b3998a9a1848330ca467c3c88ee96f6b3fc48812";
- sha256 = "10x8ykxxigj2dzkjs1c5dc9za913lfj4rfg4rxjvx3l7xyzq101a";
+ rev = "ad8b0de205a077b66cb301531bdc31c8fc7551b6";
+ sha256 = "1rkmp43h6hq1nrrs8m9gzz9hj80vwgbvsj2wph3xy0m76cz5sidc";
};
meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
};
nvim-dap-ui = buildVimPluginFrom2Nix {
pname = "nvim-dap-ui";
- version = "2022-07-23";
+ version = "2022-08-02";
src = fetchFromGitHub {
owner = "rcarriga";
repo = "nvim-dap-ui";
- rev = "b7b71444128f5aa90e4aee8dbfa36b14afddfb7a";
- sha256 = "1v0jpx6gq3p8n9l3afhrfs9xwszz5mdwfmax5y36dg23ll55lbsv";
+ rev = "225115ae986b39fdaffaf715e571dd43b3ac9670";
+ sha256 = "1ww4hsjbylgi3520rn717pqrpbrwb2p052wpsmdl05104zny2zmj";
};
meta.homepage = "https://github.com/rcarriga/nvim-dap-ui/";
};
nvim-dap-virtual-text = buildVimPluginFrom2Nix {
pname = "nvim-dap-virtual-text";
- version = "2022-07-24";
+ version = "2022-08-05";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "nvim-dap-virtual-text";
- rev = "41bd4b5a698444d30d5827b2d19bcbae4e084ab4";
- sha256 = "057hjk2y335lg73kjx0ljf84y7nbl2ahsfcd0dnw74mw3fby92fw";
+ rev = "2971ce3e89b1711cc26e27f73d3f854b559a77d4";
+ sha256 = "0hq6cmbl681x18s6c093dmwm9r9mzrx8icix304m9nm28d3l6179";
};
meta.homepage = "https://github.com/theHamsta/nvim-dap-virtual-text/";
};
@@ -5399,12 +5423,12 @@ final: prev:
nvim-jdtls = buildVimPluginFrom2Nix {
pname = "nvim-jdtls";
- version = "2022-07-20";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "mfussenegger";
repo = "nvim-jdtls";
- rev = "f35efb60a0ba208ff2de063085d8b5603e536f9e";
- sha256 = "0xx1yrnxad5975cvrrpq08yj3cyapp48f7xjj3gj7z4xxg0lwkzx";
+ rev = "782867324475c451427b7d972f886620da9c5167";
+ sha256 = "1rdmd7x9c13dhbvgrbsqn6rzr76xb2dsk3hg35kl0njx1npfp2vr";
};
meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
};
@@ -5459,12 +5483,12 @@ final: prev:
nvim-lint = buildVimPluginFrom2Nix {
pname = "nvim-lint";
- version = "2022-07-23";
+ version = "2022-08-15";
src = fetchFromGitHub {
owner = "mfussenegger";
repo = "nvim-lint";
- rev = "4d0abb94776f860ed0eef7c2d7aae96a804cbee5";
- sha256 = "0b47zj8j1ag8y5avyb9zklfjivj18ns4h6n3n6a0shgyfmihn4r7";
+ rev = "688255fa5d3d5c3f26f5c9709e785fe71dec39c5";
+ sha256 = "0a5fdmq90nbsv3dk1q6j3kmgcncy2s56xik4skxarkkz541lf7dm";
};
meta.homepage = "https://github.com/mfussenegger/nvim-lint/";
};
@@ -5483,12 +5507,12 @@ final: prev:
nvim-lspconfig = buildVimPluginFrom2Nix {
pname = "nvim-lspconfig";
- version = "2022-07-25";
+ version = "2022-08-09";
src = fetchFromGitHub {
owner = "neovim";
repo = "nvim-lspconfig";
- rev = "ba25b747a3cff70c1532c2f28fcc912cf7b938ea";
- sha256 = "0fnldljq3n7nnmjmwvn8mbfq5m34ca5kq1bgjdjpfsy2w2mhlabc";
+ rev = "da7461b596d70fa47b50bf3a7acfaef94c47727d";
+ sha256 = "1bahbla28qx4vzkdfbncws22qf0pr4kkra0df52sca245xzgl605";
};
meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
};
@@ -5519,12 +5543,12 @@ final: prev:
nvim-metals = buildVimPluginFrom2Nix {
pname = "nvim-metals";
- version = "2022-07-18";
+ version = "2022-08-13";
src = fetchFromGitHub {
owner = "scalameta";
repo = "nvim-metals";
- rev = "e6cd8ff487b0140863e683b2ea4cf7f0c14bc504";
- sha256 = "1mymsa75w9k55qbv38fgm256k5md9bhj400rynvbxvq8lp8907a6";
+ rev = "9629138151e927ab6826de726a73bb366f49d801";
+ sha256 = "0hxsfwp9k9p013spjj4p5gxjg1lf63z2jb43rq4k9s4a2lmjpkxs";
};
meta.homepage = "https://github.com/scalameta/nvim-metals/";
};
@@ -5555,12 +5579,12 @@ final: prev:
nvim-notify = buildVimPluginFrom2Nix {
pname = "nvim-notify";
- version = "2022-07-21";
+ version = "2022-08-02";
src = fetchFromGitHub {
owner = "rcarriga";
repo = "nvim-notify";
- rev = "cd2a59f16d3dc8c54dabc58c31c9c539fcef3c2b";
- sha256 = "14mfvlp44qn3jb4fnicay3cxy0vya5jix41hnvfz1j3bi2c0zng1";
+ rev = "60bb6bfd6992549ee5336bbb761705b62797ce1d";
+ sha256 = "06wyk09y3yykp4njxqxl211v508xw4qm4q987gz609xdd5n8x15d";
};
meta.homepage = "https://github.com/rcarriga/nvim-notify/";
};
@@ -5579,24 +5603,24 @@ final: prev:
nvim-scrollview = buildVimPluginFrom2Nix {
pname = "nvim-scrollview";
- version = "2022-06-08";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "dstein64";
repo = "nvim-scrollview";
- rev = "f8308c3c91b7879c3286554dda484bcf973df6ad";
- sha256 = "1fjabqq1dkf6vjcgags0ny049ckhnljzzxlc81wpd1kmk06nyg3k";
+ rev = "14ce355d357c4b10e7dbf4ecc9c6b3533fa69f9f";
+ sha256 = "021psm85gqkdr1ayiqyj85pyhwsrdbcg0jim8pi7ldz5fhai19rl";
};
meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
};
nvim-snippy = buildVimPluginFrom2Nix {
pname = "nvim-snippy";
- version = "2022-07-19";
+ version = "2022-08-03";
src = fetchFromGitHub {
owner = "dcampos";
repo = "nvim-snippy";
- rev = "dc5474332379c31ac8c74e1e5d1c7a27f0b8177e";
- sha256 = "0w7jyvzj9ybvlhc7jwcinyvpia3cp1d22an89yw9mzlckl2sfwk5";
+ rev = "1860215584d4835d87f75896f07007b3b3c06df4";
+ sha256 = "077nzfb16266w28wlnb70c765y358l9issjldm57dwkwyyaxv6j2";
};
meta.homepage = "https://github.com/dcampos/nvim-snippy/";
};
@@ -5615,12 +5639,12 @@ final: prev:
nvim-spectre = buildVimPluginFrom2Nix {
pname = "nvim-spectre";
- version = "2022-07-15";
+ version = "2022-08-02";
src = fetchFromGitHub {
owner = "nvim-pack";
repo = "nvim-spectre";
- rev = "b1a084c05bf6cf32a3b55196e5cde44bb94422fb";
- sha256 = "1k24y4610kmwdnvmk59qvcck22mavc2kd6bh0vzbczf8q1frzd6w";
+ rev = "c553eb47ad9d82f8452119ceb6eb209c930640ec";
+ sha256 = "0ppzcwv1gywaxi0h81h4rldnbkcjx5lkai3v80x6c199asv0jyc6";
};
meta.homepage = "https://github.com/nvim-pack/nvim-spectre/";
};
@@ -5639,36 +5663,36 @@ final: prev:
nvim-tree-lua = buildVimPluginFrom2Nix {
pname = "nvim-tree.lua";
- version = "2022-07-27";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "kyazdani42";
repo = "nvim-tree.lua";
- rev = "e632ac7c8116ed0ed2e865b4b3e0a17a78de8081";
- sha256 = "18w1z94k2armcks0xjgb6yxngshc7qkv949vx652gd1i4xy4xzw7";
+ rev = "81eb718394e489d2aebbffa730d2517d72ec7f9c";
+ sha256 = "1rcqbjd31k914331cxw21daaylir6q4jjc7i09prbjzwsmz4andr";
};
meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
};
nvim-treesitter = buildVimPluginFrom2Nix {
pname = "nvim-treesitter";
- version = "2022-07-27";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "nvim-treesitter";
repo = "nvim-treesitter";
- rev = "36ee4890c47a9de5789d6561b19ce36da8b766be";
- sha256 = "05n3xpk98anp3zlhcr66j536cdlpndqrdayzr7jrh32y57q8smrk";
+ rev = "67fb8939ff1f7e29659f5c4efe50a5689e3458bc";
+ sha256 = "01zd9l6085d6d9jk8c0kxy15xs48rs4iv9hfxb6f1wjxi1mwnl8q";
};
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
};
nvim-treesitter-context = buildVimPluginFrom2Nix {
pname = "nvim-treesitter-context";
- version = "2022-07-09";
+ version = "2022-08-05";
src = fetchFromGitHub {
owner = "nvim-treesitter";
repo = "nvim-treesitter-context";
- rev = "0d086d23c0742404e9bd52977712619a621c3da9";
- sha256 = "109pdbf0098nnrsg72agqsi13z3kghn4fhvcddk2j15yxdp7zwnw";
+ rev = "8e88b67d0dc386d6ba1b3d09c206f19a50bc0625";
+ sha256 = "1h74h4a69mxyc40nmg4mkaw6gja4hf6mvhrrh3vbh92lfb6k49sc";
};
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-context/";
};
@@ -5699,48 +5723,48 @@ final: prev:
nvim-treesitter-textobjects = buildVimPluginFrom2Nix {
pname = "nvim-treesitter-textobjects";
- version = "2022-07-11";
+ version = "2022-08-16";
src = fetchFromGitHub {
owner = "nvim-treesitter";
repo = "nvim-treesitter-textobjects";
- rev = "40f20e6788e6ce850802cbd2ca029fbb66b5d043";
- sha256 = "0a7p0lvkb8x5cngr7h5vbljckx44lvmbmflwi045p1fcb2b9r250";
+ rev = "4234c446d14370b3cd7604bd8e2e51ae2680f5ee";
+ sha256 = "0ifa4l0l1pl268w4w3mwhbncxi5bd7n3yb0j3vikjhz567kwqfz2";
};
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
};
nvim-ts-autotag = buildVimPluginFrom2Nix {
pname = "nvim-ts-autotag";
- version = "2022-04-22";
+ version = "2022-08-11";
src = fetchFromGitHub {
owner = "windwp";
repo = "nvim-ts-autotag";
- rev = "044a05c4c51051326900a53ba98fddacd15fea22";
- sha256 = "0c94vnhl216p36x19cplhypr1b3z0f7l5jdr19hl79qvdfp9djk2";
+ rev = "fdefe46c6807441460f11f11a167a2baf8e4534b";
+ sha256 = "0cwz18risvkgwr3ppc2vqs6rk94kgra4vmhswn4699fnsmha5lcn";
};
meta.homepage = "https://github.com/windwp/nvim-ts-autotag/";
};
nvim-ts-context-commentstring = buildVimPluginFrom2Nix {
pname = "nvim-ts-context-commentstring";
- version = "2022-04-07";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "joosepalviste";
repo = "nvim-ts-context-commentstring";
- rev = "88343753dbe81c227a1c1fd2c8d764afb8d36269";
- sha256 = "1qfgg9lzva7m3kbrxhhccf766by5n2sf456cdvadypr83sniq6ay";
+ rev = "37a97a04c39f26fffe7745815517e1ce1a0eb3be";
+ sha256 = "0np5p0gg7vqpikvm5vxh03makmqm17mm5537dxfycr23r82zhm06";
};
meta.homepage = "https://github.com/joosepalviste/nvim-ts-context-commentstring/";
};
nvim-ts-rainbow = buildVimPluginFrom2Nix {
pname = "nvim-ts-rainbow";
- version = "2022-07-14";
+ version = "2022-08-10";
src = fetchFromGitHub {
owner = "p00f";
repo = "nvim-ts-rainbow";
- rev = "9dd019e84dc3b470dfdb5b05e3bb26158fef8a0c";
- sha256 = "0gmh1h28vvrzgmaiz3mv41d7dmvs83r4d2ha8409zvs5bv5d19ad";
+ rev = "1e904f6d1b41adb9d3b87df2108dc4a315a72379";
+ sha256 = "1x4mfq63z7fxg7cyv2dmhzy7kxq9xgz16cvfj69gxz0mqxmmg3xz";
};
meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
};
@@ -5807,12 +5831,12 @@ final: prev:
oceanic-material = buildVimPluginFrom2Nix {
pname = "oceanic-material";
- version = "2020-11-02";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "glepnir";
repo = "oceanic-material";
- rev = "900f487a1e8229a12f247a0cb7a533fe258945ae";
- sha256 = "1i6k2p11bsvjrkn9sdkql0im8ys8l9y0l6i850n9hdzvq919cfxv";
+ rev = "9f2d002398d1ef0cd52315fa767b138719536c5d";
+ sha256 = "1c9sbprivdhjyzxni3xzmk3lc56icd61azzvl9bb961iaag6r1c9";
};
meta.homepage = "https://github.com/glepnir/oceanic-material/";
};
@@ -5831,12 +5855,12 @@ final: prev:
octo-nvim = buildVimPluginFrom2Nix {
pname = "octo.nvim";
- version = "2022-06-30";
+ version = "2022-08-16";
src = fetchFromGitHub {
owner = "pwntester";
repo = "octo.nvim";
- rev = "1f6a770a3b2a463cff474df51dc037ae7a6c2920";
- sha256 = "1p2wwfg4q4apfgfrw475b91d7zim8bkiyx7p6j93adk1zz6dpjbh";
+ rev = "ec869fdf14c9ea7f8ef192f2924e9b30c19f6dae";
+ sha256 = "0q6n0g8xyacx3nw1jz1zqgldar9kkc4pj89cfyyjim1nsy83mrvi";
};
meta.homepage = "https://github.com/pwntester/octo.nvim/";
};
@@ -5867,12 +5891,12 @@ final: prev:
onedark-nvim = buildVimPluginFrom2Nix {
pname = "onedark.nvim";
- version = "2022-07-09";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "navarasu";
repo = "onedark.nvim";
- rev = "a5d57015fe164e1a65f317116089956e395132d3";
- sha256 = "0ca5phndl4q5galg0wdirsgp7f8f9ijq7xdvkzdc1icamxgb6sl9";
+ rev = "551f299d9ab2fd557247aa1995b2831a1237e4ae";
+ sha256 = "0pchrlc52jfixy0yya11hv3hmkm818h6siawgy0g4icrh8lan7a7";
};
meta.homepage = "https://github.com/navarasu/onedark.nvim/";
};
@@ -5891,28 +5915,40 @@ final: prev:
onedarkpro-nvim = buildVimPluginFrom2Nix {
pname = "onedarkpro.nvim";
- version = "2022-07-22";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "olimorris";
repo = "onedarkpro.nvim";
- rev = "2c439754e1a60d42197e79461bf04e358213a654";
- sha256 = "1bmifx5dzpypjbpq5pdvzzh68w87q5j06biaqvqrsjygaxm0828c";
+ rev = "38484ce9d062e8a0fb2733c952d30c7cad8a7700";
+ sha256 = "0vix97n5b8j3lkbz7xj9w7dj9ffcsjfms9lgcsfwcmdnch0wg7h5";
};
meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/";
};
onehalf = buildVimPluginFrom2Nix {
pname = "onehalf";
- version = "2021-01-31";
+ version = "2022-08-02";
src = fetchFromGitHub {
owner = "sonph";
repo = "onehalf";
- rev = "141c775ace6b71992305f144a8ab68e9a8ca4a25";
- sha256 = "1p3kxf9abj0xpxwb8hrpy4h0457rvkfkv3zv7czh322vhma4hhd8";
+ rev = "75eb2e97acd74660779fed8380989ee7891eec56";
+ sha256 = "0d0gww4383cay0r3nhbg1i175694hbrsz8wk351h1nc3s471p60p";
};
meta.homepage = "https://github.com/sonph/onehalf/";
};
+ onenord-nvim = buildVimPluginFrom2Nix {
+ pname = "onenord.nvim";
+ version = "2022-07-15";
+ src = fetchFromGitHub {
+ owner = "rmehri01";
+ repo = "onenord.nvim";
+ rev = "c2021ba34aecd8027437dadd27edf9fc949c9aa8";
+ sha256 = "1ps8pmib1xc9cxw6vs4hgns39680qnfhq783gabgz9gnk8v10j5y";
+ };
+ meta.homepage = "https://github.com/rmehri01/onenord.nvim/";
+ };
+
open-browser-github-vim = buildVimPluginFrom2Nix {
pname = "open-browser-github.vim";
version = "2021-03-21";
@@ -5939,36 +5975,36 @@ final: prev:
orgmode = buildVimPluginFrom2Nix {
pname = "orgmode";
- version = "2022-07-09";
+ version = "2022-08-16";
src = fetchFromGitHub {
owner = "nvim-orgmode";
repo = "orgmode";
- rev = "8cc6fa4599aeae171d3051570a10c94269acf05f";
- sha256 = "1vnhma09fyll353f85744fa98pzkcdzgy0s51h0wpwa254s75175";
+ rev = "57cf939fda156191a3e02891763c61e6c384529f";
+ sha256 = "1bds2lliawwyji6l11dqk10n1vijlrhshlci0qx1382ghhd2jnax";
};
meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
};
package-info-nvim = buildVimPluginFrom2Nix {
pname = "package-info.nvim";
- version = "2022-06-17";
+ version = "2022-08-04";
src = fetchFromGitHub {
owner = "vuki656";
repo = "package-info.nvim";
- rev = "45e409c69063a057250833a747e52e2ff00dd722";
- sha256 = "048rzckb35d4s96kmk6yhbv756yhhcv6kl7nc3y96w18qjjh5ymy";
+ rev = "57b1665e160d5f1ecc720134591fed20a9de6b10";
+ sha256 = "1sh3dw8h5nl9mw8qdgr7wm8ajfca8q1srf01dr7c33xh6ywk1gs0";
};
meta.homepage = "https://github.com/vuki656/package-info.nvim/";
};
packer-nvim = buildVimPluginFrom2Nix {
pname = "packer.nvim";
- version = "2022-07-26";
+ version = "2022-08-15";
src = fetchFromGitHub {
owner = "wbthomason";
repo = "packer.nvim";
- rev = "de109156cfa634ce0256ea4b6a7c32f9186e2f10";
- sha256 = "0f3gddf3lfqf97r44gjaf63nbymdsxgsgrbqrpqd02ff1fc4ikb1";
+ rev = "90b323bccc04ad9b23c971a85813a1405c7725a8";
+ sha256 = "05wzadwl8l3688v3kvmmr62frbwcfxkj3pawkwkblnl49n16jid0";
};
meta.homepage = "https://github.com/wbthomason/packer.nvim/";
};
@@ -6083,12 +6119,12 @@ final: prev:
plenary-nvim = buildNeovimPluginFrom2Nix {
pname = "plenary.nvim";
- version = "2022-07-10";
+ version = "2022-08-01";
src = fetchFromGitHub {
owner = "nvim-lua";
repo = "plenary.nvim";
- rev = "986ad71ae930c7d96e812734540511b4ca838aa2";
- sha256 = "1gxz2ivf2p6p3h3d1xm0lb6s7jixf1l6l759a60n0vxv90a565kq";
+ rev = "31807eef4ed574854b8a53ae40ea3292033a78ea";
+ sha256 = "1vkyqrk0shpc076rq1s7rwldmcmw2k96hcpifligrsplr170kkhv";
};
meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
};
@@ -6168,12 +6204,12 @@ final: prev:
project-nvim = buildVimPluginFrom2Nix {
pname = "project.nvim";
- version = "2022-05-29";
+ version = "2022-08-03";
src = fetchFromGitHub {
owner = "ahmedkhalf";
repo = "project.nvim";
- rev = "541115e762764bc44d7d3bf501b6e367842d3d4f";
- sha256 = "0vabnhb5d8nc25ap9zixazmr4sm5ylq0iqzsc89cc3h1907xp6lz";
+ rev = "090bb11ee7eb76ebb9d0be1c6060eac4f69a240f";
+ sha256 = "160cg0mhhb87sibdm05pqsa2p3vy110i6aw29dv7mbz4jaf6xhrl";
};
meta.homepage = "https://github.com/ahmedkhalf/project.nvim/";
};
@@ -6349,36 +6385,36 @@ final: prev:
readline-vim = buildVimPluginFrom2Nix {
pname = "readline.vim";
- version = "2019-12-28";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "ryvnf";
repo = "readline.vim";
- rev = "48f04c651728e8a7a8352eec697801aa32348564";
- sha256 = "1vs91lkm9gwvp0bahx80ag6lw03r5x6kyih70l4sq8q0kydp5f13";
+ rev = "b5eff41db2803b6f5a264cc71867e8498e7318d1";
+ sha256 = "03sn2rpadd746ax5ynidi8msp90phzb3a82w523q8b07kn32dgdw";
};
meta.homepage = "https://github.com/ryvnf/readline.vim/";
};
refactoring-nvim = buildVimPluginFrom2Nix {
pname = "refactoring.nvim";
- version = "2022-07-08";
+ version = "2022-08-14";
src = fetchFromGitHub {
owner = "theprimeagen";
repo = "refactoring.nvim";
- rev = "b11ca3574c85c98e07e4d5f8c47e38bacbbda34f";
- sha256 = "14zm9vk99s0yrfaxva5y03iykg9cflg1l00i9kribdl3mgn73a5g";
+ rev = "e5da743f34340f446761846593a504d162dc0b95";
+ sha256 = "1nlyzhg4yw60m9ryjl2lm4mba11c47hhqbdi3wmxff90h91f65jv";
};
meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/";
};
registers-nvim = buildVimPluginFrom2Nix {
pname = "registers.nvim";
- version = "2022-05-19";
+ version = "2022-08-16";
src = fetchFromGitHub {
owner = "tversteeg";
repo = "registers.nvim";
- rev = "f354159d34bc17553ad772c633fd7caff8ecb35c";
- sha256 = "0fh1dgv8ika7gbdvx1bm0hrh58k577z3cq94wr2mchscvaj935ch";
+ rev = "23f9efc71cc7aa42a44df8a2f20f6812f6c54abf";
+ sha256 = "0aj4mx8riiclaccii1y0yzkp6kkkcfvjqgvkkkvr93ywncrfc6h9";
};
meta.homepage = "https://github.com/tversteeg/registers.nvim/";
};
@@ -6397,14 +6433,14 @@ final: prev:
rest-nvim = buildVimPluginFrom2Nix {
pname = "rest.nvim";
- version = "2022-05-13";
+ version = "2022-08-11";
src = fetchFromGitHub {
- owner = "NTBBloodbath";
+ owner = "rest-nvim";
repo = "rest.nvim";
- rev = "d902996de965d5d491f122e69ba9d03f9c673eb0";
- sha256 = "05vibdiig6lmiiixnnzc99adi6x4chkx02hqy51llahsdkg7369s";
+ rev = "8c719ed329f521a92582b9144d4e75bb74c36e23";
+ sha256 = "1bkz5rhf64fjds5kvlig2y422arix4ccx5sc1j4v75rkpy6hv3w7";
};
- meta.homepage = "https://github.com/NTBBloodbath/rest.nvim/";
+ meta.homepage = "https://github.com/rest-nvim/rest.nvim/";
};
riv-vim = buildVimPluginFrom2Nix {
@@ -6421,12 +6457,12 @@ final: prev:
rnvimr = buildVimPluginFrom2Nix {
pname = "rnvimr";
- version = "2022-05-19";
+ version = "2022-08-13";
src = fetchFromGitHub {
owner = "kevinhwang91";
repo = "rnvimr";
- rev = "5877509cfdbf3a0382ff24198a3f730b476f8262";
- sha256 = "04f3az9mgz1409dblzcmbcja8p712pvrc3ahfj18j3xjxw4wh9yc";
+ rev = "4ced809554a1f49c5142484fd89c40ed3175975c";
+ sha256 = "1jmbqqmxp1hdq31ai2y9yhxqihqpr60vszvdd088kms864y0a1aa";
};
meta.homepage = "https://github.com/kevinhwang91/rnvimr/";
};
@@ -6445,12 +6481,12 @@ final: prev:
ron-vim = buildVimPluginFrom2Nix {
pname = "ron.vim";
- version = "2020-08-22";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "ron-rs";
repo = "ron.vim";
- rev = "04004b3395d219f95a533c4badd5ba831b7b7c07";
- sha256 = "1xlr8slwcr6b9p33awf8xzdp04myv6dcsxwi50val4vzvzcgyrcl";
+ rev = "f749e543975a82e8dd9a6e7df9600a1c098ae800";
+ sha256 = "1bppr0bcffvp0zz14dbparz0smrbl2lrbwxbv5rnam5d56dlkz7k";
};
meta.homepage = "https://github.com/ron-rs/ron.vim/";
};
@@ -6481,12 +6517,12 @@ final: prev:
rust-tools-nvim = buildVimPluginFrom2Nix {
pname = "rust-tools.nvim";
- version = "2022-05-18";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "simrat39";
repo = "rust-tools.nvim";
- rev = "11dcd674781ba68a951ab4c7b740553cae8fe671";
- sha256 = "0kdwjwj9capwldlv6hzff6q7i8ghk5c37k194s8r9vd0hxgbvcxr";
+ rev = "b696e6dee1e79a53159f1c0472289f5486ac31bc";
+ sha256 = "1g049mxwhpa8hl4m1ijnsrjh40y3f0nc4yg6pyy2h5w7mgwx4rs3";
};
meta.homepage = "https://github.com/simrat39/rust-tools.nvim/";
};
@@ -6613,12 +6649,12 @@ final: prev:
seoul256-vim = buildVimPluginFrom2Nix {
pname = "seoul256.vim";
- version = "2022-05-27";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "junegunn";
repo = "seoul256.vim";
- rev = "8f3dd7d484b17cf5988c12a5dee2889a84a64525";
- sha256 = "05zqi72555bphm3bkpqg50zq8vcspd05998r59cz4qp1vq36ar5k";
+ rev = "1c48e3e1e3f3521920788d90a83819cff14eadc9";
+ sha256 = "092szdfi1nmap52i7pcm51k2ymqj0hd4kii66pgaqsskslnc03gk";
};
meta.homepage = "https://github.com/junegunn/seoul256.vim/";
};
@@ -6698,12 +6734,12 @@ final: prev:
snap = buildVimPluginFrom2Nix {
pname = "snap";
- version = "2021-11-01";
+ version = "2022-08-03";
src = fetchFromGitHub {
owner = "camspiers";
repo = "snap";
- rev = "500f97650136d4c5a00179d7f80dd614e13efdbe";
- sha256 = "0gqqrci4wz6f19afg60hfbb54yj824nfar0n69gfj4sra7wjgqix";
+ rev = "aca7863edb34af45830e422393fa95bd7ea77f4b";
+ sha256 = "06qgpqrqskpxaxp7cvra3pqra024i2jicqark7dyvcpc9krp02ry";
};
meta.homepage = "https://github.com/camspiers/snap/";
};
@@ -6722,12 +6758,12 @@ final: prev:
sonokai = buildVimPluginFrom2Nix {
pname = "sonokai";
- version = "2022-07-16";
+ version = "2022-08-16";
src = fetchFromGitHub {
owner = "sainnhe";
repo = "sonokai";
- rev = "888b68bed34a18be8f3341713ccd69b549951d95";
- sha256 = "1b9m09x1wqndwk3aci6033p3bh4nr0lqjh7pgpz0dllrs1jxzs9a";
+ rev = "003e5798eb7f16b35ab79d93279ba484b66fd353";
+ sha256 = "0gfz2rgyglaxrvq7d8mg2y3fqdvf87clyrrsvkc9ladccihfvg1w";
};
meta.homepage = "https://github.com/sainnhe/sonokai/";
};
@@ -6746,12 +6782,12 @@ final: prev:
space-vim = buildVimPluginFrom2Nix {
pname = "space-vim";
- version = "2022-06-23";
+ version = "2022-08-03";
src = fetchFromGitHub {
owner = "liuchengxu";
repo = "space-vim";
- rev = "953d9baace32400caa6e117eca024df38503a24e";
- sha256 = "0rsvj8aj8h7yz4fp4cr8nhsr8632r514vsw7iz51wqfs51ycsz5m";
+ rev = "f1465f4c586962cec9231e237f1d6c15b9156a98";
+ sha256 = "0qq4g2kldg3hjv5g18na0r2442vg5xa52fs0h004908prnwdsnjr";
};
meta.homepage = "https://github.com/liuchengxu/space-vim/";
};
@@ -6842,12 +6878,12 @@ final: prev:
splitjoin-vim = buildVimPluginFrom2Nix {
pname = "splitjoin.vim";
- version = "2022-07-24";
+ version = "2022-08-01";
src = fetchFromGitHub {
owner = "AndrewRadev";
repo = "splitjoin.vim";
- rev = "1f7d5841b84b4dd07b7774df5d0601dfdd1efe4e";
- sha256 = "1flr37ikb78ns5az4g3iqm2l6829m9sm508j55liqwrr6l5746xy";
+ rev = "ab9d5cd1fba6d3f1acaf25a1b31d4f6ff961c839";
+ sha256 = "1fxx01hwiv5r7z9qv1z162wyq3nnh3dnip8811hvss8baqqz4vy7";
fetchSubmodules = true;
};
meta.homepage = "https://github.com/AndrewRadev/splitjoin.vim/";
@@ -6987,36 +7023,36 @@ final: prev:
sved = buildVimPluginFrom2Nix {
pname = "sved";
- version = "2022-06-20";
+ version = "2022-08-11";
src = fetchFromGitHub {
owner = "peterbjorgensen";
repo = "sved";
- rev = "7da91cb0eacdaae5e1a41722e95800c98d4ca675";
- sha256 = "0rp5pklym8bnl1npgglh096i9ssrdbn2r99arh42sbdca71spbiw";
+ rev = "f175866cc1d9a79fa4f4f5906c8a7aa83504b62e";
+ sha256 = "0gg5091d6h9l546hxqi5ddw0kv7f8v17l1zkhsh2dxrpdlgnnqs0";
};
meta.homepage = "https://github.com/peterbjorgensen/sved/";
};
swayconfig-vim = buildVimPluginFrom2Nix {
pname = "swayconfig.vim";
- version = "2022-07-26";
+ version = "2022-07-31";
src = fetchFromGitHub {
owner = "jamespeapen";
repo = "swayconfig.vim";
- rev = "00705ec60c4c04fac24294ed7a260a09fc32ef9f";
- sha256 = "03wmikc2l3l788ykmx5pb934zbvxx2z3gmk2z401rii48mzyn6wi";
+ rev = "cfca1e50df5448d81c8f6c54caba273575d5cd62";
+ sha256 = "0mfcbm58yx4bv00y128fqnd0xd61izg4yhbxjcxz9dbz96pm7y78";
};
meta.homepage = "https://github.com/jamespeapen/swayconfig.vim/";
};
swift-vim = buildVimPluginFrom2Nix {
pname = "swift.vim";
- version = "2022-03-04";
+ version = "2022-08-01";
src = fetchFromGitHub {
owner = "keith";
repo = "swift.vim";
- rev = "64256d0f2c410d35ac1752aa2a2f7ade3a04695e";
- sha256 = "0nljkn8wg515kdh4yrs5nss0c8jmqcdnhi3hwjd1jgkxd6wsh2al";
+ rev = "3e0529e1a97e3da24aabd18daf8ed92c6da8c68b";
+ sha256 = "1xsxbh70q7psvmlps4fwm6ix1zb1ljnlzhsb3a6c5dkh00x7ks9v";
};
meta.homepage = "https://github.com/keith/swift.vim/";
};
@@ -7036,12 +7072,12 @@ final: prev:
symbols-outline-nvim = buildVimPluginFrom2Nix {
pname = "symbols-outline.nvim";
- version = "2022-05-01";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "simrat39";
repo = "symbols-outline.nvim";
- rev = "15ae99c27360ab42e931be127d130611375307d5";
- sha256 = "170lxb2hw814wjxkpl0g4sic7wg3krp7pfkf3wp5j4dwk8czm2wi";
+ rev = "e459f3262c4c79a62e654ada0fbbb9758313c968";
+ sha256 = "01a9k8kmiql8k71n1h1bn98gmmg5pnjxk5b0pws3gcmxj1n6pk5c";
};
meta.homepage = "https://github.com/simrat39/symbols-outline.nvim/";
};
@@ -7145,12 +7181,12 @@ final: prev:
tagbar = buildVimPluginFrom2Nix {
pname = "tagbar";
- version = "2022-06-09";
+ version = "2022-08-09";
src = fetchFromGitHub {
owner = "preservim";
repo = "tagbar";
- rev = "0243b19920a683df531f19bb7fb80c0ff83927dd";
- sha256 = "0pkqkcwngasxgm9vywh0rjkq3hdik2a02k1z06rjmsrpnl4g4qvp";
+ rev = "87afc291ee5250debbbfe0ad0016f24d1eb296a6";
+ sha256 = "1iawd6jsms8h58a91yv1g3f3k2dyp682ay37dfb9dgjfsdchsfgg";
};
meta.homepage = "https://github.com/preservim/tagbar/";
};
@@ -7229,12 +7265,12 @@ final: prev:
telescope-coc-nvim = buildVimPluginFrom2Nix {
pname = "telescope-coc.nvim";
- version = "2022-07-15";
+ version = "2022-08-10";
src = fetchFromGitHub {
owner = "fannheyward";
repo = "telescope-coc.nvim";
- rev = "65d73788915a1706bc8c47fa283f3e9515f7ed1b";
- sha256 = "02fzllnr87s8sfm2b7ax6nvl3hjzniiz93yqf2m7l1gaadpf9axk";
+ rev = "e71def9442840130e147a8b79fa8dd4fa828d263";
+ sha256 = "00q2lifmyqimvkcnri6ylb0b4fbz7q66zp4dlc6y8jmyj1ag0w20";
};
meta.homepage = "https://github.com/fannheyward/telescope-coc.nvim/";
};
@@ -7253,36 +7289,36 @@ final: prev:
telescope-file-browser-nvim = buildVimPluginFrom2Nix {
pname = "telescope-file-browser.nvim";
- version = "2022-07-18";
+ version = "2022-08-01";
src = fetchFromGitHub {
owner = "nvim-telescope";
repo = "telescope-file-browser.nvim";
- rev = "c30fcb6214acf8538616e403e0f82a6430bf6801";
- sha256 = "17pilvq69q66s8bfsyllmphhzganzcd3vgbb3q9w64d5gbpr7jgg";
+ rev = "4272c52078cc457dfaabce6fa3545e7495651d04";
+ sha256 = "0mrd9z0n96h7fwsk5dgb25ax3p3xygwfav4gfgyysb7s7fz3529d";
};
meta.homepage = "https://github.com/nvim-telescope/telescope-file-browser.nvim/";
};
telescope-frecency-nvim = buildVimPluginFrom2Nix {
pname = "telescope-frecency.nvim";
- version = "2022-05-25";
+ version = "2022-08-13";
src = fetchFromGitHub {
owner = "nvim-telescope";
repo = "telescope-frecency.nvim";
- rev = "68ac8cfe6754bb656b4f84d6c3dafa421b6f9697";
- sha256 = "16w5h2ns324wmn3m4ikphli8kqbm1ldcys43s0a5qrrvriaddrmz";
+ rev = "6d2db0ee0ca6487bf3fc9eda581e83eaea25cb07";
+ sha256 = "0q6kcig52dd2wg6jnv1wajg4dmc6zscv7xdgl8agnilaz8xw92z9";
};
meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/";
};
telescope-fzf-native-nvim = buildVimPluginFrom2Nix {
pname = "telescope-fzf-native.nvim";
- version = "2022-06-09";
+ version = "2022-08-10";
src = fetchFromGitHub {
owner = "nvim-telescope";
repo = "telescope-fzf-native.nvim";
- rev = "6a33ecefa9b3d9ade654f9a7a6396a00c3758ca6";
- sha256 = "1ssznk16fhnqsp2kwff48ccbrgw2cbaxjhbj6wzap9cbw78kxpf9";
+ rev = "6791f74e9f08a9412c43dcba805ecf2f8888bdde";
+ sha256 = "1fl4k6r71zgqx57hilf92zfjvqdb9znnxd0ymx68b9kqr66bwidx";
};
meta.homepage = "https://github.com/nvim-telescope/telescope-fzf-native.nvim/";
};
@@ -7350,12 +7386,12 @@ final: prev:
telescope-project-nvim = buildVimPluginFrom2Nix {
pname = "telescope-project.nvim";
- version = "2022-06-12";
+ version = "2022-08-07";
src = fetchFromGitHub {
owner = "nvim-telescope";
repo = "telescope-project.nvim";
- rev = "8cd22b696e14b353fe8ea9648a03364cb56c39d4";
- sha256 = "1qrk2i7yvvrqg4yjma1q6c26wdlapc60yriiqx5mhfam9xh28s24";
+ rev = "dc9a1977d159e3feb98774729f5c30584e2b700a";
+ sha256 = "0pj5xlmlj1psm8liqfkii9rhvb2d2bx8asmkcyp1wgfsj41kffni";
};
meta.homepage = "https://github.com/nvim-telescope/telescope-project.nvim/";
};
@@ -7434,12 +7470,12 @@ final: prev:
telescope-nvim = buildVimPluginFrom2Nix {
pname = "telescope.nvim";
- version = "2022-07-22";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "nvim-telescope";
repo = "telescope.nvim";
- rev = "b5833a682c511885887373aad76272ad70f7b3c2";
- sha256 = "1czip023gay22dh4zz18pkxaazljm2miqhhifvwf39vrbx8sywdx";
+ rev = "28dc08f614f45d37ad90f170935f1f4e12559aeb";
+ sha256 = "1vmwp62aizvda3jmvi3j5rw8ffyfr6xk15adfqpj9gkgzw5lmh56";
};
meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
};
@@ -7615,12 +7651,12 @@ final: prev:
toggleterm-nvim = buildVimPluginFrom2Nix {
pname = "toggleterm.nvim";
- version = "2022-07-25";
+ version = "2022-08-13";
src = fetchFromGitHub {
owner = "akinsho";
repo = "toggleterm.nvim";
- rev = "cd12ed737d3de2757a540ddf4962a6de05881127";
- sha256 = "032x7kmy8aqrc3lq6ns3jcicvjgwjhsfmfch3s20af48y6lp1xm7";
+ rev = "62683d927dfd30dc68441a5811fdcb6c9f176c42";
+ sha256 = "0ac58nyl9lk1wxr9g2jkckxzjr2gfahpidg983bjdl3mk42qc4d6";
};
meta.homepage = "https://github.com/akinsho/toggleterm.nvim/";
};
@@ -7673,6 +7709,18 @@ final: prev:
meta.homepage = "https://github.com/tremor-rs/tremor-vim/";
};
+ trim-nvim = buildVimPluginFrom2Nix {
+ pname = "trim.nvim";
+ version = "2022-06-16";
+ src = fetchFromGitHub {
+ owner = "cappyzawa";
+ repo = "trim.nvim";
+ rev = "ab366eb0dd7b3faeaf90a0ec40c993ff18d8c068";
+ sha256 = "0lxc593rys5yi35iabqgqxi18lsk2jp78f3wdksmkxclf9j7xmbw";
+ };
+ meta.homepage = "https://github.com/cappyzawa/trim.nvim/";
+ };
+
trouble-nvim = buildVimPluginFrom2Nix {
pname = "trouble.nvim";
version = "2022-05-09";
@@ -7735,12 +7783,12 @@ final: prev:
ultisnips = buildVimPluginFrom2Nix {
pname = "ultisnips";
- version = "2022-07-04";
+ version = "2022-08-13";
src = fetchFromGitHub {
owner = "SirVer";
repo = "ultisnips";
- rev = "1edcb40ce749c47d5da42ab02dcdf21f9279bfbb";
- sha256 = "1iq59ysqxr4jn5r06262qnigyj9qb4dfxfwxnn5j0achl7vd5aw8";
+ rev = "4f5249b2a6f6308377cb2bf734974a4e6f8a960e";
+ sha256 = "0zaiyv63hzk1vaa9xd317zs0s2x1d9rbjam13g7qsm2i3lip6n65";
};
meta.homepage = "https://github.com/SirVer/ultisnips/";
};
@@ -7759,12 +7807,12 @@ final: prev:
unicode-vim = buildVimPluginFrom2Nix {
pname = "unicode.vim";
- version = "2022-05-05";
+ version = "2022-08-04";
src = fetchFromGitHub {
owner = "chrisbra";
repo = "unicode.vim";
- rev = "176963d8e43dd54ff1582cb2374e731b51a7f5d5";
- sha256 = "030izymxcvs5hw8pqsmlqwxgzdbysh96q7qxk7mb2v15dh8qnv9d";
+ rev = "92878e4ebd8df9e225c35b92985b7b6996e6cd5f";
+ sha256 = "0sbw3s9n35yvdh1p9fhl91w7c2mimqd6w22pza19xi6f646j0gd3";
};
meta.homepage = "https://github.com/chrisbra/unicode.vim/";
};
@@ -7783,12 +7831,12 @@ final: prev:
urlview-nvim = buildVimPluginFrom2Nix {
pname = "urlview.nvim";
- version = "2022-05-07";
+ version = "2022-08-19";
src = fetchFromGitHub {
owner = "axieax";
repo = "urlview.nvim";
- rev = "92a6ae6f33839222ce4ea58f5cdaf0a3f235caca";
- sha256 = "0y3l0py0cnvj876xi5kgc7mmbycj7s61mj29ipsmn9bnjvk008yb";
+ rev = "ac5d34be94c5f092752d53ec6436c1de593fb355";
+ sha256 = "0wfgizpvwqjvqwhxvzb25akz391i0brcn3pw4ldad5d7glqmpi5m";
};
meta.homepage = "https://github.com/axieax/urlview.nvim/";
};
@@ -7831,12 +7879,12 @@ final: prev:
venn-nvim = buildVimPluginFrom2Nix {
pname = "venn.nvim";
- version = "2022-04-27";
+ version = "2022-08-02";
src = fetchFromGitHub {
owner = "jbyuki";
repo = "venn.nvim";
- rev = "71856b548e3206e33bad10acea294ca8b44327ee";
- sha256 = "0gjrcj196cwd0j6jjjplycc2gvw77n9jsmq6q4l7by13d2agn7kc";
+ rev = "288329d9b5b8c2ffcb58cfe38fa3dd4ddf2139a0";
+ sha256 = "1b7nlg0xrm0bxwl3zda9m08pj3zmnmryjnpc9zx6b1g8qa4a4vjw";
};
meta.homepage = "https://github.com/jbyuki/venn.nvim/";
};
@@ -7855,12 +7903,12 @@ final: prev:
vifm-vim = buildVimPluginFrom2Nix {
pname = "vifm.vim";
- version = "2022-07-20";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "vifm";
repo = "vifm.vim";
- rev = "18113770f05b2a6a8b70328277099189185471e0";
- sha256 = "13r17a8zl9gxd4d0m3gwvhsxlkaczl8mynfaba9h4akyfqrvcwj6";
+ rev = "c3a2a8dfbec766c74c81dd2c7c67579c839e1119";
+ sha256 = "1q51n1jlz1dzigh1q3q0fms2ndnjz84whz31z526srxrs88qwkav";
};
meta.homepage = "https://github.com/vifm/vifm.vim/";
};
@@ -8191,12 +8239,12 @@ final: prev:
vim-airline = buildVimPluginFrom2Nix {
pname = "vim-airline";
- version = "2022-07-13";
+ version = "2022-08-15";
src = fetchFromGitHub {
owner = "vim-airline";
repo = "vim-airline";
- rev = "ebb89a0846ff8b8bc64579155d661b825f97d3f2";
- sha256 = "0c75m9hcyjng66j0fw60q77bqcyzqwccgfyc683gfik0qhd3k3qs";
+ rev = "9d20473e912ab39008a25b1902e5f35189e67aad";
+ sha256 = "1b25c52rgk3nk35liwrl51rqvi8y56kqxxb9k4z00ls603pwxac6";
};
meta.homepage = "https://github.com/vim-airline/vim-airline/";
};
@@ -8239,12 +8287,12 @@ final: prev:
vim-android = buildVimPluginFrom2Nix {
pname = "vim-android";
- version = "2022-05-15";
+ version = "2022-08-14";
src = fetchFromGitHub {
owner = "hsanson";
repo = "vim-android";
- rev = "b8b684f60a26a7208771fc39cbeb6a6421a19ea2";
- sha256 = "04ch5mbc2wgxnwkxis9gwcav90916117vp97biivzq7wsdr49zc8";
+ rev = "6c3de0dec1df86231b9b92e81249b8ccf8f0aa84";
+ sha256 = "0w5rjn9833mdfx3wcmvmyjvfrih2kif45qgipf95q1b65rvn2bqg";
};
meta.homepage = "https://github.com/hsanson/vim-android/";
};
@@ -8323,12 +8371,12 @@ final: prev:
vim-auto-save = buildVimPluginFrom2Nix {
pname = "vim-auto-save";
- version = "2022-07-23";
+ version = "2022-08-08";
src = fetchFromGitHub {
owner = "907th";
repo = "vim-auto-save";
- rev = "038c104f67a63d4a39bef1ce5d60716fbebf1b24";
- sha256 = "1sm08m86l7vd9v34ba0rfmybnl5930djnmfjhcr380bpwq946vky";
+ rev = "2e3e54ea4c0fc946c21b0a4ee4c1c295ba736ee8";
+ sha256 = "1mc6ihy674hf01z1zlni8ji0srv579pfn9d888zpn91jq8ch89dh";
};
meta.homepage = "https://github.com/907th/vim-auto-save/";
};
@@ -8515,12 +8563,12 @@ final: prev:
vim-carbon-now-sh = buildVimPluginFrom2Nix {
pname = "vim-carbon-now-sh";
- version = "2021-06-18";
+ version = "2022-08-11";
src = fetchFromGitHub {
owner = "kristijanhusak";
repo = "vim-carbon-now-sh";
- rev = "d63101f65513cffe8834627ee127c067a7be5ad1";
- sha256 = "1dvhhybykq9lppncxr3klh0x5j7rdw0dh55xhn58d4k3jdfwvrh8";
+ rev = "31a18d26fc27e7bd5786da092ed886273b4cf639";
+ sha256 = "1pmnf2w9wck9476c74h2553vnwqj70f7bpgp1k0czpzaiz44zv5c";
};
meta.homepage = "https://github.com/kristijanhusak/vim-carbon-now-sh/";
};
@@ -8563,12 +8611,12 @@ final: prev:
vim-clap = buildVimPluginFrom2Nix {
pname = "vim-clap";
- version = "2022-07-21";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "liuchengxu";
repo = "vim-clap";
- rev = "141fb556f43ea4a50a406d855b6339f037075c75";
- sha256 = "0c2q61i4pcfbsizk54npdnzdrg6g3v5cfhcvj4rh87scj6sapp27";
+ rev = "ccaea1352a5b56aa91957f8918b4b6cfaa20a6bf";
+ sha256 = "14znprc8abbaj6cg5y2rkhpdkikp22vbq86agmgav6m9ck9wsilr";
};
meta.homepage = "https://github.com/liuchengxu/vim-clap/";
};
@@ -8599,12 +8647,12 @@ final: prev:
vim-closer = buildVimPluginFrom2Nix {
pname = "vim-closer";
- version = "2022-02-07";
+ version = "2022-08-08";
src = fetchFromGitHub {
owner = "rstacruz";
repo = "vim-closer";
- rev = "43acc7c59fca861cb92cc47f01f184d9d342a73b";
- sha256 = "1q03kz5ffyz8ifxdn7bgf3r7jlqa8vya13pnjyqda15wly1fl0k8";
+ rev = "6d5d6f50501dd862b1616d370566e94b44be3008";
+ sha256 = "06j0z8lqbrp22skhdg6cmvd42nnlhd7v9q7z9938i7zr6bigj0cr";
};
meta.homepage = "https://github.com/rstacruz/vim-closer/";
};
@@ -8623,24 +8671,24 @@ final: prev:
vim-code-dark = buildVimPluginFrom2Nix {
pname = "vim-code-dark";
- version = "2022-07-22";
+ version = "2022-08-05";
src = fetchFromGitHub {
owner = "tomasiser";
repo = "vim-code-dark";
- rev = "08eea24ec8c9a713e53ec47b7dd2c1d5a2dd7027";
- sha256 = "1y9y37l55qx1yqpksj38di41rbxr498rcxf9dnczk2mp7hcssi0b";
+ rev = "e56e5285ecaf5d0df1a383c432bccdbc0d464b2f";
+ sha256 = "0hqdh0m6h8wsvidfkm2c091j2rxq8ds8dria42z5ghx3ajhfgj6d";
};
meta.homepage = "https://github.com/tomasiser/vim-code-dark/";
};
vim-codefmt = buildVimPluginFrom2Nix {
pname = "vim-codefmt";
- version = "2022-06-02";
+ version = "2022-07-28";
src = fetchFromGitHub {
owner = "google";
repo = "vim-codefmt";
- rev = "b5270ae807fdbad5183f2831a9348f2fb7cfea1d";
- sha256 = "0fq1dcizdvrnq6faw36206wvvnfzgcpz83a3kpn466hfbbysmn45";
+ rev = "406686de5855ebb9dc2b9558d53983e65ef5c64e";
+ sha256 = "0xlsjbdjg9cyj9zsik1ikcknbjglfzn9zms1avkkhawybb4v6mqi";
};
meta.homepage = "https://github.com/google/vim-codefmt/";
};
@@ -9091,12 +9139,12 @@ final: prev:
vim-endwise = buildVimPluginFrom2Nix {
pname = "vim-endwise";
- version = "2022-07-14";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "tpope";
repo = "vim-endwise";
- rev = "210bec5b5306023ba7b04a4e5b0824755ea51d5d";
- sha256 = "1f51nv2ffqp0sg6fv5x8hm94mc1l4pmmnc05ghbahzn8z6042b52";
+ rev = "4e5c8358d751625bb040b187b9fe430c2b769f0a";
+ sha256 = "0vfkvq20kr6jbm526vkvyliv4zybha7jpp7iaimvw4zx1mjs5pih";
};
meta.homepage = "https://github.com/tpope/vim-endwise/";
};
@@ -9151,12 +9199,12 @@ final: prev:
vim-eunuch = buildVimPluginFrom2Nix {
pname = "vim-eunuch";
- version = "2022-07-14";
+ version = "2022-08-16";
src = fetchFromGitHub {
owner = "tpope";
repo = "vim-eunuch";
- rev = "74e0e1662cc9ed3d58ba3e3de20eb30ac4039956";
- sha256 = "0c9in0y32glddwzv6d9720qhm5fhh4l0kxfv6griaxp8707pbnm3";
+ rev = "63da2dd64c040abc02b24b6a4679e0b7ff35be29";
+ sha256 = "1lvcwx7l0pljfyr61bxvsydmv4z2s6a3rx4b19rhrrm5dchhv9ky";
};
meta.homepage = "https://github.com/tpope/vim-eunuch/";
};
@@ -9247,12 +9295,12 @@ final: prev:
vim-flake8 = buildVimPluginFrom2Nix {
pname = "vim-flake8";
- version = "2022-02-17";
+ version = "2022-08-16";
src = fetchFromGitHub {
owner = "nvie";
repo = "vim-flake8";
- rev = "a99054ef98e8fdaefa1315af4649138bcadbfdf7";
- sha256 = "1ila8z90rxsdxgp44n5wms5s3vlx0j0b7svhx0nff66ylfqy3s4x";
+ rev = "03316eab49fddce2fc9cea84588e623a658b35aa";
+ sha256 = "0n1aqyrgy2822qf0cnr8yz1zdfsvk31w7miarnklp5ahim3pjbbn";
};
meta.homepage = "https://github.com/nvie/vim-flake8/";
};
@@ -9283,12 +9331,12 @@ final: prev:
vim-flog = buildVimPluginFrom2Nix {
pname = "vim-flog";
- version = "2022-06-26";
+ version = "2022-08-03";
src = fetchFromGitHub {
owner = "rbong";
repo = "vim-flog";
- rev = "fb137707b84a328d3f1b53d22894e3c52f4a6ddb";
- sha256 = "1n9gzsiccchvs51i1yfn819h4db96wyghnpaddnsvf0fq1as2g3p";
+ rev = "bce44d82719ca196d938ba6c68294b55f8ba359c";
+ sha256 = "0539drbypn1ahllqr1rgz4fc164h0jm213zwhx4wc9v3afmy8csf";
};
meta.homepage = "https://github.com/rbong/vim-flog/";
};
@@ -9343,12 +9391,12 @@ final: prev:
vim-fugitive = buildVimPluginFrom2Nix {
pname = "vim-fugitive";
- version = "2022-07-22";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "tpope";
repo = "vim-fugitive";
- rev = "9a13fc87c4ab83ea81e71ccad9b846a5eb31a998";
- sha256 = "0k8zyj0pjnzknbw758gamg0hqn5bl3c3qasaxqk9fmsb10hky4hr";
+ rev = "b411b753f805b969cca856e2ae51fdbab49880df";
+ sha256 = "0bcq71hfy08q4lq83rcrwpg7jkq0aszcbaqnjhphvg8wja5q30dm";
};
meta.homepage = "https://github.com/tpope/vim-fugitive/";
};
@@ -9487,12 +9535,12 @@ final: prev:
vim-go = buildVimPluginFrom2Nix {
pname = "vim-go";
- version = "2022-07-22";
+ version = "2022-08-12";
src = fetchFromGitHub {
owner = "fatih";
repo = "vim-go";
- rev = "7ec0a19a78a453686cb5c9776e506375562f9a1f";
- sha256 = "17aq08q5ymc7460lf02wfw7wl3dsnazm504m45w6f6i3zhzbwqnq";
+ rev = "4d6962d8e0792617f87b37b938996f44e2a54645";
+ sha256 = "09jn9hvklhj8q83sxdrkbj5vdfyshh6268vxhm2kbdg5885jkjqw";
};
meta.homepage = "https://github.com/fatih/vim-go/";
};
@@ -9788,12 +9836,12 @@ final: prev:
vim-illuminate = buildVimPluginFrom2Nix {
pname = "vim-illuminate";
- version = "2022-07-09";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "RRethy";
repo = "vim-illuminate";
- rev = "6bfa5dc069bd4aa8513a3640d0b73392094749be";
- sha256 = "0jwqmp8zx9iv80rlz24xvp62jnrhq7m8jamnk7s2x1cw2ik83gjl";
+ rev = "78cf9c1ce0dc1ee3cfd6f29f9aab1b538a2784b6";
+ sha256 = "06ja5xn04wy5qcli3zdpzaf22x8yiyv4x34i865djva689d6yj8i";
};
meta.homepage = "https://github.com/RRethy/vim-illuminate/";
};
@@ -9908,12 +9956,12 @@ final: prev:
vim-javascript = buildVimPluginFrom2Nix {
pname = "vim-javascript";
- version = "2021-09-25";
+ version = "2022-08-15";
src = fetchFromGitHub {
owner = "pangloss";
repo = "vim-javascript";
- rev = "d6e137563c47fb59f26ed25d044c0c7532304f18";
- sha256 = "0pps9mqkkmmlqy0ir64gvwbz9jngcgvhy8d9hqb7bkps92ya6zr5";
+ rev = "c470ce1399a544fe587eab950f571c83cccfbbdc";
+ sha256 = "0h20j09z52gf5f75xcy0d4a0z0a98260s7dw62vwf1m8dk5fixbn";
};
meta.homepage = "https://github.com/pangloss/vim-javascript/";
};
@@ -10101,12 +10149,12 @@ final: prev:
vim-ledger = buildVimPluginFrom2Nix {
pname = "vim-ledger";
- version = "2022-06-16";
+ version = "2022-08-12";
src = fetchFromGitHub {
owner = "ledger";
repo = "vim-ledger";
- rev = "78fdcae8cab810892c82d555a63bdcd20b8e1397";
- sha256 = "0wr56azflkjx4v7xw44c960byfcak7kjgkk9a482rj19iywk9141";
+ rev = "519befb7004bf3a66a3ddfdc2d431b0bd360dc97";
+ sha256 = "0dg23ayi191xjvhyyb52byjvl731xrrf9255h3qci7hi3p20jkcy";
};
meta.homepage = "https://github.com/ledger/vim-ledger/";
};
@@ -10209,12 +10257,12 @@ final: prev:
vim-lsp = buildVimPluginFrom2Nix {
pname = "vim-lsp";
- version = "2022-07-22";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "prabirshrestha";
repo = "vim-lsp";
- rev = "eb542a379fbb8147ac8ae346f50217df655acc1d";
- sha256 = "0ka3dqdmj9h3ld7xnh3vfgpjs9l0d651gz0zr76spf7xdgrn59y7";
+ rev = "e5d2d3f7440ec109cb157b1b00a4a96030e2a564";
+ sha256 = "06yinlsnd5808ljfy8bs16p5frv7i95chipzg75pxmm4rxvjic30";
};
meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
};
@@ -10318,12 +10366,12 @@ final: prev:
vim-matchup = buildVimPluginFrom2Nix {
pname = "vim-matchup";
- version = "2022-07-16";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "andymass";
repo = "vim-matchup";
- rev = "3cebd218a7b85a75df3f4f7867adc79b8624a217";
- sha256 = "0n7hhiws3i0dckk8jmb9bb6qqm43h1l39v6f1m3z918lgjmlx5rw";
+ rev = "87b8e9018f68a4f347b8dee66653e7007ae5308b";
+ sha256 = "0gljlxbz2cz2fcindbzx8lmrsach8sg5r0nfmy7rqwl8v88bkyr3";
};
meta.homepage = "https://github.com/andymass/vim-matchup/";
};
@@ -10594,12 +10642,12 @@ final: prev:
vim-ocaml = buildVimPluginFrom2Nix {
pname = "vim-ocaml";
- version = "2022-07-23";
+ version = "2022-08-04";
src = fetchFromGitHub {
owner = "ocaml";
repo = "vim-ocaml";
- rev = "95e1947766a1496f31ee501828375ed30d06edf3";
- sha256 = "1p4s7gbxwj81ywycm51b23a9pkfb117bjvkg8m6yknap26sx0wml";
+ rev = "755d96ccebbe08fb0e25d0d4f8ffaf0cf86e3217";
+ sha256 = "0ndvrnkdk5mfkyifm0dvi0fsn0kc40hmz3nqadn4w894nl09cdxn";
};
meta.homepage = "https://github.com/ocaml/vim-ocaml/";
};
@@ -10750,12 +10798,12 @@ final: prev:
vim-pandoc = buildVimPluginFrom2Nix {
pname = "vim-pandoc";
- version = "2022-05-19";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "vim-pandoc";
repo = "vim-pandoc";
- rev = "fcdb70e6456362e15db95fbe82f56165ab35de8a";
- sha256 = "03k3nhj4d0r9cvzr6fsz9qka3pl6p2xx6hbbakrk8mkws1m3py4r";
+ rev = "7dbda1c885c4c5dd3f865aa29e1b82167663aeec";
+ sha256 = "0f4bkz619lp0fr1966njm3m5587vq2mbmahy2ya5d8nnqs5f770p";
};
meta.homepage = "https://github.com/vim-pandoc/vim-pandoc/";
};
@@ -10870,12 +10918,12 @@ final: prev:
vim-plug = buildVimPluginFrom2Nix {
pname = "vim-plug";
- version = "2022-05-03";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "junegunn";
repo = "vim-plug";
- rev = "8fdabfba0b5a1b0616977a32d9e04b4b98a6016a";
- sha256 = "046j2cq4s14ys7n5b1lil5sgdis66mydd8bpsidcyq004k3zy2lc";
+ rev = "d94d234548a8fd6fa686812848f377f1419dafa1";
+ sha256 = "1jyx46iddxhsb0nhbg5snj6x0snlmp1nv4m86n3afsz1y4371g9g";
};
meta.homepage = "https://github.com/junegunn/vim-plug/";
};
@@ -11146,12 +11194,12 @@ final: prev:
vim-rails = buildVimPluginFrom2Nix {
pname = "vim-rails";
- version = "2022-06-08";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "tpope";
repo = "vim-rails";
- rev = "6bc0c7826d68f8c44c8347a3012aa79ade4f0a22";
- sha256 = "047lk3i2b5nbkbnyjgy0i0zm8da3g8kwmzas3ckp4rx2aj49bn51";
+ rev = "60300991aec65c11b252e58c84cffd07463b5adb";
+ sha256 = "0pr84i5hsaqb39b0f1irgaq08s4h3g1inq0s13b3q5vkf75a62cs";
};
meta.homepage = "https://github.com/tpope/vim-rails/";
};
@@ -11182,12 +11230,12 @@ final: prev:
vim-rhubarb = buildVimPluginFrom2Nix {
pname = "vim-rhubarb";
- version = "2022-07-08";
+ version = "2022-07-27";
src = fetchFromGitHub {
owner = "tpope";
repo = "vim-rhubarb";
- rev = "09b9b1ca86d3e55d4ed80770a053beaf9d2edbef";
- sha256 = "0bqw922z7qz8g5l1g5gigkp5x46wif5s896c19r47pzw4xsaip5c";
+ rev = "cad60fe382f3f501bbb28e113dfe8c0de6e77c75";
+ sha256 = "1c456ypxgjnmbprjl79kvg5vm26nws0csw8fbs6gmdr21m3x1p4w";
};
meta.homepage = "https://github.com/tpope/vim-rhubarb/";
};
@@ -11218,12 +11266,12 @@ final: prev:
vim-ruby = buildVimPluginFrom2Nix {
pname = "vim-ruby";
- version = "2022-06-30";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "vim-ruby";
repo = "vim-ruby";
- rev = "a99282403445ac1d008b51d6edd820d5dc053ecb";
- sha256 = "0fapyafzjl00y6xn281m1zjc17hy6hka3ggg29nwkzryvd0hnjxb";
+ rev = "d8ef4c3584d0403d26f69bfd0a8fc6bfe198aeee";
+ sha256 = "19bbbdah1jzn3ym4riqd04ybl2gm7wnzvw71zymm8b9sjzjdmlwn";
};
meta.homepage = "https://github.com/vim-ruby/vim-ruby/";
};
@@ -11506,12 +11554,12 @@ final: prev:
vim-snippets = buildVimPluginFrom2Nix {
pname = "vim-snippets";
- version = "2022-07-26";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "honza";
repo = "vim-snippets";
- rev = "c5d977c49211883b9241086874fe89c72ae378ca";
- sha256 = "0sqy26xicaxsx7ii74j9z5inc6nnlxp05dssy1c5ilf6pk2npb44";
+ rev = "e8a3d1f48bd34f0227f0e1254ce6890fa420f58f";
+ sha256 = "1r7rviand5dnpsf9ppk6gqqk19fwf6l74jm5fqrgk56xywcf0adw";
};
meta.homepage = "https://github.com/honza/vim-snippets/";
};
@@ -11540,18 +11588,6 @@ final: prev:
meta.homepage = "https://github.com/christoomey/vim-sort-motion/";
};
- vim-sourcetrail = buildVimPluginFrom2Nix {
- pname = "vim-sourcetrail";
- version = "2021-02-16";
- src = fetchFromGitHub {
- owner = "CoatiSoftware";
- repo = "vim-sourcetrail";
- rev = "c9c621a7ab81c52a661457ccf33a64fd7c56fd9d";
- sha256 = "192f69yz1hh2k0b2kcvfvv1jirjcvnbxvjkagmlkkqcg8w32nmlg";
- };
- meta.homepage = "https://github.com/CoatiSoftware/vim-sourcetrail/";
- };
-
vim-speeddating = buildVimPluginFrom2Nix {
pname = "vim-speeddating";
version = "2021-04-29";
@@ -11590,12 +11626,12 @@ final: prev:
vim-startuptime = buildVimPluginFrom2Nix {
pname = "vim-startuptime";
- version = "2022-07-27";
+ version = "2022-07-30";
src = fetchFromGitHub {
owner = "dstein64";
repo = "vim-startuptime";
- rev = "dcdba2cd6713b48d86cf828f4752273a8b6eaaef";
- sha256 = "0zr6pvw3jimjzlxjg2mjbr6kpdkihxai388b8492zp48ixv01hh0";
+ rev = "9a226125353e9c12742d72be6ab877573bfd651b";
+ sha256 = "0rzcdkinaf7hd525z4zap25vgjh58mvicscyfympbi3plvsz6i3p";
};
meta.homepage = "https://github.com/dstein64/vim-startuptime/";
};
@@ -11614,12 +11650,12 @@ final: prev:
vim-stylish-haskell = buildVimPluginFrom2Nix {
pname = "vim-stylish-haskell";
- version = "2019-11-28";
+ version = "2022-08-08";
src = fetchFromGitHub {
owner = "nbouscal";
repo = "vim-stylish-haskell";
- rev = "ef12ab024cb3928ae57ce7c4fa519c4751afef99";
- sha256 = "0ysz68v4c2i4kxchsvxgkpj5kb0jbm5x06ri1ns9cmk5gj01pmd6";
+ rev = "60a59fd767956c40372b5aeab2d68a0a953ebb2b";
+ sha256 = "0qqiqkrj45212jwm6k5xapn023ylh7mkjncfi4awgp3rk8sl8m77";
};
meta.homepage = "https://github.com/nbouscal/vim-stylish-haskell/";
};
@@ -11759,12 +11795,12 @@ final: prev:
vim-test = buildVimPluginFrom2Nix {
pname = "vim-test";
- version = "2022-07-21";
+ version = "2022-08-09";
src = fetchFromGitHub {
owner = "vim-test";
repo = "vim-test";
- rev = "a5b122e8c5eb47db5a034908172ccbee44f4e520";
- sha256 = "0mwlmmf7fikrfjq0m2bn9dwmgky0mp0w7lll7fw4lqdmphvk8kd5";
+ rev = "dfb99b8867556ea63e67f4a7cbc2ee10dda4b3be";
+ sha256 = "0h500vzczx0i2k23xmkhfgd31rhld4hzd1917vf6hhb0fw0aphci";
};
meta.homepage = "https://github.com/vim-test/vim-test/";
};
@@ -11939,12 +11975,12 @@ final: prev:
vim-tpipeline = buildVimPluginFrom2Nix {
pname = "vim-tpipeline";
- version = "2022-07-19";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "vimpostor";
repo = "vim-tpipeline";
- rev = "45969a8510894b0f8ff4468361c18897dd524b98";
- sha256 = "0wdvdxrphix46kbaaqqsarvg161xrb8r0s3c0q29k1kzajnygxpm";
+ rev = "76f7bcd132f762282e303668c7e1015337579978";
+ sha256 = "13iflhlk5sn3r6h6gskl1zih4lx8y6yrn4py5qclpn6qi7zdiaq9";
};
meta.homepage = "https://github.com/vimpostor/vim-tpipeline/";
};
@@ -12179,12 +12215,12 @@ final: prev:
vim-which-key = buildVimPluginFrom2Nix {
pname = "vim-which-key";
- version = "2022-06-27";
+ version = "2022-06-30";
src = fetchFromGitHub {
owner = "liuchengxu";
repo = "vim-which-key";
- rev = "654dfc15cf86946e7e70d12cf095bf55002d93a5";
- sha256 = "168yxiwhvsbkp8bywxcd9mvhh43hjp3xcpwm3ffny15v13rqadcp";
+ rev = "4d64b2261aff3b9dc1863ebc1ea9ec410965a5de";
+ sha256 = "0qy6g69r4bqb6c0hbf0bw60i90zqs8z39cwpygf1fb6rk3p7a5p0";
};
meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
};
@@ -12239,12 +12275,12 @@ final: prev:
vim-xkbswitch = buildVimPluginFrom2Nix {
pname = "vim-xkbswitch";
- version = "2022-07-09";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "lyokha";
repo = "vim-xkbswitch";
- rev = "3dc0c735bd031a9302177762ec6b608e450a1564";
- sha256 = "19zbf82sflkvh9qw9prha1lxc8ryqmr1n3fflxfmd7xfvv3n336m";
+ rev = "daab553bb2c6cf9c437780d26e47a8769b4dd7e2";
+ sha256 = "09ycp9bl0kkj6pm1pnpv32lnsmpp29zn42ygq2q16yb4wfx4h326";
};
meta.homepage = "https://github.com/lyokha/vim-xkbswitch/";
};
@@ -12431,12 +12467,12 @@ final: prev:
vimspector = buildVimPluginFrom2Nix {
pname = "vimspector";
- version = "2022-07-26";
+ version = "2022-08-15";
src = fetchFromGitHub {
owner = "puremourning";
repo = "vimspector";
- rev = "794c11f2dc3d943183fc04b6b9f82d3a0207ce02";
- sha256 = "152rj4vf0hi0am2qg31mgsrvma1k7nx3gnai35jycv0wyqrxvnlb";
+ rev = "5200d077bde1abc12f0b7f6ad6a133ec3b924670";
+ sha256 = "0h4pn38k40mkz3h2ibnphnsm7w2pdsplqyw865l801ygz7vlpwbg";
fetchSubmodules = true;
};
meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -12444,12 +12480,12 @@ final: prev:
vimtex = buildVimPluginFrom2Nix {
pname = "vimtex";
- version = "2022-07-26";
+ version = "2022-08-17";
src = fetchFromGitHub {
owner = "lervag";
repo = "vimtex";
- rev = "b9ad861cd7ab1a55eb5f64b3e2e0043d2b835946";
- sha256 = "03lybgm2wbncdy578zqd05nsihg3y7b3mj9cd5jr2q46iih6rzkq";
+ rev = "5641242ea6d5eb30428f78eaa9591c78be351b66";
+ sha256 = "0w5q0h3pm32bndi4hw5gzsysl2mwv11fzyphxa1nk1mf37i1nqan";
};
meta.homepage = "https://github.com/lervag/vimtex/";
};
@@ -12552,12 +12588,12 @@ final: prev:
wilder-nvim = buildVimPluginFrom2Nix {
pname = "wilder.nvim";
- version = "2022-06-27";
+ version = "2022-08-13";
src = fetchFromGitHub {
owner = "gelguy";
repo = "wilder.nvim";
- rev = "86f5fb0962bc5954babf267ded6b144d992aef85";
- sha256 = "0cb2hlyrypfp4c0zp3gmbpnpbmv6sbfh1zxjlm61wk58q9g371q0";
+ rev = "679f348dc90d80ff9ba0e7c470c40a4d038dcecf";
+ sha256 = "01b59fn1k0p03sifihws80zjf3kch9w52bn283yk5sn3jahz1cld";
};
meta.homepage = "https://github.com/gelguy/wilder.nvim/";
};
@@ -12697,12 +12733,12 @@ final: prev:
zenburn = buildVimPluginFrom2Nix {
pname = "zenburn";
- version = "2021-09-15";
+ version = "2022-08-13";
src = fetchFromGitHub {
owner = "jnurmine";
repo = "zenburn";
- rev = "de2fa06a93fe1494638ec7b2fdd565898be25de6";
- sha256 = "0pmmc16gkypb3y87d5wg5g8c3cxhj01ah9khl82hfw564yw4ipqs";
+ rev = "8df765342b2a33c728ce147d6c8e66359378f9d5";
+ sha256 = "07gfrwhshps41gaq1bqyq4c64nlz9y7crslmalpp2iskgci3kkvf";
};
meta.homepage = "https://github.com/jnurmine/zenburn/";
};
@@ -12721,12 +12757,12 @@ final: prev:
zig-vim = buildVimPluginFrom2Nix {
pname = "zig.vim";
- version = "2022-05-01";
+ version = "2022-07-28";
src = fetchFromGitHub {
owner = "ziglang";
repo = "zig.vim";
- rev = "1cb9cd521cab91e39cf162b50b7a095fd12361d3";
- sha256 = "10flq5dm6aa5ay3rb2rn5y9ih8z66iq6lw2rl2489qxi605bxqs7";
+ rev = "3538ae95b469bab6dc15d93067798c87f8968010";
+ sha256 = "05hxwc9j60hn0f95vybp1327mi5z3w4ja5y2mm97r6zwb4a8rccs";
};
meta.homepage = "https://github.com/ziglang/zig.vim/";
};
@@ -12769,36 +12805,36 @@ final: prev:
catppuccin-nvim = buildVimPluginFrom2Nix {
pname = "catppuccin-nvim";
- version = "2022-07-26";
+ version = "2022-08-16";
src = fetchFromGitHub {
owner = "catppuccin";
repo = "nvim";
- rev = "484c7d741176f471ae4425af40e3c0cd97da188e";
- sha256 = "15r7r8pb2gdbhlm8zvm92fa6fapns2gpzfj1h4py0h62cdgy4qq5";
+ rev = "b0bd9d9d08d5312534362a8893705c41d2afb612";
+ sha256 = "1c19bwlarbb7khnv99ik5l10ds1003lq8kjniahsyqpb69y14g32";
};
meta.homepage = "https://github.com/catppuccin/nvim/";
};
catppuccin-vim = buildVimPluginFrom2Nix {
pname = "catppuccin-vim";
- version = "2022-07-18";
+ version = "2022-08-02";
src = fetchFromGitHub {
owner = "catppuccin";
repo = "vim";
- rev = "ee1c14bd00fd6edcf158fab340c42622690fd859";
- sha256 = "057gafifcp5gx2bw3gcij1yq3w2ikll1ka7gs4y0sm5dq7czpff0";
+ rev = "1d17368d51137d0198d45be4799e4f6de818b432";
+ sha256 = "0kc3kynvhw7gfzjafbpv95zqs1nch7nzi8pmhzrga0bkvdjlizq6";
};
meta.homepage = "https://github.com/catppuccin/vim/";
};
chad = buildVimPluginFrom2Nix {
pname = "chad";
- version = "2022-07-27";
+ version = "2022-08-20";
src = fetchFromGitHub {
owner = "ms-jpq";
repo = "chadtree";
- rev = "e15a5faf6d321df8f93c61d3ed346315233668cc";
- sha256 = "092vmylxd916li71vscx0d52r8qfwnrkmq4a9r4jpx1pa982gjw2";
+ rev = "088c764c45eb0186e0860dc3db6c4baaaae0adea";
+ sha256 = "039v6dl2sv3dl2cgg9im463zyp0w2aimq6qmsq5qk2mz7gvgj2xk";
};
meta.homepage = "https://github.com/ms-jpq/chadtree/";
};
@@ -12817,24 +12853,24 @@ final: prev:
embark-vim = buildVimPluginFrom2Nix {
pname = "embark-vim";
- version = "2022-07-12";
+ version = "2022-08-18";
src = fetchFromGitHub {
owner = "embark-theme";
repo = "vim";
- rev = "1dcf15351622964ab7e35f3e780e7a1c581ebd2d";
- sha256 = "1hc5grwn5xxrswm7yz7dn2fjddvngvy09bhjdgldpxw45m9kpdd9";
+ rev = "ab9d52f692cb52e42b33681c024de902c3e4bd22";
+ sha256 = "06fqcv83jjsicdks6pqdfsgdfyi6k5s5ydkhjf0sllx3whyzmaqg";
};
meta.homepage = "https://github.com/embark-theme/vim/";
};
gruvbox-community = buildVimPluginFrom2Nix {
pname = "gruvbox-community";
- version = "2022-07-14";
+ version = "2022-08-03";
src = fetchFromGitHub {
owner = "gruvbox-community";
repo = "gruvbox";
- rev = "7e1b1bcab96149224738664a9ddd7cb1b3acf90a";
- sha256 = "1hrr0lcj93iwlzzawvg183d0zz3phlnnx70gfhsv83csnj04r1vz";
+ rev = "95b120a15d0765037d2836d04e3360c273caf111";
+ sha256 = "1f20vj5apic54lc0hd7a2nhg9vfb4lrjhgkzf84mkbfd39p162fc";
};
meta.homepage = "https://github.com/gruvbox-community/gruvbox/";
};
@@ -12865,12 +12901,12 @@ final: prev:
rose-pine = buildVimPluginFrom2Nix {
pname = "rose-pine";
- version = "2022-07-17";
+ version = "2022-08-14";
src = fetchFromGitHub {
owner = "rose-pine";
repo = "neovim";
- rev = "9aff7f7602614f4f0046db639f07cf2bed4c321a";
- sha256 = "0wrqhb2j5hfg4vvs7xacy8vszyn40ygjsfi9f2i5p7h682vbz5ad";
+ rev = "0f3ea8162459da82440c22ce0c9b0562e53f6a10";
+ sha256 = "0rv0f9c38h4lz1h3dq44v08qm8awknfxclrwb0k664xbsk1d9w97";
};
meta.homepage = "https://github.com/rose-pine/neovim/";
};
diff --git a/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/overrides.nix b/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/overrides.nix
index b2477665ec..8f805d1254 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -103,6 +103,7 @@
, golint
, gomodifytags
, gopls
+, gotags
, gotools
, iferr
, impl
@@ -1045,7 +1046,7 @@ self: super: {
gomodifytags
gopls
# gorename
- # gotags
+ gotags
gotools
# guru
iferr
diff --git a/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/vim-plugin-names b/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/vim-plugin-names
index cb7a8c114d..23760b3a94 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/vim-plugin-names
+++ b/third_party/nixpkgs/pkgs/applications/editors/vim/plugins/vim-plugin-names
@@ -152,7 +152,7 @@ https://github.com/Domeee/com.cloudedmountain.ide.neovim/,HEAD,
https://github.com/wincent/command-t/,,
https://github.com/numtostr/comment.nvim/,,
https://github.com/rhysd/committia.vim/,,
-https://github.com/tami5/compe-conjure/,,
+https://github.com/hrsh7th/compe-conjure/,,
https://github.com/GoldsteinE/compe-latex-symbols/,,
https://github.com/tzachar/compe-tabnine/,,
https://github.com/tamago324/compe-zsh/,,
@@ -322,6 +322,7 @@ https://github.com/latex-box-team/latex-box/,,
https://github.com/kdheepak/lazygit.nvim/,,
https://github.com/Julian/lean.nvim/,,
https://github.com/leanprover/lean.vim/,,
+https://github.com/mrjones2014/legendary.nvim/,HEAD,
https://github.com/camspiers/lens.vim/,,
https://github.com/thirtythreeforty/lessspace.vim/,,
https://github.com/cohama/lexima.vim/,,
@@ -343,6 +344,7 @@ https://github.com/ldelossa/litee-filetree.nvim/,,
https://github.com/ldelossa/litee-symboltree.nvim/,,
https://github.com/ldelossa/litee.nvim/,,
https://github.com/folke/lsp-colors.nvim/,,
+https://github.com/lukas-reineke/lsp-format.nvim/,HEAD,
https://github.com/ahmedkhalf/lsp-rooter.nvim/,,
https://github.com/nvim-lua/lsp-status.nvim/,,
https://github.com/nvim-lua/lsp_extensions.nvim/,,
@@ -497,6 +499,7 @@ https://github.com/navarasu/onedark.nvim/,,
https://github.com/joshdick/onedark.vim/,,
https://github.com/olimorris/onedarkpro.nvim/,,
https://github.com/sonph/onehalf/,,
+https://github.com/rmehri01/onenord.nvim/,main,
https://github.com/tyru/open-browser-github.vim/,,
https://github.com/tyru/open-browser.vim/,,
https://github.com/nvim-orgmode/orgmode/,,
@@ -643,6 +646,7 @@ https://github.com/folke/tokyonight.nvim/,,
https://github.com/markonm/traces.vim/,,
https://github.com/tjdevries/train.nvim/,,
https://github.com/tremor-rs/tremor-vim/,,
+https://github.com/cappyzawa/trim.nvim/,,
https://github.com/folke/trouble.nvim/,,
https://github.com/jgdavey/tslime.vim/,,
https://github.com/Quramy/tsuquyomi/,,
@@ -969,7 +973,6 @@ https://github.com/honza/vim-snippets/,,
https://github.com/jhradilek/vim-snippets/,,vim-docbk-snippets
https://github.com/tomlion/vim-solidity/,,
https://github.com/christoomey/vim-sort-motion/,,
-https://github.com/CoatiSoftware/vim-sourcetrail/,,
https://github.com/tpope/vim-speeddating/,,
https://github.com/kbenzie/vim-spirv/,,
https://github.com/mhinz/vim-startify/,,
diff --git a/third_party/nixpkgs/pkgs/applications/editors/vscode/extensions/_maintainers/update-bin-srcs-lib.sh b/third_party/nixpkgs/pkgs/applications/editors/vscode/extensions/_maintainers/update-bin-srcs-lib.sh
index e3d1e5fb13..4b0ca54da3 100755
--- a/third_party/nixpkgs/pkgs/applications/editors/vscode/extensions/_maintainers/update-bin-srcs-lib.sh
+++ b/third_party/nixpkgs/pkgs/applications/editors/vscode/extensions/_maintainers/update-bin-srcs-lib.sh
@@ -37,14 +37,12 @@ prefetchExtensionUnpacked() {
1>&2 echo "zipStorePath='$zipStorePath'"
function rm_tmpdir() {
- 1>&2 printf "rm -rf -- %q\n" "$tmpDir"
- rm -rf -- "$tmpDir"
- unset tmpDir
- trap - INT TERM HUP EXIT
+ 1>&2 printf "rm -rf %q\n" "$tmpDir"
+ rm -rf "$tmpDir"
}
function make_trapped_tmpdir() {
tmpDir=$(mktemp -d)
- trap rm_tmpdir INT TERM HUP EXIT
+ trap rm_tmpdir EXIT
}
1>&2 echo
diff --git a/third_party/nixpkgs/pkgs/applications/editors/vscode/extensions/cpptools/update_helper.sh b/third_party/nixpkgs/pkgs/applications/editors/vscode/extensions/cpptools/update_helper.sh
index 00ef775532..d7bd307c92 100755
--- a/third_party/nixpkgs/pkgs/applications/editors/vscode/extensions/cpptools/update_helper.sh
+++ b/third_party/nixpkgs/pkgs/applications/editors/vscode/extensions/cpptools/update_helper.sh
@@ -44,14 +44,11 @@ extStoreName="${extPublisher}-${extName}"
function rm_tmpdir() {
- #echo "Removing \`tmpDir='$tmpDir'\`"
- rm -rf -- "$tmpDir"
- unset tmpDir
- trap - INT TERM HUP EXIT
+ rm -rf "$tmpDir"
}
function make_trapped_tmpdir() {
tmpDir=$(mktemp -d)
- trap rm_tmpdir INT TERM HUP EXIT
+ trap rm_tmpdir EXIT
}
echo
diff --git a/third_party/nixpkgs/pkgs/applications/editors/vscode/vscode.nix b/third_party/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
index 210761a5c4..1a09d64750 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
@@ -15,17 +15,17 @@ let
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
sha256 = {
- x86_64-linux = "1ldn2m7mi3sfkcv417a2ci68p8r178kfr9bf1wx6j0r09sn5r4i0";
- x86_64-darwin = "1pkxcj6dz5lcvf0ivzafvwvcyw2098ylxrqqzj9dfgfad29kyszd";
- aarch64-linux = "1q1l7vrf4ifv6y46b4zz9km83wrsq80wx6rb4rnqkgijpbx02f7z";
- aarch64-darwin = "1zhvbn6kmp99a5p0299256fm08y67rfzz03zygif7y20zrmr27ka";
- armv7l-linux = "0jn2li0j1cmk5m61ha6m4lskc80q1j7mfmgidc3x9x9yiv6yacr7";
+ x86_64-linux = "08p4l47zr4dm7mw65wwdsf6q1wkzkzg3l2y5zrs3ng3nafql96zs";
+ x86_64-darwin = "1pf8xpg2sb0iwfaixvzhmglqrrky2625b66fjwlc5zkj0dlff106";
+ aarch64-linux = "1c35s7zykcrqf3va1cv7hqf1dp3cl70kdvqv3vgflqldc1wcza9h";
+ aarch64-darwin = "1jpsf54x7yy53d6766gpw90ngdi6kicpqm1qbzbmmsasndl7rklp";
+ armv7l-linux = "10vj751bjdkzsdcrdpq6xb430pdhdbz8ysk835ir64i3mv6ygi7k";
}.${system} or throwSystem;
in
callPackage ./generic.nix rec {
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
- version = "1.70.0";
+ version = "1.70.2";
pname = "vscode";
executableName = "code" + lib.optionalString isInsiders "-insiders";
diff --git a/third_party/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix b/third_party/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
index 9155a9fe27..e8043eef9f 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
@@ -15,11 +15,11 @@ let
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
sha256 = {
- x86_64-linux = "0vwnx7fs46fkas75pnhjc81wy3hr24k2gs82i30ailaxw5r63j81";
- x86_64-darwin = "0bxc74vfkw9zhxfahzhcghlnybvj8k15jbni489lf636a45xrlcc";
- aarch64-linux = "10z6nv67yjd15ilxgfpjf07qbdp0cbd5761a5gcymiam4r22l6hq";
- aarch64-darwin = "133nccm0hcgcd2503psxwaaq4v4l16q7w7kbcz1y5lynlvwazjrx";
- armv7l-linux = "1sx3l42ls62v3apjap25ccg4mcbi71spfj5xh7y6rffzi65xwdrv";
+ x86_64-linux = "1b2603fcb28479dajwg9q2ck083fym6khjv02ax3l0p6jazjyc70";
+ x86_64-darwin = "0xggqfmsm7zzbn43mjmmk8wg75nr2nvkiaddcgwq3a2xn1x90jb5";
+ aarch64-linux = "1wfrfap840a9azik1dbzp7kib04amc3y2m6s45v3qa3c0kw1162a";
+ aarch64-darwin = "1nfv5ysri6p2sfp47786alv7b8rrn7mxsaisdlz970r8d79mrp5n";
+ armv7l-linux = "185ayjvahyqxqab7dkpygxd68adxai25sw4fcw00x5c4l5lgmvhl";
}.${system} or throwSystem;
sourceRoot = if stdenv.isDarwin then "" else ".";
@@ -29,7 +29,7 @@ in
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
- version = "1.70.0";
+ version = "1.70.2.22230";
pname = "vscodium";
executableName = "codium";
diff --git a/third_party/nixpkgs/pkgs/applications/editors/xxe-pe/default.nix b/third_party/nixpkgs/pkgs/applications/editors/xxe-pe/default.nix
index 191ed6d2d4..1f592b7320 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/xxe-pe/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/xxe-pe/default.nix
@@ -24,7 +24,7 @@ let
in
stdenv.mkDerivation rec {
pname = "xxe-pe";
- version = "10.1.0";
+ version = "10.2.0";
src =
assert !acceptLicense -> throw ''
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
'';
fetchurl {
url = "https://www.xmlmind.com/xmleditor/_download/xxe-perso-${builtins.replaceStrings [ "." ] [ "_" ] version}.zip";
- sha256 = "sha256-AeyaJSEJQQJ/XxvaIky4fnEr+7fVAEqhSxtYhN8L2JA=";
+ sha256 = "sha256-JZ9nQwMrQL/1HKGwvXoWlnTx55ZK/UYjMJAddCtm0rw=";
};
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/emulators/dolphin-emu/master.nix b/third_party/nixpkgs/pkgs/applications/emulators/dolphin-emu/master.nix
index 63a6386408..80b01962bc 100644
--- a/third_party/nixpkgs/pkgs/applications/emulators/dolphin-emu/master.nix
+++ b/third_party/nixpkgs/pkgs/applications/emulators/dolphin-emu/master.nix
@@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "dolphin-emu";
- version = "5.0-16380";
+ version = "5.0-16793";
src = fetchFromGitHub {
owner = "dolphin-emu";
repo = "dolphin";
- rev = "8335ec70e5fe253eb21509408ca6b5736ed57dfc";
- sha256 = "sha256-WRQ3WfMTlIPoYrEFWLHL9KSfhzQl24AlkbWjh3a4fPE=";
+ rev = "3cd82b619388d0877436390093a6edc2319a6904";
+ sha256 = "sha256-0k+kmq/jkCy52wGcmvtwmnLxUfxk3k0mvsr5wfX8p30=";
fetchSubmodules = true;
};
diff --git a/third_party/nixpkgs/pkgs/applications/emulators/pcsx2/default.nix b/third_party/nixpkgs/pkgs/applications/emulators/pcsx2/default.nix
index 77e69a0321..5f5579658b 100644
--- a/third_party/nixpkgs/pkgs/applications/emulators/pcsx2/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/emulators/pcsx2/default.nix
@@ -32,14 +32,14 @@
stdenv.mkDerivation rec {
pname = "pcsx2";
- version = "1.7.3128";
+ version = "1.7.3165";
src = fetchFromGitHub {
owner = "PCSX2";
repo = "pcsx2";
fetchSubmodules = true;
rev = "v${version}";
- hash = "sha256-OVKxVyUkTpyVvQ1oA8G6W77ssC1NmUAu/VanBM8Z168=";
+ hash = "sha256-FdLmLZLpS8zPmHVn4k0nE6vS/omYVIOal9ej0h3bE/Y=";
};
cmakeFlags = [
diff --git a/third_party/nixpkgs/pkgs/applications/emulators/ppsspp/default.nix b/third_party/nixpkgs/pkgs/applications/emulators/ppsspp/default.nix
index 14121a49bd..6281cbd2c0 100644
--- a/third_party/nixpkgs/pkgs/applications/emulators/ppsspp/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/emulators/ppsspp/default.nix
@@ -1,72 +1,121 @@
-{ mkDerivation
+{ lib
+, stdenv
, fetchFromGitHub
, SDL2
, cmake
+, copyDesktopItems
, ffmpeg
, glew
-, lib
+, libffi
, libzip
+, makeDesktopItem
+, makeWrapper
, pkg-config
, python3
-, qtbase
-, qtmultimedia
+, qtbase ? null
+, qtmultimedia ? null
, snappy
+, vulkan-loader
+, wayland
+, wrapQtAppsHook ? null
, zlib
+, enableVulkan ? true
+, forceWayland ? false
}:
-mkDerivation rec {
- pname = "ppsspp";
- version = "1.13.1";
+let
+ enableQt = (qtbase != null);
+ frontend = if enableQt then "Qt" else "SDL and headless";
+ vulkanPath = lib.makeLibraryPath [ vulkan-loader ];
- src = fetchFromGitHub {
- owner = "hrydgard";
- repo = pname;
- rev = "v${version}";
- fetchSubmodules = true;
- sha256 = "sha256-WsFy2aSOmkII2Lte5et4W6qj0AXUKWWkYe88T0OQP08=";
- };
+ # experimental, see https://github.com/hrydgard/ppsspp/issues/13845
+ vulkanWayland = enableVulkan && forceWayland;
+in
+ # Only SDL front end needs to specify whether to use Wayland
+ assert forceWayland -> !enableQt;
+ stdenv.mkDerivation (finalAttrs: {
+ pname = "ppsspp"
+ + lib.optionalString enableQt "-qt"
+ + lib.optionalString (!enableQt) "-sdl"
+ + lib.optionalString forceWayland "-wayland";
+ version = "1.13.1";
- postPatch = ''
- substituteInPlace git-version.cmake --replace unknown ${src.rev}
- substituteInPlace UI/NativeApp.cpp --replace /usr/share $out/share
- '';
+ src = fetchFromGitHub {
+ owner = "hrydgard";
+ repo = "ppsspp";
+ rev = "v${finalAttrs.version}";
+ fetchSubmodules = true;
+ sha256 = "sha256-WsFy2aSOmkII2Lte5et4W6qj0AXUKWWkYe88T0OQP08=";
+ };
- nativeBuildInputs = [ cmake pkg-config python3 ];
+ postPatch = ''
+ substituteInPlace git-version.cmake --replace unknown ${finalAttrs.src.rev}
+ substituteInPlace UI/NativeApp.cpp --replace /usr/share $out/share
+ '';
- buildInputs = [
- SDL2
- ffmpeg
- glew
- libzip
- qtbase
- qtmultimedia
- snappy
- zlib
- ];
+ nativeBuildInputs = [
+ cmake
+ copyDesktopItems
+ makeWrapper
+ pkg-config
+ python3
+ wrapQtAppsHook
+ ];
- cmakeFlags = [
- "-DHEADLESS=OFF"
- "-DOpenGL_GL_PREFERENCE=GLVND"
- "-DUSE_SYSTEM_FFMPEG=ON"
- "-DUSE_SYSTEM_LIBZIP=ON"
- "-DUSE_SYSTEM_SNAPPY=ON"
- "-DUSING_QT_UI=ON"
- ];
+ buildInputs = [
+ SDL2
+ ffmpeg
+ (glew.override { enableEGL = forceWayland; })
+ libzip
+ qtbase
+ qtmultimedia
+ snappy
+ zlib
+ ] ++ lib.optional enableVulkan vulkan-loader
+ ++ lib.optionals vulkanWayland [ wayland libffi ];
- installPhase = ''
- runHook preInstall
- mkdir -p $out/share/ppsspp
- install -Dm555 PPSSPPQt $out/bin/ppsspp
- mv assets $out/share/ppsspp
- runHook postInstall
- '';
+ cmakeFlags = [
+ "-DHEADLESS=${if enableQt then "OFF" else "ON"}"
+ "-DOpenGL_GL_PREFERENCE=GLVND"
+ "-DUSE_SYSTEM_FFMPEG=ON"
+ "-DUSE_SYSTEM_LIBZIP=ON"
+ "-DUSE_SYSTEM_SNAPPY=ON"
+ "-DUSE_WAYLAND_WSI=${if vulkanWayland then "ON" else "OFF"}"
+ "-DUSING_QT_UI=${if enableQt then "ON" else "OFF"}"
+ ];
- meta = with lib; {
- homepage = "https://www.ppsspp.org/";
- description = "A HLE Playstation Portable emulator, written in C++";
- license = licenses.gpl2Plus;
- maintainers = with maintainers; [ AndersonTorres ];
- platforms = platforms.linux;
- };
-}
-# TODO: add SDL headless port
+ desktopItems = [(makeDesktopItem {
+ desktopName = "PPSSPP";
+ name = "ppsspp";
+ exec = "ppsspp";
+ icon = "ppsspp";
+ comment = "Play PSP games on your computer";
+ categories = [ "Game" "Emulator" ];
+ })];
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/share/{applications,ppsspp}
+ '' + (if enableQt then ''
+ install -Dm555 PPSSPPQt $out/bin/ppsspp
+ wrapProgram $out/bin/ppsspp \
+ '' else ''
+ install -Dm555 PPSSPPHeadless $out/bin/ppsspp-headless
+ install -Dm555 PPSSPPSDL $out/share/ppsspp/
+ makeWrapper $out/share/ppsspp/PPSSPPSDL $out/bin/ppsspp \
+ --set SDL_VIDEODRIVER ${if forceWayland then "wayland" else "x11"} \
+ '') + lib.optionalString enableVulkan ''
+ --prefix LD_LIBRARY_PATH : ${vulkanPath} \
+ '' + "\n" + ''
+ mv assets $out/share/ppsspp
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ homepage = "https://www.ppsspp.org/";
+ description = "A HLE Playstation Portable emulator, written in C++ (${frontend})";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ AndersonTorres ];
+ platforms = platforms.linux;
+ };
+ })
diff --git a/third_party/nixpkgs/pkgs/applications/emulators/ryujinx/default.nix b/third_party/nixpkgs/pkgs/applications/emulators/ryujinx/default.nix
index 3bc35e6b10..b21bc5e5fa 100644
--- a/third_party/nixpkgs/pkgs/applications/emulators/ryujinx/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/emulators/ryujinx/default.nix
@@ -13,17 +13,26 @@
, gtk3
, gdk-pixbuf
, wrapGAppsHook
+, vulkan-loader
+, libICE
+, libSM
+, libXi
+, libXcursor
+, libXext
+, libXrandr
+, fontconfig
+, glew
}:
buildDotnetModule rec {
pname = "ryujinx";
- version = "1.1.181"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
+ version = "1.1.223"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
src = fetchFromGitHub {
owner = "Ryujinx";
repo = "Ryujinx";
- rev = "6eb85e846f25ae36a39685d6ac91025deaea306c";
- sha256 = "0lc8hhcrad26sw2dx0lwml8lk2mxg4db4sgfxnd450xi2qd63kdc";
+ rev = "951700fdd8f54fb34ffe8a3fb328a68b5bf37abe";
+ sha256 = "0kzchsxir8wh74rxvp582mci855hbd0vma6yhcc9vpz0zmhi2cpf";
};
projectFile = "Ryujinx.sln";
@@ -33,7 +42,7 @@ buildDotnetModule rec {
# TODO: Add the headless frontend. Currently errors on the following:
# System.Exception: SDL2 initlaization failed with error "No available video device"
- executables = [ "Ryujinx" ];
+ executables = [ "Ryujinx" "Ryujinx.Ava" ];
nativeBuildInputs = [
wrapGAppsHook
@@ -53,16 +62,30 @@ buildDotnetModule rec {
libsoundio
sndio
pulseaudio
- ];
+ vulkan-loader
+ ffmpeg
- makeWrapperArgs = [
- "--suffix PATH : ${lib.getBin ffmpeg}"
+ # Avalonia UI
+ libICE
+ libSM
+ libXi
+ libXcursor
+ libXext
+ libXrandr
+ fontconfig
+ glew
];
patches = [
./appdir.patch # Ryujinx attempts to write to the nix store. This patch redirects it to "~/.config/Ryujinx" on Linux.
];
+ makeWrapperArgs = [
+ # Without this Ryujinx fails to start on wayland. See https://github.com/Ryujinx/Ryujinx/issues/2714
+ "--set GDK_BACKEND x11"
+ "--set SDL_VIDEODRIVER x11"
+ ];
+
preInstall = ''
# workaround for https://github.com/Ryujinx/Ryujinx/issues/2349
mkdir -p $out/lib/sndio-6
diff --git a/third_party/nixpkgs/pkgs/applications/emulators/ryujinx/deps.nix b/third_party/nixpkgs/pkgs/applications/emulators/ryujinx/deps.nix
index 67e7b0dc72..4db1f8d2fe 100644
--- a/third_party/nixpkgs/pkgs/applications/emulators/ryujinx/deps.nix
+++ b/third_party/nixpkgs/pkgs/applications/emulators/ryujinx/deps.nix
@@ -41,9 +41,6 @@
(fetchNuGet { pname = "LibHac"; version = "0.16.1"; sha256 = "131qnqa1asdmymwdvpjza6w646b05jzn1cxjdxgwh7qdcdb77xyx"; })
(fetchNuGet { pname = "MicroCom.CodeGenerator.MSBuild"; version = "0.10.4"; sha256 = "1bdgy6g15d1mln1xpvs6sy0l2zvfs4hxw6nc3qm16qb8hdgvb73y"; })
(fetchNuGet { pname = "MicroCom.Runtime"; version = "0.10.4"; sha256 = "0ccbzp0d01dcahm7ban7xyh1rk7k2pkml3l5i7s85cqk5lnczpw2"; })
- (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0ndah9cqkgswhi60wrnni10j1d2hdg8jljij83lk1wbfqbng86jm"; })
- (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.6"; sha256 = "0i00xs472gpxbrwx593z520sp8nv3lmqi8z3zrj9cshqckq8knnx"; })
- (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.6"; sha256 = "1i66xw8h6qw1p0yf09hdy6l42bkhw3qi8q6zi7933mdkd4r3qr9n"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "2.9.6"; sha256 = "18mr1f0wpq0fir8vjnq0a8pz50zpnblr7sabff0yqx37c975934a"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.3"; sha256 = "09m4cpry8ivm9ga1abrxmvw16sslxhy2k5sl14zckhqb1j164im6"; })
(fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.4.0"; sha256 = "12rn6gl4viycwk3pz5hp5df63g66zvba4hnkwr3f0876jj5ivmsw"; })
@@ -56,16 +53,14 @@
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.3.0"; sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; })
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
+ (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
(fetchNuGet { pname = "Microsoft.DotNet.InternalAbstractions"; version = "1.0.0"; sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x"; })
+ (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "3.1.6"; sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5"; })
+ (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "3.1.1"; sha256 = "0qa04dspjl4qk7l8d66wqyrvhp5dxcfn2j4r8mmj362xyrp3r8sh"; })
(fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "6.15.0"; sha256 = "0dwx7dk8jr10784nriqbi364qbxzfwq0c6xia0ac5rzrp7179r4d"; })
(fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "6.15.0"; sha256 = "0jn9a20a2zixnkm3bmpmvmiv7mk0hqdlnpi0qgjkg1nir87czm19"; })
(fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "6.15.0"; sha256 = "1nbgydr45f7lp980xyrkzpyaw2mkkishjwp3slgxk7f0mz6q8i1v"; })
(fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.8.0"; sha256 = "1ln2mva7j2mpsj9rdhpk8vhm3pgd8wn563xqdcwd38avnhp74rm9"; })
- (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.6"; sha256 = "12b6ya9q5wszfq6yp38lpan8zws95gbp1vs9pydk3v82gai336r3"; })
- (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.6"; sha256 = "186ammhxnkh4m68f1s70rca23025lwzhxnc7m82wjg18rwz2vnkl"; })
- (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0fjbjh7yxqc9h47ix37y963xi9f9y99jvl26cw3x3kvjlb8x0bgj"; })
- (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.6"; sha256 = "0l15md6rzr2dvwvnk8xj1qz1dcjcbmp0aglnflrj8av60g5r1kwd"; })
- (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.6"; sha256 = "1a6hvkiy2z6z7v7rw1q61qqlw7w0hzc4my3rm94kwgjcv5qkpr5k"; })
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
@@ -93,6 +88,8 @@
(fetchNuGet { pname = "OpenTK.Graphics"; version = "4.7.2"; sha256 = "1wnf9x45ga336vq4px2a2fmma4zc9xrcr4qwrsmsh3l4w0d9s6ps"; })
(fetchNuGet { pname = "OpenTK.Mathematics"; version = "4.7.2"; sha256 = "0ay1a8spmy8pn5nlvvac796smp74hjpxm3swvxdrbqqg4l4xqlfz"; })
(fetchNuGet { pname = "OpenTK.OpenAL"; version = "4.7.2"; sha256 = "1m0wgf4khikyz2pvns5d9ffwm7psxjn9r4h128aqlca1iyay23f6"; })
+ (fetchNuGet { pname = "OpenTK.redist.glfw"; version = "3.3.7.25"; sha256 = "0yf84sql0bayndjacr385lzar0vnjaxz5klrsxflfi48mgc8g55s"; })
+ (fetchNuGet { pname = "OpenTK.Windowing.GraphicsLibraryFramework"; version = "4.7.2"; sha256 = "14nswj5ws9yq6lkfyjj1y1pd6522rjqascxs5jy9cgnp954lv2hv"; })
(fetchNuGet { pname = "PangoSharp"; version = "3.22.25.128"; sha256 = "0dkl9j0yd65s5ds9xj5z6yb7yca7wlycqz25m8dng20d13sqr1zp"; })
(fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
(fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
@@ -147,8 +144,13 @@
(fetchNuGet { pname = "Ryujinx.Audio.OpenAL.Dependencies"; version = "1.21.0.1"; sha256 = "0z5k42h252nr60d02p2ww9190d7k1kzrb26vil4ydfhxqqqv6w9l"; })
(fetchNuGet { pname = "Ryujinx.Graphics.Nvdec.Dependencies"; version = "5.0.1-build10"; sha256 = "05r3fh92raaydf4vcih77ivymbs97kqwjlgqdpaxa11aqq0hq753"; })
(fetchNuGet { pname = "Ryujinx.SDL2-CS"; version = "2.0.22-build20"; sha256 = "03d1rv0rlr2z7ynqixgj9xqlksplk1vsvq5wxjf5c6c6zcknx01r"; })
+ (fetchNuGet { pname = "shaderc.net"; version = "0.1.0"; sha256 = "0f35s9h0vj9f1rx9bssj66hibc3j9bzrb4wgb5q2jwkf5xncxbpq"; })
(fetchNuGet { pname = "SharpZipLib"; version = "1.3.3"; sha256 = "1gij11wfj1mqm10631cjpnhzw882bnzx699jzwhdqakxm1610q8x"; })
(fetchNuGet { pname = "ShimSkiaSharp"; version = "0.5.14"; sha256 = "0ym0ayik0vq2za9h0kr8mhjd9zk4hx25hrrfyyg9wrc164xa11qb"; })
+ (fetchNuGet { pname = "Silk.NET.Core"; version = "2.10.1"; sha256 = "02fabxqhfn2a8kyqmxcmraq09m1pvd8gbw8xad6y9iqyhr0q8s0j"; })
+ (fetchNuGet { pname = "Silk.NET.Vulkan"; version = "2.10.1"; sha256 = "03aapzb23lkn4qyq71lipcgj8h3ji12jjivrph535v0pwqx9db35"; })
+ (fetchNuGet { pname = "Silk.NET.Vulkan.Extensions.EXT"; version = "2.10.1"; sha256 = "0d8ml39dhxpj2rql88g7dw3rkcjxl5722rilw1wdnjaki7hqgrz7"; })
+ (fetchNuGet { pname = "Silk.NET.Vulkan.Extensions.KHR"; version = "2.10.1"; sha256 = "07zc7bjbg9h71m3l71i9gx5kwx7bhv4l7vha88wpi8h8f86zyvzd"; })
(fetchNuGet { pname = "SixLabors.Fonts"; version = "1.0.0-beta0013"; sha256 = "0r0aw8xxd32rwcawawcz6asiyggz02hnzg5hvz8gimq8hvwx1wql"; })
(fetchNuGet { pname = "SixLabors.ImageSharp"; version = "1.0.4"; sha256 = "0fmgn414my76gjgp89qlc210a0lqvnvkvk2fcwnpwxdhqpfvyilr"; })
(fetchNuGet { pname = "SixLabors.ImageSharp.Drawing"; version = "1.0.0-beta11"; sha256 = "0hl0rs3kr1zdnx3gdssxgli6fyvmwzcfp99f4db71s0i8j8b2bp5"; })
@@ -163,7 +165,7 @@
(fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.1-preview.1"; sha256 = "0mwj2yl4gn40lry03yqkj7sbi1drmm672dv88481sgah4c21lzrq"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.0"; sha256 = "135ni4rba4wy4wyzy9ip11f3dwb1ipn38z9ps1p9xhw8jc06y5vp"; })
(fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.1-preview.1"; sha256 = "1k50abd147pif9z9lkckbbk91ga1vv6k4skjz2n7wpll6fn0fvlv"; })
- (fetchNuGet { pname = "SPB"; version = "0.0.4-build17"; sha256 = "0arp7mwdn1w67qx8a0m90xh8waj15154ynswrbsp5w4wmzkcss1i"; })
+ (fetchNuGet { pname = "SPB"; version = "0.0.4-build24"; sha256 = "13wfjx5n540mlxlvys39g2rajrqbycdkyci2pcp3wygkqn4d87hm"; })
(fetchNuGet { pname = "Svg.Custom"; version = "0.5.14"; sha256 = "1wjghs2n5hk7zszzk2p2a8m6ga2gc8sfd5mdqi15sbfkmwg2nbw7"; })
(fetchNuGet { pname = "Svg.Model"; version = "0.5.14"; sha256 = "1xilk95bmnsl93sbr7pah0jrjrnccf1ikcn8s7rkm0yjkj382hc8"; })
(fetchNuGet { pname = "Svg.Skia"; version = "0.5.14"; sha256 = "02wv040wi8ijw9mwg3c84f8bfyfv9n99ji8q1v2bs11b463zsyd1"; })
@@ -192,6 +194,7 @@
(fetchNuGet { pname = "System.Diagnostics.Process"; version = "4.3.0"; sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7"; })
(fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
(fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
+ (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
(fetchNuGet { pname = "System.Drawing.Common"; version = "4.5.0"; sha256 = "0knqa0zsm91nfr34br8gx5kjqq4v81zdhqkacvs2hzc8nqk0ddhc"; })
(fetchNuGet { pname = "System.Drawing.Common"; version = "6.0.0"; sha256 = "02n8rzm58dac2np8b3xw8ychbvylja4nh6938l5k2fhyn40imlgz"; })
(fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
@@ -220,6 +223,7 @@
(fetchNuGet { pname = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; })
(fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
(fetchNuGet { pname = "System.Net.Primitives"; version = "4.0.11"; sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r"; })
+ (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
(fetchNuGet { pname = "System.Net.Sockets"; version = "4.1.0"; sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls"; })
(fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.3.0"; sha256 = "05kji1mv4sl75iwmc613p873145nynm02xiajx8pn0h2kx53d23s"; })
(fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
@@ -284,6 +288,7 @@
(fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "6.0.0"; sha256 = "0gm2kiz2ndm9xyzxgi0jhazgwslcs427waxgfa30m7yqll1kcrww"; })
(fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
(fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+ (fetchNuGet { pname = "System.Text.Json"; version = "4.7.0"; sha256 = "0fp3xrysccm5dkaac4yb51d793vywxks978kkl5x4db9gw29rfdr"; })
(fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
(fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
(fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
@@ -306,4 +311,5 @@
(fetchNuGet { pname = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
(fetchNuGet { pname = "System.Xml.XPath.XmlDocument"; version = "4.3.0"; sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm"; })
(fetchNuGet { pname = "Tmds.DBus"; version = "0.9.0"; sha256 = "0vvx6sg8lxm23g5jvm5wh2gfs95mv85vd52lkq7d1b89bdczczf3"; })
+ (fetchNuGet { pname = "XamlNameReferenceGenerator"; version = "1.3.4"; sha256 = "0w1bz5sr6y5fhgx1f54xyl8rx7y3kyf1fhacnd6akq8970zjdkdi"; })
]
diff --git a/third_party/nixpkgs/pkgs/applications/emulators/ryujinx/updater.sh b/third_party/nixpkgs/pkgs/applications/emulators/ryujinx/updater.sh
index c403af3785..5827271138 100755
--- a/third_party/nixpkgs/pkgs/applications/emulators/ryujinx/updater.sh
+++ b/third_party/nixpkgs/pkgs/applications/emulators/ryujinx/updater.sh
@@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell
-#! nix-shell -I nixpkgs=./. -i bash -p coreutils gnused curl common-updater-scripts nuget-to-nix nix-prefetch-git jq dotnet-sdk_6
+#! nix-shell -I nixpkgs=./. -i bash -p coreutils gnused curl common-updater-scripts nix-prefetch-git jq
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
@@ -75,16 +75,4 @@ fi
echo "building Nuget lockfile"
-STORE_SRC="$(nix-build . -A ryujinx.src --no-out-link)"
-SRC="$(mktemp -d /tmp/ryujinx-src.XXX)"
-cp -rT "$STORE_SRC" "$SRC"
-chmod -R +w "$SRC"
-pushd "$SRC"
-
-mkdir nuget_tmp.packages
-DOTNET_CLI_TELEMETRY_OPTOUT=1 dotnet restore Ryujinx.sln --packages nuget_tmp.packages
-
-nuget-to-nix ./nuget_tmp.packages >"$DEPS_FILE"
-
-popd
-rm -r "$SRC"
+$(nix-build -A ryujinx.fetch-deps --no-out-link) "$DEPS_FILE"
diff --git a/third_party/nixpkgs/pkgs/applications/emulators/yuzu/default.nix b/third_party/nixpkgs/pkgs/applications/emulators/yuzu/default.nix
index bc63771494..923dc54279 100644
--- a/third_party/nixpkgs/pkgs/applications/emulators/yuzu/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/emulators/yuzu/default.nix
@@ -15,13 +15,13 @@ let
in {
mainline = libsForQt5.callPackage ./generic.nix rec {
pname = "yuzu-mainline";
- version = "1092";
+ version = "1131";
src = fetchFromGitHub {
owner = "yuzu-emu";
repo = "yuzu-mainline";
rev = "mainline-0-${version}";
- sha256 = "1avcq924q0r8pfv1s0a88iyii7yixcxpb3yhlj0xg9zqnwp9r23y";
+ sha256 = "0lh8s59hrysfjz69yr0f44s3l4aaznmclq0xfnyblsk0cw9ripf6";
fetchSubmodules = true;
};
@@ -30,13 +30,13 @@ in {
early-access = libsForQt5.callPackage ./generic.nix rec {
pname = "yuzu-ea";
- version = "2841";
+ version = "2901";
src = fetchFromGitHub {
owner = "pineappleEA";
repo = "pineapple-src";
rev = "EA-${version}";
- sha256 = "16lrq9drv0x7gs1siq37m4zmh6d2g3vhnw9qcqajr9p0vmlpnh6l";
+ sha256 = "0jymm9sdsnayjaffmcbpjck4k2yslx8zid2vsm4jfdaajr244q2z";
fetchSubmodules = true;
};
diff --git a/third_party/nixpkgs/pkgs/applications/emulators/yuzu/generic.nix b/third_party/nixpkgs/pkgs/applications/emulators/yuzu/generic.nix
index f1ef925903..9dac4409ce 100644
--- a/third_party/nixpkgs/pkgs/applications/emulators/yuzu/generic.nix
+++ b/third_party/nixpkgs/pkgs/applications/emulators/yuzu/generic.nix
@@ -47,8 +47,11 @@ stdenv.mkDerivation rec {
# Replace icons licensed under CC BY-ND 3.0 with free ones to allow
# for binary redistribution: https://github.com/yuzu-emu/yuzu/pull/8104
- # The patch hosted on GitHub has the binary information stripped, so
- # it has been regenerated with "git format-patch --text --full-index --binary"
+ # The patch hosted on GitHub has the binary information in git format, which
+ # can’t be applied with patch(1), so it has been regenerated with
+ # "git format-patch --text --full-index --binary".
+ # Because pineapple strips all files beginning with a dot, the patch needs to
+ # be edited manually afterwards to remove all changes to those.
patches = [ ./yuzu-free-icons.patch ];
nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/emulators/yuzu/update.sh b/third_party/nixpkgs/pkgs/applications/emulators/yuzu/update.sh
index 8dedcab028..4972427627 100755
--- a/third_party/nixpkgs/pkgs/applications/emulators/yuzu/update.sh
+++ b/third_party/nixpkgs/pkgs/applications/emulators/yuzu/update.sh
@@ -53,7 +53,7 @@ updateEarlyAccess() {
OLD_EA_HASH="$(getLocalHash "yuzu-ea")"
NEW_EA_VERSION="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
- "https://api.github.com/repos/pineappleEA/pineapple-src/releases?per_page=1" | jq -r '.[0].tag_name' | cut -d"-" -f2 | cut -d" " -f1)"
+ "https://api.github.com/repos/pineappleEA/pineapple-src/releases?per_page=2" | jq -r '.[].tag_name' | grep '^EA-[0-9]*' | head -n1 | cut -d"-" -f2 | cut -d" " -f1)"
if [[ "${OLD_EA_VERSION}" = "${NEW_EA_VERSION}" ]]; then
echo "yuzu-ea is already up to date!"
diff --git a/third_party/nixpkgs/pkgs/applications/emulators/yuzu/yuzu-free-icons.patch b/third_party/nixpkgs/pkgs/applications/emulators/yuzu/yuzu-free-icons.patch
index e150a54ee8..4332d29e31 100644
--- a/third_party/nixpkgs/pkgs/applications/emulators/yuzu/yuzu-free-icons.patch
+++ b/third_party/nixpkgs/pkgs/applications/emulators/yuzu/yuzu-free-icons.patch
@@ -1,143 +1,304 @@
-From 23e02aec6ff6b0823c2e66f5cff737e0cd430a22 Mon Sep 17 00:00:00 2001
-From: Kyle K <190571+Docteh@users.noreply.github.com>
-Date: Mon, 28 Mar 2022 14:44:12 -0700
-Subject: [PATCH 1/2] Moving Icons away from CC BY-ND 3.0 for FOSS packaging
+From 44edc19f8f1ac0046770d6f3587a17bdd0f82d32 Mon Sep 17 00:00:00 2001
+From: Kyle Kienapfel
+Date: Tue, 19 Jul 2022 07:08:29 -0700
+Subject: [PATCH] Moving Icons away from CC BY-ND 3.0 for FOSS packaging
purposes
I've seen some comments stating that sharing pre-compiled packages
of yuzu is problematic for linux distributions due to some contents
having license of CC BY-ND 3.0
-Sources for the icons have been updated in the dist/license.md document
+Better licensed sources of icons have been found for most cases,
+see the changes to the .reuse/dep5 file for details.
-Also a note has been added to call attention to the two copies of a QT theme
-called QDarkStyleSheet
+Placeholders for connected/disconnected icons
+
+At the time of writing I consider these icons to be placeholders,
+hence three copies. colorful is grey, default is black, qdarkstyle is white
+
+connected is gnome/16x16/network-idle.png with no changes
+connected_notification is gnome/16x16/network-error.png with changes
+disconnected is gnome/16x16/network-offline.png with changes
+
+Looking at licenses: GNOME icon theme is distributed under the terms of either
+GNU LGPL v.3 or Creative Commons BY-SA 3.0 license.
+
+Debian appears to explicitly state they're licensing under
+Creative Commons Attribution-Share Alike 3.0
+
+From a tarball at the following link suggests we can just attribute GNOME Project
+https://download.gnome.org/sources/gnome-icon-theme/
+
+When attributing the artwork, using "GNOME Project" is enough.
+Please link to http://www.gnome.org where available.
---
- dist/license.md | 63 ++++++++++--------
- dist/qt_themes/colorful/icons/48x48/plus.png | Bin 496 -> 232 bytes
- .../colorful/icons/48x48/sd_card.png | Bin 680 -> 760 bytes
- dist/qt_themes/colorful/icons/48x48/star.png | Bin 1248 -> 1330 bytes
+ LICENSES/CC-BY-ND-3.0.txt | 87 ------------------
+ LICENSES/CC-BY-SA-3.0.txt | 60 ++++++++++++
+ .../colorful/icons/16x16/connected.png | Bin 362 -> 575 bytes
+ .../icons/16x16/connected_notification.png | Bin 607 -> 760 bytes
+ .../colorful/icons/16x16/disconnected.png | Bin 784 -> 648 bytes
+ .../colorful/icons/48x48/list-add.png | Bin 496 -> 204 bytes
+ .../colorful/icons/48x48/sd_card.png | Bin 680 -> 981 bytes
+ dist/qt_themes/colorful/icons/48x48/star.png | Bin 1248 -> 1108 bytes
+ .../icons/16x16/lock.png | Bin 401 -> 0 bytes
+ .../icons/16x16/view-refresh.png | Bin 362 -> 0 bytes
+ .../colorful_midnight_blue/style.qrc | 4 +-
.../qt_themes/default/icons/16x16/checked.png | Bin 657 -> 414 bytes
- dist/qt_themes/default/icons/16x16/failed.png | Bin 524 -> 361 bytes
+ .../default/icons/16x16/connected.png | Bin 269 -> 575 bytes
+ .../icons/16x16/connected_notification.png | Bin 517 -> 760 bytes
+ .../default/icons/16x16/disconnected.png | Bin 306 -> 648 bytes
+ dist/qt_themes/default/icons/16x16/failed.png | Bin 524 -> 431 bytes
dist/qt_themes/default/icons/16x16/lock.png | Bin 279 -> 318 bytes
.../default/icons/256x256/plus_folder.png | Bin 3135 -> 3521 bytes
.../default/icons/48x48/bad_folder.png | Bin 1088 -> 1007 bytes
dist/qt_themes/default/icons/48x48/chip.png | Bin 15070 -> 511 bytes
dist/qt_themes/default/icons/48x48/folder.png | Bin 410 -> 535 bytes
- dist/qt_themes/default/icons/48x48/plus.png | Bin 316 -> 274 bytes
- .../qt_themes/default/icons/48x48/sd_card.png | Bin 614 -> 638 bytes
+ .../default/icons/48x48/list-add.png | Bin 316 -> 204 bytes
+ .../default/icons/48x48/no_avatar.png | Bin 588 -> 678 bytes
+ .../qt_themes/default/icons/48x48/sd_card.png | Bin 614 -> 561 bytes
dist/qt_themes/default/icons/48x48/star.png | Bin 686 -> 1029 bytes
+ .../qdarkstyle/icons/16x16/connected.png | Bin 397 -> 575 bytes
+ .../icons/16x16/connected_notification.png | Bin 526 -> 760 bytes
+ .../qdarkstyle/icons/16x16/disconnected.png | Bin 444 -> 648 bytes
.../qt_themes/qdarkstyle/icons/16x16/lock.png | Bin 304 -> 343 bytes
.../qdarkstyle/icons/256x256/plus_folder.png | Bin 3438 -> 3931 bytes
.../qdarkstyle/icons/48x48/bad_folder.png | Bin 1098 -> 1061 bytes
.../qt_themes/qdarkstyle/icons/48x48/chip.png | Bin 15120 -> 551 bytes
.../qdarkstyle/icons/48x48/folder.png | Bin 542 -> 594 bytes
- .../qt_themes/qdarkstyle/icons/48x48/plus.png | Bin 339 -> 297 bytes
- .../qdarkstyle/icons/48x48/sd_card.png | Bin 676 -> 679 bytes
+ .../qdarkstyle/icons/48x48/list-add.png | Bin 339 -> 204 bytes
+ .../qdarkstyle/icons/48x48/no_avatar.png | Bin 708 -> 763 bytes
+ .../qdarkstyle/icons/48x48/sd_card.png | Bin 676 -> 587 bytes
.../qt_themes/qdarkstyle/icons/48x48/star.png | Bin 725 -> 1055 bytes
- .../icons/16x16/lock.png | Bin 304 -> 343 bytes
- .../icons/256x256/plus_folder.png | Bin 3438 -> 3931 bytes
- .../icons/48x48/bad_folder.png | Bin 1098 -> 1061 bytes
- .../icons/48x48/chip.png | Bin 15120 -> 551 bytes
- .../icons/48x48/folder.png | Bin 542 -> 594 bytes
- .../icons/48x48/plus.png | Bin 339 -> 297 bytes
- .../icons/48x48/sd_card.png | Bin 676 -> 679 bytes
- .../icons/48x48/star.png | Bin 725 -> 1055 bytes
- 30 files changed, 37 insertions(+), 26 deletions(-)
+ 38 files changed, 103 insertions(+), 103 deletions(-)
+ delete mode 100644 LICENSES/CC-BY-ND-3.0.txt
+ create mode 100644 LICENSES/CC-BY-SA-3.0.txt
+ delete mode 100644 dist/qt_themes/colorful_midnight_blue/icons/16x16/lock.png
+ delete mode 100644 dist/qt_themes/colorful_midnight_blue/icons/16x16/view-refresh.png
-diff --git a/dist/license.md b/dist/license.md
-index 7bdebfec1fccdf97a4cf24a1eddd94638d510d8b..745256c32947aeb5d77bae10bc3cce666542967e 100644
---- a/dist/license.md
-+++ b/dist/license.md
-@@ -2,34 +2,45 @@ The icons in this folder and its subfolders have the following licenses:
-
- Icon Name | License | Origin/Author
- --- | --- | ---
--qt_themes/default/icons/16x16/checked.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/default/icons/16x16/failed.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/default/icons/16x16/lock.png | CC BY-ND 3.0 | https://icons8.com
-+qt_themes/default/icons/16x16/checked.png |Apache 2.0 | https://github.com/google/material-design-icons/ (modified)
-+qt_themes/default/icons/16x16/failed.png | Apache 2.0 | https://github.com/google/material-design-icons/ (modified)
-+qt_themes/default/icons/16x16/lock.png | Apache 2.0 | https://github.com/google/material-design-icons/
- qt_themes/default/icons/16x16/view-refresh.png | Apache 2.0 | https://material.io
--qt_themes/default/icons/256x256/plus_folder.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/default/icons/48x48/bad_folder.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/default/icons/48x48/chip.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/default/icons/48x48/folder.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/default/icons/48x48/plus.png | CC0 1.0 | Designed by BreadFish64 from the Citra team
--qt_themes/default/icons/48x48/sd_card.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/default/icons/48x48/star.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/qdarkstyle/icons/16x16/lock.png | CC BY-ND 3.0 | https://icons8.com
-+qt_themes/default/icons/256x256/plus_folder.png | MIT | https://github.com/tailwindlabs/heroicons
-+qt_themes/default/icons/48x48/bad_folder.png | MIT | https://github.com/tailwindlabs/heroicons
-+qt_themes/default/icons/48x48/chip.png | MIT | https://github.com/tailwindlabs/heroicons
-+qt_themes/default/icons/48x48/folder.png | MIT | https://github.com/tailwindlabs/heroicons
-+qt_themes/default/icons/48x48/plus.png | MIT | https://github.com/tailwindlabs/heroicons
-+qt_themes/default/icons/48x48/sd_card.png | CC0 1.0 | SVG Repo https://www.svgrepo.com/svg/70351/sd-card
-+qt_themes/default/icons/48x48/star.png | MIT | https://github.com/tailwindlabs/heroicons
-+qt_themes/qdarkstyle/icons/16x16/lock.png | Apache 2.0 | https://github.com/google/material-design-icons/
- qt_themes/qdarkstyle/icons/16x16/view-refresh.png | Apache 2.0 | https://material.io
--qt_themes/qdarkstyle/icons/256x256/plus_folder.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/qdarkstyle/icons/48x48/bad_folder.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/qdarkstyle/icons/48x48/chip.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/qdarkstyle/icons/48x48/folder.png | CC BY-ND 3.0 | https://icons8.com
-+qt_themes/qdarkstyle/icons/256x256/plus_folder.png | MIT | https://github.com/tailwindlabs/heroicons
-+qt_themes/qdarkstyle/icons/48x48/bad_folder.png | MIT | https://github.com/tailwindlabs/heroicons
-+qt_themes/qdarkstyle/icons/48x48/chip.png | MIT | https://github.com/tailwindlabs/heroicons
-+qt_themes/qdarkstyle/icons/48x48/folder.png | MIT | https://github.com/tailwindlabs/heroicons
- qt_themes/qdarkstyle/icons/48x48/plus.png | CC0 1.0 | Designed by BreadFish64 from the Citra team
--qt_themes/qdarkstyle/icons/48x48/sd_card.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/qdarkstyle/icons/48x48/star.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/colorful/icons/16x16/lock.png | CC BY-ND 3.0 | https://icons8.com
-+qt_themes/qdarkstyle/icons/48x48/sd_card.png | CC0 1.0 | SVG Repo https://www.svgrepo.com/svg/70351/sd-card
-+qt_themes/qdarkstyle/icons/48x48/star.png | MIT | https://github.com/tailwindlabs/heroicons
-+qt_themes/qdarkstyle/ | MIT/CC BY 4.0 | Upstream https://github.com/ColinDuquesnoy/QDarkStyleSheet
+diff --git a/LICENSES/CC-BY-ND-3.0.txt b/LICENSES/CC-BY-ND-3.0.txt
+deleted file mode 100644
+index d9265b9f19e250785f5fc953c73e5f8915fcdd21..0000000000000000000000000000000000000000
+--- a/LICENSES/CC-BY-ND-3.0.txt
++++ /dev/null
+@@ -1,87 +0,0 @@
+-Creative Commons Attribution-NoDerivs 3.0 Unported
+-
+- CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.
+-
+-License
+-
+-THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
+-
+-BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
+-
+-1. Definitions
+-
+- a. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
+-
+- b. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
+-
+- c. "Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership.
+-
+- d. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
+-
+- e. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.
+-
+- f. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
+-
+- g. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
+-
+- h. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
+-
+- i. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.
+-
+-2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.
+-
+-3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
+-
+- a. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and,
+-
+- b. to Distribute and Publicly Perform the Work including as incorporated in Collections.
+-
+- c. For the avoidance of doubt:
+-
+- i. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
+-
+- ii. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
+-
+- iii. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.
+-
+-The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.
+-
+-4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
+-
+- a. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested.
+-
+- b. If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(b) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
+-
+- c. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation.
+-
+-5. Representations, Warranties and Disclaimer
+-
+-UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
+-
+-6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+-
+-7. Termination
+-
+- a. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
+-
+- b. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
+-
+-8. Miscellaneous
+-
+- a. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
+-
+- b. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+-
+- c. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
+-
+- d. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
+-
+- e. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.
+-
+-Creative Commons Notice
+-
+-Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor.
+-
+-Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of this License.
+-
+-Creative Commons may be contacted at http://creativecommons.org/.
+diff --git a/LICENSES/CC-BY-SA-3.0.txt b/LICENSES/CC-BY-SA-3.0.txt
+new file mode 100644
+index 0000000000000000000000000000000000000000..a29ac86c302d49546b1f854ada7f0c1ca5d7f659
+--- /dev/null
++++ b/LICENSES/CC-BY-SA-3.0.txt
+@@ -0,0 +1,60 @@
++Creative Commons Attribution-ShareAlike 3.0 Unported
+
-+qt_themes/qdarkstyle_midnight_blue/icons | See above | See the above qt_themes/qdarkstyle/icons entries
-+qt_themes/qdarkstyle_midnight_blue/ | MIT/CC BY 4.0 | Upstream https://github.com/ColinDuquesnoy/QDarkStyleSheet
++CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.
+
-+qt_themes/colorful/icons/16x16/lock.png | MIT | https://github.com/icons8/flat-color-icons
- qt_themes/colorful/icons/16x16/view-refresh.png | Apache 2.0 | https://material.io
--qt_themes/colorful/icons/256x256/plus_folder.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/colorful/icons/48x48/bad_folder.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/colorful/icons/48x48/chip.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/colorful/icons/48x48/folder.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/colorful/icons/48x48/plus.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/colorful/icons/48x48/sd_card.png | CC BY-ND 3.0 | https://icons8.com
--qt_themes/colorful/icons/48x48/star.png | CC BY-ND 3.0 | https://icons8.com
-+qt_themes/colorful/icons/256x256/plus_folder.png | MIT | https://github.com/icons8/flat-color-icons (modified)
-+qt_themes/colorful/icons/48x48/bad_folder.png | MIT | https://github.com/icons8/flat-color-icons (modified)
-+qt_themes/colorful/icons/48x48/chip.png | MIT | https://github.com/icons8/flat-color-icons (modified)
-+qt_themes/colorful/icons/48x48/folder.png | MIT | https://github.com/icons8/flat-color-icons
-+qt_themes/colorful/icons/48x48/plus.png | Apache 2.0 | https://remixicon.com/ (modified)
-+qt_themes/colorful/icons/48x48/sd_card.png | CC0 1.0 | https://www.svgrepo.com/svg/276818/sd-card
-+qt_themes/colorful/icons/48x48/star.png | CC0 1.0 | https://www.svgrepo.com/svg/13674/star
++License
+
-+qt_themes/colorful_dark/icons/16x16/lock.png | MIT | https://github.com/icons8/flat-color-icons (modified)
-+qt_themes/colorful_dark/icons/16x16/view-refresh.png | Apache 2.0 | https://material.io
++THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
+
-+qt_themes/colorful_midnight_blue/icons/16x16/lock.png | MIT | https://github.com/icons8/flat-color-icons (modified)
-+qt_themes/colorful_midnight_blue/icons/16x16/view-refresh.png | Apache 2.0 | https://material.io
-
--
++BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
++
++1. Definitions
++a. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
++b. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License.
++c. "Creative Commons Compatible License" means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License.
++d. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
++e. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike.
++f. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
++g. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.
++h. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
++i. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
++j. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
++k. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.
++2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.
++3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
++a. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
++b. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
++c. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
++d. to Distribute and Publicly Perform Adaptations.
++e. For the avoidance of doubt:
++i. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
++ii. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
++iii. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.
++The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.
++
++4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
++a. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested.
++b. You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License.
++c. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv), consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
++d. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.
++5. Representations, Warranties and Disclaimer
++UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
++
++6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
++7. Termination
++a. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
++b. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
++8. Miscellaneous
++a. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
++b. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
++c. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
++d. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
++e. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
++f. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.
++Creative Commons Notice
++
++Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor.
++
++Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of the License.
++
++Creative Commons may be contacted at http://creativecommons.org/.
\ No newline at end of file
-+
-diff --git a/dist/qt_themes/colorful/icons/48x48/plus.png b/dist/qt_themes/colorful/icons/48x48/plus.png
-index bc2c47c91a761228dc4ebdc8df8713119d5fec3a..ff3cf889e467cfa18e1af577ceff6b3931c5290c 100644
---- a/dist/qt_themes/colorful/icons/48x48/plus.png
-+++ b/dist/qt_themes/colorful/icons/48x48/plus.png
-@@ -1,3 +1,3 @@
+diff --git a/dist/qt_themes/colorful/icons/16x16/connected.png b/dist/qt_themes/colorful/icons/16x16/connected.png
+index d6052f1a09a9a828bf8d43ad1827d4d9d9cbae0f..0afc18cb7a19028fd567a7ca7ced62cd164657de 100644
+--- a/dist/qt_themes/colorful/icons/16x16/connected.png
++++ b/dist/qt_themes/colorful/icons/16x16/connected.png
+@@ -1,4 +1,5 @@
+ PNG
+
+-
IHDR a sRGB gAMA a pHYs od IDAT8Ocz`AA[5aɺ/A@qJNJޙY@?!%kʠJpRUaE5{dkgBaEղU_j
+-*RR`uuS
ɫa; yRLзxuSG7&P oS
(`J Kר!$J7 /D#w@ P%IKhLX.s4a J P I\ IENDB`
+\ No newline at end of file
++
IHDR a IDATxڝQiԶmۊ]YkCXvPڪm>OP%O/@iΜon:h&-F
t4Z
++NIRE
&" r!83|?~|G<Ǘ/+<~N
^Be
PkGKZeS%h0 IUpz9`
PP_2ZOYn
܅FcDPܷ -#je.j渇T鿻J9@"r7!`P?]7n]O2Y9ݨWVwto@zTƐ藺˟KLzf
++\;y@^);1T~ r`*ontoas#`EØTQh?PJJ&[UO2Xp1(0qʵy,;\^/ nwyw!&^
@_ȥчV0]czOYx돕B sb9NŒ reHGs IENDB`
+\ No newline at end of file
+diff --git a/dist/qt_themes/colorful/icons/16x16/connected_notification.png b/dist/qt_themes/colorful/icons/16x16/connected_notification.png
+index 0dfe032d58160f1a24f54040964b5b5f2e97a724..72466e098e471ae5a97c49a56536dd4bf62b3a08 100644
+--- a/dist/qt_themes/colorful/icons/16x16/connected_notification.png
++++ b/dist/qt_themes/colorful/icons/16x16/connected_notification.png
+@@ -1,6 +1,8 @@
+ PNG
+
+-
IHDR a sBIT|d pHYs p. tEXtSoftware www.inkscape.org< IDAT8ՒMHTasgb%,\DV$9臂
+-"DJED AUS- 'm Hb)l
+-AYiƲmg|;UOыY_g됢bdPsrbVXښEKA+0Yn+Gf
+-uVrg\d ujbo `I%Ȁg;O
-tݡi+iEcC DgiW֪boTd:Y/ƴ}9Z8V! ;