4149 files changed+145742−148821
1149 more files changed are not listed.
.editorconfig−5
@@ -55,11 +55,6 @@ trim_trailing_whitespace = unset
5555[*.lock]
5656indent_size = unset
5757
58−# trailing whitespace is an actual syntax element of classic Markdown/
59−# CommonMark to enforce a line break
60−[*.md]
61−trim_trailing_whitespace = unset
62−
6358[eggs.nix]
6459trim_trailing_whitespace = unset
6560
.github/CODEOWNERS+1−6
@@ -41,8 +41,7 @@
4141/pkgs/build-support/cc-wrapper @Ericson2314
4242/pkgs/build-support/bintools-wrapper @Ericson2314
4343/pkgs/build-support/setup-hooks @Ericson2314
44−/pkgs/build-support/setup-hooks/auto-patchelf.sh @layus
45−/pkgs/build-support/setup-hooks/auto-patchelf.py @layus
44+/pkgs/build-support/setup-hooks/auto-patchelf.sh @aszlig
4645
4746# Nixpkgs build-support
4847/pkgs/build-support/writers @lassulus @Profpatsch
@@ -285,7 +284,3 @@
285284/nixos/modules/services/misc/matrix-conduit.nix @piegamesde
286285/nixos/tests/matrix-appservice-irc.nix @piegamesde
287286/nixos/tests/matrix-conduit.nix @piegamesde
288−
289−# Dotnet
290−/pkgs/build-support/dotnet @IvarWithoutBones
291−/pkgs/development/compilers/dotnet @IvarWithoutBones
.github/workflows/update-terraform-providers.yml+5−6
@@ -25,15 +25,14 @@ jobs:
2525 git commit -m "${{ steps.setup.outputs.title }}" providers.json
2626 popd
2727 - name: create PR
28− uses: peter-evans/create-pull-request@v4
28+ uses: peter-evans/create-pull-request@v3
2929 with:
3030 body: |
31− Automatic update by [update-terraform-providers](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/update-terraform-providers.yml) action.
31+ Automatic update of terraform providers.
3232
33− Check that all providers build with:
34− ```
35− @ofborg build terraform-full
36− ```
33+ Created by [update-terraform-providers](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/update-terraform-providers.yml) action.
34+
35+ Check that all providers build with `@ofborg build terraform-full`
3736 branch: terraform-providers-update
3837 delete-branch: false
3938 labels: "2.status: work-in-progress"
doc/builders/fetchers.chapter.md+12−12
@@ -6,11 +6,11 @@ When using Nix, you will frequently need to download source code and other files
66
77Because fixed output derivations are _identified_ by their hash, a common mistake is to update a fetcher's URL or a version parameter, without updating the hash. **This will cause the old contents to be used.** So remember to always invalidate the hash argument.
88
9−For those who develop and maintain fetchers, a similar problem arises with changes to the implementation of a fetcher. These may cause a fixed output derivation to fail, but won't normally be caught by tests because the supposed output is already in the store or cache. For the purpose of testing, you can use a trick that is embodied by the [`invalidateFetcherByDrvHash`](#tester-invalidateFetcherByDrvHash) function. It uses the derivation `name` to create a unique output path per fetcher implementation, defeating the caching precisely where it would be harmful.
9+For those who develop and maintain fetchers, a similar problem arises with changes to the implementation of a fetcher. These may cause a fixed output derivation to fail, but won't normally be caught by tests because the supposed output is already in the store or cache. For the purpose of testing, you can use a trick that is embodied by the [`invalidateFetcherByDrvHash`](#sec-pkgs-invalidateFetcherByDrvHash) function. It uses the derivation `name` to create a unique output path per fetcher implementation, defeating the caching precisely where it would be harmful.
1010
1111## `fetchurl` and `fetchzip` {#fetchurl}
1212
13−Two basic fetchers are `fetchurl` and `fetchzip`. Both of these have two required arguments, a URL and a hash. The hash is typically `sha256`, although many more hash algorithms are supported. Nixpkgs contributors are currently recommended to use `sha256`. This hash will be used by Nix to identify your source. A typical usage of `fetchurl` is provided below.
13+Two basic fetchers are `fetchurl` and `fetchzip`. Both of these have two required arguments, a URL and a hash. The hash is typically `sha256`, although many more hash algorithms are supported. Nixpkgs contributors are currently recommended to use `sha256`. This hash will be used by Nix to identify your source. A typical usage of fetchurl is provided below.
1414
1515```nix
1616{ stdenv, fetchurl }:
@@ -24,9 +24,9 @@ stdenv.mkDerivation {
2424}
2525```
2626
27−The main difference between `fetchurl` and `fetchzip` is in how they store the contents. `fetchurl` will store the unaltered contents of the URL within the Nix store. `fetchzip` on the other hand, will decompress the archive for you, making files and directories directly accessible in the future. `fetchzip` can only be used with archives. Despite the name, `fetchzip` is not limited to .zip files and can also be used with any tarball.
27+The main difference between `fetchurl` and `fetchzip` is in how they store the contents. `fetchurl` will store the unaltered contents of the URL within the Nix store. `fetchzip` on the other hand will decompress the archive for you, making files and directories directly accessible in the future. `fetchzip` can only be used with archives. Despite the name, `fetchzip` is not limited to .zip files and can also be used with any tarball.
2828
29−`fetchpatch` works very similarly to `fetchurl` with the same arguments expected. It expects patch files as a source and performs normalization on them before computing the checksum. For example, it will remove comments or other unstable parts that are sometimes added by version control systems and can change over time.
29+`fetchpatch` works very similarly to `fetchurl` with the same arguments expected. It expects patch files as a source and performs normalization on them before computing the checksum. For example it will remove comments or other unstable parts that are sometimes added by version control systems and can change over time.
3030
3131Most other fetchers return a directory rather than a single file.
3232
@@ -38,9 +38,9 @@ Used with Subversion. Expects `url` to a Subversion directory, `rev`, and `sha25
3838
3939Used with Git. Expects `url` to a Git repo, `rev`, and `sha256`. `rev` in this case can be full the git commit id (SHA1 hash) or a tag name like `refs/tags/v1.0`.
4040
41−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.
41+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.
4242
43−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:
43+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 infomation:
4444
4545```nix
4646{ stdenv, fetchgit }:
@@ -78,17 +78,17 @@ A number of fetcher functions wrap part of `fetchurl` and `fetchzip`. They are m
7878
7979## `fetchFromGitHub` {#fetchfromgithub}
8080
81−`fetchFromGitHub` expects four arguments. `owner` is a string corresponding to the GitHub user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. Finally, `sha256` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available, but `sha256` is currently preferred.
81+`fetchFromGitHub` expects four arguments. `owner` is a string corresponding to the GitHub user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. Finally, `sha256` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available but `sha256` is currently preferred.
8282
8383`fetchFromGitHub` uses `fetchzip` to download the source archive generated by GitHub for the specified revision. If `leaveDotGit`, `deepClone` or `fetchSubmodules` are set to `true`, `fetchFromGitHub` will use `fetchgit` instead. Refer to its section for documentation of these options.
8484
8585## `fetchFromGitLab` {#fetchfromgitlab}
8686
87−This is used with GitLab repositories. The arguments expected are very similar to `fetchFromGitHub` above.
87+This is used with GitLab repositories. The arguments expected are very similar to fetchFromGitHub above.
8888
8989## `fetchFromGitiles` {#fetchfromgitiles}
9090
91−This is used with Gitiles repositories. The arguments expected are similar to `fetchgit`.
91+This is used with Gitiles repositories. The arguments expected are similar to fetchgit.
9292
9393## `fetchFromBitbucket` {#fetchfrombitbucket}
9494
@@ -96,11 +96,11 @@ This is used with BitBucket repositories. The arguments expected are very simila
9696
9797## `fetchFromSavannah` {#fetchfromsavannah}
9898
99−This is used with Savannah repositories. The arguments expected are very similar to `fetchFromGitHub` above.
99+This is used with Savannah repositories. The arguments expected are very similar to fetchFromGitHub above.
100100
101101## `fetchFromRepoOrCz` {#fetchfromrepoorcz}
102102
103−This is used with repo.or.cz repositories. The arguments expected are very similar to `fetchFromGitHub` above.
103+This is used with repo.or.cz repositories. The arguments expected are very similar to fetchFromGitHub above.
104104
105105## `fetchFromSourcehut` {#fetchfromsourcehut}
106106
@@ -111,4 +111,4 @@ or "hg"), `domain` and `fetchSubmodules`.
111111
112112If `fetchSubmodules` is `true`, `fetchFromSourcehut` uses `fetchgit`
113113or `fetchhg` with `fetchSubmodules` or `fetchSubrepos` set to `true`,
114−respectively. Otherwise, the fetcher uses `fetchzip`.
114+respectively. Otherwise the fetcher uses `fetchzip`.
doc/builders/images/dockertools.section.md+8−8
@@ -58,7 +58,7 @@ After the new layer has been created, its closure (to which `contents`, `config`
5858
5959At the end of the process, only one new single layer will be produced and added to the resulting image.
6060
61−The resulting repository will only list the single image `image/tag`. In the case of [the `buildImage` example](#ex-dockerTools-buildImage), it would be `redis/latest`.
61+The resulting repository will only list the single image `image/tag`. In the case of [the `buildImage` example](#ex-dockerTools-buildImage) it would be `redis/latest`.
6262
6363It is possible to inspect the arguments with which an image was built using its `buildArgs` attribute.
6464
@@ -87,7 +87,7 @@ pkgs.dockerTools.buildImage {
8787}
8888```
8989
90−Now the Docker CLI will display a reasonable date and sort the images as expected:
90+and now the Docker CLI will display a reasonable date and sort the images as expected:
9191
9292```ShellSession
9393$ docker images
@@ -95,7 +95,7 @@ REPOSITORY TAG IMAGE ID CREATED SIZE
9595hello latest de2bf4786de6 About a minute ago 25.2MB
9696```
9797
98−However, the produced images will not be binary reproducible.
98+however, the produced images will not be binary reproducible.
9999
100100## buildLayeredImage {#ssec-pkgs-dockerTools-buildLayeredImage}
101101
@@ -119,13 +119,13 @@ Create a Docker image with many of the store paths being on their own layer to i
119119
120120`contents` _optional_
121121
122−: Top-level paths in the container. Either a single derivation, or a list of derivations.
122+: Top level paths in the container. Either a single derivation, or a list of derivations.
123123
124124 *Default:* `[]`
125125
126126`config` _optional_
127127
128−: Run-time configuration of the container. A full list of the options are available at in the [Docker Image Specification v1.2.0](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions).
128+: Run-time configuration of the container. A full list of the options are available at in the [ Docker Image Specification v1.2.0 ](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions).
129129
130130 *Default:* `{}`
131131
@@ -195,9 +195,9 @@ pkgs.dockerTools.buildLayeredImage {
195195
196196Increasing the `maxLayers` increases the number of layers which have a chance to be shared between different images.
197197
198−Modern Docker installations support up to 128 layers, but older versions support as few as 42.
198+Modern Docker installations support up to 128 layers, however older versions support as few as 42.
199199
200−If the produced image will not be extended by other Docker builds, it is safe to set `maxLayers` to `128`. However, it will be impossible to extend the image further.
200+If the produced image will not be extended by other Docker builds, it is safe to set `maxLayers` to `128`. However it will be impossible to extend the image further.
201201
202202The first (`maxLayers-2`) most "popular" paths will have their own individual layers, then layer \#`maxLayers-1` will contain all the remaining "unpopular" paths, and finally layer \#`maxLayers` will contain the Image configuration.
203203
@@ -213,7 +213,7 @@ The image produced by running the output script can be piped directly into `dock
213213$(nix-build) | docker load
214214```
215215
216−Alternatively, the image be piped via `gzip` into `skopeo`, e.g., to copy it into a registry:
216+Alternatively, the image be piped via `gzip` into `skopeo`, e.g. to copy it into a registry:
217217
218218```ShellSession
219219$(nix-build) | gzip --fast | skopeo copy docker-archive:/dev/stdin docker://some_docker_registry/myimage:tag
doc/builders/images/ocitools.section.md+3−3
@@ -1,10 +1,10 @@
11# pkgs.ociTools {#sec-pkgs-ociTools}
22
3−`pkgs.ociTools` is a set of functions for creating containers according to the [OCI container specification v1.0.0](https://github.com/opencontainers/runtime-spec). Beyond that, it makes no assumptions about the container runner you choose to use to run the created container.
3+`pkgs.ociTools` is a set of functions for creating containers according to the [OCI container specification v1.0.0](https://github.com/opencontainers/runtime-spec). Beyond that it makes no assumptions about the container runner you choose to use to run the created container.
44
55## buildContainer {#ssec-pkgs-ociTools-buildContainer}
66
7−This function creates a simple OCI container that runs a single command inside of it. An OCI container consists of a `config.json` and a rootfs directory. The nix store of the container will contain all referenced dependencies of the given command.
7+This function creates a simple OCI container that runs a single command inside of it. An OCI container consists of a `config.json` and a rootfs directory.The nix store of the container will contain all referenced dependencies of the given command.
88
99The parameters of `buildContainer` with an example value are described below:
1010
@@ -30,7 +30,7 @@ buildContainer {
3030}
3131```
3232
33−- `args` specifies a set of arguments to run inside the container. This is the only required argument for `buildContainer`. All referenced packages inside the derivation will be made available inside the container.
33+- `args` specifies a set of arguments to run inside the container. This is the only required argument for `buildContainer`. All referenced packages inside the derivation will be made available inside the container
3434
3535- `mounts` specifies additional mount points chosen by the user. By default only a minimal set of necessary filesystems are mounted into the container (e.g procfs, cgroupfs)
3636
doc/builders/images/snaptools.section.md+1−1
@@ -33,7 +33,7 @@ in snapTools.makeSnap {
3333
3434## Build a Graphical Snap {#ssec-pkgs-snapTools-build-a-snap-firefox}
3535
36−Graphical programs require many more integrations with the host. This example uses Firefox as an example because it is one of the most complicated programs we could package.
36+Graphical programs require many more integrations with the host. This example uses Firefox as an example, because it is one of the most complicated programs we could package.
3737
3838``` {#ex-snapTools-buildSnap-firefox .nix}
3939let
doc/builders/packages/citrix.section.md+5−5
@@ -4,13 +4,13 @@ The [Citrix Workspace App](https://www.citrix.com/products/workspace-app/) is a
44
55## Basic usage {#sec-citrix-base}
66
7−The tarball archive needs to be downloaded manually, as the license agreements of the vendor for [Citrix Workspace](https://www.citrix.de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html) needs to be accepted first. Then run `nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz`. With the archive available in the store, the package can be built and installed with Nix.
7+The tarball archive needs to be downloaded manually as the license agreements of the vendor for [Citrix Workspace](https://www.citrix.de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html) needs to be accepted first. Then run `nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz`. With the archive available in the store the package can be built and installed with Nix.
88
9−## Citrix Self-service {#sec-citrix-selfservice}
9+## Citrix Selfservice {#sec-citrix-selfservice}
1010
11−The [self-service](https://support.citrix.com/article/CTX200337) is an application managing Citrix desktops and applications. Please note that this feature only works with at least citrix_workspace_20_06_0 and later versions.
11+The [selfservice](https://support.citrix.com/article/CTX200337) is an application managing Citrix desktops and applications. Please note that this feature only works with at least citrix_workspace_20_06_0 and later versions.
1212
13−In order to set this up, you first have to [download the `.cr` file from the Netscaler Gateway](https://its.uiowa.edu/support/article/102186). After that, you can configure the `selfservice` like this:
13+In order to set this up, you first have to [download the `.cr` file from the Netscaler Gateway](https://its.uiowa.edu/support/article/102186). After that you can configure the `selfservice` like this:
1414
1515```ShellSession
1616$ storebrowse -C ~/Downloads/receiverconfig.cr
@@ -19,7 +19,7 @@ $ selfservice
1919
2020## Custom certificates {#sec-citrix-custom-certs}
2121
22−The `Citrix Workspace App` in `nixpkgs` trusts several certificates [from the Mozilla database](https://curl.haxx.se/docs/caextract.html) by default. However, several companies using Citrix might require their own corporate certificate. On distros with imperative packaging, these certs can be stored easily in [`$ICAROOT`](https://developer-docs.citrix.com/projects/receiver-for-linux-command-reference/en/13.7/), however this directory is a store path in `nixpkgs`. In order to work around this issue, the package provides a simple mechanism to add custom certificates without rebuilding the entire package using `symlinkJoin`:
22+The `Citrix Workspace App` in `nixpkgs` trusts several certificates [from the Mozilla database](https://curl.haxx.se/docs/caextract.html) by default. However several companies using Citrix might require their own corporate certificate. On distros with imperative packaging these certs can be stored easily in [`$ICAROOT`](https://developer-docs.citrix.com/projects/receiver-for-linux-command-reference/en/13.7/), however this directory is a store path in `nixpkgs`. In order to work around this issue the package provides a simple mechanism to add custom certificates without rebuilding the entire package using `symlinkJoin`:
2323
2424```nix
2525with import <nixpkgs> { config.allowUnfree = true; };
doc/builders/packages/eclipse.section.md+5−5
@@ -8,9 +8,9 @@ Nixpkgs provides a number of packages that will install Eclipse in its various f
88$ nix-env -f '<nixpkgs>' -qaP -A eclipses --description
99```
1010
11−Once an Eclipse variant is installed, it can be run using the `eclipse` command, as expected. From within Eclipse, it is then possible to install plugins in the usual manner by either manually specifying an Eclipse update site or by installing the Marketplace Client plugin and using it to discover and install other plugins. This installation method provides an Eclipse installation that closely resemble a manually installed Eclipse.
11+Once an Eclipse variant is installed it can be run using the `eclipse` command, as expected. From within Eclipse it is then possible to install plugins in the usual manner by either manually specifying an Eclipse update site or by installing the Marketplace Client plugin and using it to discover and install other plugins. This installation method provides an Eclipse installation that closely resemble a manually installed Eclipse.
1212
13−If you prefer to install plugins in a more declarative manner, then Nixpkgs also offer a number of Eclipse plugins that can be installed in an _Eclipse environment_. This type of environment is created using the function `eclipseWithPlugins` found inside the `nixpkgs.eclipses` attribute set. This function takes as argument `{ eclipse, plugins ? [], jvmArgs ? [] }` where `eclipse` is a one of the Eclipse packages described above, `plugins` is a list of plugin derivations, and `jvmArgs` is a list of arguments given to the JVM running the Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add:
13+If you prefer to install plugins in a more declarative manner then Nixpkgs also offer a number of Eclipse plugins that can be installed in an _Eclipse environment_. This type of environment is created using the function `eclipseWithPlugins` found inside the `nixpkgs.eclipses` attribute set. This function takes as argument `{ eclipse, plugins ? [], jvmArgs ? [] }` where `eclipse` is a one of the Eclipse packages described above, `plugins` is a list of plugin derivations, and `jvmArgs` is a list of arguments given to the JVM running the Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add
1414
1515```nix
1616packageOverrides = pkgs: {
@@ -22,15 +22,15 @@ packageOverrides = pkgs: {
2222}
2323```
2424
25−to your Nixpkgs configuration (`~/.config/nixpkgs/config.nix`) and install it by running `nix-env -f '<nixpkgs>' -iA myEclipse` and afterward run Eclipse as usual. It is possible to find out which plugins are available for installation using `eclipseWithPlugins` by running:
25+to your Nixpkgs configuration (`~/.config/nixpkgs/config.nix`) and install it by running `nix-env -f '<nixpkgs>' -iA myEclipse` and afterward run Eclipse as usual. It is possible to find out which plugins are available for installation using `eclipseWithPlugins` by running
2626
2727```ShellSession
2828$ nix-env -f '<nixpkgs>' -qaP -A eclipses.plugins --description
2929```
3030
31−If there is a need to install plugins that are not available in Nixpkgs then it may be possible to define these plugins outside Nixpkgs using the `buildEclipseUpdateSite` and `buildEclipsePlugin` functions found in the `nixpkgs.eclipses.plugins` attribute set. Use the `buildEclipseUpdateSite` function to install a plugin distributed as an Eclipse update site. This function takes `{ name, src }` as argument, where `src` indicates the Eclipse update site archive. All Eclipse features and plugins within the downloaded update site will be installed. When an update site archive is not available, then the `buildEclipsePlugin` function can be used to install a plugin that consists of a pair of feature and plugin JARs. This function takes an argument `{ name, srcFeature, srcPlugin }` where `srcFeature` and `srcPlugin` are the feature and plugin JARs, respectively.
31+If there is a need to install plugins that are not available in Nixpkgs then it may be possible to define these plugins outside Nixpkgs using the `buildEclipseUpdateSite` and `buildEclipsePlugin` functions found in the `nixpkgs.eclipses.plugins` attribute set. Use the `buildEclipseUpdateSite` function to install a plugin distributed as an Eclipse update site. This function takes `{ name, src }` as argument where `src` indicates the Eclipse update site archive. All Eclipse features and plugins within the downloaded update site will be installed. When an update site archive is not available then the `buildEclipsePlugin` function can be used to install a plugin that consists of a pair of feature and plugin JARs. This function takes an argument `{ name, srcFeature, srcPlugin }` where `srcFeature` and `srcPlugin` are the feature and plugin JARs, respectively.
3232
33−Expanding the previous example with two plugins using the above functions, we have:
33+Expanding the previous example with two plugins using the above functions we have
3434
3535```nix
3636packageOverrides = pkgs: {
doc/builders/packages/elm.section.md+1−1
@@ -1,6 +1,6 @@
11# Elm {#sec-elm}
22
3−To start a development environment, run:
3+To start a development environment do
44
55```ShellSession
66nix-shell -p elmPackages.elm elmPackages.elm-format
doc/builders/packages/emacs.section.md+3−3
@@ -20,7 +20,7 @@ The Emacs package comes with some extra helpers to make it easier to configure.
2020}
2121```
2222
23−You can install it like any other packages via `nix-env -iA myEmacs`. However, this will only install those packages. It will not `configure` them for us. To do this, we need to provide a configuration file. Luckily, it is possible to do this from within Nix! By modifying the above example, we can make Emacs load a custom config file. The key is to create a package that provides a `default.el` file in `/share/emacs/site-start/`. Emacs knows to load this file automatically when it starts.
23+You can install it like any other packages via `nix-env -iA myEmacs`. However, this will only install those packages. It will not `configure` them for us. To do this, we need to provide a configuration file. Luckily, it is possible to do this from within Nix! By modifying the above example, we can make Emacs load a custom config file. The key is to create a package that provide a `default.el` file in `/share/emacs/site-start/`. Emacs knows to load this file automatically when it starts.
2424
2525```nix
2626{
@@ -101,9 +101,9 @@ You can install it like any other packages via `nix-env -iA myEmacs`. However, t
101101}
102102```
103103
104−This provides a fairly full Emacs start file. It will load in addition to the user's personal config. You can always disable it by passing `-q` to the Emacs command.
104+This provides a fairly full Emacs start file. It will load in addition to the user's presonal config. You can always disable it by passing `-q` to the Emacs command.
105105
106−Sometimes `emacs.pkgs.withPackages` is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to Melpa Unstable, and the highest for packages manually defined in `pkgs/top-level/emacs-packages.nix`). But you can't control these priorities when some package is installed as a dependency. You can override it on a per-package-basis, providing all the required dependencies manually, but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package, you can use `overrideScope'`.
106+Sometimes `emacs.pkgs.withPackages` is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to Melpa Unstable, and the highest for packages manually defined in `pkgs/top-level/emacs-packages.nix`). But you can't control this priorities when some package is installed as a dependency. You can override it on per-package-basis, providing all the required dependencies manually - but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package you can use `overrideScope'`.
107107
108108```nix
109109overrides = self: super: rec {
doc/builders/packages/etc-files.section.md+4−4
@@ -1,10 +1,10 @@
11# /etc files {#etc}
22
3−Certain calls in glibc require access to runtime files found in `/etc` such as `/etc/protocols` or `/etc/services` -- [getprotobyname](https://linux.die.net/man/3/getprotobyname) is one such function.
3+Certain calls in glibc require access to runtime files found in /etc such as `/etc/protocols` or `/etc/services` -- [getprotobyname](https://linux.die.net/man/3/getprotobyname) is one such function.
44
5−On non-NixOS distributions these files are typically provided by packages (i.e., [netbase](https://packages.debian.org/sid/netbase)) if not already pre-installed in your distribution. This can cause non-reproducibility for code if they rely on these files being present.
5+On non-NixOS distributions these files are typically provided by packages (i.e. [netbase](https://packages.debian.org/sid/netbase)) if not already pre-installed in your distribution. This can cause non-reproducibility for code if they rely on these files being present.
66
7−If [iana-etc](https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.iana-etc.x86_64-linux) is part of your `buildInputs`, then it will set the environment variables `NIX_ETC_PROTOCOLS` and `NIX_ETC_SERVICES` to the corresponding files in the package through a setup hook.
7+If [iana-etc](https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.iana-etc.x86_64-linux) is part of your _buildInputs_ then it will set the environment varaibles `NIX_ETC_PROTOCOLS` and `NIX_ETC_SERVICES` to the corresponding files in the package through a _setup-hook_.
88
99
1010```bash
@@ -15,4 +15,4 @@ NIX_ETC_SERVICES=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/e
1515NIX_ETC_PROTOCOLS=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/protocols
1616```
1717
18−Nixpkg's version of [glibc](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/glibc/default.nix) has been patched to check for the existence of these environment variables. If the environment variables are *not* set, then it will attempt to find the files at the default location within `/etc`.
18+Nixpkg's version of [glibc](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/glibc/default.nix) has been patched to check for the existence of these environment variables. If the environment variable are *not set*, then it will attempt to find the files at the default location within _/etc_.
doc/builders/packages/firefox.section.md+8−7
@@ -2,7 +2,7 @@
22
33## Build wrapped Firefox with extensions and policies {#build-wrapped-firefox-with-extensions-and-policies}
44
5−The `wrapFirefox` function allows to pass policies, preferences and extensions that are available to Firefox. With the help of `fetchFirefoxAddon` this allows to build a Firefox version that already comes with add-ons pre-installed:
5+The `wrapFirefox` function allows to pass policies, preferences and extension that are available to Firefox. With the help of `fetchFirefoxAddon` this allows build a Firefox version that already comes with addons pre-installed:
66
77```nix
88{
@@ -40,12 +40,13 @@ The `wrapFirefox` function allows to pass policies, preferences and extensions t
4040}
4141```
4242
43−If `nixExtensions != null`, then all manually installed add-ons will be uninstalled from your browser profile.
44−To view available enterprise policies, visit [enterprise policies](https://github.com/mozilla/policy-templates#enterprisepoliciesenabled)
45−or type into the Firefox URL bar: `about:policies#documentation`.
46−Nix installed add-ons do not have a valid signature, which is why signature verification is disabled. This does not compromise security because downloaded add-ons are checksummed and manual add-ons can't be installed. Also, make sure that the `name` field of `fetchFirefoxAddon` is unique. If you remove an add-on from the `nixExtensions` array, rebuild and start Firefox: the removed add-on will be completely removed with all of its settings.
43+If `nixExtensions != null` then all manually installed addons will be uninstalled from your browser profile.
44+To view available enterprise policies visit [enterprise policies](https://github.com/mozilla/policy-templates#enterprisepoliciesenabled)
45+or type into the Firefox url bar: `about:policies#documentation`.
46+Nix installed addons do not have a valid signature, which is why signature verification is disabled. This does not compromise security because downloaded addons are checksumed and manual addons can't be installed. Also make sure that the `name` field of fetchFirefoxAddon is unique. If you remove an addon from the nixExtensions array, rebuild and start Firefox the removed addon will be completly removed with all of its settings.
4747
4848## Troubleshooting {#sec-firefox-troubleshooting}
49−If add-ons are marked as broken or the signature is invalid, make sure you have Firefox ESR installed. Normal Firefox does not provide the ability anymore to disable signature verification for add-ons thus nix add-ons get disabled by the normal Firefox binary.
49+If addons are marked as broken or the signature is invalid, make sure you have Firefox ESR installed. Normal Firefox does not provide the ability anymore to disable signature verification for addons thus nix addons get disabled by the normal Firefox binary.
50+
51+If addons do not appear installed although they have been defined in your nix configuration file reset the local addon state of your Firefox profile by clicking `help -> restart with addons disabled -> restart -> refresh firefox`. This can happen if you switch from manual addon mode to nix addon mode and then back to manual mode and then again to nix addon mode.
5052
51−If add-ons do not appear installed despite being defined in your nix configuration file, reset the local add-on state of your Firefox profile by clicking `Help -> More Troubleshooting Information -> Refresh Firefox`. This can happen if you switch from manual add-on mode to nix add-on mode and then back to manual mode and then again to nix add-on mode.
doc/builders/packages/fish.section.md+1−1
@@ -36,7 +36,7 @@ using `buildFishPlugin` and running unit tests with the `fishtape` test runner.
3636## Fish wrapper {#sec-fish-wrapper}
3737
3838The `wrapFish` package is a wrapper around Fish which can be used to create
39−Fish shells initialized with some plugins as well as completions, configuration
39+Fish shells initialised with some plugins as well as completions, configuration
4040snippets and functions sourced from the given paths. This provides a convenient
4141way to test Fish plugins and scripts without having to alter the environment.
4242
doc/builders/packages/fuse.section.md+2−2
@@ -24,10 +24,10 @@ packages on macOS:
2424 checking for fuse.h... no
2525 configure: error: No fuse.h found.
2626
27−This happens on autoconf based projects that use `AC_CHECK_HEADERS` or
27+This happens on autoconf based projects that uses `AC_CHECK_HEADERS` or
2828`AC_CHECK_LIBS` to detect libfuse, and will occur even when the `fuse` package
2929is included in `buildInputs`. It happens because libfuse headers throw an error
30−on macOS if the `FUSE_USE_VERSION` macro is undefined. Many projects do define
30+on macOS if the `FUSE_USE_VERSION` macro is undefined. Many proejcts do define
3131`FUSE_USE_VERSION`, but only inside C source files. This results in the above
3232error at configure time because the configure script would attempt to compile
3333sample FUSE programs without defining `FUSE_USE_VERSION`.
doc/builders/packages/ibus.section.md+3−3
@@ -6,7 +6,7 @@ This package is an ibus-based completion method to speed up typing.
66
77IBus needs to be configured accordingly to activate `typing-booster`. The configuration depends on the desktop manager in use. For detailed instructions, please refer to the [upstream docs](https://mike-fabian.github.io/ibus-typing-booster/documentation.html).
88
9−On NixOS, you need to explicitly enable `ibus` with given engines before customizing your desktop to use `typing-booster`. This can be achieved using the `ibus` module:
9+On NixOS you need to explicitly enable `ibus` with given engines before customizing your desktop to use `typing-booster`. This can be achieved using the `ibus` module:
1010
1111```nix
1212{ pkgs, ... }: {
@@ -19,7 +19,7 @@ On NixOS, you need to explicitly enable `ibus` with given engines before customi
1919
2020## Using custom hunspell dictionaries {#sec-ibus-typing-booster-customize-hunspell}
2121
22−The IBus engine is based on `hunspell` to support completion in many languages. By default, the dictionaries `de-de`, `en-us`, `fr-moderne` `es-es`, `it-it`, `sv-se` and `sv-fi` are in use. To add another dictionary, the package can be overridden like this:
22+The IBus engine is based on `hunspell` to support completion in many languages. By default the dictionaries `de-de`, `en-us`, `fr-moderne` `es-es`, `it-it`, `sv-se` and `sv-fi` are in use. To add another dictionary, the package can be overridden like this:
2323
2424```nix
2525ibus-engines.typing-booster.override { langs = [ "de-at" "en-gb" ]; }
@@ -31,7 +31,7 @@ _Note: each language passed to `langs` must be an attribute name in `pkgs.hunspe
3131
3232The `ibus-engines.typing-booster` package contains a program named `emoji-picker`. To display all emojis correctly, a special font such as `noto-fonts-emoji` is needed:
3333
34−On NixOS, it can be installed using the following expression:
34+On NixOS it can be installed using the following expression:
3535
3636```nix
3737{ pkgs, ... }: { fonts.fonts = with pkgs; [ noto-fonts-emoji ]; }
doc/builders/packages/linux.section.md+7−7
@@ -4,7 +4,7 @@ The Nix expressions to build the Linux kernel are in [`pkgs/os-specific/linux/ke
44
55The function that builds the kernel has an argument `kernelPatches` which should be a list of `{name, patch, extraConfig}` attribute sets, where `name` is the name of the patch (which is included in the kernel’s `meta.description` attribute), `patch` is the patch itself (possibly compressed), and `extraConfig` (optional) is a string specifying extra options to be concatenated to the kernel configuration file (`.config`).
66
7−The kernel derivation exports an attribute `features` specifying whether optional functionality is or isn’t enabled. This is used in NixOS to implement kernel-specific behaviour. For instance, if the kernel has the `iwlwifi` feature (i.e., has built-in support for Intel wireless chipsets), then NixOS doesn’t have to build the external `iwlwifi` package:
7+The kernel derivation exports an attribute `features` specifying whether optional functionality is or isn’t enabled. This is used in NixOS to implement kernel-specific behaviour. For instance, if the kernel has the `iwlwifi` feature (i.e. has built-in support for Intel wireless chipsets), then NixOS doesn’t have to build the external `iwlwifi` package:
88
99```nix
1010modulesTree = [kernel]
@@ -14,19 +14,19 @@ modulesTree = [kernel]
1414
1515How to add a new (major) version of the Linux kernel to Nixpkgs:
1616
17−1. Copy the old Nix expression (e.g., `linux-2.6.21.nix`) to the new one (e.g., `linux-2.6.22.nix`) and update it.
17+1. Copy the old Nix expression (e.g. `linux-2.6.21.nix`) to the new one (e.g. `linux-2.6.22.nix`) and update it.
1818
19192. Add the new kernel to the `kernels` attribute set in `linux-kernels.nix` (e.g., create an attribute `kernel_2_6_22`).
2020
21213. Now we’re going to update the kernel configuration. First unpack the kernel. Then for each supported platform (`i686`, `x86_64`, `uml`) do the following:
2222
23− 1. Make a copy from the old config (e.g., `config-2.6.21-i686-smp`) to the new one (e.g., `config-2.6.22-i686-smp`).
23+ 1. Make an copy from the old config (e.g. `config-2.6.21-i686-smp`) to the new one (e.g. `config-2.6.22-i686-smp`).
2424
25− 2. Copy the config file for this platform (e.g., `config-2.6.22-i686-smp`) to `.config` in the kernel source tree.
25+ 2. Copy the config file for this platform (e.g. `config-2.6.22-i686-smp`) to `.config` in the kernel source tree.
2626
27− 3. Run `make oldconfig ARCH={i386,x86_64,um}` and answer all questions. (For the uml configuration, also add `SHELL=bash`.) Make sure to keep the configuration consistent between platforms (i.e., don’t enable some feature on `i686` and disable it on `x86_64`).
27+ 3. Run `make oldconfig ARCH={i386,x86_64,um}` and answer all questions. (For the uml configuration, also add `SHELL=bash`.) Make sure to keep the configuration consistent between platforms (i.e. don’t enable some feature on `i686` and disable it on `x86_64`).
2828
29− 4. If needed, you can also run `make menuconfig`:
29+ 4. If needed you can also run `make menuconfig`:
3030
3131 ```ShellSession
3232 $ nix-env -f "<nixpkgs>" -iA ncurses
@@ -34,7 +34,7 @@ How to add a new (major) version of the Linux kernel to Nixpkgs:
3434 $ make menuconfig ARCH=arch
3535 ```
3636
37− 5. Copy `.config` over the new config file (e.g., `config-2.6.22-i686-smp`).
37+ 5. Copy `.config` over the new config file (e.g. `config-2.6.22-i686-smp`).
3838
39394. Test building the kernel: `nix-build -A linuxKernel.kernels.kernel_2_6_22`. If it compiles, ship it! For extra credit, try booting NixOS with it.
4040
doc/builders/packages/locales.section.md+2−2
@@ -1,5 +1,5 @@
11# Locales {#locales}
22
3−To allow simultaneous use of packages linked against different versions of `glibc` with different locale archive formats, Nixpkgs patches `glibc` to rely on `LOCALE_ARCHIVE` environment variable.
3+To allow simultaneous use of packages linked against different versions of `glibc` with different locale archive formats Nixpkgs patches `glibc` to rely on `LOCALE_ARCHIVE` environment variable.
44
5−On non-NixOS distributions, this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the `LOCALE_ARCHIVE` variable pointing to `${glibcLocales}/lib/locale/locale-archive`. The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters `allLocales` and `locales` of the package.
5+On non-NixOS distributions this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the `LOCALE_ARCHIVE` variable pointing to `${glibcLocales}/lib/locale/locale-archive`. The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters `allLocales` and `locales` of the package.
doc/builders/packages/nginx.section.md+2−2
@@ -4,8 +4,8 @@
44
55## ETags on static files served from the Nix store {#sec-nginx-etag}
66
7−HTTP has a couple of different mechanisms for caching to prevent clients from having to download the same content repeatedly if a resource has not changed since the last time it was requested. When nginx is used as a server for static files, it implements the caching mechanism based on the [`Last-Modified`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified) response header automatically; unfortunately, it works by using filesystem timestamps to determine the value of the `Last-Modified` header. This doesn't give the desired behavior when the file is in the Nix store because all file timestamps are set to 0 (for reasons related to build reproducibility).
7+HTTP has a couple different mechanisms for caching to prevent clients from having to download the same content repeatedly if a resource has not changed since the last time it was requested. When nginx is used as a server for static files, it implements the caching mechanism based on the [`Last-Modified`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified) response header automatically; unfortunately, it works by using filesystem timestamps to determine the value of the `Last-Modified` header. This doesn't give the desired behavior when the file is in the Nix store, because all file timestamps are set to 0 (for reasons related to build reproducibility).
88
9−Fortunately, HTTP supports an alternative (and more effective) caching mechanism: the [`ETag`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag) response header. The value of the `ETag` header specifies some identifier for the particular content that the server is sending (e.g., a hash). When a client makes a second request for the same resource, it sends that value back in an `If-None-Match` header. If the ETag value is unchanged, then the server does not need to resend the content.
9+Fortunately, HTTP supports an alternative (and more effective) caching mechanism: the [`ETag`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag) response header. The value of the `ETag` header specifies some identifier for the particular content that the server is sending (e.g. a hash). When a client makes a second request for the same resource, it sends that value back in an `If-None-Match` header. If the ETag value is unchanged, then the server does not need to resend the content.
1010
1111As of NixOS 19.09, the nginx package in Nixpkgs is patched such that when nginx serves a file out of `/nix/store`, the hash in the store path is used as the `ETag` header in the HTTP response, thus providing proper caching functionality. This happens automatically; you do not need to do modify any configuration to get this behavior.
doc/builders/packages/opengl.section.md+1−1
@@ -12,4 +12,4 @@ The NixOS desktop or other non-headless configurations are the primary target fo
1212
1313If you are using a non-NixOS GNU/Linux/X11 desktop with free software video drivers, consider launching OpenGL-dependent programs from Nixpkgs with Nixpkgs versions of `libglvnd` and `mesa.drivers` in `LD_LIBRARY_PATH`. For Mesa drivers, the Linux kernel version doesn't have to match nixpkgs.
1414
15−For proprietary video drivers, you might have luck with also adding the corresponding video driver package.
15+For proprietary video drivers you might have luck with also adding the corresponding video driver package.
doc/builders/packages/shell-helpers.section.md+1−1
@@ -4,7 +4,7 @@ Some packages provide the shell integration to be more useful. But unlike other
44
55- `fzf` : `fzf-share`
66
7−E.g. `fzf` can then be used in the `.bashrc` like this:
7+E.g. `fzf` can then used in the `.bashrc` like this:
88
99```bash
1010source "$(fzf-share)/completion.bash"
doc/builders/packages/steam.section.md+8−8
@@ -2,20 +2,20 @@
22
33## Steam in Nix {#sec-steam-nix}
44
5−Steam is distributed as a `.deb` file, for now only as an i686 package (the amd64 package only has documentation). When unpacked, it has a script called `steam` that in Ubuntu (their target distro) would go to `/usr/bin`. When run for the first time, this script copies some files to the user's home, which include another script that is the ultimate responsible for launching the steam binary, which is also in `$HOME`.
5+Steam is distributed as a `.deb` file, for now only as an i686 package (the amd64 package only has documentation). When unpacked, it has a script called `steam` that in Ubuntu (their target distro) would go to `/usr/bin`. When run for the first time, this script copies some files to the user's home, which include another script that is the ultimate responsible for launching the steam binary, which is also in \$HOME.
66
77Nix problems and constraints:
88
9−- We don't have `/bin/bash` and many scripts point there. Same thing for `/usr/bin/python`.
9+- We don't have `/bin/bash` and many scripts point there. Similarly for `/usr/bin/python`.
1010- We don't have the dynamic loader in `/lib`.
11−- The `steam.sh` script in `$HOME` cannot be patched, as it is checked and rewritten by steam.
11+- The `steam.sh` script in \$HOME can not be patched, as it is checked and rewritten by steam.
1212- The steam binary cannot be patched, it's also checked.
1313
1414The current approach to deploy Steam in NixOS is composing a FHS-compatible chroot environment, as documented [here](http://sandervanderburg.blogspot.nl/2013/09/composing-fhs-compatible-chroot.html). This allows us to have binaries in the expected paths without disrupting the system, and to avoid patching them to work in a non FHS environment.
1515
1616## How to play {#sec-steam-play}
1717
18−Use `programs.steam.enable = true;` if you want to add steam to `systemPackages` and also enable a few workarounds as well as Steam controller support or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pro Controller.
18+Use `programs.steam.enable = true;` if you want to add steam to systemPackages and also enable a few workarrounds aswell as Steam controller support or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pr.
1919
2020## Troubleshooting {#sec-steam-troub}
2121
@@ -32,7 +32,7 @@ Use `programs.steam.enable = true;` if you want to add steam to `systemPackages`
3232- **Using the FOSS Radeon or nouveau (nvidia) drivers**
3333
3434 - The `newStdcpp` parameter was removed since NixOS 17.09 and should not be needed anymore.
35− - Steam ships statically linked with a version of `libcrypto` that conflicts with the one dynamically loaded by radeonsi_dri.so. If you get the error:
35+ - Steam ships statically linked with a version of libcrypto that conflics with the one dynamically loaded by radeonsi_dri.so. If you get the error
3636
3737 ```
3838 steam.sh: line 713: 7842 Segmentation fault (core dumped)
@@ -42,13 +42,13 @@ Use `programs.steam.enable = true;` if you want to add steam to `systemPackages`
4242
4343- **Java**
4444
45− 1. There is no java in steam chrootenv by default. If you get a message like:
45+ 1. There is no java in steam chrootenv by default. If you get a message like
4646
4747 ```
4848 /home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found
4949 ```
5050
51− you need to add:
51+ you need to add
5252
5353 ```nix
5454 steam.override { withJava = true; };
@@ -56,7 +56,7 @@ Use `programs.steam.enable = true;` if you want to add steam to `systemPackages`
5656
5757## steam-run {#sec-steam-run}
5858
59−The FHS-compatible chroot used for Steam can also be used to run other Linux games that expect a FHS environment. To use it, install the `steam-run` package and run the game with:
59+The FHS-compatible chroot used for Steam can also be used to run other Linux games that expect a FHS environment. To use it, install the `steam-run` package and run the game with
6060
6161```
6262steam-run ./foo
doc/builders/packages/urxvt.section.md+4−4
@@ -4,7 +4,7 @@ Urxvt, also known as rxvt-unicode, is a highly customizable terminal emulator.
44
55## Configuring urxvt {#sec-urxvt-conf}
66
7−In `nixpkgs`, urxvt is provided by the package `rxvt-unicode`. It can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, use an overlay or directly install an expression that overrides its configuration, such as:
7+In `nixpkgs`, urxvt is provided by the package `rxvt-unicode`. It can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, use an overlay or directly install an expression that overrides its configuration, such as
88
99```nix
1010rxvt-unicode.override {
@@ -58,14 +58,14 @@ rxvt-unicode.override {
5858
5959## Packaging urxvt plugins {#sec-urxvt-pkg}
6060
61−Urxvt plugins resides in `pkgs/applications/misc/rxvt-unicode-plugins`. To add a new plugin, create an expression in a subdirectory and add the package to the set in `pkgs/applications/misc/rxvt-unicode-plugins/default.nix`.
61+Urxvt plugins resides in `pkgs/applications/misc/rxvt-unicode-plugins`. To add a new plugin create an expression in a subdirectory and add the package to the set in `pkgs/applications/misc/rxvt-unicode-plugins/default.nix`.
6262
6363A plugin can be any kind of derivation, the only requirement is that it should always install perl scripts in `$out/lib/urxvt/perl`. Look for existing plugins for examples.
6464
65−If the plugin is itself a Perl package that needs to be imported from other plugins or scripts, add the following passthrough:
65+If the plugin is itself a perl package that needs to be imported from other plugins or scripts, add the following passthrough:
6666
6767```nix
6868passthru.perlPackages = [ "self" ];
6969```
7070
71−This will make the urxvt wrapper pick up the dependency and set up the Perl path accordingly.
71+This will make the urxvt wrapper pick up the dependency and set up the perl path accordingly.
doc/builders/packages/weechat.section.md+5−5
@@ -1,6 +1,6 @@
1−# WeeChat {#sec-weechat}
1+# Weechat {#sec-weechat}
22
3−WeeChat can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, install an expression that overrides its configuration, such as:
3+Weechat can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, install an expression that overrides its configuration such as
44
55```nix
66weechat.override {configure = {availablePlugins, ...}: {
@@ -13,7 +13,7 @@ If the `configure` function returns an attrset without the `plugins` attribute,
1313
1414The plugins currently available are `python`, `perl`, `ruby`, `guile`, `tcl` and `lua`.
1515
16−The Python and Perl plugins allows the addition of extra libraries. For instance, the `inotify.py` script in `weechat-scripts` requires D-Bus or libnotify, and the `fish.py` script requires `pycrypto`. To use these scripts, use the plugin's `withPackages` attribute:
16+The python and perl plugins allows the addition of extra libraries. For instance, the `inotify.py` script in `weechat-scripts` requires D-Bus or libnotify, and the `fish.py` script requires `pycrypto`. To use these scripts, use the plugin's `withPackages` attribute:
1717
1818```nix
1919weechat.override { configure = {availablePlugins, ...}: {
@@ -49,7 +49,7 @@ weechat.override {
4949
5050Further values can be added to the list of commands when running `weechat --run-command "your-commands"`.
5151
52−Additionally, it's possible to specify scripts to be loaded when starting `weechat`. These will be loaded before the commands from `init`:
52+Additionally it's possible to specify scripts to be loaded when starting `weechat`. These will be loaded before the commands from `init`:
5353
5454```nix
5555weechat.override {
@@ -64,7 +64,7 @@ weechat.override {
6464}
6565```
6666
67−In `nixpkgs` there's a subpackage which contains derivations for WeeChat scripts. Such derivations expect a `passthru.scripts` attribute, which contains a list of all scripts inside the store path. Furthermore, all scripts have to live in `$out/share`. An exemplary derivation looks like this:
67+In `nixpkgs` there's a subpackage which contains derivations for WeeChat scripts. Such derivations expect a `passthru.scripts` attribute which contains a list of all scripts inside the store path. Furthermore all scripts have to live in `$out/share`. An exemplary derivation looks like this:
6868
6969```nix
7070{ stdenv, fetchurl }:
doc/builders/special.xml+1
@@ -7,4 +7,5 @@
77 </para>
88 <xi:include href="special/fhs-environments.section.xml" />
99 <xi:include href="special/mkshell.section.xml" />
10+ <xi:include href="special/invalidateFetcherByDrvHash.section.xml" />
1011</chapter>
doc/builders/special/invalidateFetcherByDrvHash.section.mdnew file+31
@@ -0,0 +1,31 @@
1+
2+## `invalidateFetcherByDrvHash` {#sec-pkgs-invalidateFetcherByDrvHash}
3+
4+Use the derivation hash to invalidate the output via name, for testing.
5+
6+Type: `(a@{ name, ... } -> Derivation) -> a -> Derivation`
7+
8+Normally, fixed output derivations can and should be cached by their output
9+hash only, but for testing we want to re-fetch everytime the fetcher changes.
10+
11+Changes to the fetcher become apparent in the drvPath, which is a hash of
12+how to fetch, rather than a fixed store path.
13+By inserting this hash into the name, we can make sure to re-run the fetcher
14+every time the fetcher changes.
15+
16+This relies on the assumption that Nix isn't clever enough to reuse its
17+database of local store contents to optimize fetching.
18+
19+You might notice that the "salted" name derives from the normal invocation,
20+not the final derivation. `invalidateFetcherByDrvHash` has to invoke the fetcher
21+function twice: once to get a derivation hash, and again to produce the final
22+fixed output derivation.
23+
24+Example:
25+
26+ tests.fetchgit = invalidateFetcherByDrvHash fetchgit {
27+ name = "nix-source";
28+ url = "https://github.com/NixOS/nix";
29+ rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a";
30+ sha256 = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY=";
31+ };
doc/builders/testers.chapter.mddeleted−82
@@ -1,82 +0,0 @@
1−# Testers {#chap-testers}
2−This chapter describes several testing builders which are available in the <literal>testers</literal> namespace.
3−
4−## `testVersion` {#tester-testVersion}
5−
6−Checks the command output contains the specified version
7−
8−Although simplistic, this test assures that the main program
9−can run. While there's no substitute for a real test case,
10−it does catch dynamic linking errors and such. It also provides
11−some protection against accidentally building the wrong version,
12−for example when using an 'old' hash in a fixed-output derivation.
13−
14−Examples:
15−
16−```nix
17−passthru.tests.version = testVersion { package = hello; };
18−
19−passthru.tests.version = testVersion {
20− package = seaweedfs;
21− command = "weed version";
22−};
23−
24−passthru.tests.version = testVersion {
25− package = key;
26− command = "KeY --help";
27− # Wrong '2.5' version in the code. Drop on next version.
28− version = "2.5";
29−};
30−```
31−
32−## `testEqualDerivation` {#tester-testEqualDerivation}
33−
34−Checks that two packages produce the exact same build instructions.
35−
36−This can be used to make sure that a certain difference of configuration,
37−such as the presence of an overlay does not cause a cache miss.
38−
39−When the derivations are equal, the return value is an empty file.
40−Otherwise, the build log explains the difference via `nix-diff`.
41−
42−Example:
43−
44−```nix
45−testEqualDerivation
46− "The hello package must stay the same when enabling checks."
47− hello
48− (hello.overrideAttrs(o: { doCheck = true; }))
49−```
50−
51−## `invalidateFetcherByDrvHash` {#tester-invalidateFetcherByDrvHash}
52−
53−Use the derivation hash to invalidate the output via name, for testing.
54−
55−Type: `(a@{ name, ... } -> Derivation) -> a -> Derivation`
56−
57−Normally, fixed output derivations can and should be cached by their output
58−hash only, but for testing we want to re-fetch everytime the fetcher changes.
59−
60−Changes to the fetcher become apparent in the drvPath, which is a hash of
61−how to fetch, rather than a fixed store path.
62−By inserting this hash into the name, we can make sure to re-run the fetcher
63−every time the fetcher changes.
64−
65−This relies on the assumption that Nix isn't clever enough to reuse its
66−database of local store contents to optimize fetching.
67−
68−You might notice that the "salted" name derives from the normal invocation,
69−not the final derivation. `invalidateFetcherByDrvHash` has to invoke the fetcher
70−function twice: once to get a derivation hash, and again to produce the final
71−fixed output derivation.
72−
73−Example:
74−
75−```nix
76−tests.fetchgit = invalidateFetcherByDrvHash fetchgit {
77− name = "nix-source";
78− url = "https://github.com/NixOS/nix";
79− rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a";
80− sha256 = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY=";
81−};
82−```
doc/builders/trivial-builders.chapter.md+3−3
@@ -35,10 +35,10 @@ This works just like `runCommand`. The only difference is that it also provides
3535
3636## `runCommandLocal` {#trivial-builder-runCommandLocal}
3737
38−Variant of `runCommand` that forces the derivation to be built locally, it is not substituted. This is intended for very cheap commands (<1s execution time). It saves on the network round-trip and can speed up a build.
38+Variant of `runCommand` that forces the derivation to be built locally, it is not substituted. This is intended for very cheap commands (<1s execution time). It saves on the network roundrip and can speed up a build.
3939
4040::: {.note}
41−This sets [`allowSubstitutes` to `false`](https://nixos.org/nix/manual/#adv-attr-allowSubstitutes), so only use `runCommandLocal` if you are certain the user will always have a builder for the `system` of the derivation. This should be true for most trivial use cases (e.g., just copying some files to a different location or adding symlinks) because there the `system` is usually the same as `builtins.currentSystem`.
41+This sets [`allowSubstitutes` to `false`](https://nixos.org/nix/manual/#adv-attr-allowSubstitutes), so only use `runCommandLocal` if you are certain the user will always have a builder for the `system` of the derivation. This should be true for most trivial use cases (e.g. just copying some files to a different location or adding symlinks), because there the `system` is usually the same as `builtins.currentSystem`.
4242:::
4343
4444## `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin` {#trivial-builder-writeText}
@@ -219,5 +219,5 @@ produces an output path `/nix/store/<hash>-runtime-references` containing
219219/nix/store/<hash>-hello-2.10
220220```
221221
222−but none of `hello`'s dependencies because those are not referenced directly
222+but none of `hello`'s dependencies, because those are not referenced directly
223223by `hi`'s output.
doc/contributing/coding-conventions.chapter.md+5−5
@@ -214,15 +214,15 @@ Most of the time, these are the same. For instance, the package `e2fsprogs` has
214214
215215There are a few naming guidelines:
216216
217−- The `pname` attribute _should_ be identical to the upstream package name.
217+- The `name` attribute _should_ be identical to the upstream package name.
218218
219−- The `pname` and the `version` attribute _must not_ contain uppercase letters — e.g., `"mplayer" instead of `"MPlayer"`.
219+- The `name` attribute _must not_ contain uppercase letters — e.g., `"mplayer-1.0rc2"` instead of `"MPlayer-1.0rc2"`.
220220
221−- The `version` attribute _must_ start with a digit e.g`"0.3.1rc2".
221+- The version part of the `name` attribute _must_ start with a digit (following a dash) — e.g., `"hello-0.3.1rc2"`.
222222
223−- If a package is not a release but a commit from a repository, then the `version` attribute _must_ be the date of that (fetched) commit. The date _must_ be in `"unstable-YYYY-MM-DD"` format.
223+- If a package is not a release but a commit from a repository, then the version part of the name _must_ be the date of that (fetched) commit. The date _must_ be in `"YYYY-MM-DD"` format. Also append `"unstable"` to the name - e.g., `"pkgname-unstable-2014-09-23"`.
224224
225−- Dashes in the package `pname` _should_ be preserved in new variable names, rather than converted to underscores or camel cased — e.g., `http-parser` instead of `http_parser` or `httpParser`. The hyphenated style is preferred in all three package names.
225+- Dashes in the package name _should_ be preserved in new variable names, rather than converted to underscores or camel cased — e.g., `http-parser` instead of `http_parser` or `httpParser`. The hyphenated style is preferred in all three package names.
226226
227227- If there are multiple versions of a package, this _should_ be reflected in the variable names in `all-packages.nix`, e.g. `json-c_0_9` and `json-c_0_11`. If there is an obvious “default” version, make an attribute like `json-c = json-c_0_9;`. See also [](#sec-versioning)
228228
doc/contributing/submitting-changes.chapter.md+1−1
@@ -96,7 +96,7 @@ We use jbidwatcher as an example for a discontinued project here.
9696
97971. Have Nixpkgs checked out locally and up to date.
98981. Create a new branch for your change, e.g. `git checkout -b jbidwatcher`
99−1. Remove the actual package including its directory, e.g. `git rm -rf pkgs/applications/misc/jbidwatcher`
99+1. Remove the actual package including its directory, e.g. `rm -rf pkgs/applications/misc/jbidwatcher`
1001001. Remove the package from the list of all packages (`pkgs/top-level/all-packages.nix`).
1011011. Add an alias for the package name in `pkgs/top-level/aliases.nix` (There is also `pkgs/applications/editors/vim/plugins/aliases.nix`. Package sets typically do not have aliases, so we can't add them there.)
102102
doc/hooks/index.xmldeleted−10
@@ -1,10 +0,0 @@
1−<chapter xmlns="http://docbook.org/ns/docbook"
2− xmlns:xlink="http://www.w3.org/1999/xlink"
3− xmlns:xi="http://www.w3.org/2001/XInclude"
4− xml:id="chap-hooks">
5− <title>Hooks reference</title>
6− <para>
7− Nixpkgs has several hook packages that augment the stdenv phases.
8− </para>
9− <xi:include href="./postgresql-test-hook.section.xml" />
10−</chapter>
doc/hooks/postgresql-test-hook.section.mddeleted−59
@@ -1,59 +0,0 @@
1−
2−# `postgresqlTestHook` {#sec-postgresqlTestHook}
3−
4−This hook starts a PostgreSQL server during the `checkPhase`. Example:
5−
6−```nix
7−{ stdenv, postgresql, postgresqlTestHook }:
8−stdenv.mkDerivation {
9−
10− # ...
11−
12− checkInputs = [
13− postgresql
14− postgresqlTestHook
15− ];
16−}
17−```
18−
19−If you use a custom `checkPhase`, remember to add the `runHook` calls:
20−```nix
21− checkPhase ''
22− runHook preCheck
23−
24− # ... your tests
25−
26− runHook postCheck
27− ''
28−```
29−
30−## Variables {#sec-postgresqlTestHook-variables}
31−
32−The hook logic will read a number of variables and set them to a default value if unset or empty.
33−
34−Exported variables:
35−
36− - `PGDATA`: location of server files.
37− - `PGHOST`: location of UNIX domain socket directory; the default `host` in a connection string.
38− - `PGUSER`: user to create / log in with, default: `test_user`.
39− - `PGDATABASE`: database name, default: `test_db`.
40−
41−Bash-only variables:
42−
43− - `postgresqlTestUserOptions`: SQL options to use when creating the `$PGUSER` role, default: `LOGIN`.
44− - `postgresqlTestSetupSQL`: SQL commands to run as database administrator after startup, default: statements that create `$PGUSER` and `$PGDATABASE`.
45− - `postgresqlTestSetupCommands`: bash commands to run after database start, defaults to running `$postgresqlTestSetupSQL` as database administrator.
46− - `postgresqlEnableTCP`: set to `1` to enable TCP listening. Flaky; not recommended.
47− - `postgresqlStartCommands`: defaults to `pg_ctl start`.
48−
49−## TCP and the Nix sandbox {#sec-postgresqlTestHook-tcp}
50−
51−`postgresqlEnableTCP` relies on network sandboxing, which is not available on macOS and some custom Nix installations, resulting in flaky tests.
52−For this reason, it is disabled by default.
53−
54−The preferred solution is to make the test suite use a UNIX domain socket connection. This is the default behavior when no `host` connection parameter is provided.
55−Some test suites hardcode a value for `host` though, so a patch may be required. If you can upstream the patch, you can make `host` default to the `PGHOST` environment variable when set. Otherwise, you can patch it locally to omit the `host` connection string parameter altogether.
56−
57−::: {.note}
58−The error `libpq: failed (could not receive data from server: Connection refused` is generally an indication that the test suite is trying to connect through TCP.
59−:::
doc/languages-frameworks/chicken.section.mddeleted−49
@@ -1,49 +0,0 @@
1−# CHICKEN {#sec-chicken}
2−
3−[CHICKEN](https://call-cc.org/) is a
4−[R⁵RS](https://schemers.org/Documents/Standards/R5RS/HTML/)-compliant Scheme
5−compiler. It includes an interactive mode and a custom package format, "eggs".
6−
7−## Using Eggs
8−
9−Eggs described in nixpkgs are available inside the
10−`chickenPackages.chickenEggs` attrset. Including an egg as a build input is
11−done in the typical Nix fashion. For example, to include support for [SRFI
12−189](https://srfi.schemers.org/srfi-189/srfi-189.html) in a derivation, one
13−might write:
14−
15−```nix
16− buildInputs = [
17− chicken
18− chickenPackages.chickenEggs.srfi-189
19− ];
20−```
21−
22−Both `chicken` and its eggs have a setup hook which configures the environment
23−variables `CHICKEN_INCLUDE_PATH` and `CHICKEN_REPOSITORY_PATH`.
24−
25−## Updating Eggs
26−
27−nixpkgs only knows about a subset of all published eggs. It uses
28−[egg2nix](https://github.com/the-kenny/egg2nix) to generate a
29−package set from a list of eggs to include.
30−
31−The package set is regenerated by running the following shell commands:
32−
33−```
34−$ nix-shell -p chickenPackages.egg2nix
35−$ cd pkgs/development/compilers/chicken/5/
36−$ egg2nix eggs.scm > eggs.nix
37−```
38−
39−## Adding Eggs
40−
41−When we run `egg2nix`, we obtain one collection of eggs with
42−mutually-compatible versions. This means that when we add new eggs, we may
43−need to update existing eggs. To keep those separate, follow the procedure for
44−updating eggs before including more eggs.
45−
46−To include more eggs, edit `pkgs/development/compilers/chicken/5/eggs.scm`.
47−The first section of this file lists eggs which are required by `egg2nix`
48−itself; all other eggs go into the second section. After editing, follow the
49−procedure for updating eggs.
doc/languages-frameworks/cuda.section.mddeleted−34
@@ -1,34 +0,0 @@
1−# CUDA {#cuda}
2−
3−CUDA-only packages are stored in the `cudaPackages` packages set. This set
4−includes the `cudatoolkit`, portions of the toolkit in separate derivations,
5−`cudnn`, `cutensor` and `nccl`.
6−
7−A package set is available for each CUDA version, so for example
8−`cudaPackages_11_6`. Within each set is a matching version of the above listed
9−packages. Additionally, other versions of the packages that are packaged and
10−compatible are available as well. For example, there can be a
11−`cudaPackages.cudnn_8_3_2` package.
12−
13−To use one or more CUDA packages in an expression, give the expression a `cudaPackages` parameter, and in case CUDA is optional
14−```nix
15−cudaSupport ? false
16−cudaPackages ? {}
17−```
18−
19−When using `callPackage`, you can choose to pass in a different variant, e.g.
20−when a different version of the toolkit suffices
21−```nix
22−mypkg = callPackage { cudaPackages = cudaPackages_11_5; }
23−```
24−
25−If another version of say `cudnn` or `cutensor` is needed, you can override the
26−package set to make it the default. This guarantees you get a consistent package
27−set.
28−```nix
29−mypkg = let
30− cudaPackages = cudaPackages_11_5.overrideScope' (final: prev {
31− cudnn = prev.cudnn_8_3_2;
32− }});
33−in callPackage { inherit cudaPackages; };
34−```
doc/languages-frameworks/gnome.section.md+2−16
@@ -42,21 +42,7 @@ Unlike other libraries mentioned in this section, GdkPixbuf only supports a sing
4242
4343### Icons {#ssec-gnome-icons}
4444
45−When an application uses icons, an icon theme should be available in `XDG_DATA_DIRS` during runtime. The package for the default, icon-less [hicolor-icon-theme](https://www.freedesktop.org/wiki/Software/icon-theme/) (should be propagated by every icon theme) contains [a setup hook](#ssec-gnome-hooks-hicolor-icon-theme) that will pick up icon themes from `buildInputs` and add their datadirs to `XDG_ICON_DIRS` environment variable (this is Nixpkgs specific, not actually a XDG standard variable). Unfortunately, relying on that would mean every user has to download the theme included in the package expression no matter their preference. For that reason, we leave the installation of icon theme on the user. If you use one of the desktop environments, you probably already have an icon theme installed.
46−
47−In the rare case you need to use icons from dependencies (e.g. when an app forces an icon theme), you can use the following to pick them up:
48−
49−```nix
50− buildInputs = [
51− pantheon.elementary-icon-theme
52− ];
53− preFixup = ''
54− gappsWrapperArgs+=(
55− # The icon theme is hardcoded.
56− --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
57− )
58− '';
59−```
45+When an application uses icons, an icon theme should be available in `XDG_DATA_DIRS` during runtime. The package for the default, icon-less [hicolor-icon-theme](https://www.freedesktop.org/wiki/Software/icon-theme/) (should be propagated by every icon theme) contains [a setup hook](#ssec-gnome-hooks-hicolor-icon-theme) that will pick up icon themes from `buildInputs` and pass it to our wrapper. Unfortunately, relying on that would mean every user has to download the theme included in the package expression no matter their preference. For that reason, we leave the installation of icon theme on the user. If you use one of the desktop environments, you probably already have an icon theme installed.
6046
6147To avoid costly file system access when locating icons, GTK, [as well as Qt](https://woboq.com/blog/qicon-reads-gtk-icon-cache-in-qt57.html), can rely on `icon-theme.cache` files from the themes' top-level directories. These files are generated using `gtk-update-icon-cache`, which is expected to be run whenever an icon is added or removed to an icon theme (typically an application icon into `hicolor` theme) and some programs do indeed run this after icon installation. However, since packages are installed into their own prefix by Nix, this would lead to conflicts. For that reason, `gtk3` provides a [setup hook](#ssec-gnome-hooks-gtk-drop-icon-theme-cache) that will clean the file from installation. Since most applications only ship their own icon that will be loaded on start-up, it should not affect them too much. On the other hand, icon themes are much larger and more widely used so we need to cache them. Because we recommend installing icon themes globally, we will generate the cache files from all packages in a profile using a NixOS module. You can enable the cache generation using `gtk.iconCache.enable` option if your desktop environment does not already do that.
6248
@@ -112,7 +98,7 @@ For convenience, it also adds `dconf.lib` for a GIO module implementing a GSetti
11298
11399- []{#ssec-gnome-hooks-dconf} `dconf.lib` is a dependency of `wrapGAppsHook`, which then also adds it to the `GIO_EXTRA_MODULES` variable.
114100
115−- []{#ssec-gnome-hooks-hicolor-icon-theme} `hicolor-icon-theme`’s setup hook will add icon themes to `XDG_ICON_DIRS`.
101+- []{#ssec-gnome-hooks-hicolor-icon-theme} `hicolor-icon-theme`’s setup hook will add icon themes to `XDG_ICON_DIRS` which is prepended to `XDG_DATA_DIRS` by `wrapGAppsHook`.
116102
117103- []{#ssec-gnome-hooks-gobject-introspection} `gobject-introspection` setup hook populates `GI_TYPELIB_PATH` variable with `lib/girepository-1.0` directories of dependencies, which is then added to wrapper by `wrapGAppsHook`. It also adds `share` directories of dependencies to `XDG_DATA_DIRS`, which is intended to promote GIR files but it also [pollutes the closures](https://github.com/NixOS/nixpkgs/issues/32790) of packages using `wrapGAppsHook`.
118104
doc/languages-frameworks/index.xml−2
@@ -9,10 +9,8 @@
99 <xi:include href="android.section.xml" />
1010 <xi:include href="beam.section.xml" />
1111 <xi:include href="bower.section.xml" />
12− <xi:include href="chicken.section.xml" />
1312 <xi:include href="coq.section.xml" />
1413 <xi:include href="crystal.section.xml" />
15− <xi:include href="cuda.section.xml" />
1614 <xi:include href="dhall.section.xml" />
1715 <xi:include href="dotnet.section.xml" />
1816 <xi:include href="emscripten.section.xml" />
doc/manual.xml−2
@@ -25,10 +25,8 @@
2525 <title>Builders</title>
2626 <xi:include href="builders/fetchers.chapter.xml" />
2727 <xi:include href="builders/trivial-builders.chapter.xml" />
28− <xi:include href="builders/testers.chapter.xml" />
2928 <xi:include href="builders/special.xml" />
3029 <xi:include href="builders/images.xml" />
31− <xi:include href="hooks/index.xml" />
3230 <xi:include href="languages-frameworks/index.xml" />
3331 <xi:include href="builders/packages/index.xml" />
3432 </part>
doc/stdenv/meta.chapter.md−34
@@ -175,40 +175,6 @@ The NixOS tests are available as `nixosTests` in parameters of derivations. For
175175
176176NixOS tests run in a VM, so they are slower than regular package tests. For more information see [NixOS module tests](https://nixos.org/manual/nixos/stable/#sec-nixos-tests).
177177
178−Alternatively, you can specify other derivations as tests. You can make use of
179−the optional parameter to inject the correct package without
180−relying on non-local definitions, even in the presence of `overrideAttrs`.
181−Here that's `finalAttrs.finalPackage`, but you could choose a different name if
182−`finalAttrs` already exists in your scope.
183−
184−`(mypkg.overrideAttrs f).passthru.tests` will be as expected, as long as the
185−definition of `tests` does not rely on the original `mypkg` or overrides it in
186−all places.
187−
188−```nix
189−# my-package/default.nix
190−{ stdenv, callPackage }:
191−stdenv.mkDerivation (finalAttrs: {
192− # ...
193− passthru.tests.example = callPackage ./example.nix { my-package = finalAttrs.finalPackage; };
194−})
195−```
196−
197−```nix
198−# my-package/example.nix
199−{ runCommand, lib, my-package, ... }:
200−runCommand "my-package-test" {
201− nativeBuildInputs = [ my-package ];
202− src = lib.sources.sourcesByRegex ./. [ ".*.in" ".*.expected" ];
203−} ''
204− my-package --help
205− my-package <example.in >example.actual
206− diff -U3 --color=auto example.expected example.actual
207− mkdir $out
208−''
209−```
210−
211−
212178### `timeout` {#var-meta-timeout}
213179
214180A timeout (in seconds) for building the derivation. If the derivation takes longer than this time to build, it can fail due to breaking the timeout. However, all computers do not have the same computing power, hence some builders may decide to apply a multiplicative factor to this value. When filling this value in, try to keep it approximately consistent with other values already present in `nixpkgs`.
doc/stdenv/stdenv.chapter.md+1−55
@@ -317,60 +317,6 @@ The script will be usually run from the root of the Nixpkgs repository but you s
317317
318318For information about how to run the updates, execute `nix-shell maintainers/scripts/update.nix`.
319319
320−### Recursive attributes in `mkDerivation`
321−
322−If you pass a function to `mkDerivation`, it will receive as its argument the final arguments, including the overrides when reinvoked via `overrideAttrs`. For example:
323−
324−```nix
325−mkDerivation (finalAttrs: {
326− pname = "hello";
327− withFeature = true;
328− configureFlags =
329− lib.optionals finalAttrs.withFeature ["--with-feature"];
330−})
331−```
332−
333−Note that this does not use the `rec` keyword to reuse `withFeature` in `configureFlags`.
334−The `rec` keyword works at the syntax level and is unaware of overriding.
335−
336−Instead, the definition references `finalAttrs`, allowing users to change `withFeature`
337−consistently with `overrideAttrs`.
338−
339−`finalAttrs` also contains the attribute `finalPackage`, which includes the output paths, etc.
340−
341−Let's look at a more elaborate example to understand the differences between
342−various bindings:
343−
344−```nix
345−# `pkg` is the _original_ definition (for illustration purposes)
346−let pkg =
347− mkDerivation (finalAttrs: {
348− # ...
349−
350− # An example attribute
351− packages = [];
352−
353− # `passthru.tests` is a commonly defined attribute.
354− passthru.tests.simple = f finalAttrs.finalPackage;
355−
356− # An example of an attribute containing a function
357− passthru.appendPackages = packages':
358− finalAttrs.finalPackage.overrideAttrs (newSelf: super: {
359− packages = super.packages ++ packages';
360− });
361−
362− # For illustration purposes; referenced as
363− # `(pkg.overrideAttrs(x)).finalAttrs` etc in the text below.
364− passthru.finalAttrs = finalAttrs;
365− passthru.original = pkg;
366− });
367−in pkg
368−```
369−
370−Unlike the `pkg` binding in the above example, the `finalAttrs` parameter always references the final attributes. For instance `(pkg.overrideAttrs(x)).finalAttrs.finalPackage` is identical to `pkg.overrideAttrs(x)`, whereas `(pkg.overrideAttrs(x)).original` is the same as the original `pkg`.
371−
372−See also the section about [`passthru.tests`](#var-meta-tests).
373−
374320## Phases {#sec-stdenv-phases}
375321
376322`stdenv.mkDerivation` sets the Nix [derivation](https://nixos.org/manual/nix/stable/expressions/derivations.html#derivations)'s builder to a script that loads the stdenv `setup.sh` bash library and calls `genericBuild`. Most packaging functions rely on this default builder.
@@ -1097,7 +1043,7 @@ You can also specify a `runtimeDependencies` variable which lists dependencies t
10971043
10981044In certain situations you may want to run the main command (`autoPatchelf`) of the setup hook on a file or a set of directories instead of unconditionally patching all outputs. This can be done by setting the `dontAutoPatchelf` environment variable to a non-empty value.
10991045
1100−By default `autoPatchelf` will fail as soon as any ELF file requires a dependency which cannot be resolved via the given build inputs. In some situations you might prefer to just leave missing dependencies unpatched and continue to patch the rest. This can be achieved by setting the `autoPatchelfIgnoreMissingDeps` environment variable to a non-empty value. `autoPatchelfIgnoreMissingDeps` can be set to a list like `autoPatchelfIgnoreMissingDeps = [ "libcuda.so.1" "libcudart.so.1" ];` or to simply `[ "*" ]` to ignore all missing dependencies.
1046+By default `autoPatchelf` will fail as soon as any ELF file requires a dependency which cannot be resolved via the given build inputs. In some situations you might prefer to just leave missing dependencies unpatched and continue to patch the rest. This can be achieved by setting the `autoPatchelfIgnoreMissingDeps` environment variable to a non-empty value.
11011047
11021048The `autoPatchelf` command also recognizes a `--no-recurse` command line flag, which prevents it from recursing into subdirectories.
11031049
doc/using/overrides.chapter.md+2−6
@@ -39,18 +39,14 @@ The function `overrideAttrs` allows overriding the attribute set passed to a `st
3939Example usage:
4040
4141```nix
42−helloWithDebug = pkgs.hello.overrideAttrs (finalAttrs: previousAttrs: {
42+helloWithDebug = pkgs.hello.overrideAttrs (oldAttrs: rec {
4343 separateDebugInfo = true;
4444});
4545```
4646
4747In the above example, the `separateDebugInfo` attribute is overridden to be true, thus building debug info for `helloWithDebug`, while all other attributes will be retained from the original `hello` package.
4848
49−The argument `previousAttrs` is conventionally used to refer to the attr set originally passed to `stdenv.mkDerivation`.
50−
51−The argument `finalAttrs` refers to the final attributes passed to `mkDerivation`, plus the `finalPackage` attribute which is equal to the result of `mkDerivation` or subsequent `overrideAttrs` calls.
52−
53−If only a one-argument function is written, the argument has the meaning of `previousAttrs`.
49+The argument `oldAttrs` is conventionally used to refer to the attr set originally passed to `stdenv.mkDerivation`.
5450
5551::: {.note}
5652Note that `separateDebugInfo` is processed only by the `stdenv.mkDerivation` function, not the generated, raw Nix derivation. Thus, using `overrideDerivation` will not work in this case, as it overrides only the attributes of the final derivation. It is for this reason that `overrideAttrs` should be preferred in (almost) all cases to `overrideDerivation`, i.e. to allow using `stdenv.mkDerivation` to process input arguments, as well as the fact that it is easier to use (you can use the same attribute names you see in your Nix code, instead of the ones generated (e.g. `buildInputs` vs `nativeBuildInputs`), and it involves less typing).
lib/default.nix+2−7
@@ -11,9 +11,6 @@ let
1111 callLibs = file: import file { lib = self; };
1212 in {
1313
14− # interacting with flakes
15− flakes = callLibs ./flakes.nix;
16−
1714 # often used, or depending on very little
1815 trivial = callLibs ./trivial.nix;
1916 fixedPoints = callLibs ./fixed-points.nix;
@@ -62,7 +59,6 @@ let
6259 # linux kernel configuration
6360 kernel = callLibs ./kernel.nix;
6461
65− inherit (self.flakes) callLocklessFlake;
6662 inherit (builtins) add addErrorContext attrNames concatLists
6763 deepSeq elem elemAt filter genericClosure genList getAttr
6864 hasAttr head isAttrs isBool isInt isList isString length
@@ -98,8 +94,7 @@ let
9894 concatImapStringsSep makeSearchPath makeSearchPathOutput
9995 makeLibraryPath makeBinPath optionalString
10096 hasInfix hasPrefix hasSuffix stringToCharacters stringAsChars escape
101− escapeShellArg escapeShellArgs isValidPosixName toShellVar toShellVars
102− escapeRegex escapeXML replaceChars lowerChars
97+ escapeShellArg escapeShellArgs escapeRegex escapeXML replaceChars lowerChars
10398 upperChars toLower toUpper addContextFrom splitString
10499 removePrefix removeSuffix versionOlder versionAtLeast
105100 getName getVersion
@@ -113,7 +108,7 @@ let
113108 makeScope makeScopeWithSplicing;
114109 inherit (self.meta) addMetaAttrs dontDistribute setName updateName
115110 appendToName mapDerivationAttrset setPrio lowPrio lowPrioSet hiPrio
116− hiPrioSet getLicenseFromSpdxId getExe;
111+ hiPrioSet getLicenseFromSpdxId;
117112 inherit (self.sources) pathType pathIsDirectory cleanSourceFilter
118113 cleanSource sourceByRegex sourceFilesBySuffices
119114 commitIdFromGitRepo cleanSourceWith pathHasContext
lib/flakes.nixdeleted−22
@@ -1,22 +0,0 @@
1−{ lib }:
2−
3−rec {
4−
5− /* imports a flake.nix without acknowledging its lock file, useful for
6− referencing subflakes from a parent flake. The second argument allows
7− specifying the inputs of this flake.
8−
9− Example:
10− callLocklessFlake {
11− path = ./directoryContainingFlake;
12− inputs = { inherit nixpkgs; };
13− }
14− */
15− callLocklessFlake = { path, inputs ? { } }:
16− let
17− self = { outPath = path; } //
18− ((import (path + "/flake.nix")).outputs (inputs // { self = self; }));
19− in
20− self;
21−
22−}
lib/meta.nix−14
@@ -126,18 +126,4 @@ rec {
126126 lib.warn "getLicenseFromSpdxId: No license matches the given SPDX ID: ${licstr}"
127127 { shortName = licstr; }
128128 );
129−
130− /* Get the path to the main program of a derivation with either
131− meta.mainProgram or pname or name
132−
133− Type: getExe :: derivation -> string
134−
135− Example:
136− getExe pkgs.hello
137− => "/nix/store/g124820p9hlv4lj8qplzxw1c44dxaw1k-hello-2.12/bin/hello"
138− getExe pkgs.mustache-go
139− => "/nix/store/am9ml4f4ywvivxnkiaqwr0hyxka1xjsf-mustache-go-1.3.0/bin/mustache"
140− */
141− getExe = x:
142− "${lib.getBin x}/bin/${x.meta.mainProgram or (lib.getName x)}";
143129}
lib/modules.nix+2−11
@@ -113,10 +113,6 @@ rec {
113113 args ? {}
114114 , # This would be remove in the future, Prefer _module.check option instead.
115115 check ? true
116− # Internal variable to avoid `_key` collisions regardless
117− # of `extendModules`. Used in `submoduleWith`.
118− # Test case: lib/tests/modules, "168767"
119− , extensionOffset ? 0
120116 }:
121117 let
122118 withWarnings = x:
@@ -160,10 +156,7 @@ rec {
160156 type = types.lazyAttrsOf types.raw;
161157 # Only render documentation once at the root of the option tree,
162158 # not for all individual submodules.
163− # Allow merging option decls to make this internal regardless.
164− ${if prefix == []
165− then null # unset => visible
166− else "internal"} = true;
159+ internal = prefix != [];
167160 # TODO: Change the type of this option to a submodule with a
168161 # freeformType, so that individual arguments can be documented
169162 # separately
@@ -345,17 +338,15 @@ rec {
345338 modules ? [],
346339 specialArgs ? {},
347340 prefix ? [],
348− extensionOffset ? length modules,
349341 }:
350342 evalModules (evalModulesArgs // {
351343 modules = regularModules ++ modules;
352344 specialArgs = evalModulesArgs.specialArgs or {} // specialArgs;
353345 prefix = extendArgs.prefix or evalModulesArgs.prefix;
354− inherit extensionOffset;
355346 });
356347
357348 type = lib.types.submoduleWith {
358− inherit modules specialArgs extensionOffset;
349+ inherit modules specialArgs;
359350 };
360351
361352 result = withWarnings {
lib/strings.nix+4−61
@@ -17,7 +17,6 @@ rec {
1717 head
1818 isInt
1919 isList
20− isAttrs
2120 isString
2221 match
2322 parseDrvName
@@ -254,7 +253,10 @@ rec {
254253 => false
255254 */
256255 hasInfix = infix: content:
257− builtins.match ".*${escapeRegex infix}.*" "${content}" != null;
256+ let
257+ drop = x: substring 1 (stringLength x) x;
258+ in hasPrefix infix content
259+ || content != "" && hasInfix infix (drop content);
258260
259261 /* Convert a string to a list of characters (i.e. singleton strings).
260262 This allows you to, e.g., map a function over each character. However,
@@ -325,65 +327,6 @@ rec {
325327 */
326328 escapeShellArgs = concatMapStringsSep " " escapeShellArg;
327329
328− /* Test whether the given name is a valid POSIX shell variable name.
329−
330− Type: string -> bool
331−
332− Example:
333− isValidPosixName "foo_bar000"
334− => true
335− isValidPosixName "0-bad.jpg"
336− => false
337− */
338− isValidPosixName = name: match "[a-zA-Z_][a-zA-Z0-9_]*" name != null;
339−
340− /* Translate a Nix value into a shell variable declaration, with proper escaping.
341−
342− Supported value types are strings (mapped to regular variables), lists of strings
343− (mapped to Bash-style arrays) and attribute sets of strings (mapped to Bash-style
344− associative arrays). Note that "strings" include string-coercible values like paths.
345−
346− Strings are translated into POSIX sh-compatible code; lists and attribute sets
347− assume a shell that understands Bash syntax (e.g. Bash or ZSH).
348−
349− Type: string -> (string | listOf string | attrsOf string) -> string
350−
351− Example:
352− ''
353− ${toShellVar "foo" "some string"}
354− [[ "$foo" == "some string" ]]
355− ''
356− */
357− toShellVar = name: value:
358− lib.throwIfNot (isValidPosixName name) "toShellVar: ${name} is not a valid shell variable name" (
359− if isAttrs value then
360− "declare -A ${name}=(${
361− concatStringsSep " " (lib.mapAttrsToList (n: v:
362− "[${escapeShellArg n}]=${escapeShellArg v}"
363− ) value)
364− })"
365− else if isList value then
366− "declare -a ${name}=(${escapeShellArgs value})"
367− else
368− "${name}=${escapeShellArg value}"
369− );
370−
371− /* Translate an attribute set into corresponding shell variable declarations
372− using `toShellVar`.
373−
374− Type: attrsOf (string | listOf string | attrsOf string) -> string
375−
376− Example:
377− let
378− foo = "value";
379− bar = foo;
380− in ''
381− ${toShellVars { inherit foo bar; }}
382− [[ "$foo" == "$bar" ]]
383− ''
384− */
385− toShellVars = vars: concatStringsSep "\n" (lib.mapAttrsToList toShellVar vars);
386−
387330 /* Turn a string into a Nix expression representing that string
388331
389332 Type: string -> string
lib/systems/doubles.nix−2
@@ -74,8 +74,6 @@ in {
7474 mips = filterDoubles predicates.isMips;
7575 mmix = filterDoubles predicates.isMmix;
7676 riscv = filterDoubles predicates.isRiscV;
77− riscv32 = filterDoubles predicates.isRiscV32;
78− riscv64 = filterDoubles predicates.isRiscV64;
7977 vc4 = filterDoubles predicates.isVc4;
8078 or1k = filterDoubles predicates.isOr1k;
8179 m68k = filterDoubles predicates.isM68k;
lib/systems/inspect.nix−3
@@ -13,7 +13,6 @@ rec {
1313 isx86_64 = { cpu = { family = "x86"; bits = 64; }; };
1414 isPowerPC = { cpu = cpuTypes.powerpc; };
1515 isPower = { cpu = { family = "power"; }; };
16− isPower64 = { cpu = { family = "power"; bits = 64; }; };
1716 isx86 = { cpu = { family = "x86"; }; };
1817 isAarch32 = { cpu = { family = "arm"; bits = 32; }; };
1918 isAarch64 = { cpu = { family = "arm"; bits = 64; }; };
@@ -24,8 +23,6 @@ rec {
2423 isMips64n64 = { cpu = { family = "mips"; bits = 64; }; abi = { abi = "64"; }; };
2524 isMmix = { cpu = { family = "mmix"; }; };
2625 isRiscV = { cpu = { family = "riscv"; }; };
27− isRiscV32 = { cpu = { family = "riscv"; bits = 32; }; };
28− isRiscV64 = { cpu = { family = "riscv"; bits = 64; }; };
2926 isSparc = { cpu = { family = "sparc"; }; };
3027 isWasm = { cpu = { family = "wasm"; }; };
3128 isMsp430 = { cpu = { family = "msp430"; }; };
lib/systems/platforms.nix+3−3
@@ -3,7 +3,7 @@
33# targetPlatform, etc) containing at least the minimal set of attrs
44# required (see types.parsedPlatform in lib/systems/parse.nix). This
55# file takes an already-valid platform and further elaborates it with
6−# optional fields; currently these are: linux-kernel, gcc, and rustc.
6+# optional fields such as linux-kernel, gcc, etc.
77
88{ lib }:
99rec {
@@ -500,7 +500,7 @@ rec {
500500 # based on:
501501 # https://www.mail-archive.com/qemu-discuss@nongnu.org/msg05179.html
502502 # https://gmplib.org/~tege/qemu.html#mips64-debian
503− mips64el-qemu-linux-gnuabi64 = {
503+ mips64el-qemu-linux-gnuabi64 = (import ./examples).mips64el-linux-gnuabi64 // {
504504 linux-kernel = {
505505 name = "mips64el";
506506 baseConfig = "64r2el_defconfig";
@@ -568,5 +568,5 @@ rec {
568568
569569 else if platform.parsed.cpu == lib.systems.parse.cpuTypes.powerpc64le then powernv
570570
571− else { };
571+ else pc;
572572}
lib/tests/flakes/subflakeTest/flake.nixdeleted−8
@@ -1,8 +0,0 @@
1−{
2− outputs = { self, subflake, callLocklessFlake }: rec {
3− x = (callLocklessFlake {
4− path = subflake;
5− inputs = {};
6− }).subflakeOutput;
7− };
8−}
lib/tests/flakes/subflakeTest/subflake/flake.nixdeleted−5
@@ -1,5 +0,0 @@
1−{
2− outputs = { self }: {
3− subflakeOutput = 1;
4− };
5−}
lib/tests/misc.nix−59
@@ -22,15 +22,6 @@ in
2222
2323runTests {
2424
25−# FLAKES
26−
27− testCallLocklessFlake = {
28− expr = callLocklessFlake {
29− path = ./flakes/subflakeTest;
30− inputs = { subflake = ./flakes/subflakeTest/subflake; inherit callLocklessFlake; };
31− };
32− expected = { x = 1; outPath = ./flakes/subflakeTest; };
33− };
3425
3526# TRIVIAL
3627
@@ -260,56 +251,6 @@ runTests {
260251 expected = ""test" 'test' < & >";
261252 };
262253
263− testToShellVars = {
264− expr = ''
265− ${toShellVars {
266− STRing01 = "just a 'string'";
267− _array_ = [ "with" "more strings" ];
268− assoc."with some" = ''
269− strings
270− possibly newlines
271− '';
272− }}
273− '';
274− expected = ''
275− STRing01='just a '\'''string'\''''
276− declare -a _array_=('with' 'more strings')
277− declare -A assoc=(['with some']='strings
278− possibly newlines
279− ')
280− '';
281− };
282−
283− testHasInfixFalse = {
284− expr = hasInfix "c" "abde";
285− expected = false;
286− };
287−
288− testHasInfixTrue = {
289− expr = hasInfix "c" "abcde";
290− expected = true;
291− };
292−
293− testHasInfixDerivation = {
294− expr = hasInfix "hello" (import ../.. { system = "x86_64-linux"; }).hello;
295− expected = true;
296− };
297−
298− testHasInfixPath = {
299− expr = hasInfix "tests" ./.;
300− expected = true;
301− };
302−
303− testHasInfixPathStoreDir = {
304− expr = hasInfix builtins.storeDir ./.;
305− expected = true;
306− };
307−
308− testHasInfixToString = {
309− expr = hasInfix "a" { __toString = _: "a"; };
310− expected = true;
311− };
312−
313254# LISTS
314255
315256 testFilter = {
lib/tests/modules.sh+1−5
@@ -293,7 +293,7 @@ checkConfigOutput '^"a c"$' config.result ./functionTo/merging-attrs.nix
293293
294294# moduleType
295295checkConfigOutput '^"a b"$' config.resultFoo ./declare-variants.nix ./define-variant.nix
296−checkConfigOutput '^"a b y z"$' config.resultFooBar ./declare-variants.nix ./define-variant.nix
296+checkConfigOutput '^"a y z"$' config.resultFooBar ./declare-variants.nix ./define-variant.nix
297297checkConfigOutput '^"a b c"$' config.resultFooFoo ./declare-variants.nix ./define-variant.nix
298298
299299## emptyValue's
@@ -327,10 +327,6 @@ checkConfigError 'The option .theOption.nested. in .other.nix. is already declar
327327# Test that types.optionType leaves types untouched as long as they don't need to be merged
328328checkConfigOutput 'ok' config.freeformItems.foo.bar ./adhoc-freeformType-survives-type-merge.nix
329329
330−# Anonymous submodules don't get nixed by import resolution/deduplication
331−# because of an `extendModules` bug, issue 168767.
332−checkConfigOutput '^1$' config.sub.specialisation.value ./extendModules-168767-imports.nix
333−
334330cat <<EOF
335331====== module tests ======
336332$pass Pass
lib/tests/modules/extendModules-168767-imports.nixdeleted−41
@@ -1,41 +0,0 @@
1−{ lib
2−, extendModules
3−, ...
4−}:
5−with lib;
6−{
7− imports = [
8−
9− {
10− options.sub = mkOption {
11− default = { };
12− type = types.submodule (
13− { config
14− , extendModules
15− , ...
16− }:
17− {
18− options.value = mkOption {
19− type = types.int;
20− };
21−
22− options.specialisation = mkOption {
23− default = { };
24− inherit
25− (extendModules {
26− modules = [{
27− specialisation = mkOverride 0 { };
28− }];
29− })
30− type;
31− };
32− }
33− );
34− };
35− }
36−
37− { config.sub.value = 1; }
38−
39−
40− ];
41−}
lib/tests/systems.nix−3
@@ -19,9 +19,6 @@ with lib.systems.doubles; lib.runTests {
1919 testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-genode" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ];
2020 testmips = mseteq mips [ "mips64el-linux" "mipsel-linux" "mipsel-netbsd" ];
2121 testmmix = mseteq mmix [ "mmix-mmixware" ];
22− testriscv = mseteq riscv [ "riscv32-linux" "riscv64-linux" "riscv32-netbsd" "riscv64-netbsd" "riscv32-none" "riscv64-none" ];
23− testriscv32 = mseteq riscv32 [ "riscv32-linux" "riscv32-netbsd" "riscv32-none" ];
24− testriscv64 = mseteq riscv64 [ "riscv64-linux" "riscv64-netbsd" "riscv64-none" ];
2522 testx86_64 = mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd" "x86_64-genode" "x86_64-redox" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" "x86_64-solaris" "x86_64-windows" "x86_64-none" ];
2623
2724 testcygwin = mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ];
lib/types.nix+2−8
@@ -568,11 +568,6 @@ rec {
568568 { modules
569569 , specialArgs ? {}
570570 , shorthandOnlyDefinesConfig ? false
571−
572− # Internal variable to avoid `_key` collisions regardless
573− # of `extendModules`. Wired through by `evalModules`.
574− # Test case: lib/tests/modules, "168767"
575− , extensionOffset ? 0
576571 }@attrs:
577572 let
578573 inherit (lib.modules) evalModules;
@@ -584,11 +579,11 @@ rec {
584579 allModules = defs: imap1 (n: { value, file }:
585580 if isFunction value
586581 then setFunctionArgs
587− (args: lib.modules.unifyModuleSyntax file "${toString file}-${toString (n + extensionOffset)}" (value args))
582+ (args: lib.modules.unifyModuleSyntax file "${toString file}-${toString n}" (value args))
588583 (functionArgs value)
589584 else if isAttrs value
590585 then
591− lib.modules.unifyModuleSyntax file "${toString file}-${toString (n + extensionOffset)}" (shorthandToModule value)
586+ lib.modules.unifyModuleSyntax file "${toString file}-${toString n}" (shorthandToModule value)
592587 else value
593588 ) defs;
594589
@@ -625,7 +620,6 @@ rec {
625620 (base.extendModules {
626621 modules = [ { _module.args.name = last loc; } ] ++ allModules defs;
627622 prefix = loc;
628− extensionOffset = extensionOffset + length defs;
629623 }).config;
630624 emptyValue = { value = {}; };
631625 getSubOptions = prefix: (base.extendModules
maintainers/maintainer-list.nix+37−207
@@ -380,12 +380,6 @@
380380 githubId = 209175;
381381 name = "Alesya Huzik";
382382 };
383− aidalgol = {
384− email = "aidalgol+nixpkgs@fastmail.net";
385− github = "aidalgol";
386− githubId = 2313201;
387− name = "Aidan Gauland";
388− };
389383 aij = {
390384 email = "aij+git@mrph.org";
391385 github = "aij";
@@ -525,12 +519,6 @@
525519 githubId = 38869148;
526520 name = "Alex Eyre";
527521 };
528− algram = {
529− email = "aliasgram@gmail.com";
530− github = "Algram";
531− githubId = 5053729;
532− name = "Alias Gram";
533− };
534522 alibabzo = {
535523 email = "alistair.bill@gmail.com";
536524 github = "alibabzo";
@@ -681,18 +669,6 @@
681669 githubId = 858965;
682670 name = "Andrew Morsillo";
683671 };
684− an-empty-string = {
685− name = "Tris Emmy Wilson";
686− email = "tris@tris.fyi";
687− github = "an-empty-string";
688− githubId = 681716;
689− };
690− AnatolyPopov = {
691− email = "aipopov@live.ru";
692− github = "AnatolyPopov";
693− githubId = 2312534;
694− name = "Anatolii Popov";
695− };
696672 andehen = {
697673 email = "git@andehen.net";
698674 github = "andehen";
@@ -841,13 +817,6 @@
841817 githubId = 5327697;
842818 name = "Anatolii Prylutskyi";
843819 };
844− anselmschueler = {
845− email = "mail@anselmschueler.com";
846− github = "schuelermine";
847− githubId = 48802534;
848− name = "Anselm Schüler";
849− matrix = "@schuelermine:matrix.org";
850− };
851820 antoinerg = {
852821 email = "roygobeil.antoine@gmail.com";
853822 github = "antoinerg";
@@ -1068,8 +1037,8 @@
10681037 name = "Kirill Boltaev";
10691038 };
10701039 ashley = {
1071− email = "ashley@kira64.xyz";
1072− github = "kira64xyz";
1040+ email = "personavinny@protonmail.com";
1041+ github = "paranoidcat";
10731042 githubId = 84152630;
10741043 name = "Ashley Chiara";
10751044 };
@@ -1409,12 +1378,6 @@
14091378 githubId = 164148;
14101379 name = "Ben Darwin";
14111380 };
1412− bdd = {
1413− email = "bdd@mindcast.org";
1414− github = "bdd";
1415− githubId = 11135;
1416− name = "Berk D. Demir";
1417− };
14181381 bdesham = {
14191382 email = "benjamin@esham.io";
14201383 github = "bdesham";
@@ -1831,12 +1794,6 @@
18311794 githubId = 7214361;
18321795 name = "Roman Gerasimenko";
18331796 };
1834− builditluc = {
1835− email = "builditluc@icloud.com";
1836− github = "builditluc";
1837− githubId = 37375448;
1838− name = "Buildit";
1839− };
18401797 bburdette = {
18411798 email = "bburdette@protonmail.com";
18421799 github = "bburdette";
@@ -2086,12 +2043,6 @@
20862043 githubId = 8228888;
20872044 name = "Charlie Hanley";
20882045 };
2089− charlesbaynham = {
2090− email = "charlesbaynham@gmail.com";
2091− github = "charlesbaynham";
2092− githubId = 4397637;
2093− name = "Charles Baynham";
2094− };
20952046 CharlesHD = {
20962047 email = "charleshdespointes@gmail.com";
20972048 github = "CharlesHD";
@@ -2132,6 +2083,12 @@
21322083 githubId = 18648043;
21332084 name = "Daniel Cartwright";
21342085 };
2086+ chiiruno = {
2087+ email = "okinan@protonmail.com";
2088+ github = "chiiruno";
2089+ githubId = 30435868;
2090+ name = "Okina Matara";
2091+ };
21352092 Chili-Man = {
21362093 email = "dr.elhombrechile@gmail.com";
21372094 name = "Diego Rodriguez";
@@ -2303,7 +2260,6 @@
23032260 fingerprint = "539F 0655 4D35 38A5 429A E253 13E7 9449 C052 5215";
23042261 }];
23052262 name = "ckie";
2306− matrix = "@ckie:ckie.dev";
23072263 };
23082264 clkamp = {
23092265 email = "c@lkamp.de";
@@ -3881,13 +3837,6 @@
38813837 githubId = 222467;
38823838 name = "Dmitry Ivanov";
38833839 };
3884− ethindp = {
3885− name = "Ethin Probst";
3886− email = "harlydavidsen@gmail.com";
3887− matrix = "@ethindp:the-gdn.net";
3888− github = "ethindp";
3889− githubId = 8030501;
3890− };
38913840 Etjean = {
38923841 email = "et.jean@outlook.fr";
38933842 github = "Etjean";
@@ -4124,18 +4073,11 @@
41244073 matrix = "@felschr:matrix.org";
41254074 github = "felschr";
41264075 githubId = 3314323;
4127− name = "Felix Schröter";
4128− keys = [
4129− {
4130− # historical
4131− longkeyid = "ed25519/0x910ACB9F6BD26F58";
4132− fingerprint = "6AB3 7A28 5420 9A41 82D9 0068 910A CB9F 6BD2 6F58";
4133− }
4134− {
4135− longkeyid = "ed25519/0x671E39E6744C807D";
4136− fingerprint = "7E08 6842 0934 AA1D 6821 1F2A 671E 39E6 744C 807D";
4137− }
4138− ];
4076+ name = "Felix Tenley";
4077+ keys = [{
4078+ longkeyid = "ed25519/0x910ACB9F6BD26F58";
4079+ fingerprint = "6AB3 7A28 5420 9A41 82D9 0068 910A CB9F 6BD2 6F58";
4080+ }];
41394081 };
41404082 ffinkdevs = {
41414083 email = "fink@h0st.space";
@@ -4754,12 +4696,6 @@
47544696 githubId = 201997;
47554697 name = "Eric Seidel";
47564698 };
4757− grindhold = {
4758− name = "grindhold";
4759− email = "grindhold+nix@skarphed.org";
4760− github = "grindhold";
4761− githubId = 2592640;
4762− };
47634699 gspia = {
47644700 email = "iahogsp@gmail.com";
47654701 github = "gspia";
@@ -4778,12 +4714,6 @@
47784714 githubId = 343415;
47794715 name = "Greg Roodt";
47804716 };
4781− grnnja = {
4782− email = "grnnja@gmail.com";
4783− github = "grnnja";
4784− githubId = 31556469;
4785− name = "Prem Netsuwan";
4786− };
47874717 gruve-p = {
47884718 email = "groestlcoin@gmail.com";
47894719 github = "gruve-p";
@@ -5649,12 +5579,6 @@
56495579 githubId = 488556;
56505580 name = "Javier Aguirre";
56515581 };
5652− jayesh-bhoot = {
5653− name = "Jayesh Bhoot";
5654− email = "jayesh@bhoot.sh";
5655− github = "jayesh-bhoot";
5656− githubId = 1915507;
5657− };
56585582 jb55 = {
56595583 email = "jb55@jb55.com";
56605584 github = "jb55";
@@ -6885,6 +6809,12 @@
68856809 githubId = 99639;
68866810 name = "Pawel Kruszewski";
68876811 };
6812+ ktosiek = {
6813+ email = "tomasz.kontusz@gmail.com";
6814+ github = "ktosiek";
6815+ githubId = 278013;
6816+ name = "Tomasz Kontusz";
6817+ };
68886818 kubukoz = {
68896819 email = "kubukoz@gmail.com";
68906820 github = "kubukoz";
@@ -7218,13 +7148,6 @@
72187148 githubId = 1769386;
72197149 name = "Liam Diprose";
72207150 };
7221− libjared = {
7222− email = "jared@perrycode.com";
7223− github = "libjared";
7224− githubId = 3746656;
7225− matrix = "@libjared:matrix.org";
7226− name = "Jared Perry";
7227− };
72287151 liff = {
72297152 email = "liff@iki.fi";
72307153 github = "liff";
@@ -7255,13 +7178,6 @@
72557178 githubId = 714;
72567179 name = "Lily Ballard";
72577180 };
7258− lilyinstarlight = {
7259− email = "lily@lily.flowers";
7260− matrix = "@lily:lily.flowers";
7261− github = "lilyinstarlight";
7262− githubId = 298109;
7263− name = "Lily Foster";
7264− };
72657181 limeytexan = {
72667182 email = "limeytexan@gmail.com";
72677183 github = "limeytexan";
@@ -7390,7 +7306,7 @@
73907306 name = "Anthony Lodi";
73917307 };
73927308 loicreynier = {
7393− email = "loic@loicreynier.fr";
7309+ email = "loic@loireynier.fr";
73947310 github = "loicreynier";
73957311 githubId = 88983487;
73967312 name = "Loïc Reynier";
@@ -8922,12 +8838,6 @@
89228838 githubId = 3747396;
89238839 name = "Nathan Isom";
89248840 };
8925− neilmayhew = {
8926− email = "nix@neil.mayhew.name";
8927− github = "neilmayhew";
8928− githubId = 166791;
8929− name = "Neil Mayhew";
8930− };
89318841 nelsonjeppesen = {
89328842 email = "nix@jeppesen.io";
89338843 github = "NelsonJeppesen";
@@ -10035,12 +9945,6 @@
100359945 fingerprint = "2CD2 B030 BD22 32EF DF5A 008A 3618 20A4 5DB4 1E9A";
100369946 }];
100379947 };
10038− podocarp = {
10039− email = "xdjiaxd@gmail.com";
10040− github = "podocarp";
10041− githubId = 10473184;
10042− name = "Jia Xiaodong";
10043− };
100449948 polendri = {
100459949 email = "paul@ijj.li";
100469950 github = "polendri";
@@ -10300,12 +10204,6 @@
1030010204 githubId = 115877;
1030110205 name = "Kenny Shen";
1030210206 };
10303− quag = {
10304− email = "quaggy@gmail.com";
10305− github = "quag";
10306− githubId = 35086;
10307− name = "Jonathan Wright";
10308− };
1030910207 queezle = {
1031010208 email = "git@queezle.net";
1031110209 github = "qzle";
@@ -11126,22 +11024,28 @@
1112611024 githubId = 132835;
1112711025 name = "Samuel Dionne-Riel";
1112811026 };
11027+ samuelgrf = {
11028+ email = "s@muel.gr";
11029+ github = "samuelgrf";
11030+ githubId = 67663538;
11031+ name = "Samuel Gräfenstein";
11032+ keys = [
11033+ {
11034+ longkeyid = "rsa4096/0xDE75F92E318123F0";
11035+ fingerprint = "6F2E 2A90 423C 8111 BFF2 895E DE75 F92E 3181 23F0";
11036+ }
11037+ {
11038+ longkeyid = "rsa4096/0xEF76A063F15C63C8";
11039+ fingerprint = "FF24 5832 8FAF 4660 18C6 186E EF76 A063 F15C 63C8";
11040+ }
11041+ ];
11042+ };
1112911043 samuelrivas = {
1113011044 email = "samuelrivas@gmail.com";
1113111045 github = "samuelrivas";
1113211046 githubId = 107703;
1113311047 name = "Samuel Rivas";
1113411048 };
11135− samyak = {
11136− name = "Samyak Sarnayak";
11137− email = "samyak201@gmail.com";
11138− github = "Samyak2";
11139− githubId = 34161949;
11140− keys = [{
11141− longkeyid = "rsa4096/0x365873F2F0C6153B";
11142− fingerprint = "155C F413 0129 C058 9A5F 5524 3658 73F2 F0C6 153B";
11143− }];
11144− };
1114511049 sander = {
1114611050 email = "s.vanderburg@tudelft.nl";
1114711051 github = "svanderburg";
@@ -11368,12 +11272,6 @@
1136811272 githubId = 307899;
1136911273 name = "Gurkan Gur";
1137011274 };
11371− serge = {
11372− email = "sb@canva.com";
11373− github = "serge-belov";
11374− githubId = 38824235;
11375− name = "Serge Belov";
11376− };
1137711275 sersorrel = {
1137811276 email = "ash@sorrel.sh";
1137911277 github = "sersorrel";
@@ -11418,12 +11316,6 @@
1141811316 githubId = 1151264;
1141911317 name = "Sebastian Graf";
1142011318 };
11421− shadaj = {
11422− email = "shadaj@users.noreply.github.com";
11423− github = "shadaj";
11424− githubId = 543055;
11425− name = "Shadaj Laddad";
11426− };
1142711319 shahrukh330 = {
1142811320 email = "shahrukh330@gmail.com";
1142911321 github = "shahrukh330";
@@ -11620,12 +11512,6 @@
1162011512 githubId = 2770647;
1162111513 name = "Simon Vandel Sillesen";
1162211514 };
11623− sir4ur0n = {
11624− email = "sir4ur0n@users.noreply.github.com";
11625− github = "sir4ur0n";
11626− githubId = 1204125;
11627− name = "sir4ur0n";
11628− };
1162911515 siraben = {
1163011516 email = "bensiraphob@gmail.com";
1163111517 matrix = "@siraben:matrix.org";
@@ -12063,12 +11949,6 @@
1206311949 githubId = 1694705;
1206411950 name = "Sam Stites";
1206511951 };
12066− strager = {
12067− email = "strager.nds@gmail.com";
12068− github = "strager";
12069− githubId = 48666;
12070− name = "Matthew \"strager\" Glazar";
12071− };
1207211952 stumoss = {
1207311953 email = "samoss@gmail.com";
1207411954 github = "stumoss";
@@ -12561,12 +12441,6 @@
1256112441 githubId = 844343;
1256212442 name = "Thiago K. Okada";
1256312443 };
12564− thibaultlemaire = {
12565− email = "thibault.lemaire@protonmail.com";
12566− github = "ThibaultLemaire";
12567− githubId = 21345269;
12568− name = "Thibault Lemaire";
12569− };
1257012444 thibautmarty = {
1257112445 email = "github@thibautmarty.fr";
1257212446 matrix = "@thibaut:thibautmarty.fr";
@@ -12813,13 +12687,6 @@
1281312687 githubId = 90456;
1281412688 name = "Rebecca (Bex) Kelly";
1281512689 };
12816− tpw_rules = {
12817− name = "Thomas Watson";
12818− email = "twatson52@icloud.com";
12819− matrix = "@tpw_rules:matrix.org";
12820− github = "tpwrules";
12821− githubId = 208010;
12822− };
1282312690 travisbhartwell = {
1282412691 email = "nafai@travishartwell.net";
1282512692 github = "travisbhartwell";
@@ -13294,12 +13161,6 @@
1329413161 githubId = 1771332;
1329513162 name = "László Vaskó";
1329613163 };
13297− vlinkz = {
13298− email = "vmfuentes64@gmail.com";
13299− github = "vlinkz";
13300− githubId = 20145996;
13301− name = "Victor Fuentes";
13302− };
1330313164 vlstill = {
1330413165 email = "xstill@fi.muni.cz";
1330513166 github = "vlstill";
@@ -13592,7 +13453,7 @@
1359213453 name = "Andrei Pampu";
1359313454 };
1359413455 wolfangaukang = {
13595− email = "clone.gleeful135+nixpkgs@anonaddy.me";
13456+ email = "liquid.query960@4wrd.cc";
1359613457 github = "wolfangaukang";
1359713458 githubId = 8378365;
1359813459 name = "P. R. d. O.";
@@ -13645,13 +13506,6 @@
1364513506 github = "wunderbrick";
1364613507 githubId = 52174714;
1364713508 };
13648− wyndon = {
13649− email = "72203260+wyndon@users.noreply.github.com";
13650− matrix = "@wyndon:envs.net";
13651− github = "wyndon";
13652− githubId = 72203260;
13653− name = "wyndon";
13654− };
1365513509 wyvie = {
1365613510 email = "elijahrum@gmail.com";
1365713511 github = "wyvie";
@@ -14211,12 +14065,6 @@
1421114065 github = "deifactor";
1421214066 githubId = 30192992;
1421314067 };
14214− deinferno = {
14215− name = "deinferno";
14216− email = "14363193+deinferno@users.noreply.github.com";
14217− github = "deinferno";
14218− githubId = 14363193;
14219− };
1422014068 fzakaria = {
1422114069 name = "Farid Zakaria";
1422214070 email = "farid.m.zakaria@gmail.com";
@@ -14340,12 +14188,6 @@
1434014188 github = "zbioe";
1434114189 githubId = 7332055;
1434214190 };
14343− zendo = {
14344− name = "zendo";
14345− email = "linzway@qq.com";
14346− github = "zendo";
14347− githubId = 348013;
14348− };
1434914191 zenithal = {
1435014192 name = "zenithal";
1435114193 email = "i@zenithal.me";
@@ -14466,16 +14308,4 @@
1446614308 github = "kuwii";
1446714309 githubId = 10705175;
1446814310 };
14469− melias122 = {
14470− name = "Martin Elias";
14471− email = "martin+nixpkgs@elias.sx";
14472− github = "melias122";
14473− githubId = 1027766;
14474− };
14475− bryanhonof = {
14476− name = "Bryan Honof";
14477− email = "bryanhonof@gmail.com";
14478− github = "bryanhonof";
14479− githubId = 5932804;
14480− };
1448114311}
maintainers/scripts/luarocks-packages.csv+1−2
@@ -52,7 +52,7 @@ luadbi-postgresql,,,,,,
5252luadbi-sqlite3,,,,,,
5353luaepnf,,,,,,
5454luaevent,,,,,,
55−luaexpat,,,,1.4.1-1,,arobyn flosse
55+luaexpat,,,,1.3.0-1,,arobyn flosse
5656luaffi,,,http://luarocks.org/dev,,,
5757luafilesystem,,,,1.7.0-2,,flosse
5858lualogging,,,,,,
@@ -64,7 +64,6 @@ luasocket,,,,,,
6464luasql-sqlite3,,,,,,vyp
6565luassert,,,,,,
6666luasystem,,,,,,
67−luaunbound,,,,,
6867luautf8,,,,,,pstn
6968luazip,,,,,,
7069lua-yajl,,,,,,pstn
maintainers/scripts/pluginupdate.py+37−43
@@ -87,8 +87,7 @@ def make_request(url: str, token=None) -> urllib.request.Request:
8787 return urllib.request.Request(url, headers=headers)
8888
8989
90−# a dictionary of plugins and their new repositories
91−Redirects = Dict['PluginDesc', 'Repo']
90+Redirects = Dict['Repo', 'Repo']
9291
9392class Repo:
9493 def __init__(
@@ -97,8 +96,8 @@ class Repo:
9796 self.uri = uri
9897 '''Url to the repo'''
9998 self._branch = branch
100− # Redirect is the new Repo to use
101− self.redirect: Optional['Repo'] = None
99+ # {old_uri: new_uri}
100+ self.redirect: Redirects = {}
102101 self.token = "dummy_token"
103102
104103 @property
@@ -208,7 +207,7 @@ class RepoGitHub(Repo):
208207 )
209208
210209 new_repo = RepoGitHub(owner=new_owner, repo=new_name, branch=self.branch)
211− self.redirect = new_repo
210+ self.redirect[self] = new_repo
212211
213212
214213 def prefetch(self, commit: str) -> str:
@@ -238,7 +237,7 @@ class RepoGitHub(Repo):
238237 }}'''
239238
240239
241−@dataclass(frozen=True)
240+@dataclass
242241class PluginDesc:
243242 repo: Repo
244243 branch: str
@@ -311,16 +310,6 @@ def load_plugins_from_csv(config: FetchConfig, input_file: Path,) -> List[Plugin
311310
312311 return plugins
313312
314−def run_nix_expr(expr):
315− with CleanEnvironment():
316− cmd = ["nix", "eval", "--extra-experimental-features",
317− "nix-command", "--impure", "--json", "--expr", expr]
318− log.debug("Running command %s", cmd)
319− out = subprocess.check_output(cmd)
320− data = json.loads(out)
321− return data
322−
323−
324313class Editor:
325314 """The configuration of the update script."""
326315
@@ -343,15 +332,9 @@ class Editor:
343332 self.deprecated = deprecated or root.joinpath("deprecated.json")
344333 self.cache_file = cache_file or f"{name}-plugin-cache.json"
345334
346− def get_current_plugins(self) -> List[Plugin]:
335+ def get_current_plugins(self):
347336 """To fill the cache"""
348− data = run_nix_expr(self.get_plugins)
349− plugins = []
350− for name, attr in data.items():
351− print("get_current_plugins: name %s" % name)
352− p = Plugin(name, attr["rev"], attr["submodules"], attr["sha256"])
353− plugins.append(p)
354− return plugins
337+ return get_current_plugins(self)
355338
356339 def load_plugin_spec(self, config: FetchConfig, plugin_file) -> List[PluginDesc]:
357340 '''CSV spec'''
@@ -465,10 +448,24 @@ class CleanEnvironment(object):
465448 self.empty_config.close()
466449
467450
451+def get_current_plugins(editor: Editor) -> List[Plugin]:
452+ with CleanEnvironment():
453+ cmd = ["nix", "eval", "--extra-experimental-features", "nix-command", "--impure", "--json", "--expr", editor.get_plugins]
454+ log.debug("Running command %s", cmd)
455+ out = subprocess.check_output(cmd)
456+ data = json.loads(out)
457+ plugins = []
458+ for name, attr in data.items():
459+ print("get_current_plugins: name %s" % name)
460+ p = Plugin(name, attr["rev"], attr["submodules"], attr["sha256"])
461+ plugins.append(p)
462+ return plugins
463+
464+
468465def prefetch_plugin(
469466 p: PluginDesc,
470467 cache: "Optional[Cache]" = None,
471−) -> Tuple[Plugin, Optional[Repo]]:
468+) -> Tuple[Plugin, Redirects]:
472469 repo, branch, alias = p.repo, p.branch, p.alias
473470 name = alias or p.repo.name
474471 commit = None
@@ -482,7 +479,7 @@ def prefetch_plugin(
482479 return cached_plugin, repo.redirect
483480
484481 has_submodules = repo.has_submodules()
485− log.debug(f"prefetch {name}")
482+ print(f"prefetch {name}")
486483 sha256 = repo.prefetch(commit)
487484
488485 return (
@@ -491,7 +488,7 @@ def prefetch_plugin(
491488 )
492489
493490
494−def print_download_error(plugin: PluginDesc, ex: Exception):
491+def print_download_error(plugin: str, ex: Exception):
495492 print(f"{plugin}: {ex}", file=sys.stderr)
496493 ex_traceback = ex.__traceback__
497494 tb_lines = [
@@ -501,21 +498,19 @@ def print_download_error(plugin: PluginDesc, ex: Exception):
501498 print("\n".join(tb_lines))
502499
503500def check_results(
504− results: List[Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]]]
501+ results: List[Tuple[PluginDesc, Union[Exception, Plugin], Redirects]]
505502) -> Tuple[List[Tuple[PluginDesc, Plugin]], Redirects]:
506503 ''' '''
507− failures: List[Tuple[PluginDesc, Exception]] = []
504+ failures: List[Tuple[str, Exception]] = []
508505 plugins = []
509− redirects: Redirects = {}
506+ # {old: new} plugindesc
507+ redirects: Dict[Repo, Repo] = {}
510508 for (pdesc, result, redirect) in results:
511509 if isinstance(result, Exception):
512− failures.append((pdesc, result))
510+ failures.append((pdesc.name, result))
513511 else:
514− new_pdesc = pdesc
515− if redirect is not None:
516− redirects.update({pdesc: redirect})
517− new_pdesc = PluginDesc(redirect, pdesc.branch, pdesc.alias)
518− plugins.append((new_pdesc, result))
512+ plugins.append((pdesc, result))
513+ redirects.update(redirect)
519514
520515 print(f"{len(results) - len(failures)} plugins were checked", end="")
521516 if len(failures) == 0:
@@ -596,13 +591,13 @@ class Cache:
596591
597592def prefetch(
598593 pluginDesc: PluginDesc, cache: Cache
599−) -> Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]]:
594+) -> Tuple[PluginDesc, Union[Exception, Plugin], dict]:
600595 try:
601596 plugin, redirect = prefetch_plugin(pluginDesc, cache)
602597 cache[plugin.commit] = plugin
603598 return (pluginDesc, plugin, redirect)
604599 except Exception as e:
605− return (pluginDesc, e, None)
600+ return (pluginDesc, e, {})
606601
607602
608603
@@ -611,7 +606,7 @@ def rewrite_input(
611606 input_file: Path,
612607 deprecated: Path,
613608 # old pluginDesc and the new
614− redirects: Redirects = {},
609+ redirects: Dict[PluginDesc, PluginDesc] = {},
615610 append: List[PluginDesc] = [],
616611):
617612 plugins = load_plugins_from_csv(config, input_file,)
@@ -623,10 +618,9 @@ def rewrite_input(
623618 cur_date_iso = datetime.now().strftime("%Y-%m-%d")
624619 with open(deprecated, "r") as f:
625620 deprecations = json.load(f)
626− for pdesc, new_repo in redirects.items():
627− new_pdesc = PluginDesc(new_repo, pdesc.branch, pdesc.alias)
628− old_plugin, _ = prefetch_plugin(pdesc)
629− new_plugin, _ = prefetch_plugin(new_pdesc)
621+ for old, new in redirects.items():
622+ old_plugin, _ = prefetch_plugin(old)
623+ new_plugin, _ = prefetch_plugin(new)
630624 if old_plugin.normalized_name != new_plugin.normalized_name:
631625 deprecations[old_plugin.normalized_name] = {
632626 "new": new_plugin.normalized_name,
maintainers/team-list.nix−36
@@ -198,18 +198,6 @@ with lib.maintainers; {
198198 enableFeatureFreezePing = true;
199199 };
200200
201− enlightenment = {
202− members = [
203− romildo
204− ];
205− githubTeams = [
206− "enlightenment"
207− ];
208− scope = "Maintain Enlightenment desktop environment and related packages.";
209− shortName = "Enlightenment";
210− enableFeatureFreezePing = true;
211− };
212−
213201 # Dummy group for the "everyone else" section
214202 feature-freeze-everyone-else = {
215203 members = [ ];
@@ -355,30 +343,6 @@ with lib.maintainers; {
355343 shortName = "Linux Kernel";
356344 };
357345
358− lumina = {
359− members = [
360− romildo
361− ];
362− githubTeams = [
363− "lumina"
364− ];
365− scope = "Maintain lumina desktop environment and related packages.";
366− shortName = "Lumina";
367− enableFeatureFreezePing = true;
368− };
369−
370− lxqt = {
371− members = [
372− romildo
373− ];
374− githubTeams = [
375− "lxqt"
376− ];
377− scope = "Maintain LXQt desktop environment and related packages.";
378− shortName = "LXQt";
379− enableFeatureFreezePing = true;
380− };
381−
382346 marketing = {
383347 members = [
384348 garbas
nixos/doc/manual/administration/declarative-containers.section.md+1−1
@@ -40,7 +40,7 @@ section for details on container networking.)
4040To disable the container, just remove it from `configuration.nix` and
4141run `nixos-rebuild
4242 switch`. Note that this will not delete the root directory of the
43−container in `/var/lib/nixos-containers`. Containers can be destroyed using
43+container in `/var/lib/containers`. Containers can be destroyed using
4444the imperative method: `nixos-container destroy foo`.
4545
4646Declarative containers can be started and stopped using the
nixos/doc/manual/administration/imperative-containers.section.md+2−2
@@ -10,8 +10,8 @@ You create a container with identifier `foo` as follows:
1010# nixos-container create foo
1111```
1212
13−This creates the container's root directory in `/var/lib/nixos-containers/foo`
14−and a small configuration file in `/etc/nixos-containers/foo.conf`. It also
13+This creates the container's root directory in `/var/lib/containers/foo`
14+and a small configuration file in `/etc/containers/foo.conf`. It also
1515builds the container's initial system configuration and stores it in
1616`/nix/var/nix/profiles/per-container/foo/system`. You can modify the
1717initial configuration of the container on the command line. For
nixos/doc/manual/default.nix−4
@@ -14,10 +14,6 @@ with pkgs;
1414let
1515 lib = pkgs.lib;
1616
17− docbook_xsl_ns = pkgs.docbook-xsl-ns.override {
18− withManOptDedupPatch = true;
19− };
20−
2117 # We need to strip references to /nix/store/* from options,
2218 # including any `extraSources` if some modules came from elsewhere,
2319 # or else the build will fail.
nixos/doc/manual/installation/building-nixos.chapter.md → nixos/doc/manual/development/building-nixos.chapter.mdrenamed−31
@@ -30,37 +30,6 @@ To check the content of an ISO image, mount it like so:
3030# mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso
3131```
3232
33−## Additional drivers or firmware {#sec-building-image-drivers}
34−
35−If you need additional (non-distributable) drivers or firmware in the
36−installer, you might want to extend these configurations.
37−
38−For example, to build the GNOME graphical installer ISO, but with support for
39−certain WiFi adapters present in some MacBooks, you can create the following
40−file at `modules/installer/cd-dvd/installation-cd-graphical-gnome-macbook.nix`:
41−
42−```nix
43−{ config, ... }:
44−
45−{
46− imports = [ ./installation-cd-graphical-gnome.nix ];
47−
48− boot.initrd.kernelModules = [ "wl" ];
49−
50− boot.kernelModules = [ "kvm-intel" "wl" ];
51− boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
52−}
53−```
54−
55−Then build it like in the example above:
56−
57−```ShellSession
58−$ git clone https://github.com/NixOS/nixpkgs.git
59−$ cd nixpkgs/nixos
60−$ export NIXPKGS_ALLOW_UNFREE=1
61−$ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-graphical-gnome-macbook.nix default.nix
62−```
63−
6433## Technical Notes {#sec-building-image-tech-notes}
6534
6635The config value enforcement is implemented via `mkImageMediaOverride = mkOverride 60;`
nixos/doc/manual/development/development.xml+1
@@ -14,6 +14,7 @@
1414 <xi:include href="../from_md/development/building-parts.chapter.xml" />
1515 <xi:include href="../from_md/development/what-happens-during-a-system-switch.chapter.xml" />
1616 <xi:include href="../from_md/development/writing-documentation.chapter.xml" />
17+ <xi:include href="../from_md/development/building-nixos.chapter.xml" />
1718 <xi:include href="../from_md/development/nixos-tests.chapter.xml" />
1819 <xi:include href="../from_md/development/testing-installer.chapter.xml" />
1920</part>
nixos/doc/manual/development/writing-nixos-tests.section.md+14−25
@@ -159,42 +159,34 @@ The following methods are available on machine objects:
159159`execute`
160160
161161: Execute a shell command, returning a list `(status, stdout)`.
162−
163− Commands are run with `set -euo pipefail` set:
164−
165− - If several commands are separated by `;` and one fails, the
166− command as a whole will fail.
167−
168− - For pipelines, the last non-zero exit status will be returned
169− (if there is one; otherwise zero will be returned).
170−
171− - Dereferencing unset variables fails the command.
172−
173− - It will wait for stdout to be closed.
174−
175162 If the command detaches, it must close stdout, as `execute` will wait
176163 for this to consume all output reliably. This can be achieved by
177164 redirecting stdout to stderr `>&2`, to `/dev/console`, `/dev/null` or
178165 a file. Examples of detaching commands are `sleep 365d &`, where the
179166 shell forks a new process that can write to stdout and `xclip -i`, where
180167 the `xclip` command itself forks without closing stdout.
181−
182168 Takes an optional parameter `check_return` that defaults to `True`.
183169 Setting this parameter to `False` will not check for the return code
184170 and return -1 instead. This can be used for commands that shut down
185171 the VM and would therefore break the pipe that would be used for
186172 retrieving the return code.
187173
188− A timeout for the command can be specified (in seconds) using the optional
189− `timeout` parameter, e.g., `execute(cmd, timeout=10)` or
190− `execute(cmd, timeout=None)`. The default is 900 seconds.
191−
192174`succeed`
193175
194176: Execute a shell command, raising an exception if the exit status is
195− not zero, otherwise returning the standard output. Similar to `execute`,
196− except that the timeout is `None` by default. See `execute` for details on
197− command execution.
177+ not zero, otherwise returning the standard output. Commands are run
178+ with `set -euo pipefail` set:
179+
180+ - If several commands are separated by `;` and one fails, the
181+ command as a whole will fail.
182+
183+ - For pipelines, the last non-zero exit status will be returned
184+ (if there is one, zero will be returned otherwise).
185+
186+ - Dereferencing unset variables fail the command.
187+
188+ - It will wait for stdout to be closed. See `execute` for the
189+ implications.
198190
199191`fail`
200192
@@ -204,13 +196,10 @@ The following methods are available on machine objects:
204196`wait_until_succeeds`
205197
206198: Repeat a shell command with 1-second intervals until it succeeds.
207− Has a default timeout of 900 seconds which can be modified, e.g.
208− `wait_until_succeeds(cmd, timeout=10)`. See `execute` for details on
209− command execution.
210199
211200`wait_until_fails`
212201
213−: Like `wait_until_succeeds`, but repeating the command until it fails.
202+: Repeat a shell command with 1-second intervals until it fails.
214203
215204`wait_for_unit`
216205
nixos/doc/manual/from_md/administration/declarative-containers.section.xml+2−2
@@ -48,8 +48,8 @@ containers.database = {
4848 <literal>configuration.nix</literal> and run
4949 <literal>nixos-rebuild switch</literal>. Note that this will not
5050 delete the root directory of the container in
51− <literal>/var/lib/nixos-containers</literal>. Containers can be
52− destroyed using the imperative method:
51+ <literal>/var/lib/containers</literal>. Containers can be destroyed
52+ using the imperative method:
5353 <literal>nixos-container destroy foo</literal>.
5454 </para>
5555 <para>
nixos/doc/manual/from_md/administration/imperative-containers.section.xml+2−3
@@ -14,9 +14,8 @@
1414</programlisting>
1515 <para>
1616 This creates the container’s root directory in
17− <literal>/var/lib/nixos-containers/foo</literal> and a small
18− configuration file in
19− <literal>/etc/nixos-containers/foo.conf</literal>. It also builds
17+ <literal>/var/lib/containers/foo</literal> and a small configuration
18+ file in <literal>/etc/containers/foo.conf</literal>. It also builds
2019 the container’s initial system configuration and stores it in
2120 <literal>/nix/var/nix/profiles/per-container/foo/system</literal>.
2221 You can modify the initial configuration of the container on the
nixos/doc/manual/from_md/installation/building-nixos.chapter.xml → nixos/doc/manual/from_md/development/building-nixos.chapter.xmlrenamed−34
@@ -43,40 +43,6 @@ $ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd
4343 </para>
4444 <programlisting>
4545# mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso
46−</programlisting>
47− </section>
48− <section xml:id="sec-building-image-drivers">
49− <title>Additional drivers or firmware</title>
50− <para>
51− If you need additional (non-distributable) drivers or firmware in
52− the installer, you might want to extend these configurations.
53− </para>
54− <para>
55− For example, to build the GNOME graphical installer ISO, but with
56− support for certain WiFi adapters present in some MacBooks, you
57− can create the following file at
58− <literal>modules/installer/cd-dvd/installation-cd-graphical-gnome-macbook.nix</literal>:
59− </para>
60− <programlisting language="bash">
61−{ config, ... }:
62−
63−{
64− imports = [ ./installation-cd-graphical-gnome.nix ];
65−
66− boot.initrd.kernelModules = [ "wl" ];
67−
68− boot.kernelModules = [ "kvm-intel" "wl" ];
69− boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
70−}
71−</programlisting>
72− <para>
73− Then build it like in the example above:
74− </para>
75− <programlisting>
76−$ git clone https://github.com/NixOS/nixpkgs.git
77−$ cd nixpkgs/nixos
78−$ export NIXPKGS_ALLOW_UNFREE=1
79−$ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-graphical-gnome-macbook.nix default.nix
8046</programlisting>
8147 </section>
8248 <section xml:id="sec-building-image-tech-notes">
nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml+35−53
@@ -274,9 +274,35 @@ start_all()
274274 <listitem>
275275 <para>
276276 Execute a shell command, returning a list
277− <literal>(status, stdout)</literal>.
277+ <literal>(status, stdout)</literal>. If the command
278+ detaches, it must close stdout, as
279+ <literal>execute</literal> will wait for this to consume all
280+ output reliably. This can be achieved by redirecting stdout
281+ to stderr <literal>>&2</literal>, to
282+ <literal>/dev/console</literal>,
283+ <literal>/dev/null</literal> or a file. Examples of
284+ detaching commands are <literal>sleep 365d &</literal>,
285+ where the shell forks a new process that can write to stdout
286+ and <literal>xclip -i</literal>, where the
287+ <literal>xclip</literal> command itself forks without
288+ closing stdout. Takes an optional parameter
289+ <literal>check_return</literal> that defaults to
290+ <literal>True</literal>. Setting this parameter to
291+ <literal>False</literal> will not check for the return code
292+ and return -1 instead. This can be used for commands that
293+ shut down the VM and would therefore break the pipe that
294+ would be used for retrieving the return code.
278295 </para>
296+ </listitem>
297+ </varlistentry>
298+ <varlistentry>
299+ <term>
300+ <literal>succeed</literal>
301+ </term>
302+ <listitem>
279303 <para>
304+ Execute a shell command, raising an exception if the exit
305+ status is not zero, otherwise returning the standard output.
280306 Commands are run with <literal>set -euo pipefail</literal>
281307 set:
282308 </para>
@@ -291,63 +317,22 @@ start_all()
291317 <listitem>
292318 <para>
293319 For pipelines, the last non-zero exit status will be
294− returned (if there is one; otherwise zero will be
295− returned).
320+ returned (if there is one, zero will be returned
321+ otherwise).
296322 </para>
297323 </listitem>
298324 <listitem>
299325 <para>
300− Dereferencing unset variables fails the command.
326+ Dereferencing unset variables fail the command.
301327 </para>
302328 </listitem>
303329 <listitem>
304330 <para>
305− It will wait for stdout to be closed.
331+ It will wait for stdout to be closed. See
332+ <literal>execute</literal> for the implications.
306333 </para>
307334 </listitem>
308335 </itemizedlist>
309− <para>
310− If the command detaches, it must close stdout, as
311− <literal>execute</literal> will wait for this to consume all
312− output reliably. This can be achieved by redirecting stdout
313− to stderr <literal>>&2</literal>, to
314− <literal>/dev/console</literal>,
315− <literal>/dev/null</literal> or a file. Examples of
316− detaching commands are <literal>sleep 365d &</literal>,
317− where the shell forks a new process that can write to stdout
318− and <literal>xclip -i</literal>, where the
319− <literal>xclip</literal> command itself forks without
320− closing stdout.
321− </para>
322− <para>
323− Takes an optional parameter <literal>check_return</literal>
324− that defaults to <literal>True</literal>. Setting this
325− parameter to <literal>False</literal> will not check for the
326− return code and return -1 instead. This can be used for
327− commands that shut down the VM and would therefore break the
328− pipe that would be used for retrieving the return code.
329− </para>
330− <para>
331− A timeout for the command can be specified (in seconds)
332− using the optional <literal>timeout</literal> parameter,
333− e.g., <literal>execute(cmd, timeout=10)</literal> or
334− <literal>execute(cmd, timeout=None)</literal>. The default
335− is 900 seconds.
336− </para>
337− </listitem>
338− </varlistentry>
339− <varlistentry>
340− <term>
341− <literal>succeed</literal>
342− </term>
343− <listitem>
344− <para>
345− Execute a shell command, raising an exception if the exit
346− status is not zero, otherwise returning the standard output.
347− Similar to <literal>execute</literal>, except that the
348− timeout is <literal>None</literal> by default. See
349− <literal>execute</literal> for details on command execution.
350− </para>
351336 </listitem>
352337 </varlistentry>
353338 <varlistentry>
@@ -368,10 +353,7 @@ start_all()
368353 <listitem>
369354 <para>
370355 Repeat a shell command with 1-second intervals until it
371− succeeds. Has a default timeout of 900 seconds which can be
372− modified, e.g.
373− <literal>wait_until_succeeds(cmd, timeout=10)</literal>. See
374− <literal>execute</literal> for details on command execution.
356+ succeeds.
375357 </para>
376358 </listitem>
377359 </varlistentry>
@@ -381,8 +363,8 @@ start_all()
381363 </term>
382364 <listitem>
383365 <para>
384− Like <literal>wait_until_succeeds</literal>, but repeating
385− the command until it fails.
366+ Repeat a shell command with 1-second intervals until it
367+ fails.
386368 </para>
387369 </listitem>
388370 </varlistentry>
nixos/doc/manual/from_md/release-notes/rl-2205.section.xml+2−590
@@ -43,33 +43,6 @@
4343 Shell.
4444 </para>
4545 </listitem>
46− <listitem>
47− <para>
48− <literal>stdenv.mkDerivation</literal> now supports a
49− self-referencing <literal>finalAttrs:</literal> parameter
50− containing the final <literal>mkDerivation</literal> arguments
51− including overrides. <literal>drv.overrideAttrs</literal> now
52− supports two parameters
53− <literal>finalAttrs: previousAttrs:</literal>. This allows
54− packaging configuration to be overridden in a consistent
55− manner by providing an alternative to
56− <literal>rec {}</literal> syntax.
57− </para>
58− <para>
59− Additionally, <literal>passthru</literal> can now reference
60− <literal>finalAttrs.finalPackage</literal> containing the
61− final package, including attributes such as the output paths
62− and <literal>overrideAttrs</literal>.
63− </para>
64− <para>
65− New language integrations can be simplified by overriding a
66− <quote>prototype</quote> package containing the
67− language-specific logic. This removes the need for a extra
68− layer of overriding for the <quote>generic builder</quote>
69− arguments, thus removing a usability problem and source of
70− error.
71− </para>
72− </listitem>
7346 <listitem>
7447 <para>
7548 PHP 8.1 is now available
@@ -100,29 +73,6 @@
10073 Systemd has been upgraded to the version 250.
10174 </para>
10275 </listitem>
103− <listitem>
104− <para>
105− Pulseaudio has been upgraded to version 15.0 and now
106− optionally
107− <link xlink:href="https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/15.0/#supportforldacandaptxbluetoothcodecsplussbcxqsbcwithhigher-qualityparameters">supports
108− additional Bluetooth audio codecs</link> like aptX or LDAC,
109− with codec switching support being available in
110− <literal>pavucontrol</literal>. This feature is disabled by
111− default but can be enabled by using
112− <literal>hardware.pulseaudio.package = pkgs.pulseaudioFull;</literal>.
113− Existing 3rd party modules that provided similar
114− functionality, like <literal>pulseaudio-modules-bt</literal>
115− or <literal>pulseaudio-hsphfpd</literal> are deprecated and
116− have been removed.
117− </para>
118− </listitem>
119− <listitem>
120− <para>
121− The new
122− <link xlink:href="https://nixos.org/manual/nixpkgs/stable/#sec-postgresqlTestHook"><literal>postgresqlTestHook</literal></link>
123− runs a PostgreSQL server for the duration of package checks.
124− </para>
125− </listitem>
12676 <listitem>
12777 <para>
12878 <link xlink:href="https://kops.sigs.k8s.io"><literal>kops</literal></link>
@@ -151,14 +101,6 @@
151101 default.
152102 </para>
153103 </listitem>
154− <listitem>
155− <para>
156− The GNOME and Plasma installation CDs now use
157− <literal>pkgs.calamares</literal> and
158− <literal>pkgs.calamares-nixos-extensions</literal> to allow
159− users to easily install and set up NixOS with a GUI.
160− </para>
161− </listitem>
162104 </itemizedlist>
163105 </section>
164106 <section xml:id="sec-release-22.05-new-services">
@@ -188,13 +130,6 @@
188130 <link xlink:href="option.html#opt-services.matrix-conduit.enable">services.matrix-conduit</link>.
189131 </para>
190132 </listitem>
191− <listitem>
192− <para>
193− <link xlink:href="https://github.com/vvilhonen/nethoscope">nethoscope</link>,
194− listen to your network traffic. Available as
195− <link linkend="opt-programs.nethoscope.enable">programs.nethoscope</link>.
196− </para>
197− </listitem>
198133 <listitem>
199134 <para>
200135 <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html">filebeat</link>,
@@ -426,14 +361,6 @@
426361 <link xlink:href="options.html#opt-services.headscale.enable">services.headscale</link>
427362 </para>
428363 </listitem>
429− <listitem>
430− <para>
431− <link xlink:href="https://github.com/lakinduakash/linux-wifi-hotspot">create_ap</link>,
432− a module for creating wifi hotspots using the program
433− linux-wifi-hotspot. Available as
434− <link xlink:href="options.html#opt-services.create_ap.enable">services.create_ap</link>.
435− </para>
436− </listitem>
437364 <listitem>
438365 <para>
439366 <link xlink:href="https://0xerr0r.github.io/blocky/">blocky</link>,
@@ -447,14 +374,6 @@
447374 cluster resource manager
448375 </para>
449376 </listitem>
450− <listitem>
451− <para>
452− <link xlink:href="https://nifi.apache.org">nifi</link>, an
453− easy to use, powerful, and reliable system to process and
454− distribute data. Available as
455− <link xlink:href="options.html#opt-services.nifi.enable">services.nifi</link>.
456− </para>
457− </listitem>
458377 </itemizedlist>
459378 </section>
460379 <section xml:id="sec-release-22.05-incompatibilities">
@@ -522,85 +441,12 @@
522441 new versions will release.
523442 </para>
524443 </listitem>
525− <listitem>
526− <para>
527− The configuration and state directories used by
528− <literal>nixos-containers</literal> have been moved from
529− <literal>/etc/containers</literal> and
530− <literal>/var/lib/containers</literal> to
531− <literal>/etc/nixos-containers</literal> and
532− <literal>/var/lib/nixos-containers</literal>.
533− </para>
534− <para>
535− If you are changing <literal>system.stateVersion</literal> to
536− <literal>"22.05"</literal> manually on an existing
537− system you are responsible for migrating these directories
538− yourself.
539− </para>
540− <para>
541− This is to improve compatibility with
542− <literal>libcontainer</literal> based software such as Podman
543− and Skopeo which assumes they have ownership over
544− <literal>/etc/containers</literal>.
545− </para>
546− </listitem>
547− <listitem>
548− <para>
549− For new installations
550− <literal>virtualisation.oci-containers.backend</literal> is
551− now set to <literal>podman</literal> by default. If you still
552− want to use Docker on systems where
553− <literal>system.stateVersion</literal> is set to to
554− <literal>"22.05"</literal> set
555− <literal>virtualisation.oci-containers.backend = "docker";</literal>.Old
556− systems with older <literal>stateVersion</literal>s stay with
557− <quote>docker</quote>.
558− </para>
559− </listitem>
560444 <listitem>
561445 <para>
562446 <literal>security.klogd</literal> was removed. Logging of
563447 kernel messages is handled by systemd since Linux 3.5.
564448 </para>
565449 </listitem>
566− <listitem>
567− <para>
568− <literal>pkgs.ssmtp</literal> has been dropped due to the
569− program being unmaintained. <literal>pkgs.msmtp</literal> can
570− be used instead as a substitute <literal>sendmail</literal>
571− implementation. The corresponding options
572− <literal>services.ssmtp.*</literal> have been removed as well.
573− <literal>programs.msmtp.*</literal> can be used instead for an
574− equivalent setup. For example:
575− </para>
576− <programlisting language="bash">
577−{
578− # Original ssmtp configuration:
579− services.ssmtp = {
580− enable = true;
581− useTLS = true;
582− useSTARTTLS = true;
583− hostName = "smtp.example:587";
584− authUser = "someone";
585− authPassFile = "/secrets/password.txt";
586− };
587−
588− # Equivalent msmtp configuration:
589− programs.msmtp = {
590− enable = true;
591− accounts.default = {
592− tls = true;
593− tls_starttls = true;
594− auth = true;
595− host = "smtp.example";
596− port = 587;
597− user = "someone";
598− passwordeval = "cat /secrets/password.txt";
599− };
600− };
601−}
602−</programlisting>
603− </listitem>
604450 <listitem>
605451 <para>
606452 <literal>services.kubernetes.addons.dashboard</literal> was
@@ -618,53 +464,12 @@
618464 relying on the insecure behaviour before upgrading.
619465 </para>
620466 </listitem>
621− <listitem>
622− <para>
623− In the PowerDNS Recursor module
624− (<literal>services.pdns-recursor</literal>), default values of
625− several IP address-related NixOS options have been updated to
626− match the default upstream behavior. In particular, Recursor
627− by default will:
628− </para>
629− <itemizedlist spacing="compact">
630− <listitem>
631− <para>
632− listen on (and allows connections from) both IPv4 and IPv6
633− addresses
634− (<literal>services.pdns-recursor.dns.address</literal>,
635− <literal>services.pdns-recursor.dns.allowFrom</literal>);
636− </para>
637− </listitem>
638− <listitem>
639− <para>
640− allow only local connections to the REST API server
641− (<literal>services.pdns-recursor.api.allowFrom</literal>).
642− </para>
643− </listitem>
644− </itemizedlist>
645− </listitem>
646− <listitem>
647− <para>
648− In the ncdns module, the default value of
649− <literal>services.ncdns.address</literal> has been changed to
650− the IPv6 loopback address (<literal>::1</literal>).
651− </para>
652− </listitem>
653467 <listitem>
654468 <para>
655469 <literal>openssh</literal> has been update to 8.9p1, changing
656470 the FIDO security key middleware interface.
657471 </para>
658472 </listitem>
659− <listitem>
660− <para>
661− <literal>git</literal> no longer hardcodes the path to
662− openssh’ ssh binary to reduce the amount of rebuilds. If you
663− are using git with ssh remotes and do not have a ssh binary in
664− your enviroment consider adding <literal>openssh</literal> to
665− it or switching to <literal>gitFull</literal>.
666− </para>
667− </listitem>
668473 <listitem>
669474 <para>
670475 <literal>services.k3s.enable</literal> no longer implies
@@ -697,13 +502,6 @@
697502}
698503</programlisting>
699504 </listitem>
700− <listitem>
701− <para>
702− <literal>services.prometheus.alertManagerTimeout</literal> has
703− been removed as it has been deprecated upstream and has no
704− effect.
705− </para>
706− </listitem>
707505 <listitem>
708506 <para>
709507 The DHCP server (<literal>services.dhcpd4</literal>,
@@ -737,24 +535,6 @@
737535 work.
738536 </para>
739537 </listitem>
740− <listitem>
741− <para>
742− <literal>hbase</literal> version 0.98.24 has been removed. The
743− package now defaults to version 2.4.11. Versions 1.7.1 and
744− 3.0.0-alpha-2 are also available.
745− </para>
746− </listitem>
747− <listitem>
748− <para>
749− <literal>services.paperless-ng</literal> was renamed to
750− <literal>services.paperless</literal>. Accordingly, the
751− <literal>paperless-ng-manage</literal> script (located in
752− <literal>dataDir</literal>) was renamed to
753− <literal>paperless-manage</literal>.
754− <literal>services.paperless</literal> now uses
755− <literal>paperless-ngx</literal>.
756− </para>
757− </listitem>
758538 <listitem>
759539 <para>
760540 The <literal>matrix-synapse</literal> service
@@ -877,136 +657,6 @@
877657 to the new location if the <literal>stateVersion</literal> is
878658 updated.
879659 </para>
880− <para>
881− As of Synapse 1.58.0, the old groups/communities feature has
882− been disabled by default. It will be completely removed with
883− Synapse 1.61.0.
884− </para>
885− </listitem>
886− <listitem>
887− <para>
888− The Keycloak package (<literal>pkgs.keycloak</literal>) has
889− been switched from the Wildfly version, which will soon be
890− deprecated, to the Quarkus based version. The Keycloak service
891− (<literal>services.keycloak</literal>) has been updated to
892− accommodate the change and now differs from the previous
893− version in a few ways:
894− </para>
895− <itemizedlist>
896− <listitem>
897− <para>
898− <literal>services.keycloak.extraConfig</literal> has been
899− removed in favor of the new
900− <link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">settings-style</link>
901− <link linkend="opt-services.keycloak.settings"><literal>services.keycloak.settings</literal></link>
902− option. The available options correspond directly to
903− parameters in <literal>conf/keycloak.conf</literal>. Some
904− of the most important parameters are documented as
905− suboptions, the rest can be found in the
906− <link xlink:href="https://www.keycloak.org/server/all-config">All
907− configuration section of the Keycloak Server Installation
908− and Configuration Guide</link>. While the new
909− configuration is much simpler and cleaner than the old
910− JBoss CLI one, this unfortunately mean that there’s no
911− straightforward way to convert an old configuration to the
912− new format and some settings may not even be available
913− anymore.
914− </para>
915− </listitem>
916− <listitem>
917− <para>
918− <literal>services.keycloak.frontendUrl</literal> was
919− removed and the frontend URL is now configured through the
920− <literal>hostname</literal> family of settings in
921− <link linkend="opt-services.keycloak.settings"><literal>services.keycloak.settings</literal></link>
922− instead. See the
923− <link xlink:href="https://www.keycloak.org/server/hostname">Hostname
924− section of the Keycloak Server Installation and
925− Configuration Guide</link> for more details. Additionally,
926− <literal>/auth</literal> was removed from the default
927− context path and needs to be added back in
928− <link linkend="opt-services.keycloak.settings.http-relative-path"><literal>services.keycloak.settings.http-relative-path</literal></link>
929− if you want to keep compatibility with your current
930− clients.
931− </para>
932− </listitem>
933− <listitem>
934− <para>
935− <literal>services.keycloak.bindAddress</literal>,
936− <literal>services.keycloak.forceBackendUrlToFrontendUrl</literal>,
937− <literal>services.keycloak.httpPort</literal> and
938− <literal>services.keycloak.httpsPort</literal> have been
939− removed in favor of their equivalent options in
940− <link linkend="opt-services.keycloak.settings"><literal>services.keycloak.settings</literal></link>.
941− <literal>httpPort</literal> and
942− <literal>httpsPort</literal> have additionally had their
943− types changed from <literal>str</literal> to
944− <literal>port</literal>.
945− </para>
946− <para>
947− The new names are as follows:
948− </para>
949− <itemizedlist spacing="compact">
950− <listitem>
951− <para>
952− <literal>bindAddress</literal>:
953− <link linkend="opt-services.keycloak.settings.http-host"><literal>services.keycloak.settings.http-host</literal></link>
954− </para>
955− </listitem>
956− <listitem>
957− <para>
958− <literal>forceBackendUrlToFrontendUrl</literal>:
959− <link linkend="opt-services.keycloak.settings.hostname-strict-backchannel"><literal>services.keycloak.settings.hostname-strict-backchannel</literal></link>
960− </para>
961− </listitem>
962− <listitem>
963− <para>
964− <literal>httpPort</literal>:
965− <link linkend="opt-services.keycloak.settings.http-port"><literal>services.keycloak.settings.http-port</literal></link>
966− </para>
967− </listitem>
968− <listitem>
969− <para>
970− <literal>httpsPort</literal>:
971− <link linkend="opt-services.keycloak.settings.https-port"><literal>services.keycloak.settings.https-port</literal></link>
972− </para>
973− </listitem>
974− </itemizedlist>
975− </listitem>
976− </itemizedlist>
977− <para>
978− For example, when using a reverse proxy the migration could
979− look like this:
980− </para>
981− <para>
982− Before:
983− </para>
984− <programlisting language="bash">
985− services.keycloak = {
986− enable = true;
987− httpPort = "8080";
988− frontendUrl = "https://keycloak.example.com/auth";
989− database.passwordFile = "/run/keys/db_password";
990− extraConfig = {
991− "subsystem=undertow"."server=default-server"."http-listener=default".proxy-address-forwarding = true;
992− };
993− };
994−</programlisting>
995− <para>
996− After:
997− </para>
998− <programlisting language="bash">
999− services.keycloak = {
1000− enable = true;
1001− settings = {
1002− http-port = 8080;
1003− hostname = "keycloak.example.com";
1004− http-relative-path = "/auth";
1005− proxy = "edge";
1006− };
1007− database.passwordFile = "/run/keys/db_password";
1008− };
1009−</programlisting>
1010660 </listitem>
1011661 <listitem>
1012662 <para>
@@ -1142,14 +792,6 @@
1142792 <literal>admin</literal> and <literal>password</literal>.
1143793 </para>
1144794 </listitem>
1145− <listitem>
1146− <para>
1147− The <literal>taskserver</literal> module no longer implicitly
1148− opens ports in the firewall configuration. This is now
1149− controlled through the option
1150− <literal>services.taskserver.openFirewall</literal>.
1151− </para>
1152− </listitem>
1153795 <listitem>
1154796 <para>
1155797 The <literal>autorestic</literal> package has been upgraded
@@ -1352,14 +994,6 @@
1352994 <literal>systemd.nspawn.<name>.execConfig.PrivateUsers = false</literal>
1353995 </para>
1354996 </listitem>
1355− <listitem>
1356− <para>
1357− <literal>systemd-shutdown</literal> is now properly linked on
1358− shutdown to unmount all filesystems and device mapper devices
1359− cleanly. This can be disabled using
1360− <literal>systemd.shutdownRamfs.enable</literal>.
1361− </para>
1362− </listitem>
1363997 <listitem>
1364998 <para>
1365999 The Tor SOCKS proxy is now actually disabled if
@@ -1370,15 +1004,6 @@
13701004 <literal>true</literal>.
13711005 </para>
13721006 </listitem>
1373− <listitem>
1374− <para>
1375− <literal>services.github-runner</literal> has been hardened.
1376− Notably address families and system calls have been
1377− restricted, which may adversely affect some kinds of testing,
1378− e.g. using <literal>AF_BLUETOOTH</literal> to test bluetooth
1379− devices.
1380− </para>
1381− </listitem>
13821007 <listitem>
13831008 <para>
13841009 The terraform 0.12 compatibility has been removed and the
@@ -1423,16 +1048,6 @@
14231048 <literal>otelcorecol</literal> and enjoy a 7x smaller binary.
14241049 </para>
14251050 </listitem>
1426− <listitem>
1427− <para>
1428− <literal>services.zookeeper</literal> has a new option
1429− <literal>jre</literal> for specifying the JRE to start
1430− zookeeper with. It defaults to the JRE that
1431− <literal>pkgs.zookeeper</literal> was wrapped with, instead of
1432− <literal>pkgs.jre</literal>. This changes the JRE to
1433− <literal>pkgs.jdk11_headless</literal> by default.
1434− </para>
1435− </listitem>
14361051 <listitem>
14371052 <para>
14381053 <literal>pkgs.pgadmin</literal> now refers to
@@ -1679,33 +1294,6 @@
16791294 example.
16801295 </para>
16811296 </listitem>
1682− <listitem>
1683− <para>
1684− Existing <literal>resholve*</literal> functions have been
1685− renamed and nested under <literal>pkgs.resholve</literal>.
1686− Update uses to:
1687− </para>
1688− <itemizedlist spacing="compact">
1689− <listitem>
1690− <para>
1691− <literal>resholvePackage</literal> ->
1692− <literal>resholve.mkDerivation</literal>
1693− </para>
1694− </listitem>
1695− <listitem>
1696− <para>
1697− <literal>resholveScript</literal> ->
1698− <literal>resholve.writeScript</literal>
1699− </para>
1700− </listitem>
1701− <listitem>
1702− <para>
1703− <literal>resholveScriptBin</literal> ->
1704− <literal>resholve.writeScriptBin</literal>
1705− </para>
1706− </listitem>
1707− </itemizedlist>
1708− </listitem>
17091297 <listitem>
17101298 <para>
17111299 <literal>pkgs.cosmopolitan</literal> no longer provides the
@@ -1713,17 +1301,6 @@
17131301 <literal>pkgs.cosmoc</literal>.
17141302 </para>
17151303 </listitem>
1716− <listitem>
1717− <para>
1718− <literal>pkgs.graalvmXX-ce</literal> packages no longer
1719− provide support for Python/Ruby/WASM, instead focusing only in
1720− Java and Native Image Support. If you need to add support
1721− back, please see the
1722− <literal>pkgs.graalvmCEPackages.mkGraal</literal> function to
1723− create your own customized version of GraalVM with support for
1724− what you need.
1725− </para>
1726− </listitem>
17271304 </itemizedlist>
17281305 </section>
17291306 <section xml:id="sec-release-22.05-notable-changes">
@@ -1837,14 +1414,6 @@
18371414 </listitem>
18381415 </itemizedlist>
18391416 </listitem>
1840− <listitem>
1841− <para>
1842− The auto-upgrade service now accepts persistent (default:
1843− true) parameter. By default auto-upgrade will now run
1844− immediately if it would have been triggered at least once
1845− during the time when the timer was inactive.
1846− </para>
1847− </listitem>
18481417 <listitem>
18491418 <para>
18501419 If you are using Wayland you can choose to use the Ozone
@@ -1993,29 +1562,6 @@
19931562 configuration.
19941563 </para>
19951564 </listitem>
1996− <listitem>
1997− <para>
1998− The option
1999− <link linkend="opt-services.xserver.desktopManager.runXdgAutostartIfNone">services.xserver.desktopManager.runXdgAutostartIfNone</link>
2000− was added in order to automatically run XDG autostart files
2001− for sessions without a desktop manager. This replaces helpers
2002− like the <literal>dex</literal> package.
2003− </para>
2004− </listitem>
2005− <listitem>
2006− <para>
2007− When setting
2008− <link linkend="opt-i18n.inputMethod.enabled">i18n.inputMethod.enabled</link>
2009− to <literal>fcitx5</literal>, it no longer creates
2010− corresponding systemd user services. It now relies on XDG
2011− autostart files to start and work properly in your desktop
2012− sessions. If you are using only a window manager without a
2013− desktop manager, you need to enable
2014− <literal>services.xserver.desktopManager.runXdgAutostartIfNone</literal>
2015− or using the <literal>dex</literal> package to make
2016− <literal>fcitx5</literal> work.
2017− </para>
2018− </listitem>
20191565 <listitem>
20201566 <para>
20211567 A new module was added for the Envoy reverse proxy, providing
@@ -2047,51 +1593,10 @@
20471593 </listitem>
20481594 <listitem>
20491595 <para>
2050− ORY Kratos was updated to version 0.9.0-alpha.3, which
1596+ ORY Kratos was updated to version 0.8.3-alpha.1.pre.0, which
20511597 introduces some breaking changes:
20521598 </para>
20531599 <itemizedlist spacing="compact">
2054− <listitem>
2055− <para>
2056− All endpoints at the Admin API are now exposed at
2057− <literal>/admin/</literal>. For example, endpoint
2058− <literal>https://kratos:4434/identities</literal> is now
2059− exposed at
2060− <literal>https://kratos:4434/admin/identities</literal>
2061− </para>
2062− </listitem>
2063− <listitem>
2064− <para>
2065− Configuration key
2066− <literal>selfservice.whitelisted_return_urls</literal> has
2067− been renamed to <literal>allowed_return_urls</literal>
2068− </para>
2069− </listitem>
2070− <listitem>
2071− <para>
2072− The <literal>password_identifier</literal> form field of
2073− the password login strategy has been renamed to
2074− <literal>identifier</literal> to make compatibility with
2075− passwordless flows possible.
2076− </para>
2077− </listitem>
2078− <listitem>
2079− <para>
2080− Instead of having a global
2081− <literal>default_schema_url</literal> which developers
2082− used to update their schema, you now need to define the
2083− <literal>default_schema_id</literal> which must reference
2084− schema ID in your config.
2085− </para>
2086− </listitem>
2087− <listitem>
2088− <para>
2089− Calling <literal>/self-service/recovery</literal> without
2090− flow ID or with an invalid flow ID while authenticated
2091− will now respond with an error instead of redirecting to
2092− the default page.
2093− </para>
2094− </listitem>
20951600 <listitem>
20961601 <para>
20971602 If you are relying on the SQLite images, update your
@@ -2128,18 +1633,6 @@
21281633 Notes for v0.8.2-alpha-1</link>
21291634 </para>
21301635 </listitem>
2131− <listitem>
2132− <para>
2133− <link xlink:href="https://github.com/ory/kratos/releases/tag/v0.9.0-alpha.1">Release
2134− Notes for v0.9.0-alpha-1</link>
2135− </para>
2136− </listitem>
2137− <listitem>
2138− <para>
2139− <link xlink:href="https://github.com/ory/kratos/releases/tag/v0.9.0-alpha.3">Release
2140− Notes for v0.9.0-alpha-3</link>
2141− </para>
2142− </listitem>
21431636 </itemizedlist>
21441637 </listitem>
21451638 </itemizedlist>
@@ -2153,13 +1646,6 @@
21531646 <literal>true</literal>.
21541647 </para>
21551648 </listitem>
2156− <listitem>
2157− <para>
2158− A module for declarative configuration of openconnect VPN
2159− profiles was added under
2160− <literal>networking.openconnect</literal>.
2161− </para>
2162− </listitem>
21631649 <listitem>
21641650 <para>
21651651 The <literal>element-desktop</literal> package now has an
@@ -2258,21 +1744,6 @@
22581744 should now be used instead.
22591745 </para>
22601746 </listitem>
2261− <listitem>
2262− <para>
2263− <literal>security.pam.ussh</literal> has been added, which
2264− allows authorizing PAM sessions based on SSH
2265− <emphasis>certificates</emphasis> held within an SSH agent,
2266− using
2267− <link xlink:href="https://github.com/uber/pam-ussh">pam-ussh</link>.
2268− </para>
2269− </listitem>
2270− <listitem>
2271− <para>
2272− The <literal>vscode-extensions.ionide.ionide-fsharp</literal>
2273− package has been updated to 6.0.0 and now requires .NET 6.0.
2274− </para>
2275− </listitem>
22761747 <listitem>
22771748 <para>
22781749 The <literal>zrepl</literal> package has been updated from
@@ -2298,24 +1769,6 @@
22981769 </listitem>
22991770 </itemizedlist>
23001771 </listitem>
2301− <listitem>
2302− <para>
2303− The <literal>polybar</literal> package has been updated from
2304− 3.5.7 to 3.6.2. See
2305− <link xlink:href="https://github.com/polybar/polybar/releases/tag/3.6.0">the
2306− changelog</link> for more details.
2307− </para>
2308− <itemizedlist spacing="compact">
2309− <listitem>
2310− <para>
2311− Breaking changes include changes to escaping rules in
2312− configuration values, changes in behavior when
2313− encountering invalid tag names, and changes to
2314− inter-process-messaging (IPC).
2315− </para>
2316− </listitem>
2317− </itemizedlist>
2318− </listitem>
23191772 <listitem>
23201773 <para>
23211774 Renamed option
@@ -2371,25 +1824,11 @@
23711824 desktop environments as needed.
23721825 </para>
23731826 </listitem>
2374− <listitem>
2375− <para>
2376− xfsprogs was update to version 5.15, which enables inobtcount
2377− and bigtime by default on filesystem creation. Support for
2378− these features was added in kernel 5.10 and deemed stable in
2379− kernel 5.15. If you want to be able to mount XFS filesystems
2380− created with this release of xfsprogs on kernel releases older
2381− than 5.10, you need to format them with
2382− <literal>mkfs.xfs -m bigtime=0 -m inobtcount=0</literal>.
2383− </para>
2384− </listitem>
23851827 <listitem>
23861828 <para>
23871829 <literal>services.xserver.desktopManager.xfce</literal> now
23881830 includes Xfce’s screen locker,
2389− <literal>xfce4-screensaver</literal> that is enabled by
2390− default. You can disable it by setting
2391− <literal>false</literal> to
2392− <link linkend="opt-services.xserver.desktopManager.xfce.enableScreensaver">services.xserver.desktopManager.xfce.enableScreensaver</link>.
1831+ <literal>xfce4-screensaver</literal>.
23931832 </para>
23941833 </listitem>
23951834 <listitem>
@@ -2407,24 +1846,6 @@
24071846 (<link xlink:href="https://github.com/NixOS/nixpkgs/pull/158992">#158992</link>).
24081847 </para>
24091848 </listitem>
2410− <listitem>
2411− <para>
2412− The <literal>nss</literal> package was split into
2413− <literal>nss_esr</literal> and <literal>nss_latest</literal>,
2414− with <literal>nss</literal> being an alias for
2415− <literal>nss_esr</literal>. This was done to ease maintenance
2416− of <literal>nss</literal> and dependent high-profile packages
2417− like <literal>firefox</literal>.
2418− </para>
2419− </listitem>
2420− <listitem>
2421− <para>
2422− The Nextcloud module now supports to create a Mysql database
2423− automatically with
2424− <literal>services.nextcloud.database.createLocally</literal>
2425− enabled.
2426− </para>
2427− </listitem>
24281849 <listitem>
24291850 <para>
24301851 The <literal>spark3</literal> package has been updated from
@@ -2456,15 +1877,6 @@
24561877 generating host-global NNCP configuration.
24571878 </para>
24581879 </listitem>
2459− <listitem>
2460− <para>
2461− The option <literal>services.snapserver.openFirewall</literal>
2462− will no longer default to <literal>true</literal> starting
2463− with NixOS 22.11. Enable it explicitly if you need to control
2464− Snapserver remotely or connect streamig clients from other
2465− hosts.
2466− </para>
2467− </listitem>
24681880 </itemizedlist>
24691881 </section>
24701882</section>
nixos/doc/manual/installation/installation.xml−1
@@ -14,5 +14,4 @@
1414 <xi:include href="../from_md/installation/installing.chapter.xml" />
1515 <xi:include href="../from_md/installation/changing-config.chapter.xml" />
1616 <xi:include href="../from_md/installation/upgrading.chapter.xml" />
17− <xi:include href="../from_md/installation/building-nixos.chapter.xml" />
1817</part>
nixos/doc/manual/man-nixos-rebuild.xml−8
@@ -548,14 +548,6 @@
548548 (<replaceable>user@host</replaceable>). You can also set ssh options by
549549 defining the <envar>NIX_SSHOPTS</envar> environment variable.
550550 </para>
551−
552− <para>
553− Note that <command>nixos-rebuild</command> honors the
554− <literal>nixpkgs.crossSystem</literal> setting of the given configuration
555− but disregards the true architecture of the target host. Hence the
556− <literal>nixpkgs.crossSystem</literal> setting has to match the target
557− platform or else activation will fail.
558− </para>
559551 </listitem>
560552 </varlistentry>
561553
nixos/doc/manual/md-to-db.sh+1−1
@@ -1,5 +1,5 @@
11#! /usr/bin/env nix-shell
2−#! nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/tarball/21.11 -i bash -p pandoc
2+#! nix-shell -I nixpkgs=channel:nixpkgs-unstable -i bash -p pandoc
33
44# This script is temporarily needed while we transition the manual to
55# CommonMark. It converts the .md files in the regular manual folder
nixos/doc/manual/release-notes/rl-2205.section.md+2−234
@@ -17,21 +17,6 @@ In addition to numerous new and upgraded packages, this release has the followin
1717
1818- GNOME has been upgraded to 42. Please take a look at their [Release Notes](https://release.gnome.org/42/) for details. Notably, it replaces gedit with GNOME Text Editor, GNOME Terminal with GNOME Console (formerly King’s Cross), and GNOME Screenshot with a tool built into the Shell.
1919
20−- `stdenv.mkDerivation` now supports a self-referencing `finalAttrs:` parameter
21− containing the final `mkDerivation` arguments including overrides.
22− `drv.overrideAttrs` now supports two parameters `finalAttrs: previousAttrs:`.
23− This allows packaging configuration to be overridden in a consistent manner by
24− providing an alternative to `rec {}` syntax.
25−
26− Additionally, `passthru` can now reference `finalAttrs.finalPackage` containing
27− the final package, including attributes such as the output paths and
28− `overrideAttrs`.
29−
30− New language integrations can be simplified by overriding a "prototype"
31− package containing the language-specific logic. This removes the need for a
32− extra layer of overriding for the "generic builder" arguments, thus removing a
33− usability problem and source of error.
34−
3520- PHP 8.1 is now available
3621
3722- Mattermost has been updated to extended support release 6.3, as the previously packaged extended support release 5.37 is [reaching its end of life](https://docs.mattermost.com/upgrade/extended-support-release.html).
@@ -42,19 +27,12 @@ In addition to numerous new and upgraded packages, this release has the followin
4227
4328- Systemd has been upgraded to the version 250.
4429
45−- Pulseaudio has been upgraded to version 15.0 and now optionally [supports additional Bluetooth audio codecs](https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/15.0/#supportforldacandaptxbluetoothcodecsplussbcxqsbcwithhigher-qualityparameters) like aptX or LDAC, with codec switching support being available in `pavucontrol`. This feature is disabled by default but can be enabled by using `hardware.pulseaudio.package = pkgs.pulseaudioFull;`.
46− Existing 3rd party modules that provided similar functionality, like `pulseaudio-modules-bt` or `pulseaudio-hsphfpd` are deprecated and have been removed.
47−
48−- The new [`postgresqlTestHook`](https://nixos.org/manual/nixpkgs/stable/#sec-postgresqlTestHook) runs a PostgreSQL server for the duration of package checks.
49−
5030- [`kops`](https://kops.sigs.k8s.io) defaults to 1.22.4, which will enable [Instance Metadata Service Version 2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) and require tokens on new clusters with Kubernetes 1.22. This will increase security by default, but may break some types of workloads. See the [release notes](https://kops.sigs.k8s.io/releases/1.22-notes/) for details.
5131
5232- Module authors can use `mkRenamedOptionModuleWith` to automate the deprecation cycle without annoying out-of-tree module authors and their users.
5333
5434- The default GHC version has been updated from 8.10.7 to 9.0.2. `pkgs.haskellPackages` and `pkgs.ghc` will now use this version by default.
5535
56−- The GNOME and Plasma installation CDs now use `pkgs.calamares` and `pkgs.calamares-nixos-extensions` to allow users to easily install and set up NixOS with a GUI.
57−
5836## New Services {#sec-release-22.05-new-services}
5937
6038- [aesmd](https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw), the Intel SGX Architectural Enclave Service Manager. Available as [services.aesmd](#opt-services.aesmd.enable).
@@ -63,8 +41,6 @@ In addition to numerous new and upgraded packages, this release has the followin
6341
6442- [matrix-conduit](https://conduit.rs/), a simple, fast and reliable chat server powered by matrix. Available as [services.matrix-conduit](option.html#opt-services.matrix-conduit.enable).
6543
66−- [nethoscope](https://github.com/vvilhonen/nethoscope), listen to your network traffic. Available as [programs.nethoscope](#opt-programs.nethoscope.enable).
67−
6844- [filebeat](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html), a lightweight shipper for forwarding and centralizing log data. Available as [services.filebeat](#opt-services.filebeat.enable).
6945
7046- [apfs](https://github.com/linux-apfs/linux-apfs-rw), a kernel module for mounting the Apple File System (APFS).
@@ -127,14 +103,10 @@ In addition to numerous new and upgraded packages, this release has the followin
127103
128104- [headscale](https://github.com/juanfont/headscale), an Open Source implementation of the [Tailscale](https://tailscale.io) Control Server. Available as [services.headscale](options.html#opt-services.headscale.enable)
129105
130−- [create_ap](https://github.com/lakinduakash/linux-wifi-hotspot), a module for creating wifi hotspots using the program linux-wifi-hotspot. Available as [services.create_ap](options.html#opt-services.create_ap.enable).
131−
132106- [blocky](https://0xerr0r.github.io/blocky/), fast and lightweight DNS proxy as ad-blocker for local network with many features.
133107
134108- [pacemaker](https://clusterlabs.org/pacemaker/) cluster resource manager
135109
136−- [nifi](https://nifi.apache.org), an easy to use, powerful, and reliable system to process and distribute data. Available as [services.nifi](options.html#opt-services.nifi.enable).
137−
138110<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
139111
140112## Backward Incompatibilities {#sec-release-22.05-incompatibilities}
@@ -171,71 +143,15 @@ In addition to numerous new and upgraded packages, this release has the followin
171143 org-contrib, refer to the ones in `pkgs.emacsPackages.elpaPackages` and
172144 `pkgs.emacsPackages.nongnuPackages` where the new versions will release.
173145
174−- The configuration and state directories used by `nixos-containers` have been
175− moved from `/etc/containers` and `/var/lib/containers` to
176− `/etc/nixos-containers` and `/var/lib/nixos-containers`.
177−
178− If you are changing `system.stateVersion` to `"22.05"` manually on an existing
179− system you are responsible for migrating these directories yourself.
180−
181− This is to improve compatibility with `libcontainer` based software such as Podman and Skopeo
182− which assumes they have ownership over `/etc/containers`.
183−
184−- For new installations `virtualisation.oci-containers.backend` is now set to `podman` by default.
185− If you still want to use Docker on systems where `system.stateVersion` is set to to `"22.05"` set `virtualisation.oci-containers.backend = "docker";`.Old systems with older `stateVersion`s stay with "docker".
186−
187146- `security.klogd` was removed. Logging of kernel messages is handled
188147 by systemd since Linux 3.5.
189148
190−- `pkgs.ssmtp` has been dropped due to the program being unmaintained.
191− `pkgs.msmtp` can be used instead as a substitute `sendmail` implementation.
192− The corresponding options `services.ssmtp.*` have been removed as well.
193− `programs.msmtp.*` can be used instead for an equivalent setup. For example:
194−
195− ```nix
196− {
197− # Original ssmtp configuration:
198− services.ssmtp = {
199− enable = true;
200− useTLS = true;
201− useSTARTTLS = true;
202− hostName = "smtp.example:587";
203− authUser = "someone";
204− authPassFile = "/secrets/password.txt";
205− };
206−
207− # Equivalent msmtp configuration:
208− programs.msmtp = {
209− enable = true;
210− accounts.default = {
211− tls = true;
212− tls_starttls = true;
213− auth = true;
214− host = "smtp.example";
215− port = 587;
216− user = "someone";
217− passwordeval = "cat /secrets/password.txt";
218− };
219− };
220− }
221− ```
222−
223149- `services.kubernetes.addons.dashboard` was removed due to it being an outdated version.
224150
225151- `services.kubernetes.scheduler.{port,address}` now set `--secure-port` and `--bind-address` instead of `--port` and `--address`, since the former have been deprecated and are no longer functional in kubernetes>=1.23. Ensure that you are not relying on the insecure behaviour before upgrading.
226152
227−- In the PowerDNS Recursor module (`services.pdns-recursor`), default values of several IP address-related NixOS options have been updated to match the default upstream behavior.
228− In particular, Recursor by default will:
229− - listen on (and allows connections from) both IPv4 and IPv6 addresses
230− (`services.pdns-recursor.dns.address`, `services.pdns-recursor.dns.allowFrom`);
231− - allow only local connections to the REST API server (`services.pdns-recursor.api.allowFrom`).
232−
233−- In the ncdns module, the default value of `services.ncdns.address` has been changed to the IPv6 loopback address (`::1`).
234−
235153- `openssh` has been update to 8.9p1, changing the FIDO security key middleware interface.
236154
237−- `git` no longer hardcodes the path to openssh' ssh binary to reduce the amount of rebuilds. If you are using git with ssh remotes and do not have a ssh binary in your enviroment consider adding `openssh` to it or switching to `gitFull`.
238−
239155- `services.k3s.enable` no longer implies `systemd.enableUnifiedCgroupHierarchy = false`, and will default to the 'systemd' cgroup driver when using `services.k3s.docker = true`.
240156 This change may require a reboot to take effect, and k3s may not be able to run if the boot cgroup hierarchy does not match its configuration.
241157 The previous behavior may be retained by explicitly setting `systemd.enableUnifiedCgroupHierarchy = false` in your configuration.
@@ -253,8 +169,6 @@ In addition to numerous new and upgraded packages, this release has the followin
253169 }
254170 ```
255171
256−- `services.prometheus.alertManagerTimeout` has been removed as it has been deprecated upstream and has no effect.
257−
258172- The DHCP server (`services.dhcpd4`, `services.dhcpd6`) has been hardened.
259173 The service is now using the systemd's `DynamicUser` mechanism to run as an unprivileged dynamically-allocated user with limited capabilities.
260174 The dhcpd state files are now always stored in `/var/lib/dhcpd{4,6}` and the `services.dhcpd4.stateDir` and `service.dhcpd6.stateDir` options have been removed.
@@ -264,10 +178,6 @@ In addition to numerous new and upgraded packages, this release has the followin
264178
265179- `services.ipfs.extraFlags` is now escaped with `utils.escapeSystemdExecArgs`. If you rely on systemd interpolating `extraFlags` in the service `ExecStart`, this will no longer work.
266180
267−- `hbase` version 0.98.24 has been removed. The package now defaults to version 2.4.11. Versions 1.7.1 and 3.0.0-alpha-2 are also available.
268−
269−- `services.paperless-ng` was renamed to `services.paperless`. Accordingly, the `paperless-ng-manage` script (located in `dataDir`) was renamed to `paperless-manage`. `services.paperless` now uses `paperless-ngx`.
270−
271181- The `matrix-synapse` service (`services.matrix-synapse`) has been converted to use the `settings` option defined in RFC42.
272182 This means that options that are part of your `homeserver.yaml` configuration, and that were specified at the top-level of the
273183 module (`services.matrix-synapse`) now need to be moved into `services.matrix-synapse.settings`. And while not all options you
@@ -362,83 +272,6 @@ In addition to numerous new and upgraded packages, this release has the followin
362272 `media_store_path` was changed from `${dataDir}/media` to `${dataDir}/media_store` if `system.stateVersion` is at least `22.05`. Files will need to be manually moved to the new
363273 location if the `stateVersion` is updated.
364274
365− As of Synapse 1.58.0, the old groups/communities feature has been disabled by default. It will be completely removed with Synapse 1.61.0.
366−
367−- The Keycloak package (`pkgs.keycloak`) has been switched from the
368− Wildfly version, which will soon be deprecated, to the Quarkus based
369− version. The Keycloak service (`services.keycloak`) has been updated
370− to accommodate the change and now differs from the previous version
371− in a few ways:
372−
373− - `services.keycloak.extraConfig` has been removed in favor of the
374− new [settings-style](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md)
375− [`services.keycloak.settings`](#opt-services.keycloak.settings)
376− option. The available options correspond directly to parameters in
377− `conf/keycloak.conf`. Some of the most important parameters are
378− documented as suboptions, the rest can be found in the [All
379− configuration section of the Keycloak Server Installation and
380− Configuration
381− Guide](https://www.keycloak.org/server/all-config). While the new
382− configuration is much simpler and cleaner than the old JBoss CLI
383− one, this unfortunately mean that there's no straightforward way
384− to convert an old configuration to the new format and some
385− settings may not even be available anymore.
386−
387− - `services.keycloak.frontendUrl` was removed and the frontend URL
388− is now configured through the `hostname` family of settings in
389− [`services.keycloak.settings`](#opt-services.keycloak.settings)
390− instead. See the [Hostname section of the Keycloak Server
391− Installation and Configuration
392− Guide](https://www.keycloak.org/server/hostname) for more
393− details. Additionally, `/auth` was removed from the default
394− context path and needs to be added back in
395− [`services.keycloak.settings.http-relative-path`](#opt-services.keycloak.settings.http-relative-path)
396− if you want to keep compatibility with your current clients.
397−
398− - `services.keycloak.bindAddress`,
399− `services.keycloak.forceBackendUrlToFrontendUrl`,
400− `services.keycloak.httpPort` and `services.keycloak.httpsPort`
401− have been removed in favor of their equivalent options in
402− [`services.keycloak.settings`](#opt-services.keycloak.settings). `httpPort`
403− and `httpsPort` have additionally had their types changed from
404− `str` to `port`.
405−
406− The new names are as follows:
407− - `bindAddress`: [`services.keycloak.settings.http-host`](#opt-services.keycloak.settings.http-host)
408− - `forceBackendUrlToFrontendUrl`: [`services.keycloak.settings.hostname-strict-backchannel`](#opt-services.keycloak.settings.hostname-strict-backchannel)
409− - `httpPort`: [`services.keycloak.settings.http-port`](#opt-services.keycloak.settings.http-port)
410− - `httpsPort`: [`services.keycloak.settings.https-port`](#opt-services.keycloak.settings.https-port)
411−
412− For example, when using a reverse proxy the migration could look
413− like this:
414−
415− Before:
416− ```nix
417− services.keycloak = {
418− enable = true;
419− httpPort = "8080";
420− frontendUrl = "https://keycloak.example.com/auth";
421− database.passwordFile = "/run/keys/db_password";
422− extraConfig = {
423− "subsystem=undertow"."server=default-server"."http-listener=default".proxy-address-forwarding = true;
424− };
425− };
426− ```
427−
428− After:
429− ```nix
430− services.keycloak = {
431− enable = true;
432− settings = {
433− http-port = 8080;
434− hostname = "keycloak.example.com";
435− http-relative-path = "/auth";
436− proxy = "edge";
437− };
438− database.passwordFile = "/run/keys/db_password";
439− };
440− ```
441−
442275- The MoinMoin wiki engine (`services.moinmoin`) has been removed, because Python 2 is being retired from nixpkgs.
443276
444277- Services in the `hadoop` module previously set `openFirewall` to true by default.
@@ -480,10 +313,6 @@ In addition to numerous new and upgraded packages, this release has the followin
480313
481314- `services.miniflux.adminCredentialFiles` is now required, instead of defaulting to `admin` and `password`.
482315
483−- The `taskserver` module no longer implicitly opens ports in the firewall
484− configuration. This is now controlled through the option
485− `services.taskserver.openFirewall`.
486−
487316- The `autorestic` package has been upgraded from 1.3.0 to 1.5.0 which introduces breaking changes in config file, check [their migration guide](https://autorestic.vercel.app/migration/1.4_1.5) for more details.
488317
489318- For `pkgs.python3.pkgs.ipython`, its direct dependency `pkgs.python3.pkgs.matplotlib-inline`
@@ -535,14 +364,8 @@ In addition to numerous new and upgraded packages, this release has the followin
535364
536365- `systemd-nspawn@.service` settings have been reverted to the default systemd behaviour. User namespaces are now activated by default. If you want to keep running nspawn containers without user namespaces you need to set `systemd.nspawn.<name>.execConfig.PrivateUsers = false`
537366
538−- `systemd-shutdown` is now properly linked on shutdown to unmount all filesystems and device mapper devices cleanly. This can be disabled using `systemd.shutdownRamfs.enable`.
539−
540367- The Tor SOCKS proxy is now actually disabled if `services.tor.client.enable` is set to `false` (the default). If you are using this functionality but didn't change the setting or set it to `false`, you now need to set it to `true`.
541368
542−- `services.github-runner` has been hardened. Notably address families and
543− system calls have been restricted, which may adversely affect some kinds of
544− testing, e.g. using `AF_BLUETOOTH` to test bluetooth devices.
545−
546369- The terraform 0.12 compatibility has been removed and the `terraform.withPlugins` and `terraform-providers.mkProvider` implementations simplified. Providers now need to be stored under
547370`$out/libexec/terraform-providers/<registry>/<owner>/<name>/<version>/<os>_<arch>/terraform-provider-<name>_v<version>` (which mkProvider does).
548371
@@ -563,10 +386,6 @@ In addition to numerous new and upgraded packages, this release has the followin
563386 you should change the package you refer to. If you don't need them update your
564387 commands from `otelcontribcol` to `otelcorecol` and enjoy a 7x smaller binary.
565388
566−- `services.zookeeper` has a new option `jre` for specifying the JRE to start
567− zookeeper with. It defaults to the JRE that `pkgs.zookeeper` was wrapped with,
568− instead of `pkgs.jre`. This changes the JRE to `pkgs.jdk11_headless` by default.
569−
570389- `pkgs.pgadmin` now refers to `pkgs.pgadmin4`. `pgadmin3` has been removed.
571390
572391- `pkgs.noto-fonts-cjk` is now deprecated in favor of `pkgs.noto-fonts-cjk-sans`
@@ -637,15 +456,8 @@ In addition to numerous new and upgraded packages, this release has the followin
637456
638457 See the `vscode` package for a more detailed example.
639458
640−- Existing `resholve*` functions have been renamed and nested under `pkgs.resholve`. Update uses to:
641− - `resholvePackage` -> `resholve.mkDerivation`
642− - `resholveScript` -> `resholve.writeScript`
643− - `resholveScriptBin` -> `resholve.writeScriptBin`
644−
645459- `pkgs.cosmopolitan` no longer provides the `cosmoc` command. It has been moved to `pkgs.cosmoc`.
646460
647−- `pkgs.graalvmXX-ce` packages no longer provide support for Python/Ruby/WASM, instead focusing only in Java and Native Image Support. If you need to add support back, please see the `pkgs.graalvmCEPackages.mkGraal` function to create your own customized version of GraalVM with support for what you need.
648−
649461<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
650462
651463## Other Notable Changes {#sec-release-22.05-notable-changes}
@@ -687,10 +499,6 @@ In addition to numerous new and upgraded packages, this release has the followin
687499 - Support for older versions of hadoop have been added to the module
688500 - Overriding and extending site XML files has been made easier
689501
690−- The auto-upgrade service now accepts persistent (default: true) parameter.
691− By default auto-upgrade will now run immediately if it would have been triggered at least
692− once during the time when the timer was inactive.
693−
694502- If you are using Wayland you can choose to use the Ozone Wayland support
695503 in Chrome and several Electron apps by setting the environment variable
696504 `NIXOS_OZONE_WL=1` (for example via
@@ -746,17 +554,6 @@ In addition to numerous new and upgraded packages, this release has the followin
746554
747555- The `services.stubby` module was converted to a [settings-style](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) configuration.
748556
749−- The option
750− [services.xserver.desktopManager.runXdgAutostartIfNone](#opt-services.xserver.desktopManager.runXdgAutostartIfNone)
751− was added in order to automatically run XDG autostart files for sessions without a desktop manager.
752− This replaces helpers like the `dex` package.
753−
754−- When setting [i18n.inputMethod.enabled](#opt-i18n.inputMethod.enabled) to `fcitx5`,
755− it no longer creates corresponding systemd user services.
756− It now relies on XDG autostart files to start and work properly in your desktop sessions.
757− If you are using only a window manager without a desktop manager, you need to enable
758− `services.xserver.desktopManager.runXdgAutostartIfNone` or using the `dex` package to make `fcitx5` work.
759−
760557- A new module was added for the Envoy reverse proxy, providing the options `services.envoy.enable` and `services.envoy.settings`.
761558
762559- The option `services.duplicati.dataDir` has been added to allow changing the location of duplicati's files.
@@ -765,28 +562,18 @@ In addition to numerous new and upgraded packages, this release has the followin
765562
766563- `nixos-generate-config` now puts the dhcp configuration in `hardware-configuration.nix` instead of `configuration.nix`.
767564
768−- ORY Kratos was updated to version 0.9.0-alpha.3, which introduces some breaking changes:
769− - All endpoints at the Admin API are now exposed at `/admin/`. For example, endpoint `https://kratos:4434/identities` is now exposed at `https://kratos:4434/admin/identities`
770− - Configuration key `selfservice.whitelisted_return_urls` has been renamed to `allowed_return_urls`
771− - The `password_identifier` form field of the password login strategy has been renamed to `identifier` to make compatibility with passwordless flows possible.
772− - Instead of having a global `default_schema_url` which developers used to update their schema, you now need to define the `default_schema_id` which must reference schema ID in your config.
773− - Calling `/self-service/recovery` without flow ID or with an invalid flow ID while authenticated will now respond with an error instead of redirecting to the default page.
565+- ORY Kratos was updated to version 0.8.3-alpha.1.pre.0, which introduces some breaking changes:
774566 - If you are relying on the SQLite images, update your Docker Pull commands as follows:
775567 - `docker pull oryd/kratos:{version}`
776568 - Additionally, all passwords now have to be at least 8 characters long.
777569 - For more details, see:
778570 - [Release Notes for v0.8.1-alpha-1](https://github.com/ory/kratos/releases/tag/v0.8.1-alpha.1)
779571 - [Release Notes for v0.8.2-alpha-1](https://github.com/ory/kratos/releases/tag/v0.8.2-alpha.1)
780− - [Release Notes for v0.9.0-alpha-1](https://github.com/ory/kratos/releases/tag/v0.9.0-alpha.1)
781− - [Release Notes for v0.9.0-alpha-3](https://github.com/ory/kratos/releases/tag/v0.9.0-alpha.3)
782−
783572
784573- `fetchFromSourcehut` now allows fetching repositories recursively
785574 using `fetchgit` or `fetchhg` if the argument `fetchSubmodules`
786575 is set to `true`.
787576
788−- A module for declarative configuration of openconnect VPN profiles was added under `networking.openconnect`.
789−
790577- The `element-desktop` package now has an `useKeytar` option (defaults to `true`),
791578 which allows disabling `keytar` and in turn `libsecret` usage
792579 (which binds to native credential managers / keychain libraries).
@@ -817,18 +604,11 @@ In addition to numerous new and upgraded packages, this release has the followin
817604 and [services.logrotate.extraConfig](#opt-services.logrotate.extraConfig) will work, but issue deprecation
818605 warnings and [services.logrotate.settings](#opt-services.logrotate.settings) should now be used instead.
819606
820−- `security.pam.ussh` has been added, which allows authorizing PAM sessions based on SSH _certificates_ held within an SSH agent, using [pam-ussh](https://github.com/uber/pam-ussh).
821−
822−- The `vscode-extensions.ionide.ionide-fsharp` package has been updated to 6.0.0 and now requires .NET 6.0.
823−
824607- The `zrepl` package has been updated from 0.4.0 to 0.5:
825608
826609 - The RPC protocol version was bumped; all zrepl daemons in a setup must be updated and restarted before replication can resume.
827610 - A bug involving encrypt-on-receive has been fixed. Read the [zrepl documentation](https://zrepl.github.io/configuration/sendrecvoptions.html#job-recv-options-placeholder) and check the output of `zfs get -r encryption,zrepl:placeholder PATH_TO_ROOTFS` on the receiver.
828611
829−- The `polybar` package has been updated from 3.5.7 to 3.6.2. See [the changelog](https://github.com/polybar/polybar/releases/tag/3.6.0) for more details.
830− - Breaking changes include changes to escaping rules in configuration values, changes in behavior when encountering invalid tag names, and changes to inter-process-messaging (IPC).
831−
832612- Renamed option `services.openssh.challengeResponseAuthentication` to `services.openssh.kbdInteractiveAuthentication`.
833613 Reason is that the old name has been deprecated upstream.
834614 Using the old option name will still work, but produce a warning.
@@ -850,20 +630,12 @@ In addition to numerous new and upgraded packages, this release has the followin
850630
851631- The polkit service, available at `security.polkit.enable`, is now disabled by default. It will automatically be enabled through services and desktop environments as needed.
852632
853−- xfsprogs was update to version 5.15, which enables inobtcount and bigtime by default on filesystem creation. Support for these features was added in kernel 5.10 and deemed stable in kernel 5.15.
854− If you want to be able to mount XFS filesystems created with this release of xfsprogs on kernel releases older than 5.10, you need to format them with `mkfs.xfs -m bigtime=0 -m inobtcount=0`.
855−
856−- `services.xserver.desktopManager.xfce` now includes Xfce's screen locker, `xfce4-screensaver` that is enabled by default. You can disable it by setting `false` to [services.xserver.desktopManager.xfce.enableScreensaver](#opt-services.xserver.desktopManager.xfce.enableScreensaver).
633+- `services.xserver.desktopManager.xfce` now includes Xfce's screen locker, `xfce4-screensaver`.
857634
858635- The `hadoop` package has added support for `aarch64-linux` and `aarch64-darwin` as of 3.3.1 ([#158613](https://github.com/NixOS/nixpkgs/pull/158613)).
859636
860637- The `R` package now builds again on `aarch64-darwin` ([#158992](https://github.com/NixOS/nixpkgs/pull/158992)).
861638
862−- The `nss` package was split into `nss_esr` and `nss_latest`, with `nss` being an alias for `nss_esr`. This was done to ease maintenance of `nss` and dependent high-profile packages like `firefox`.
863−
864−- The Nextcloud module now supports to create a Mysql database automatically
865− with `services.nextcloud.database.createLocally` enabled.
866−
867639- The `spark3` package has been updated from 3.1.2 to 3.2.1 ([#160075](https://github.com/NixOS/nixpkgs/pull/160075)):
868640
869641 - Testing has been enabled for `aarch64-linux` in addition to `x86_64-linux`.
@@ -871,8 +643,4 @@ In addition to numerous new and upgraded packages, this release has the followin
871643
872644- The `programs.nncp` options were added for generating host-global NNCP configuration.
873645
874−- The option `services.snapserver.openFirewall` will no longer default to
875− `true` starting with NixOS 22.11. Enable it explicitly if you need to control
876− Snapserver remotely or connect streamig clients from other hosts.
877−
878646<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
nixos/lib/make-single-disk-zfs-image.nixdeleted−322
@@ -1,322 +0,0 @@
1−# Note: This is a private API, internal to NixOS. Its interface is subject
2−# to change without notice.
3−#
4−# The result of this builder is a single disk image, partitioned like this:
5−#
6−# * partition #1: a very small, 1MiB partition to leave room for Grub.
7−#
8−# * partition #2: boot, a partition formatted with FAT to be used for /boot.
9−# FAT is chosen to support EFI.
10−#
11−# * partition #3: nixos, a partition dedicated to a zpool.
12−#
13−# This single-disk approach does not satisfy ZFS's requirements for autoexpand,
14−# however automation can expand it anyway. For example, with
15−# `services.zfs.expandOnBoot`.
16−{ lib
17−, pkgs
18−, # The NixOS configuration to be installed onto the disk image.
19− config
20−
21−, # size of the FAT partition, in megabytes.
22− bootSize ? 1024
23−
24−, # The size of the root partition, in megabytes.
25− rootSize ? 2048
26−
27−, # The name of the ZFS pool
28− rootPoolName ? "tank"
29−
30−, # zpool properties
31− rootPoolProperties ? {
32− autoexpand = "on";
33− }
34−, # pool-wide filesystem properties
35− rootPoolFilesystemProperties ? {
36− acltype = "posixacl";
37− atime = "off";
38− compression = "on";
39− mountpoint = "legacy";
40− xattr = "sa";
41− }
42−
43−, # datasets, with per-attribute options:
44− # mount: (optional) mount point in the VM
45− # properties: (optional) ZFS properties on the dataset, like filesystemProperties
46− # Notes:
47− # 1. datasets will be created from shorter to longer names as a simple topo-sort
48− # 2. you should define a root's dataset's mount for `/`
49− datasets ? { }
50−
51−, # The files and directories to be placed in the target file system.
52− # This is a list of attribute sets {source, target} where `source'
53− # is the file system object (regular file or directory) to be
54− # grafted in the file system at path `target'.
55− contents ? [ ]
56−
57−, # The initial NixOS configuration file to be copied to
58− # /etc/nixos/configuration.nix. This configuration will be embedded
59− # inside a configuration which includes the described ZFS fileSystems.
60− configFile ? null
61−
62−, # Shell code executed after the VM has finished.
63− postVM ? ""
64−
65−, name ? "nixos-disk-image"
66−
67−, # Disk image format, one of qcow2, qcow2-compressed, vdi, vpc, raw.
68− format ? "raw"
69−
70−, # Include a copy of Nixpkgs in the disk image
71− includeChannel ? true
72−}:
73−let
74− formatOpt = if format == "qcow2-compressed" then "qcow2" else format;
75−
76− compress = lib.optionalString (format == "qcow2-compressed") "-c";
77−
78− filenameSuffix = "." + {
79− qcow2 = "qcow2";
80− vdi = "vdi";
81− vpc = "vhd";
82− raw = "img";
83− }.${formatOpt} or formatOpt;
84− rootFilename = "nixos.root${filenameSuffix}";
85−
86− # FIXME: merge with channel.nix / make-channel.nix.
87− channelSources =
88− let
89− nixpkgs = lib.cleanSource pkgs.path;
90− in
91− pkgs.runCommand "nixos-${config.system.nixos.version}" { } ''
92− mkdir -p $out
93− cp -prd ${nixpkgs.outPath} $out/nixos
94− chmod -R u+w $out/nixos
95− if [ ! -e $out/nixos/nixpkgs ]; then
96− ln -s . $out/nixos/nixpkgs
97− fi
98− rm -rf $out/nixos/.git
99− echo -n ${config.system.nixos.versionSuffix} > $out/nixos/.version-suffix
100− '';
101−
102− closureInfo = pkgs.closureInfo {
103− rootPaths = [ config.system.build.toplevel ]
104− ++ (lib.optional includeChannel channelSources);
105− };
106−
107− modulesTree = pkgs.aggregateModules
108− (with config.boot.kernelPackages; [ kernel zfs ]);
109−
110− tools = lib.makeBinPath (
111− with pkgs; [
112− config.system.build.nixos-enter
113− config.system.build.nixos-install
114− dosfstools
115− e2fsprogs
116− gptfdisk
117− nix
118− parted
119− utillinux
120− zfs
121− ]
122− );
123−
124− hasDefinedMount = disk: ((disk.mount or null) != null);
125−
126− stringifyProperties = prefix: properties: lib.concatStringsSep " \\\n" (
127− lib.mapAttrsToList
128− (
129− property: value: "${prefix} ${lib.escapeShellArg property}=${lib.escapeShellArg value}"
130− )
131− properties
132− );
133−
134− featuresToProperties = features:
135− lib.listToAttrs
136− (builtins.map
137− (feature: {
138− name = "feature@${feature}";
139− value = "enabled";
140− })
141− features);
142−
143− createDatasets =
144− let
145− datasetlist = lib.mapAttrsToList lib.nameValuePair datasets;
146− sorted = lib.sort (left: right: (lib.stringLength left.name) < (lib.stringLength right.name)) datasetlist;
147− cmd = { name, value }:
148− let
149− properties = stringifyProperties "-o" (value.properties or { });
150− in
151− "zfs create -p ${properties} ${name}";
152− in
153− lib.concatMapStringsSep "\n" cmd sorted;
154−
155− mountDatasets =
156− let
157− datasetlist = lib.mapAttrsToList lib.nameValuePair datasets;
158− mounts = lib.filter ({ value, ... }: hasDefinedMount value) datasetlist;
159− sorted = lib.sort (left: right: (lib.stringLength left.value.mount) < (lib.stringLength right.value.mount)) mounts;
160− cmd = { name, value }:
161− ''
162− mkdir -p /mnt${lib.escapeShellArg value.mount}
163− mount -t zfs ${name} /mnt${lib.escapeShellArg value.mount}
164− '';
165− in
166− lib.concatMapStringsSep "\n" cmd sorted;
167−
168− unmountDatasets =
169− let
170− datasetlist = lib.mapAttrsToList lib.nameValuePair datasets;
171− mounts = lib.filter ({ value, ... }: hasDefinedMount value) datasetlist;
172− sorted = lib.sort (left: right: (lib.stringLength left.value.mount) > (lib.stringLength right.value.mount)) mounts;
173− cmd = { name, value }:
174− ''
175− umount /mnt${lib.escapeShellArg value.mount}
176− '';
177− in
178− lib.concatMapStringsSep "\n" cmd sorted;
179−
180−
181− fileSystemsCfgFile =
182− let
183− mountable = lib.filterAttrs (_: value: hasDefinedMount value) datasets;
184− in
185− pkgs.runCommand "filesystem-config.nix"
186− {
187− buildInputs = with pkgs; [ jq nixpkgs-fmt ];
188− filesystems = builtins.toJSON {
189− fileSystems = lib.mapAttrs'
190− (
191− dataset: attrs:
192− {
193− name = attrs.mount;
194− value = {
195− fsType = "zfs";
196− device = "${dataset}";
197− };
198− }
199− )
200− mountable;
201− };
202− passAsFile = [ "filesystems" ];
203− } ''
204− (
205− echo "builtins.fromJSON '''"
206− jq . < "$filesystemsPath"
207− echo "'''"
208− ) > $out
209−
210− nixpkgs-fmt $out
211− '';
212−
213− mergedConfig =
214− if configFile == null
215− then fileSystemsCfgFile
216− else
217− pkgs.runCommand "configuration.nix"
218− {
219− buildInputs = with pkgs; [ nixpkgs-fmt ];
220− }
221− ''
222− (
223− echo '{ imports = ['
224− printf "(%s)\n" "$(cat ${fileSystemsCfgFile})";
225− printf "(%s)\n" "$(cat ${configFile})";
226− echo ']; }'
227− ) > $out
228−
229− nixpkgs-fmt $out
230− '';
231−
232− image = (
233− pkgs.vmTools.override {
234− rootModules =
235− [ "zfs" "9p" "9pnet_virtio" "virtio_pci" "virtio_blk" ] ++
236− (pkgs.lib.optional pkgs.stdenv.hostPlatform.isx86 "rtc_cmos");
237− kernel = modulesTree;
238− }
239− ).runInLinuxVM (
240− pkgs.runCommand name
241− {
242− memSize = 1024;
243− QEMU_OPTS = "-drive file=$rootDiskImage,if=virtio,cache=unsafe,werror=report";
244− preVM = ''
245− PATH=$PATH:${pkgs.qemu_kvm}/bin
246− mkdir $out
247−
248− rootDiskImage=root.raw
249− qemu-img create -f raw $rootDiskImage ${toString (bootSize + rootSize)}M
250− '';
251−
252− postVM = ''
253− ${if formatOpt == "raw" then ''
254− mv $rootDiskImage $out/${rootFilename}
255− '' else ''
256− ${pkgs.qemu}/bin/qemu-img convert -f raw -O ${formatOpt} ${compress} $rootDiskImage $out/${rootFilename}
257− ''}
258− rootDiskImage=$out/${rootFilename}
259− set -x
260− ${postVM}
261− '';
262− } ''
263− export PATH=${tools}:$PATH
264− set -x
265−
266− cp -sv /dev/vda /dev/sda
267− cp -sv /dev/vda /dev/xvda
268−
269− parted --script /dev/vda -- \
270− mklabel gpt \
271− mkpart no-fs 1MiB 2MiB \
272− set 1 bios_grub on \
273− align-check optimal 1 \
274− mkpart primary fat32 2MiB ${toString bootSize}MiB \
275− align-check optimal 2 \
276− mkpart primary fat32 ${toString bootSize}MiB -1MiB \
277− align-check optimal 3 \
278− print
279−
280− sfdisk --dump /dev/vda
281−
282−
283− zpool create \
284− ${stringifyProperties " -o" rootPoolProperties} \
285− ${stringifyProperties " -O" rootPoolFilesystemProperties} \
286− ${rootPoolName} /dev/vda3
287− parted --script /dev/vda -- print
288−
289− ${createDatasets}
290− ${mountDatasets}
291−
292− mkdir -p /mnt/boot
293− mkfs.vfat -n ESP /dev/vda2
294− mount /dev/vda2 /mnt/boot
295−
296− mount
297−
298− # Install a configuration.nix
299− mkdir -p /mnt/etc/nixos
300− # `cat` so it is mutable on the fs
301− cat ${mergedConfig} > /mnt/etc/nixos/configuration.nix
302−
303− export NIX_STATE_DIR=$TMPDIR/state
304− nix-store --load-db < ${closureInfo}/registration
305−
306− nixos-install \
307− --root /mnt \
308− --no-root-passwd \
309− --system ${config.system.build.toplevel} \
310− --substituters "" \
311− ${lib.optionalString includeChannel ''--channel ${channelSources}''}
312−
313− df -h
314−
315− umount /mnt/boot
316− ${unmountDatasets}
317−
318− zpool export ${rootPoolName}
319− ''
320− );
321−in
322−image
nixos/lib/make-multi-disk-zfs-image.nix → nixos/lib/make-zfs-image.nixrenamed
The content is the same.
nixos/lib/qemu-common.nix+2−2
@@ -23,8 +23,8 @@ rec {
2323
2424 qemuBinary = qemuPkg: {
2525 x86_64-linux = "${qemuPkg}/bin/qemu-kvm -cpu max";
26− armv7l-linux = "${qemuPkg}/bin/qemu-system-arm -machine virt,accel=kvm:tcg -cpu max";
27− aarch64-linux = "${qemuPkg}/bin/qemu-system-aarch64 -machine virt,gic-version=max,accel=kvm:tcg -cpu max";
26+ armv7l-linux = "${qemuPkg}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host";
27+ aarch64-linux = "${qemuPkg}/bin/qemu-system-aarch64 -enable-kvm -machine virt,gic-version=host -cpu host";
2828 powerpc64le-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
2929 powerpc64-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
3030 x86_64-darwin = "${qemuPkg}/bin/qemu-kvm -cpu max";
nixos/lib/systemd-types.nix+1−33
@@ -1,4 +1,4 @@
1−{ lib, systemdUtils, pkgs }:
1+{ lib, systemdUtils }:
22
33with systemdUtils.lib;
44with systemdUtils.unitOptions;
@@ -34,36 +34,4 @@ rec {
3434
3535 automounts = with types; listOf (submodule [ stage2AutomountOptions unitConfig automountConfig ]);
3636 initrdAutomounts = with types; attrsOf (submodule [ stage1AutomountOptions unitConfig automountConfig ]);
37−
38− initrdContents = types.attrsOf (types.submodule ({ config, options, name, ... }: {
39− options = {
40− enable = mkEnableOption "copying of this file and symlinking it" // { default = true; };
41−
42− target = mkOption {
43− type = types.path;
44− description = ''
45− Path of the symlink.
46− '';
47− default = name;
48− };
49−
50− text = mkOption {
51− default = null;
52− type = types.nullOr types.lines;
53− description = "Text of the file.";
54− };
55−
56− source = mkOption {
57− type = types.path;
58− description = "Path of the source file.";
59− };
60− };
61−
62− config = {
63− source = mkIf (config.text != null) (
64− let name' = "initrd-" + baseNameOf name;
65− in mkDerivedConfig options.text (pkgs.writeText name')
66− );
67− };
68− }));
6937}
nixos/lib/test-driver/test_driver/driver.py+1−1
@@ -86,7 +86,7 @@ class Driver:
8686
8787 def subtest(self, name: str) -> Iterator[None]:
8888 """Group logs under a given test name"""
89− with rootlog.nested("subtest: " + name):
89+ with rootlog.nested(name):
9090 try:
9191 yield
9292 return True
nixos/lib/test-driver/test_driver/logger.py+2−6
@@ -1,4 +1,4 @@
1−from colorama import Style, Fore
1+from colorama import Style
22from contextlib import contextmanager
33from typing import Any, Dict, Iterator
44from queue import Queue, Empty
@@ -81,11 +81,7 @@ class Logger:
8181
8282 @contextmanager
8383 def nested(self, message: str, attributes: Dict[str, str] = {}) -> Iterator[None]:
84− self._eprint(
85− self.maybe_prefix(
86− Style.BRIGHT + Fore.GREEN + message + Style.RESET_ALL, attributes
87− )
88− )
84+ self._eprint(self.maybe_prefix(message, attributes))
8985
9086 self.xml.startElement("nest", attrs={})
9187 self.xml.startElement("head", attributes)
nixos/lib/test-driver/test_driver/machine.py+2−9
@@ -526,17 +526,10 @@ class Machine:
526526 self.run_callbacks()
527527 self.connect()
528528
529− # Always run command with shell opts
530− command = f"set -euo pipefail; {command}"
531−
532− timeout_str = ""
533529 if timeout is not None:
534− timeout_str = f"timeout {timeout}"
535−
536− out_command = (
537− f"{timeout_str} sh -c {shlex.quote(command)} | (base64 --wrap 0; echo)\n"
538− )
530+ command = "timeout {} sh -c {}".format(timeout, shlex.quote(command))
539531
532+ out_command = f"( set -euo pipefail; {command} ) | (base64 --wrap 0; echo)\n"
540533 assert self.shell
541534 self.shell.send(out_command.encode())
542535
nixos/lib/utils.nix+1−17
@@ -194,25 +194,9 @@ rec {
194194 (( ! $inherit_errexit_enabled )) && shopt -u inherit_errexit
195195 '';
196196
197− /* Remove packages of packagesToRemove from packages, based on their names.
198− Relies on package names and has quadratic complexity so use with caution!
199−
200− Type:
201− removePackagesByName :: [package] -> [package] -> [package]
202−
203− Example:
204− removePackagesByName [ nautilus file-roller ] [ file-roller totem ]
205− => [ nautilus ]
206− */
207− removePackagesByName = packages: packagesToRemove:
208− let
209− namesToRemove = map lib.getName packagesToRemove;
210− in
211− lib.filter (x: !(builtins.elem (lib.getName x) namesToRemove)) packages;
212−
213197 systemdUtils = {
214198 lib = import ./systemd-lib.nix { inherit lib config pkgs; };
215199 unitOptions = import ./systemd-unit-options.nix { inherit lib systemdUtils; };
216− types = import ./systemd-types.nix { inherit lib systemdUtils pkgs; };
200+ types = import ./systemd-types.nix { inherit lib systemdUtils; };
217201 };
218202}
nixos/maintainers/scripts/ec2/amazon-image.nix+1−1
@@ -73,7 +73,7 @@ in {
7373 }
7474 '';
7575
76− zfsBuilder = import ../../../lib/make-multi-disk-zfs-image.nix {
76+ zfsBuilder = import ../../../lib/make-zfs-image.nix {
7777 inherit lib config configFile;
7878 inherit (cfg) contents format name;
7979 pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package
nixos/maintainers/scripts/lxd/lxd-image.nix+1−1
@@ -27,7 +27,7 @@ with lib;
2727 networking.useDHCP = false;
2828 networking.interfaces.eth0.useDHCP = true;
2929
30− # As this is intended as a standalone image, undo some of the minimal profile stuff
30+ # As this is intended as a stadalone image, undo some of the minimal profile stuff
3131 documentation.enable = true;
3232 documentation.nixos.enable = true;
3333 environment.noXlibs = false;
nixos/maintainers/scripts/openstack/openstack-image-zfs.nixdeleted−101
@@ -1,101 +0,0 @@
1−# nix-build '<nixpkgs/nixos>' -A config.system.build.openstackImage --arg configuration "{ imports = [ ./nixos/maintainers/scripts/openstack/openstack-image.nix ]; }"
2−
3−{ config, lib, pkgs, ... }:
4−let
5− inherit (lib) mkOption types;
6− copyChannel = true;
7− cfg = config.openstackImage;
8− imageBootMode = if config.openstack.efi then "uefi" else "legacy-bios";
9−in
10−{
11− imports = [
12− ../../../modules/virtualisation/openstack-config.nix
13− ] ++ (lib.optional copyChannel ../../../modules/installer/cd-dvd/channel.nix);
14−
15−
16− options.openstackImage = {
17− name = mkOption {
18− type = types.str;
19− description = "The name of the generated derivation";
20− default = "nixos-openstack-image-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
21− };
22−
23− sizeMB = mkOption {
24− type = types.int;
25− default = 8192;
26− description = "The size in MB of the image";
27− };
28−
29− format = mkOption {
30− type = types.enum [ "raw" "qcow2" ];
31− default = "qcow2";
32− description = "The image format to output";
33− };
34− };
35−
36− config = {
37− documentation.enable = copyChannel;
38− openstack = {
39− efi = true;
40− zfs = {
41− enable = true;
42− datasets = {
43− "tank/system/root".mount = "/";
44− "tank/system/var".mount = "/var";
45− "tank/local/nix".mount = "/nix";
46− "tank/user/home".mount = "/home";
47− };
48− };
49− };
50−
51− system.build.openstackImage = import ../../../lib/make-single-disk-zfs-image.nix {
52− inherit lib config;
53− inherit (cfg) contents format name;
54− pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package
55−
56− configFile = pkgs.writeText "configuration.nix"
57− ''
58− { modulesPath, ... }: {
59− imports = [ "''${modulesPath}/virtualisation/openstack-config.nix" ];
60− openstack.zfs.enable = true;
61− }
62− '';
63−
64− includeChannel = copyChannel;
65−
66− bootSize = 1000;
67−
68− rootSize = cfg.sizeMB;
69− rootPoolProperties = {
70− ashift = 12;
71− autoexpand = "on";
72− };
73−
74− datasets = config.openstack.zfs.datasets;
75−
76− postVM = ''
77− extension=''${rootDiskImage##*.}
78− friendlyName=$out/${cfg.name}
79− rootDisk="$friendlyName.root.$extension"
80− mv "$rootDiskImage" "$rootDisk"
81−
82− mkdir -p $out/nix-support
83− echo "file ${cfg.format} $rootDisk" >> $out/nix-support/hydra-build-products
84−
85− ${pkgs.jq}/bin/jq -n \
86− --arg system_label ${lib.escapeShellArg config.system.nixos.label} \
87− --arg system ${lib.escapeShellArg pkgs.stdenv.hostPlatform.system} \
88− --arg root_logical_bytes "$(${pkgs.qemu}/bin/qemu-img info --output json "$rootDisk" | ${pkgs.jq}/bin/jq '."virtual-size"')" \
89− --arg boot_mode "${imageBootMode}" \
90− --arg root "$rootDisk" \
91− '{}
92− | .label = $system_label
93− | .boot_mode = $boot_mode
94− | .system = $system
95− | .disks.root.logical_bytes = $root_logical_bytes
96− | .disks.root.file = $root
97− ' > $out/nix-support/image-info.json
98− '';
99− };
100− };
101−}
nixos/maintainers/scripts/openstack/openstack-image.nix+8−9
@@ -1,18 +1,17 @@
11# nix-build '<nixpkgs/nixos>' -A config.system.build.openstackImage --arg configuration "{ imports = [ ./nixos/maintainers/scripts/openstack/openstack-image.nix ]; }"
22
33{ config, lib, pkgs, ... }:
4−let
5− copyChannel = true;
6−in
7−{
8− imports = [
9− ../../../modules/virtualisation/openstack-config.nix
10− ] ++ (lib.optional copyChannel ../../../modules/installer/cd-dvd/channel.nix);
114
12− documentation.enable = copyChannel;
5+with lib;
6+
7+{
8+ imports =
9+ [ ../../../modules/installer/cd-dvd/channel.nix
10+ ../../../modules/virtualisation/openstack-config.nix
11+ ];
1312
1413 system.build.openstackImage = import ../../../lib/make-disk-image.nix {
15− inherit lib config copyChannel;
14+ inherit lib config;
1615 additionalSpace = "1024M";
1716 pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package
1817 format = "qcow2";
nixos/modules/config/console.nix+9−23
@@ -12,7 +12,7 @@ let
1212
1313 optimizedKeymap = pkgs.runCommand "keymap" {
1414 nativeBuildInputs = [ pkgs.buildPackages.kbd ];
15− LOADKEYS_KEYMAP_PATH = "${consoleEnv pkgs.kbd}/share/keymaps/**";
15+ LOADKEYS_KEYMAP_PATH = "${consoleEnv}/share/keymaps/**";
1616 preferLocalBuild = true;
1717 } ''
1818 loadkeys -b ${optionalString isUnicode "-u"} "${cfg.keyMap}" > $out
@@ -24,9 +24,9 @@ let
2424 FONT=${cfg.font}
2525 '';
2626
27− consoleEnv = kbd: pkgs.buildEnv {
27+ consoleEnv = pkgs.buildEnv {
2828 name = "console-env";
29− paths = [ kbd ] ++ cfg.packages;
29+ paths = [ pkgs.kbd ] ++ cfg.packages;
3030 pathsToLink = [
3131 "/share/consolefonts"
3232 "/share/consoletrans"
@@ -136,9 +136,9 @@ in
136136 # virtual consoles.
137137 environment.etc."vconsole.conf".source = vconsoleConf;
138138 # Provide kbd with additional packages.
139− environment.etc.kbd.source = "${consoleEnv pkgs.kbd}/share";
139+ environment.etc.kbd.source = "${consoleEnv}/share";
140140
141− boot.initrd.preLVMCommands = mkIf (!config.boot.initrd.systemd.enable) (mkBefore ''
141+ boot.initrd.preLVMCommands = mkBefore ''
142142 kbd_mode ${if isUnicode then "-u" else "-a"} -C /dev/console
143143 printf "\033%%${if isUnicode then "G" else "@"}" >> /dev/console
144144 loadkmap < ${optimizedKeymap}
@@ -146,26 +146,12 @@ in
146146 ${optionalString cfg.earlySetup ''
147147 setfont -C /dev/console $extraUtils/share/consolefonts/font.psf
148148 ''}
149− '');
150−
151− boot.initrd.systemd.contents = {
152− "/etc/vconsole.conf".source = vconsoleConf;
153− # Add everything if we want full console setup...
154− "/etc/kbd" = lib.mkIf cfg.earlySetup { source = "${consoleEnv config.boot.initrd.systemd.package.kbd}/share"; };
155− # ...but only the keymaps if we don't
156− "/etc/kbd/keymaps" = lib.mkIf (!cfg.earlySetup) { source = "${consoleEnv config.boot.initrd.systemd.package.kbd}/share/keymaps"; };
157− };
158− boot.initrd.systemd.storePaths = [
159− "${config.boot.initrd.systemd.package}/lib/systemd/systemd-vconsole-setup"
160− "${config.boot.initrd.systemd.package.kbd}/bin/setfont"
161− "${config.boot.initrd.systemd.package.kbd}/bin/loadkeys"
162− "${config.boot.initrd.systemd.package.kbd.gzip}/bin/gzip" # keyboard layouts are compressed
163− ];
149+ '';
164150
165151 systemd.services.reload-systemd-vconsole-setup =
166152 { description = "Reset console on configuration changes";
167153 wantedBy = [ "multi-user.target" ];
168− restartTriggers = [ vconsoleConf (consoleEnv pkgs.kbd) ];
154+ restartTriggers = [ vconsoleConf consoleEnv ];
169155 reloadIfChanged = true;
170156 serviceConfig =
171157 { RemainAfterExit = true;
@@ -183,13 +169,13 @@ in
183169 ];
184170 })
185171
186− (mkIf (cfg.earlySetup && !config.boot.initrd.systemd.enable) {
172+ (mkIf cfg.earlySetup {
187173 boot.initrd.extraUtilsCommands = ''
188174 mkdir -p $out/share/consolefonts
189175 ${if substring 0 1 cfg.font == "/" then ''
190176 font="${cfg.font}"
191177 '' else ''
192− font="$(echo ${consoleEnv pkgs.kbd}/share/consolefonts/${cfg.font}.*)"
178+ font="$(echo ${consoleEnv}/share/consolefonts/${cfg.font}.*)"
193179 ''}
194180 if [[ $font == *.gz ]]; then
195181 gzip -cd $font > $out/share/consolefonts/font.psf
nixos/modules/config/nsswitch.nix+4−7
@@ -95,14 +95,11 @@ with lib;
9595 config = {
9696 assertions = [
9797 {
98+ # Prevent users from disabling nscd, with nssModules being set.
99+ # If disabling nscd is really necessary, it's still possible to opt out
100+ # by forcing config.system.nssModules to [].
98101 assertion = config.system.nssModules.path != "" -> config.services.nscd.enable;
99− message = ''
100− Loading NSS modules from system.nssModules (${config.system.nssModules.path}),
101− requires services.nscd.enable being set to true.
102−
103− If disabling nscd is really necessary, it is possible to disable loading NSS modules
104− by setting `system.nssModules = lib.mkForce [];` in your configuration.nix.
105− '';
102+ message = "Loading NSS modules from system.nssModules (${config.system.nssModules.path}), requires services.nscd.enable being set to true.";
106103 }
107104 ];
108105
nixos/modules/config/terminfo.nix+1−25
@@ -1,33 +1,9 @@
11# This module manages the terminfo database
22# and its integration in the system.
3−{ config, lib, pkgs, ... }:
4−
5−with lib;
6−
3+{ config, ... }:
74{
8−
9− options.environment.enableAllTerminfo = with lib; mkOption {
10− default = false;
11− type = types.bool;
12− description = ''
13− Whether to install all terminfo outputs
14− '';
15− };
16−
175 config = {
186
19− # can be generated with: filter (drv: (builtins.tryEval (drv ? terminfo)).value) (attrValues pkgs)
20− environment.systemPackages = mkIf config.environment.enableAllTerminfo (map (x: x.terminfo) (with pkgs; [
21− alacritty
22− foot
23− kitty
24− mtm
25− rxvt-unicode-unwrapped
26− rxvt-unicode-unwrapped-emoji
27− termite
28− wezterm
29− ]));
30−
317 environment.pathsToLink = [
328 "/share/terminfo"
339 ];
nixos/modules/hardware/all-firmware.nix+3−7
@@ -27,8 +27,7 @@ in {
2727 };
2828
2929 hardware.enableRedistributableFirmware = mkOption {
30− default = config.hardware.enableAllFirmware;
31− defaultText = lib.literalExpression "config.hardware.enableAllFirmware";
30+ default = false;
3231 type = types.bool;
3332 description = ''
3433 Turn on this option if you want to enable all the firmware with a license allowing redistribution.
@@ -72,7 +71,7 @@ in {
7271 })
7372 (mkIf cfg.enableAllFirmware {
7473 assertions = [{
75− assertion = !cfg.enableAllFirmware || config.nixpkgs.config.allowUnfree;
74+ assertion = !cfg.enableAllFirmware || (config.nixpkgs.config.allowUnfree or false);
7675 message = ''
7776 the list of hardware.enableAllFirmware contains non-redistributable licensed firmware files.
7877 This requires nixpkgs.config.allowUnfree to be true.
@@ -85,10 +84,7 @@ in {
8584 b43Firmware_6_30_163_46
8685 b43FirmwareCutter
8786 xow_dongle-firmware
88− ] ++ optionals pkgs.stdenv.hostPlatform.isx86 [
89− facetimehd-calibration
90− facetimehd-firmware
91− ];
87+ ] ++ optional pkgs.stdenv.hostPlatform.isx86 facetimehd-firmware;
9288 })
9389 (mkIf cfg.wirelessRegulatoryDatabase {
9490 hardware.firmware = [ pkgs.wireless-regdb ];
nixos/modules/hardware/raid/hpsa.nix+1−4
@@ -8,10 +8,7 @@ let
88 version = "2.40-13.0";
99
1010 src = pkgs.fetchurl {
11− urls = [
12− "https://downloads.linux.hpe.com/SDR/downloads/MCP/Ubuntu/pool/non-free/${pname}-${version}_amd64.deb"
13− "http://apt.netangels.net/pool/main/h/hpssacli/${pname}-${version}_amd64.deb"
14− ];
11+ url = "https://downloads.linux.hpe.com/SDR/downloads/MCP/Ubuntu/pool/non-free/${pname}-${version}_amd64.deb";
1512 sha256 = "11w7fwk93lmfw0yya4jpjwdmgjimqxx6412sqa166g1pz4jil4sw";
1613 };
1714
nixos/modules/hardware/video/amdgpu-pro.nix+1−2
@@ -51,10 +51,9 @@ in
5151 (isYes "KALLSYMS_ALL")
5252 ];
5353
54− boot.initrd.extraUdevRulesCommands = mkIf (!config.boot.initrd.systemd.enable) ''
54+ boot.initrd.extraUdevRulesCommands = ''
5555 cp -v ${package}/etc/udev/rules.d/*.rules $out/
5656 '';
57− boot.initrd.services.udev.packages = [ package ];
5857
5958 environment.systemPackages =
6059 [ package.vulkan ] ++
nixos/modules/hardware/video/nvidia.nix+7−9
@@ -24,7 +24,6 @@ let
2424 primeEnabled = syncCfg.enable || offloadCfg.enable;
2525 nvidiaPersistencedEnabled = cfg.nvidiaPersistenced;
2626 nvidiaSettings = cfg.nvidiaSettings;
27− busIDType = types.strMatching "([[:print:]]+\:[0-9]{1,3}\:[0-9]{1,2}\:[0-9])?";
2827in
2928
3029{
@@ -69,7 +68,7 @@ in
6968 };
7069
7170 hardware.nvidia.prime.nvidiaBusId = mkOption {
72− type = busIDType;
71+ type = types.str;
7372 default = "";
7473 example = "PCI:1:0:0";
7574 description = ''
@@ -79,7 +78,7 @@ in
7978 };
8079
8180 hardware.nvidia.prime.intelBusId = mkOption {
82− type = busIDType;
81+ type = types.str;
8382 default = "";
8483 example = "PCI:0:2:0";
8584 description = ''
@@ -89,7 +88,7 @@ in
8988 };
9089
9190 hardware.nvidia.prime.amdgpuBusId = mkOption {
92− type = busIDType;
91+ type = types.str;
9392 default = "";
9493 example = "PCI:4:0:0";
9594 description = ''
@@ -361,12 +360,11 @@ in
361360 services.udev.extraRules =
362361 ''
363362 # Create /dev/nvidia-uvm when the nvidia-uvm module is loaded.
364− KERNEL=="nvidia", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidiactl c 195 255'"
365− KERNEL=="nvidia_modeset", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-modeset c 195 254'"
366− KERNEL=="card*", SUBSYSTEM=="drm", DRIVERS=="nvidia", PROGRAM="${pkgs.gnugrep}/bin/grep 'Device Minor:' /proc/driver/nvidia/gpus/%b/information", \
367− RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia%c{3} c 195 %c{3}"
363+ KERNEL=="nvidia", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidiactl c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 255'"
364+ KERNEL=="nvidia_modeset", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-modeset c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 254'"
365+ KERNEL=="card*", SUBSYSTEM=="drm", DRIVERS=="nvidia", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia%n c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) %n'"
368366 KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'"
369− KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm-tools c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 1'"
367+ KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm-tools c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'"
370368 '' + optionalString cfg.powerManagement.finegrained ''
371369 # Remove NVIDIA USB xHCI Host Controller devices, if present
372370 ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{remove}="1"
nixos/modules/hardware/video/webcam/facetimehd.nix+1−14
@@ -14,18 +14,6 @@ in
1414
1515 options.hardware.facetimehd.enable = mkEnableOption "facetimehd kernel module";
1616
17− options.hardware.facetimehd.withCalibration = mkOption {
18− default = false;
19− example = true;
20− type = types.bool;
21− description = ''
22− Whether to include sensor calibration files for facetimehd.
23− This makes colors look much better but is experimental, see
24− <link xlink:href="https://github.com/patjak/facetimehd/wiki/Extracting-the-sensor-calibration-files"/>
25− for details.
26− '';
27− };
28−
2917 config = mkIf cfg.enable {
3018
3119 boot.kernelModules = [ "facetimehd" ];
@@ -34,8 +22,7 @@ in
3422
3523 boot.extraModulePackages = [ kernelPackages.facetimehd ];
3624
37− hardware.firmware = [ pkgs.facetimehd-firmware ]
38− ++ optional cfg.withCalibration pkgs.facetimehd-calibration;
25+ hardware.firmware = [ pkgs.facetimehd-firmware ];
3926
4027 # unload module during suspend/hibernate as it crashes the whole system
4128 powerManagement.powerDownCommands = ''
nixos/modules/i18n/input-method/fcitx5.nix+11−20
@@ -5,9 +5,7 @@ with lib;
55let
66 im = config.i18n.inputMethod;
77 cfg = im.fcitx5;
8− addons = cfg.addons ++ optional cfg.enableRimeData pkgs.rime-data;
9− fcitx5Package = pkgs.fcitx5-with-addons.override { inherit addons; };
10− whetherRimeDataDir = any (p: p.pname == "fcitx5-rime") cfg.addons;
8+ fcitx5Package = pkgs.fcitx5-with-addons.override { inherit (cfg) addons; };
119in {
1210 options = {
1311 i18n.inputMethod.fcitx5 = {
@@ -19,29 +17,22 @@ in {
1917 Enabled Fcitx5 addons.
2018 '';
2119 };
22−
23− enableRimeData = mkEnableOption "default rime-data with fcitx5-rime";
2420 };
2521 };
2622
2723 config = mkIf (im.enabled == "fcitx5") {
2824 i18n.inputMethod.package = fcitx5Package;
2925
30− environment = mkMerge [{
31− variables = {
32− GTK_IM_MODULE = "fcitx";
33− QT_IM_MODULE = "fcitx";
34− XMODIFIERS = "@im=fcitx";
35− };
36− }
37− (mkIf whetherRimeDataDir {
38− pathsToLink = [
39− "/share/rime-data"
40− ];
26+ environment.variables = {
27+ GTK_IM_MODULE = "fcitx";
28+ QT_IM_MODULE = "fcitx";
29+ XMODIFIERS = "@im=fcitx";
30+ };
4131
42− variables = {
43− NIX_RIME_DATA_DIR = "/run/current-system/sw/share/rime-data";
44− };
45− })];
32+ systemd.user.services.fcitx5-daemon = {
33+ enable = true;
34+ script = "${fcitx5Package}/bin/fcitx5";
35+ wantedBy = [ "graphical-session.target" ];
36+ };
4637 };
4738}
nixos/modules/installer/cd-dvd/channel.nix+1−2
@@ -39,8 +39,7 @@ in
3939 echo "unpacking the NixOS/Nixpkgs sources..."
4040 mkdir -p /nix/var/nix/profiles/per-user/root
4141 ${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/per-user/root/channels \
42− -i ${channelSources} --quiet --option build-use-substitutes false \
43− ${optionalString config.boot.initrd.systemd.enable "--option sandbox false"} # There's an issue with pivot_root
42+ -i ${channelSources} --quiet --option build-use-substitutes false
4443 mkdir -m 0700 -p /root/.nix-defexpr
4544 ln -s /nix/var/nix/profiles/per-user/root/channels /root/.nix-defexpr/channels
4645 mkdir -m 0755 -p /var/lib/nixos
nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix+8−14
@@ -35,28 +35,22 @@ with lib;
3535 # Enable sound in graphical iso's.
3636 hardware.pulseaudio.enable = true;
3737
38− # Spice guest additions
39− services.spice-vdagentd.enable = true;
40−
41− # Enable plymouth
42− boot.plymouth.enable = true;
43−
44− environment.defaultPackages = with pkgs; [
38+ environment.systemPackages = [
4539 # Include gparted for partitioning disks.
46− gparted
40+ pkgs.gparted
4741
4842 # Include some editors.
49− vim
50− nano
43+ pkgs.vim
44+ pkgs.bvi # binary editor
45+ pkgs.joe
5146
5247 # Include some version control tools.
53− git
54− rsync
48+ pkgs.git
5549
5650 # Firefox for reading the manual.
57− firefox
51+ pkgs.firefox
5852
59− glxinfo
53+ pkgs.glxinfo
6054 ];
6155
6256}
nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nixdeleted−59
@@ -1,59 +0,0 @@
1−# This module defines a NixOS installation CD that contains GNOME.
2−
3−{ pkgs, ... }:
4−
5−{
6− imports = [ ./installation-cd-graphical-calamares.nix ];
7−
8− isoImage.edition = "gnome";
9−
10− services.xserver.desktopManager.gnome = {
11− # Add Firefox and other tools useful for installation to the launcher
12− favoriteAppsOverride = ''
13− [org.gnome.shell]
14− favorite-apps=[ 'firefox.desktop', 'nixos-manual.desktop', 'org.gnome.Console.desktop', 'org.gnome.Nautilus.desktop', 'gparted.desktop', 'io.calamares.calamares.desktop' ]
15− '';
16−
17− # Override GNOME defaults to disable GNOME tour and disable suspend
18− extraGSettingsOverrides = ''
19− [org.gnome.shell]
20− welcome-dialog-last-shown-version='9999999999'
21−
22− [org.gnome.settings-daemon.plugins.power]
23− sleep-inactive-ac-type='nothing'
24− sleep-inactive-battery-type='nothing'
25− '';
26−
27− extraGSettingsOverridePackages = [ pkgs.gnome.gnome-settings-daemon ];
28−
29− enable = true;
30− };
31−
32− # Theme calamares with GNOME theme
33− qt5 = {
34− enable = true;
35− platformTheme = "gnome";
36− };
37−
38− # Fix scaling for calamares on wayland
39− environment.variables = {
40− QT_QPA_PLATFORM = "$([[ $XDG_SESSION_TYPE = \"wayland\" ]] && echo \"wayland\")";
41− };
42−
43− services.xserver.displayManager = {
44− gdm = {
45− enable = true;
46− # autoSuspend makes the machine automatically suspend after inactivity.
47− # It's possible someone could/try to ssh'd into the machine and obviously
48− # have issues because it's inactive.
49− # See:
50− # * https://github.com/NixOS/nixpkgs/pull/63790
51− # * https://gitlab.gnome.org/GNOME/gnome-control-center/issues/22
52− autoSuspend = false;
53− };
54− autoLogin = {
55− enable = true;
56− user = "nixos";
57− };
58− };
59−}
nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma5.nixdeleted−49
@@ -1,49 +0,0 @@
1−# This module defines a NixOS installation CD that contains X11 and
2−# Plasma 5.
3−
4−{ pkgs, ... }:
5−
6−{
7− imports = [ ./installation-cd-graphical-calamares.nix ];
8−
9− isoImage.edition = "plasma5";
10−
11− services.xserver = {
12− desktopManager.plasma5 = {
13− enable = true;
14− };
15−
16− # Automatically login as nixos.
17− displayManager = {
18− sddm.enable = true;
19− autoLogin = {
20− enable = true;
21− user = "nixos";
22− };
23− };
24− };
25−
26− environment.systemPackages = with pkgs; [
27− # Graphical text editor
28− kate
29− ];
30−
31− system.activationScripts.installerDesktop = let
32−
33− # Comes from documentation.nix when xserver and nixos.enable are true.
34− manualDesktopFile = "/run/current-system/sw/share/applications/nixos-manual.desktop";
35−
36− homeDir = "/home/nixos/";
37− desktopDir = homeDir + "Desktop/";
38−
39− in ''
40− mkdir -p ${desktopDir}
41− chown nixos ${homeDir} ${desktopDir}
42−
43− ln -sfT ${manualDesktopFile} ${desktopDir + "nixos-manual.desktop"}
44− ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop ${desktopDir + "gparted.desktop"}
45− ln -sfT ${pkgs.konsole}/share/applications/org.kde.konsole.desktop ${desktopDir + "org.kde.konsole.desktop"}
46− ln -sfT ${pkgs.calamares-nixos}/share/applications/io.calamares.calamares.desktop ${desktopDir + "io.calamares.calamares.desktop"}
47− '';
48−
49−}
nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares.nixdeleted−20
@@ -1,20 +0,0 @@
1−# This module adds the calamares installer to the basic graphical NixOS
2−# installation CD.
3−
4−{ pkgs, ... }:
5−let
6− calamares-nixos-autostart = pkgs.makeAutostartItem { name = "io.calamares.calamares"; package = pkgs.calamares-nixos; };
7−in
8−{
9− imports = [ ./installation-cd-graphical-base.nix ];
10−
11− environment.systemPackages = with pkgs; [
12− # Calamares for graphical installation
13− libsForQt5.kpmcore
14− calamares-nixos
15− calamares-nixos-autostart
16− calamares-nixos-extensions
17− # Needed for calamares QML module packagechooserq
18− libsForQt5.full
19− ];
20−}
nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix+3−1
@@ -1,6 +1,8 @@
11# This module defines a NixOS installation CD that contains GNOME.
22
3−{ ... }:
3+{ lib, ... }:
4+
5+with lib;
46
57{
68 imports = [ ./installation-cd-graphical-base.nix ];
nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix+3−1
@@ -1,7 +1,9 @@
11# This module defines a NixOS installation CD that contains X11 and
22# Plasma 5.
33
4−{ pkgs, ... }:
4+{ config, lib, pkgs, ... }:
5+
6+with lib;
57
68{
79 imports = [ ./installation-cd-graphical-base.nix ];
nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix+3−3
@@ -87,19 +87,19 @@ in
8787 boot.initrd.availableKernelModules =
8888 [ "mvsdio" "reiserfs" "ext3" "ums-cypress" "rtc_mv" "ext4" ];
8989
90− boot.postBootCommands = lib.mkIf (!boot.initrd.systemd.enable)
90+ boot.postBootCommands =
9191 ''
9292 mkdir -p /mnt
9393
9494 cp ${dummyConfiguration} /etc/nixos/configuration.nix
9595 '';
9696
97− boot.initrd.extraUtilsCommands = lib.mkIf (!boot.initrd.systemd.enable)
97+ boot.initrd.extraUtilsCommands =
9898 ''
9999 copy_bin_and_libs ${pkgs.util-linux}/sbin/hwclock
100100 '';
101101
102− boot.initrd.postDeviceCommands = lib.mkIf (!boot.initrd.systemd.enable)
102+ boot.initrd.postDeviceCommands =
103103 ''
104104 hwclock -s
105105 '';
nixos/modules/installer/kexec/kexec-boot.nixdeleted−51
@@ -1,51 +0,0 @@
1−# This module exposes a config.system.build.kexecBoot attribute,
2−# which returns a directory with kernel, initrd and a shell script
3−# running the necessary kexec commands.
4−
5−# It's meant to be scp'ed to a machine with working ssh and kexec binary
6−# installed.
7−
8−# This is useful for (cloud) providers where you can't boot a custom image, but
9−# get some Debian or Ubuntu installation.
10−
11−{ pkgs
12−, modulesPath
13−, config
14−, ...
15−}:
16−{
17− imports = [
18− (modulesPath + "/installer/netboot/netboot-minimal.nix")
19− ];
20−
21− config = {
22− system.build.kexecBoot =
23− let
24− kexecScript = pkgs.writeScript "kexec-boot" ''
25− #!/usr/bin/env bash
26− if ! kexec -v >/dev/null 2>&1; then
27− echo "kexec not found: please install kexec-tools" 2>&1
28− exit 1
29− fi
30− SCRIPT_DIR=$( cd -- "$( dirname -- "''${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
31− kexec --load ''${SCRIPT_DIR}/bzImage \
32− --initrd=''${SCRIPT_DIR}/initrd.gz \
33− --command-line "init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}"
34− kexec -e
35− ''; in
36− pkgs.linkFarm "kexec-tree" [
37− {
38− name = "initrd.gz";
39− path = "${config.system.build.netbootRamdisk}/initrd";
40− }
41− {
42− name = "bzImage";
43− path = "${config.system.build.kernel}/${config.system.boot.loader.kernelFile}";
44− }
45− {
46− name = "kexec-boot";
47− path = kexecScript;
48− }
49− ];
50− };
51−}
nixos/modules/installer/sd-card/sd-image-aarch64.nix−9
@@ -39,12 +39,6 @@
3939 # Supported in newer board revisions
4040 arm_boost=1
4141
42− [cm4]
43− # Enable host mode on the 2711 built-in XHCI USB controller.
44− # This line should be removed if the legacy DWC2 controller is required
45− # (e.g. for USB device mode) or if USB support is not required.
46− otg_mode=1
47−
4842 [all]
4943 # Boot in 64-bit mode.
5044 arm_64bit=1
@@ -71,9 +65,6 @@
7165 cp ${pkgs.ubootRaspberryPi4_64bit}/u-boot.bin firmware/u-boot-rpi4.bin
7266 cp ${pkgs.raspberrypi-armstubs}/armstub8-gic.bin firmware/armstub8-gic.bin
7367 cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-4-b.dtb firmware/
74− cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-400.dtb firmware/
75− cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-cm4.dtb firmware/
76− cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-cm4s.dtb firmware/
7768 '';
7869 populateRootCommands = ''
7970 mkdir -p ./files/boot
nixos/modules/installer/tools/nix-fallback-paths.nix+5−5
@@ -1,7 +1,7 @@
11{
2− x86_64-linux = "/nix/store/yx36yzxpw1hn4fz8iyf1rfyd56jg3yf4-nix-2.8.0";
3− i686-linux = "/nix/store/c0hg806zvwg800qbszzj8ff4a224kjgf-nix-2.8.0";
4− aarch64-linux = "/nix/store/wic2832ll53q392r2wks4xr2nrk7p8p5-nix-2.8.0";
5− x86_64-darwin = "/nix/store/5yqdvnkmkrhl36xh0qy31pymdphjimdd-nix-2.8.0";
6− aarch64-darwin = "/nix/store/izc9592szrnpv8n86hr88bhpyc9g6b4s-nix-2.8.0";
2+ x86_64-linux = "/nix/store/0n2wfvi1i3fg97cjc54wslvk0804y0sn-nix-2.7.0";
3+ i686-linux = "/nix/store/4p27c1k9z99pli6x8cxfph20yfyzn9nh-nix-2.7.0";
4+ aarch64-linux = "/nix/store/r9yr8ijsb0gi9r7y92y3yzyld59yp0kj-nix-2.7.0";
5+ x86_64-darwin = "/nix/store/hyfj5imsd0c4amlcjpf8l6w4q2draaj3-nix-2.7.0";
6+ aarch64-darwin = "/nix/store/9l96qllhbb6xrsjaai76dn74ap7rq92n-nix-2.7.0";
77}
nixos/modules/installer/tools/tools.nix−5
@@ -206,11 +206,6 @@ in
206206 # Or disable the firewall altogether.
207207 # networking.firewall.enable = false;
208208
209− # Copy the NixOS configuration file and link it from the resulting system
210− # (/run/current-system/configuration.nix). This is useful in case you
211− # accidentally delete configuration.nix.
212− # system.copySystemConfiguration = true;
213−
214209 # This value determines the NixOS release from which the default
215210 # settings for stateful data, like file locations and database versions
216211 # on your system were taken. It‘s perfectly fine and recommended to leave
nixos/modules/misc/documentation.nix+1−2
@@ -64,8 +64,7 @@ let
6464 filter =
6565 builtins.filterSource
6666 (n: t:
67− cleanSourceFilter n t
68− && (t == "directory" -> baseNameOf n != "tests")
67+ (t == "directory" -> baseNameOf n != "tests")
6968 && (t == "file" -> hasSuffix ".nix" n)
7069 );
7170 in
nixos/modules/misc/locate.nix+1−1
@@ -27,7 +27,7 @@ in
2727
2828 locate = mkOption {
2929 type = package;
30− default = pkgs.findutils.locate;
30+ default = pkgs.findutils;
3131 defaultText = literalExpression "pkgs.findutils";
3232 example = literalExpression "pkgs.mlocate";
3333 description = ''
nixos/modules/module-list.nix+3−15
@@ -172,7 +172,6 @@
172172 ./programs/java.nix
173173 ./programs/k40-whisperer.nix
174174 ./programs/kclock.nix
175− ./programs/k3b.nix
176175 ./programs/kdeconnect.nix
177176 ./programs/kbdlight.nix
178177 ./programs/less.nix
@@ -186,7 +185,6 @@
186185 ./programs/nbd.nix
187186 ./programs/nix-ld.nix
188187 ./programs/neovim.nix
189− ./programs/nethoscope.nix
190188 ./programs/nm-applet.nix
191189 ./programs/nncp.nix
192190 ./programs/npm.nix
@@ -206,6 +204,7 @@
206204 ./programs/spacefm.nix
207205 ./programs/singularity.nix
208206 ./programs/ssh.nix
207+ ./programs/ssmtp.nix
209208 ./programs/sysdig.nix
210209 ./programs/systemtap.nix
211210 ./programs/starship.nix
@@ -410,7 +409,6 @@
410409 ./services/display-managers/greetd.nix
411410 ./services/editors/emacs.nix
412411 ./services/editors/infinoted.nix
413− ./services/editors/haste.nix
414412 ./services/finance/odoo.nix
415413 ./services/games/asf.nix
416414 ./services/games/crossfire-server.nix
@@ -460,7 +458,6 @@
460458 ./services/hardware/udisks2.nix
461459 ./services/hardware/upower.nix
462460 ./services/hardware/usbmuxd.nix
463− ./services/hardware/usbrelayd.nix
464461 ./services/hardware/thermald.nix
465462 ./services/hardware/undervolt.nix
466463 ./services/hardware/vdr.nix
@@ -599,7 +596,7 @@
599596 ./services/misc/osrm.nix
600597 ./services/misc/owncast.nix
601598 ./services/misc/packagekit.nix
602− ./services/misc/paperless.nix
599+ ./services/misc/paperless-ng.nix
603600 ./services/misc/parsoid.nix
604601 ./services/misc/plex.nix
605602 ./services/misc/plikd.nix
@@ -663,7 +660,6 @@
663660 ./services/monitoring/longview.nix
664661 ./services/monitoring/mackerel-agent.nix
665662 ./services/monitoring/metricbeat.nix
666− ./services/monitoring/mimir.nix
667663 ./services/monitoring/monit.nix
668664 ./services/monitoring/munin.nix
669665 ./services/monitoring/nagios.nix
@@ -737,14 +733,12 @@
737733 ./services/networking/blocky.nix
738734 ./services/networking/charybdis.nix
739735 ./services/networking/cjdns.nix
740− ./services/networking/cloudflare-dyndns.nix
741736 ./services/networking/cntlm.nix
742737 ./services/networking/connman.nix
743738 ./services/networking/consul.nix
744739 ./services/networking/coredns.nix
745740 ./services/networking/corerad.nix
746741 ./services/networking/coturn.nix
747− ./services/networking/create_ap.nix
748742 ./services/networking/croc.nix
749743 ./services/networking/dante.nix
750744 ./services/networking/ddclient.nix
@@ -858,7 +852,6 @@
858852 ./services/networking/ofono.nix
859853 ./services/networking/oidentd.nix
860854 ./services/networking/onedrive.nix
861− ./services/networking/openconnect.nix
862855 ./services/networking/openvpn.nix
863856 ./services/networking/ostinato.nix
864857 ./services/networking/owamp.nix
@@ -1060,7 +1053,6 @@
10601053 ./services/web-apps/netbox.nix
10611054 ./services/web-apps/nextcloud.nix
10621055 ./services/web-apps/nexus.nix
1063− ./services/web-apps/nifi.nix
10641056 ./services/web-apps/node-red.nix
10651057 ./services/web-apps/pict-rs.nix
10661058 ./services/web-apps/peertube.nix
@@ -1185,14 +1177,12 @@
11851177 ./system/boot/stage-2.nix
11861178 ./system/boot/systemd.nix
11871179 ./system/boot/systemd/coredump.nix
1188− ./system/boot/systemd/initrd-secrets.nix
1189− ./system/boot/systemd/initrd.nix
11901180 ./system/boot/systemd/journald.nix
11911181 ./system/boot/systemd/logind.nix
11921182 ./system/boot/systemd/nspawn.nix
1193− ./system/boot/systemd/shutdown.nix
11941183 ./system/boot/systemd/tmpfiles.nix
11951184 ./system/boot/systemd/user.nix
1185+ ./system/boot/systemd/initrd.nix
11961186 ./system/boot/timesyncd.nix
11971187 ./system/boot/tmp.nix
11981188 ./system/etc/etc-activation.nix
@@ -1246,7 +1236,6 @@
12461236 ./virtualisation/amazon-options.nix
12471237 ./virtualisation/hyperv-guest.nix
12481238 ./virtualisation/kvmgt.nix
1249− ./virtualisation/openstack-options.nix
12501239 ./virtualisation/openvswitch.nix
12511240 ./virtualisation/parallels-guest.nix
12521241 ./virtualisation/podman/default.nix
@@ -1256,7 +1245,6 @@
12561245 ./virtualisation/virtualbox-guest.nix
12571246 ./virtualisation/virtualbox-host.nix
12581247 ./virtualisation/vmware-guest.nix
1259− ./virtualisation/vmware-host.nix
12601248 ./virtualisation/waydroid.nix
12611249 ./virtualisation/xen-dom0.nix
12621250 ./virtualisation/xe-guest-utilities.nix
nixos/modules/profiles/all-hardware.nix−3
@@ -40,9 +40,6 @@ in
4040 # SD cards.
4141 "sdhci_pci"
4242
43− # NVMe drives
44− "nvme"
45−
4643 # Firewire support. Not tested.
4744 "ohci1394" "sbp2"
4845
nixos/modules/profiles/installation-device.nix−4
@@ -99,10 +99,6 @@ with lib;
9999 stdenvNoCC # for runCommand
100100 busybox
101101 jq # for closureInfo
102− # For boot.initrd.systemd
103− makeInitrdNGTool
104− systemdStage1
105− systemdStage1Network
106102 ];
107103
108104 # Show all debug messages from the kernel but don't log refused packets
nixos/modules/profiles/qemu-guest.nix+2−2
@@ -1,13 +1,13 @@
11# Common configuration for virtual machines running under QEMU (using
22# virtio).
33
4−{ config, lib, ... }:
4+{ ... }:
55
66{
77 boot.initrd.availableKernelModules = [ "virtio_net" "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_scsi" "9p" "9pnet_virtio" ];
88 boot.initrd.kernelModules = [ "virtio_balloon" "virtio_console" "virtio_rng" ];
99
10− boot.initrd.postDeviceCommands = lib.mkIf (!config.boot.initrd.systemd.enable)
10+ boot.initrd.postDeviceCommands =
1111 ''
1212 # Set the system time from the hardware clock to work around a
1313 # bug in qemu-kvm > 1.5.2 (where the VM clock is initialised
nixos/modules/programs/chromium.nix−3
@@ -108,8 +108,5 @@ in
108108 # for google-chrome https://www.chromium.org/administrators/linux-quick-start
109109 environment.etc."opt/chrome/policies/managed/default.json".text = builtins.toJSON defaultProfile;
110110 environment.etc."opt/chrome/policies/managed/extra.json".text = builtins.toJSON cfg.extraOpts;
111− # for brave
112− environment.etc."brave/policies/managed/default.json".text = builtins.toJSON defaultProfile;
113− environment.etc."brave/policies/managed/extra.json".text = builtins.toJSON cfg.extraOpts;
114111 };
115112}
nixos/modules/programs/k3b.nixdeleted−52
@@ -1,52 +0,0 @@
1−{ config, pkgs, lib, ... }:
2−
3−with lib;
4−
5−{
6− # interface
7− options.programs.k3b = {
8− enable = mkOption {
9− type = types.bool;
10− default = false;
11− description = ''
12− Whether to enable k3b, the KDE disk burning application.
13−
14− Additionally to installing <package>k3b</package> enabling this will
15− add <literal>setuid</literal> wrappers in <literal>/run/wrappers/bin</literal>
16− for both <package>cdrdao</package> and <package>cdrecord</package>. On first
17− run you must manually configure the path of <package>cdrdae</package> and
18− <package>cdrecord</package> to correspond to the appropriate paths under
19− <literal>/run/wrappers/bin</literal> in the "Setup External Programs" menu.
20− '';
21− };
22− };
23−
24− # implementation
25− config = mkIf config.programs.k3b.enable {
26−
27− environment.systemPackages = with pkgs; [
28− k3b
29− dvdplusrwtools
30− cdrdao
31− cdrkit
32− ];
33−
34− security.wrappers = {
35− cdrdao = {
36− setuid = true;
37− owner = "root";
38− group = "cdrom";
39− permissions = "u+wrx,g+x";
40− source = "${pkgs.cdrdao}/bin/cdrdao";
41− };
42− cdrecord = {
43− setuid = true;
44− owner = "root";
45− group = "cdrom";
46− permissions = "u+wrx,g+x";
47− source = "${pkgs.cdrkit}/bin/cdrecord";
48− };
49− };
50−
51− };
52−}
nixos/modules/programs/mininet.nix+2−2
@@ -23,8 +23,8 @@ let
2323 ln -s ${pyEnv}/bin/mn $out/bin/mn
2424
2525 # mn errors out without a telnet binary
26− # pkgs.inetutils brings an undesired ifconfig into PATH see #43105
27− ln -s ${pkgs.inetutils}/bin/telnet $out/bin/telnet
26+ # pkgs.telnet brings an undesired ifconfig into PATH see #43105
27+ ln -s ${pkgs.telnet}/bin/telnet $out/bin/telnet
2828 '';
2929in
3030{
nixos/modules/programs/nethoscope.nixdeleted−30
@@ -1,30 +0,0 @@
1−{ config, lib, pkgs, ... }:
2−
3−with lib;
4−
5−let cfg = config.programs.nethoscope;
6−in
7−{
8− meta.maintainers = with maintainers; [ _0x4A6F ];
9−
10− options = {
11− programs.nethoscope = {
12− enable = mkOption {
13− type = types.bool;
14− default = false;
15− description = ''
16− Whether to add nethoscope to the global environment and configure a
17− setcap wrapper for it.
18− '';
19− };
20− };
21− };
22−
23− config = mkIf cfg.enable {
24− environment.systemPackages = with pkgs; [ nethoscope ];
25− security.wrappers.nethoscope = {
26− source = "${pkgs.nethoscope}/bin/nethoscope";
27− capabilities = "cap_net_raw,cap_net_admin=eip";
28− };
29− };
30−}
nixos/modules/programs/ssmtp.nixnew file+190
@@ -0,0 +1,190 @@
1+# Configuration for `ssmtp', a trivial mail transfer agent that can
2+# replace sendmail/postfix on simple systems. It delivers email
3+# directly to an SMTP server defined in its configuration file, without
4+# queueing mail locally.
5+
6+{ config, lib, pkgs, ... }:
7+
8+with lib;
9+
10+let
11+ cfg = config.services.ssmtp;
12+
13+in
14+{
15+
16+ imports = [
17+ (mkRenamedOptionModule [ "networking" "defaultMailServer" "directDelivery" ] [ "services" "ssmtp" "enable" ])
18+ (mkRenamedOptionModule [ "networking" "defaultMailServer" "hostName" ] [ "services" "ssmtp" "hostName" ])
19+ (mkRenamedOptionModule [ "networking" "defaultMailServer" "domain" ] [ "services" "ssmtp" "domain" ])
20+ (mkRenamedOptionModule [ "networking" "defaultMailServer" "root" ] [ "services" "ssmtp" "root" ])
21+ (mkRenamedOptionModule [ "networking" "defaultMailServer" "useTLS" ] [ "services" "ssmtp" "useTLS" ])
22+ (mkRenamedOptionModule [ "networking" "defaultMailServer" "useSTARTTLS" ] [ "services" "ssmtp" "useSTARTTLS" ])
23+ (mkRenamedOptionModule [ "networking" "defaultMailServer" "authUser" ] [ "services" "ssmtp" "authUser" ])
24+ (mkRenamedOptionModule [ "networking" "defaultMailServer" "authPassFile" ] [ "services" "ssmtp" "authPassFile" ])
25+ (mkRenamedOptionModule [ "networking" "defaultMailServer" "setSendmail" ] [ "services" "ssmtp" "setSendmail" ])
26+
27+ (mkRemovedOptionModule [ "networking" "defaultMailServer" "authPass" ] "authPass has been removed since it leaks the clear-text password into the world-readable store. Use authPassFile instead and make sure it's not a store path")
28+ (mkRemovedOptionModule [ "services" "ssmtp" "authPass" ] "authPass has been removed since it leaks the clear-text password into the world-readable store. Use authPassFile instead and make sure it's not a store path")
29+ ];
30+
31+ options = {
32+
33+ services.ssmtp = {
34+
35+ enable = mkOption {
36+ type = types.bool;
37+ default = false;
38+ description = ''
39+ Use the trivial Mail Transfer Agent (MTA)
40+ <command>ssmtp</command> package to allow programs to send
41+ e-mail. If you don't want to run a “real” MTA like
42+ <command>sendmail</command> or <command>postfix</command> on
43+ your machine, set this option to <literal>true</literal>, and
44+ set the option
45+ <option>services.ssmtp.hostName</option> to the
46+ host name of your preferred mail server.
47+ '';
48+ };
49+
50+ settings = mkOption {
51+ type = with types; attrsOf (oneOf [ bool str ]);
52+ default = {};
53+ description = ''
54+ <citerefentry><refentrytitle>ssmtp</refentrytitle><manvolnum>5</manvolnum></citerefentry> configuration. Refer
55+ to <link xlink:href="https://linux.die.net/man/5/ssmtp.conf"/> for details on supported values.
56+ '';
57+ example = literalExpression ''
58+ {
59+ Debug = true;
60+ FromLineOverride = false;
61+ }
62+ '';
63+ };
64+
65+ hostName = mkOption {
66+ type = types.str;
67+ example = "mail.example.org";
68+ description = ''
69+ The host name of the default mail server to use to deliver
70+ e-mail. Can also contain a port number (ex: mail.example.org:587),
71+ defaults to port 25 if no port is given.
72+ '';
73+ };
74+
75+ root = mkOption {
76+ type = types.str;
77+ default = "";
78+ example = "root@example.org";
79+ description = ''
80+ The e-mail to which mail for users with UID < 1000 is forwarded.
81+ '';
82+ };
83+
84+ domain = mkOption {
85+ type = types.str;
86+ default = "";
87+ example = "example.org";
88+ description = ''
89+ The domain from which mail will appear to be sent.
90+ '';
91+ };
92+
93+ useTLS = mkOption {
94+ type = types.bool;
95+ default = false;
96+ description = ''
97+ Whether TLS should be used to connect to the default mail
98+ server.
99+ '';
100+ };
101+
102+ useSTARTTLS = mkOption {
103+ type = types.bool;
104+ default = false;
105+ description = ''
106+ Whether the STARTTLS should be used to connect to the default
107+ mail server. (This is needed for TLS-capable mail servers
108+ running on the default SMTP port 25.)
109+ '';
110+ };
111+
112+ authUser = mkOption {
113+ type = types.str;
114+ default = "";
115+ example = "foo@example.org";
116+ description = ''
117+ Username used for SMTP auth. Leave blank to disable.
118+ '';
119+ };
120+
121+ authPassFile = mkOption {
122+ type = types.nullOr types.str;
123+ default = null;
124+ example = "/run/keys/ssmtp-authpass";
125+ description = ''
126+ Path to a file that contains the password used for SMTP auth. The file
127+ should not contain a trailing newline, if the password does not contain one
128+ (e.g. use <command>echo -n "password" > file</command>).
129+ This file should be readable by the users that need to execute ssmtp.
130+ '';
131+ };
132+
133+ setSendmail = mkOption {
134+ type = types.bool;
135+ default = true;
136+ description = "Whether to set the system sendmail to ssmtp's.";
137+ };
138+
139+ };
140+
141+ };
142+
143+
144+ config = mkIf cfg.enable {
145+
146+ assertions = [
147+ {
148+ assertion = cfg.useSTARTTLS -> cfg.useTLS;
149+ message = "services.ssmtp.useSTARTTLS has no effect without services.ssmtp.useTLS";
150+ }
151+ ];
152+
153+ services.ssmtp.settings = mkMerge [
154+ ({
155+ MailHub = cfg.hostName;
156+ FromLineOverride = mkDefault true;
157+ UseTLS = cfg.useTLS;
158+ UseSTARTTLS = cfg.useSTARTTLS;
159+ })
160+ (mkIf (cfg.root != "") { root = cfg.root; })
161+ (mkIf (cfg.domain != "") { rewriteDomain = cfg.domain; })
162+ (mkIf (cfg.authUser != "") { AuthUser = cfg.authUser; })
163+ (mkIf (cfg.authPassFile != null) { AuthPassFile = cfg.authPassFile; })
164+ ];
165+
166+ # careful here: ssmtp REQUIRES all config lines to end with a newline char!
167+ environment.etc."ssmtp/ssmtp.conf".text = with generators; toKeyValue {
168+ mkKeyValue = mkKeyValueDefault {
169+ mkValueString = value:
170+ if value == true then "YES"
171+ else if value == false then "NO"
172+ else mkValueStringDefault {} value
173+ ;
174+ } "=";
175+ } cfg.settings;
176+
177+ environment.systemPackages = [pkgs.ssmtp];
178+
179+ services.mail.sendmailSetuidWrapper = mkIf cfg.setSendmail {
180+ program = "sendmail";
181+ source = "${pkgs.ssmtp}/bin/sendmail";
182+ setuid = false;
183+ setgid = false;
184+ owner = "root";
185+ group = "root";
186+ };
187+
188+ };
189+
190+}
nixos/modules/programs/thefuck.nix+6−7
@@ -6,12 +6,9 @@ let
66 prg = config.programs;
77 cfg = prg.thefuck;
88
9− bashAndZshInitScript = ''
9+ initScript = ''
1010 eval $(${pkgs.thefuck}/bin/thefuck --alias ${cfg.alias})
1111 '';
12− fishInitScript = ''
13− ${pkgs.thefuck}/bin/thefuck --alias ${cfg.alias} | source
14− '';
1512in
1613 {
1714 options = {
@@ -33,8 +30,10 @@ in
3330 config = mkIf cfg.enable {
3431 environment.systemPackages = with pkgs; [ thefuck ];
3532
36− programs.bash.interactiveShellInit = bashAndZshInitScript;
37− programs.zsh.interactiveShellInit = mkIf prg.zsh.enable bashAndZshInitScript;
38− programs.fish.interactiveShellInit = mkIf prg.fish.enable fishInitScript;
33+ programs.bash.interactiveShellInit = initScript;
34+ programs.zsh.interactiveShellInit = mkIf prg.zsh.enable initScript;
35+ programs.fish.interactiveShellInit = mkIf prg.fish.enable ''
36+ ${pkgs.thefuck}/bin/thefuck --alias | source
37+ '';
3938 };
4039 }
nixos/modules/rename.nix−5
@@ -69,11 +69,6 @@ with lib;
6969 '')
7070 (mkRemovedOptionModule [ "services" "quagga" ] "the corresponding package has been removed from nixpkgs")
7171 (mkRemovedOptionModule [ "services" "seeks" ] "")
72− (mkRemovedOptionModule [ "services" "ssmtp" ] ''
73− The ssmtp package and the corresponding module have been removed due to
74− the program being unmaintained. The options `programs.msmtp.*` can be
75− used instead.
76− '')
7772 (mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
7873 (mkRemovedOptionModule [ "services" "wakeonlan"] "This module was removed in favor of enabling it with networking.interfaces.<name>.wakeOnLan")
7974 (mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
nixos/modules/security/pam.nix+3−113
@@ -61,19 +61,6 @@ let
6161 '';
6262 };
6363
64− usshAuth = mkOption {
65− default = false;
66− type = types.bool;
67− description = ''
68− If set, users with an SSH certificate containing an authorized principal
69− in their SSH agent are able to log in. Specific options are controlled
70− using the <option>security.pam.ussh</option> options.
71−
72− Note that the <option>security.pam.ussh.enable</option> must also be
73− set for this option to take effect.
74− '';
75− };
76−
7764 yubicoAuth = mkOption {
7865 default = config.security.pam.yubico.enable;
7966 defaultText = literalExpression "config.security.pam.yubico.enable";
@@ -488,11 +475,8 @@ let
488475 optionalString cfg.usbAuth ''
489476 auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so
490477 '' +
491− (let ussh = config.security.pam.ussh; in optionalString (config.security.pam.ussh.enable && cfg.usshAuth) ''
492− auth ${ussh.control} ${pkgs.pam_ussh}/lib/security/pam_ussh.so ${optionalString (ussh.caFile != null) "ca_file=${ussh.caFile}"} ${optionalString (ussh.authorizedPrincipals != null) "authorized_principals=${ussh.authorizedPrincipals}"} ${optionalString (ussh.authorizedPrincipalsFile != null) "authorized_principals_file=${ussh.authorizedPrincipalsFile}"} ${optionalString (ussh.group != null) "group=${ussh.group}"}
493− '') +
494478 (let oath = config.security.pam.oath; in optionalString cfg.oathAuth ''
495− auth requisite ${pkgs.oath-toolkit}/lib/security/pam_oath.so window=${toString oath.window} usersfile=${toString oath.usersFile} digits=${toString oath.digits}
479+ auth requisite ${pkgs.oathToolkit}/lib/security/pam_oath.so window=${toString oath.window} usersfile=${toString oath.usersFile} digits=${toString oath.digits}
496480 '') +
497481 (let yubi = config.security.pam.yubico; in optionalString cfg.yubicoAuth ''
498482 auth ${yubi.control} ${pkgs.yubico-pam}/lib/security/pam_yubico.so mode=${toString yubi.mode} ${optionalString (yubi.challengeResponsePath != null) "chalresp_path=${yubi.challengeResponsePath}"} ${optionalString (yubi.mode == "client") "id=${toString yubi.id}"} ${optionalString yubi.debug "debug"}
@@ -610,7 +594,6 @@ let
610594 session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so
611595 '' +
612596 optionalString cfg.pamMount ''
613− session [success=1 default=ignore] ${pkgs.pam}/lib/security/pam_succeed_if.so service = systemd-user quiet
614597 session optional ${pkgs.pam_mount}/lib/security/pam_mount.so disable_interactive
615598 '' +
616599 optionalString use_ldap ''
@@ -943,96 +926,6 @@ in
943926 };
944927 };
945928
946− security.pam.ussh = {
947− enable = mkOption {
948− default = false;
949− type = types.bool;
950− description = ''
951− Enables Uber's USSH PAM (<literal>pam-ussh</literal>) module.
952−
953− This is similar to <literal>pam-ssh-agent</literal>, except that
954− the presence of a CA-signed SSH key with a valid principal is checked
955− instead.
956−
957− Note that this module must both be enabled using this option and on a
958− per-PAM-service level as well (using <literal>usshAuth</literal>).
959−
960− More information can be found <link
961− xlink:href="https://github.com/uber/pam-ussh">here</link>.
962− '';
963− };
964−
965− caFile = mkOption {
966− default = null;
967− type = with types; nullOr path;
968− description = ''
969− By default <literal>pam-ussh</literal> reads the trusted user CA keys
970− from <filename>/etc/ssh/trusted_user_ca</filename>.
971−
972− This should be set the same as your <literal>TrustedUserCAKeys</literal>
973− option for sshd.
974− '';
975− };
976−
977− authorizedPrincipals = mkOption {
978− default = null;
979− type = with types; nullOr commas;
980− description = ''
981− Comma-separated list of authorized principals to permit; if the user
982− presents a certificate with one of these principals, then they will be
983− authorized.
984−
985− Note that <literal>pam-ussh</literal> also requires that the certificate
986− contain a principal matching the user's username. The principals from
987− this list are in addition to those principals.
988−
989− Mutually exclusive with <literal>authorizedPrincipalsFile</literal>.
990− '';
991− };
992−
993− authorizedPrincipalsFile = mkOption {
994− default = null;
995− type = with types; nullOr path;
996− description = ''
997− Path to a list of principals; if the user presents a certificate with
998− one of these principals, then they will be authorized.
999−
1000− Note that <literal>pam-ussh</literal> also requires that the certificate
1001− contain a principal matching the user's username. The principals from
1002− this file are in addition to those principals.
1003−
1004− Mutually exclusive with <literal>authorizedPrincipals</literal>.
1005− '';
1006− };
1007−
1008− group = mkOption {
1009− default = null;
1010− type = with types; nullOr str;
1011− description = ''
1012− If set, then the authenticating user must be a member of this group
1013− to use this module.
1014− '';
1015− };
1016−
1017− control = mkOption {
1018− default = "sufficient";
1019− type = types.enum [ "required" "requisite" "sufficient" "optional" ];
1020− description = ''
1021− This option sets pam "control".
1022− If you want to have multi factor authentication, use "required".
1023− If you want to use the SSH certificate instead of the regular password,
1024− use "sufficient".
1025−
1026− Read
1027− <citerefentry>
1028− <refentrytitle>pam.conf</refentrytitle>
1029− <manvolnum>5</manvolnum>
1030− </citerefentry>
1031− for better understanding of this option.
1032− '';
1033− };
1034− };
1035−
1036929 security.pam.yubico = {
1037930 enable = mkOption {
1038931 default = false;
@@ -1131,7 +1024,7 @@ in
11311024 ++ optional config.services.sssd.enable pkgs.sssd
11321025 ++ optionals config.krb5.enable [pam_krb5 pam_ccreds]
11331026 ++ optionals config.security.pam.enableOTPW [ pkgs.otpw ]
1134− ++ optionals config.security.pam.oath.enable [ pkgs.oath-toolkit ]
1027+ ++ optionals config.security.pam.oath.enable [ pkgs.oathToolkit ]
11351028 ++ optionals config.security.pam.p11.enable [ pkgs.pam_p11 ]
11361029 ++ optionals config.security.pam.u2f.enable [ pkgs.pam_u2f ];
11371030
@@ -1217,11 +1110,8 @@ in
12171110 optionalString (isEnabled (cfg: cfg.usbAuth)) ''
12181111 mr ${pkgs.pam_usb}/lib/security/pam_usb.so,
12191112 '' +
1220− optionalString (isEnabled (cfg: cfg.usshAuth)) ''
1221− mr ${pkgs.pam_ussh}/lib/security/pam_ussh.so,
1222− '' +
12231113 optionalString (isEnabled (cfg: cfg.oathAuth)) ''
1224− "mr ${pkgs.oath-toolkit}/lib/security/pam_oath.so,
1114+ "mr ${pkgs.oathToolkit}/lib/security/pam_oath.so,
12251115 '' +
12261116 optionalString (isEnabled (cfg: cfg.yubicoAuth)) ''
12271117 mr ${pkgs.yubico-pam}/lib/security/pam_yubico.so,
nixos/modules/security/pam_mount.nix+6−78
@@ -5,14 +5,6 @@ with lib;
55let
66 cfg = config.security.pam.mount;
77
8− oflRequired = cfg.logoutHup || cfg.logoutTerm || cfg.logoutKill;
9−
10− fake_ofl = pkgs.writeShellScriptBin "fake_ofl" ''
11− SIGNAL=$1
12− MNTPT=$2
13− ${pkgs.lsof}/bin/lsof | ${pkgs.gnugrep}/bin/grep $MNTPT | ${pkgs.gawk}/bin/awk '{print $2}' | ${pkgs.findutils}/bin/xargs ${pkgs.util-linux}/bin/kill -$SIGNAL
14− '';
15−
168 anyPamMount = any (attrByPath ["pamMount"] false) (attrValues config.security.pam.services);
179in
1810
@@ -59,71 +51,6 @@ in
5951 You can define volume-specific options in the volume definitions.
6052 '';
6153 };
62−
63− debugLevel = mkOption {
64− type = types.int;
65− default = 0;
66− example = 1;
67− description = ''
68− Sets the Debug-Level. 0 disables debugging, 1 enables pam_mount tracing,
69− and 2 additionally enables tracing in mount.crypt. The default is 0.
70− For more information, visit <link
71− xlink:href="http://pam-mount.sourceforge.net/pam_mount.conf.5.html" />.
72− '';
73− };
74−
75− logoutWait = mkOption {
76− type = types.int;
77− default = 0;
78− description = ''
79− Amount of microseconds to wait until killing remaining processes after
80− final logout.
81− For more information, visit <link
82− xlink:href="http://pam-mount.sourceforge.net/pam_mount.conf.5.html" />.
83− '';
84− };
85−
86− logoutHup = mkOption {
87− type = types.bool;
88− default = false;
89− description = ''
90− Kill remaining processes after logout by sending a SIGHUP.
91− '';
92− };
93−
94− logoutTerm = mkOption {
95− type = types.bool;
96− default = false;
97− description = ''
98− Kill remaining processes after logout by sending a SIGTERM.
99− '';
100− };
101−
102− logoutKill = mkOption {
103− type = types.bool;
104− default = false;
105− description = ''
106− Kill remaining processes after logout by sending a SIGKILL.
107− '';
108− };
109−
110− createMountPoints = mkOption {
111− type = types.bool;
112− default = true;
113− description = ''
114− Create mountpoints for volumes if they do not exist.
115− '';
116− };
117−
118− removeCreatedMountPoints = mkOption {
119− type = types.bool;
120− default = true;
121− description = ''
122− Remove mountpoints created by pam_mount after logout. This
123− only affects mountpoints that have been created by pam_mount
124− in the same session.
125− '';
126− };
12754 };
12855
12956 };
@@ -150,20 +77,21 @@ in
15077 <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
15178 <!-- auto generated from Nixos: modules/config/users-groups.nix -->
15279 <pam_mount>
153− <debug enable="${toString cfg.debugLevel}" />
80+ <debug enable="0" />
81+
15482 <!-- if activated, requires ofl from hxtools to be present -->
155− <logout wait="${toString cfg.logoutWait}" hup="${if cfg.logoutHup then "yes" else "no"}" term="${if cfg.logoutTerm then "yes" else "no"}" kill="${if cfg.logoutKill then "yes" else "no"}" />
83+ <logout wait="0" hup="no" term="no" kill="no" />
15684 <!-- set PATH variable for pam_mount module -->
15785 <path>${makeBinPath ([ pkgs.util-linux ] ++ cfg.additionalSearchPaths)}</path>
15886 <!-- create mount point if not present -->
159− <mkmountpoint enable="${if cfg.createMountPoints then "1" else "0"}" remove="${if cfg.removeCreatedMountPoints then "true" else "false"}" />
87+ <mkmountpoint enable="1" remove="true" />
88+
16089 <!-- specify the binaries to be called -->
16190 <fusemount>${pkgs.fuse}/bin/mount.fuse %(VOLUME) %(MNTPT) -o ${concatStringsSep "," (cfg.fuseMountOptions ++ [ "%(OPTIONS)" ])}</fusemount>
162− <fuseumount>${pkgs.fuse}/bin/fusermount -u %(MNTPT)</fuseumount>
16391 <cryptmount>${pkgs.pam_mount}/bin/mount.crypt %(VOLUME) %(MNTPT)</cryptmount>
16492 <cryptumount>${pkgs.pam_mount}/bin/umount.crypt %(MNTPT)</cryptumount>
16593 <pmvarrun>${pkgs.pam_mount}/bin/pmvarrun -u %(USER) -o %(OPERATION)</pmvarrun>
166− ${optionalString oflRequired "<ofl>${fake_ofl}/bin/fake_ofl %(SIGNAL) %(MNTPT)</ofl>"}
94+
16795 ${concatStrings (map userVolumeEntry (attrValues extraUserVolumes))}
16896 ${concatStringsSep "\n" cfg.extraVolumes}
16997 </pam_mount>
nixos/modules/security/sudo.nix+1−1
@@ -245,7 +245,7 @@ in
245245
246246 environment.systemPackages = [ sudo ];
247247
248− security.pam.services.sudo = { sshAgentAuth = true; usshAuth = true; };
248+ security.pam.services.sudo = { sshAgentAuth = true; };
249249
250250 environment.etc.sudoers =
251251 { source =
nixos/modules/services/audio/snapserver.nix+7−15
@@ -1,4 +1,4 @@
1−{ config, options, lib, pkgs, ... }:
1+{ config, lib, pkgs, ... }:
22
33with lib;
44
@@ -101,8 +101,6 @@ in {
101101
102102 openFirewall = mkOption {
103103 type = types.bool;
104− # Make the behavior consistent with other services. Set the default to
105− # false and remove the accompanying warning after NixOS 22.05 is released.
106104 default = true;
107105 description = ''
108106 Whether to automatically open the specified ports in the firewall.
@@ -275,16 +273,10 @@ in {
275273
276274 config = mkIf cfg.enable {
277275
278− warnings =
279− # https://github.com/badaix/snapcast/blob/98ac8b2fb7305084376607b59173ce4097c620d8/server/streamreader/stream_manager.cpp#L85
280− filter (w: w != "") (mapAttrsToList (k: v: if v.type == "spotify" then ''
281− services.snapserver.streams.${k}.type = "spotify" is deprecated, use services.snapserver.streams.${k}.type = "librespot" instead.
282− '' else "") cfg.streams)
283− # Remove this warning after NixOS 22.05 is released.
284− ++ optional (options.services.snapserver.openFirewall.highestPrio >= (mkOptionDefault null).priority) ''
285− services.snapserver.openFirewall will no longer default to true starting with NixOS 22.11.
286− Enable it explicitly if you need to control Snapserver remotely.
287− '';
276+ # https://github.com/badaix/snapcast/blob/98ac8b2fb7305084376607b59173ce4097c620d8/server/streamreader/stream_manager.cpp#L85
277+ warnings = filter (w: w != "") (mapAttrsToList (k: v: if v.type == "spotify" then ''
278+ services.snapserver.streams.${k}.type = "spotify" is deprecated, use services.snapserver.streams.${k}.type = "librespot" instead.
279+ '' else "") cfg.streams);
288280
289281 systemd.services.snapserver = {
290282 after = [ "network.target" ];
@@ -312,8 +304,8 @@ in {
312304
313305 networking.firewall.allowedTCPPorts =
314306 optionals cfg.openFirewall [ cfg.port ]
315− ++ optional (cfg.openFirewall && cfg.tcp.enable) cfg.tcp.port
316− ++ optional (cfg.openFirewall && cfg.http.enable) cfg.http.port;
307+ ++ optional cfg.tcp.enable cfg.tcp.port
308+ ++ optional cfg.http.enable cfg.http.port;
317309 };
318310
319311 meta = {
nixos/modules/services/continuous-integration/github-runner.nix−10
@@ -299,16 +299,6 @@ in
299299 RestrictRealtime = true;
300300 RestrictSUIDSGID = true;
301301 UMask = "0066";
302− ProtectProc = "invisible";
303− ProcSubset = "pid";
304− SystemCallFilter = [
305− "~@debug"
306− "~@mount"
307− "~@privileged"
308− "~@cpu-emulation"
309− "~@obsolete"
310− ];
311− RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" "AF_NETLINK" ];
312302
313303 # Needs network access
314304 PrivateNetwork = false;
nixos/modules/services/continuous-integration/gitlab-runner.nix+2−9
@@ -36,12 +36,12 @@ let
3636
3737 # register new services
3838 ${concatStringsSep "\n" (mapAttrsToList (name: service: ''
39− if echo "$NEW_SERVICES" | grep -xq "${name}"; then
39+ if echo "$NEW_SERVICES" | grep -xq ${name}; then
4040 bash -c ${escapeShellArg (concatStringsSep " \\\n " ([
4141 "set -a && source ${service.registrationConfigFile} &&"
4242 "gitlab-runner register"
4343 "--non-interactive"
44− (if service.description != null then "--description \"${service.description}\"" else "--name '${name}'")
44+ "--name ${name}"
4545 "--executor ${service.executor}"
4646 "--limit ${toString service.limit}"
4747 "--request-concurrency ${toString service.requestConcurrency}"
@@ -365,13 +365,6 @@ in
365365 with <literal>RUNNER_ENV</literal> variable set.
366366 '';
367367 };
368− description = mkOption {
369− type = types.nullOr types.str;
370− default = null;
371− description = ''
372− Name/description of the runner.
373− '';
374− };
375368 executor = mkOption {
376369 type = types.str;
377370 default = "docker";
nixos/modules/services/databases/cockroachdb.nix+29−37
@@ -1,4 +1,4 @@
1−{ config, lib, pkgs, utils, ... }:
1+{ config, lib, pkgs, ... }:
22
33with lib;
44
@@ -6,44 +6,46 @@ let
66 cfg = config.services.cockroachdb;
77 crdb = cfg.package;
88
9− startupCommand = utils.escapeSystemdExecArgs
10− ([
11− # Basic startup
12− "${crdb}/bin/cockroach"
13− "start"
9+ escape = builtins.replaceStrings ["%"] ["%%"];
10+ ifNotNull = v: s: optionalString (v != null) s;
11+
12+ startupCommand = lib.concatStringsSep " "
13+ [ # Basic startup
14+ "${crdb}/bin/cockroach start"
1415 "--logtostderr"
1516 "--store=/var/lib/cockroachdb"
17+ (ifNotNull cfg.locality "--locality='${cfg.locality}'")
1618
1719 # WebUI settings
18− "--http-addr=${cfg.http.address}:${toString cfg.http.port}"
20+ "--http-addr='${cfg.http.address}:${toString cfg.http.port}'"
1921
2022 # Cluster listen address
21− "--listen-addr=${cfg.listen.address}:${toString cfg.listen.port}"
23+ "--listen-addr='${cfg.listen.address}:${toString cfg.listen.port}'"
24+
25+ # Cluster configuration
26+ (ifNotNull cfg.join "--join=${cfg.join}")
2227
23− # Cache and memory settings.
24− "--cache=${cfg.cache}"
25− "--max-sql-memory=${cfg.maxSqlMemory}"
28+ # Cache and memory settings. Must be escaped.
29+ "--cache='${escape cfg.cache}'"
30+ "--max-sql-memory='${escape cfg.maxSqlMemory}'"
2631
2732 # Certificate/security settings.
2833 (if cfg.insecure then "--insecure" else "--certs-dir=${cfg.certsDir}")
29− ]
30− ++ lib.optional (cfg.join != null) "--join=${cfg.join}"
31− ++ lib.optional (cfg.locality != null) "--locality=${cfg.locality}"
32− ++ cfg.extraArgs);
33−
34− addressOption = descr: defaultPort: {
35− address = mkOption {
36− type = types.str;
37− default = "localhost";
38− description = "Address to bind to for ${descr}";
39− };
34+ ];
35+
36+ addressOption = descr: defaultPort: {
37+ address = mkOption {
38+ type = types.str;
39+ default = "localhost";
40+ description = "Address to bind to for ${descr}";
41+ };
4042
41− port = mkOption {
42− type = types.port;
43− default = defaultPort;
44− description = "Port to bind to for ${descr}";
43+ port = mkOption {
44+ type = types.port;
45+ default = defaultPort;
46+ description = "Port to bind to for ${descr}";
47+ };
4548 };
46− };
4749in
4850
4951{
@@ -157,16 +159,6 @@ in
157159 only contain open source features and open source code).
158160 '';
159161 };
160−
161− extraArgs = mkOption {
162− type = types.listOf types.str;
163− default = [];
164− example = [ "--advertise-addr" "[fe80::f6f2:::]" ];
165− description = ''
166− Extra CLI arguments passed to <command>cockroach start</command>.
167− For the full list of supported argumemnts, check <link xlink:href="https://www.cockroachlabs.com/docs/stable/cockroach-start.html#flags"/>
168− '';
169− };
170162 };
171163 };
172164
nixos/modules/services/databases/couchdb.nix−6
@@ -193,11 +193,6 @@ in {
193193
194194 preStart = ''
195195 touch ${cfg.configFile}
196− if ! test -e ${cfg.databaseDir}/.erlang.cookie; then
197− touch ${cfg.databaseDir}/.erlang.cookie
198− chmod 600 ${cfg.databaseDir}/.erlang.cookie
199− dd if=/dev/random bs=16 count=1 | base64 > ${cfg.databaseDir}/.erlang.cookie
200− fi
201196 '';
202197
203198 environment = {
@@ -209,7 +204,6 @@ in {
209204 ERL_FLAGS= ''-couch_ini ${cfg.package}/etc/default.ini ${configFile} ${pkgs.writeText "couchdb-extra.ini" cfg.extraConfig} ${cfg.configFile}'';
210205 # 5. the vm.args file
211206 COUCHDB_ARGS_FILE=''${cfg.argsFile}'';
212− HOME =''${cfg.databaseDir}'';
213207 };
214208
215209 serviceConfig = {
nixos/modules/services/desktops/pipewire/pipewire-media-session.nix+4−4
@@ -58,7 +58,7 @@ in {
5858 Configuration for the media session core. For details see
5959 https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/media-session.conf
6060 '';
61− default = defaults.media-session;
61+ default = {};
6262 };
6363
6464 alsa-monitor = mkOption {
@@ -67,7 +67,7 @@ in {
6767 Configuration for the alsa monitor. For details see
6868 https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/alsa-monitor.conf
6969 '';
70− default = defaults.alsa-monitor;
70+ default = {};
7171 };
7272
7373 bluez-monitor = mkOption {
@@ -76,7 +76,7 @@ in {
7676 Configuration for the bluez5 monitor. For details see
7777 https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/bluez-monitor.conf
7878 '';
79− default = defaults.bluez-monitor;
79+ default = {};
8080 };
8181
8282 v4l2-monitor = mkOption {
@@ -85,7 +85,7 @@ in {
8585 Configuration for the V4L2 monitor. For details see
8686 https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/v4l2-monitor.conf
8787 '';
88− default = defaults.v4l2-monitor;
88+ default = {};
8989 };
9090 };
9191 };
nixos/modules/services/editors/haste.nixdeleted−86
@@ -1,86 +0,0 @@
1−{ config, lib, pkgs, ... }:
2−
3−with lib;
4−
5−let
6− pkg = pkgs.haste-server;
7− cfg = config.services.haste-server;
8−
9− format = pkgs.formats.json {};
10−in
11−{
12− options.services.haste-server = {
13− enable = mkEnableOption "haste-server";
14− openFirewall = mkEnableOption "firewall passthrough for haste-server";
15−
16− settings = mkOption {
17− description = ''
18− Configuration for haste-server.
19− For documentation see <link xlink:href="https://github.com/toptal/haste-server#settings">project readme</link>
20− '';
21− type = format.type;
22− };
23− };
24−
25− config = mkIf (cfg.enable) {
26− networking.firewall.allowedTCPPorts = mkIf (cfg.openFirewall) [ cfg.settings.port ];
27−
28− services.haste-server = {
29− settings = {
30− host = mkDefault "::";
31− port = mkDefault 7777;
32−
33− keyLength = mkDefault 10;
34− maxLength = mkDefault 400000;
35−
36− staticMaxAge = mkDefault 86400;
37− recompressStaticAssets = mkDefault false;
38−
39− logging = mkDefault [
40− {
41− level = "verbose";
42− type = "Console";
43− colorize = true;
44− }
45− ];
46−
47− keyGenerator = mkDefault {
48− type = "phonetic";
49− };
50−
51− rateLimits = {
52− categories = {
53− normal = {
54− totalRequests = mkDefault 500;
55− every = mkDefault 60000;
56− };
57− };
58− };
59−
60− storage = mkDefault {
61− type = "file";
62− };
63−
64− documents = {
65− about = mkDefault "${pkg}/share/haste-server/about.md";
66− };
67− };
68− };
69−
70− systemd.services.haste-server = {
71− wantedBy = [ "multi-user.target" ];
72− requires = [ "network.target" ];
73− after = [ "network.target" ];
74−
75− serviceConfig = {
76− User = "haste-server";
77− DynamicUser = true;
78− StateDirectory = "haste-server";
79− WorkingDirectory = "/var/lib/haste-server";
80− ExecStart = "${pkg}/bin/haste-server ${format.generate "config.json" cfg.settings}";
81− };
82−
83− path = with pkgs; [ pkg coreutils ];
84− };
85− };
86−}
nixos/modules/services/hardware/udev.nix+23−125
@@ -8,24 +8,6 @@ let
88
99 cfg = config.services.udev;
1010
11− initrdUdevRules = pkgs.runCommand "initrd-udev-rules" {} ''
12− mkdir -p $out/etc/udev/rules.d
13− for f in 60-cdrom_id 60-persistent-storage 75-net-description 80-drivers 80-net-setup-link; do
14− ln -s ${config.boot.initrd.systemd.package}/lib/udev/rules.d/$f.rules $out/etc/udev/rules.d
15− done
16− '';
17−
18−
19− # networkd link files are used early by udev to set up interfaces early.
20− # This must be done in stage 1 to avoid race conditions between udev and
21− # network daemons.
22− # TODO move this into the initrd-network module when it exists
23− initrdLinkUnits = pkgs.runCommand "initrd-link-units" {} ''
24− mkdir -p $out
25− ln -s ${udev}/lib/systemd/network/*.link $out/
26− ${lib.concatMapStringsSep "\n" (file: "ln -s ${file} $out/") (lib.mapAttrsToList (n: v: "${v.unit}/${n}") (lib.filterAttrs (n: _: hasSuffix ".link" n) config.systemd.network.units))}
27− '';
28−
2911 extraUdevRules = pkgs.writeTextFile {
3012 name = "extra-udev-rules";
3113 text = cfg.extraRules;
@@ -41,16 +23,17 @@ let
4123 nixosRules = ''
4224 # Miscellaneous devices.
4325 KERNEL=="kvm", MODE="0666"
26+ KERNEL=="kqemu", MODE="0666"
4427
4528 # Needed for gpm.
4629 SUBSYSTEM=="input", KERNEL=="mice", TAG+="systemd"
4730 '';
4831
4932 # Perform substitutions in all udev rules files.
50− udevRulesFor = { name, udevPackages, udevPath, udev, systemd, binPackages, initrdBin ? null }: pkgs.runCommand name
33+ udevRules = pkgs.runCommand "udev-rules"
5134 { preferLocalBuild = true;
5235 allowSubstitutes = false;
53− packages = unique (map toString udevPackages);
36+ packages = unique (map toString cfg.packages);
5437 }
5538 ''
5639 mkdir -p $out
@@ -78,9 +61,6 @@ let
7861 --replace \"/bin/mount \"${pkgs.util-linux}/bin/mount \
7962 --replace /usr/bin/readlink ${pkgs.coreutils}/bin/readlink \
8063 --replace /usr/bin/basename ${pkgs.coreutils}/bin/basename
81− ${optionalString (initrdBin != null) ''
82− substituteInPlace $i --replace '/run/current-system/systemd' "${removeSuffix "/bin" initrdBin}"
83− ''}
8464 done
8565
8666 echo -n "Checking that all programs called by relative paths in udev rules exist in ${udev}/lib/udev... "
@@ -105,9 +85,8 @@ let
10585 for i in $import_progs $run_progs; do
10686 # if the path refers to /run/current-system/systemd, replace with config.systemd.package
10787 if [[ $i == /run/current-system/systemd* ]]; then
108− i="${systemd}/''${i#/run/current-system/systemd/}"
88+ i="${config.systemd.package}/''${i#/run/current-system/systemd/}"
10989 fi
110−
11190 if [[ ! -x $i ]]; then
11291 echo "FAIL"
11392 echo "$i is called in udev rules but is not executable or does not exist"
@@ -124,7 +103,7 @@ let
124103 echo "Consider fixing the following udev rules:"
125104 echo "$filesToFixup" | while read localFile; do
126105 remoteFile="origin unknown"
127− for i in ${toString binPackages}; do
106+ for i in ${toString cfg.packages}; do
128107 for j in "$i"/*/udev/rules.d/*; do
129108 [ -e "$out/$(basename "$j")" ] || continue
130109 [ "$(basename "$j")" = "$(basename "$localFile")" ] || continue
@@ -147,7 +126,7 @@ let
147126 ${optionalString (!config.boot.hardwareScan) ''
148127 ln -s /dev/null $out/80-drivers.rules
149128 ''}
150− '';
129+ ''; # */
151130
152131 hwdbBin = pkgs.runCommand "hwdb.bin"
153132 { preferLocalBuild = true;
@@ -223,6 +202,20 @@ in
223202 '';
224203 };
225204
205+ initrdRules = mkOption {
206+ default = "";
207+ example = ''
208+ SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1D:60:B9:6D:4F", KERNEL=="eth*", NAME="my_fast_network_card"
209+ '';
210+ type = types.lines;
211+ description = ''
212+ <command>udev</command> rules to include in the initrd
213+ <emphasis>only</emphasis>. They'll be written into file
214+ <filename>99-local.rules</filename>. Thus they are read and applied
215+ after the essential initrd rules.
216+ '';
217+ };
218+
226219 extraRules = mkOption {
227220 default = "";
228221 example = ''
@@ -290,52 +283,6 @@ in
290283 '';
291284 };
292285
293− boot.initrd.services.udev = {
294−
295− packages = mkOption {
296− type = types.listOf types.path;
297− default = [];
298− visible = false;
299− description = ''
300− <emphasis>This will only be used when systemd is used in stage 1.</emphasis>
301−
302− List of packages containing <command>udev</command> rules that will be copied to stage 1.
303− All files found in
304− <filename><replaceable>pkg</replaceable>/etc/udev/rules.d</filename> and
305− <filename><replaceable>pkg</replaceable>/lib/udev/rules.d</filename>
306− will be included.
307− '';
308− };
309−
310− binPackages = mkOption {
311− type = types.listOf types.path;
312− default = [];
313− visible = false;
314− description = ''
315− <emphasis>This will only be used when systemd is used in stage 1.</emphasis>
316−
317− Packages to search for binaries that are referenced by the udev rules in stage 1.
318− This list always contains /bin of the initrd.
319− '';
320− apply = map getBin;
321− };
322−
323− rules = mkOption {
324− default = "";
325− example = ''
326− SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1D:60:B9:6D:4F", KERNEL=="eth*", NAME="my_fast_network_card"
327− '';
328− type = types.lines;
329− description = ''
330− <command>udev</command> rules to include in the initrd
331− <emphasis>only</emphasis>. They'll be written into file
332− <filename>99-local.rules</filename>. Thus they are read and applied
333− after the essential initrd rules.
334− '';
335− };
336−
337− };
338−
339286 };
340287
341288
@@ -351,61 +298,16 @@ in
351298
352299 boot.kernelParams = mkIf (!config.networking.usePredictableInterfaceNames) [ "net.ifnames=0" ];
353300
354− boot.initrd.extraUdevRulesCommands = optionalString (!config.boot.initrd.systemd.enable && config.boot.initrd.services.udev.rules != "")
301+ boot.initrd.extraUdevRulesCommands = optionalString (cfg.initrdRules != "")
355302 ''
356303 cat <<'EOF' > $out/99-local.rules
357− ${config.boot.initrd.services.udev.rules}
304+ ${cfg.initrdRules}
358305 EOF
359306 '';
360307
361− boot.initrd.systemd.additionalUpstreamUnits = [
362− # TODO: "initrd-udevadm-cleanup-db.service" is commented out because of https://github.com/systemd/systemd/issues/12953
363− "systemd-udevd-control.socket"
364− "systemd-udevd-kernel.socket"
365− "systemd-udevd.service"
366− "systemd-udev-settle.service"
367− "systemd-udev-trigger.service"
368− ];
369− boot.initrd.systemd.storePaths = [
370− "${config.boot.initrd.systemd.package}/lib/systemd/systemd-udevd"
371− "${config.boot.initrd.systemd.package}/lib/udev/ata_id"
372− "${config.boot.initrd.systemd.package}/lib/udev/cdrom_id"
373− "${config.boot.initrd.systemd.package}/lib/udev/scsi_id"
374− "${config.boot.initrd.systemd.package}/lib/udev/rules.d"
375− ] ++ map (x: "${x}/bin") config.boot.initrd.services.udev.binPackages;
376−
377− # Generate the udev rules for the initrd
378− boot.initrd.systemd.contents = {
379− "/etc/udev/rules.d".source = udevRulesFor {
380− name = "initrd-udev-rules";
381− initrdBin = config.boot.initrd.systemd.contents."/bin".source;
382− udevPackages = config.boot.initrd.services.udev.packages;
383− udevPath = config.boot.initrd.systemd.contents."/bin".source;
384− udev = config.boot.initrd.systemd.package;
385− systemd = config.boot.initrd.systemd.package;
386− binPackages = config.boot.initrd.services.udev.binPackages ++ [ config.boot.initrd.systemd.contents."/bin".source ];
387− };
388− "/etc/systemd/network".source = initrdLinkUnits;
389− };
390− # Insert initrd rules
391− boot.initrd.services.udev.packages = [
392− initrdUdevRules
393− (mkIf (config.boot.initrd.services.udev.rules != "") (pkgs.writeTextFile {
394− name = "initrd-udev-rules";
395− destination = "/etc/udev/rules.d/99-local.rules";
396− text = config.boot.initrd.services.udev.rules;
397− }))
398− ];
399−
400308 environment.etc =
401309 {
402− "udev/rules.d".source = udevRulesFor {
403− name = "udev-rules";
404− udevPackages = cfg.packages;
405− systemd = config.systemd.package;
406− binPackages = cfg.packages;
407− inherit udevPath udev;
408− };
310+ "udev/rules.d".source = udevRules;
409311 "udev/hwdb.bin".source = hwdbBin;
410312 };
411313
@@ -436,8 +338,4 @@ in
436338 };
437339
438340 };
439−
440− imports = [
441− (mkRenamedOptionModule [ "services" "udev" "initrdRules" ] [ "boot" "initrd" "services" "udev" "rules" ])
442− ];
443341}
nixos/modules/services/hardware/udisks2.nix−39
@@ -4,13 +4,6 @@
44
55with lib;
66
7−let
8− settingsFormat = pkgs.formats.ini {
9− listToValue = concatMapStringsSep "," (generators.mkValueStringDefault {});
10− };
11− configFiles = mapAttrs (name: value: (settingsFormat.generate name value)) (mapAttrs' (name: value: nameValuePair name value ) config.services.udisks2.settings);
12−in
13−
147{
158
169 ###### interface
@@ -28,36 +21,6 @@ in
2821 '';
2922 };
3023
31− settings = mkOption rec {
32− type = types.attrsOf settingsFormat.type;
33− apply = recursiveUpdate default;
34− default = {
35− "udisks2.conf" = {
36− udisks2 = {
37− modules = [ "*" ];
38− modules_load_preference = "ondemand";
39− };
40− defaults = {
41− encryption = "luks2";
42− };
43− };
44− };
45− example = literalExpression ''
46− {
47− "WDC-WD10EZEX-60M2NA0-WD-WCC3F3SJ0698.conf" = {
48− ATA = {
49− StandbyTimeout = 50;
50− };
51− };
52− };
53− '';
54− description = ''
55− Options passed to udisksd.
56− See <link xlink:href="http://manpages.ubuntu.com/manpages/latest/en/man5/udisks2.conf.5.html">here</link> and
57− drive configuration in <link xlink:href="http://manpages.ubuntu.com/manpages/latest/en/man8/udisks.8.html">here</link> for supported options.
58− '';
59− };
60−
6124 };
6225
6326 };
@@ -69,8 +32,6 @@ in
6932
7033 environment.systemPackages = [ pkgs.udisks2 ];
7134
72− environment.etc = mapAttrs' (name: value: nameValuePair "udisks2/${name}" { source = value; } ) configFiles;
73−
7435 security.polkit.enable = true;
7536
7637 services.dbus.packages = [ pkgs.udisks2 ];
nixos/modules/services/hardware/usbrelayd.nixdeleted−44
@@ -1,44 +0,0 @@
1−{ config, lib, pkgs, ... }:
2−with lib;
3−let
4− cfg = config.services.usbrelayd;
5−in
6−{
7− options.services.usbrelayd = with types; {
8− enable = mkEnableOption "USB Relay MQTT daemon";
9−
10− broker = mkOption {
11− type = str;
12− description = "Hostname or IP address of your MQTT Broker.";
13− default = "127.0.0.1";
14− example = [
15− "mqtt"
16− "192.168.1.1"
17− ];
18− };
19−
20− clientName = mkOption {
21− type = str;
22− description = "Name, your client connects as.";
23− default = "MyUSBRelay";
24− };
25− };
26−
27− config = mkIf cfg.enable {
28−
29− # TODO: Rename to .conf in upcomming release
30− environment.etc."usbrelayd.ini".text = ''
31− [MQTT]
32− BROKER = ${cfg.broker}
33− CLIENTNAME = ${cfg.clientName}
34− '';
35−
36− services.udev.packages = [ pkgs.usbrelayd ];
37− systemd.packages = [ pkgs.usbrelayd ];
38− users.users.usbrelay = {
39− isSystemUser = true;
40− group = "usbrelay";
41− };
42− users.groups.usbrelay = { };
43− };
44−}
nixos/modules/services/logging/logrotate.nix+3−3
@@ -162,8 +162,8 @@ let
162162 # file exist, but we only have sandboxed users here so brown these
163163 # out. according to man page that means su, create and createolddir.
164164 # files required to exist also won't be present, so missingok is forced.
165− user=$(${pkgs.buildPackages.coreutils}/bin/id -un)
166− group=$(${pkgs.buildPackages.coreutils}/bin/id -gn)
165+ user=$(${pkgs.coreutils}/bin/id -un)
166+ group=$(${pkgs.coreutils}/bin/id -gn)
167167 sed -e "s/\bsu\s.*/su $user $group/" \
168168 -e "s/\b\(create\s\+[0-9]*\s*\|createolddir\s\+[0-9]*\s\+\).*/\1$user $group/" \
169169 -e "1imissingok" -e "s/\bnomissingok\b//" \
@@ -173,7 +173,7 @@ let
173173 # 'error:' at common log level, so we can use grep, taking care
174174 # to keep error codes
175175 set -o pipefail
176− if ! ${pkgs.buildPackages.logrotate}/sbin/logrotate --debug /tmp/logrotate.conf 2>&1 \
176+ if ! ${pkgs.logrotate}/sbin/logrotate --debug /tmp/logrotate.conf 2>&1 \
177177 | ( ! grep "error:" ) > /tmp/logrotate-error; then
178178 echo "Logrotate configuration check failed."
179179 echo "The failing configuration (after adjustments to pass tests in sandbox) was:"
nixos/modules/services/mail/mailman.nix+7−14
@@ -192,6 +192,7 @@ in {
192192 log_dir = "/var/log/mailman";
193193 lock_dir = "$var_dir/lock";
194194 etc_dir = "/etc";
195+ ext_dir = "$etc_dir/mailman.d";
195196 pid_file = "/run/mailman/master.pid";
196197 };
197198
@@ -224,14 +225,7 @@ in {
224225 See <https://mailman.readthedocs.io/en/latest/src/mailman/docs/mta.html>.
225226 '';
226227 };
227− in [
228− { assertion = cfg.webHosts != [];
229− message = ''
230− services.mailman.serve.enable requires there to be at least one entry
231− in services.mailman.webHosts.
232− '';
233− }
234− ] ++ (lib.optionals cfg.enablePostfix [
228+ in (lib.optionals cfg.enablePostfix [
235229 { assertion = postfix.enable;
236230 message = ''
237231 Mailman's default NixOS configuration requires Postfix to be enabled.
@@ -281,14 +275,15 @@ in {
281275 globals().update(json.load(f))
282276 '';
283277
284− services.nginx = mkIf (cfg.serve.enable && cfg.webHosts != []) {
278+ services.nginx = mkIf cfg.serve.enable {
285279 enable = mkDefault true;
286− virtualHosts = lib.genAttrs cfg.webHosts (webHost: {
280+ virtualHosts."${lib.head cfg.webHosts}" = {
281+ serverAliases = cfg.webHosts;
287282 locations = {
288283 "/".extraConfig = "uwsgi_pass unix:/run/mailman-web.socket;";
289284 "/static/".alias = webSettings.STATIC_ROOT + "/";
290285 };
291− });
286+ };
292287 };
293288
294289 environment.systemPackages = [ (pkgs.buildEnv {
@@ -318,9 +313,7 @@ in {
318313 systemd.services = {
319314 mailman = {
320315 description = "GNU Mailman Master Process";
321− before = lib.optional cfg.enablePostfix "postfix.service";
322− after = [ "network.target" ]
323− ++ lib.optional cfg.enablePostfix "postfix-setup.service";
316+ after = [ "network.target" ];
324317 restartTriggers = [ config.environment.etc."mailman.cfg".source ];
325318 wantedBy = [ "multi-user.target" ];
326319 serviceConfig = {
nixos/modules/services/mail/postfix.nix+17−22
@@ -723,10 +723,23 @@ in
723723 { ${setgidGroup}.gid = config.ids.gids.postdrop;
724724 };
725725
726− systemd.services.postfix-setup =
727− { description = "Setup for Postfix mail server";
728− serviceConfig.Type = "oneshot";
729− script = ''
726+ systemd.services.postfix =
727+ { description = "Postfix mail server";
728+
729+ wantedBy = [ "multi-user.target" ];
730+ after = [ "network.target" ];
731+ path = [ pkgs.postfix ];
732+
733+ serviceConfig = {
734+ Type = "forking";
735+ Restart = "always";
736+ PIDFile = "/var/lib/postfix/queue/pid/master.pid";
737+ ExecStart = "${pkgs.postfix}/bin/postfix start";
738+ ExecStop = "${pkgs.postfix}/bin/postfix stop";
739+ ExecReload = "${pkgs.postfix}/bin/postfix reload";
740+ };
741+
742+ preStart = ''
730743 # Backwards compatibility
731744 if [ ! -d /var/lib/postfix ] && [ -d /var/postfix ]; then
732745 mkdir -p /var/lib
@@ -764,24 +777,6 @@ in
764777 '';
765778 };
766779
767− systemd.services.postfix =
768− { description = "Postfix mail server";
769−
770− wantedBy = [ "multi-user.target" ];
771− after = [ "network.target" "postfix-setup.service" ];
772− requires = [ "postfix-setup.service" ];
773− path = [ pkgs.postfix ];
774−
775− serviceConfig = {
776− Type = "forking";
777− Restart = "always";
778− PIDFile = "/var/lib/postfix/queue/pid/master.pid";
779− ExecStart = "${pkgs.postfix}/bin/postfix start";
780− ExecStop = "${pkgs.postfix}/bin/postfix stop";
781− ExecReload = "${pkgs.postfix}/bin/postfix reload";
782− };
783− };
784−
785780 services.postfix.config = (mapAttrs (_: v: mkDefault v) {
786781 compatibility_level = pkgs.postfix.version;
787782 mail_owner = cfg.user;
nixos/modules/services/matrix/matrix-synapse.nix+1−1
@@ -81,7 +81,7 @@ in {
8181 (mkRemovedOptionModule [ "services" "matrix-synapse" "verbose" ] "Use a log config instead." )
8282
8383 # options that were moved into rfc42 style settigns
84− (mkRemovedOptionModule [ "services" "matrix-synapse" "app_service_config_files" ] "Use settings.app_service_config_files instead" )
84+ (mkRemovedOptionModule [ "services" "matrix-synapse" "app_service_config_files" ] "Use settings.app_service_config_Files instead" )
8585 (mkRemovedOptionModule [ "services" "matrix-synapse" "database_args" ] "Use settings.database.args instead" )
8686 (mkRemovedOptionModule [ "services" "matrix-synapse" "database_name" ] "Use settings.database.args.database instead" )
8787 (mkRemovedOptionModule [ "services" "matrix-synapse" "database_type" ] "Use settings.database.name instead" )
nixos/modules/services/misc/dendrite.nix−1
@@ -247,7 +247,6 @@ in
247247 WorkingDirectory = workingDir;
248248 RuntimeDirectory = "dendrite";
249249 RuntimeDirectoryMode = "0700";
250− LimitNOFILE = 65535;
251250 EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
252251 ExecStartPre = ''
253252 ${pkgs.envsubst}/bin/envsubst \
nixos/modules/services/misc/etebase-server.nix+1−1
@@ -166,7 +166,7 @@ in
166166 } ''
167167 makeWrapper ${pythonEnv}/bin/etebase-server \
168168 $out/bin/etebase-server \
169− --chdir ${escapeShellArg cfg.dataDir} \
169+ --run "cd ${cfg.dataDir}" \
170170 --prefix ETEBASE_EASY_CONFIG_PATH : "${configIni}"
171171 '')
172172 ];
nixos/modules/services/misc/ethminer.nix+1−1
@@ -85,7 +85,7 @@ in
8585 config = mkIf cfg.enable {
8686
8787 systemd.services.ethminer = {
88− path = optional (cfg.toolkit == "cuda") [ pkgs.cudaPackages.cudatoolkit ];
88+ path = optional (cfg.toolkit == "cuda") [ pkgs.cudatoolkit ];
8989 description = "ethminer ethereum mining service";
9090 wantedBy = [ "multi-user.target" ];
9191 after = [ "network.target" ];
nixos/modules/services/misc/gitea.nix+16−11
@@ -499,7 +499,6 @@ in
499499 oldLfsJwtSecret = "${cfg.stateDir}/custom/conf/jwt_secret"; # old file for LFS_JWT_SECRET
500500 lfsJwtSecret = "${cfg.stateDir}/custom/conf/lfs_jwt_secret"; # new file for LFS_JWT_SECRET
501501 internalToken = "${cfg.stateDir}/custom/conf/internal_token";
502− replaceSecretBin = "${pkgs.replace-secret}/bin/replace-secret";
503502 in ''
504503 # copy custom configuration and generate a random secret key if needed
505504 ${optionalString (cfg.useWizard == false) ''
@@ -527,17 +526,23 @@ in
527526 ${gitea}/bin/gitea generate secret INTERNAL_TOKEN > ${internalToken}
528527 fi
529528
530− chmod u+w '${runConfig}'
531− ${replaceSecretBin} '#secretkey#' '${secretKey}' '${runConfig}'
532− ${replaceSecretBin} '#dbpass#' '${cfg.database.passwordFile}' '${runConfig}'
533− ${replaceSecretBin} '#oauth2jwtsecret#' '${oauth2JwtSecret}' '${runConfig}'
534− ${replaceSecretBin} '#lfsjwtsecret#' '${lfsJwtSecret}' '${runConfig}'
535− ${replaceSecretBin} '#internaltoken#' '${internalToken}' '${runConfig}'
536−
537− ${lib.optionalString (cfg.mailerPasswordFile != null) ''
538− ${replaceSecretBin} '#mailerpass#' '${cfg.mailerPasswordFile}' '${runConfig}'
529+ SECRETKEY="$(head -n1 ${secretKey})"
530+ DBPASS="$(head -n1 ${cfg.database.passwordFile})"
531+ OAUTH2JWTSECRET="$(head -n1 ${oauth2JwtSecret})"
532+ LFSJWTSECRET="$(head -n1 ${lfsJwtSecret})"
533+ INTERNALTOKEN="$(head -n1 ${internalToken})"
534+ ${if (cfg.mailerPasswordFile == null) then ''
535+ MAILERPASSWORD="#mailerpass#"
536+ '' else ''
537+ MAILERPASSWORD="$(head -n1 ${cfg.mailerPasswordFile} || :)"
539538 ''}
540− chmod u-w '${runConfig}'
539+ sed -e "s,#secretkey#,$SECRETKEY,g" \
540+ -e "s,#dbpass#,$DBPASS,g" \
541+ -e "s,#oauth2jwtsecret#,$OAUTH2JWTSECRET,g" \
542+ -e "s,#lfsjwtsecret#,$LFSJWTSECRET,g" \
543+ -e "s,#internaltoken#,$INTERNALTOKEN,g" \
544+ -e "s,#mailerpass#,$MAILERPASSWORD,g" \
545+ -i ${runConfig}
541546 }
542547 (umask 027; gitea_setup)
543548 ''}
nixos/modules/services/misc/gitlab.nix+2−2
@@ -179,7 +179,7 @@ let
179179 ${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
180180 --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \
181181 --set RAKEOPT '-f ${cfg.packages.gitlab}/share/gitlab/Rakefile' \
182− --chdir '${cfg.packages.gitlab}/share/gitlab'
182+ --run 'cd ${cfg.packages.gitlab}/share/gitlab'
183183 '';
184184 };
185185
@@ -193,7 +193,7 @@ let
193193 makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/rails $out/bin/gitlab-rails \
194194 ${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
195195 --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \
196− --chdir '${cfg.packages.gitlab}/share/gitlab'
196+ --run 'cd ${cfg.packages.gitlab}/share/gitlab'
197197 '';
198198 };
199199
nixos/modules/services/misc/paperless.nix → nixos/modules/services/misc/paperless-ng.nixrenamed+51−49
@@ -2,13 +2,11 @@
22
33with lib;
44let
5− cfg = config.services.paperless;
5+ cfg = config.services.paperless-ng;
66
77 defaultUser = "paperless";
88
9− # Don't start a redis instance if the user sets a custom redis connection
10− enableRedis = !hasAttr "PAPERLESS_REDIS" cfg.extraConfig;
11− redisServer = config.services.redis.servers.paperless;
9+ hasCustomRedis = hasAttr "PAPERLESS_REDIS" cfg.extraConfig;
1210
1311 env = {
1412 PAPERLESS_DATA_DIR = cfg.dataDir;
@@ -17,15 +15,15 @@ let
1715 GUNICORN_CMD_ARGS = "--bind=${cfg.address}:${toString cfg.port}";
1816 } // (
1917 lib.mapAttrs (_: toString) cfg.extraConfig
20− ) // (optionalAttrs enableRedis {
21− PAPERLESS_REDIS = "unix://${redisServer.unixSocket}";
18+ ) // (optionalAttrs (!hasCustomRedis) {
19+ PAPERLESS_REDIS = "unix://${config.services.redis.servers.paperless-ng.unixSocket}";
2220 });
2321
2422 manage = let
2523 setupEnv = lib.concatStringsSep "\n" (mapAttrsToList (name: val: "export ${name}=\"${val}\"") env);
2624 in pkgs.writeShellScript "manage" ''
2725 ${setupEnv}
28− exec ${cfg.package}/bin/paperless-ngx "$@"
26+ exec ${cfg.package}/bin/paperless-ng "$@"
2927 '';
3028
3129 # Secure the services
@@ -38,7 +36,7 @@ let
3836 "-/etc/hosts"
3937 "-/etc/localtime"
4038 "-/run/postgresql"
41− ] ++ (optional enableRedis redisServer.unixSocket);
39+ ] ++ (optional (!hasCustomRedis) config.services.redis.servers.paperless-ng.unixSocket);
4240 BindPaths = [
4341 cfg.consumptionDir
4442 cfg.dataDir
@@ -55,6 +53,7 @@ let
5553 PrivateNetwork = true;
5654 PrivateTmp = true;
5755 PrivateUsers = true;
56+ ProcSubset = "pid";
5857 ProtectClock = true;
5958 # Breaks if the home dir of the user is in /home
6059 # Also does not add much value in combination with the TemporaryFileSystem.
@@ -67,15 +66,11 @@ let
6766 ProtectKernelModules = true;
6867 ProtectKernelTunables = true;
6968 ProtectProc = "invisible";
70− # Don't restrict ProcSubset because django-q requires read access to /proc/stat
71− # to query CPU and memory information.
72− # Note that /proc only contains processes of user `paperless`, so this is safe.
73− # ProcSubset = "pid";
7469 RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
7570 RestrictNamespaces = true;
7671 RestrictRealtime = true;
7772 RestrictSUIDSGID = true;
78− SupplementaryGroups = optional enableRedis redisServer.user;
73+ SupplementaryGroups = optional (!hasCustomRedis) config.services.redis.servers.paperless-ng.user;
7974 SystemCallArchitectures = "native";
8075 SystemCallFilter = [ "@system-service" "~@privileged @resources @setuid @keyring" ];
8176 # Does not work well with the temporary root
@@ -86,22 +81,26 @@ in
8681 meta.maintainers = with maintainers; [ earvstedt Flakebi ];
8782
8883 imports = [
89− (mkRenamedOptionModule [ "services" "paperless-ng" ] [ "services" "paperless" ])
84+ (mkRemovedOptionModule [ "services" "paperless"] ''
85+ The paperless module has been removed as the upstream project died.
86+ Users should migrate to the paperless-ng module (services.paperless-ng).
87+ More information can be found in the NixOS 21.11 release notes.
88+ '')
9089 ];
9190
92− options.services.paperless = {
91+ options.services.paperless-ng = {
9392 enable = mkOption {
9493 type = lib.types.bool;
9594 default = false;
9695 description = ''
97− Enable Paperless.
96+ Enable Paperless-ng.
9897
9998 When started, the Paperless database is automatically created if it doesn't
10099 exist and updated if the Paperless package has changed.
101100 Both tasks are achieved by running a Django migration.
102101
103102 A script to manage the Paperless instance (by wrapping Django's manage.py) is linked to
104− <literal>''${dataDir}/paperless-manage</literal>.
103+ <literal>''${dataDir}/paperless-ng-manage</literal>.
105104 '';
106105 };
107106
@@ -134,13 +133,13 @@ in
134133 passwordFile = mkOption {
135134 type = types.nullOr types.path;
136135 default = null;
137− example = "/run/keys/paperless-password";
136+ example = "/run/keys/paperless-ng-password";
138137 description = ''
139138 A file containing the superuser password.
140139
141140 A superuser is required to access the web interface.
142141 If unset, you can create a superuser manually by running
143− <literal>''${dataDir}/paperless-manage createsuperuser</literal>.
142+ <literal>''${dataDir}/paperless-ng-manage createsuperuser</literal>.
144143
145144 The default superuser name is <literal>admin</literal>. To change it, set
146145 option <option>extraConfig.PAPERLESS_ADMIN_USER</option>.
@@ -169,9 +168,9 @@ in
169168 type = types.attrs;
170169 default = {};
171170 description = ''
172− Extra paperless config options.
171+ Extra paperless-ng config options.
173172
174− See <link xlink:href="https://paperless-ngx.readthedocs.io/en/latest/configuration.html">the documentation</link>
173+ See <link xlink:href="https://paperless-ng.readthedocs.io/en/latest/configuration.html">the documentation</link>
175174 for available options.
176175 '';
177176 example = literalExpression ''
@@ -189,14 +188,15 @@ in
189188
190189 package = mkOption {
191190 type = types.package;
192− default = pkgs.paperless-ngx;
193− defaultText = literalExpression "pkgs.paperless-ngx";
191+ default = pkgs.paperless-ng;
192+ defaultText = literalExpression "pkgs.paperless-ng";
194193 description = "The Paperless package to use.";
195194 };
196195 };
197196
198197 config = mkIf cfg.enable {
199− services.redis.servers.paperless.enable = mkIf enableRedis true;
198+ # Enable redis if no special url is set
199+ services.redis.servers.paperless-ng.enable = mkIf (!hasCustomRedis) true;
200200
201201 systemd.tmpfiles.rules = [
202202 "d '${cfg.dataDir}' - ${cfg.user} ${config.users.users.${cfg.user}.group} - -"
@@ -208,11 +208,11 @@ in
208208 )
209209 ];
210210
211− systemd.services.paperless-scheduler = {
212− description = "Paperless scheduler";
211+ systemd.services.paperless-ng-server = {
212+ description = "Paperless document server";
213213 serviceConfig = defaultServiceConfig // {
214214 User = cfg.user;
215− ExecStart = "${cfg.package}/bin/paperless-ngx qcluster";
215+ ExecStart = "${cfg.package}/bin/paperless-ng qcluster";
216216 Restart = "on-failure";
217217 # The `mbind` syscall is needed for running the classifier.
218218 SystemCallFilter = defaultServiceConfig.SystemCallFilter ++ [ "mbind" ];
@@ -221,15 +221,15 @@ in
221221 };
222222 environment = env;
223223 wantedBy = [ "multi-user.target" ];
224− wants = [ "paperless-consumer.service" "paperless-web.service" ];
224+ wants = [ "paperless-ng-consumer.service" "paperless-ng-web.service" ];
225225
226226 preStart = ''
227− ln -sf ${manage} ${cfg.dataDir}/paperless-manage
227+ ln -sf ${manage} ${cfg.dataDir}/paperless-ng-manage
228228
229229 # Auto-migrate on first run or if the package has changed
230230 versionFile="${cfg.dataDir}/src-version"
231231 if [[ $(cat "$versionFile" 2>/dev/null) != ${cfg.package} ]]; then
232− ${cfg.package}/bin/paperless-ngx migrate
232+ ${cfg.package}/bin/paperless-ng migrate
233233 echo ${cfg.package} > "$versionFile"
234234 fi
235235 ''
@@ -240,18 +240,20 @@ in
240240 superuserStateFile="${cfg.dataDir}/superuser-state"
241241
242242 if [[ $(cat "$superuserStateFile" 2>/dev/null) != $superuserState ]]; then
243− ${cfg.package}/bin/paperless-ngx manage_superuser
243+ ${cfg.package}/bin/paperless-ng manage_superuser
244244 echo "$superuserState" > "$superuserStateFile"
245245 fi
246246 '';
247− } // optionalAttrs enableRedis {
248− after = [ "redis-paperless.service" ];
247+ } // optionalAttrs (!hasCustomRedis) {
248+ after = [ "redis-paperless-ng.service" ];
249249 };
250250
251− # Reading the user-provided password file requires root access
252− systemd.services.paperless-copy-password = mkIf (cfg.passwordFile != null) {
253− requiredBy = [ "paperless-scheduler.service" ];
254− before = [ "paperless-scheduler.service" ];
251+ # Password copying can't be implemented as a privileged preStart script
252+ # in 'paperless-ng-server' because 'defaultServiceConfig' limits the filesystem
253+ # paths accessible by the service.
254+ systemd.services.paperless-ng-copy-password = mkIf (cfg.passwordFile != null) {
255+ requiredBy = [ "paperless-ng-server.service" ];
256+ before = [ "paperless-ng-server.service" ];
255257 serviceConfig = {
256258 ExecStart = ''
257259 ${pkgs.coreutils}/bin/install --mode 600 --owner '${cfg.user}' --compare \
@@ -261,27 +263,27 @@ in
261263 };
262264 };
263265
264− systemd.services.paperless-consumer = {
266+ systemd.services.paperless-ng-consumer = {
265267 description = "Paperless document consumer";
266268 serviceConfig = defaultServiceConfig // {
267269 User = cfg.user;
268− ExecStart = "${cfg.package}/bin/paperless-ngx document_consumer";
270+ ExecStart = "${cfg.package}/bin/paperless-ng document_consumer";
269271 Restart = "on-failure";
270272 };
271273 environment = env;
272− # Bind to `paperless-scheduler` so that the consumer never runs
274+ # Bind to `paperless-ng-server` so that the consumer never runs
273275 # during migrations
274− bindsTo = [ "paperless-scheduler.service" ];
275− after = [ "paperless-scheduler.service" ];
276+ bindsTo = [ "paperless-ng-server.service" ];
277+ after = [ "paperless-ng-server.service" ];
276278 };
277279
278− systemd.services.paperless-web = {
280+ systemd.services.paperless-ng-web = {
279281 description = "Paperless web server";
280282 serviceConfig = defaultServiceConfig // {
281283 User = cfg.user;
282284 ExecStart = ''
283285 ${pkgs.python3Packages.gunicorn}/bin/gunicorn \
284− -c ${cfg.package}/lib/paperless-ngx/gunicorn.conf.py paperless.asgi:application
286+ -c ${cfg.package}/lib/paperless-ng/gunicorn.conf.py paperless.asgi:application
285287 '';
286288 Restart = "on-failure";
287289
@@ -294,15 +296,15 @@ in
294296 };
295297 environment = env // {
296298 PATH = mkForce cfg.package.path;
297− PYTHONPATH = "${cfg.package.pythonPath}:${cfg.package}/lib/paperless-ngx/src";
299+ PYTHONPATH = "${cfg.package.pythonPath}:${cfg.package}/lib/paperless-ng/src";
298300 };
299301 # Allow the web interface to access the private /tmp directory of the server.
300302 # This is required to support uploading files via the web interface.
301− unitConfig.JoinsNamespaceOf = "paperless-scheduler.service";
302− # Bind to `paperless-scheduler` so that the web server never runs
303+ unitConfig.JoinsNamespaceOf = "paperless-ng-server.service";
304+ # Bind to `paperless-ng-server` so that the web server never runs
303305 # during migrations
304− bindsTo = [ "paperless-scheduler.service" ];
305− after = [ "paperless-scheduler.service" ];
306+ bindsTo = [ "paperless-ng-server.service" ];
307+ after = [ "paperless-ng-server.service" ];
306308 };
307309
308310 users = optionalAttrs (cfg.user == defaultUser) {
nixos/modules/services/misc/sourcehut/default.nix+1−1
@@ -1018,7 +1018,7 @@ in
10181018 inherit configIniOfService;
10191019 mainService = mkMerge [ baseService {
10201020 serviceConfig.StateDirectory = [ "sourcehut/gitsrht" "sourcehut/gitsrht/repos" ];
1021− preStart = mkIf (versionOlder config.system.stateVersion "22.05") (mkBefore ''
1021+ preStart = mkIf (!versionAtLeast config.system.stateVersion "22.05") (mkBefore ''
10221022 # Fix Git hooks of repositories pre-dating https://github.com/NixOS/nixpkgs/pull/133984
10231023 (
10241024 set +f
nixos/modules/services/misc/taskserver/default.nix+6−10
@@ -106,7 +106,7 @@ let
106106
107107 certtool = "${pkgs.gnutls.bin}/bin/certtool";
108108
109− nixos-taskserver = with pkgs.python3.pkgs; buildPythonApplication {
109+ nixos-taskserver = with pkgs.python2.pkgs; buildPythonApplication {
110110 name = "nixos-taskserver";
111111
112112 src = pkgs.runCommand "nixos-taskserver-src" { preferLocalBuild = true; } ''
@@ -277,6 +277,10 @@ in {
277277 example = "::";
278278 description = ''
279279 The address (IPv4, IPv6 or DNS) to listen on.
280+
281+ If the value is something else than <literal>localhost</literal> the
282+ port defined by <option>listenPort</option> is automatically added to
283+ <option>networking.firewall.allowedTCPPorts</option>.
280284 '';
281285 };
282286
@@ -288,14 +292,6 @@ in {
288292 '';
289293 };
290294
291− openFirewall = mkOption {
292− type = types.bool;
293− default = false;
294− description = ''
295− Whether to open the firewall for the specified Taskserver port.
296− '';
297− };
298−
299295 fqdn = mkOption {
300296 type = types.str;
301297 default = "localhost";
@@ -564,7 +560,7 @@ in {
564560 '';
565561 };
566562 })
567− (mkIf (cfg.enable && cfg.openFirewall) {
563+ (mkIf (cfg.enable && cfg.listenHost != "localhost") {
568564 networking.firewall.allowedTCPPorts = [ cfg.listenPort ];
569565 })
570566 ];
nixos/modules/services/misc/taskserver/helper-tool.py+5−5
@@ -90,7 +90,7 @@ def certtool_cmd(*args, **kwargs):
9090 """
9191 return subprocess.check_output(
9292 [CERTTOOL_COMMAND] + list(args),
93− preexec_fn=lambda: os.umask(0o077),
93+ preexec_fn=lambda: os.umask(0077),
9494 stderr=subprocess.STDOUT,
9595 **kwargs
9696 )
@@ -164,7 +164,7 @@ def generate_key(org, user):
164164 pubcert = os.path.join(basedir, "public.cert")
165165
166166 try:
167− os.makedirs(basedir, mode=0o700)
167+ os.makedirs(basedir, mode=0700)
168168
169169 certtool_cmd("-p", "--bits", CERT_BITS, "--outfile", privkey)
170170
@@ -301,7 +301,7 @@ class Organisation(object):
301301 return None
302302 if name not in self.users.keys():
303303 output = taskd_cmd("add", "user", self.name, name,
304− capture_stdout=True, encoding='utf-8')
304+ capture_stdout=True)
305305 key = RE_USERKEY.search(output)
306306 if key is None:
307307 msg = "Unable to find key while creating user {}."
@@ -412,9 +412,9 @@ class Manager(object):
412412 if org is not None:
413413 if self.ignore_imperative and is_imperative(name):
414414 return
415− for user in list(org.users.keys()):
415+ for user in org.users.keys():
416416 org.del_user(user)
417− for group in list(org.groups.keys()):
417+ for group in org.groups.keys():
418418 org.del_group(group)
419419 taskd_cmd("remove", "org", name)
420420 del self._lazy_orgs[name]
nixos/modules/services/misc/zookeeper.nix+1−8
@@ -114,13 +114,6 @@ in {
114114 type = types.package;
115115 };
116116
117− jre = mkOption {
118− description = "The JRE with which to run Zookeeper";
119− default = cfg.package.jre;
120− defaultText = literalExpression "pkgs.zookeeper.jre";
121− example = literalExpression "pkgs.jre";
122− type = types.package;
123− };
124117 };
125118
126119
@@ -138,7 +131,7 @@ in {
138131 after = [ "network.target" ];
139132 serviceConfig = {
140133 ExecStart = ''
141− ${cfg.jre}/bin/java \
134+ ${pkgs.jre}/bin/java \
142135 -cp "${cfg.package}/lib/*:${configDir}" \
143136 ${escapeShellArgs cfg.extraCmdLineOptions} \
144137 -Dzookeeper.datadir.autocreate=false \
nixos/modules/services/monitoring/mimir.nixdeleted−63
@@ -1,63 +0,0 @@
1−{ config, lib, pkgs, ... }:
2−
3−let
4− inherit (lib) escapeShellArgs mkEnableOption mkIf mkOption types;
5−
6− cfg = config.services.mimir;
7−
8− settingsFormat = pkgs.formats.yaml {};
9−in {
10− options.services.mimir = {
11− enable = mkEnableOption "mimir";
12−
13− configuration = mkOption {
14− type = (pkgs.formats.json {}).type;
15− default = {};
16− description = ''
17− Specify the configuration for Mimir in Nix.
18− '';
19− };
20−
21− configFile = mkOption {
22− type = types.nullOr types.path;
23− default = null;
24− description = ''
25− Specify a configuration file that Mimir should use.
26− '';
27− };
28− };
29−
30− config = mkIf cfg.enable {
31− assertions = [{
32− assertion = (
33− (cfg.configuration == {} -> cfg.configFile != null) &&
34− (cfg.configFile != null -> cfg.configuration == {})
35− );
36− message = ''
37− Please specify either
38− 'services.mimir.configuration' or
39− 'services.mimir.configFile'.
40− '';
41− }];
42−
43− systemd.services.mimir = {
44− description = "mimir Service Daemon";
45− wantedBy = [ "multi-user.target" ];
46−
47− serviceConfig = let
48− conf = if cfg.configFile == null
49− then settingsFormat.generate "config.yaml" cfg.configuration
50− else cfg.configFile;
51− in
52− {
53− ExecStart = "${pkgs.grafana-mimir}/bin/mimir --config.file=${conf}";
54− DynamicUser = true;
55− Restart = "always";
56− ProtectSystem = "full";
57− DevicePolicy = "closed";
58− NoNewPrivileges = true;
59− StateDirectory = "mimir";
60− };
61− };
62− };
63−}
nixos/modules/services/monitoring/nagios.nix+2−2
@@ -102,8 +102,8 @@ in
102102
103103 plugins = mkOption {
104104 type = types.listOf types.package;
105− default = with pkgs; [ monitoring-plugins msmtp mailutils ];
106− defaultText = literalExpression "[pkgs.monitoring-plugins pkgs.msmtp pkgs.mailutils]";
105+ default = with pkgs; [ monitoring-plugins ssmtp mailutils ];
106+ defaultText = literalExpression "[pkgs.monitoring-plugins pkgs.ssmtp pkgs.mailutils]";
107107 description = "
108108 Packages to be added to the Nagios <envar>PATH</envar>.
109109 Typically used to add plugins, but can be anything.
nixos/modules/services/monitoring/prometheus/default.nix+9−2
@@ -74,6 +74,7 @@ let
7474 }"
7575 "--web.listen-address=${cfg.listenAddress}:${builtins.toString cfg.port}"
7676 "--alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
77+ "--alertmanager.timeout=${toString cfg.alertmanagerTimeout}s"
7778 ] ++ optional (cfg.webExternalUrl != null) "--web.external-url=${cfg.webExternalUrl}"
7879 ++ optional (cfg.retentionTime != null) "--storage.tsdb.retention.time=${cfg.retentionTime}";
7980
@@ -1562,8 +1563,6 @@ in
15621563 (mkRenamedOptionModule [ "services" "prometheus2" ] [ "services" "prometheus" ])
15631564 (mkRemovedOptionModule [ "services" "prometheus" "environmentFile" ]
15641565 "It has been removed since it was causing issues (https://github.com/NixOS/nixpkgs/issues/126083) and Prometheus now has native support for secret files, i.e. `basic_auth.password_file` and `authorization.credentials_file`.")
1565− (mkRemovedOptionModule [ "services" "prometheus" "alertmanagerTimeout" ]
1566− "Deprecated upstream and no longer had any effect")
15671566 ];
15681567
15691568 options.services.prometheus = {
@@ -1720,6 +1719,14 @@ in
17201719 '';
17211720 };
17221721
1722+ alertmanagerTimeout = mkOption {
1723+ type = types.int;
1724+ default = 10;
1725+ description = ''
1726+ Alert manager HTTP API timeout (in seconds).
1727+ '';
1728+ };
1729+
17231730 webExternalUrl = mkOption {
17241731 type = types.nullOr types.str;
17251732 default = null;
nixos/modules/services/monitoring/prometheus/exporters.xml−21
@@ -19,7 +19,6 @@
1919<programlisting>
2020 services.prometheus.exporters.node = {
2121 enable = true;
22− port = 9100;
2322 enabledCollectors = [
2423 "logind"
2524 "systemd"
@@ -43,26 +42,6 @@
4342 <link xlink:href="https://nixos.org/nixos/options.html#prometheus.exporters">available
4443 options</link>.
4544 </para>
46−
47− <para>
48− Prometheus can now be configured to consume the metrics produced by the exporter:
49− <programlisting>
50− services.prometheus = {
51− # ...
52−
53− scrapeConfigs = [
54− {
55− job_name = "node";
56− static_configs = [{
57− targets = [ "localhost:${toString config.services.prometheus.exporters.node.port}" ];
58− }];
59− }
60− ];
61−
62− # ...
63− }
64− </programlisting>
65− </para>
6645 </section>
6746 <section xml:id="module-services-prometheus-exporters-new-exporter">
6847 <title>Adding a new exporter</title>
nixos/modules/services/network-filesystems/ipfs.nix+5−7
@@ -1,7 +1,8 @@
1−{ config, lib, pkgs, utils, ... }:
1+{ config, lib, pkgs, options, utils, ... }:
22with lib;
33let
44 cfg = config.services.ipfs;
5+ opt = options.services.ipfs;
56
67 ipfsFlags = utils.escapeSystemdExecArgs (
78 optional cfg.autoMount "--mount" ++
@@ -254,15 +255,15 @@ in
254255 else
255256 # After an unclean shutdown this file may exist which will cause the config command to attempt to talk to the daemon. This will hang forever if systemd is holding our sockets open.
256257 rm -vf "$IPFS_PATH/api"
257− '' + optionalString cfg.autoMigrate ''
258− ${pkgs.ipfs-migrator}/bin/fs-repo-migrations -to '${cfg.package.repoVersion}' -y
259− '' + ''
258+
260259 ipfs --offline config profile apply ${profile}
261260 fi
262261 '' + optionalString cfg.autoMount ''
263262 ipfs --offline config Mounts.FuseAllowOther --json true
264263 ipfs --offline config Mounts.IPFS ${cfg.ipfsMountDir}
265264 ipfs --offline config Mounts.IPNS ${cfg.ipnsMountDir}
265+ '' + optionalString cfg.autoMigrate ''
266+ ${pkgs.ipfs-migrator}/bin/fs-repo-migrations -to '${cfg.package.repoVersion}' -y
266267 '' + ''
267268 ipfs --offline config show \
268269 | ${pkgs.jq}/bin/jq '. * $extraConfig' --argjson extraConfig ${
@@ -315,9 +316,6 @@ in
315316 in
316317 [ "" "%t/ipfs.sock" ] ++ lib.optional (fromCfg != null) fromCfg;
317318 };
318− };
319319
320− meta = {
321− maintainers = with lib.maintainers; [ Luflosi ];
322320 };
323321}
nixos/modules/services/networking/asterisk.nix+43−11
@@ -14,9 +14,28 @@ let
1414
1515 # Add filecontents from files of useTheseDefaultConfFiles to confFiles, do not override
1616 defaultConfFiles = subtractLists (attrNames cfg.confFiles) cfg.useTheseDefaultConfFiles;
17− allConfFiles = {
17+ allConfFiles =
18+ cfg.confFiles //
19+ builtins.listToAttrs (map (x: { name = x;
20+ value = builtins.readFile (cfg.package + "/etc/asterisk/" + x); })
21+ defaultConfFiles);
22+
23+ asteriskEtc = pkgs.stdenv.mkDerivation
24+ ((mapAttrs' (name: value: nameValuePair
25+ # Fudge the names to make bash happy
26+ ((replaceChars ["."] ["_"] name) + "_")
27+ (value)
28+ ) allConfFiles) //
29+ {
30+ confFilesString = concatStringsSep " " (
31+ attrNames allConfFiles
32+ );
33+
34+ name = "asterisk-etc";
35+
1836 # Default asterisk.conf file
19− "asterisk.conf".text = ''
37+ # (Notice that astetcdir will be set to the path of this derivation)
38+ asteriskConf = ''
2039 [directories]
2140 astetcdir => /etc/asterisk
2241 astmoddir => ${cfg.package}/lib/asterisk/modules
@@ -29,28 +48,43 @@ let
2948 astrundir => /run/asterisk
3049 astlogdir => /var/log/asterisk
3150 astsbindir => ${cfg.package}/sbin
32− ${cfg.extraConfig}
3351 '';
52+ extraConf = cfg.extraConfig;
3453
3554 # Loading all modules by default is considered sensible by the authors of
3655 # "Asterisk: The Definitive Guide". Secure sites will likely want to
3756 # specify their own "modules.conf" in the confFiles option.
38− "modules.conf".text = ''
57+ modulesConf = ''
3958 [modules]
4059 autoload=yes
4160 '';
4261
4362 # Use syslog for logging so logs can be viewed with journalctl
44− "logger.conf".text = ''
63+ loggerConf = ''
4564 [general]
4665
4766 [logfiles]
4867 syslog.local0 => notice,warning,error
4968 '';
50− } //
51− mapAttrs (name: text: { inherit text; }) cfg.confFiles //
52− listToAttrs (map (x: nameValuePair x { source = cfg.package + "/etc/asterisk/" + x; }) defaultConfFiles);
5369
70+ buildCommand = ''
71+ mkdir -p "$out"
72+
73+ # Create asterisk.conf, pointing astetcdir to the path of this derivation
74+ echo "$asteriskConf" | sed "s|@out@|$out|g" > "$out"/asterisk.conf
75+ echo "$extraConf" >> "$out"/asterisk.conf
76+
77+ echo "$modulesConf" > "$out"/modules.conf
78+
79+ echo "$loggerConf" > "$out"/logger.conf
80+
81+ # Config files specified in confFiles option override all other files
82+ for i in $confFilesString; do
83+ conf=$(echo "$i"_ | sed 's/\./_/g')
84+ echo "''${!conf}" > "$out"/"$i"
85+ done
86+ '';
87+ });
5488in
5589
5690{
@@ -175,9 +209,7 @@ in
175209 config = mkIf cfg.enable {
176210 environment.systemPackages = [ cfg.package ];
177211
178− environment.etc = mapAttrs' (name: value:
179− nameValuePair "asterisk/${name}" value
180− ) allConfFiles;
212+ environment.etc.asterisk.source = asteriskEtc;
181213
182214 users.users.asterisk =
183215 { name = asteriskUser;
nixos/modules/services/networking/bird.nix+2−1
@@ -68,7 +68,8 @@ in
6868 systemd.services.bird2 = {
6969 description = "BIRD Internet Routing Daemon";
7070 wantedBy = [ "multi-user.target" ];
71− reloadTriggers = [ config.environment.etc."bird/bird2.conf".source ];
71+ reloadIfChanged = true;
72+ restartTriggers = [ config.environment.etc."bird/bird2.conf".source ];
7273 serviceConfig = {
7374 Type = "forking";
7475 Restart = "on-failure";
nixos/modules/services/networking/cloudflare-dyndns.nixdeleted−93
@@ -1,93 +0,0 @@
1−{ config, pkgs, lib, ... }:
2−
3−with lib;
4−
5−let
6− cfg = config.services.cloudflare-dyndns;
7−in
8−{
9− options = {
10− services.cloudflare-dyndns = {
11− enable = mkEnableOption "Cloudflare Dynamic DNS Client";
12−
13− apiTokenFile = mkOption {
14− type = types.nullOr types.str;
15− default = null;
16− description = ''
17− The path to a file containing the CloudFlare API token.
18−
19− The file must have the form `CLOUDFLARE_API_TOKEN=...`
20− '';
21− };
22−
23− domains = mkOption {
24− type = types.listOf types.str;
25− default = [ ];
26− description = ''
27− List of domain names to update records for.
28− '';
29− };
30−
31− proxied = mkOption {
32− type = types.bool;
33− default = false;
34− description = ''
35− Whether this is a DNS-only record, or also being proxied through CloudFlare.
36− '';
37− };
38−
39− ipv4 = mkOption {
40− type = types.bool;
41− default = true;
42− description = ''
43− Whether to enable setting IPv4 A records.
44− '';
45− };
46−
47− ipv6 = mkOption {
48− type = types.bool;
49− default = false;
50− description = ''
51− Whether to enable setting IPv6 AAAA records.
52− '';
53− };
54−
55− deleteMissing = mkOption {
56− type = types.bool;
57− default = false;
58− description = ''
59− Whether to delete the record when no IP address is found.
60− '';
61− };
62− };
63− };
64−
65− config = mkIf cfg.enable {
66− systemd.services.cloudflare-dyndns = {
67− description = "CloudFlare Dynamic DNS Client";
68− after = [ "network.target" ];
69− wantedBy = [ "multi-user.target" ];
70− startAt = "*:0/5";
71−
72− environment = {
73− CLOUDFLARE_DOMAINS = toString cfg.domains;
74− };
75−
76− serviceConfig = {
77− Type = "simple";
78− DynamicUser = true;
79− StateDirectory = "cloudflare-dyndns";
80− EnvironmentFile = cfg.apiTokenFile;
81− ExecStart =
82− let
83− args = [ "--cache-file /var/lib/cloudflare-dyndns/ip.cache" ]
84− ++ (if cfg.ipv4 then [ "-4" ] else [ "-no-4" ])
85− ++ (if cfg.ipv6 then [ "-6" ] else [ "-no-6" ])
86− ++ optional cfg.deleteMissing "--delete-missing"
87− ++ optional cfg.proxied "--proxied";
88− in
89− "${pkgs.cloudflare-dyndns}/bin/cloudflare-dyndns ${toString args}";
90− };
91− };
92− };
93−}
nixos/modules/services/networking/consul.nix+6−32
@@ -80,21 +80,13 @@ in
8080 The name of the interface to pull the bind_addr from.
8181 '';
8282 };
83− };
8483
85− forceAddrFamily = mkOption {
86− type = types.enum [ "any" "ipv4" "ipv6" ];
87− default = "any";
88− description = ''
89− Whether to bind ipv4/ipv6 or both kind of addresses.
90− '';
9184 };
9285
9386 forceIpv4 = mkOption {
94− type = types.nullOr types.bool;
95− default = null;
87+ type = types.bool;
88+ default = false;
9689 description = ''
97− Deprecated: Use consul.forceAddrFamily instead.
9890 Whether we should force the interfaces to only pull ipv4 addresses.
9991 '';
10092 };
@@ -183,13 +175,6 @@ in
183175 systemPackages = [ cfg.package ];
184176 };
185177
186− warnings = lib.flatten [
187− (lib.optional (cfg.forceIpv4 != null) ''
188− The option consul.forceIpv4 is deprecated, please use
189− consul.forceAddrFamily instead.
190− '')
191− ];
192−
193178 systemd.services.consul = {
194179 wantedBy = [ "multi-user.target" ];
195180 after = [ "network.target" ] ++ systemdDevices;
@@ -211,21 +196,15 @@ in
211196 });
212197
213198 path = with pkgs; [ iproute2 gnugrep gawk consul ];
214− preStart = let
215− family = if cfg.forceAddrFamily == "ipv6" then
216− "-6"
217− else if cfg.forceAddrFamily == "ipv4" then
218− "-4"
219− else
220− "";
221− in ''
199+ preStart = ''
222200 mkdir -m 0700 -p ${dataDir}
223201 chown -R consul ${dataDir}
224202
225203 # Determine interface addresses
226204 getAddrOnce () {
227− ip ${family} addr show dev "$1" scope global \
228− | awk -F '[ /\t]*' '/inet/ {print $3}' | head -n 1
205+ ip addr show dev "$1" \
206+ | grep 'inet${optionalString (cfg.forceIpv4) " "}.*scope global' \
207+ | awk -F '[ /\t]*' '{print $3}' | head -n 1
229208 }
230209 getAddr () {
231210 ADDR="$(getAddrOnce $1)"
@@ -255,11 +234,6 @@ in
255234 };
256235 }
257236
258− # deprecated
259− (mkIf (cfg.forceIpv4 != null && cfg.forceIpv4) {
260− services.consul.forceAddrFamily = "ipv4";
261− })
262−
263237 (mkIf (cfg.alerts.enable) {
264238 systemd.services.consul-alerts = {
265239 wantedBy = [ "multi-user.target" ];
nixos/modules/services/networking/create_ap.nixdeleted−50
@@ -1,50 +0,0 @@
1−{ config, lib, pkgs, ... }:
2−
3−with lib;
4−
5−let
6− cfg = config.services.create_ap;
7− configFile = pkgs.writeText "create_ap.conf" (generators.toKeyValue { } cfg.settings);
8−in {
9− options = {
10− services.create_ap = {
11− enable = mkEnableOption "setup wifi hotspots using create_ap";
12− settings = mkOption {
13− type = with types; attrsOf (oneOf [ int bool str ]);
14− default = {};
15− description = ''
16− Configuration for <package>create_ap</package>.
17− See <link xlink:href="https://raw.githubusercontent.com/lakinduakash/linux-wifi-hotspot/master/src/scripts/create_ap.conf">upstream example configuration</link>
18− for supported values.
19− '';
20− example = {
21− INTERNET_IFACE = "eth0";
22− WIFI_IFACE = "wlan0";
23− SSID = "My Wifi Hotspot";
24− PASSPHRASE = "12345678";
25− };
26− };
27− };
28− };
29−
30− config = mkIf cfg.enable {
31−
32− systemd = {
33− services.create_ap = {
34− wantedBy = [ "multi-user.target" ];
35− description = "Create AP Service";
36− after = [ "network.target" ];
37− restartTriggers = [ configFile ];
38− serviceConfig = {
39− ExecStart = "${pkgs.linux-wifi-hotspot}/bin/create_ap --config ${configFile}";
40− KillSignal = "SIGINT";
41− Restart = "on-failure";
42− };
43− };
44− };
45−
46− };
47−
48− meta.maintainers = with lib.maintainers; [ onny ];
49−
50−}
nixos/modules/services/networking/headscale.nix+1−1
@@ -479,7 +479,7 @@ in
479479 NoNewPrivileges = true;
480480 LockPersonality = true;
481481 RestrictRealtime = true;
482− SystemCallFilter = [ "@system-service" "~@privileged" "@chown" ];
482+ SystemCallFilter = [ "@system-service" "~@priviledged" "@chown" ];
483483 SystemCallArchitectures = "native";
484484 RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX";
485485 };
nixos/modules/services/networking/nbd.nix+15−28
@@ -4,34 +4,28 @@ with lib;
44
55let
66 cfg = config.services.nbd;
7+ configFormat = pkgs.formats.ini { };
78 iniFields = with types; attrsOf (oneOf [ bool int float str ]);
8− # The `[generic]` section must come before all the others in the
9− # config file. This means we can't just dump an attrset to INI
10− # because that sorts the sections by name. Instead, we serialize it
11− # on its own first.
12− genericSection = {
13− generic = (cfg.server.extraOptions // {
14− user = "root";
15− group = "root";
16− port = cfg.server.listenPort;
17− } // (optionalAttrs (cfg.server.listenAddress != null) {
18− listenaddr = cfg.server.listenAddress;
19− }));
20− };
21− exportSections =
22− mapAttrs
9+ serverConfig = configFormat.generate "nbd-server-config"
10+ ({
11+ generic =
12+ (cfg.server.extraOptions // {
13+ user = "root";
14+ group = "root";
15+ port = cfg.server.listenPort;
16+ } // (optionalAttrs (cfg.server.listenAddress != null) {
17+ listenaddr = cfg.server.listenAddress;
18+ }));
19+ }
20+ // (mapAttrs
2321 (_: { path, allowAddresses, extraOptions }:
2422 extraOptions // {
2523 exportname = path;
2624 } // (optionalAttrs (allowAddresses != null) {
2725 authfile = pkgs.writeText "authfile" (concatStringsSep "\n" allowAddresses);
2826 }))
29− cfg.server.exports;
30− serverConfig =
31− pkgs.writeText "nbd-server-config" ''
32− ${lib.generators.toINI {} genericSection}
33− ${lib.generators.toINI {} exportSections}
34− '';
27+ cfg.server.exports)
28+ );
3529 splitLists =
3630 partition
3731 (path: hasPrefix "/dev/" path)
@@ -109,13 +103,6 @@ in
109103 };
110104
111105 config = mkIf cfg.server.enable {
112− assertions = [
113− {
114− assertion = !(cfg.server.exports ? "generic");
115− message = "services.nbd.server exports must not be named 'generic'";
116− }
117− ];
118−
119106 boot.kernelModules = [ "nbd" ];
120107
121108 systemd.services.nbd-server = {
nixos/modules/services/networking/ncdns.nix+2−2
@@ -58,7 +58,7 @@ in
5858
5959 address = mkOption {
6060 type = types.str;
61− default = "[::1]";
61+ default = "127.0.0.1";
6262 description = ''
6363 The IP address the ncdns resolver will bind to. Leave this unchanged
6464 if you do not wish to directly expose the resolver.
@@ -202,7 +202,7 @@ in
202202 config = mkIf cfg.enable {
203203
204204 services.pdns-recursor = mkIf cfgs.pdns-recursor.resolveNamecoin {
205− forwardZonesRecurse.bit = "${cfg.address}:${toString cfg.port}";
205+ forwardZonesRecurse.bit = "127.0.0.1:${toString cfg.port}";
206206 luaConfig =
207207 if cfg.dnssec.enable
208208 then ''readTrustAnchorsFromFile("${cfg.dnssec.keys.public}")''
nixos/modules/services/networking/networkmanager.nix+53−56
@@ -5,6 +5,18 @@ with lib;
55let
66 cfg = config.networking.networkmanager;
77
8+ basePackages = with pkgs; [
9+ modemmanager
10+ networkmanager
11+ networkmanager-fortisslvpn
12+ networkmanager-iodine
13+ networkmanager-l2tp
14+ networkmanager-openconnect
15+ networkmanager-openvpn
16+ networkmanager-vpnc
17+ networkmanager-sstp
18+ ] ++ optional (!delegateWireless && !enableIwd) wpa_supplicant;
19+
820 delegateWireless = config.networking.wireless.enable == true && cfg.unmanaged != [];
921
1022 enableIwd = cfg.wifi.backend == "iwd";
@@ -133,15 +145,6 @@ let
133145 '';
134146 };
135147
136− packages = [
137− pkgs.modemmanager
138− pkgs.networkmanager
139− ]
140− ++ cfg.plugins
141− ++ lib.optionals (!delegateWireless && !enableIwd) [
142− pkgs.wpa_supplicant
143− ];
144−
145148in {
146149
147150 meta = {
@@ -224,33 +227,17 @@ in {
224227 '';
225228 };
226229
227− plugins = mkOption {
228− type =
229− let
230− networkManagerPluginPackage = types.package // {
231− description = "NetworkManager plug-in";
232− check =
233− p:
234− lib.assertMsg
235− (types.package.check p
236− && p ? networkManagerPlugin
237− && lib.isString p.networkManagerPlugin)
238− ''
239− Package ‘${p.name}’, is not a NetworkManager plug-in.
240− Those need to have a ‘networkManagerPlugin’ attribute.
241− '';
242− };
243− in
244− types.listOf networkManagerPluginPackage;
230+ packages = mkOption {
231+ type = types.listOf types.package;
245232 default = [ ];
246233 description = ''
247− List of NetworkManager plug-ins to enable.
248− Some plug-ins are enabled by the NetworkManager module by default.
234+ Extra packages that provide NetworkManager plugins.
249235 '';
236+ apply = list: basePackages ++ list;
250237 };
251238
252239 dhcp = mkOption {
253− type = types.enum [ "dhcpcd" "internal" ];
240+ type = types.enum [ "dhclient" "dhcpcd" "internal" ];
254241 default = "internal";
255242 description = ''
256243 Which program (or internal library) should be used for DHCP.
@@ -393,7 +380,7 @@ in {
393380 </para><para>
394381 If you enable this option the
395382 <literal>networkmanager_strongswan</literal> plugin will be added to
396− the <option>networking.networkmanager.plugins</option> option
383+ the <option>networking.networkmanager.packages</option> option
397384 so you don't need to to that yourself.
398385 '';
399386 };
@@ -412,9 +399,6 @@ in {
412399 };
413400
414401 imports = [
415− (mkRenamedOptionModule
416− [ "networking" "networkmanager" "packages" ]
417− [ "networking" "networkmanager" "plugins" ])
418402 (mkRenamedOptionModule [ "networking" "networkmanager" "useDnsmasq" ] [ "networking" "networkmanager" "dns" ])
419403 (mkRemovedOptionModule ["networking" "networkmanager" "dynamicHosts"] ''
420404 This option was removed because allowing (multiple) regular users to
@@ -442,12 +426,31 @@ in {
442426
443427 hardware.wirelessRegulatoryDatabase = true;
444428
445− environment.etc = {
446− "NetworkManager/NetworkManager.conf".source = configFile;
429+ environment.etc = with pkgs; {
430+ "NetworkManager/NetworkManager.conf".source = configFile;
431+
432+ "NetworkManager/VPN/nm-openvpn-service.name".source =
433+ "${networkmanager-openvpn}/lib/NetworkManager/VPN/nm-openvpn-service.name";
434+
435+ "NetworkManager/VPN/nm-vpnc-service.name".source =
436+ "${networkmanager-vpnc}/lib/NetworkManager/VPN/nm-vpnc-service.name";
437+
438+ "NetworkManager/VPN/nm-openconnect-service.name".source =
439+ "${networkmanager-openconnect}/lib/NetworkManager/VPN/nm-openconnect-service.name";
440+
441+ "NetworkManager/VPN/nm-fortisslvpn-service.name".source =
442+ "${networkmanager-fortisslvpn}/lib/NetworkManager/VPN/nm-fortisslvpn-service.name";
443+
444+ "NetworkManager/VPN/nm-l2tp-service.name".source =
445+ "${networkmanager-l2tp}/lib/NetworkManager/VPN/nm-l2tp-service.name";
446+
447+ "NetworkManager/VPN/nm-iodine-service.name".source =
448+ "${networkmanager-iodine}/lib/NetworkManager/VPN/nm-iodine-service.name";
449+
450+ "NetworkManager/VPN/nm-sstp-service.name".source =
451+ "${networkmanager-sstp}/lib/NetworkManager/VPN/nm-sstp-service.name";
452+
447453 }
448− // builtins.listToAttrs (map (pkg: nameValuePair "NetworkManager/${pkg.networkManagerPlugin}" {
449− source = "${pkg}/lib/NetworkManager/${pkg.networkManagerPlugin}";
450− }) cfg.plugins)
451454 // optionalAttrs cfg.enableFccUnlock
452455 {
453456 "ModemManager/fcc-unlock.d".source =
@@ -457,13 +460,18 @@ in {
457460 {
458461 "NetworkManager/dispatcher.d/02overridedns".source = overrideNameserversScript;
459462 }
463+ // optionalAttrs cfg.enableStrongSwan
464+ {
465+ "NetworkManager/VPN/nm-strongswan-service.name".source =
466+ "${pkgs.networkmanager_strongswan}/lib/NetworkManager/VPN/nm-strongswan-service.name";
467+ }
460468 // listToAttrs (lib.imap1 (i: s:
461469 {
462470 name = "NetworkManager/dispatcher.d/${dispatcherTypesSubdirMap.${s.type}}03userscript${lib.fixedWidthNumber 4 i}";
463471 value = { mode = "0544"; inherit (s) source; };
464472 }) cfg.dispatcherScripts);
465473
466− environment.systemPackages = packages;
474+ environment.systemPackages = cfg.packages;
467475
468476 users.groups = {
469477 networkmanager.gid = config.ids.gids.networkmanager;
@@ -482,13 +490,14 @@ in {
482490 };
483491 };
484492
485− systemd.packages = packages;
493+ systemd.packages = cfg.packages;
486494
487495 systemd.tmpfiles.rules = [
488496 "d /etc/NetworkManager/system-connections 0700 root root -"
489497 "d /etc/ipsec.d 0700 root root -"
490498 "d /var/lib/NetworkManager-fortisslvpn 0700 root root -"
491499
500+ "d /var/lib/dhclient 0755 root root -"
492501 "d /var/lib/misc 0755 root root -" # for dnsmasq.leases
493502 ];
494503
@@ -525,20 +534,8 @@ in {
525534 useDHCP = false;
526535 })
527536
528− {
529− networkmanager.plugins = with pkgs; [
530− networkmanager-fortisslvpn
531− networkmanager-iodine
532− networkmanager-l2tp
533− networkmanager-openconnect
534− networkmanager-openvpn
535− networkmanager-vpnc
536− networkmanager-sstp
537− ];
538− }
539−
540537 (mkIf cfg.enableStrongSwan {
541− networkmanager.plugins = [ pkgs.networkmanager_strongswan ];
538+ networkmanager.packages = [ pkgs.networkmanager_strongswan ];
542539 })
543540
544541 (mkIf enableIwd {
@@ -562,10 +559,10 @@ in {
562559 security.polkit.enable = true;
563560 security.polkit.extraConfig = polkitConf;
564561
565− services.dbus.packages = packages
562+ services.dbus.packages = cfg.packages
566563 ++ optional cfg.enableStrongSwan pkgs.strongswanNM
567564 ++ optional (cfg.dns == "dnsmasq") pkgs.dnsmasq;
568565
569− services.udev.packages = packages;
566+ services.udev.packages = cfg.packages;
570567 };
571568}
nixos/modules/services/networking/openconnect.nixdeleted−137
@@ -1,137 +0,0 @@
1−{ config, lib, options, pkgs, ... }:
2−with lib;
3−let
4− cfg = config.networking.openconnect;
5− openconnect = cfg.package;
6− pkcs11 = types.strMatching "pkcs11:.+" // {
7− name = "pkcs11";
8− description = "PKCS#11 URI";
9− };
10− interfaceOptions = {
11− options = {
12− gateway = mkOption {
13− description = "Gateway server to connect to.";
14− example = "gateway.example.com";
15− type = types.str;
16− };
17−
18− protocol = mkOption {
19− description = "Protocol to use.";
20− example = "anyconnect";
21− type =
22− types.enum [ "anyconnect" "array" "nc" "pulse" "gp" "f5" "fortinet" ];
23− };
24−
25− user = mkOption {
26− description = "Username to authenticate with.";
27− example = "example-user";
28− type = types.nullOr types.str;
29− };
30−
31− # Note: It does not make sense to provide a way to declaratively
32− # set an authentication cookie, because they have to be requested
33− # for every new connection and would only work once.
34− passwordFile = mkOption {
35− description = ''
36− File containing the password to authenticate with. This
37− is passed to <code>openconnect</code> via the
38− <code>--passwd-on-stdin</code> option.
39− '';
40− default = null;
41− example = "/var/lib/secrets/openconnect-passwd";
42− type = types.nullOr types.path;
43− };
44−
45− certificate = mkOption {
46− description = "Certificate to authenticate with.";
47− default = null;
48− example = "/var/lib/secrets/openconnect_certificate.pem";
49− type = with types; nullOr (either path pkcs11);
50− };
51−
52− privateKey = mkOption {
53− description = "Private key to authenticate with.";
54− example = "/var/lib/secrets/openconnect_private_key.pem";
55− default = null;
56− type = with types; nullOr (either path pkcs11);
57− };
58−
59− extraOptions = mkOption {
60− description = ''
61− Extra config to be appended to the interface config. It should
62− contain long-format options as would be accepted on the command
63− line by <code>openconnect</code>
64− (see https://www.infradead.org/openconnect/manual.html).
65− Non-key-value options like <code>deflate</code> can be used by
66− declaring them as booleans, i. e. <code>deflate = true;</code>.
67− '';
68− default = { };
69− example = {
70− compression = "stateless";
71−
72− no-http-keepalive = true;
73− no-dtls = true;
74− };
75− type = with types; attrsOf (either str bool);
76− };
77− };
78− };
79− generateExtraConfig = extra_cfg:
80− strings.concatStringsSep "\n" (attrsets.mapAttrsToList
81− (name: value: if (value == true) then name else "${name}=${value}")
82− (attrsets.filterAttrs (_: value: value != false) extra_cfg));
83− generateConfig = name: icfg:
84− pkgs.writeText "config" ''
85− interface=${name}
86− ${optionalString (icfg.user != null) "user=${icfg.user}"}
87− ${optionalString (icfg.passwordFile != null) "passwd-on-stdin"}
88− ${optionalString (icfg.certificate != null)
89− "certificate=${icfg.certificate}"}
90− ${optionalString (icfg.privateKey != null) "sslkey=${icfg.privateKey}"}
91−
92− ${generateExtraConfig icfg.extraOptions}
93− '';
94− generateUnit = name: icfg: {
95− description = "OpenConnect Interface - ${name}";
96− requires = [ "network-online.target" ];
97− after = [ "network.target" "network-online.target" ];
98− wantedBy = [ "multi-user.target" ];
99−
100− serviceConfig = {
101− Type = "simple";
102− ExecStart = "${openconnect}/bin/openconnect --config=${
103− generateConfig name icfg
104− } ${icfg.gateway}";
105− StandardInput = "file:${icfg.passwordFile}";
106−
107− ProtectHome = true;
108− };
109− };
110−in {
111− options.networking.openconnect = {
112− package = mkPackageOption pkgs "openconnect" { };
113−
114− interfaces = mkOption {
115− description = "OpenConnect interfaces.";
116− default = { };
117− example = {
118− openconnect0 = {
119− gateway = "gateway.example.com";
120− protocol = "anyconnect";
121− user = "example-user";
122− passwordFile = "/var/lib/secrets/openconnect-passwd";
123− };
124− };
125− type = with types; attrsOf (submodule interfaceOptions);
126− };
127− };
128−
129− config = {
130− systemd.services = mapAttrs' (name: value: {
131− name = "openconnect-${name}";
132− value = generateUnit name value;
133− }) cfg.interfaces;
134− };
135−
136− meta.maintainers = with maintainers; [ alyaeanyx ];
137−}
nixos/modules/services/networking/pdns-recursor.nix+7−12
@@ -30,10 +30,10 @@ in {
3030 enable = mkEnableOption "PowerDNS Recursor, a recursive DNS server";
3131
3232 dns.address = mkOption {
33− type = oneOrMore types.str;
34− default = [ "::" "0.0.0.0" ];
33+ type = types.str;
34+ default = "0.0.0.0";
3535 description = ''
36− IP addresses Recursor DNS server will bind to.
36+ IP address Recursor DNS server will bind to.
3737 '';
3838 };
3939
@@ -47,12 +47,8 @@ in {
4747
4848 dns.allowFrom = mkOption {
4949 type = types.listOf types.str;
50− default = [
51− "127.0.0.0/8" "10.0.0.0/8" "100.64.0.0/10"
52− "169.254.0.0/16" "192.168.0.0/16" "172.16.0.0/12"
53− "::1/128" "fc00::/7" "fe80::/10"
54− ];
55− example = [ "0.0.0.0/0" "::/0" ];
50+ default = [ "10.0.0.0/8" "172.16.0.0/12" "192.168.0.0/16" ];
51+ example = [ "0.0.0.0/0" ];
5652 description = ''
5753 IP address ranges of clients allowed to make DNS queries.
5854 '';
@@ -76,8 +72,7 @@ in {
7672
7773 api.allowFrom = mkOption {
7874 type = types.listOf types.str;
79− default = [ "127.0.0.1" "::1" ];
80− example = [ "0.0.0.0/0" "::/0" ];
75+ default = [ "0.0.0.0/0" ];
8176 description = ''
8277 IP address ranges of clients allowed to make API requests.
8378 '';
@@ -101,7 +96,7 @@ in {
10196
10297 forwardZonesRecurse = mkOption {
10398 type = types.attrs;
104− example = { eth = "[::1]:5353"; };
99+ example = { eth = "127.0.0.1:5353"; };
105100 default = {};
106101 description = ''
107102 DNS zones to be forwarded to other recursive servers.
nixos/modules/services/networking/prosody.nix−1
@@ -820,7 +820,6 @@ in
820820 '') cfg.muc}
821821
822822 ${ lib.optionalString (cfg.uploadHttp != null) ''
823− -- TODO: think about migrating this to mod-http_file_share instead.
824823 Component ${toLua cfg.uploadHttp.domain} "http_upload"
825824 http_upload_file_size_limit = ${cfg.uploadHttp.uploadFileSizeLimit}
826825 http_upload_expire_after = ${cfg.uploadHttp.uploadExpireAfter}
nixos/modules/services/networking/shellhub-agent.nix+17−26
@@ -1,37 +1,31 @@
11{ config, lib, pkgs, ... }:
22
33with lib;
4−
54let
65 cfg = config.services.shellhub-agent;
7−in
8−{
6+in {
7+
98 ###### interface
109
1110 options = {
1211
1312 services.shellhub-agent = {
1413
15− enable = mkEnableOption "ShellHub Agent daemon";
16−
17− package = mkPackageOption pkgs "shellhub-agent" { };
18−
19− preferredHostname = mkOption {
20− type = types.str;
21− default = "";
14+ enable = mkOption {
15+ type = types.bool;
16+ default = false;
2217 description = ''
23− Set the device preferred hostname. This provides a hint to
24− the server to use this as hostname if it is available.
18+ Whether to enable the ShellHub Agent daemon, which allows
19+ secure remote logins.
2520 '';
2621 };
2722
28− keepAliveInterval = mkOption {
29− type = types.int;
30− default = 30;
23+ package = mkOption {
24+ type = types.package;
25+ default = pkgs.shellhub-agent;
26+ defaultText = literalExpression "pkgs.shellhub-agent";
3127 description = ''
32− Determine the interval to send the keep alive message to
33− the server. This has a direct impact of the bandwidth
34− used by the device.
28+ Which ShellHub Agent package to use.
3529 '';
3630 };
3731
@@ -80,13 +74,9 @@ in
8074 "time-sync.target"
8175 ];
8276
83− environment = {
84− SHELLHUB_SERVER_ADDRESS = cfg.server;
85− SHELLHUB_PRIVATE_KEY = cfg.privateKey;
86− SHELLHUB_TENANT_ID = cfg.tenantId;
87− SHELLHUB_KEEPALIVE_INTERVAL = toString cfg.keepAliveInterval;
88− SHELLHUB_PREFERRED_HOSTNAME = cfg.preferredHostname;
89− };
77+ environment.SERVER_ADDRESS = cfg.server;
78+ environment.PRIVATE_KEY = cfg.privateKey;
79+ environment.TENANT_ID = cfg.tenantId;
9080
9181 serviceConfig = {
9282 # The service starts sessions for different users.
@@ -95,6 +85,7 @@ in
9585 ExecStart = "${cfg.package}/bin/agent";
9686 };
9787 };
88+
89+ environment.systemPackages = [ cfg.package ];
9890 };
9991}
100−
nixos/modules/services/networking/ssh/sshd.nix−1
@@ -441,7 +441,6 @@ in
441441
442442 ${flip concatMapStrings cfg.hostKeys (k: ''
443443 if ! [ -s "${k.path}" ]; then
444− rm -f "${k.path}"
445444 ssh-keygen \
446445 -t "${k.type}" \
447446 ${if k ? bits then "-b ${toString k.bits}" else ""} \
nixos/modules/services/networking/supplicant.nix+1−1
@@ -43,7 +43,7 @@ let
4343 path = [ pkgs.coreutils ];
4444
4545 preStart = ''
46− ${optionalString (suppl.configFile.path!=null && suppl.configFile.writable) ''
46+ ${optionalString (suppl.configFile.path!=null) ''
4747 (umask 077 && touch -a "${suppl.configFile.path}")
4848 ''}
4949 ${optionalString suppl.userControlled.enable ''
nixos/modules/services/networking/syncplay.nix+1−1
@@ -89,7 +89,7 @@ in
8989 ${lib.optionalString (cfg.passwordFile != null) ''
9090 export SYNCPLAY_PASSWORD=$(cat "''${CREDENTIALS_DIRECTORY}/password")
9191 ''}
92− exec ${pkgs.syncplay-nogui}/bin/syncplay-server ${escapeShellArgs cmdArgs}
92+ exec ${pkgs.syncplay}/bin/syncplay-server ${escapeShellArgs cmdArgs}
9393 '';
9494 };
9595 };
nixos/modules/services/networking/tailscale.nix+1−9
@@ -21,12 +21,6 @@ in {
2121 description = ''The interface name for tunnel traffic. Use "userspace-networking" (beta) to not use TUN.'';
2222 };
2323
24− permitCertUid = mkOption {
25− type = types.nullOr types.nonEmptyStr;
26− default = null;
27− description = "Username or user ID of the user allowed to to fetch Tailscale TLS certificates for the node.";
28− };
29−
3024 package = mkOption {
3125 type = types.package;
3226 default = pkgs.tailscale;
@@ -44,9 +38,7 @@ in {
4438 serviceConfig.Environment = [
4539 "PORT=${toString cfg.port}"
4640 ''"FLAGS=--tun ${lib.escapeShellArg cfg.interfaceName}"''
47− ] ++ (lib.optionals (cfg.permitCertUid != null) [
48− "TS_PERMIT_CERT_UID=${cfg.permitCertUid}"
49− ]);
41+ ];
5042 };
5143 };
5244}
nixos/modules/services/networking/zeronet.nix+1−1
@@ -90,5 +90,5 @@ in with lib; {
9090 (mkRemovedOptionModule [ "services" "zeronet" "logDir" ] "Zeronet will log by default in /var/lib/zeronet")
9191 ];
9292
93− meta.maintainers = with maintainers; [ Madouura ];
93+ meta.maintainers = with maintainers; [ chiiruno ];
9494}
nixos/modules/services/system/nscd.nix+8−17
@@ -7,6 +7,10 @@ let
77 nssModulesPath = config.system.nssModules.path;
88 cfg = config.services.nscd;
99
10+ nscd = if pkgs.stdenv.hostPlatform.libc == "glibc"
11+ then pkgs.stdenv.cc.libc.bin
12+ else pkgs.glibc.bin;
13+
1014in
1115
1216{
@@ -33,19 +37,6 @@ in
3337 description = "Configuration to use for Name Service Cache Daemon.";
3438 };
3539
36− package = mkOption {
37− type = types.package;
38− default = if pkgs.stdenv.hostPlatform.libc == "glibc"
39− then pkgs.stdenv.cc.libc.bin
40− else pkgs.glibc.bin;
41− defaultText = lib.literalExpression ''
42− if pkgs.stdenv.hostPlatform.libc == "glibc"
43− then pkgs.stdenv.cc.libc.bin
44− else pkgs.glibc.bin;
45− '';
46− description = "package containing the nscd binary to be used by the service";
47− };
48−
4940 };
5041
5142 };
@@ -78,16 +69,16 @@ in
7869 # files. So prefix the ExecStart command with "!" to prevent systemd
7970 # from dropping privileges early. See ExecStart in systemd.service(5).
8071 serviceConfig =
81− { ExecStart = "!@${cfg.package}/bin/nscd nscd";
72+ { ExecStart = "!@${nscd}/sbin/nscd nscd";
8273 Type = "forking";
8374 DynamicUser = true;
8475 RuntimeDirectory = "nscd";
8576 PIDFile = "/run/nscd/nscd.pid";
8677 Restart = "always";
8778 ExecReload =
88− [ "${cfg.package}/bin/nscd --invalidate passwd"
89− "${cfg.package}/bin/nscd --invalidate group"
90− "${cfg.package}/bin/nscd --invalidate hosts"
79+ [ "${nscd}/sbin/nscd --invalidate passwd"
80+ "${nscd}/sbin/nscd --invalidate group"
81+ "${nscd}/sbin/nscd --invalidate hosts"
9182 ];
9283 };
9384 };
nixos/modules/services/ttys/kmscon.nix+5−24
@@ -1,6 +1,6 @@
11{ config, pkgs, lib, ... }:
22let
3− inherit (lib) mapAttrs mkIf mkOption optional optionals types;
3+ inherit (lib) mkOption types mkIf;
44
55 cfg = config.services.kmscon;
66
@@ -28,19 +28,6 @@ in {
2828 default = false;
2929 };
3030
31− fonts = mkOption {
32− description = "Fonts used by kmscon, in order of priority.";
33− default = null;
34− example = lib.literalExpression ''[ { name = "Source Code Pro"; package = pkgs.source-code-pro; } ]'';
35− type = with types;
36− let fontType = submodule {
37− options = {
38− name = mkOption { type = str; description = "Font name, as used by fontconfig."; };
39− package = mkOption { type = package; description = "Package providing the font."; };
40− };
41− }; in nullOr (nonEmptyListOf fontType);
42− };
43−
4431 extraConfig = mkOption {
4532 description = "Extra contents of the kmscon.conf file.";
4633 type = types.lines;
@@ -100,17 +87,11 @@ in {
10087
10188 systemd.services.systemd-vconsole-setup.enable = false;
10289
103− services.kmscon.extraConfig =
104− let
105− render = optionals cfg.hwRender [ "drm" "hwaccel" ];
106− fonts = optional (cfg.fonts != null) "font-name=${lib.concatMapStringsSep ", " (f: f.name) cfg.fonts}";
107− in lib.concatStringsSep "\n" (render ++ fonts);
90+ services.kmscon.extraConfig = mkIf cfg.hwRender ''
91+ drm
92+ hwaccel
93+ '';
10894
10995 hardware.opengl.enable = mkIf cfg.hwRender true;
110−
111− fonts = mkIf (cfg.fonts != null) {
112− fontconfig.enable = true;
113− fonts = map (f: f.package) cfg.fonts;
114− };
11596 };
11697}
nixos/modules/services/web-apps/atlassian/jira.nix−1
@@ -151,7 +151,6 @@ in
151151 users.users.${cfg.user} = {
152152 isSystemUser = true;
153153 group = cfg.group;
154− home = cfg.home;
155154 };
156155
157156 users.groups.${cfg.group} = {};
nixos/modules/services/web-apps/discourse.nix+3−9
@@ -609,7 +609,6 @@ in
609609 connection_reaper_interval = 30;
610610 relative_url_root = null;
611611 message_bus_max_backlog_size = 100;
612− message_bus_clear_every = 50;
613612 secret_key_base = cfg.secretKeyBaseFile;
614613 fallback_assets_path = null;
615614
@@ -656,12 +655,7 @@ in
656655 long_polling_interval = null;
657656 };
658657
659− services.redis.servers.discourse =
660− lib.mkIf (lib.elem cfg.redis.host [ "localhost" "127.0.0.1" ]) {
661− enable = true;
662− bind = cfg.redis.host;
663− port = cfg.backendSettings.redis_port;
664− };
658+ services.redis.enable = lib.mkDefault (cfg.redis.host == "localhost");
665659
666660 services.postgresql = lib.mkIf databaseActuallyCreateLocally {
667661 enable = true;
@@ -702,12 +696,12 @@ in
702696 systemd.services.discourse = {
703697 wantedBy = [ "multi-user.target" ];
704698 after = [
705− "redis-discourse.service"
699+ "redis.service"
706700 "postgresql.service"
707701 "discourse-postgresql.service"
708702 ];
709703 bindsTo = [
710− "redis-discourse.service"
704+ "redis.service"
711705 ] ++ lib.optionals (cfg.database.host == null) [
712706 "postgresql.service"
713707 "discourse-postgresql.service"
nixos/modules/services/web-apps/galene.nix−29
@@ -164,35 +164,6 @@ in
164164 optional (cfg.dataDir == defaultdataDir) "galene/data" ++
165165 optional (cfg.groupsDir == defaultgroupsDir) "galene/groups" ++
166166 optional (cfg.recordingsDir == defaultrecordingsDir) "galene/recordings";
167−
168− # Hardening
169− CapabilityBoundingSet = [ "" ];
170− DeviceAllow = [ "" ];
171− LockPersonality = true;
172− MemoryDenyWriteExecute = true;
173− NoNewPrivileges = true;
174− PrivateDevices = true;
175− PrivateTmp = true;
176− PrivateUsers = true;
177− ProcSubset = "pid";
178− ProtectClock = true;
179− ProtectControlGroups = true;
180− ProtectHome = true;
181− ProtectHostname = true;
182− ProtectKernelLogs = true;
183− ProtectKernelModules = true;
184− ProtectKernelTunables = true;
185− ProtectProc = "invisible";
186− ProtectSystem = "strict";
187− ReadWritePaths = cfg.recordingsDir;
188− RemoveIPC = true;
189− RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
190− RestrictNamespaces = true;
191− RestrictRealtime = true;
192− RestrictSUIDSGID = true;
193− SystemCallArchitectures = "native";
194− SystemCallFilter = [ "@system-service" "~@privileged" "~@resources" ];
195− UMask = "0077";
196167 }
197168 ];
198169 };
nixos/modules/services/web-apps/keycloak.nix+514−360
@@ -4,94 +4,20 @@ let
44 cfg = config.services.keycloak;
55 opt = options.services.keycloak;
66
7− inherit (lib)
8− types
9− mkMerge
10− mkOption
11− mkChangedOptionModule
12− mkRenamedOptionModule
13− mkRemovedOptionModule
14− concatStringsSep
15− mapAttrsToList
16− escapeShellArg
17− mkIf
18− optionalString
19− optionals
20− mkDefault
21− literalExpression
22− isAttrs
23− literalDocBook
24− maintainers
25− catAttrs
26− collect
27− splitString
28− ;
29−
30− inherit (builtins)
31− elem
32− typeOf
33− isInt
34− isString
35− hashString
36− isPath
37− ;
38−
39− prefixUnlessEmpty = prefix: string: optionalString (string != "") "${prefix}${string}";
7+ inherit (lib) types mkOption concatStringsSep mapAttrsToList
8+ escapeShellArg recursiveUpdate optionalAttrs boolToString mkOrder
9+ sort filterAttrs concatMapStringsSep concatStrings mkIf
10+ optionalString optionals mkDefault literalExpression hasSuffix
11+ foldl' isAttrs filter attrNames elem literalDocBook
12+ maintainers;
13+
14+ inherit (builtins) match typeOf;
4015in
4116{
42− imports =
43− [
44− (mkRenamedOptionModule
45− [ "services" "keycloak" "bindAddress" ]
46− [ "services" "keycloak" "settings" "http-host" ])
47− (mkRenamedOptionModule
48− [ "services" "keycloak" "forceBackendUrlToFrontendUrl"]
49− [ "services" "keycloak" "settings" "hostname-strict-backchannel"])
50− (mkChangedOptionModule
51− [ "services" "keycloak" "httpPort" ]
52− [ "services" "keycloak" "settings" "http-port" ]
53− (config:
54− builtins.fromJSON config.services.keycloak.httpPort))
55− (mkChangedOptionModule
56− [ "services" "keycloak" "httpsPort" ]
57− [ "services" "keycloak" "settings" "https-port" ]
58− (config:
59− builtins.fromJSON config.services.keycloak.httpsPort))
60− (mkRemovedOptionModule
61− [ "services" "keycloak" "frontendUrl" ]
62− ''
63− Set `services.keycloak.settings.hostname' and `services.keycloak.settings.http-relative-path' instead.
64− NOTE: You likely want to set 'http-relative-path' to '/auth' to keep compatibility with your clients.
65− See its description for more information.
66− '')
67− (mkRemovedOptionModule
68− [ "services" "keycloak" "extraConfig" ]
69− "Use `services.keycloak.settings' instead.")
70− ];
71−
7217 options.services.keycloak =
7318 let
74− inherit (types)
75− bool
76− str
77− int
78− nullOr
79− attrsOf
80− oneOf
81− path
82− enum
83− package
84− port;
85−
86− assertStringPath = optionName: value:
87− if isPath value then
88− throw ''
89− services.keycloak.${optionName}:
90− ${toString value}
91− is a Nix path, but should be a string, since Nix
92− paths are copied into the world-readable Nix store.
93− ''
94− else value;
19+ inherit (types) bool str nullOr attrsOf path enum anything
20+ package port;
9521 in
9622 {
9723 enable = mkOption {
@@ -104,14 +30,89 @@ in
10430 '';
10531 };
10632
33+ bindAddress = mkOption {
34+ type = str;
35+ default = "\${jboss.bind.address:0.0.0.0}";
36+ example = "127.0.0.1";
37+ description = ''
38+ On which address Keycloak should accept new connections.
39+
40+ A special syntax can be used to allow command line Java system
41+ properties to override the value: ''${property.name:value}
42+ '';
43+ };
44+
45+ httpPort = mkOption {
46+ type = str;
47+ default = "\${jboss.http.port:80}";
48+ example = "8080";
49+ description = ''
50+ On which port Keycloak should listen for new HTTP connections.
51+
52+ A special syntax can be used to allow command line Java system
53+ properties to override the value: ''${property.name:value}
54+ '';
55+ };
56+
57+ httpsPort = mkOption {
58+ type = str;
59+ default = "\${jboss.https.port:443}";
60+ example = "8443";
61+ description = ''
62+ On which port Keycloak should listen for new HTTPS connections.
63+
64+ A special syntax can be used to allow command line Java system
65+ properties to override the value: ''${property.name:value}
66+ '';
67+ };
68+
69+ frontendUrl = mkOption {
70+ type = str;
71+ apply = x:
72+ if x == "" || hasSuffix "/" x then
73+ x
74+ else
75+ x + "/";
76+ example = "keycloak.example.com/auth";
77+ description = ''
78+ The public URL used as base for all frontend requests. Should
79+ normally include a trailing <literal>/auth</literal>.
80+
81+ See <link xlink:href="https://www.keycloak.org/docs/latest/server_installation/#_hostname">the
82+ Hostname section of the Keycloak server installation
83+ manual</link> for more information.
84+ '';
85+ };
86+
87+ forceBackendUrlToFrontendUrl = mkOption {
88+ type = bool;
89+ default = false;
90+ example = true;
91+ description = ''
92+ Whether Keycloak should force all requests to go through the
93+ frontend URL configured in <xref
94+ linkend="opt-services.keycloak.frontendUrl" />. By default,
95+ Keycloak allows backend requests to instead use its local
96+ hostname or IP address and may also advertise it to clients
97+ through its OpenID Connect Discovery endpoint.
98+
99+ See <link
100+ xlink:href="https://www.keycloak.org/docs/latest/server_installation/#_hostname">the
101+ Hostname section of the Keycloak server installation
102+ manual</link> for more information.
103+ '';
104+ };
105+
107106 sslCertificate = mkOption {
108107 type = nullOr path;
109108 default = null;
110109 example = "/run/keys/ssl_cert";
111− apply = assertStringPath "sslCertificate";
112110 description = ''
113111 The path to a PEM formatted certificate to use for TLS/SSL
114112 connections.
113+
114+ This should be a string, not a Nix path, since Nix paths are
115+ copied into the world-readable Nix store.
115116 '';
116117 };
117118
@@ -119,28 +120,28 @@ in
119120 type = nullOr path;
120121 default = null;
121122 example = "/run/keys/ssl_key";
122− apply = assertStringPath "sslCertificateKey";
123123 description = ''
124124 The path to a PEM formatted private key to use for TLS/SSL
125125 connections.
126+
127+ This should be a string, not a Nix path, since Nix paths are
128+ copied into the world-readable Nix store.
126129 '';
127130 };
128131
129132 plugins = lib.mkOption {
130133 type = lib.types.listOf lib.types.path;
131− default = [ ];
134+ default = [];
132135 description = ''
133− Keycloak plugin jar, ear files or derivations containing
134− them. Packaged plugins are available through
135− <literal>pkgs.keycloak.plugins</literal>.
136+ Keycloak plugin jar, ear files or derivations with them
136137 '';
137138 };
138139
139140 database = {
140141 type = mkOption {
141− type = enum [ "mysql" "mariadb" "postgresql" ];
142+ type = enum [ "mysql" "postgresql" ];
142143 default = "postgresql";
143− example = "mariadb";
144+ example = "mysql";
144145 description = ''
145146 The type of database Keycloak should connect to.
146147 '';
@@ -158,7 +159,6 @@ in
158159 let
159160 dbPorts = {
160161 postgresql = 5432;
161− mariadb = 3306;
162162 mysql = 3306;
163163 };
164164 in
@@ -207,21 +207,6 @@ in
207207 '';
208208 };
209209
210− name = mkOption {
211− type = str;
212− default = "keycloak";
213− description = ''
214− Database name to use when connecting to an external or
215− manually provisioned database; has no effect when a local
216− database is automatically provisioned.
217−
218− To use this with a local database, set <xref
219− linkend="opt-services.keycloak.database.createLocally" /> to
220− <literal>false</literal> and create the database and user
221− manually.
222− '';
223− };
224−
225210 username = mkOption {
226211 type = str;
227212 default = "keycloak";
@@ -233,16 +218,19 @@ in
233218 To use this with a local database, set <xref
234219 linkend="opt-services.keycloak.database.createLocally" /> to
235220 <literal>false</literal> and create the database and user
236− manually.
221+ manually. The database should be called
222+ <literal>keycloak</literal>.
237223 '';
238224 };
239225
240226 passwordFile = mkOption {
241227 type = path;
242228 example = "/run/keys/db_password";
243− apply = assertStringPath "passwordFile";
244229 description = ''
245− The path to a file containing the database password.
230+ File containing the database password.
231+
232+ This should be a string, not a Nix path, since Nix paths are
233+ copied into the world-readable Nix store.
246234 '';
247235 };
248236 };
@@ -280,181 +268,67 @@ in
280268 '';
281269 };
282270
283− settings = mkOption {
284− type = lib.types.submodule {
285− freeformType = attrsOf (nullOr (oneOf [ str int bool (attrsOf path) ]));
286−
287− options = {
288− http-host = mkOption {
289− type = str;
290− default = "0.0.0.0";
291− example = "127.0.0.1";
292− description = ''
293− On which address Keycloak should accept new connections.
294− '';
295− };
296−
297− http-port = mkOption {
298− type = port;
299− default = 80;
300− example = 8080;
301− description = ''
302− On which port Keycloak should listen for new HTTP connections.
303− '';
304− };
305−
306− https-port = mkOption {
307− type = port;
308− default = 443;
309− example = 8443;
310− description = ''
311− On which port Keycloak should listen for new HTTPS connections.
312− '';
313− };
314−
315− http-relative-path = mkOption {
316− type = str;
317− default = "";
318− example = "/auth";
319− description = ''
320− The path relative to <literal>/</literal> for serving
321− resources.
322−
323− <note>
324− <para>
325− In versions of Keycloak using Wildfly (<17),
326− this defaulted to <literal>/auth</literal>. If
327− upgrading from the Wildfly version of Keycloak,
328− i.e. a NixOS version before 22.05, you'll likely
329− want to set this to <literal>/auth</literal> to
330− keep compatibility with your clients.
331−
332− See <link
333− xlink:href="https://www.keycloak.org/migration/migrating-to-quarkus"
334− /> for more information on migrating from Wildfly
335− to Quarkus.
336− </para>
337− </note>
338− '';
339− };
340−
341− hostname = mkOption {
342− type = str;
343− example = "keycloak.example.com";
344− description = ''
345− The hostname part of the public URL used as base for
346− all frontend requests.
347−
348− See <link xlink:href="https://www.keycloak.org/server/hostname" />
349− for more information about hostname configuration.
350− '';
351− };
352−
353− hostname-strict-backchannel = mkOption {
354− type = bool;
355− default = false;
356− example = true;
357− description = ''
358− Whether Keycloak should force all requests to go
359− through the frontend URL. By default, Keycloak allows
360− backend requests to instead use its local hostname or
361− IP address and may also advertise it to clients
362− through its OpenID Connect Discovery endpoint.
363−
364− See <link xlink:href="https://www.keycloak.org/server/hostname" />
365− for more information about hostname configuration.
366− '';
367− };
368−
369− proxy = mkOption {
370− type = enum [ "edge" "reencrypt" "passthrough" "none" ];
371− default = "none";
372− example = "edge";
373− description = ''
374− The proxy address forwarding mode if the server is
375− behind a reverse proxy.
376−
377− <variablelist>
378− <varlistentry>
379− <term>edge</term>
380− <listitem>
381− <para>
382− Enables communication through HTTP between the
383− proxy and Keycloak.
384− </para>
385− </listitem>
386− </varlistentry>
387− <varlistentry>
388− <term>reencrypt</term>
389− <listitem>
390− <para>
391− Requires communication through HTTPS between the
392− proxy and Keycloak.
393− </para>
394− </listitem>
395− </varlistentry>
396− <varlistentry>
397− <term>passthrough</term>
398− <listitem>
399− <para>
400− Enables communication through HTTP or HTTPS between
401− the proxy and Keycloak.
402− </para>
403− </listitem>
404− </varlistentry>
405− </variablelist>
406−
407− See <link
408− xlink:href="https://www.keycloak.org/server/reverseproxy"
409− /> for more information.
410− '';
411− };
412− };
413− };
414−
271+ extraConfig = mkOption {
272+ type = attrsOf anything;
273+ default = { };
415274 example = literalExpression ''
416275 {
417− hostname = "keycloak.example.com";
418− proxy = "reencrypt";
419− https-key-store-file = "/path/to/file";
420− https-key-store-password = { _secret = "/run/keys/store_password"; };
276+ "subsystem=keycloak-server" = {
277+ "spi=hostname" = {
278+ "provider=default" = null;
279+ "provider=fixed" = {
280+ enabled = true;
281+ properties.hostname = "keycloak.example.com";
282+ };
283+ default-provider = "fixed";
284+ };
285+ };
421286 }
422287 '';
423−
424288 description = ''
425− Configuration options corresponding to parameters set in
426− <filename>conf/keycloak.conf</filename>.
427−
428− Most available options are documented at <link
429− xlink:href="https://www.keycloak.org/server/all-config" />.
430−
431− Options containing secret data should be set to an attribute
432− set containing the attribute <literal>_secret</literal> - a
433− string pointing to a file containing the value the option
434− should be set to. See the example to get a better picture of
435− this: in the resulting
436− <filename>conf/keycloak.conf</filename> file, the
437− <literal>https-key-store-password</literal> key will be set
438− to the contents of the
439− <filename>/run/keys/store_password</filename> file.
289+ Additional Keycloak configuration options to set in
290+ <literal>standalone.xml</literal>.
291+
292+ Options are expressed as a Nix attribute set which matches the
293+ structure of the jboss-cli configuration. The configuration is
294+ effectively overlayed on top of the default configuration
295+ shipped with Keycloak. To remove existing nodes and undefine
296+ attributes from the default configuration, set them to
297+ <literal>null</literal>.
298+
299+ The example configuration does the equivalent of the following
300+ script, which removes the hostname provider
301+ <literal>default</literal>, adds the deprecated hostname
302+ provider <literal>fixed</literal> and defines it the default:
303+
304+ <programlisting>
305+ /subsystem=keycloak-server/spi=hostname/provider=default:remove()
306+ /subsystem=keycloak-server/spi=hostname/provider=fixed:add(enabled = true, properties = { hostname = "keycloak.example.com" })
307+ /subsystem=keycloak-server/spi=hostname:write-attribute(name=default-provider, value="fixed")
308+ </programlisting>
309+
310+ You can discover available options by using the <link
311+ xlink:href="http://docs.wildfly.org/21/Admin_Guide.html#Command_Line_Interface">jboss-cli.sh</link>
312+ program and by referring to the <link
313+ xlink:href="https://www.keycloak.org/docs/latest/server_installation/index.html">Keycloak
314+ Server Installation and Configuration Guide</link>.
440315 '';
441316 };
317+
442318 };
443319
444320 config =
445321 let
446− # We only want to create a database if we're actually going to
447− # connect to it.
322+ # We only want to create a database if we're actually going to connect to it.
448323 databaseActuallyCreateLocally = cfg.database.createLocally && cfg.database.host == "localhost";
449324 createLocalPostgreSQL = databaseActuallyCreateLocally && cfg.database.type == "postgresql";
450− createLocalMySQL = databaseActuallyCreateLocally && elem cfg.database.type [ "mysql" "mariadb" ];
325+ createLocalMySQL = databaseActuallyCreateLocally && cfg.database.type == "mysql";
451326
452327 mySqlCaKeystore = pkgs.runCommand "mysql-ca-keystore" { } ''
453328 ${pkgs.jre}/bin/keytool -importcert -trustcacerts -alias MySQLCACert -file ${cfg.database.caCert} -keystore $out -storepass notsosecretpassword -noprompt
454329 '';
455330
456− # Both theme and theme type directories need to be actual
457− # directories in one hierarchy to pass Keycloak checks.
331+ # Both theme and theme type directories need to be actual directories in one hierarchy to pass Keycloak checks.
458332 themesBundle = pkgs.runCommand "keycloak-themes" { } ''
459333 linkTheme() {
460334 theme="$1"
@@ -473,7 +347,7 @@ in
473347 }
474348
475349 mkdir -p "$out"
476− for theme in ${keycloakBuild}/themes/*; do
350+ for theme in ${cfg.package}/themes/*; do
477351 if [ -d "$theme" ]; then
478352 linkTheme "$theme" "$(basename "$theme")"
479353 fi
@@ -482,25 +356,329 @@ in
482356 ${concatStringsSep "\n" (mapAttrsToList (name: theme: "linkTheme ${theme} ${escapeShellArg name}") cfg.themes)}
483357 '';
484358
485− keycloakConfig = lib.generators.toKeyValue {
486− mkKeyValue = lib.flip lib.generators.mkKeyValueDefault "=" {
487− mkValueString = v: with builtins;
488− if isInt v then toString v
489− else if isString v then v
490− else if true == v then "true"
491− else if false == v then "false"
492− else if isSecret v then hashString "sha256" v._secret
493− else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
494− };
495− };
359+ keycloakConfig' = foldl' recursiveUpdate
360+ {
361+ "interface=public".inet-address = cfg.bindAddress;
362+ "socket-binding-group=standard-sockets"."socket-binding=http".port = cfg.httpPort;
363+ "subsystem=keycloak-server" = {
364+ "spi=hostname"."provider=default" = {
365+ enabled = true;
366+ properties = {
367+ inherit (cfg) frontendUrl forceBackendUrlToFrontendUrl;
368+ };
369+ };
370+ "theme=defaults".dir = toString themesBundle;
371+ };
372+ "subsystem=datasources"."data-source=KeycloakDS" = {
373+ max-pool-size = "20";
374+ user-name = if databaseActuallyCreateLocally then "keycloak" else cfg.database.username;
375+ password = "@db-password@";
376+ };
377+ } [
378+ (optionalAttrs (cfg.database.type == "postgresql") {
379+ "subsystem=datasources" = {
380+ "jdbc-driver=postgresql" = {
381+ driver-module-name = "org.postgresql";
382+ driver-name = "postgresql";
383+ driver-xa-datasource-class-name = "org.postgresql.xa.PGXADataSource";
384+ };
385+ "data-source=KeycloakDS" = {
386+ connection-url = "jdbc:postgresql://${cfg.database.host}:${toString cfg.database.port}/keycloak";
387+ driver-name = "postgresql";
388+ "connection-properties=ssl".value = boolToString cfg.database.useSSL;
389+ } // (optionalAttrs (cfg.database.caCert != null) {
390+ "connection-properties=sslrootcert".value = cfg.database.caCert;
391+ "connection-properties=sslmode".value = "verify-ca";
392+ });
393+ };
394+ })
395+ (optionalAttrs (cfg.database.type == "mysql") {
396+ "subsystem=datasources" = {
397+ "jdbc-driver=mysql" = {
398+ driver-module-name = "com.mysql";
399+ driver-name = "mysql";
400+ driver-class-name = "com.mysql.jdbc.Driver";
401+ };
402+ "data-source=KeycloakDS" = {
403+ connection-url = "jdbc:mysql://${cfg.database.host}:${toString cfg.database.port}/keycloak";
404+ driver-name = "mysql";
405+ "connection-properties=useSSL".value = boolToString cfg.database.useSSL;
406+ "connection-properties=requireSSL".value = boolToString cfg.database.useSSL;
407+ "connection-properties=verifyServerCertificate".value = boolToString cfg.database.useSSL;
408+ "connection-properties=characterEncoding".value = "UTF-8";
409+ valid-connection-checker-class-name = "org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker";
410+ validate-on-match = true;
411+ exception-sorter-class-name = "org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter";
412+ } // (optionalAttrs (cfg.database.caCert != null) {
413+ "connection-properties=trustCertificateKeyStoreUrl".value = "file:${mySqlCaKeystore}";
414+ "connection-properties=trustCertificateKeyStorePassword".value = "notsosecretpassword";
415+ });
416+ };
417+ })
418+ (optionalAttrs (cfg.sslCertificate != null && cfg.sslCertificateKey != null) {
419+ "socket-binding-group=standard-sockets"."socket-binding=https".port = cfg.httpsPort;
420+ "subsystem=elytron" = mkOrder 900 {
421+ "key-store=httpsKS" = mkOrder 900 {
422+ path = "/run/keycloak/ssl/certificate_private_key_bundle.p12";
423+ credential-reference.clear-text = "notsosecretpassword";
424+ type = "JKS";
425+ };
426+ "key-manager=httpsKM" = mkOrder 901 {
427+ key-store = "httpsKS";
428+ credential-reference.clear-text = "notsosecretpassword";
429+ };
430+ "server-ssl-context=httpsSSC" = mkOrder 902 {
431+ key-manager = "httpsKM";
432+ };
433+ };
434+ "subsystem=undertow" = mkOrder 901 {
435+ "server=default-server"."https-listener=https".ssl-context = "httpsSSC";
436+ };
437+ })
438+ cfg.extraConfig
439+ ];
440+
441+
442+ /* Produces a JBoss CLI script that creates paths and sets
443+ attributes matching those described by `attrs`. When the
444+ script is run, the existing settings are effectively overlayed
445+ by those from `attrs`. Existing attributes can be unset by
446+ defining them `null`.
447+
448+ JBoss paths and attributes / maps are distinguished by their
449+ name, where paths follow a `key=value` scheme.
450+
451+ Example:
452+ mkJbossScript {
453+ "subsystem=keycloak-server"."spi=hostname" = {
454+ "provider=fixed" = null;
455+ "provider=default" = {
456+ enabled = true;
457+ properties = {
458+ inherit frontendUrl;
459+ forceBackendUrlToFrontendUrl = false;
460+ };
461+ };
462+ };
463+ }
464+ => ''
465+ if (outcome != success) of /:read-resource()
466+ /:add()
467+ end-if
468+ if (outcome != success) of /subsystem=keycloak-server:read-resource()
469+ /subsystem=keycloak-server:add()
470+ end-if
471+ if (outcome != success) of /subsystem=keycloak-server/spi=hostname:read-resource()
472+ /subsystem=keycloak-server/spi=hostname:add()
473+ end-if
474+ if (outcome != success) of /subsystem=keycloak-server/spi=hostname/provider=default:read-resource()
475+ /subsystem=keycloak-server/spi=hostname/provider=default:add(enabled = true, properties = { forceBackendUrlToFrontendUrl = false, frontendUrl = "https://keycloak.example.com/auth" })
476+ end-if
477+ if (result != true) of /subsystem=keycloak-server/spi=hostname/provider=default:read-attribute(name="enabled")
478+ /subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=enabled, value=true)
479+ end-if
480+ if (result != false) of /subsystem=keycloak-server/spi=hostname/provider=default:read-attribute(name="properties.forceBackendUrlToFrontendUrl")
481+ /subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=properties.forceBackendUrlToFrontendUrl, value=false)
482+ end-if
483+ if (result != "https://keycloak.example.com/auth") of /subsystem=keycloak-server/spi=hostname/provider=default:read-attribute(name="properties.frontendUrl")
484+ /subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=properties.frontendUrl, value="https://keycloak.example.com/auth")
485+ end-if
486+ if (outcome != success) of /subsystem=keycloak-server/spi=hostname/provider=fixed:read-resource()
487+ /subsystem=keycloak-server/spi=hostname/provider=fixed:remove()
488+ end-if
489+ ''
490+ */
491+ mkJbossScript = attrs:
492+ let
493+ /* From a JBoss path and an attrset, produces a JBoss CLI
494+ snippet that writes the corresponding attributes starting
495+ at `path`. Recurses down into subattrsets as necessary,
496+ producing the variable name from its full path in the
497+ attrset.
498+
499+ Example:
500+ writeAttributes "/subsystem=keycloak-server/spi=hostname/provider=default" {
501+ enabled = true;
502+ properties = {
503+ forceBackendUrlToFrontendUrl = false;
504+ frontendUrl = "https://keycloak.example.com/auth";
505+ };
506+ }
507+ => ''
508+ if (result != true) of /subsystem=keycloak-server/spi=hostname/provider=default:read-attribute(name="enabled")
509+ /subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=enabled, value=true)
510+ end-if
511+ if (result != false) of /subsystem=keycloak-server/spi=hostname/provider=default:read-attribute(name="properties.forceBackendUrlToFrontendUrl")
512+ /subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=properties.forceBackendUrlToFrontendUrl, value=false)
513+ end-if
514+ if (result != "https://keycloak.example.com/auth") of /subsystem=keycloak-server/spi=hostname/provider=default:read-attribute(name="properties.frontendUrl")
515+ /subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=properties.frontendUrl, value="https://keycloak.example.com/auth")
516+ end-if
517+ ''
518+ */
519+ writeAttributes = path: set:
520+ let
521+ # JBoss expressions like `${var}` need to be prefixed
522+ # with `expression` to evaluate.
523+ prefixExpression = string:
524+ let
525+ matchResult = match ''"\$\{.*}"'' string;
526+ in
527+ if matchResult != null then
528+ "expression " + string
529+ else
530+ string;
531+
532+ writeAttribute = attribute: value:
533+ let
534+ type = typeOf value;
535+ in
536+ if type == "set" then
537+ let
538+ names = attrNames value;
539+ in
540+ foldl' (text: name: text + (writeAttribute "${attribute}.${name}" value.${name})) "" names
541+ else if value == null then ''
542+ if (outcome == success) of ${path}:read-attribute(name="${attribute}")
543+ ${path}:undefine-attribute(name="${attribute}")
544+ end-if
545+ ''
546+ else if elem type [ "string" "path" "bool" ] then
547+ let
548+ value' = if type == "bool" then boolToString value else ''"${value}"'';
549+ in
550+ ''
551+ if (result != ${prefixExpression value'}) of ${path}:read-attribute(name="${attribute}")
552+ ${path}:write-attribute(name=${attribute}, value=${value'})
553+ end-if
554+ ''
555+ else throw "Unsupported type '${type}' for path '${path}'!";
556+ in
557+ concatStrings
558+ (mapAttrsToList
559+ (attribute: value: (writeAttribute attribute value))
560+ set);
561+
562+
563+ /* Produces an argument list for the JBoss `add()` function,
564+ which adds a JBoss path and takes as its arguments the
565+ required subpaths and attributes.
566+
567+ Example:
568+ makeArgList {
569+ enabled = true;
570+ properties = {
571+ forceBackendUrlToFrontendUrl = false;
572+ frontendUrl = "https://keycloak.example.com/auth";
573+ };
574+ }
575+ => ''
576+ enabled = true, properties = { forceBackendUrlToFrontendUrl = false, frontendUrl = "https://keycloak.example.com/auth" }
577+ ''
578+ */
579+ makeArgList = set:
580+ let
581+ makeArg = attribute: value:
582+ let
583+ type = typeOf value;
584+ in
585+ if type == "set" then
586+ "${attribute} = { " + (makeArgList value) + " }"
587+ else if elem type [ "string" "path" "bool" ] then
588+ "${attribute} = ${if type == "bool" then boolToString value else ''"${value}"''}"
589+ else if value == null then
590+ ""
591+ else
592+ throw "Unsupported type '${type}' for attribute '${attribute}'!";
593+
594+ in
595+ concatStringsSep ", " (mapAttrsToList makeArg set);
596+
597+
598+ /* Recurses into the `nodeValue` attrset. Only subattrsets that
599+ are JBoss paths, i.e. follows the `key=value` format, are recursed
600+ into - the rest are considered JBoss attributes / maps.
601+ */
602+ recurse = nodePath: nodeValue:
603+ let
604+ nodeContent =
605+ if isAttrs nodeValue && nodeValue._type or "" == "order" then
606+ nodeValue.content
607+ else
608+ nodeValue;
609+ isPath = name:
610+ let
611+ value = nodeContent.${name};
612+ in
613+ if (match ".*([=]).*" name) == [ "=" ] then
614+ if isAttrs value || value == null then
615+ true
616+ else
617+ throw "Parsing path '${concatStringsSep "." (nodePath ++ [ name ])}' failed: JBoss attributes cannot contain '='!"
618+ else
619+ false;
620+ jbossPath = "/" + concatStringsSep "/" nodePath;
621+ children = if !isAttrs nodeContent then { } else nodeContent;
622+ subPaths = filter isPath (attrNames children);
623+ getPriority = name:
624+ let
625+ value = children.${name};
626+ in
627+ if value._type or "" == "order" then value.priority else 1000;
628+ orderedSubPaths = sort (a: b: getPriority a < getPriority b) subPaths;
629+ jbossAttrs = filterAttrs (name: _: !(isPath name)) children;
630+ text =
631+ if nodeContent != null then
632+ ''
633+ if (outcome != success) of ${jbossPath}:read-resource()
634+ ${jbossPath}:add(${makeArgList jbossAttrs})
635+ end-if
636+ '' + writeAttributes jbossPath jbossAttrs
637+ else
638+ ''
639+ if (outcome == success) of ${jbossPath}:read-resource()
640+ ${jbossPath}:remove()
641+ end-if
642+ '';
643+ in
644+ text + concatMapStringsSep "\n" (name: recurse (nodePath ++ [ name ]) children.${name}) orderedSubPaths;
645+ in
646+ recurse [ ] attrs;
647+
648+ jbossCliScript = pkgs.writeText "jboss-cli-script" (mkJbossScript keycloakConfig');
649+
650+ keycloakConfig = pkgs.runCommand "keycloak-config"
651+ {
652+ nativeBuildInputs = [ cfg.package ];
653+ }
654+ ''
655+ export JBOSS_BASE_DIR="$(pwd -P)";
656+ export JBOSS_MODULEPATH="${cfg.package}/modules";
657+ export JBOSS_LOG_DIR="$JBOSS_BASE_DIR/log";
658+
659+ cp -r ${cfg.package}/standalone/configuration .
660+ chmod -R u+rwX ./configuration
661+
662+ mkdir -p {deployments,ssl}
663+
664+ standalone.sh&
665+
666+ attempt=1
667+ max_attempts=30
668+ while ! jboss-cli.sh --connect ':read-attribute(name=server-state)'; do
669+ if [[ "$attempt" == "$max_attempts" ]]; then
670+ echo "ERROR: Could not connect to Keycloak after $attempt attempts! Failing.." >&2
671+ exit 1
672+ fi
673+ echo "Keycloak not fully started yet, retrying.. ($attempt/$max_attempts)"
674+ sleep 1
675+ (( attempt++ ))
676+ done
496677
497− isSecret = v: isAttrs v && v ? _secret && isString v._secret;
498− filteredConfig = lib.converge (lib.filterAttrsRecursive (_: v: ! elem v [{ } null])) cfg.settings;
499− confFile = pkgs.writeText "keycloak.conf" (keycloakConfig filteredConfig);
500− keycloakBuild = cfg.package.override {
501− inherit confFile;
502− plugins = cfg.package.enabledPlugins ++ cfg.plugins;
503− };
678+ jboss-cli.sh --connect --file=${jbossCliScript} --echo-command
679+
680+ cp configuration/standalone.xml $out
681+ '';
504682 in
505683 mkIf cfg.enable
506684 {
@@ -511,46 +689,7 @@ in
511689 }
512690 ];
513691
514− environment.systemPackages = [ keycloakBuild ];
515−
516− services.keycloak.settings =
517− let
518− postgresParams = concatStringsSep "&" (
519− optionals cfg.database.useSSL [
520− "ssl=true"
521− ] ++ optionals (cfg.database.caCert != null) [
522− "sslrootcert=${cfg.database.caCert}"
523− "sslmode=verify-ca"
524− ]
525− );
526− mariadbParams = concatStringsSep "&" ([
527− "characterEncoding=UTF-8"
528− ] ++ optionals cfg.database.useSSL [
529− "useSSL=true"
530− "requireSSL=true"
531− "verifyServerCertificate=true"
532− ] ++ optionals (cfg.database.caCert != null) [
533− "trustCertificateKeyStoreUrl=file:${mySqlCaKeystore}"
534− "trustCertificateKeyStorePassword=notsosecretpassword"
535− ]);
536− dbProps = if cfg.database.type == "postgresql" then postgresParams else mariadbParams;
537− in
538− mkMerge [
539− {
540− db = if cfg.database.type == "postgresql" then "postgres" else cfg.database.type;
541− db-username = if databaseActuallyCreateLocally then "keycloak" else cfg.database.username;
542− db-password._secret = cfg.database.passwordFile;
543− db-url-host = cfg.database.host;
544− db-url-port = toString cfg.database.port;
545− db-url-database = if databaseActuallyCreateLocally then "keycloak" else cfg.database.name;
546− db-url-properties = prefixUnlessEmpty "?" dbProps;
547− db-url = null;
548− }
549− (mkIf (cfg.sslCertificate != null && cfg.sslCertificateKey != null) {
550− https-certificate-file = "/run/keycloak/ssl/ssl_cert";
551− https-certificate-key-file = "/run/keycloak/ssl/ssl_key";
552− })
553− ];
692+ environment.systemPackages = [ cfg.package ];
554693
555694 systemd.services.keycloakPostgreSQLInit = mkIf createLocalPostgreSQL {
556695 after = [ "postgresql.service" ];
@@ -613,37 +752,41 @@ in
613752 "mysql.service"
614753 ]
615754 else [ ];
616− secretPaths = catAttrs "_secret" (collect isSecret cfg.settings);
617− mkSecretReplacement = file: ''
618− replace-secret ${hashString "sha256" file} $CREDENTIALS_DIRECTORY/${baseNameOf file} /run/keycloak/conf/keycloak.conf
619− '';
620− secretReplacements = lib.concatMapStrings mkSecretReplacement secretPaths;
621755 in
622756 {
623757 after = databaseServices;
624758 bindsTo = databaseServices;
625759 wantedBy = [ "multi-user.target" ];
626760 path = with pkgs; [
627− keycloakBuild
761+ cfg.package
628762 openssl
629763 replace-secret
630764 ];
631765 environment = {
632− KC_HOME_DIR = "/run/keycloak";
633− KC_CONF_DIR = "/run/keycloak/conf";
766+ JBOSS_LOG_DIR = "/var/log/keycloak";
767+ JBOSS_BASE_DIR = "/run/keycloak";
768+ JBOSS_MODULEPATH = "${cfg.package}/modules";
634769 };
635770 serviceConfig = {
636− LoadCredential =
637− map (p: "${baseNameOf p}:${p}") secretPaths
638− ++ optionals (cfg.sslCertificate != null && cfg.sslCertificateKey != null) [
639− "ssl_cert:${cfg.sslCertificate}"
640− "ssl_key:${cfg.sslCertificateKey}"
641− ];
771+ LoadCredential = [
772+ "db_password:${cfg.database.passwordFile}"
773+ ] ++ optionals (cfg.sslCertificate != null && cfg.sslCertificateKey != null) [
774+ "ssl_cert:${cfg.sslCertificate}"
775+ "ssl_key:${cfg.sslCertificateKey}"
776+ ];
642777 User = "keycloak";
643778 Group = "keycloak";
644779 DynamicUser = true;
645− RuntimeDirectory = "keycloak";
780+ RuntimeDirectory = map (p: "keycloak/" + p) [
781+ "configuration"
782+ "deployments"
783+ "data"
784+ "ssl"
785+ "log"
786+ "tmp"
787+ ];
646788 RuntimeDirectoryMode = 0700;
789+ LogsDirectory = "keycloak";
647790 AmbientCapabilities = "CAP_NET_BIND_SERVICE";
648791 };
649792 script = ''
@@ -652,30 +795,41 @@ in
652795
653796 umask u=rwx,g=,o=
654797
655− ln -s ${themesBundle} /run/keycloak/themes
656− ln -s ${keycloakBuild}/providers /run/keycloak/
657−
658− install -D -m 0600 ${confFile} /run/keycloak/conf/keycloak.conf
659−
660− ${secretReplacements}
661−
662− '' + optionalString (cfg.sslCertificate != null && cfg.sslCertificateKey != null) ''
663− mkdir -p /run/keycloak/ssl
664− cp $CREDENTIALS_DIRECTORY/ssl_{cert,key} /run/keycloak/ssl/
798+ install_plugin() {
799+ if [ -d "$1" ]; then
800+ find "$1" -type f \( -iname \*.ear -o -iname \*.jar \) -exec install -m 0500 -o keycloak -g keycloak "{}" "/run/keycloak/deployments/" \;
801+ else
802+ install -m 0500 -o keycloak -g keycloak "$1" "/run/keycloak/deployments/"
803+ fi
804+ }
805+
806+ install -m 0600 ${cfg.package}/standalone/configuration/*.properties /run/keycloak/configuration
807+ install -T -m 0600 ${keycloakConfig} /run/keycloak/configuration/standalone.xml
808+
809+ replace-secret '@db-password@' "$CREDENTIALS_DIRECTORY/db_password" /run/keycloak/configuration/standalone.xml
810+
811+ export JAVA_OPTS=-Djboss.server.config.user.dir=/run/keycloak/configuration
812+ add-user-keycloak.sh -u admin -p '${cfg.initialAdminPassword}'
813+ ''
814+ + lib.optionalString (cfg.plugins != []) (lib.concatStringsSep "\n" (map (pl: "install_plugin ${lib.escapeShellArg pl}") cfg.plugins)) + "\n"
815+ + optionalString (cfg.sslCertificate != null && cfg.sslCertificateKey != null) ''
816+ pushd /run/keycloak/ssl/
817+ cat "$CREDENTIALS_DIRECTORY/ssl_cert" <(echo) \
818+ "$CREDENTIALS_DIRECTORY/ssl_key" <(echo) \
819+ /etc/ssl/certs/ca-certificates.crt \
820+ > allcerts.pem
821+ openssl pkcs12 -export -in "$CREDENTIALS_DIRECTORY/ssl_cert" -inkey "$CREDENTIALS_DIRECTORY/ssl_key" -chain \
822+ -name "${cfg.frontendUrl}" -out certificate_private_key_bundle.p12 \
823+ -CAfile allcerts.pem -passout pass:notsosecretpassword
824+ popd
665825 '' + ''
666− export KEYCLOAK_ADMIN=admin
667− export KEYCLOAK_ADMIN_PASSWORD=${cfg.initialAdminPassword}
668− kc.sh start
826+ ${cfg.package}/bin/standalone.sh
669827 '';
670828 };
671829
672830 services.postgresql.enable = mkDefault createLocalPostgreSQL;
673831 services.mysql.enable = mkDefault createLocalMySQL;
674− services.mysql.package =
675− let
676− dbPkg = if cfg.database.type == "mariadb" then pkgs.mariadb else pkgs.mysql80;
677− in
678− mkIf createLocalMySQL (mkDefault dbPkg);
832+ services.mysql.package = mkIf createLocalMySQL pkgs.mariadb;
679833 };
680834
681835 meta.doc = ./keycloak.xml;
nixos/modules/services/web-apps/keycloak.xml+81−61
@@ -27,10 +27,10 @@
2727
2828 <para>
2929 Refer to the <link
30− xlink:href="https://www.keycloak.org/docs/latest/server_admin/index.html">
31− Keycloak Server Administration Guide</link> for information on
32− how to administer your <productname>Keycloak</productname>
33− instance.
30+ xlink:href="https://www.keycloak.org/docs/latest/server_admin/index.html#admin-console">Admin
31+ Console section of the Keycloak Server Administration Guide</link> for
32+ information on how to administer your
33+ <productname>Keycloak</productname> instance.
3434 </para>
3535 </section>
3636
@@ -38,28 +38,27 @@
3838 <title>Database access</title>
3939 <para>
4040 <productname>Keycloak</productname> can be used with either
41− <productname>PostgreSQL</productname>,
42− <productname>MariaDB</productname> or
41+ <productname>PostgreSQL</productname> or
4342 <productname>MySQL</productname>. Which one is used can be
4443 configured in <xref
4544 linkend="opt-services.keycloak.database.type" />. The selected
4645 database will automatically be enabled and a database and role
4746 created unless <xref
48− linkend="opt-services.keycloak.database.host" /> is changed
49− from its default of <literal>localhost</literal> or <xref
50− linkend="opt-services.keycloak.database.createLocally" /> is
51− set to <literal>false</literal>.
47+ linkend="opt-services.keycloak.database.host" /> is changed from
48+ its default of <literal>localhost</literal> or <xref
49+ linkend="opt-services.keycloak.database.createLocally" /> is set
50+ to <literal>false</literal>.
5251 </para>
5352
5453 <para>
5554 External database access can also be configured by setting
5655 <xref linkend="opt-services.keycloak.database.host" />, <xref
57− linkend="opt-services.keycloak.database.name" />, <xref
5856 linkend="opt-services.keycloak.database.username" />, <xref
5957 linkend="opt-services.keycloak.database.useSSL" /> and <xref
6058 linkend="opt-services.keycloak.database.caCert" /> as
61− appropriate. Note that you need to manually create the database
62− and allow the configured database user full access to it.
59+ appropriate. Note that you need to manually create a database
60+ called <literal>keycloak</literal> and allow the configured
61+ database user full access to it.
6362 </para>
6463
6564 <para>
@@ -80,27 +79,22 @@
8079 </warning>
8180 </section>
8281
83− <section xml:id="module-services-keycloak-hostname">
84− <title>Hostname</title>
82+ <section xml:id="module-services-keycloak-frontendurl">
83+ <title>Frontend URL</title>
8584 <para>
86− The hostname is used to build the public URL used as base for
87− all frontend requests and must be configured through <xref
88− linkend="opt-services.keycloak.settings.hostname" />.
85+ The frontend URL is used as base for all frontend requests and
86+ must be configured through <xref linkend="opt-services.keycloak.frontendUrl" />.
87+ It should normally include a trailing <literal>/auth</literal>
88+ (the default web context). If you use a reverse proxy, you need
89+ to set this option to <literal>""</literal>, so that frontend URL
90+ is derived from HTTP headers. <literal>X-Forwarded-*</literal> headers
91+ support also should be enabled, using <link
92+ xlink:href="https://www.keycloak.org/docs/latest/server_installation/index.html#identifying-client-ip-addresses">
93+ respective guidelines</link>.
8994 </para>
9095
91− <note>
92− <para>
93− If you're migrating an old Wildfly based Keycloak instance
94− and want to keep compatibility with your current clients,
95− you'll likely want to set <xref
96− linkend="opt-services.keycloak.settings.http-relative-path"
97− /> to <literal>/auth</literal>. See the option description
98− for more details.
99− </para>
100− </note>
101−
10296 <para>
103− <xref linkend="opt-services.keycloak.settings.hostname-strict-backchannel" />
97+ <xref linkend="opt-services.keycloak.forceBackendUrlToFrontendUrl" />
10498 determines whether Keycloak should force all requests to go
10599 through the frontend URL. By default,
106100 <productname>Keycloak</productname> allows backend requests to
@@ -110,10 +104,10 @@
110104 </para>
111105
112106 <para>
113− For more information on hostname configuration, see the <link
114− xlink:href="https://www.keycloak.org/server/hostname">Hostname
115− section of the Keycloak Server Installation and Configuration
116− Guide</link>.
107+ See the <link
108+ xlink:href="https://www.keycloak.org/docs/latest/server_installation/#_hostname">Hostname
109+ section of the Keycloak Server Installation and Configuration
110+ Guide</link> for more information.
117111 </para>
118112 </section>
119113
@@ -145,39 +139,67 @@
145139 <section xml:id="module-services-keycloak-themes">
146140 <title>Themes</title>
147141 <para>
148− You can package custom themes and make them visible to
149− Keycloak through <xref linkend="opt-services.keycloak.themes"
150− />. See the <link
151− xlink:href="https://www.keycloak.org/docs/latest/server_development/#_themes">
142+ You can package custom themes and make them visible to Keycloak via
143+ <xref linkend="opt-services.keycloak.themes" />
144+ option. See the <link xlink:href="https://www.keycloak.org/docs/latest/server_development/#_themes">
152145 Themes section of the Keycloak Server Development Guide</link>
153− and the description of the aforementioned NixOS option for
154− more information.
146+ and respective NixOS option description for more information.
155147 </para>
156148 </section>
157149
158− <section xml:id="module-services-keycloak-settings">
159− <title>Configuration file settings</title>
150+ <section xml:id="module-services-keycloak-extra-config">
151+ <title>Additional configuration</title>
160152 <para>
161− Keycloak server configuration parameters can be set in <xref
162− linkend="opt-services.keycloak.settings" />. These correspond
163− directly to options in
164− <filename>conf/keycloak.conf</filename>. Some of the most
165− important parameters are documented as suboptions, the rest can
166− be found in the <link
167− xlink:href="https://www.keycloak.org/server/all-config">All
168− configuration section of the Keycloak Server Installation and
169− Configuration Guide</link>.
153+ Additional Keycloak configuration options, for which no
154+ explicit <productname>NixOS</productname> options are provided,
155+ can be set in <xref linkend="opt-services.keycloak.extraConfig" />.
170156 </para>
171157
172158 <para>
173− Options containing secret data should be set to an attribute
174− set containing the attribute <literal>_secret</literal> - a
175− string pointing to a file containing the value the option
176− should be set to. See the description of <xref
177− linkend="opt-services.keycloak.settings" /> for an example.
159+ Options are expressed as a Nix attribute set which matches the
160+ structure of the jboss-cli configuration. The configuration is
161+ effectively overlayed on top of the default configuration
162+ shipped with Keycloak. To remove existing nodes and undefine
163+ attributes from the default configuration, set them to
164+ <literal>null</literal>.
178165 </para>
179− </section>
166+ <para>
167+ For example, the following script, which removes the hostname
168+ provider <literal>default</literal>, adds the deprecated
169+ hostname provider <literal>fixed</literal> and defines it the
170+ default:
171+
172+<programlisting>
173+/subsystem=keycloak-server/spi=hostname/provider=default:remove()
174+/subsystem=keycloak-server/spi=hostname/provider=fixed:add(enabled = true, properties = { hostname = "keycloak.example.com" })
175+/subsystem=keycloak-server/spi=hostname:write-attribute(name=default-provider, value="fixed")
176+</programlisting>
177+
178+ would be expressed as
180179
180+<programlisting>
181+services.keycloak.extraConfig = {
182+ "subsystem=keycloak-server" = {
183+ "spi=hostname" = {
184+ "provider=default" = null;
185+ "provider=fixed" = {
186+ enabled = true;
187+ properties.hostname = "keycloak.example.com";
188+ };
189+ default-provider = "fixed";
190+ };
191+ };
192+};
193+</programlisting>
194+ </para>
195+ <para>
196+ You can discover available options by using the <link
197+ xlink:href="http://docs.wildfly.org/21/Admin_Guide.html#Command_Line_Interface">jboss-cli.sh</link>
198+ program and by referring to the <link
199+ xlink:href="https://www.keycloak.org/docs/latest/server_installation/index.html">Keycloak
200+ Server Installation and Configuration Guide</link>.
201+ </para>
202+ </section>
181203
182204 <section xml:id="module-services-keycloak-example-config">
183205 <title>Example configuration</title>
@@ -186,11 +208,9 @@
186208<programlisting>
187209services.keycloak = {
188210 <link linkend="opt-services.keycloak.enable">enable</link> = true;
189− settings = {
190− <link linkend="opt-services.keycloak.settings.hostname">hostname</link> = "keycloak.example.com";
191− <link linkend="opt-services.keycloak.settings.hostname-strict-backchannel">hostname-strict-backchannel</link> = true;
192− };
193211 <link linkend="opt-services.keycloak.initialAdminPassword">initialAdminPassword</link> = "e6Wcm0RrtegMEHl"; # change on first login
212+ <link linkend="opt-services.keycloak.frontendUrl">frontendUrl</link> = "https://keycloak.example.com/auth";
213+ <link linkend="opt-services.keycloak.forceBackendUrlToFrontendUrl">forceBackendUrlToFrontendUrl</link> = true;
194214 <link linkend="opt-services.keycloak.sslCertificate">sslCertificate</link> = "/run/keys/ssl_cert";
195215 <link linkend="opt-services.keycloak.sslCertificateKey">sslCertificateKey</link> = "/run/keys/ssl_key";
196216 <link linkend="opt-services.keycloak.database.passwordFile">database.passwordFile</link> = "/run/keys/db_password";
nixos/modules/services/web-apps/nextcloud.nix−75
@@ -251,23 +251,6 @@ in {
251251 '';
252252 };
253253
254− database = {
255−
256− createLocally = mkOption {
257− type = types.bool;
258− default = false;
259− description = ''
260− Create the database and database user locally. Only available for
261− mysql database.
262− Note that this option will use the latest version of MariaDB which
263− is not officially supported by Nextcloud. As for now a workaround
264− is used to also support MariaDB version >= 10.6.
265− '';
266− };
267−
268− };
269−
270−
271254 config = {
272255 dbtype = mkOption {
273256 type = types.enum [ "sqlite" "pgsql" "mysql" ];
@@ -522,29 +505,6 @@ in {
522505 The nextcloud-occ program preconfigured to target this Nextcloud instance.
523506 '';
524507 };
525− globalProfiles = mkEnableOption "global profiles" // {
526− description = ''
527− Makes user-profiles globally available under <literal>nextcloud.tld/u/user.name</literal>.
528− Even though it's enabled by default in Nextcloud, it must be explicitly enabled
529− here because it has the side-effect that personal information is even accessible to
530− unauthenticated users by default.
531−
532− By default, the following properties are set to <quote>Show to everyone</quote>
533− if this flag is enabled:
534− <itemizedlist>
535− <listitem><para>About</para></listitem>
536− <listitem><para>Full name</para></listitem>
537− <listitem><para>Headline</para></listitem>
538− <listitem><para>Organisation</para></listitem>
539− <listitem><para>Profile picture</para></listitem>
540− <listitem><para>Role</para></listitem>
541− <listitem><para>Twitter</para></listitem>
542− <listitem><para>Website</para></listitem>
543− </itemizedlist>
544−
545− Only has an effect in Nextcloud 23 and later.
546− '';
547− };
548508
549509 nginx.recommendedHttpHeaders = mkOption {
550510 type = types.bool;
@@ -623,12 +583,6 @@ in {
623583 else pkgs.php80;
624584 }
625585
626− { assertions = [
627− { assertion = cfg.database.createLocally -> cfg.config.dbtype == "mysql";
628− message = ''services.nextcloud.config.dbtype must be set to mysql if services.nextcloud.database.createLocally is set to true.'';
629− }
630− ]; }
631−
632586 { systemd.timers.nextcloud-cron = {
633587 wantedBy = [ "timers.target" ];
634588 timerConfig.OnBootSec = "5m";
@@ -673,8 +627,6 @@ in {
673627 if x == null then "false"
674628 else boolToString x;
675629
676− nextcloudGreaterOrEqualThan = req: versionAtLeast cfg.package.version req;
677−
678630 overrideConfig = pkgs.writeText "nextcloud-config.php" ''
679631 <?php
680632 ${optionalString requiresReadSecretFunction ''
@@ -714,7 +666,6 @@ in {
714666 'trusted_domains' => ${writePhpArrary ([ cfg.hostName ] ++ c.extraTrustedDomains)},
715667 'trusted_proxies' => ${writePhpArrary (c.trustedProxies)},
716668 ${optionalString (c.defaultPhoneRegion != null) "'default_phone_region' => '${c.defaultPhoneRegion}',"}
717− ${optionalString (nextcloudGreaterOrEqualThan "23") "'profile.enabled' => ${boolToString cfg.globalProfiles}"}
718669 ${objectstoreConfig}
719670 ];
720671 '';
@@ -860,32 +811,6 @@ in {
860811
861812 environment.systemPackages = [ occ ];
862813
863− services.mysql = lib.mkIf cfg.database.createLocally {
864− enable = true;
865− package = lib.mkDefault pkgs.mariadb;
866− ensureDatabases = [ cfg.config.dbname ];
867− ensureUsers = [{
868− name = cfg.config.dbuser;
869− ensurePermissions = { "${cfg.config.dbname}.*" = "ALL PRIVILEGES"; };
870− }];
871− # FIXME(@Ma27) Nextcloud isn't compatible with mariadb 10.6,
872− # this is a workaround.
873− # See https://help.nextcloud.com/t/update-to-next-cloud-21-0-2-has-get-an-error/117028/22
874− settings = {
875− mysqld = {
876− innodb_read_only_compressed = 0;
877− };
878− };
879− initialScript = pkgs.writeText "mysql-init" ''
880− CREATE USER '${cfg.config.dbname}'@'localhost' IDENTIFIED BY '${builtins.readFile( cfg.config.dbpassFile )}';
881− CREATE DATABASE IF NOT EXISTS ${cfg.config.dbname};
882− GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
883− CREATE TEMPORARY TABLES ON ${cfg.config.dbname}.* TO '${cfg.config.dbuser}'@'localhost'
884− IDENTIFIED BY '${builtins.readFile( cfg.config.dbpassFile )}';
885− FLUSH privileges;
886− '';
887− };
888−
889814 services.nginx.enable = mkDefault true;
890815
891816 services.nginx.virtualHosts.${cfg.hostName} = {
nixos/modules/services/web-apps/nifi.nixdeleted−318
@@ -1,318 +0,0 @@
1−{ lib, pkgs, config, options, ... }:
2−
3−let
4− cfg = config.services.nifi;
5− opt = options.services.nifi;
6−
7− env = {
8− NIFI_OVERRIDE_NIFIENV = "true";
9− NIFI_HOME = "/var/lib/nifi";
10− NIFI_PID_DIR = "/run/nifi";
11− NIFI_LOG_DIR = "/var/log/nifi";
12− };
13−
14− envFile = pkgs.writeText "nifi.env" (lib.concatMapStrings (s: s + "\n") (
15− (lib.concatLists (lib.mapAttrsToList (name: value:
16− if value != null then [
17− "${name}=\"${toString value}\""
18− ] else []
19− ) env))));
20−
21− nifiEnv = pkgs.writeShellScriptBin "nifi-env" ''
22− set -a
23− source "${envFile}"
24− eval -- "\$@"
25− '';
26−
27−in {
28− options = {
29− services.nifi = {
30− enable = lib.mkEnableOption "Apache NiFi";
31−
32− package = lib.mkOption {
33− type = lib.types.package;
34− default = pkgs.nifi;
35− defaultText = lib.literalExpression "pkgs.nifi";
36− description = "Apache NiFi package to use.";
37− };
38−
39− user = lib.mkOption {
40− type = lib.types.str;
41− default = "nifi";
42− description = "User account where Apache NiFi runs.";
43− };
44−
45− group = lib.mkOption {
46− type = lib.types.str;
47− default = "nifi";
48− description = "Group account where Apache NiFi runs.";
49− };
50−
51− enableHTTPS = lib.mkOption {
52− type = lib.types.bool;
53− default = true;
54− description = "Enable HTTPS protocol. Don`t use in production.";
55− };
56−
57− listenHost = lib.mkOption {
58− type = lib.types.str;
59− default = if cfg.enableHTTPS then "0.0.0.0" else "127.0.0.1";
60− defaultText = lib.literalExpression ''
61− if config.${opt.enableHTTPS}
62− then "0.0.0.0"
63− else "127.0.0.1"
64− '';
65− description = "Bind to an ip for Apache NiFi web-ui.";
66− };
67−
68− listenPort = lib.mkOption {
69− type = lib.types.int;
70− default = if cfg.enableHTTPS then 8443 else 8080;
71− defaultText = lib.literalExpression ''
72− if config.${opt.enableHTTPS}
73− then "8443"
74− else "8000"
75− '';
76− description = "Bind to a port for Apache NiFi web-ui.";
77− };
78−
79− proxyHost = lib.mkOption {
80− type = lib.types.nullOr lib.types.str;
81− default = if cfg.enableHTTPS then "0.0.0.0" else null;
82− defaultText = lib.literalExpression ''
83− if config.${opt.enableHTTPS}
84− then "0.0.0.0"
85− else null
86− '';
87− description = "Allow requests from a specific host.";
88− };
89−
90− proxyPort = lib.mkOption {
91− type = lib.types.nullOr lib.types.int;
92− default = if cfg.enableHTTPS then 8443 else null;
93− defaultText = lib.literalExpression ''
94− if config.${opt.enableHTTPS}
95− then "8443"
96− else null
97− '';
98− description = "Allow requests from a specific port.";
99− };
100−
101− initUser = lib.mkOption {
102− type = lib.types.nullOr lib.types.str;
103− default = null;
104− description = "Initial user account for Apache NiFi. Username must be at least 4 characters.";
105− };
106−
107− initPasswordFile = lib.mkOption {
108− type = lib.types.nullOr lib.types.path;
109− default = null;
110− example = "/run/keys/nifi/password-nifi";
111− description = "nitial password for Apache NiFi. Password must be at least 12 characters.";
112− };
113−
114− initJavaHeapSize = lib.mkOption {
115− type = lib.types.nullOr lib.types.int;
116− default = null;
117− example = 1024;
118− description = "Set the initial heap size for the JVM in MB.";
119− };
120−
121− maxJavaHeapSize = lib.mkOption {
122− type = lib.types.nullOr lib.types.int;
123− default = null;
124− example = 2048;
125− description = "Set the initial heap size for the JVM in MB.";
126− };
127− };
128− };
129−
130− config = lib.mkIf cfg.enable {
131− assertions = [
132− { assertion = cfg.initUser!=null || cfg.initPasswordFile==null;
133− message = ''
134− <option>services.nifi.initUser</option> needs to be set if <option>services.nifi.initPasswordFile</option> enabled.
135− '';
136− }
137− { assertion = cfg.initUser==null || cfg.initPasswordFile!=null;
138− message = ''
139− <option>services.nifi.initPasswordFile</option> needs to be set if <option>services.nifi.initUser</option> enabled.
140− '';
141− }
142− { assertion = cfg.proxyHost==null || cfg.proxyPort!=null;
143− message = ''
144− <option>services.nifi.proxyPort</option> needs to be set if <option>services.nifi.proxyHost</option> value specified.
145− '';
146− }
147− { assertion = cfg.proxyHost!=null || cfg.proxyPort==null;
148− message = ''
149− <option>services.nifi.proxyHost</option> needs to be set if <option>services.nifi.proxyPort</option> value specified.
150− '';
151− }
152− { assertion = cfg.initJavaHeapSize==null || cfg.maxJavaHeapSize!=null;
153− message = ''
154− <option>services.nifi.maxJavaHeapSize</option> needs to be set if <option>services.nifi.initJavaHeapSize</option> value specified.
155− '';
156− }
157− { assertion = cfg.initJavaHeapSize!=null || cfg.maxJavaHeapSize==null;
158− message = ''
159− <option>services.nifi.initJavaHeapSize</option> needs to be set if <option>services.nifi.maxJavaHeapSize</option> value specified.
160− '';
161− }
162− ];
163−
164− warnings = lib.optional (cfg.enableHTTPS==false) ''
165− Please do not disable HTTPS mode in production. In this mode, access to the nifi is opened without authentication.
166− '';
167−
168− systemd.tmpfiles.rules = [
169− "d '/var/lib/nifi/conf' 0750 ${cfg.user} ${cfg.group}"
170− "L+ '/var/lib/nifi/lib' - - - - ${cfg.package}/lib"
171− ];
172−
173−
174− systemd.services.nifi = {
175− description = "Apache NiFi";
176− after = [ "network.target" ];
177− wantedBy = [ "multi-user.target" ];
178−
179− environment = env;
180− path = [ pkgs.gawk ];
181−
182− serviceConfig = {
183− Type = "forking";
184− PIDFile = "/run/nifi/nifi.pid";
185− ExecStartPre = pkgs.writeScript "nifi-pre-start.sh" ''
186− #!/bin/sh
187− umask 077
188− test -f '/var/lib/nifi/conf/authorizers.xml' || (cp '${cfg.package}/share/nifi/conf/authorizers.xml' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/authorizers.xml')
189− test -f '/var/lib/nifi/conf/bootstrap.conf' || (cp '${cfg.package}/share/nifi/conf/bootstrap.conf' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/bootstrap.conf')
190− test -f '/var/lib/nifi/conf/bootstrap-hashicorp-vault.conf' || (cp '${cfg.package}/share/nifi/conf/bootstrap-hashicorp-vault.conf' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/bootstrap-hashicorp-vault.conf')
191− test -f '/var/lib/nifi/conf/bootstrap-notification-services.xml' || (cp '${cfg.package}/share/nifi/conf/bootstrap-notification-services.xml' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/bootstrap-notification-services.xml')
192− test -f '/var/lib/nifi/conf/logback.xml' || (cp '${cfg.package}/share/nifi/conf/logback.xml' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/logback.xml')
193− test -f '/var/lib/nifi/conf/login-identity-providers.xml' || (cp '${cfg.package}/share/nifi/conf/login-identity-providers.xml' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/login-identity-providers.xml')
194− test -f '/var/lib/nifi/conf/nifi.properties' || (cp '${cfg.package}/share/nifi/conf/nifi.properties' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/nifi.properties')
195− test -f '/var/lib/nifi/conf/stateless-logback.xml' || (cp '${cfg.package}/share/nifi/conf/stateless-logback.xml' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/stateless-logback.xml')
196− test -f '/var/lib/nifi/conf/stateless.properties' || (cp '${cfg.package}/share/nifi/conf/stateless.properties' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/stateless.properties')
197− test -f '/var/lib/nifi/conf/state-management.xml' || (cp '${cfg.package}/share/nifi/conf/state-management.xml' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/state-management.xml')
198− test -f '/var/lib/nifi/conf/zookeeper.properties' || (cp '${cfg.package}/share/nifi/conf/zookeeper.properties' '/var/lib/nifi/conf/' && chmod 0640 '/var/lib/nifi/conf/zookeeper.properties')
199− test -d '/var/lib/nifi/docs/html' || (mkdir -p /var/lib/nifi/docs && cp -r '${cfg.package}/share/nifi/docs/html' '/var/lib/nifi/docs/html')
200− ${lib.optionalString ((cfg.initUser != null) && (cfg.initPasswordFile != null)) ''
201− awk -F'[<|>]' '/property name="Username"/ {if ($3!="") f=1} END{exit !f}' /var/lib/nifi/conf/login-identity-providers.xml || ${cfg.package}/bin/nifi.sh set-single-user-credentials ${cfg.initUser} $(cat ${cfg.initPasswordFile})
202− ''}
203− ${lib.optionalString (cfg.enableHTTPS == false) ''
204− sed -i /var/lib/nifi/conf/nifi.properties \
205− -e 's|nifi.remote.input.secure=.*|nifi.remote.input.secure=false|g' \
206− -e 's|nifi.web.http.host=.*|nifi.web.http.host=${cfg.listenHost}|g' \
207− -e 's|nifi.web.http.port=.*|nifi.web.http.port=${(toString cfg.listenPort)}|g' \
208− -e 's|nifi.web.https.host=.*|nifi.web.https.host=|g' \
209− -e 's|nifi.web.https.port=.*|nifi.web.https.port=|g' \
210− -e 's|nifi.security.keystore=.*|nifi.security.keystore=|g' \
211− -e 's|nifi.security.keystoreType=.*|nifi.security.keystoreType=|g' \
212− -e 's|nifi.security.truststore=.*|nifi.security.truststore=|g' \
213− -e 's|nifi.security.truststoreType=.*|nifi.security.truststoreType=|g' \
214− -e '/nifi.security.keystorePasswd/s|^|#|' \
215− -e '/nifi.security.keyPasswd/s|^|#|' \
216− -e '/nifi.security.truststorePasswd/s|^|#|'
217− ''}
218− ${lib.optionalString (cfg.enableHTTPS == true) ''
219− sed -i /var/lib/nifi/conf/nifi.properties \
220− -e 's|nifi.remote.input.secure=.*|nifi.remote.input.secure=true|g' \
221− -e 's|nifi.web.http.host=.*|nifi.web.http.host=|g' \
222− -e 's|nifi.web.http.port=.*|nifi.web.http.port=|g' \
223− -e 's|nifi.web.https.host=.*|nifi.web.https.host=${cfg.listenHost}|g' \
224− -e 's|nifi.web.https.port=.*|nifi.web.https.port=${(toString cfg.listenPort)}|g' \
225− -e 's|nifi.security.keystore=.*|nifi.security.keystore=./conf/keystore.p12|g' \
226− -e 's|nifi.security.keystoreType=.*|nifi.security.keystoreType=PKCS12|g' \
227− -e 's|nifi.security.truststore=.*|nifi.security.truststore=./conf/truststore.p12|g' \
228− -e 's|nifi.security.truststoreType=.*|nifi.security.truststoreType=PKCS12|g' \
229− -e '/nifi.security.keystorePasswd/s|^#\+||' \
230− -e '/nifi.security.keyPasswd/s|^#\+||' \
231− -e '/nifi.security.truststorePasswd/s|^#\+||'
232− ''}
233− ${lib.optionalString ((cfg.enableHTTPS == true) && (cfg.proxyHost != null) && (cfg.proxyPort != null)) ''
234− sed -i /var/lib/nifi/conf/nifi.properties \
235− -e 's|nifi.web.proxy.host=.*|nifi.web.proxy.host=${cfg.proxyHost}:${(toString cfg.proxyPort)}|g'
236− ''}
237− ${lib.optionalString ((cfg.enableHTTPS == false) || (cfg.proxyHost == null) && (cfg.proxyPort == null)) ''
238− sed -i /var/lib/nifi/conf/nifi.properties \
239− -e 's|nifi.web.proxy.host=.*|nifi.web.proxy.host=|g'
240− ''}
241− ${lib.optionalString ((cfg.initJavaHeapSize != null) && (cfg.maxJavaHeapSize != null))''
242− sed -i /var/lib/nifi/conf/bootstrap.conf \
243− -e 's|java.arg.2=.*|java.arg.2=-Xms${(toString cfg.initJavaHeapSize)}m|g' \
244− -e 's|java.arg.3=.*|java.arg.3=-Xmx${(toString cfg.maxJavaHeapSize)}m|g'
245− ''}
246− ${lib.optionalString ((cfg.initJavaHeapSize == null) && (cfg.maxJavaHeapSize == null))''
247− sed -i /var/lib/nifi/conf/bootstrap.conf \
248− -e 's|java.arg.2=.*|java.arg.2=-Xms512m|g' \
249− -e 's|java.arg.3=.*|java.arg.3=-Xmx512m|g'
250− ''}
251− '';
252− ExecStart = "${cfg.package}/bin/nifi.sh start";
253− ExecStop = "${cfg.package}/bin/nifi.sh stop";
254− # User and group
255− User = cfg.user;
256− Group = cfg.group;
257− # Runtime directory and mode
258− RuntimeDirectory = "nifi";
259− RuntimeDirectoryMode = "0750";
260− # State directory and mode
261− StateDirectory = "nifi";
262− StateDirectoryMode = "0750";
263− # Logs directory and mode
264− LogsDirectory = "nifi";
265− LogsDirectoryMode = "0750";
266− # Proc filesystem
267− ProcSubset = "pid";
268− ProtectProc = "invisible";
269− # Access write directories
270− ReadWritePaths = [ cfg.initPasswordFile ];
271− UMask = "0027";
272− # Capabilities
273− CapabilityBoundingSet = "";
274− # Security
275− NoNewPrivileges = true;
276− # Sandboxing
277− ProtectSystem = "strict";
278− ProtectHome = true;
279− PrivateTmp = true;
280− PrivateDevices = true;
281− PrivateIPC = true;
282− PrivateUsers = true;
283− ProtectHostname = true;
284− ProtectClock = true;
285− ProtectKernelTunables = true;
286− ProtectKernelModules = true;
287− ProtectKernelLogs = true;
288− ProtectControlGroups = true;
289− RestrictAddressFamilies = [ "AF_INET AF_INET6" ];
290− RestrictNamespaces = true;
291− LockPersonality = true;
292− MemoryDenyWriteExecute = false;
293− RestrictRealtime = true;
294− RestrictSUIDSGID = true;
295− RemoveIPC = true;
296− PrivateMounts = true;
297− # System Call Filtering
298− SystemCallArchitectures = "native";
299− SystemCallFilter = [ "~@cpu-emulation @debug @keyring @memlock @mount @obsolete @resources @privileged @setuid" "@chown" ];
300− };
301− };
302−
303− users.users = lib.mkMerge [
304− (lib.mkIf (cfg.user == "nifi") {
305− nifi = {
306− group = cfg.group;
307− isSystemUser = true;
308− home = cfg.package;
309− };
310− })
311− (lib.attrsets.setAttrByPath [ cfg.user "packages" ] [ cfg.package nifiEnv ])
312− ];
313−
314− users.groups = lib.optionalAttrs (cfg.group == "nifi") {
315− nifi = { };
316− };
317− };
318−}
nixos/modules/services/web-servers/hydron.nix+1−1
@@ -161,5 +161,5 @@ in with lib; {
161161 (mkRenamedOptionModule [ "services" "hydron" "baseDir" ] [ "services" "hydron" "dataDir" ])
162162 ];
163163
164− meta.maintainers = with maintainers; [ Madouura ];
164+ meta.maintainers = with maintainers; [ chiiruno ];
165165}
nixos/modules/services/web-servers/nginx/default.nix+11−18
@@ -255,22 +255,20 @@ let
255255 else defaultListen;
256256
257257 listenString = { addr, port, ssl, extraParameters ? [], ... }:
258− (if ssl && vhost.http3 then "
259− # UDP listener for **QUIC+HTTP/3
260− listen ${addr}:${toString port} http3 "
261− + optionalString vhost.default "default_server "
262− + optionalString vhost.reuseport "reuseport "
263− + optionalString (extraParameters != []) (concatStringsSep " " extraParameters)
264− + ";" else "")
265− + "
266−
267− listen ${addr}:${toString port} "
268− + optionalString (ssl && vhost.http2) "http2 "
258+ "listen ${addr}:${toString port} "
269259 + optionalString ssl "ssl "
260+ + optionalString (ssl && vhost.http2) "http2 "
270261 + optionalString vhost.default "default_server "
271− + optionalString vhost.reuseport "reuseport "
272262 + optionalString (extraParameters != []) (concatStringsSep " " extraParameters)
273− + ";";
263+ + ";"
264+ + (if ssl && vhost.http3 then ''
265+ # UDP listener for **QUIC+HTTP/3
266+ listen ${addr}:${toString port} http3 reuseport;
267+ # Advertise that HTTP/3 is available
268+ add_header Alt-Svc 'h3=":443"';
269+ # Sent when QUIC was used
270+ add_header QUIC-Status $quic;
271+ '' else "");
274272
275273 redirectListen = filter (x: !x.ssl) defaultListen;
276274
@@ -323,11 +321,6 @@ let
323321 ssl_conf_command Options KTLS;
324322 ''}
325323
326− ${optionalString (hasSSL && vhost.http3) ''
327− # Advertise that HTTP/3 is available
328− add_header Alt-Svc 'h3=":443"; ma=86400' always;
329− ''}
330−
331324 ${mkBasicAuth vhostName vhost}
332325
333326 ${mkLocations vhost.locations}
nixos/modules/services/web-servers/nginx/vhost-options.nix+3−12
@@ -20,7 +20,7 @@ with lib;
2020 serverAliases = mkOption {
2121 type = types.listOf types.str;
2222 default = [];
23− example = [ "www.example.org" "example.org" ];
23+ example = ["www.example.org" "example.org"];
2424 description = ''
2525 Additional names of virtual hosts served by this virtual host configuration.
2626 '';
@@ -31,11 +31,11 @@ with lib;
3131 addr = mkOption { type = str; description = "IP address."; };
3232 port = mkOption { type = int; description = "Port number."; default = 80; };
3333 ssl = mkOption { type = bool; description = "Enable SSL."; default = false; };
34− extraParameters = mkOption { type = listOf str; description = "Extra parameters of this listen directive."; default = []; example = [ "backlog=1024" "deferred" ]; };
34+ extraParameters = mkOption { type = listOf str; description = "Extra parameters of this listen directive."; default = []; example = [ "reuseport" "deferred" ]; };
3535 }; });
3636 default = [];
3737 example = [
38− { addr = "195.154.1.1"; port = 443; ssl = true; }
38+ { addr = "195.154.1.1"; port = 443; ssl = true;}
3939 { addr = "192.154.1.1"; port = 80; }
4040 ];
4141 description = ''
@@ -207,15 +207,6 @@ with lib;
207207 '';
208208 };
209209
210− reuseport = mkOption {
211− type = types.bool;
212− default = false;
213− description = ''
214− Create an individual listening socket .
215− It is required to specify only once on one of the hosts.
216− '';
217− };
218−
219210 root = mkOption {
220211 type = types.nullOr types.path;
221212 default = null;
nixos/modules/services/x11/desktop-managers/cinnamon.nix+3−3
@@ -1,4 +1,4 @@
1−{ config, lib, pkgs, utils, ... }:
1+{ config, lib, pkgs, ... }:
22
33with lib;
44
@@ -196,7 +196,7 @@ in
196196 programs.evince.enable = mkDefault true;
197197 programs.file-roller.enable = mkDefault true;
198198
199− environment.systemPackages = with pkgs // pkgs.gnome // pkgs.cinnamon; utils.removePackagesByName [
199+ environment.systemPackages = (with pkgs // pkgs.gnome // pkgs.cinnamon; pkgs.gnome.removePackagesByName [
200200 # cinnamon team apps
201201 bulky
202202 blueberry
@@ -212,7 +212,7 @@ in
212212 # external apps shipped with linux-mint
213213 hexchat
214214 gnome-calculator
215− ] config.environment.cinnamon.excludePackages;
215+ ] config.environment.cinnamon.excludePackages);
216216 })
217217 ];
218218}
nixos/modules/services/x11/desktop-managers/enlightenment.nix−5
@@ -16,10 +16,6 @@ let
1616in
1717
1818{
19− meta = {
20− maintainers = teams.enlightenment.members;
21− };
22−
2319 imports = [
2420 (mkRenamedOptionModule [ "services" "xserver" "desktopManager" "e19" "enable" ] [ "services" "xserver" "desktopManager" "enlightenment" "enable" ])
2521 ];
@@ -96,7 +92,6 @@ in
9692
9793 services.udisks2.enable = true;
9894 services.upower.enable = config.powerManagement.enable;
99− services.xserver.libinput.enable = mkDefault true;
10095
10196 services.dbus.packages = [ e.efl ];
10297
nixos/modules/services/x11/desktop-managers/gnome.nix+10−33
@@ -1,4 +1,4 @@
1−{ config, lib, pkgs, utils, ... }:
1+{ config, lib, pkgs, ... }:
22
33with lib;
44
@@ -22,9 +22,6 @@ let
2222 favorite-apps=[ 'org.gnome.Epiphany.desktop', 'org.gnome.Geary.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop' ]
2323 '';
2424
25− nixos-background-ligtht = pkgs.nixos-artwork.wallpapers.simple-blue;
26− nixos-background-dark = pkgs.nixos-artwork.wallpapers.simple-dark-gray;
27−
2825 nixos-gsettings-desktop-schemas = let
2926 defaultPackages = with pkgs; [ gsettings-desktop-schemas gnome.gnome-shell ];
3027 in
@@ -45,11 +42,10 @@ let
4542 chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
4643 cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF
4744 [org.gnome.desktop.background]
48− picture-uri='file://${nixos-background-ligtht.gnomeFilePath}'
49− picture-uri-dark='file://${nixos-background-dark.gnomeFilePath}'
45+ picture-uri='file://${pkgs.nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}'
5046
5147 [org.gnome.desktop.screensaver]
52− picture-uri='file://${nixos-background-dark.gnomeFilePath}'
48+ picture-uri='file://${pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom.gnomeFilePath}'
5349
5450 ${cfg.favoriteAppsOverride}
5551
@@ -59,26 +55,6 @@ let
5955 ${pkgs.glib.dev}/bin/glib-compile-schemas $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/
6056 '';
6157
62− nixos-background-info = pkgs.writeTextFile rec {
63− name = "nixos-background-info";
64− text = ''
65− <?xml version="1.0"?>
66− <!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
67− <wallpapers>
68− <wallpaper deleted="false">
69− <name>Blobs</name>
70− <filename>${nixos-background-ligtht.gnomeFilePath}</filename>
71− <filename-dark>${nixos-background-dark.gnomeFilePath}</filename-dark>
72− <options>zoom</options>
73− <shade_type>solid</shade_type>
74− <pcolor>#3a4ba0</pcolor>
75− <scolor>#2f302f</scolor>
76− </wallpaper>
77− </wallpapers>
78− '';
79− destination = "/share/gnome-background-properties/nixos.xml";
80− };
81−
8258 flashbackEnabled = cfg.flashback.enableMetacity || length cfg.flashback.customSessions > 0;
8359 flashbackWms = optional cfg.flashback.enableMetacity {
8460 wmName = "metacity";
@@ -454,7 +430,6 @@ in
454430 # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-shell.bst
455431 environment.systemPackages = with pkgs.gnome; [
456432 adwaita-icon-theme
457− nixos-background-info
458433 gnome-backgrounds
459434 gnome-bluetooth
460435 gnome-color-manager
@@ -463,6 +438,8 @@ in
463438 gnome-shell-extensions
464439 gnome-themes-extra
465440 pkgs.gnome-tour # GNOME Shell detects the .desktop file on first log-in.
441+ pkgs.nixos-artwork.wallpapers.simple-dark-gray
442+ pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom
466443 pkgs.gnome-user-docs
467444 pkgs.orca
468445 pkgs.glib # for gsettings
@@ -478,7 +455,7 @@ in
478455 (mkIf serviceCfg.core-utilities.enable {
479456 environment.systemPackages =
480457 with pkgs.gnome;
481− utils.removePackagesByName
458+ removePackagesByName
482459 ([
483460 baobab
484461 cheese
@@ -538,7 +515,7 @@ in
538515 })
539516
540517 (mkIf serviceCfg.games.enable {
541− environment.systemPackages = with pkgs.gnome; utils.removePackagesByName [
518+ environment.systemPackages = (with pkgs.gnome; removePackagesByName [
542519 aisleriot
543520 atomix
544521 five-or-more
@@ -559,12 +536,12 @@ in
559536 quadrapassel
560537 swell-foop
561538 tali
562− ] config.environment.gnome.excludePackages;
539+ ] config.environment.gnome.excludePackages);
563540 })
564541
565542 # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/-/blob/3.38.0/elements/core/meta-gnome-core-developer-tools.bst
566543 (mkIf serviceCfg.core-developer-tools.enable {
567− environment.systemPackages = with pkgs.gnome; utils.removePackagesByName [
544+ environment.systemPackages = (with pkgs.gnome; removePackagesByName [
568545 dconf-editor
569546 devhelp
570547 pkgs.gnome-builder
@@ -573,7 +550,7 @@ in
573550 # in default configurations.
574551 # https://github.com/NixOS/nixpkgs/issues/60908
575552 /* gnome-boxes */
576− ] config.environment.gnome.excludePackages;
553+ ] config.environment.gnome.excludePackages);
577554
578555 services.sysprof.enable = notExcluded pkgs.sysprof;
579556 })
nixos/modules/services/x11/desktop-managers/lumina.nix−4
@@ -10,10 +10,6 @@ let
1010in
1111
1212{
13− meta = {
14− maintainers = teams.lumina.members;
15− };
16−
1713 options = {
1814
1915 services.xserver.desktopManager.lumina.enable = mkOption {
nixos/modules/services/x11/desktop-managers/lxqt.nix+2−11
@@ -1,4 +1,4 @@
1−{ config, lib, pkgs, utils, ... }:
1+{ config, lib, pkgs, ... }:
22
33with lib;
44
@@ -9,10 +9,6 @@ let
99in
1010
1111{
12− meta = {
13− maintainers = teams.lxqt.members;
14− };
15−
1612 options = {
1713
1814 services.xserver.desktopManager.lxqt.enable = mkOption {
@@ -55,7 +51,7 @@ in
5551 environment.systemPackages =
5652 pkgs.lxqt.preRequisitePackages ++
5753 pkgs.lxqt.corePackages ++
58− (utils.removePackagesByName
54+ (pkgs.gnome.removePackagesByName
5955 pkgs.lxqt.optionalPackages
6056 config.environment.lxqt.excludePackages);
6157
@@ -66,11 +62,6 @@ in
6662 services.gvfs.enable = true;
6763
6864 services.upower.enable = config.powerManagement.enable;
69−
70− services.xserver.libinput.enable = mkDefault true;
71−
72− xdg.portal.enable = true;
73− xdg.portal.extraPortals = [ pkgs.lxqt.xdg-desktop-portal-lxqt ];
7465 };
7566
7667}
nixos/modules/services/x11/desktop-managers/mate.nix+32−5
@@ -1,9 +1,20 @@
1−{ config, lib, pkgs, utils, ... }:
1+{ config, lib, pkgs, ... }:
22
33with lib;
44
55let
66
7+ addToXDGDirs = p: ''
8+ if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then
9+ export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name}
10+ fi
11+
12+ if [ -d "${p}/lib/girepository-1.0" ]; then
13+ export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0
14+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib
15+ fi
16+ '';
17+
718 xcfg = config.services.xserver;
819 cfg = xcfg.desktopManager.mate;
920
@@ -37,8 +48,24 @@ in
3748 pkgs.mate.mate-session-manager
3849 ];
3950
40− # Let caja find extensions
41− environment.sessionVariables.CAJA_EXTENSION_DIRS = [ "${config.system.path}/lib/caja/extensions-2.0" ];
51+ services.xserver.displayManager.sessionCommands = ''
52+ if test "$XDG_CURRENT_DESKTOP" = "MATE"; then
53+ export XDG_MENU_PREFIX=mate-
54+
55+ # Let caja find extensions
56+ export CAJA_EXTENSION_DIRS=$CAJA_EXTENSION_DIRS''${CAJA_EXTENSION_DIRS:+:}${config.system.path}/lib/caja/extensions-2.0
57+
58+ # Let caja extensions find gsettings schemas
59+ ${concatMapStrings (p: ''
60+ if [ -d "${p}/lib/caja/extensions-2.0" ]; then
61+ ${addToXDGDirs p}
62+ fi
63+ '') config.environment.systemPackages}
64+
65+ # Add mate-control-center paths to some XDG variables because its schemas are needed by mate-settings-daemon, and mate-settings-daemon is a dependency for mate-control-center (that is, they are mutually recursive)
66+ ${addToXDGDirs pkgs.mate.mate-control-center}
67+ fi
68+ '';
4269
4370 # Let mate-panel find applets
4471 environment.sessionVariables."MATE_PANEL_APPLETS_DIR" = "${config.system.path}/share/mate-panel/applets";
@@ -47,7 +74,7 @@ in
4774 # Debugging
4875 environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1";
4976
50− environment.systemPackages = utils.removePackagesByName
77+ environment.systemPackages = pkgs.gnome.removePackagesByName
5178 (pkgs.mate.basePackages ++
5279 pkgs.mate.extraPackages ++
5380 [
@@ -56,6 +83,7 @@ in
5683 pkgs.gtk3.out
5784 pkgs.shared-mime-info
5885 pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
86+ pkgs.mate.mate-settings-daemon
5987 pkgs.yelp # for 'Contents' in 'Help' menus
6088 ])
6189 config.environment.mate.excludePackages;
@@ -73,7 +101,6 @@ in
73101 services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
74102 services.gvfs.enable = true;
75103 services.upower.enable = config.powerManagement.enable;
76− services.xserver.libinput.enable = mkDefault true;
77104
78105 security.pam.services.mate-screensaver.unixAuth = true;
79106
nixos/modules/services/x11/desktop-managers/none.nix+5−44
@@ -1,46 +1,7 @@
1−{ config, lib, pkgs, ... }:
2−with lib;
3−let
4− runXdgAutostart = config.services.xserver.desktopManager.runXdgAutostartIfNone;
5−in
61{
7− options = {
8− services.xserver.desktopManager.runXdgAutostartIfNone = mkOption {
9− type = types.bool;
10− default = false;
11− description = ''
12− Whether to run XDG autostart files for sessions without a desktop manager
13− (with only a window manager), these sessions usually don't handle XDG
14− autostart files by default.
15−
16− Some services like <option>i18n.inputMethod</option> and
17− <option>service.earlyoom</option> use XDG autostart files to start.
18− If this option is not set to <literal>true</literal> and you are using
19− a window manager without a desktop manager, you need to manually start
20− them or running <package>dex</package> somewhere.
21− '';
22− };
23− };
24−
25− config = mkMerge [
26− {
27− services.xserver.desktopManager.session = [
28− {
29− name = "none";
30− start = optionalString runXdgAutostart ''
31− /run/current-system/systemd/bin/systemctl --user start xdg-autostart-if-no-desktop-manager.target
32− '';
33− }
34− ];
35− }
36− (mkIf runXdgAutostart {
37− systemd.user.targets.xdg-autostart-if-no-desktop-manager = {
38− description = "Run XDG autostart files";
39− # From `plasma-workspace`, `share/systemd/user/plasma-workspace@.target`.
40− requires = [ "xdg-desktop-autostart.target" "graphical-session.target" ];
41− before = [ "xdg-desktop-autostart.target" "graphical-session.target" ];
42− bindsTo = [ "graphical-session.target" ];
43− };
44− })
45− ];
2+ services.xserver.desktopManager.session =
3+ [ { name = "none";
4+ start = "";
5+ }
6+ ];
467}
nixos/modules/services/x11/desktop-managers/pantheon.nix+3−3
@@ -1,4 +1,4 @@
1−{ config, lib, utils, pkgs, ... }:
1+{ config, lib, pkgs, ... }:
22
33with lib;
44
@@ -214,7 +214,7 @@ in
214214 elementary-settings-daemon
215215 pantheon-agent-geoclue2
216216 pantheon-agent-polkit
217− ]) ++ (utils.removePackagesByName [
217+ ]) ++ (gnome.removePackagesByName [
218218 gnome.gnome-font-viewer
219219 gnome.gnome-settings-daemon338
220220 ] config.environment.pantheon.excludePackages);
@@ -272,7 +272,7 @@ in
272272 })
273273
274274 (mkIf serviceCfg.apps.enable {
275− environment.systemPackages = with pkgs.pantheon; utils.removePackagesByName ([
275+ environment.systemPackages = with pkgs.pantheon; pkgs.gnome.removePackagesByName ([
276276 elementary-calculator
277277 elementary-calendar
278278 elementary-camera
nixos/modules/services/x11/desktop-managers/pantheon.xml+3−3
@@ -3,7 +3,7 @@
33 xml:id="chap-pantheon">
44 <title>Pantheon Desktop</title>
55 <para>
6− Pantheon is the desktop environment created for the elementary OS distribution. It is written from scratch in Vala, utilizing GNOME technologies with GTK and Granite.
6+ Pantheon is the desktop environment created for the elementary OS distribution. It is written from scratch in Vala, utilizing GNOME technologies with GTK 3 and Granite.
77 </para>
88 <section xml:id="sec-pantheon-enable">
99 <title>Enabling Pantheon</title>
@@ -89,9 +89,9 @@ switchboard-with-plugs.override {
8989 </para>
9090 </listitem>
9191 </varlistentry>
92− <varlistentry xml:id="sec-pantheon-faq-gnome-and-pantheon">
92+ <varlistentry xml:id="sec-pantheon-faq-gnome3-and-pantheon">
9393 <term>
94− I cannot enable both GNOME and Pantheon.
94+ I cannot enable both GNOME 3 and Pantheon.
9595 </term>
9696 <listitem>
9797 <para>
nixos/modules/services/x11/desktop-managers/xfce.nix+3−8
@@ -66,12 +66,6 @@ in
6666 default = true;
6767 description = "Enable the XFWM (default) window manager.";
6868 };
69−
70− enableScreensaver = mkOption {
71− type = types.bool;
72− default = true;
73− description = "Enable the XFCE screensaver.";
74− };
7569 };
7670 };
7771
@@ -105,6 +99,7 @@ in
10599 ristretto
106100 xfce4-appfinder
107101 xfce4-notifyd
102+ xfce4-screensaver
108103 xfce4-screenshooter
109104 xfce4-session
110105 xfce4-settings
@@ -128,7 +123,7 @@ in
128123 ] ++ optionals (!cfg.noDesktop) [
129124 xfce4-panel
130125 xfdesktop
131− ] ++ optional cfg.enableScreensaver xfce4-screensaver;
126+ ];
132127
133128 environment.pathsToLink = [
134129 "/share/xfce4"
@@ -174,6 +169,6 @@ in
174169 xfce4-notifyd
175170 ];
176171
177− security.pam.services.xfce4-screensaver.unixAuth = cfg.enableScreensaver;
172+ security.pam.services.xfce4-screensaver.unixAuth = true;
178173 };
179174}
nixos/modules/services/x11/xserver.nix+3−10
@@ -1,4 +1,4 @@
1−{ config, lib, utils, pkgs, ... }:
1+{ config, lib, pkgs, ... }:
22
33with lib;
44
@@ -181,13 +181,6 @@ in
181181 '';
182182 };
183183
184− excludePackages = mkOption {
185− default = [];
186− example = literalExpression "[ pkgs.xterm ]";
187− type = types.listOf types.package;
188− description = "Which X11 packages to exclude from the default environment";
189− };
190−
191184 exportConfiguration = mkOption {
192185 type = types.bool;
193186 default = false;
@@ -662,7 +655,7 @@ in
662655 ${cfgPath}.source = xorg.xf86inputevdev.out + "/share" + cfgPath;
663656 });
664657
665− environment.systemPackages = utils.removePackagesByName
658+ environment.systemPackages =
666659 [ xorg.xorgserver.out
667660 xorg.xrandr
668661 xorg.xrdb
@@ -678,7 +671,7 @@ in
678671 pkgs.xdg-utils
679672 xorg.xf86inputevdev.out # get evdev.4 man page
680673 pkgs.nixos-icons # needed for gnome and pantheon about dialog, nixos-manual and maybe more
681− ] config.services.xserver.excludePackages
674+ ]
682675 ++ optional (elem "virtualbox" cfg.videoDrivers) xorg.xrefresh;
683676
684677 environment.pathsToLink = [ "/share/X11" ];
nixos/modules/system/activation/switch-to-configuration.pl−12
@@ -1,17 +1,5 @@
11#! @perl@/bin/perl
22
3−# Issue #166838 uncovered a situation in which a configuration not suitable
4−# for the target architecture caused a cryptic error message instead of
5−# a clean failure. Due to this mismatch, the perl interpreter in the shebang
6−# line wasn't able to be executed, causing this script to be misinterpreted
7−# as a shell script.
8−#
9−# Let's detect this situation to give a more meaningful error
10−# message. The following two lines are carefully written to be both valid Perl
11−# and Bash.
12−printf "Perl script erroneously interpreted as shell script,\ndoes target platform match nixpkgs.crossSystem platform?\n" && exit 1
13− if 0;
14−
153use strict;
164use warnings;
175use Config::IniFiles;
nixos/modules/system/activation/top-level.nix+5−12
@@ -55,18 +55,11 @@ let
5555 substituteInPlace $out/dry-activate --subst-var out
5656 chmod u+x $out/activate $out/dry-activate
5757 unset activationScript dryActivationScript
58+ ${pkgs.stdenv.shellDryRun} $out/activate
59+ ${pkgs.stdenv.shellDryRun} $out/dry-activate
5860
59− ${if config.boot.initrd.systemd.enable then ''
60− cp ${config.system.build.bootStage2} $out/prepare-root
61− substituteInPlace $out/prepare-root --subst-var-by systemConfig $out
62− # This must not be a symlink or the abs_path of the grub builder for the tests
63− # will resolve the symlink and we end up with a path that doesn't point to a
64− # system closure.
65− cp "$systemd/lib/systemd/systemd" $out/init
66− '' else ''
67− cp ${config.system.build.bootStage2} $out/init
68− substituteInPlace $out/init --subst-var-by systemConfig $out
69− ''}
61+ cp ${config.system.build.bootStage2} $out/init
62+ substituteInPlace $out/init --subst-var-by systemConfig $out
7063
7164 ln -s ${config.system.build.etc}/etc $out/etc
7265 ln -s ${config.system.path} $out/sw
@@ -163,7 +156,7 @@ in
163156
164157 specialisation = mkOption {
165158 default = {};
166− example = lib.literalExpression "{ fewJobsManyCores.configuration = { nix.settings = { core = 0; max-jobs = 1; }; }; }";
159+ example = lib.literalExpression "{ fewJobsManyCores.configuration = { nix.settings = { core = 0; max-jobs = 1; }; }";
167160 description = ''
168161 Additional configurations to build. If
169162 <literal>inheritParentConfig</literal> is true, the system
nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix+1−1
@@ -33,7 +33,7 @@ let
3333 netbootxyz = if cfg.netbootxyz.enable then pkgs.netbootxyz-efi else "";
3434
3535 copyExtraFiles = pkgs.writeShellScript "copy-extra-files" ''
36− empty_file=$(${pkgs.coreutils}/bin/mktemp)
36+ empty_file=$(mktemp)
3737
3838 ${concatStrings (mapAttrsToList (n: v: ''
3939 ${pkgs.coreutils}/bin/install -Dp "${v}" "${efi.efiSysMountPoint}/"${escapeShellArg n}
nixos/modules/system/boot/luksroot.nix+6−73
@@ -1,11 +1,10 @@
1−{ config, options, lib, pkgs, ... }:
1+{ config, lib, pkgs, ... }:
22
33with lib;
44
55let
66 luks = config.boot.initrd.luks;
77 kernelPackages = config.boot.kernelPackages;
8− defaultPrio = (mkOptionDefault {}).priority;
98
109 commonFunctions = ''
1110 die() {
@@ -475,16 +474,6 @@ let
475474 preLVM = filterAttrs (n: v: v.preLVM) luks.devices;
476475 postLVM = filterAttrs (n: v: !v.preLVM) luks.devices;
477476
478− stage1Crypttab = pkgs.writeText "initrd-crypttab" (lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: let
479− opts = v.crypttabExtraOpts
480− ++ optional v.allowDiscards "discard"
481− ++ optionals v.bypassWorkqueues [ "no-read-workqueue" "no-write-workqueue" ]
482− ++ optional (v.header != null) "header=${v.header}"
483− ++ optional (v.keyFileOffset != null) "keyfile-offset=${v.keyFileOffset}"
484− ++ optional (v.keyFileSize != null) "keyfile-size=${v.keyFileSize}"
485− ;
486− in "${n} ${v.device} ${if v.keyFile == null then "-" else v.keyFile} ${lib.concatStringsSep "," opts}") luks.devices));
487−
488477in
489478{
490479 imports = [
@@ -813,18 +802,6 @@ in
813802 Commands that should be run right after we have mounted our LUKS device.
814803 '';
815804 };
816−
817− crypttabExtraOpts = mkOption {
818− type = with types; listOf singleLineStr;
819− default = [];
820− example = [ "_netdev" ];
821− visible = false;
822− description = ''
823− Only used with systemd stage 1.
824−
825− Extra options to append to the last column of the generated crypttab file.
826− '';
827− };
828805 };
829806 }));
830807 };
@@ -876,31 +853,6 @@ in
876853 -> versionAtLeast kernelPackages.kernel.version "5.9";
877854 message = "boot.initrd.luks.devices.<name>.bypassWorkqueues is not supported for kernels older than 5.9";
878855 }
879−
880− { assertion = config.boot.initrd.systemd.enable -> all (dev: !dev.fallbackToPassword) (attrValues luks.devices);
881− message = "boot.initrd.luks.devices.<name>.fallbackToPassword is implied by systemd stage 1.";
882− }
883− { assertion = config.boot.initrd.systemd.enable -> all (dev: dev.preLVM) (attrValues luks.devices);
884− message = "boot.initrd.luks.devices.<name>.preLVM is not used by systemd stage 1.";
885− }
886− { assertion = config.boot.initrd.systemd.enable -> options.boot.initrd.luks.reusePassphrases.highestPrio == defaultPrio;
887− message = "boot.initrd.luks.reusePassphrases has no effect with systemd stage 1.";
888− }
889− { assertion = config.boot.initrd.systemd.enable -> all (dev: dev.preOpenCommands == "" && dev.postOpenCommands == "") (attrValues luks.devices);
890− message = "boot.initrd.luks.devices.<name>.preOpenCommands and postOpenCommands is not supported by systemd stage 1. Please bind a service to cryptsetup.target or cryptsetup-pre.target instead.";
891− }
892− # TODO
893− { assertion = config.boot.initrd.systemd.enable -> !luks.gpgSupport;
894− message = "systemd stage 1 does not support GPG smartcards yet.";
895− }
896− # TODO
897− { assertion = config.boot.initrd.systemd.enable -> !luks.fido2Support;
898− message = "systemd stage 1 does not support FIDO2 yet.";
899− }
900− # TODO
901− { assertion = config.boot.initrd.systemd.enable -> !luks.yubikeySupport;
902− message = "systemd stage 1 does not support Yubikeys yet.";
903− }
904856 ];
905857
906858 # actually, sbp2 driver is the one enabling the DMA attack, but this needs to be tested
@@ -915,7 +867,7 @@ in
915867 ++ (if builtins.elem "xts" luks.cryptoModules then ["ecb"] else []);
916868
917869 # copy the cryptsetup binary and it's dependencies
918− boot.initrd.extraUtilsCommands = mkIf (!config.boot.initrd.systemd.enable) ''
870+ boot.initrd.extraUtilsCommands = ''
919871 copy_bin_and_libs ${pkgs.cryptsetup}/bin/cryptsetup
920872 copy_bin_and_libs ${askPass}/bin/cryptsetup-askpass
921873 sed -i s,/bin/sh,$out/bin/sh, $out/bin/cryptsetup-askpass
@@ -963,7 +915,7 @@ in
963915 ''}
964916 '';
965917
966− boot.initrd.extraUtilsCommandsTest = mkIf (!config.boot.initrd.systemd.enable) ''
918+ boot.initrd.extraUtilsCommandsTest = ''
967919 $out/bin/cryptsetup --version
968920 ${optionalString luks.yubikeySupport ''
969921 $out/bin/ykchalresp -V
@@ -980,28 +932,9 @@ in
980932 ''}
981933 '';
982934
983− boot.initrd.systemd = {
984− contents."/etc/crypttab".source = stage1Crypttab;
985−
986− extraBin.systemd-cryptsetup = "${config.boot.initrd.systemd.package}/lib/systemd/systemd-cryptsetup";
987−
988− additionalUpstreamUnits = [
989− "cryptsetup-pre.target"
990− "cryptsetup.target"
991− "remote-cryptsetup.target"
992− ];
993− storePaths = [
994− "${config.boot.initrd.systemd.package}/lib/systemd/systemd-cryptsetup"
995− "${config.boot.initrd.systemd.package}/lib/systemd/system-generators/systemd-cryptsetup-generator"
996− ];
997−
998− };
999− # We do this because we need the udev rules from the package
1000− boot.initrd.services.lvm.enable = true;
1001−
1002− boot.initrd.preFailCommands = mkIf (!config.boot.initrd.systemd.enable) postCommands;
1003− boot.initrd.preLVMCommands = mkIf (!config.boot.initrd.systemd.enable) (commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand preLVM) + postCommands);
1004− boot.initrd.postDeviceCommands = mkIf (!config.boot.initrd.systemd.enable) (commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand postLVM) + postCommands);
935+ boot.initrd.preFailCommands = postCommands;
936+ boot.initrd.preLVMCommands = commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand preLVM) + postCommands;
937+ boot.initrd.postDeviceCommands = commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand postLVM) + postCommands;
1005938
1006939 environment.systemPackages = [ pkgs.cryptsetup ];
1007940 };
nixos/modules/system/boot/networkd.nix+1−135
@@ -10,36 +10,6 @@ let
1010
1111 check = {
1212
13− global = {
14− sectionNetwork = checkUnitConfig "Network" [
15− (assertOnlyFields [
16− "SpeedMeter"
17− "SpeedMeterIntervalSec"
18− "ManageForeignRoutingPolicyRules"
19− "ManageForeignRoutes"
20− "RouteTable"
21− ])
22− (assertValueOneOf "SpeedMeter" boolValues)
23− (assertInt "SpeedMeterIntervalSec")
24− (assertValueOneOf "ManageForeignRoutingPolicyRules" boolValues)
25− (assertValueOneOf "ManageForeignRoutes" boolValues)
26− ];
27−
28− sectionDHCPv4 = checkUnitConfig "DHCPv4" [
29− (assertOnlyFields [
30− "DUIDType"
31− "DUIDRawData"
32− ])
33− ];
34−
35− sectionDHCPv6 = checkUnitConfig "DHCPv6" [
36− (assertOnlyFields [
37− "DUIDType"
38− "DUIDRawData"
39− ])
40− ];
41− };
42−
4313 link = {
4414
4515 sectionLink = checkUnitConfig "Link" [
@@ -901,44 +871,6 @@ let
901871 };
902872 };
903873
904− networkdOptions = {
905− networkConfig = mkOption {
906− default = {};
907− example = { SpeedMeter = true; ManageForeignRoutingPolicyRules = false; };
908− type = types.addCheck (types.attrsOf unitOption) check.global.sectionNetwork;
909− description = ''
910− Each attribute in this set specifies an option in the
911− <literal>[Network]</literal> section of the networkd config.
912− See <citerefentry><refentrytitle>networkd.conf</refentrytitle>
913− <manvolnum>5</manvolnum></citerefentry> for details.
914− '';
915− };
916−
917− dhcpV4Config = mkOption {
918− default = {};
919− example = { DUIDType = "vendor"; };
920− type = types.addCheck (types.attrsOf unitOption) check.global.sectionDHCPv4;
921− description = ''
922− Each attribute in this set specifies an option in the
923− <literal>[DHCPv4]</literal> section of the networkd config.
924− See <citerefentry><refentrytitle>networkd.conf</refentrytitle>
925− <manvolnum>5</manvolnum></citerefentry> for details.
926− '';
927− };
928−
929− dhcpV6Config = mkOption {
930− default = {};
931− example = { DUIDType = "vendor"; };
932− type = types.addCheck (types.attrsOf unitOption) check.global.sectionDHCPv6;
933− description = ''
934− Each attribute in this set specifies an option in the
935− <literal>[DHCPv6]</literal> section of the networkd config.
936− See <citerefentry><refentrytitle>networkd.conf</refentrytitle>
937− <manvolnum>5</manvolnum></citerefentry> for details.
938− '';
939− };
940− };
941−
942874 linkOptions = commonNetworkOptions // {
943875 # overwrite enable option from above
944876 enable = mkOption {
@@ -1587,39 +1519,6 @@ let
15871519 };
15881520 };
15891521
1590− networkdConfig = { config, ... }: {
1591− options = {
1592− routeTables = mkOption {
1593− default = {};
1594− example = { foo = 27; };
1595− type = with types; attrsOf int;
1596− description = ''
1597− Defines route table names as an attrset of name to number.
1598− See <citerefentry><refentrytitle>networkd.conf</refentrytitle>
1599− <manvolnum>5</manvolnum></citerefentry> for details.
1600− '';
1601− };
1602−
1603− addRouteTablesToIPRoute2 = mkOption {
1604− default = true;
1605− example = false;
1606− type = types.bool;
1607− description = ''
1608− If true and routeTables are set, then the specified route tables
1609− will also be installed into /etc/iproute2/rt_tables.
1610− '';
1611− };
1612− };
1613−
1614− config = {
1615− networkConfig = optionalAttrs (config.routeTables != { }) {
1616− RouteTable = mapAttrsToList
1617− (name: number: "${name}:${toString number}")
1618− config.routeTables;
1619− };
1620− };
1621− };
1622−
16231522 commonMatchText = def: optionalString (def.matchConfig != { }) ''
16241523 [Match]
16251524 ${attrsToSection def.matchConfig}
@@ -1701,20 +1600,6 @@ let
17011600 + def.extraConfig;
17021601 };
17031602
1704− renderConfig = def:
1705− { text = ''
1706− [Network]
1707− ${attrsToSection def.networkConfig}
1708− ''
1709− + optionalString (def.dhcpV4Config != { }) ''
1710− [DHCPv4]
1711− ${attrsToSection def.dhcpV4Config}
1712− ''
1713− + optionalString (def.dhcpV6Config != { }) ''
1714− [DHCPv6]
1715− ${attrsToSection def.dhcpV6Config}
1716− ''; };
1717−
17181603 networkToUnit = name: def:
17191604 { inherit (def) enable;
17201605 text = commonMatchText def
@@ -1847,12 +1732,6 @@ in
18471732 description = "Definition of systemd networks.";
18481733 };
18491734
1850− systemd.network.config = mkOption {
1851− default = {};
1852− type = with types; submodule [ { options = networkdOptions; } networkdConfig ];
1853− description = "Definition of global systemd network config.";
1854− };
1855−
18561735 systemd.network.units = mkOption {
18571736 description = "Definition of networkd units.";
18581737 default = {};
@@ -1944,9 +1823,7 @@ in
19441823 systemd.services.systemd-networkd = {
19451824 wantedBy = [ "multi-user.target" ];
19461825 aliases = [ "dbus-org.freedesktop.network1.service" ];
1947− restartTriggers = map (x: x.source) (attrValues unitFiles) ++ [
1948− config.environment.etc."systemd/networkd.conf".source
1949− ];
1826+ restartTriggers = map (x: x.source) (attrValues unitFiles);
19501827 };
19511828
19521829 systemd.services.systemd-networkd-wait-online = {
@@ -1969,17 +1846,6 @@ in
19691846 };
19701847 };
19711848
1972− environment.etc."systemd/networkd.conf" = renderConfig cfg.config;
1973−
1974− networking.iproute2 = mkIf (cfg.config.addRouteTablesToIPRoute2 && cfg.config.routeTables != { }) {
1975− enable = mkDefault true;
1976− rttablesExtraConfig = ''
1977−
1978− # Extra tables defined in NixOS systemd.networkd.config.routeTables.
1979− ${concatStringsSep "\n" (mapAttrsToList (name: number: "${toString number} ${name}") cfg.config.routeTables)}
1980− '';
1981− };
1982−
19831849 services.resolved.enable = mkDefault true;
19841850 })
19851851 ];
nixos/modules/system/boot/stage-1-init.sh+5−1
@@ -318,7 +318,11 @@ checkFS() {
318318
319319 echo "checking $device..."
320320
321− fsck -V -a "$device"
321+ fsckFlags=
322+ if test "$fsType" != "btrfs"; then
323+ fsckFlags="-V -a"
324+ fi
325+ fsck $fsckFlags "$device"
322326 fsckResult=$?
323327
324328 if test $(($fsckResult | 2)) = $fsckResult; then
nixos/modules/system/boot/stage-1.nix+12−7
@@ -355,7 +355,7 @@ let
355355 [ { object = bootStage1;
356356 symlink = "/init";
357357 }
358− { object = pkgs.writeText "mdadm.conf" config.boot.initrd.services.swraid.mdadmConf;
358+ { object = pkgs.writeText "mdadm.conf" config.boot.initrd.mdadmConf;
359359 symlink = "/etc/mdadm.conf";
360360 }
361361 { object = pkgs.runCommand "initrd-kmod-blacklist-ubuntu" {
@@ -420,7 +420,7 @@ let
420420 ${lib.optionalString (config.boot.initrd.secrets == {})
421421 "exit 0"}
422422
423− export PATH=${pkgs.coreutils}/bin:${pkgs.libarchive}/bin:${pkgs.gzip}/bin:${pkgs.findutils}/bin
423+ export PATH=${pkgs.coreutils}/bin:${pkgs.cpio}/bin:${pkgs.gzip}/bin:${pkgs.findutils}/bin
424424
425425 function cleanup {
426426 if [ -n "$tmp" -a -d "$tmp" ]; then
@@ -440,7 +440,7 @@ let
440440 ) config.boot.initrd.secrets)
441441 }
442442
443− (cd "$tmp" && find . -print0 | sort -z | bsdtar --uid 0 --gid 0 -cnf - -T - | bsdtar --null -cf - --format=newc @-) | \
443+ (cd "$tmp" && find . -print0 | sort -z | cpio --quiet -o -H newc -R +0:+0 --reproducible --null) | \
444444 ${compressorExe} ${lib.escapeShellArgs initialRamdisk.compressorArgs} >> "$1"
445445 '';
446446
@@ -505,6 +505,14 @@ in
505505 '';
506506 };
507507
508+ boot.initrd.mdadmConf = mkOption {
509+ default = "";
510+ type = types.lines;
511+ description = ''
512+ Contents of <filename>/etc/mdadm.conf</filename> in stage 1.
513+ '';
514+ };
515+
508516 boot.initrd.preLVMCommands = mkOption {
509517 default = "";
510518 type = types.lines;
@@ -728,9 +736,6 @@ in
728736 ];
729737
730738 boot.initrd.supportedFilesystems = map (fs: fs.fsType) fileSystems;
731− };
732739
733− imports = [
734− (mkRenamedOptionModule [ "boot" "initrd" "mdadmConf" ] [ "boot" "initrd" "services" "swraid" "mdadmConf" ])
735− ];
740+ };
736741}
nixos/modules/system/boot/stage-2-init.sh+45−63
@@ -5,30 +5,28 @@ systemConfig=@systemConfig@
55export HOME=/root PATH="@path@"
66
77
8−if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" != true ]; then
9− # Process the kernel command line.
10− for o in $(</proc/cmdline); do
11− case $o in
12− boot.debugtrace)
13− # Show each command.
14− set -x
15− ;;
16− esac
17− done
18−
19−
20− # Print a greeting.
21− echo
22− echo -e "\e[1;32m<<< NixOS Stage 2 >>>\e[0m"
23− echo
24−
25−
26− # Normally, stage 1 mounts the root filesystem read/writable.
27− # However, in some environments, stage 2 is executed directly, and the
28− # root is read-only. So make it writable here.
29− if [ -z "$container" ]; then
30− mount -n -o remount,rw none /
31− fi
8+# Process the kernel command line.
9+for o in $(</proc/cmdline); do
10+ case $o in
11+ boot.debugtrace)
12+ # Show each command.
13+ set -x
14+ ;;
15+ esac
16+done
17+
18+
19+# Print a greeting.
20+echo
21+echo -e "\e[1;32m<<< NixOS Stage 2 >>>\e[0m"
22+echo
23+
24+
25+# Normally, stage 1 mounts the root filesystem read/writable.
26+# However, in some environments, stage 2 is executed directly, and the
27+# root is read-only. So make it writable here.
28+if [ -z "$container" ]; then
29+ mount -n -o remount,rw none /
3230fi
3331
3432
@@ -41,12 +39,6 @@ if [ ! -e /proc/1 ]; then
4139 local options="$3"
4240 local fsType="$4"
4341
44− # We must not overwrite this mount because it's bind-mounted
45− # from stage 1's /run
46− if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" = true ] && [ "${mountPoint}" = /run ]; then
47− return
48− fi
49−
5042 install -m 0755 -d "$mountPoint"
5143 mount -n -t "$fsType" -o "$options" "$device" "$mountPoint"
5244 }
@@ -54,11 +46,7 @@ if [ ! -e /proc/1 ]; then
5446fi
5547
5648
57−if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" = true ]; then
58− echo "booting system configuration ${systemConfig}"
59−else
60− echo "booting system configuration $systemConfig" > /dev/kmsg
61−fi
49+echo "booting system configuration $systemConfig" > /dev/kmsg
6250
6351
6452# Make /nix/store a read-only bind mount to enforce immutability of
@@ -80,26 +68,24 @@ if [ -n "@readOnlyStore@" ]; then
8068fi
8169
8270
83−if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" != true ]; then
84− # Use /etc/resolv.conf supplied by systemd-nspawn, if applicable.
85− if [ -n "@useHostResolvConf@" ] && [ -e /etc/resolv.conf ]; then
86− resolvconf -m 1000 -a host </etc/resolv.conf
87− fi
71+# Use /etc/resolv.conf supplied by systemd-nspawn, if applicable.
72+if [ -n "@useHostResolvConf@" ] && [ -e /etc/resolv.conf ]; then
73+ resolvconf -m 1000 -a host </etc/resolv.conf
74+fi
8875
8976
90− # Log the script output to /dev/kmsg or /run/log/stage-2-init.log.
91− # Only at this point are all the necessary prerequisites ready for these commands.
92− exec {logOutFd}>&1 {logErrFd}>&2
93− if test -w /dev/kmsg; then
94− exec > >(tee -i /proc/self/fd/"$logOutFd" | while read -r line; do
95− if test -n "$line"; then
96− echo "<7>stage-2-init: $line" > /dev/kmsg
97− fi
98− done) 2>&1
99− else
100− mkdir -p /run/log
101− exec > >(tee -i /run/log/stage-2-init.log) 2>&1
102− fi
77+# Log the script output to /dev/kmsg or /run/log/stage-2-init.log.
78+# Only at this point are all the necessary prerequisites ready for these commands.
79+exec {logOutFd}>&1 {logErrFd}>&2
80+if test -w /dev/kmsg; then
81+ exec > >(tee -i /proc/self/fd/"$logOutFd" | while read -r line; do
82+ if test -n "$line"; then
83+ echo "<7>stage-2-init: $line" > /dev/kmsg
84+ fi
85+ done) 2>&1
86+else
87+ mkdir -p /run/log
88+ exec > >(tee -i /run/log/stage-2-init.log) 2>&1
10389fi
10490
10591
@@ -130,15 +116,11 @@ ln -sfn "$systemConfig" /run/booted-system
130116: >> /etc/machine-id
131117
132118
133−# No need to restore the stdout/stderr streams we never redirected and
134−# especially no need to start systemd
135−if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" != true ]; then
136− # Reset the logging file descriptors.
137− exec 1>&$logOutFd 2>&$logErrFd
138− exec {logOutFd}>&- {logErrFd}>&-
119+# Reset the logging file descriptors.
120+exec 1>&$logOutFd 2>&$logErrFd
121+exec {logOutFd}>&- {logErrFd}>&-
139122
140123
141− # Start systemd in a clean environment.
142− echo "starting systemd..."
143− exec @systemdExecutable@ "$@"
144−fi
124+# Start systemd in a clean environment.
125+echo "starting systemd..."
126+exec @systemdExecutable@ "$@"
nixos/modules/system/boot/systemd.nix+8
@@ -573,6 +573,14 @@ in
573573 })
574574 (filterAttrs (name: service: service.enable && service.startAt != []) cfg.services);
575575
576+ # Generate timer units for all services that have a ‘startAt’ value.
577+ systemd.user.timers =
578+ mapAttrs (name: service:
579+ { wantedBy = [ "timers.target" ];
580+ timerConfig.OnCalendar = service.startAt;
581+ })
582+ (filterAttrs (name: service: service.startAt != []) cfg.user.services);
583+
576584 # Some overrides to upstream units.
577585 systemd.services."systemd-backlight@".restartIfChanged = false;
578586 systemd.services."systemd-fsck@".restartIfChanged = false;
nixos/modules/system/boot/systemd/initrd-secrets.nixdeleted−36
@@ -1,36 +0,0 @@
1−{ config, pkgs, lib, ... }:
2−
3−{
4− config = lib.mkIf (config.boot.initrd.enable && config.boot.initrd.systemd.enable) {
5− # Copy secrets into the initrd if they cannot be appended
6− boot.initrd.systemd.contents = lib.mkIf (!config.boot.loader.supportsInitrdSecrets)
7− (lib.mapAttrs' (dest: source: lib.nameValuePair "/.initrd-secrets/${dest}" { source = if source == null then dest else source; }) config.boot.initrd.secrets);
8−
9− # Copy secrets to their respective locations
10− boot.initrd.systemd.services.initrd-nixos-copy-secrets = lib.mkIf (config.boot.initrd.secrets != {}) {
11− description = "Copy secrets into place";
12− # Run as early as possible
13− wantedBy = [ "sysinit.target" ];
14− before = [ "cryptsetup-pre.target" ];
15− unitConfig.DefaultDependencies = false;
16−
17− # We write the secrets to /.initrd-secrets and move them because this allows
18− # secrets to be written to /run. If we put the secret directly to /run and
19− # drop this service, we'd mount the /run tmpfs over the secret, making it
20− # invisible in stage 2.
21− script = ''
22− for secret in $(cd /.initrd-secrets; find . -type f); do
23− mkdir -p "$(dirname "/$secret")"
24− cp "/.initrd-secrets/$secret" "/$secret"
25− done
26− '';
27−
28− unitConfig = {
29− Type = "oneshot";
30− RemainAfterExit = true;
31− };
32− };
33− # The script needs this
34− boot.initrd.systemd.extraBin.find = "${pkgs.findutils}/bin/find";
35− };
36−}
nixos/modules/system/boot/systemd/initrd.nix+56−108
@@ -34,6 +34,7 @@ let
3434 "initrd-switch-root.service"
3535 "initrd-switch-root.target"
3636 "initrd.target"
37+ "initrd-udevadm-cleanup-db.service"
3738 "kexec.target"
3839 "kmod-static-nodes.service"
3940 "local-fs-pre.target"
@@ -65,10 +66,17 @@ let
6566 "systemd-kexec.service"
6667 "systemd-modules-load.service"
6768 "systemd-poweroff.service"
69+ "systemd-random-seed.service"
6870 "systemd-reboot.service"
6971 "systemd-sysctl.service"
7072 "systemd-tmpfiles-setup-dev.service"
7173 "systemd-tmpfiles-setup.service"
74+ "systemd-udevd-control.socket"
75+ "systemd-udevd-kernel.socket"
76+ "systemd-udevd.service"
77+ "systemd-udev-settle.service"
78+ "systemd-udev-trigger.service"
79+ "systemd-vconsole-setup.service"
7280 "timers.target"
7381 "umount.target"
7482
@@ -105,9 +113,6 @@ let
105113 opts = options ++ optional autoFormat "x-systemd.makefs" ++ optional autoResize "x-systemd.growfs";
106114 in "${device} /sysroot${mountPoint} ${fsType} ${lib.concatStringsSep "," opts}") fileSystems);
107115
108− needMakefs = lib.any (fs: fs.autoFormat) fileSystems;
109− needGrowfs = lib.any (fs: fs.autoResize) fileSystems;
110−
111116 kernel-name = config.boot.kernelPackages.kernel.name or "kernel";
112117 modulesTree = config.system.modulesTree.override { name = kernel-name + "-modules"; };
113118 firmware = config.hardware.firmware;
@@ -120,16 +125,13 @@ let
120125 };
121126
122127 initrdBinEnv = pkgs.buildEnv {
123− name = "initrd-bin-env";
128+ name = "initrd-emergency-env";
124129 paths = map getBin cfg.initrdBin;
125130 pathsToLink = ["/bin" "/sbin"];
126131 postBuild = concatStringsSep "\n" (mapAttrsToList (n: v: "ln -s '${v}' $out/bin/'${n}'") cfg.extraBin);
127132 };
128133
129134 initialRamdisk = pkgs.makeInitrdNG {
130− name = "initrd-${kernel-name}";
131− inherit (config.boot.initrd) compressor compressorArgs prepend;
132−
133135 contents = map (path: { object = path; symlink = ""; }) (subtractLists cfg.suppressedStorePaths cfg.storePaths)
134136 ++ mapAttrsToList (_: v: { object = v.source; symlink = v.target; }) (filterAttrs (_: v: v.enable) cfg.contents);
135137 };
@@ -158,14 +160,44 @@ in {
158160 '';
159161 visible = false;
160162 default = {};
161− type = utils.systemdUtils.types.initrdContents;
163+ type = types.attrsOf (types.submodule ({ config, options, name, ... }: {
164+ options = {
165+ enable = mkEnableOption "copying of this file to initrd and symlinking it" // { default = true; };
166+
167+ target = mkOption {
168+ type = types.path;
169+ description = ''
170+ Path of the symlink.
171+ '';
172+ default = name;
173+ };
174+
175+ text = mkOption {
176+ default = null;
177+ type = types.nullOr types.lines;
178+ description = "Text of the file.";
179+ };
180+
181+ source = mkOption {
182+ type = types.path;
183+ description = "Path of the source file.";
184+ };
185+ };
186+
187+ config = {
188+ source = mkIf (config.text != null) (
189+ let name' = "initrd-" + baseNameOf name;
190+ in mkDerivedConfig options.text (pkgs.writeText name')
191+ );
192+ };
193+ }));
162194 };
163195
164196 storePaths = mkOption {
165197 description = ''
166198 Store paths to copy into the initrd as well.
167199 '';
168− type = with types; listOf (oneOf [ singleLineStr package ]);
200+ type = types.listOf types.singleLineStr;
169201 default = [];
170202 };
171203
@@ -323,9 +355,8 @@ in {
323355 boot.initrd.availableKernelModules = [ "autofs4" ]; # systemd needs this for some features
324356
325357 boot.initrd.systemd = {
326− initrdBin = [pkgs.bash pkgs.coreutils cfg.package.kmod cfg.package] ++ config.system.fsPackages;
358+ initrdBin = [pkgs.bash pkgs.coreutils pkgs.kmod cfg.package] ++ config.system.fsPackages;
327359 extraBin = {
328− less = "${pkgs.less}/bin/less";
329360 mount = "${cfg.package.util-linux}/bin/mount";
330361 umount = "${cfg.package.util-linux}/bin/umount";
331362 };
@@ -336,13 +367,12 @@ in {
336367
337368 "/etc/systemd/system.conf".text = ''
338369 [Manager]
339− DefaultEnvironment=PATH=/bin:/sbin ${optionalString (isBool cfg.emergencyAccess && cfg.emergencyAccess) "SYSTEMD_SULOGIN_FORCE=1"}
370+ DefaultEnvironment=PATH=/bin:/sbin
340371 '';
341372
342373 "/etc/fstab".source = fstab;
343374
344375 "/lib/modules".source = "${modulesClosure}/lib/modules";
345− "/lib/firmware".source = "${modulesClosure}/lib/firmware";
346376
347377 "/etc/modules-load.d/nixos.conf".text = concatStringsSep "\n" config.boot.initrd.kernelModules;
348378
@@ -354,32 +384,25 @@ in {
354384
355385 "/etc/sysctl.d/nixos.conf".text = "kernel.modprobe = /sbin/modprobe";
356386 "/etc/modprobe.d/systemd.conf".source = "${cfg.package}/lib/modprobe.d/systemd.conf";
357− "/etc/modprobe.d/ubuntu.conf".source = pkgs.runCommand "initrd-kmod-blacklist-ubuntu" { } ''
358− ${pkgs.buildPackages.perl}/bin/perl -0pe 's/## file: iwlwifi.conf(.+?)##/##/s;' $src > $out
359− '';
360− "/etc/modprobe.d/debian.conf".source = pkgs.kmod-debian-aliases;
361−
362387 };
363388
364389 storePaths = [
365390 # systemd tooling
366391 "${cfg.package}/lib/systemd/systemd-fsck"
367− (lib.mkIf needGrowfs "${cfg.package}/lib/systemd/systemd-growfs")
392+ "${cfg.package}/lib/systemd/systemd-growfs"
368393 "${cfg.package}/lib/systemd/systemd-hibernate-resume"
369394 "${cfg.package}/lib/systemd/systemd-journald"
370− (lib.mkIf needMakefs "${cfg.package}/lib/systemd/systemd-makefs")
395+ "${cfg.package}/lib/systemd/systemd-makefs"
371396 "${cfg.package}/lib/systemd/systemd-modules-load"
372397 "${cfg.package}/lib/systemd/systemd-remount-fs"
373− "${cfg.package}/lib/systemd/systemd-shutdown"
374398 "${cfg.package}/lib/systemd/systemd-sulogin-shell"
375399 "${cfg.package}/lib/systemd/systemd-sysctl"
400+ "${cfg.package}/lib/systemd/systemd-udevd"
401+ "${cfg.package}/lib/systemd/systemd-vconsole-setup"
376402
377− # generators
378− "${cfg.package}/lib/systemd/system-generators/systemd-debug-generator"
379− "${cfg.package}/lib/systemd/system-generators/systemd-fstab-generator"
380− "${cfg.package}/lib/systemd/system-generators/systemd-gpt-auto-generator"
381− "${cfg.package}/lib/systemd/system-generators/systemd-hibernate-resume-generator"
382− "${cfg.package}/lib/systemd/system-generators/systemd-run-generator"
403+ # additional systemd directories
404+ "${cfg.package}/lib/systemd/system-generators"
405+ "${cfg.package}/lib/udev"
383406
384407 # utilities needed by systemd
385408 "${cfg.package.util-linux}/bin/mount"
@@ -387,7 +410,7 @@ in {
387410 "${cfg.package.util-linux}/bin/sulogin"
388411
389412 # so NSS can look up usernames
390− "${pkgs.glibc}/lib/libnss_files.so.2"
413+ "${pkgs.glibc}/lib/libnss_files.so"
391414 ] ++ jobScripts;
392415
393416 targets.initrd.aliases = ["default.target"];
@@ -405,6 +428,9 @@ in {
405428 (v: let n = escapeSystemdPath v.where;
406429 in nameValuePair "${n}.automount" (automountToUnit n v)) cfg.automounts);
407430
431+ services.emergency = mkIf (isBool cfg.emergencyAccess && cfg.emergencyAccess) {
432+ environment.SYSTEMD_SULOGIN_FORCE = "1";
433+ };
408434 # The unit in /run/systemd/generator shadows the unit in
409435 # /etc/systemd/system, but will still apply drop-ins from
410436 # /etc/systemd/system/foo.service.d/
@@ -417,86 +443,8 @@ in {
417443 mkdir -p $out/etc/systemd/system
418444 touch $out/etc/systemd/system/systemd-{makefs,growfs}@.service
419445 '')];
420− services."systemd-makefs@" = lib.mkIf needMakefs { unitConfig.IgnoreOnIsolate = true; };
421− services."systemd-growfs@" = lib.mkIf needGrowfs { unitConfig.IgnoreOnIsolate = true; };
422−
423− services.initrd-nixos-activation = {
424− after = [ "initrd-fs.target" ];
425− requiredBy = [ "initrd.target" ];
426− unitConfig.AssertPathExists = "/etc/initrd-release";
427− serviceConfig.Type = "oneshot";
428− description = "NixOS Activation";
429−
430− script = /* bash */ ''
431− set -uo pipefail
432− export PATH="/bin:${cfg.package.util-linux}/bin"
433−
434− # Figure out what closure to boot
435− closure=
436− for o in $(< /proc/cmdline); do
437− case $o in
438− init=*)
439− IFS== read -r -a initParam <<< "$o"
440− closure="$(dirname "''${initParam[1]}")"
441− ;;
442− esac
443− done
444−
445− # Sanity check
446− if [ -z "''${closure:-}" ]; then
447− echo 'No init= parameter on the kernel command line' >&2
448− exit 1
449− fi
450−
451− # If we are not booting a NixOS closure (e.g. init=/bin/sh),
452− # we don't know what root to prepare so we don't do anything
453− if ! [ -x "/sysroot$closure/prepare-root" ]; then
454− echo "NEW_INIT=''${initParam[1]}" > /etc/switch-root.conf
455− echo "$closure does not look like a NixOS installation - not activating"
456− exit 0
457− fi
458− echo 'NEW_INIT=' > /etc/switch-root.conf
459−
460−
461− # We need to propagate /run for things like /run/booted-system
462− # and /run/current-system.
463− mkdir -p /sysroot/run
464− mount --bind /run /sysroot/run
465−
466− # Initialize the system
467− export IN_NIXOS_SYSTEMD_STAGE1=true
468− exec chroot /sysroot $closure/prepare-root
469− '';
470− };
471−
472− # This will either call systemctl with the new init as the last parameter (which
473− # is the case when not booting a NixOS system) or with an empty string, causing
474− # systemd to bypass its verification code that checks whether the next file is a systemd
475− # and using its compiled-in value
476− services.initrd-switch-root.serviceConfig = {
477− EnvironmentFile = "-/etc/switch-root.conf";
478− ExecStart = [
479− ""
480− ''systemctl --no-block switch-root /sysroot "''${NEW_INIT}"''
481− ];
482− };
483−
484− services.panic-on-fail = {
485− wantedBy = ["emergency.target"];
486− unitConfig = {
487− DefaultDependencies = false;
488− ConditionKernelCommandLine = [
489− "|boot.panic_on_fail"
490− "|stage1panic"
491− ];
492− };
493− script = ''
494− echo c > /proc/sysrq-trigger
495− '';
496− serviceConfig.Type = "oneshot";
497− };
446+ services."systemd-makefs@".unitConfig.IgnoreOnIsolate = true;
447+ services."systemd-growfs@".unitConfig.IgnoreOnIsolate = true;
498448 };
499−
500− boot.kernelParams = lib.mkIf (config.boot.resumeDevice != "") [ "resume=${config.boot.resumeDevice}" ];
501449 };
502450}
nixos/modules/system/boot/systemd/shutdown.nixdeleted−58
@@ -1,58 +0,0 @@
1−{ config, lib, utils, pkgs, ... }: let
2−
3− cfg = config.systemd.shutdownRamfs;
4−
5− ramfsContents = let
6− storePaths = map (p: "${p}\n") cfg.storePaths;
7− contents = lib.mapAttrsToList (_: v: "${v.source}\n${v.target}") (lib.filterAttrs (_: v: v.enable) cfg.contents);
8− in pkgs.writeText "shutdown-ramfs-contents" (lib.concatStringsSep "\n" (storePaths ++ contents));
9−
10−in {
11− options.systemd.shutdownRamfs = {
12− enable = lib.mkEnableOption "pivoting back to an initramfs for shutdown" // { default = true; };
13− contents = lib.mkOption {
14− description = "Set of files that have to be linked into the shutdown ramfs";
15− example = lib.literalExpression ''
16− {
17− "/lib/systemd/system-shutdown/zpool-sync-shutdown".source = writeShellScript "zpool" "exec ''${zfs}/bin/zpool sync"
18− }
19− '';
20− type = utils.systemdUtils.types.initrdContents;
21− };
22−
23− storePaths = lib.mkOption {
24− description = ''
25− Store paths to copy into the shutdown ramfs as well.
26− '';
27− type = lib.types.listOf lib.types.singleLineStr;
28− default = [];
29− };
30− };
31−
32− config = lib.mkIf cfg.enable {
33− systemd.shutdownRamfs.contents."/shutdown".source = "${config.systemd.package}/lib/systemd/systemd-shutdown";
34− systemd.shutdownRamfs.storePaths = [pkgs.runtimeShell "${pkgs.coreutils}/bin"];
35−
36− systemd.services.generate-shutdown-ramfs = {
37− description = "Generate shutdown ramfs";
38− wantedBy = [ "shutdown.target" ];
39− before = [ "shutdown.target" ];
40− unitConfig = {
41− DefaultDependencies = false;
42− ConditionFileIsExecutable = [
43− "!/run/initramfs/shutdown"
44− ];
45− };
46−
47− path = [pkgs.util-linux pkgs.makeInitrdNGTool];
48− serviceConfig.Type = "oneshot";
49− script = ''
50− mkdir -p /run/initramfs
51− if ! mountpoint -q /run/initramfs; then
52− mount -t tmpfs tmpfs /run/initramfs
53− fi
54− make-initrd-ng ${ramfsContents} /run/initramfs
55− '';
56− };
57− };
58−}
nixos/modules/tasks/auto-upgrade.nix+7−32
@@ -63,16 +63,13 @@ in {
6363 };
6464
6565 dates = mkOption {
66− type = types.str;
6766 default = "04:40";
68− example = "daily";
67+ type = types.str;
6968 description = ''
70− How often or when upgrade occurs. For most desktop and server systems
71− a sufficient upgrade frequency is once a day.
72−
73− The format is described in
69+ Specification (in the format described by
7470 <citerefentry><refentrytitle>systemd.time</refentrytitle>
75− <manvolnum>7</manvolnum></citerefentry>.
71+ <manvolnum>7</manvolnum></citerefentry>) of the time at
72+ which the update will occur.
7673 '';
7774 };
7875
@@ -126,22 +123,6 @@ in {
126123 });
127124 };
128125
129− persistent = mkOption {
130− default = true;
131− type = types.bool;
132− example = false;
133− description = ''
134− Takes a boolean argument. If true, the time when the service
135− unit was last triggered is stored on disk. When the timer is
136− activated, the service unit is triggered immediately if it
137− would have been triggered at least once during the time when
138− the timer was inactive. Such triggering is nonetheless
139− subject to the delay imposed by RandomizedDelaySec=. This is
140− useful to catch up on missed runs of the service when the
141− system was powered down.
142− '';
143− };
144−
145126 };
146127
147128 };
@@ -236,17 +217,11 @@ in {
236217 '';
237218
238219 startAt = cfg.dates;
239−
240− after = [ "network-online.target" ];
241− wants = [ "network-online.target" ];
242220 };
243221
244− systemd.timers.nixos-upgrade = {
245− timerConfig = {
246− RandomizedDelaySec = cfg.randomizedDelaySec;
247− Persistent = cfg.persistent;
248− };
249− };
222+ systemd.timers.nixos-upgrade.timerConfig.RandomizedDelaySec =
223+ cfg.randomizedDelaySec;
224+
250225 };
251226
252227}
nixos/modules/tasks/bcache.nix+6−16
@@ -1,23 +1,13 @@
1−{ config, lib, pkgs, ... }:
1+{ pkgs, ... }:
22
33{
4− options.boot.initrd.services.bcache.enable = (lib.mkEnableOption "bcache support in the initrd") // {
5− visible = false; # only works with systemd stage 1
6− };
74
8− config = {
5+ environment.systemPackages = [ pkgs.bcache-tools ];
96
10− environment.systemPackages = [ pkgs.bcache-tools ];
7+ services.udev.packages = [ pkgs.bcache-tools ];
118
12− services.udev.packages = [ pkgs.bcache-tools ];
9+ boot.initrd.extraUdevRulesCommands = ''
10+ cp -v ${pkgs.bcache-tools}/lib/udev/rules.d/*.rules $out/
11+ '';
1312
14− boot.initrd.extraUdevRulesCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ''
15− cp -v ${pkgs.bcache-tools}/lib/udev/rules.d/*.rules $out/
16− '';
17−
18− boot.initrd.services.udev = lib.mkIf config.boot.initrd.services.bcache.enable {
19− packages = [ pkgs.bcache-tools ];
20− binPackages = [ pkgs.bcache-tools ];
21− };
22− };
2313}
nixos/modules/tasks/filesystems/btrfs.nix+3−3
@@ -66,19 +66,19 @@ in
6666 ]
6767 );
6868
69− boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
69+ boot.initrd.extraUtilsCommands = mkIf inInitrd
7070 ''
7171 copy_bin_and_libs ${pkgs.btrfs-progs}/bin/btrfs
7272 ln -sv btrfs $out/bin/btrfsck
7373 ln -sv btrfsck $out/bin/fsck.btrfs
7474 '';
7575
76− boot.initrd.extraUtilsCommandsTest = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
76+ boot.initrd.extraUtilsCommandsTest = mkIf inInitrd
7777 ''
7878 $out/bin/btrfs --version
7979 '';
8080
81− boot.initrd.postDeviceCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
81+ boot.initrd.postDeviceCommands = mkIf inInitrd
8282 ''
8383 btrfs device scan
8484 '';
nixos/modules/tasks/filesystems/cifs.nix+1−1
@@ -16,7 +16,7 @@ in
1616 boot.initrd.availableKernelModules = mkIf inInitrd
1717 [ "cifs" "nls_utf8" "hmac" "md4" "ecb" "des_generic" "sha256" ];
1818
19− boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
19+ boot.initrd.extraUtilsCommands = mkIf inInitrd
2020 ''
2121 copy_bin_and_libs ${pkgs.cifs-utils}/sbin/mount.cifs
2222 '';
nixos/modules/tasks/filesystems/ext.nix+4−10
@@ -1,20 +1,14 @@
1−{ config, lib, pkgs, ... }:
2−
3−let
4−
5− inInitrd = lib.any (fs: fs == "ext2" || fs == "ext3" || fs == "ext4") config.boot.initrd.supportedFilesystems;
6−
7−in
1+{ pkgs, ... }:
82
93{
104 config = {
115
12− system.fsPackages = lib.mkIf (config.boot.initrd.systemd.enable -> inInitrd) [ pkgs.e2fsprogs ];
6+ system.fsPackages = [ pkgs.e2fsprogs ];
137
148 # As of kernel 4.3, there is no separate ext3 driver (they're also handled by ext4.ko)
15− boot.initrd.availableKernelModules = lib.mkIf (config.boot.initrd.systemd.enable -> inInitrd) [ "ext2" "ext4" ];
9+ boot.initrd.availableKernelModules = [ "ext2" "ext4" ];
1610
17− boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable)
11+ boot.initrd.extraUtilsCommands =
1812 ''
1913 # Copy e2fsck and friends.
2014 copy_bin_and_libs ${pkgs.e2fsprogs}/sbin/e2fsck
nixos/modules/tasks/filesystems/f2fs.nix+1−1
@@ -13,7 +13,7 @@ in
1313
1414 boot.initrd.availableKernelModules = mkIf inInitrd [ "f2fs" "crc32" ];
1515
16− boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable) ''
16+ boot.initrd.extraUtilsCommands = mkIf inInitrd ''
1717 copy_bin_and_libs ${pkgs.f2fs-tools}/sbin/fsck.f2fs
1818 ${optionalString (any (fs: fs.autoResize) fileSystems) ''
1919 # We need f2fs-tools' tools to resize filesystems
nixos/modules/tasks/filesystems/jfs.nix+1−1
@@ -12,7 +12,7 @@ in
1212
1313 boot.initrd.kernelModules = mkIf inInitrd [ "jfs" ];
1414
15− boot.initrd.extraUtilsCommands = mkIf (inInitrd && !boot.initrd.systemd.enable) ''
15+ boot.initrd.extraUtilsCommands = mkIf inInitrd ''
1616 copy_bin_and_libs ${pkgs.jfsutils}/sbin/fsck.jfs
1717 '';
1818 };
nixos/modules/tasks/filesystems/reiserfs.nix+1−1
@@ -15,7 +15,7 @@ in
1515
1616 boot.initrd.kernelModules = mkIf inInitrd [ "reiserfs" ];
1717
18− boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
18+ boot.initrd.extraUtilsCommands = mkIf inInitrd
1919 ''
2020 copy_bin_and_libs ${pkgs.reiserfsprogs}/sbin/reiserfsck
2121 ln -s reiserfsck $out/bin/fsck.reiserfs
nixos/modules/tasks/filesystems/unionfs-fuse.nix+2−13
@@ -6,7 +6,7 @@
66 (lib.mkIf (lib.any (fs: fs == "unionfs-fuse") config.boot.initrd.supportedFilesystems) {
77 boot.initrd.kernelModules = [ "fuse" ];
88
9− boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ''
9+ boot.initrd.extraUtilsCommands = ''
1010 copy_bin_and_libs ${pkgs.fuse}/sbin/mount.fuse
1111 copy_bin_and_libs ${pkgs.unionfs-fuse}/bin/unionfs
1212 substitute ${pkgs.unionfs-fuse}/sbin/mount.unionfs-fuse $out/bin/mount.unionfs-fuse \
@@ -16,23 +16,12 @@
1616 chmod +x $out/bin/mount.unionfs-fuse
1717 '';
1818
19− boot.initrd.postDeviceCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ''
19+ boot.initrd.postDeviceCommands = ''
2020 # Hacky!!! fuse hard-codes the path to mount
2121 mkdir -p /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
2222 ln -s $(which mount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
2323 ln -s $(which umount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
2424 '';
25−
26− boot.initrd.systemd.extraBin = {
27− "mount.fuse" = "${pkgs.fuse}/bin/mount.fuse";
28− "unionfs" = "${pkgs.unionfs-fuse}/bin/unionfs";
29− "mount.unionfs-fuse" = pkgs.runCommand "mount.unionfs-fuse" {} ''
30− substitute ${pkgs.unionfs-fuse}/sbin/mount.unionfs-fuse $out \
31− --replace '${pkgs.bash}/bin/bash' /bin/sh \
32− --replace '${pkgs.fuse}/sbin' /bin \
33− --replace '${pkgs.unionfs-fuse}/bin' /bin
34− '';
35− };
3625 })
3726
3827 (lib.mkIf (lib.any (fs: fs == "unionfs-fuse") config.boot.supportedFilesystems) {
nixos/modules/tasks/filesystems/vfat.nix+1−1
@@ -15,7 +15,7 @@ in
1515
1616 boot.initrd.kernelModules = mkIf inInitrd [ "vfat" "nls_cp437" "nls_iso8859-1" ];
1717
18− boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
18+ boot.initrd.extraUtilsCommands = mkIf inInitrd
1919 ''
2020 copy_bin_and_libs ${pkgs.dosfstools}/sbin/dosfsck
2121 ln -sv dosfsck $out/bin/fsck.vfat
nixos/modules/tasks/filesystems/xfs.nix+2−2
@@ -15,14 +15,14 @@ in
1515
1616 boot.initrd.availableKernelModules = mkIf inInitrd [ "xfs" "crc32c" ];
1717
18− boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
18+ boot.initrd.extraUtilsCommands = mkIf inInitrd
1919 ''
2020 copy_bin_and_libs ${pkgs.xfsprogs.bin}/bin/fsck.xfs
2121 copy_bin_and_libs ${pkgs.xfsprogs.bin}/bin/xfs_repair
2222 '';
2323
2424 # Trick just to set 'sh' after the extraUtils nuke-refs.
25− boot.initrd.extraUtilsCommandsTest = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
25+ boot.initrd.extraUtilsCommandsTest = mkIf inInitrd
2626 ''
2727 sed -i -e 's,^#!.*,#!'$out/bin/sh, $out/bin/fsck.xfs
2828 '';
nixos/modules/tasks/filesystems/zfs.nix−5
@@ -466,11 +466,6 @@ in
466466 '') rootPools));
467467 };
468468
469− systemd.shutdownRamfs.contents."/etc/systemd/system-shutdown/zpool".source = pkgs.writeShellScript "zpool-sync-shutdown" ''
470− exec ${cfgZfs.package}/bin/zpool sync
471− '';
472− systemd.shutdownRamfs.storePaths = ["${cfgZfs.package}/bin/zpool"];
473−
474469 # TODO FIXME See https://github.com/NixOS/nixpkgs/pull/99386#issuecomment-798813567. To not break people's bootloader and as probably not everybody would read release notes that thoroughly add inSystem.
475470 boot.loader.grub = mkIf (inInitrd || inSystem) {
476471 zfsSupport = true;
nixos/modules/tasks/lvm.nix+6−27
@@ -21,10 +21,6 @@ in {
2121 boot.vdo.enable = mkEnableOption "support for booting from VDOLVs";
2222 };
2323
24− options.boot.initrd.services.lvm.enable = (mkEnableOption "enable booting from LVM2 in the initrd") // {
25− visible = false;
26− };
27−
2824 config = mkMerge [
2925 ({
3026 # minimal configuration file to make lvmconfig/lvm2-activation-generator happy
@@ -35,13 +31,8 @@ in {
3531 environment.systemPackages = [ cfg.package ];
3632 systemd.packages = [ cfg.package ];
3733
34+ # TODO: update once https://github.com/NixOS/nixpkgs/pull/93006 was merged
3835 services.udev.packages = [ cfg.package.out ];
39−
40− # We need lvm2 for the device-mapper rules
41− boot.initrd.services.udev.packages = lib.mkIf config.boot.initrd.services.lvm.enable [ cfg.package ];
42− # The device-mapper rules want to call tools from lvm2
43− boot.initrd.systemd.initrdBin = lib.mkIf config.boot.initrd.services.lvm.enable [ cfg.package ];
44− boot.initrd.services.udev.binPackages = lib.mkIf config.boot.initrd.services.lvm.enable [ cfg.package ];
4536 })
4637 (mkIf cfg.dmeventd.enable {
4738 systemd.sockets."dm-event".wantedBy = [ "sockets.target" ];
@@ -56,15 +47,13 @@ in {
5647 boot.initrd = {
5748 kernelModules = [ "dm-snapshot" "dm-thin-pool" ];
5849
59− systemd.initrdBin = lib.mkIf config.boot.initrd.services.lvm.enable [ pkgs.thin-provisioning-tools ];
60−
61− extraUtilsCommands = mkIf (!config.boot.initrd.systemd.enable) ''
50+ extraUtilsCommands = ''
6251 for BIN in ${pkgs.thin-provisioning-tools}/bin/*; do
6352 copy_bin_and_libs $BIN
6453 done
6554 '';
6655
67− extraUtilsCommandsTest = mkIf (!config.boot.initrd.systemd.enable) ''
56+ extraUtilsCommandsTest = ''
6857 ls ${pkgs.thin-provisioning-tools}/bin/ | grep -v pdata_tools | while read BIN; do
6958 $out/bin/$(basename $BIN) --help > /dev/null
7059 done
@@ -82,15 +71,13 @@ in {
8271 initrd = {
8372 kernelModules = [ "kvdo" ];
8473
85− systemd.initrdBin = lib.mkIf config.boot.initrd.services.lvm.enable [ pkgs.vdo ];
86−
87− extraUtilsCommands = mkIf (!config.boot.initrd.systemd.enable)''
74+ extraUtilsCommands = ''
8875 ls ${pkgs.vdo}/bin/ | grep -v adaptLVMVDO | while read BIN; do
8976 copy_bin_and_libs ${pkgs.vdo}/bin/$BIN
9077 done
9178 '';
9279
93− extraUtilsCommandsTest = mkIf (!config.boot.initrd.systemd.enable)''
80+ extraUtilsCommandsTest = ''
9481 ls ${pkgs.vdo}/bin/ | grep -v adaptLVMVDO | while read BIN; do
9582 $out/bin/$(basename $BIN) --help > /dev/null
9683 done
@@ -104,15 +91,7 @@ in {
10491 environment.systemPackages = [ pkgs.vdo ];
10592 })
10693 (mkIf (cfg.dmeventd.enable || cfg.boot.thin.enable) {
107− boot.initrd.systemd.contents."/etc/lvm/lvm.conf".text = optionalString (config.boot.initrd.services.lvm.enable && cfg.boot.thin.enable) (concatMapStringsSep "\n"
108− (bin: "global/${bin}_executable = /bin/${bin}")
109− [ "thin_check" "thin_dump" "thin_repair" "cache_check" "cache_dump" "cache_repair" ]
110− ) + "\n" + optionalString cfg.dmeventd.enable ''
111− dmeventd/executable = /bin/false
112− activation/monitoring = 0
113− '';
114−
115− boot.initrd.preLVMCommands = mkIf (!config.boot.initrd.systemd.enable) ''
94+ boot.initrd.preLVMCommands = ''
11695 mkdir -p /etc/lvm
11796 cat << EOF >> /etc/lvm/lvm.conf
11897 ${optionalString cfg.boot.thin.enable (
nixos/modules/tasks/network-interfaces.nix+10−11
@@ -403,15 +403,6 @@ let
403403 </itemizedlist>
404404 '';
405405
406− hostidFile = pkgs.runCommand "gen-hostid" { preferLocalBuild = true; } ''
407− hi="${cfg.hostId}"
408− ${if pkgs.stdenv.isBigEndian then ''
409− echo -ne "\x''${hi:0:2}\x''${hi:2:2}\x''${hi:4:2}\x''${hi:6:2}" > $out
410− '' else ''
411− echo -ne "\x''${hi:6:2}\x''${hi:4:2}\x''${hi:2:2}\x''${hi:0:2}" > $out
412− ''}
413− '';
414−
415406in
416407
417408{
@@ -1392,8 +1383,16 @@ in
13921383 domainname "${cfg.domain}"
13931384 '';
13941385
1395− environment.etc.hostid = mkIf (cfg.hostId != null) { source = hostidFile; };
1396− boot.initrd.systemd.contents."/etc/hostid" = mkIf (cfg.hostId != null) { source = hostidFile; };
1386+ environment.etc.hostid = mkIf (cfg.hostId != null)
1387+ { source = pkgs.runCommand "gen-hostid" { preferLocalBuild = true; } ''
1388+ hi="${cfg.hostId}"
1389+ ${if pkgs.stdenv.isBigEndian then ''
1390+ echo -ne "\x''${hi:0:2}\x''${hi:2:2}\x''${hi:4:2}\x''${hi:6:2}" > $out
1391+ '' else ''
1392+ echo -ne "\x''${hi:6:2}\x''${hi:4:2}\x''${hi:2:2}\x''${hi:0:2}" > $out
1393+ ''}
1394+ '';
1395+ };
13971396
13981397 # static hostname configuration needed for hostnamectl and the
13991398 # org.freedesktop.hostname1 dbus service (both provided by systemd)
nixos/modules/tasks/swraid.nix+9−35
@@ -1,43 +1,17 @@
1−{ config, pkgs, lib, ... }: let
1+{ pkgs, ... }:
22
3− cfg = config.boot.initrd.services.swraid;
3+{
44
5−in {
5+ environment.systemPackages = [ pkgs.mdadm ];
66
7− options.boot.initrd.services.swraid = {
8− enable = (lib.mkEnableOption "swraid support using mdadm") // {
9− visible = false; # only has effect when the new stage 1 is in place
10− };
7+ services.udev.packages = [ pkgs.mdadm ];
118
12− mdadmConf = lib.mkOption {
13− description = "Contents of <filename>/etc/mdadm.conf</filename> in initrd.";
14− type = lib.types.lines;
15− default = "";
16− };
17− };
9+ systemd.packages = [ pkgs.mdadm ];
1810
19− config = {
20− environment.systemPackages = [ pkgs.mdadm ];
11+ boot.initrd.availableKernelModules = [ "md_mod" "raid0" "raid1" "raid10" "raid456" ];
2112
22− services.udev.packages = [ pkgs.mdadm ];
13+ boot.initrd.extraUdevRulesCommands = ''
14+ cp -v ${pkgs.mdadm}/lib/udev/rules.d/*.rules $out/
15+ '';
2316
24− systemd.packages = [ pkgs.mdadm ];
25−
26− boot.initrd.availableKernelModules = lib.mkIf (config.boot.initrd.systemd.enable -> cfg.enable) [ "md_mod" "raid0" "raid1" "raid10" "raid456" ];
27−
28− boot.initrd.extraUdevRulesCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ''
29− cp -v ${pkgs.mdadm}/lib/udev/rules.d/*.rules $out/
30− '';
31−
32− boot.initrd.systemd = lib.mkIf cfg.enable {
33− contents."/etc/mdadm.conf" = lib.mkIf (cfg.mdadmConf != "") {
34− text = cfg.mdadmConf;
35− };
36−
37− packages = [ pkgs.mdadm ];
38− initrdBin = [ pkgs.mdadm ];
39− };
40−
41− boot.initrd.services.udev.packages = lib.mkIf cfg.enable [ pkgs.mdadm ];
42− };
4317}
nixos/modules/testing/test-instrumentation.nix+26−19
@@ -65,26 +65,33 @@ in
6565 };
6666 };
6767
68− boot.kernel.sysctl = {
69− "kernel.hung_task_timeout_secs" = 600;
70− # Panic on out-of-memory conditions rather than letting the
71− # OOM killer randomly get rid of processes, since this leads
72− # to failures that are hard to diagnose.
73− "vm.panic_on_oom" = lib.mkDefault 2;
74− };
68+ boot.initrd.preDeviceCommands =
69+ ''
70+ echo 600 > /proc/sys/kernel/hung_task_timeout_secs
71+ '';
7572
76− boot.kernelParams = [
77− "console=${qemu-common.qemuSerialDevice}"
78− # Panic if an error occurs in stage 1 (rather than waiting for
79− # user intervention).
80− "panic=1" "boot.panic_on_fail"
81− # Using acpi_pm as a clock source causes the guest clock to
82− # slow down under high host load. This is usually a bad
83− # thing, but for VM tests it should provide a bit more
84− # determinism (e.g. if the VM runs at lower speed, then
85− # timeouts in the VM should also be delayed).
86− "clock=acpi_pm"
87− ];
73+ boot.initrd.postDeviceCommands =
74+ ''
75+ # Using acpi_pm as a clock source causes the guest clock to
76+ # slow down under high host load. This is usually a bad
77+ # thing, but for VM tests it should provide a bit more
78+ # determinism (e.g. if the VM runs at lower speed, then
79+ # timeouts in the VM should also be delayed).
80+ echo acpi_pm > /sys/devices/system/clocksource/clocksource0/current_clocksource
81+ '';
82+
83+ boot.postBootCommands =
84+ ''
85+ # Panic on out-of-memory conditions rather than letting the
86+ # OOM killer randomly get rid of processes, since this leads
87+ # to failures that are hard to diagnose.
88+ echo 2 > /proc/sys/vm/panic_on_oom
89+ '';
90+
91+ # Panic if an error occurs in stage 1 (rather than waiting for
92+ # user intervention).
93+ boot.kernelParams =
94+ [ "console=${qemu-common.qemuSerialDevice}" "panic=1" "boot.panic_on_fail" ];
8895
8996 # `xwininfo' is used by the test driver to query open windows.
9097 environment.systemPackages = [ pkgs.xorg.xwininfo ];
nixos/modules/virtualisation/azure-common.nix+1−5
@@ -21,11 +21,7 @@ with lib;
2121 # way to select them anyway.
2222 boot.loader.grub.configurationLimit = 0;
2323
24− fileSystems."/" = {
25− device = "/dev/disk/by-label/nixos";
26− fsType = "ext4";
27− autoResize = true;
28− };
24+ fileSystems."/".device = "/dev/disk/by-label/nixos";
2925
3026 # Allow root logins only using the SSH key that the user specified
3127 # at instance creation time, ping client connections to avoid timeouts
nixos/modules/virtualisation/libvirtd.nix−4
@@ -344,10 +344,6 @@ in
344344 restartIfChanged = false;
345345 };
346346
347− systemd.services.virtchd = {
348− path = [ pkgs.cloud-hypervisor ];
349− };
350−
351347 systemd.services.libvirt-guests = {
352348 wantedBy = [ "multi-user.target" ];
353349 path = with pkgs; [ coreutils gawk cfg.package ];
nixos/modules/virtualisation/nixos-containers.nix+11−26
@@ -4,11 +4,6 @@ with lib;
44
55let
66
7− configurationPrefix = optionalString (versionAtLeast config.system.stateVersion "22.05") "nixos-";
8− configurationDirectoryName = "${configurationPrefix}containers";
9− configurationDirectory = "/etc/${configurationDirectoryName}";
10− stateDirectory = "/var/lib/${configurationPrefix}containers";
11−
127 # The container's init script, a small wrapper around the regular
138 # NixOS stage-2 init script.
149 containerInit = (cfg:
@@ -82,7 +77,7 @@ let
8277 startScript = cfg:
8378 ''
8479 mkdir -p -m 0755 "$root/etc" "$root/var/lib"
85− mkdir -p -m 0700 "$root/var/lib/private" "$root/root" /run/nixos-containers
80+ mkdir -p -m 0700 "$root/var/lib/private" "$root/root" /run/containers
8681 if ! [ -e "$root/etc/os-release" ]; then
8782 touch "$root/etc/os-release"
8883 fi
@@ -254,11 +249,11 @@ let
254249
255250 SyslogIdentifier = "container %i";
256251
257− EnvironmentFile = "-${configurationDirectory}/%i.conf";
252+ EnvironmentFile = "-/etc/containers/%i.conf";
258253
259254 Type = "notify";
260255
261− RuntimeDirectory = lib.optional cfg.ephemeral "${configurationDirectoryName}/%i";
256+ RuntimeDirectory = lib.optional cfg.ephemeral "containers/%i";
262257
263258 # Note that on reboot, systemd-nspawn returns 133, so this
264259 # unit will be restarted. On poweroff, it returns 0, so the
@@ -742,21 +737,15 @@ in
742737
743738 config = mkIf (config.boot.enableContainers) (let
744739
745− warnings = flatten [
746− (optional (config.virtualisation.containers.enable && versionOlder config.system.stateVersion "22.05") ''
747− Enabling both boot.enableContainers & virtualisation.containers on system.stateVersion < 22.05 is unsupported.
748− '')
749− ];
750−
751740 unit = {
752741 description = "Container '%i'";
753742
754− unitConfig.RequiresMountsFor = "${stateDirectory}/%i";
743+ unitConfig.RequiresMountsFor = "/var/lib/containers/%i";
755744
756745 path = [ pkgs.iproute2 ];
757746
758747 environment = {
759− root = "${stateDirectory}/%i";
748+ root = "/var/lib/containers/%i";
760749 INSTANCE = "%i";
761750 };
762751
@@ -793,8 +782,8 @@ in
793782 script = startScript containerConfig;
794783 postStart = postStartScript containerConfig;
795784 serviceConfig = serviceDirectives containerConfig;
796− unitConfig.RequiresMountsFor = lib.optional (!containerConfig.ephemeral) "${stateDirectory}/%i";
797− environment.root = if containerConfig.ephemeral then "/run/nixos-containers/%i" else "${stateDirectory}/%i";
785+ unitConfig.RequiresMountsFor = lib.optional (!containerConfig.ephemeral) "/var/lib/containers/%i";
786+ environment.root = if containerConfig.ephemeral then "/run/containers/%i" else "/var/lib/containers/%i";
798787 } // (
799788 if containerConfig.autoStart then
800789 {
@@ -803,7 +792,7 @@ in
803792 after = [ "network.target" ];
804793 restartTriggers = [
805794 containerConfig.path
806− config.environment.etc."${configurationDirectoryName}/${name}.conf".source
795+ config.environment.etc."containers/${name}.conf".source
807796 ];
808797 restartIfChanged = true;
809798 }
@@ -811,12 +800,12 @@ in
811800 )) config.containers)
812801 ));
813802
814− # Generate a configuration file in /etc/nixos-containers for each
803+ # Generate a configuration file in /etc/containers for each
815804 # container so that container@.target can get the container
816805 # configuration.
817806 environment.etc =
818807 let mkPortStr = p: p.protocol + ":" + (toString p.hostPort) + ":" + (if p.containerPort == null then toString p.hostPort else toString p.containerPort);
819− in mapAttrs' (name: cfg: nameValuePair "${configurationDirectoryName}/${name}.conf"
808+ in mapAttrs' (name: cfg: nameValuePair "containers/${name}.conf"
820809 { text =
821810 ''
822811 SYSTEM_PATH=${cfg.path}
@@ -865,11 +854,7 @@ in
865854 ENV{INTERFACE}=="v[eb]-*", ENV{NM_UNMANAGED}="1"
866855 '';
867856
868− environment.systemPackages = [
869− (pkgs.nixos-container.override {
870− inherit stateDirectory configurationDirectory;
871− })
872− ];
857+ environment.systemPackages = [ pkgs.nixos-container ];
873858
874859 boot.kernelModules = [
875860 "bridge"
nixos/modules/virtualisation/oci-containers.nix+5−1
@@ -338,7 +338,11 @@ in {
338338
339339 backend = mkOption {
340340 type = types.enum [ "podman" "docker" ];
341− default = if versionAtLeast config.system.stateVersion "22.05" then "podman" else "docker";
341+ default =
342+ # TODO: Once https://github.com/NixOS/nixpkgs/issues/77925 is resolved default to podman
343+ # if versionAtLeast config.system.stateVersion "20.09" then "podman"
344+ # else "docker";
345+ "docker";
342346 description = "The underlying Docker implementation to use.";
343347 };
344348
nixos/modules/virtualisation/openstack-config.nix+7−39
@@ -1,11 +1,8 @@
1−{ config, pkgs, lib, ... }:
1+{ pkgs, lib, ... }:
22
3−# image metadata:
4−# hw_firmware_type=uefi
3+with lib;
54
65let
7− inherit (lib) mkIf mkDefault;
8− cfg = config.openstack;
96 metadataFetcher = import ./openstack-metadata-fetcher.nix {
107 targetRoot = "/";
118 wgetExtraOptions = "--retry-connrefused";
@@ -14,47 +11,23 @@ in
1411{
1512 imports = [
1613 ../profiles/qemu-guest.nix
17−
18− # Note: While we do use the headless profile, we also explicitly
19− # turn on the serial console on tty1 below.
20− # Note that I could not find any documentation indicating tty1 was
21− # the correct choice. I picked tty1 because that is what one
22− # particular host was using.
2314 ../profiles/headless.nix
24−
2515 # The Openstack Metadata service exposes data on an EC2 API also.
2616 ./ec2-data.nix
2717 ./amazon-init.nix
2818 ];
2919
3020 config = {
31− fileSystems."/" = mkIf (!cfg.zfs.enable) {
21+ fileSystems."/" = {
3222 device = "/dev/disk/by-label/nixos";
3323 fsType = "ext4";
3424 autoResize = true;
3525 };
3626
37− fileSystems."/boot" = mkIf (cfg.efi || cfg.zfs.enable) {
38− # The ZFS image uses a partition labeled ESP whether or not we're
39− # booting with EFI.
40− device = "/dev/disk/by-label/ESP";
41− fsType = "vfat";
42− };
43−
4427 boot.growPartition = true;
45− boot.kernelParams = [ "console=tty1" ];
46− boot.loader.grub.device = if (!cfg.efi) then "/dev/vda" else "nodev";
47− boot.loader.grub.efiSupport = cfg.efi;
48− boot.loader.grub.efiInstallAsRemovable = cfg.efi;
49− boot.loader.timeout = 1;
50− boot.loader.grub.extraConfig = ''
51− serial --unit=1 --speed=115200 --word=8 --parity=no --stop=1
52− terminal_output console serial
53− terminal_input console serial
54− '';
55−
56− services.zfs.expandOnBoot = mkIf cfg.zfs.enable (lib.mkDefault "all");
57− boot.zfs.devNodes = mkIf cfg.zfs.enable "/dev/";
28+ boot.kernelParams = [ "console=ttyS0" ];
29+ boot.loader.grub.device = "/dev/vda";
30+ boot.loader.timeout = 0;
5831
5932 # Allow root logins
6033 services.openssh = {
@@ -63,11 +36,6 @@ in
6336 passwordAuthentication = mkDefault false;
6437 };
6538
66− users.users.root.initialPassword = "foobar";
67−
68− # Enable the serial console on tty1
69− systemd.services."serial-getty@tty1".enable = true;
70−
7139 # Force getting the hostname from Openstack metadata.
7240 networking.hostName = mkDefault "";
7341
@@ -75,7 +43,7 @@ in
7543 path = [ pkgs.wget ];
7644 description = "Fetch Metadata on startup";
7745 wantedBy = [ "multi-user.target" ];
78− before = [ "apply-ec2-data.service" "amazon-init.service" ];
46+ before = [ "apply-ec2-data.service" "amazon-init.service"];
7947 wants = [ "network-online.target" ];
8048 after = [ "network-online.target" ];
8149 script = metadataFetcher;
nixos/modules/virtualisation/openstack-metadata-fetcher.nix+3−3
@@ -14,9 +14,9 @@
1414 wget ${wgetExtraOptions} "$@"
1515 }
1616
17− wget_imds -O "$metaDir/ami-manifest-path" http://169.254.169.254/1.0/meta-data/ami-manifest-path || true
17+ wget_imds -O "$metaDir/ami-manifest-path" http://169.254.169.254/1.0/meta-data/ami-manifest-path
1818 # When no user-data is provided, the OpenStack metadata server doesn't expose the user-data route.
1919 (umask 077 && wget_imds -O "$metaDir/user-data" http://169.254.169.254/1.0/user-data || rm -f "$metaDir/user-data")
20− wget_imds -O "$metaDir/hostname" http://169.254.169.254/1.0/meta-data/hostname || true
21− wget_imds -O "$metaDir/public-keys-0-openssh-key" http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key || true
20+ wget_imds -O "$metaDir/hostname" http://169.254.169.254/1.0/meta-data/hostname
21+ wget_imds -O "$metaDir/public-keys-0-openssh-key" http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key
2222''
nixos/modules/virtualisation/openstack-options.nixdeleted−71
@@ -1,71 +0,0 @@
1−{ config, lib, pkgs, ... }:
2−let
3− inherit (lib) literalExpression types;
4−in
5−{
6− options = {
7− openstack = {
8− zfs = {
9− enable = lib.mkOption {
10− default = false;
11− internal = true;
12− description = ''
13− Whether the OpenStack instance uses a ZFS root.
14− '';
15− };
16−
17− datasets = lib.mkOption {
18− description = ''
19− Datasets to create under the `tank` and `boot` zpools.
20−
21− **NOTE:** This option is used only at image creation time, and
22− does not attempt to declaratively create or manage datasets
23− on an existing system.
24− '';
25−
26− default = { };
27−
28− type = types.attrsOf (types.submodule {
29− options = {
30− mount = lib.mkOption {
31− description = "Where to mount this dataset.";
32− type = types.nullOr types.string;
33− default = null;
34− };
35−
36− properties = lib.mkOption {
37− description = "Properties to set on this dataset.";
38− type = types.attrsOf types.string;
39− default = { };
40− };
41− };
42− });
43− };
44− };
45−
46− efi = lib.mkOption {
47− default = pkgs.stdenv.hostPlatform.isAarch64;
48− defaultText = literalExpression "pkgs.stdenv.hostPlatform.isAarch64";
49− internal = true;
50− description = ''
51− Whether the instance is using EFI.
52− '';
53− };
54− };
55− };
56−
57− config = lib.mkIf config.openstack.zfs.enable {
58− networking.hostId = lib.mkDefault "00000000";
59−
60− fileSystems =
61− let
62− mountable = lib.filterAttrs (_: value: ((value.mount or null) != null)) config.openstack.zfs.datasets;
63− in
64− lib.mapAttrs'
65− (dataset: opts: lib.nameValuePair opts.mount {
66− device = dataset;
67− fsType = "zfs";
68− })
69− mountable;
70− };
71−}
nixos/modules/virtualisation/qemu-vm.nix+5−14
@@ -754,13 +754,13 @@ in
754754 );
755755 boot.loader.grub.gfxmodeBios = with cfg.resolution; "${toString x}x${toString y}";
756756
757− boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable)
757+ boot.initrd.extraUtilsCommands =
758758 ''
759759 # We need mke2fs in the initrd.
760760 copy_bin_and_libs ${pkgs.e2fsprogs}/bin/mke2fs
761761 '';
762762
763− boot.initrd.postDeviceCommands = lib.mkIf (!config.boot.initrd.systemd.enable)
763+ boot.initrd.postDeviceCommands =
764764 ''
765765 # If the disk image appears to be empty, run mke2fs to
766766 # initialise.
@@ -770,7 +770,7 @@ in
770770 fi
771771 '';
772772
773− boot.initrd.postMountCommands = lib.mkIf (!config.boot.initrd.systemd.enable)
773+ boot.initrd.postMountCommands =
774774 ''
775775 # Mark this as a NixOS machine.
776776 mkdir -p $targetRoot/etc
@@ -789,11 +789,6 @@ in
789789 ''}
790790 '';
791791
792− systemd.tmpfiles.rules = lib.mkIf config.boot.initrd.systemd.enable [
793− "f /etc/NIXOS 0644 root root -"
794− "d /boot 0644 root root -"
795− ];
796−
797792 # After booting, register the closure of the paths in
798793 # `virtualisation.additionalPaths' in the Nix database in the VM. This
799794 # allows Nix operations to work in the VM. The path to the
@@ -858,12 +853,8 @@ in
858853 (mkIf (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [
859854 "-device virtio-gpu-pci" "-device usb-ehci,id=usb0" "-device usb-kbd" "-device usb-tablet"
860855 ])
861− (let
862− alphaNumericChars = lowerChars ++ upperChars ++ (map toString (range 0 9));
863− # Replace all non-alphanumeric characters with underscores
864− sanitizeShellIdent = s: concatMapStrings (c: if builtins.elem c alphaNumericChars then c else "_") (stringToCharacters s);
865− in mkIf (!cfg.useBootLoader) [
866− "-kernel \${NIXPKGS_QEMU_KERNEL_${sanitizeShellIdent config.system.name}:-${config.system.build.toplevel}/kernel}"
856+ (mkIf (!cfg.useBootLoader) [
857+ "-kernel \${NIXPKGS_QEMU_KERNEL_${config.system.name}:-${config.system.build.toplevel}/kernel}"
867858 "-initrd ${config.system.build.toplevel}/initrd"
868859 ''-append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${consoles} $QEMU_KERNEL_PARAMS"''
869860 ])
nixos/modules/virtualisation/vmware-host.nixdeleted−166
@@ -1,166 +0,0 @@
1−{ config, pkgs, lib, ... }:
2−
3−let
4− cfg = config.virtualisation.vmware.host;
5− wrapperDir = "/run/vmware/bin"; # Perfectly fits as /usr/local/bin
6− parentWrapperDir = dirOf wrapperDir;
7− vmwareWrappers = # Needed as hardcoded paths workaround
8− let mkVmwareSymlink =
9− program:
10− ''
11− ln -s "${config.security.wrapperDir}/${program}" $wrapperDir/${program}
12− '';
13− in
14− [
15− (mkVmwareSymlink "pkexec")
16− (mkVmwareSymlink "mount")
17− (mkVmwareSymlink "umount")
18− ];
19−in
20−{
21− options = with lib; {
22− virtualisation.vmware.host = {
23− enable = mkEnableOption "VMware" // {
24− description = ''
25− This enables VMware host virtualisation for running VMs.
26−
27− <important><para>
28− <literal>vmware-vmx</literal> will cause kcompactd0 due to
29− <literal>Transparent Hugepages</literal> feature in kernel.
30− Apply <literal>[ "transparent_hugepage=never" ]</literal> in
31− option <option>boot.kernelParams</option> to disable them.
32− </para></important>
33−
34− <note><para>
35− If that didn't work disable <literal>TRANSPARENT_HUGEPAGE</literal>,
36− <literal>COMPACTION</literal> configs and recompile kernel.
37− </para></note>
38− '';
39− };
40− package = mkOption {
41− type = types.package;
42− default = pkgs.vmware-workstation;
43− defaultText = literalExpression "pkgs.vmware-workstation";
44− description = "VMware host virtualisation package to use";
45− };
46− extraPackages = mkOption {
47− type = with types; listOf package;
48− default = with pkgs; [ ];
49− description = "Extra packages to be used with VMware host.";
50− example = "with pkgs; [ ntfs3g ]";
51− };
52− extraConfig = mkOption {
53− type = types.lines;
54− default = "";
55− description = "Add extra config to /etc/vmware/config";
56− example = ''
57− # Allow unsupported device's OpenGL and Vulkan acceleration for guest vGPU
58− mks.gl.allowUnsupportedDrivers = "TRUE"
59− mks.vk.allowUnsupportedDevices = "TRUE"
60− '';
61− };
62− };
63− };
64−
65− config = lib.mkIf cfg.enable {
66− boot.extraModulePackages = [ config.boot.kernelPackages.vmware ];
67− boot.extraModprobeConfig = "alias char-major-10-229 fuse";
68− boot.kernelModules = [ "vmw_pvscsi" "vmw_vmci" "vmmon" "vmnet" "fuse" ];
69−
70− environment.systemPackages = [ cfg.package ] ++ cfg.extraPackages;
71− services.printing.drivers = [ cfg.package ];
72−
73− environment.etc."vmware/config".text = ''
74− ${builtins.readFile "${cfg.package}/etc/vmware/config"}
75− ${cfg.extraConfig}
76− '';
77−
78− environment.etc."vmware/bootstrap".source = "${cfg.package}/etc/vmware/bootstrap";
79− environment.etc."vmware/icu".source = "${cfg.package}/etc/vmware/icu";
80− environment.etc."vmware-installer".source = "${cfg.package}/etc/vmware-installer";
81−
82− # SUID wrappers
83−
84− security.wrappers = {
85− vmware-vmx = {
86− setuid = true;
87− owner = "root";
88− group = "root";
89− source = "${cfg.package}/lib/vmware/bin/.vmware-vmx-wrapped";
90− };
91− };
92−
93− ###### wrappers activation script
94−
95− system.activationScripts.vmwareWrappers =
96− lib.stringAfter [ "specialfs" "users" ]
97− ''
98− mkdir -p "${parentWrapperDir}"
99− chmod 755 "${parentWrapperDir}"
100− # We want to place the tmpdirs for the wrappers to the parent dir.
101− wrapperDir=$(mktemp --directory --tmpdir="${parentWrapperDir}" wrappers.XXXXXXXXXX)
102− chmod a+rx "$wrapperDir"
103− ${lib.concatStringsSep "\n" (vmwareWrappers)}
104− if [ -L ${wrapperDir} ]; then
105− # Atomically replace the symlink
106− # See https://axialcorps.com/2013/07/03/atomically-replacing-files-and-directories/
107− old=$(readlink -f ${wrapperDir})
108− if [ -e "${wrapperDir}-tmp" ]; then
109− rm --force --recursive "${wrapperDir}-tmp"
110− fi
111− ln --symbolic --force --no-dereference "$wrapperDir" "${wrapperDir}-tmp"
112− mv --no-target-directory "${wrapperDir}-tmp" "${wrapperDir}"
113− rm --force --recursive "$old"
114− else
115− # For initial setup
116− ln --symbolic "$wrapperDir" "${wrapperDir}"
117− fi
118− '';
119−
120− # Services
121−
122− systemd.services."vmware-authdlauncher" = {
123− description = "VMware Authentification Daemon";
124− serviceConfig = {
125− Type = "forking";
126− ExecStart = [ "${cfg.package}/bin/vmware-authdlauncher" ];
127− };
128− wantedBy = [ "multi-user.target" ];
129− };
130−
131− systemd.services."vmware-networks-configuration" = {
132− description = "VMware Networks Configuration Generation";
133− unitConfig.ConditionPathExists = "!/etc/vmware/networking";
134− serviceConfig = {
135− UMask = "0077";
136− ExecStart = [
137− "${cfg.package}/bin/vmware-networks --postinstall vmware-player,0,1"
138− ];
139− Type = "oneshot";
140− RemainAfterExit = "yes";
141− };
142− wantedBy = [ "multi-user.target" ];
143− };
144−
145− systemd.services."vmware-networks" = {
146− description = "VMware Networks";
147− after = [ "vmware-networks-configuration.service" ];
148− requires = [ "vmware-networks-configuration.service" ];
149− serviceConfig = {
150− Type = "forking";
151− ExecCondition = [ "${pkgs.kmod}/bin/modprobe vmnet" ];
152− ExecStart = [ "${cfg.package}/bin/vmware-networks --start" ];
153− ExecStop = [ "${cfg.package}/bin/vmware-networks --stop" ];
154− };
155− wantedBy = [ "multi-user.target" ];
156− };
157−
158− systemd.services."vmware-usbarbitrator" = {
159− description = "VMware USB Arbitrator";
160− serviceConfig = {
161− ExecStart = [ "${cfg.package}/bin/vmware-usbarbitrator -f" ];
162− };
163− wantedBy = [ "multi-user.target" ];
164− };
165− };
166−}
nixos/release-combined.nix−2
@@ -132,14 +132,12 @@ in rec {
132132 # fails with kernel >= 5.15 https://github.com/NixOS/nixpkgs/pull/152505#issuecomment-1005049314
133133 #(onFullSupported "nixos.tests.nfs3.simple")
134134 (onFullSupported "nixos.tests.nfs4.simple")
135− (onSystems ["x86_64-linux"] "nixos.tests.oci-containers.podman")
136135 (onFullSupported "nixos.tests.openssh")
137136 (onFullSupported "nixos.tests.pantheon")
138137 (onFullSupported "nixos.tests.php.fpm")
139138 (onFullSupported "nixos.tests.php.httpd")
140139 (onFullSupported "nixos.tests.php.pcre")
141140 (onFullSupported "nixos.tests.plasma5")
142− (onSystems ["x86_64-linux"] "nixos.tests.podman")
143141 (onFullSupported "nixos.tests.predictable-interface-names.predictableNetworkd")
144142 (onFullSupported "nixos.tests.predictable-interface-names.predictable")
145143 (onFullSupported "nixos.tests.predictable-interface-names.unpredictableNetworkd")
nixos/release.nix+2−2
@@ -150,13 +150,13 @@ in rec {
150150 });
151151
152152 iso_plasma5 = forMatchingSystems [ "x86_64-linux" ] (system: makeIso {
153− module = ./modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma5.nix;
153+ module = ./modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix;
154154 type = "plasma5";
155155 inherit system;
156156 });
157157
158158 iso_gnome = forMatchingSystems [ "x86_64-linux" ] (system: makeIso {
159− module = ./modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix;
159+ module = ./modules/installer/cd-dvd/installation-cd-graphical-gnome.nix;
160160 type = "gnome";
161161 inherit system;
162162 });
nixos/tests/all-terminfo.nixdeleted−31
@@ -1,31 +0,0 @@
1−import ./make-test-python.nix ({ pkgs, ... }: rec {
2− name = "all-terminfo";
3− meta = with pkgs.lib.maintainers; {
4− maintainers = [ jkarlson ];
5− };
6−
7− nodes.machine = { pkgs, config, lib, ... }:
8− let
9− infoFilter = name: drv:
10− let
11− o = builtins.tryEval drv;
12− in
13− o.success && lib.isDerivation o.value && o.value ? outputs && builtins.elem "terminfo" o.value.outputs;
14− terminfos = lib.filterAttrs infoFilter pkgs;
15− excludedTerminfos = lib.filterAttrs (_: drv: !(builtins.elem drv.terminfo config.environment.systemPackages)) terminfos;
16− includedOuts = lib.filterAttrs (_: drv: builtins.elem drv.out config.environment.systemPackages) terminfos;
17− in
18− {
19− environment = {
20− enableAllTerminfo = true;
21− etc."terminfo-missing".text = builtins.concatStringsSep "\n" (builtins.attrNames excludedTerminfos);
22− etc."terminfo-extra-outs".text = builtins.concatStringsSep "\n" (builtins.attrNames includedOuts);
23− };
24− };
25−
26− testScript =
27− ''
28− machine.fail("grep . /etc/terminfo-missing >&2")
29− machine.fail("grep . /etc/terminfo-extra-outs >&2")
30− '';
31−})
nixos/tests/all-tests.nix+3−18
@@ -35,7 +35,6 @@ in
3535 agate = handleTest ./web-servers/agate.nix {};
3636 agda = handleTest ./agda.nix {};
3737 airsonic = handleTest ./airsonic.nix {};
38− allTerminfo = handleTest ./all-terminfo.nix {};
3938 amazon-init-shell = handleTest ./amazon-init-shell.nix {};
4039 apfs = handleTest ./apfs.nix {};
4140 apparmor = handleTest ./apparmor.nix {};
@@ -196,12 +195,8 @@ in
196195 hadoop_3_2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop_3_2; };
197196 hadoop2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop2; };
198197 haka = handleTest ./haka.nix {};
199− haste-server = handleTest ./haste-server.nix {};
200198 haproxy = handleTest ./haproxy.nix {};
201199 hardened = handleTest ./hardened.nix {};
202− hbase1 = handleTest ./hbase.nix { package=pkgs.hbase1; };
203− hbase2 = handleTest ./hbase.nix { package=pkgs.hbase2; };
204− hbase3 = handleTest ./hbase.nix { package=pkgs.hbase3; };
205200 hedgedoc = handleTest ./hedgedoc.nix {};
206201 herbstluftwm = handleTest ./herbstluftwm.nix {};
207202 installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {});
@@ -212,7 +207,6 @@ in
212207 # hibernation. This test happens to work on x86_64-linux but
213208 # not on other platforms.
214209 hibernate = handleTestOn ["x86_64-linux"] ./hibernate.nix {};
215− hibernate-systemd-stage-1 = handleTestOn ["x86_64-linux"] ./hibernate.nix { systemdStage1 = true; };
216210 hitch = handleTest ./hitch {};
217211 hledger-web = handleTest ./hledger-web.nix {};
218212 hocker-fetchdocker = handleTest ./hocker-fetchdocker {};
@@ -235,7 +229,6 @@ in
235229 input-remapper = handleTest ./input-remapper.nix {};
236230 inspircd = handleTest ./inspircd.nix {};
237231 installer = handleTest ./installer.nix {};
238− installer-systemd-stage-1 = handleTest ./installer-systemd-stage-1.nix {};
239232 invoiceplane = handleTest ./invoiceplane.nix {};
240233 iodine = handleTest ./iodine.nix {};
241234 ipfs = handleTest ./ipfs.nix {};
@@ -284,6 +277,7 @@ in
284277 loki = handleTest ./loki.nix {};
285278 lvm2 = handleTest ./lvm2 {};
286279 lxd = handleTest ./lxd.nix {};
280+ lxd-image = handleTest ./lxd-image.nix {};
287281 lxd-nftables = handleTest ./lxd-nftables.nix {};
288282 lxd-image-server = handleTest ./lxd-image-server.nix {};
289283 #logstash = handleTest ./logstash.nix {};
@@ -368,9 +362,8 @@ in
368362 nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
369363 nginx-sso = handleTest ./nginx-sso.nix {};
370364 nginx-variants = handleTest ./nginx-variants.nix {};
371− nifi = handleTestOn ["x86_64-linux"] ./web-apps/nifi.nix {};
372365 nitter = handleTest ./nitter.nix {};
373− nix-ld = handleTest ./nix-ld.nix {};
366+ nix-ld = handleTest ./nix-ld {};
374367 nix-serve = handleTest ./nix-serve.nix {};
375368 nix-serve-ssh = handleTest ./nix-serve-ssh.nix {};
376369 nixops = handleTest ./nixops/default.nix {};
@@ -405,10 +398,9 @@ in
405398 pam-file-contents = handleTest ./pam/pam-file-contents.nix {};
406399 pam-oath-login = handleTest ./pam/pam-oath-login.nix {};
407400 pam-u2f = handleTest ./pam/pam-u2f.nix {};
408− pam-ussh = handleTest ./pam/pam-ussh.nix {};
409401 pantalaimon = handleTest ./matrix/pantalaimon.nix {};
410402 pantheon = handleTest ./pantheon.nix {};
411− paperless = handleTest ./paperless.nix {};
403+ paperless-ng = handleTest ./paperless-ng.nix {};
412404 parsedmarc = handleTest ./parsedmarc {};
413405 pdns-recursor = handleTest ./pdns-recursor.nix {};
414406 peerflix = handleTest ./peerflix.nix {};
@@ -524,12 +516,7 @@ in
524516 systemd-confinement = handleTest ./systemd-confinement.nix {};
525517 systemd-cryptenroll = handleTest ./systemd-cryptenroll.nix {};
526518 systemd-escaping = handleTest ./systemd-escaping.nix {};
527− systemd-initrd-btrfs-raid = handleTest ./systemd-initrd-btrfs-raid.nix {};
528− systemd-initrd-luks-keyfile = handleTest ./systemd-initrd-luks-keyfile.nix {};
529− systemd-initrd-luks-password = handleTest ./systemd-initrd-luks-password.nix {};
530− systemd-initrd-shutdown = handleTest ./systemd-shutdown.nix { systemdStage1 = true; };
531519 systemd-initrd-simple = handleTest ./systemd-initrd-simple.nix {};
532− systemd-initrd-swraid = handleTest ./systemd-initrd-swraid.nix {};
533520 systemd-journal = handleTest ./systemd-journal.nix {};
534521 systemd-machinectl = handleTest ./systemd-machinectl.nix {};
535522 systemd-networkd = handleTest ./systemd-networkd.nix {};
@@ -538,7 +525,6 @@ in
538525 systemd-networkd-ipv6-prefix-delegation = handleTest ./systemd-networkd-ipv6-prefix-delegation.nix {};
539526 systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {};
540527 systemd-nspawn = handleTest ./systemd-nspawn.nix {};
541− systemd-shutdown = handleTest ./systemd-shutdown.nix {};
542528 systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
543529 systemd-misc = handleTest ./systemd-misc.nix {};
544530 taskserver = handleTest ./taskserver.nix {};
@@ -599,7 +585,6 @@ in
599585 xautolock = handleTest ./xautolock.nix {};
600586 xfce = handleTest ./xfce.nix {};
601587 xmonad = handleTest ./xmonad.nix {};
602− xmonad-xdg-autostart = handleTest ./xmonad-xdg-autostart.nix {};
603588 xrdp = handleTest ./xrdp.nix {};
604589 xss-lock = handleTest ./xss-lock.nix {};
605590 xterm = handleTest ./xterm.nix {};
nixos/tests/bcachefs.nix+1−1
@@ -1,6 +1,6 @@
11import ./make-test-python.nix ({ pkgs, ... }: {
22 name = "bcachefs";
3− meta.maintainers = with pkgs.lib.maintainers; [ Madouura ];
3+ meta.maintainers = with pkgs.lib.maintainers; [ chiiruno ];
44
55 nodes.machine = { pkgs, ... }: {
66 virtualisation.emptyDiskImages = [ 4096 ];
nixos/tests/common/lxd/config.yamldeleted−24
@@ -1,24 +0,0 @@
1−storage_pools:
2− - name: default
3− driver: dir
4− config:
5− source: /var/lxd-pool
6−
7−networks:
8− - name: lxdbr0
9− type: bridge
10− config:
11− ipv4.address: auto
12− ipv6.address: none
13−
14−profiles:
15− - name: default
16− devices:
17− eth0:
18− name: eth0
19− network: lxdbr0
20− type: nic
21− root:
22− path: /
23− pool: default
24− type: disk
nixos/tests/containers-ephemeral.nix+3−3
@@ -33,10 +33,10 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
3333 machine.succeed("nixos-container start webserver")
3434
3535 with subtest("Container got its own root folder"):
36− machine.succeed("ls /run/nixos-containers/webserver")
36+ machine.succeed("ls /run/containers/webserver")
3737
3838 with subtest("Container persistent directory is not created"):
39− machine.fail("ls /var/lib/nixos-containers/webserver")
39+ machine.fail("ls /var/lib/containers/webserver")
4040
4141 # Since "start" returns after the container has reached
4242 # multi-user.target, we should now be able to access it.
@@ -49,6 +49,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
4949 machine.fail(f"curl --fail --connect-timeout 2 http://{ip}/ > /dev/null")
5050
5151 with subtest("Container's root folder was removed"):
52− machine.fail("ls /run/nixos-containers/webserver")
52+ machine.fail("ls /run/containers/webserver")
5353 '';
5454})
nixos/tests/containers-imperative.nix+6−6
@@ -69,8 +69,8 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
6969
7070 with subtest(f"Put the root of {id2} into a bind mount"):
7171 machine.succeed(
72− f"mv /var/lib/nixos-containers/{id2} /id2-bindmount",
73− f"mount --bind /id2-bindmount /var/lib/nixos-containers/{id1}",
72+ f"mv /var/lib/containers/{id2} /id2-bindmount",
73+ f"mount --bind /id2-bindmount /var/lib/containers/{id1}",
7474 )
7575
7676 ip1 = machine.succeed(f"nixos-container show-ip {id1}").rstrip()
@@ -88,7 +88,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
8888 "Create a directory with a dummy file and bind-mount it into both containers."
8989 ):
9090 for id in id1, id2:
91− important_path = f"/var/lib/nixos-containers/{id}/very/important/data"
91+ important_path = f"/var/lib/containers/{id}/very/important/data"
9292 machine.succeed(
9393 f"mkdir -p {important_path}",
9494 f"mount --bind /nested-bindmount {important_path}",
@@ -154,13 +154,13 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
154154 machine.succeed("grep -qF 'important data' /nested-bindmount/dummy")
155155
156156 with subtest("Ensure that the container path is gone"):
157− print(machine.succeed("ls -lsa /var/lib/nixos-containers"))
158− machine.succeed(f"test ! -e /var/lib/nixos-containers/{id1}")
157+ print(machine.succeed("ls -lsa /var/lib/containers"))
158+ machine.succeed(f"test ! -e /var/lib/containers/{id1}")
159159
160160 with subtest("Ensure that a failed container creation doesn'leave any state"):
161161 machine.fail(
162162 "nixos-container create b0rk --config-file ${brokenCfg}"
163163 )
164− machine.succeed("test ! -e /var/lib/nixos-containers/b0rk")
164+ machine.succeed("test ! -e /var/lib/containers/b0rk")
165165 '';
166166})
nixos/tests/containers-tmpfs.nix+5−5
@@ -62,7 +62,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
6262 machine.succeed(
6363 tmpfs_cmd("touch /root/test.file"),
6464 tmpfs_cmd("ls -l /root | grep -q test.file"),
65− "test -e /var/lib/nixos-containers/tmpfs/root/test.file",
65+ "test -e /var/lib/containers/tmpfs/root/test.file",
6666 )
6767
6868 with subtest(
@@ -73,7 +73,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
7373 tmpfs_cmd("touch /some/random/path/test.file"),
7474 tmpfs_cmd("test -e /some/random/path/test.file"),
7575 )
76− machine.fail("test -e /var/lib/nixos-containers/tmpfs/some/random/path/test.file")
76+ machine.fail("test -e /var/lib/containers/tmpfs/some/random/path/test.file")
7777
7878 with subtest(
7979 "files created in the hosts container dir in a path where a tmpfs "
@@ -81,9 +81,9 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
8181 + "the do not exist in the tmpfs"
8282 ):
8383 machine.succeed(
84− "touch /var/lib/nixos-containers/tmpfs/var/test.file",
85− "test -e /var/lib/nixos-containers/tmpfs/var/test.file",
86− "ls -l /var/lib/nixos-containers/tmpfs/var/ | grep -q test.file 2>/dev/null",
84+ "touch /var/lib/containers/tmpfs/var/test.file",
85+ "test -e /var/lib/containers/tmpfs/var/test.file",
86+ "ls -l /var/lib/containers/tmpfs/var/ | grep -q test.file 2>/dev/null",
8787 )
8888 machine.fail(tmpfs_cmd("ls -l /var | grep -q test.file"))
8989 '';
nixos/tests/custom-ca.nix+90−104
@@ -1,14 +1,9 @@
11# Checks that `security.pki` options are working in curl and the main browser
2−# engines: Gecko (via Firefox), Chromium, QtWebEngine (via qutebrowser) and
3−# WebKitGTK (via Midori). The test checks that certificates issued by a custom
4−# trusted CA are accepted but those from an unknown CA are rejected.
2+# engines: Gecko (via Firefox), Chromium, QtWebEngine (Falkon) and WebKitGTK
3+# (via Midori). The test checks that certificates issued by a custom trusted
4+# CA are accepted but those from an unknown CA are rejected.
55
6−{ system ? builtins.currentSystem,
7− config ? {},
8− pkgs ? import ../.. { inherit system config; }
9−}:
10−
11−with import ../lib/testing-python.nix { inherit system pkgs; };
6+import ./make-test-python.nix ({ pkgs, lib, ... }:
127
138let
149 makeCert = { caName, domain }: pkgs.runCommand "example-cert"
@@ -73,8 +68,24 @@ let
7368 domain = "bad.example.com";
7469 };
7570
76− webserverConfig =
77− { networking.hosts."127.0.0.1" = [ "good.example.com" "bad.example.com" ];
71+in
72+
73+{
74+ name = "custom-ca";
75+ meta.maintainers = with lib.maintainers; [ rnhmjoj ];
76+
77+ enableOCR = true;
78+
79+ nodes.machine = { pkgs, ... }:
80+ { imports = [ ./common/user-account.nix ./common/x11.nix ];
81+
82+ # chromium-based browsers refuse to run as root
83+ test-support.displayManager.auto.user = "alice";
84+
85+ # browsers may hang with the default memory
86+ virtualisation.memorySize = 600;
87+
88+ networking.hosts."127.0.0.1" = [ "good.example.com" "bad.example.com" ];
7889 security.pki.certificateFiles = [ "${example-good-cert}/ca.crt" ];
7990
8091 services.nginx.enable = true;
@@ -96,98 +107,73 @@ let
96107 return 200 'It does not work!';
97108 '';
98109 };
99− };
100110
101− curlTest = makeTest {
102− name = "custom-ca-curl";
103− meta.maintainers = with lib.maintainers; [ rnhmjoj ];
104− nodes.machine = { ... }: webserverConfig;
105− testScript = ''
106− with subtest("Good certificate is trusted in curl"):
107− machine.wait_for_unit("nginx")
108− machine.wait_for_open_port(443)
109− machine.succeed("curl -fv https://good.example.com")
110−
111− with subtest("Unknown CA is untrusted in curl"):
112− machine.fail("curl -fv https://bad.example.com")
113− '';
114− };
115−
116− mkBrowserTest = browser: testParams: makeTest {
117− name = "custom-ca-${browser}";
118− meta.maintainers = with lib.maintainers; [ rnhmjoj ];
119−
120− enableOCR = true;
121−
122− nodes.machine = { pkgs, ... }:
123− { imports =
124− [ ./common/user-account.nix
125− ./common/x11.nix
126− webserverConfig
127− ];
128−
129− # chromium-based browsers refuse to run as root
130− test-support.displayManager.auto.user = "alice";
131−
132− # browsers may hang with the default memory
133− virtualisation.memorySize = 600;
134−
135− environment.systemPackages = [ pkgs.xdotool pkgs.${browser} ];
136− };
137−
138− testScript = ''
139− from typing import Tuple
140− def execute_as(user: str, cmd: str) -> Tuple[int, str]:
141− """
142− Run a shell command as a specific user.
143− """
144− return machine.execute(f"sudo -u {user} {cmd}")
145−
146−
147− def wait_for_window_as(user: str, cls: str) -> None:
148− """
149− Wait until a X11 window of a given user appears.
150− """
151−
152− def window_is_visible(last_try: bool) -> bool:
153− ret, stdout = execute_as(user, f"xdotool search --onlyvisible --class {cls}")
154− if last_try:
155− machine.log(f"Last chance to match {cls} on the window list")
156− return ret == 0
157−
158− with machine.nested("Waiting for a window to appear"):
159− retry(window_is_visible)
160−
161−
162− machine.start()
163− machine.wait_for_x()
164−
165− command = "${browser} ${testParams.args or ""}"
166− with subtest("Good certificate is trusted in ${browser}"):
167− execute_as(
168− "alice", f"{command} https://good.example.com >&2 &"
169− )
170− wait_for_window_as("alice", "${browser}")
171− machine.sleep(4)
172− execute_as("alice", "xdotool key ctrl+r") # reload to be safe
173− machine.wait_for_text("It works!")
174− machine.screenshot("good${browser}")
175− execute_as("alice", "xdotool key ctrl+w") # close tab
176−
177− with subtest("Unknown CA is untrusted in ${browser}"):
178− execute_as("alice", f"{command} https://bad.example.com >&2 &")
179− machine.wait_for_text("${testParams.error}")
180− machine.screenshot("bad${browser}")
181− '';
182− };
183−
184−in
111+ environment.systemPackages = with pkgs; [
112+ xdotool
113+ firefox
114+ chromium
115+ qutebrowser
116+ midori
117+ ];
118+ };
185119
186−{
187− curl = curlTest;
188−} // pkgs.lib.mapAttrs mkBrowserTest {
189− firefox = { error = "Security Risk"; };
190− chromium = { error = "not private"; };
191− qutebrowser = { args = "-T"; error = "Certificate error"; };
192− midori = { error = "Security"; };
193−}
120+ testScript = ''
121+ from typing import Tuple
122+ def execute_as(user: str, cmd: str) -> Tuple[int, str]:
123+ """
124+ Run a shell command as a specific user.
125+ """
126+ return machine.execute(f"sudo -u {user} {cmd}")
127+
128+
129+ def wait_for_window_as(user: str, cls: str) -> None:
130+ """
131+ Wait until a X11 window of a given user appears.
132+ """
133+
134+ def window_is_visible(last_try: bool) -> bool:
135+ ret, stdout = execute_as(user, f"xdotool search --onlyvisible --class {cls}")
136+ if last_try:
137+ machine.log(f"Last chance to match {cls} on the window list")
138+ return ret == 0
139+
140+ with machine.nested("Waiting for a window to appear"):
141+ retry(window_is_visible)
142+
143+
144+ machine.start()
145+
146+ with subtest("Good certificate is trusted in curl"):
147+ machine.wait_for_unit("nginx")
148+ machine.wait_for_open_port(443)
149+ machine.succeed("curl -fv https://good.example.com")
150+
151+ with subtest("Unknown CA is untrusted in curl"):
152+ machine.fail("curl -fv https://bad.example.com")
153+
154+ browsers = {
155+ "firefox": "Security Risk",
156+ "chromium": "not private",
157+ "qutebrowser -T": "Certificate error",
158+ "midori": "Security"
159+ }
160+
161+ machine.wait_for_x()
162+ for command, error in browsers.items():
163+ browser = command.split()[0]
164+ with subtest("Good certificate is trusted in " + browser):
165+ execute_as(
166+ "alice", f"{command} https://good.example.com >&2 &"
167+ )
168+ wait_for_window_as("alice", browser)
169+ machine.wait_for_text("It works!")
170+ machine.screenshot("good" + browser)
171+ execute_as("alice", "xdotool key ctrl+w") # close tab
172+
173+ with subtest("Unknown CA is untrusted in " + browser):
174+ execute_as("alice", f"{command} https://bad.example.com >&2 &")
175+ machine.wait_for_text(error)
176+ machine.screenshot("bad" + browser)
177+ machine.succeed("pkill -f " + browser)
178+ '';
179+})
nixos/tests/emacs-daemon.nix+1−1
@@ -33,7 +33,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
3333 )
3434
3535 # connects to the daemon
36− machine.succeed("emacsclient --no-wait --frame-parameters='((display . \"'\"$DISPLAY\"'\"))' --create-frame $EDITOR >&2")
36+ machine.succeed("emacsclient --create-frame $EDITOR >&2 &")
3737
3838 # checks that Emacs shows the edited filename
3939 machine.wait_for_text("emacseditor")
nixos/tests/fenics.nix+1−1
@@ -44,6 +44,6 @@ in
4444 { nodes, ... }:
4545 ''
4646 start_all()
47− fenicsnode.succeed("${fenicsScript}")
47+ node1.succeed("${fenicsScript}")
4848 '';
4949})
nixos/tests/gitlab.nix+25−298
@@ -1,31 +1,9 @@
1−# This test runs gitlab and performs the following tests:
2−# - Creating users
3−# - Pushing commits
4−# - over the API
5−# - over SSH
6−# - Creating Merge Requests and merging them
7−# - Opening and closing issues.
8−# - Downloading repository archives as tar.gz and tar.bz2
9−import ./make-test-python.nix ({ pkgs, lib, ... }:
10−
11−with lib;
1+# This test runs gitlab and checks if it works
122
133let
14− inherit (import ./ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey;
154 initialRootPassword = "notproduction";
16− rootProjectId = "2";
17−
18− aliceUsername = "alice";
19− aliceUserId = "2";
20− alicePassword = "alicepassword";
21− aliceProjectId = "2";
22− aliceProjectName = "test-alice";
23−
24− bobUsername = "bob";
25− bobUserId = "3";
26− bobPassword = "bobpassword";
27− bobProjectId = "3";
28−in {
5+in
6+import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
297 name = "gitlab";
308 meta = with pkgs.lib.maintainers; {
319 maintainers = [ globin yayayayaka ];
@@ -53,8 +31,6 @@ in {
5331 };
5432 };
5533
56− services.openssh.enable = true;
57−
5834 services.dovecot2 = {
5935 enable = true;
6036 enableImap = true;
@@ -101,43 +77,8 @@ in {
10177 password = initialRootPassword;
10278 });
10379
104− createUserAlice = pkgs.writeText "create-user-alice.json" (builtins.toJSON rec {
105− username = aliceUsername;
106− name = username;
107− email = "alice@localhost";
108− password = alicePassword;
109− skip_confirmation = true;
110− });
111−
112− createUserBob = pkgs.writeText "create-user-bob.json" (builtins.toJSON rec {
113− username = bobUsername;
114− name = username;
115− email = "bob@localhost";
116− password = bobPassword;
117− skip_confirmation = true;
118− });
119−
120− aliceAuth = pkgs.writeText "alice-auth.json" (builtins.toJSON {
121− grant_type = "password";
122− username = aliceUsername;
123− password = alicePassword;
124− });
125−
126− bobAuth = pkgs.writeText "bob-auth.json" (builtins.toJSON {
127− grant_type = "password";
128− username = bobUsername;
129− password = bobPassword;
130− });
131−
132− aliceAddSSHKey = pkgs.writeText "alice-add-ssh-key.json" (builtins.toJSON {
133− id = aliceUserId;
134− title = "snakeoil@nixos";
135− key = snakeOilPublicKey;
136− });
137−
138− createProjectAlice = pkgs.writeText "create-project-alice.json" (builtins.toJSON {
139− name = aliceProjectName;
140− visibility = "public";
80+ createProject = pkgs.writeText "create-project.json" (builtins.toJSON {
81+ name = "test";
14182 });
14283
14384 putFile = pkgs.writeText "put-file.json" (builtins.toJSON {
@@ -148,23 +89,6 @@ in {
14889 commit_message = "create a new file";
14990 });
15091
151− mergeRequest = pkgs.writeText "merge-request.json" (builtins.toJSON {
152− id = bobProjectId;
153− target_project_id = aliceProjectId;
154− source_branch = "master";
155− target_branch = "master";
156− title = "Add some other file";
157− });
158−
159− newIssue = pkgs.writeText "new-issue.json" (builtins.toJSON {
160− title = "useful issue title";
161− });
162−
163− closeIssue = pkgs.writeText "close-issue.json" (builtins.toJSON {
164− issue_iid = 1;
165− state_event = "close";
166− });
167−
16892 # Wait for all GitLab services to be fully started.
16993 waitForServices = ''
17094 gitlab.wait_for_unit("gitaly.service")
@@ -181,8 +105,6 @@ in {
181105 # The actual test of GitLab. Only push data to GitLab if
182106 # `doSetup` is is true.
183107 test = doSetup: ''
184− GIT_SSH_COMMAND = "ssh -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile=/dev/null"
185−
186108 gitlab.succeed(
187109 "curl -isSf http://gitlab | grep -i location | grep http://gitlab/users/sign_in"
188110 )
@@ -193,222 +115,27 @@ in {
193115 "echo \"Authorization: Bearer $(curl -X POST -H 'Content-Type: application/json' -d @${auth} http://gitlab/oauth/token | ${pkgs.jq}/bin/jq -r '.access_token')\" >/tmp/headers"
194116 )
195117 '' + optionalString doSetup ''
196− with subtest("Create user Alice"):
197− gitlab.succeed(
198− """[ "$(curl -o /dev/null -w '%{http_code}' -X POST -H 'Content-Type: application/json' -H @/tmp/headers -d @${createUserAlice} http://gitlab/api/v4/users)" = "201" ]"""
199− )
200− gitlab.succeed(
201− "echo \"Authorization: Bearer $(curl -X POST -H 'Content-Type: application/json' -d @${aliceAuth} http://gitlab/oauth/token | ${pkgs.jq}/bin/jq -r '.access_token')\" >/tmp/headers-alice"
202− )
203−
204− with subtest("Create user Bob"):
205− gitlab.succeed(
206− """ [ "$(curl -o /dev/null -w '%{http_code}' -X POST -H 'Content-Type: application/json' -H @/tmp/headers -d @${createUserBob} http://gitlab/api/v4/users)" = "201" ]"""
207− )
208− gitlab.succeed(
209− "echo \"Authorization: Bearer $(curl -X POST -H 'Content-Type: application/json' -d @${bobAuth} http://gitlab/oauth/token | ${pkgs.jq}/bin/jq -r '.access_token')\" >/tmp/headers-bob"
210− )
211−
212− with subtest("Setup Git and SSH for Alice"):
213− gitlab.succeed("git config --global user.name Alice")
214− gitlab.succeed("git config --global user.email alice@nixos.invalid")
215− gitlab.succeed("mkdir -m 700 /root/.ssh")
216− gitlab.succeed("cat ${snakeOilPrivateKey} > /root/.ssh/id_ecdsa")
217− gitlab.succeed("chmod 600 /root/.ssh/id_ecdsa")
218− gitlab.succeed(
219− """
220− [ "$(curl \
221− -o /dev/null \
222− -w '%{http_code}' \
223− -X POST \
224− -H 'Content-Type: application/json' \
225− -H @/tmp/headers-alice -d @${aliceAddSSHKey} \
226− http://gitlab/api/v4/user/keys)" = "201" ]
227− """
228− )
229−
230− with subtest("Create a new repository"):
231− # Alice creates a new repository
232− gitlab.succeed(
233− """
234− [ "$(curl \
235− -o /dev/null \
236− -w '%{http_code}' \
237− -X POST \
238− -H 'Content-Type: application/json' \
239− -H @/tmp/headers-alice \
240− -d @${createProjectAlice} \
241− http://gitlab/api/v4/projects)" = "201" ]
242− """
243− )
244−
245− # Alice commits an initial commit
246− gitlab.succeed(
247− """
248− [ "$(curl \
249− -o /dev/null \
250− -w '%{http_code}' \
251− -X POST \
252− -H 'Content-Type: application/json' \
253− -H @/tmp/headers-alice \
254− -d @${putFile} \
255− http://gitlab/api/v4/projects/${aliceProjectId}/repository/files/some-file.txt)" = "201" ]"""
256− )
257−
258− with subtest("git clone over HTTP"):
259− gitlab.succeed(
260− """git clone http://gitlab/alice/${aliceProjectName}.git clone-via-http""",
261− timeout=15
262− )
263−
264− with subtest("Push a commit via SSH"):
265− gitlab.succeed(
266− f"""GIT_SSH_COMMAND="{GIT_SSH_COMMAND}" git clone gitlab@gitlab:alice/${aliceProjectName}.git""",
267− timeout=15
268− )
269− gitlab.succeed(
270− """echo "a commit sent over ssh" > ${aliceProjectName}/ssh.txt"""
271− )
272− gitlab.succeed(
273− """
274− cd ${aliceProjectName} || exit 1
275− git add .
276− """
277− )
278− gitlab.succeed(
279− """
280− cd ${aliceProjectName} || exit 1
281− git commit -m "Add a commit to be sent over ssh"
282− """
283− )
284− gitlab.succeed(
285− f"""
286− cd ${aliceProjectName} || exit 1
287− GIT_SSH_COMMAND="{GIT_SSH_COMMAND}" git push --set-upstream origin master
288− """,
289− timeout=15
290− )
291−
292− with subtest("Fork a project"):
293− # Bob forks Alice's project
294− gitlab.succeed(
295− """
296− [ "$(curl \
297− -o /dev/null \
298− -w '%{http_code}' \
299− -X POST \
300− -H 'Content-Type: application/json' \
301− -H @/tmp/headers-bob \
302− http://gitlab/api/v4/projects/${aliceProjectId}/fork)" = "201" ]
303− """
304− )
305−
306− # Bob creates a commit
307− gitlab.wait_until_succeeds(
308− """
309− [ "$(curl \
310− -o /dev/null \
311− -w '%{http_code}' \
312− -X POST \
313− -H 'Content-Type: application/json' \
314− -H @/tmp/headers-bob \
315− -d @${putFile} \
316− http://gitlab/api/v4/projects/${bobProjectId}/repository/files/some-other-file.txt)" = "201" ]
317− """
318− )
319−
320− with subtest("Create a Merge Request"):
321− # Bob opens a merge request against Alice's repository
322− gitlab.wait_until_succeeds(
323− """
324− [ "$(curl \
325− -o /dev/null \
326− -w '%{http_code}' \
327− -X POST \
328− -H 'Content-Type: application/json' \
329− -H @/tmp/headers-bob \
330− -d @${mergeRequest} \
331− http://gitlab/api/v4/projects/${bobProjectId}/merge_requests)" = "201" ]
332− """
333− )
334−
335− # Alice merges the MR
336− gitlab.wait_until_succeeds(
337− """
338− [ "$(curl \
339− -o /dev/null \
340− -w '%{http_code}' \
341− -X PUT \
342− -H 'Content-Type: application/json' \
343− -H @/tmp/headers-alice \
344− -d @${mergeRequest} \
345− http://gitlab/api/v4/projects/${aliceProjectId}/merge_requests/1/merge)" = "200" ]
346− """
347− )
348−
349− with subtest("Create an Issue"):
350− # Bob opens an issue on Alice's repository
351− gitlab.succeed(
352− """[ "$(curl \
353− -o /dev/null \
354− -w '%{http_code}' \
355− -X POST \
356− -H 'Content-Type: application/json' \
357− -H @/tmp/headers-bob \
358− -d @${newIssue} \
359− http://gitlab/api/v4/projects/${aliceProjectId}/issues)" = "201" ]
360− """
361− )
362−
363− # Alice closes the issue
364− gitlab.wait_until_succeeds(
365− """
366− [ "$(curl \
367− -o /dev/null \
368− -w '%{http_code}' \
369− -X PUT \
370− -H 'Content-Type: application/json' \
371− -H @/tmp/headers-alice -d @${closeIssue} http://gitlab/api/v4/projects/${aliceProjectId}/issues/1)" = "200" ]
372− """
373− )
118+ gitlab.succeed(
119+ """[ "$(curl -o /dev/null -w '%{http_code}' -X POST -H 'Content-Type: application/json' -H @/tmp/headers -d @${createProject} http://gitlab/api/v4/projects)" = "201" ]"""
120+ )
121+ gitlab.succeed(
122+ """[ "$(curl -o /dev/null -w '%{http_code}' -X POST -H 'Content-Type: application/json' -H @/tmp/headers -d @${putFile} http://gitlab/api/v4/projects/2/repository/files/some-file.txt)" = "201" ]"""
123+ )
374124 '' + ''
375− with subtest("Download archive.tar.gz"):
376− gitlab.succeed(
377− """
378− [ "$(curl \
379− -o /dev/null \
380− -w '%{http_code}' \
381− -H @/tmp/headers-alice \
382− http://gitlab/api/v4/projects/${aliceProjectId}/repository/archive.tar.gz)" = "200" ]
383− """
384− )
385− gitlab.succeed(
386− """
387− curl \
388− -H @/tmp/headers-alice \
389− http://gitlab/api/v4/projects/${aliceProjectId}/repository/archive.tar.gz > /tmp/archive.tar.gz
390− """
391− )
392− gitlab.succeed("test -s /tmp/archive.tar.gz")
393−
394− with subtest("Download archive.tar.bz2"):
395− gitlab.succeed(
396− """
397− [ "$(curl \
398− -o /dev/null \
399− -w '%{http_code}' \
400− -H @/tmp/headers-alice \
401− http://gitlab/api/v4/projects/${aliceProjectId}/repository/archive.tar.bz2)" = "200" ]
402− """
403− )
404− gitlab.succeed(
405− """
406− curl \
407− -H @/tmp/headers-alice \
408− http://gitlab/api/v4/projects/${aliceProjectId}/repository/archive.tar.bz2 > /tmp/archive.tar.bz2
409− """
410− )
411− gitlab.succeed("test -s /tmp/archive.tar.bz2")
125+ gitlab.succeed(
126+ """[ "$(curl -o /dev/null -w '%{http_code}' -H @/tmp/headers http://gitlab/api/v4/projects/2/repository/archive.tar.gz)" = "200" ]"""
127+ )
128+ gitlab.succeed(
129+ """curl -H @/tmp/headers http://gitlab/api/v4/projects/2/repository/archive.tar.gz > /tmp/archive.tar.gz"""
130+ )
131+ gitlab.succeed(
132+ """[ "$(curl -o /dev/null -w '%{http_code}' -H @/tmp/headers http://gitlab/api/v4/projects/2/repository/archive.tar.bz2)" = "200" ]"""
133+ )
134+ gitlab.succeed(
135+ """curl -o /dev/null -w '%{http_code}' -H @/tmp/headers http://gitlab/api/v4/projects/2/repository/archive.tar.bz2 > /tmp/archive.tar.bz2"""
136+ )
137+ gitlab.succeed("test -s /tmp/archive.tar.gz")
138+ gitlab.succeed("test -s /tmp/archive.tar.bz2")
412139 '';
413140
414141 in ''
nixos/tests/haste-server.nixdeleted−23
@@ -1,23 +0,0 @@
1−import ./make-test-python.nix ({ pkgs, lib, ... }:
2− {
3− name = "haste-server";
4− meta.maintainers = with lib.maintainers; [ mkg20001 ];
5−
6− nodes.machine = { pkgs, ... }: {
7− environment.systemPackages = with pkgs; [
8− curl
9− jq
10− ];
11−
12− services.haste-server = {
13− enable = true;
14− };
15− };
16−
17− testScript = ''
18− machine.wait_for_unit("haste-server")
19− machine.wait_until_succeeds("curl -s localhost:7777")
20− machine.succeed('curl -s -X POST http://localhost:7777/documents -d "Hello World!" > bla')
21− machine.succeed('curl http://localhost:7777/raw/$(cat bla | jq -r .key) | grep "Hello World"')
22− '';
23− })
nixos/tests/hbase.nixdeleted−30
@@ -1,30 +0,0 @@
1−import ./make-test-python.nix ({ pkgs, lib, package ? pkgs.hbase, ... }:
2−{
3− name = "hbase";
4−
5− meta = with lib.maintainers; {
6− maintainers = [ illustris ];
7− };
8−
9− nodes = {
10− hbase = { pkgs, ... }: {
11− services.hbase = {
12− enable = true;
13− inherit package;
14− # Needed for standalone mode in hbase 2+
15− # This setting and standalone mode are not suitable for production
16− settings."hbase.unsafe.stream.capability.enforce" = "false";
17− };
18− environment.systemPackages = with pkgs; [
19− package
20− ];
21− };
22− };
23−
24− testScript = ''
25− start_all()
26− hbase.wait_for_unit("hbase.service")
27− hbase.wait_until_succeeds("echo \"create 't1','f1'\" | sudo -u hbase hbase shell -n")
28− assert "NAME => 'f1'" in hbase.succeed("echo \"describe 't1'\" | sudo -u hbase hbase shell -n")
29− '';
30−})
nixos/tests/hibernate.nix−6
@@ -3,7 +3,6 @@
33{ system ? builtins.currentSystem
44, config ? {}
55, pkgs ? import ../.. { inherit system config; }
6−, systemdStage1 ? false
76}:
87
98with import ../lib/testing-python.nix { inherit system pkgs; };
@@ -30,11 +29,6 @@ let
3029 "/".device = "/dev/vda2";
3130 };
3231 swapDevices = mkOverride 0 [ { device = "/dev/vda1"; } ];
33− boot.resumeDevice = mkIf systemdStage1 "/dev/vda1";
34− boot.initrd.systemd = mkIf systemdStage1 {
35− enable = true;
36− emergencyAccess = true;
37− };
3832 };
3933 installedSystem = (import ../lib/eval-config.nix {
4034 inherit system;
nixos/tests/installer-systemd-stage-1.nixdeleted−33
@@ -1,33 +0,0 @@
1−{ system ? builtins.currentSystem
2−, config ? {}
3−, pkgs ? import ../.. { inherit system config; }
4−}:
5−
6−{
7− # Some of these tests don't work with systemd stage 1 yet. Uncomment
8− # them when fixed.
9− inherit (import ./installer.nix { inherit system config pkgs; systemdStage1 = true; })
10− # bcache
11− # btrfsSimple
12− # btrfsSubvolDefault
13− # btrfsSubvols
14− # encryptedFSWithKeyfile
15− # grub1
16− # luksroot
17− # luksroot-format1
18− # luksroot-format2
19− # lvm
20− separateBoot
21− separateBootFat
22− simple
23− simpleLabels
24− simpleProvided
25− simpleSpecialised
26− simpleUefiGrub
27− simpleUefiGrubSpecialisation
28− simpleUefiSystemdBoot
29− # swraid
30− # zfsroot
31− ;
32−
33−}
nixos/tests/installer.nix+1−14
@@ -1,7 +1,6 @@
11{ system ? builtins.currentSystem,
22 config ? {},
3− pkgs ? import ../.. { inherit system config; },
4− systemdStage1 ? false
3+ pkgs ? import ../.. { inherit system config; }
54}:
65
76with import ../lib/testing-python.nix { inherit system pkgs; };
@@ -24,8 +23,6 @@ let
2423 # To ensure that we can rebuild the grub configuration on the nixos-rebuild
2524 system.extraDependencies = with pkgs; [ stdenvNoCC ];
2625
27− ${optionalString systemdStage1 "boot.initrd.systemd.enable = true;"}
28−
2926 ${optionalString (bootLoader == "grub") ''
3027 boot.loader.grub.version = ${toString grubVersion};
3128 ${optionalString (grubVersion == 1) ''
@@ -293,8 +290,6 @@ let
293290 virtualisation.cores = 8;
294291 virtualisation.memorySize = 1536;
295292
296− boot.initrd.systemd.enable = systemdStage1;
297−
298293 # Use a small /dev/vdb as the root disk for the
299294 # installer. This ensures the target disk (/dev/vda) is
300295 # the same during and after installation.
@@ -304,13 +299,6 @@ let
304299 virtualisation.qemu.diskInterface =
305300 if grubVersion == 1 then "scsi" else "virtio";
306301
307− # We don't want to have any networking in the guest whatsoever.
308− # Also, if any vlans are enabled, the guest will reboot
309− # (with a different configuration for legacy reasons),
310− # and spend 5 minutes waiting for the vlan interface to show up
311− # (which will never happen).
312− virtualisation.vlans = [];
313−
314302 boot.loader.systemd-boot.enable = mkIf (bootLoader == "systemd-boot") true;
315303
316304 hardware.enableAllFirmware = mkForce false;
@@ -325,7 +313,6 @@ let
325313 docbook5
326314 docbook_xsl_ns
327315 kmod.dev
328− libarchive.dev
329316 libxml2.bin
330317 libxslt.bin
331318 nixos-artwork.wallpapers.simple-dark-gray-bottom
nixos/tests/kexec.nix+16−44
@@ -1,50 +1,22 @@
1−import ./make-test-python.nix ({ pkgs, lib, ... }: {
1+# Test whether fast reboots via kexec work.
2+
3+import ./make-test-python.nix ({ pkgs, lib, ...} : {
24 name = "kexec";
35 meta = with lib.maintainers; {
4− maintainers = [ flokli lassulus ];
5− };
6−
7− nodes = {
8− node1 = { ... }: {
9− virtualisation.vlans = [ ];
10− virtualisation.memorySize = 4 * 1024;
11− virtualisation.useBootLoader = true;
12− virtualisation.useEFIBoot = true;
13− boot.loader.systemd-boot.enable = true;
14− boot.loader.efi.canTouchEfiVariables = true;
15− };
16−
17− node2 = { modulesPath, ... }: {
18− virtualisation.vlans = [ ];
19− environment.systemPackages = [ pkgs.hello ];
20− imports = [
21− "${modulesPath}/installer/kexec/kexec-boot.nix"
22− "${modulesPath}/profiles/minimal.nix"
23− ];
24− };
6+ maintainers = [ eelco ];
257 };
268
27− testScript = { nodes, ... }: ''
28− # Test whether reboot via kexec works.
29− node1.wait_for_unit("multi-user.target")
30− node1.succeed('kexec --load /run/current-system/kernel --initrd /run/current-system/initrd --command-line "$(</proc/cmdline)"')
31− node1.execute("systemctl kexec >&2 &", check_return=False)
32− node1.connected = False
33− node1.connect()
34− node1.wait_for_unit("multi-user.target")
35−
36− # Check if the machine with kexec-boot.nix profile boots up
37− node2.wait_for_unit("multi-user.target")
38− node2.shutdown()
39−
40− # Kexec node1 to the toplevel of node2 via the kexec-boot script
41− node1.succeed('touch /run/foo')
42− node1.fail('hello')
43− node1.execute('${nodes.node2.config.system.build.kexecBoot}/kexec-boot', check_return=False)
44− node1.succeed('! test -e /run/foo')
45− node1.succeed('hello')
46− node1.succeed('[ "$(hostname)" = "node2" ]')
9+ nodes.machine = { ... }:
10+ { virtualisation.vlans = [ ]; };
4711
48− node1.shutdown()
49− '';
12+ testScript =
13+ ''
14+ machine.wait_for_unit("multi-user.target")
15+ machine.succeed('kexec --load /run/current-system/kernel --initrd /run/current-system/initrd --command-line "$(</proc/cmdline)"')
16+ machine.execute("systemctl kexec >&2 &", check_return=False)
17+ machine.connected = False
18+ machine.connect()
19+ machine.wait_for_unit("multi-user.target")
20+ machine.shutdown()
21+ '';
5022})
nixos/tests/keycloak.nix+9−13
@@ -4,7 +4,7 @@
44
55let
66 certs = import ./common/acme/server/snakeoil-certs.nix;
7− frontendUrl = "https://${certs.domain}";
7+ frontendUrl = "https://${certs.domain}/auth";
88 initialAdminPassword = "h4IhoJFnt2iQIR9";
99
1010 keycloakTest = import ./make-test-python.nix (
@@ -27,23 +27,20 @@ let
2727
2828 services.keycloak = {
2929 enable = true;
30− settings = {
31− hostname = certs.domain;
32− };
33− inherit initialAdminPassword;
34− sslCertificate = "${certs.${certs.domain}.cert}";
35− sslCertificateKey = "${certs.${certs.domain}.key}";
30+ inherit frontendUrl initialAdminPassword;
31+ sslCertificate = certs.${certs.domain}.cert;
32+ sslCertificateKey = certs.${certs.domain}.key;
3633 database = {
3734 type = databaseType;
3835 username = "bogus";
39− name = "also bogus";
40− passwordFile = "${pkgs.writeText "dbPassword" "wzf6vOCbPp6cqTH"}";
36+ passwordFile = pkgs.writeText "dbPassword" "wzf6vOCbPp6cqTH";
4137 };
4238 plugins = with config.services.keycloak.package.plugins; [
4339 keycloak-discord
4440 keycloak-metrics-spi
4541 ];
4642 };
43+
4744 environment.systemPackages = with pkgs; [
4845 xmlstarlet
4946 html-tidy
@@ -102,9 +99,9 @@ let
10299 in ''
103100 keycloak.start()
104101 keycloak.wait_for_unit("keycloak.service")
105− keycloak.wait_for_open_port(443)
106102 keycloak.wait_until_succeeds("curl -sSf ${frontendUrl}")
107103
104+
108105 ### Realm Setup ###
109106
110107 # Get an admin interface access token
@@ -120,8 +117,8 @@ let
120117 # Register the metrics SPI
121118 keycloak.succeed(
122119 "${pkgs.jre}/bin/keytool -import -alias snakeoil -file ${certs.ca.cert} -storepass aaaaaa -keystore cacert.jks -noprompt",
123− "KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' kcadm.sh config credentials --server '${frontendUrl}' --realm master --user admin --password '${initialAdminPassword}'",
124− "KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' kcadm.sh update events/config -s 'eventsEnabled=true' -s 'adminEventsEnabled=true' -s 'eventsListeners+=metrics-listener'",
120+ "KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' ${pkgs.keycloak}/bin/kcadm.sh config credentials --server '${frontendUrl}' --realm master --user admin --password '${initialAdminPassword}'",
121+ "KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' ${pkgs.keycloak}/bin/kcadm.sh update events/config -s 'eventsEnabled=true' -s 'adminEventsEnabled=true' -s 'eventsListeners+=metrics-listener'",
125122 "curl -sSf '${frontendUrl}/realms/master/metrics' | grep '^keycloak_admin_event_UPDATE'"
126123 )
127124
@@ -175,6 +172,5 @@ let
175172in
176173{
177174 postgres = keycloakTest { databaseType = "postgresql"; };
178− mariadb = keycloakTest { databaseType = "mariadb"; };
179175 mysql = keycloakTest { databaseType = "mysql"; };
180176}
nixos/tests/lvm2/default.nix+1−19
@@ -11,24 +11,6 @@ let
1111 thinpool = { test = callTest ./thinpool.nix; kernelFilter = lib.id; };
1212 # we would like to test all versions, but the kernel module currently does not compile against the other versions
1313 vdo = { test = callTest ./vdo.nix; kernelFilter = lib.filter (v: v == "5.15"); };
14−
15−
16− # systemd in stage 1
17− raid-sd-stage-1 = {
18− test = callTest ./systemd-stage-1.nix;
19− kernelFilter = lib.id;
20− flavour = "raid";
21− };
22− thinpool-sd-stage-1 = {
23− test = callTest ./systemd-stage-1.nix;
24− kernelFilter = lib.id;
25− flavour = "thinpool";
26− };
27− vdo-sd-stage-1 = {
28− test = callTest ./systemd-stage-1.nix;
29− kernelFilter = lib.filter (v: v == "5.15");
30− flavour = "vdo";
31− };
3214 };
3315in
3416lib.listToAttrs (
@@ -38,7 +20,7 @@ lib.listToAttrs (
3820 v' = lib.replaceStrings [ "." ] [ "_" ] version;
3921 in
4022 lib.flip lib.mapAttrsToList tests (name: t:
41− lib.nameValuePair "lvm-${name}-linux-${v'}" (lib.optionalAttrs (builtins.elem version (t.kernelFilter kernelVersionsToTest)) (t.test ({ kernelPackages = pkgs."linuxPackages_${v'}"; } // builtins.removeAttrs t [ "test" "kernelFilter" ])))
23+ lib.nameValuePair "lvm-${name}-linux-${v'}" (lib.optionalAttrs (builtins.elem version (t.kernelFilter kernelVersionsToTest)) (t.test { kernelPackages = pkgs."linuxPackages_${v'}"; }))
4224 )
4325 )
4426 )
nixos/tests/lvm2/systemd-stage-1.nixdeleted−104
@@ -1,104 +0,0 @@
1−{ kernelPackages ? null, flavour }: let
2− preparationCode = {
3− raid = ''
4− machine.succeed("vgcreate test_vg /dev/vdc /dev/vdd")
5− machine.succeed("lvcreate -L 512M --type raid0 test_vg -n test_lv")
6− '';
7−
8− thinpool = ''
9− machine.succeed("vgcreate test_vg /dev/vdc")
10− machine.succeed("lvcreate -L 512M -T test_vg/test_thin_pool")
11− machine.succeed("lvcreate -n test_lv -V 16G --thinpool test_thin_pool test_vg")
12− '';
13−
14− vdo = ''
15− machine.succeed("vgcreate test_vg /dev/vdc")
16− machine.succeed("lvcreate --type vdo -n test_lv -L 6G -V 12G test_vg/vdo_pool_lv")
17− '';
18− }.${flavour};
19−
20− extraConfig = {
21− raid = {
22− boot.initrd.kernelModules = [
23− "dm-raid"
24− "raid0"
25− ];
26− };
27−
28− thinpool = {
29− services.lvm = {
30− boot.thin.enable = true;
31− dmeventd.enable = true;
32− };
33− };
34−
35− vdo = {
36− services.lvm = {
37− boot.vdo.enable = true;
38− dmeventd.enable = true;
39− };
40− };
41− }.${flavour};
42−
43− extraCheck = {
44− raid = ''
45− "test_lv" in machine.succeed("lvs --select segtype=raid0")
46− '';
47−
48− thinpool = ''
49− "test_lv" in machine.succeed("lvs --select segtype=thin-pool")
50− '';
51−
52− vdo = ''
53− "test_lv" in machine.succeed("lvs --select segtype=vdo")
54− '';
55− }.${flavour};
56−
57−in import ../make-test-python.nix ({ pkgs, ... }: {
58− name = "lvm2-${flavour}-systemd-stage-1";
59− meta.maintainers = with pkgs.lib.maintainers; [ das_j ];
60−
61− nodes.machine = { pkgs, lib, ... }: {
62− imports = [ extraConfig ];
63− # Use systemd-boot
64− virtualisation = {
65− emptyDiskImages = [ 8192 8192 ];
66− useBootLoader = true;
67− useEFIBoot = true;
68− };
69− boot.loader.systemd-boot.enable = true;
70− boot.loader.efi.canTouchEfiVariables = true;
71−
72− environment.systemPackages = with pkgs; [ e2fsprogs ]; # for mkfs.ext4
73− boot = {
74− initrd.systemd = {
75− enable = true;
76− emergencyAccess = true;
77− };
78− initrd.services.lvm.enable = true;
79− kernelPackages = lib.mkIf (kernelPackages != null) kernelPackages;
80− };
81−
82− specialisation.boot-lvm.configuration.virtualisation.bootDevice = "/dev/test_vg/test_lv";
83− };
84−
85− testScript = ''
86− machine.wait_for_unit("multi-user.target")
87− # Create a VG for the root
88− ${preparationCode}
89− machine.succeed("mkfs.ext4 /dev/test_vg/test_lv")
90− machine.succeed("mkdir -p /mnt && mount /dev/test_vg/test_lv /mnt && echo hello > /mnt/test && umount /mnt")
91−
92− # Boot from LVM
93− machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-lvm.conf")
94− machine.succeed("sync")
95− machine.crash()
96− machine.wait_for_unit("multi-user.target")
97−
98− # Ensure we have successfully booted from LVM
99− assert "(initrd)" in machine.succeed("systemd-analyze") # booted with systemd in stage 1
100− assert "/dev/mapper/test_vg-test_lv on / type ext4" in machine.succeed("mount")
101− assert "hello" in machine.succeed("cat /test")
102− ${extraCheck}
103− '';
104−})
nixos/tests/lxd-image-server.nix+48−15
@@ -1,21 +1,54 @@
1−import ./make-test-python.nix ({ pkgs, lib, ... } :
1+import ./make-test-python.nix ({ pkgs, ...} :
22
33let
4− lxd-image = import ../release.nix {
5− configuration = {
6− # Building documentation makes the test unnecessarily take a longer time:
7− documentation.enable = lib.mkForce false;
8− };
4+ # Since we don't have access to the internet during the tests, we have to
5+ # pre-fetch lxd containers beforehand.
6+ #
7+ # I've chosen to import Alpine Linux, because its image is turbo-tiny and,
8+ # generally, sufficient for our tests.
9+ alpine-meta = pkgs.fetchurl {
10+ url = "https://tarballs.nixos.org/alpine/3.12/lxd.tar.xz";
11+ hash = "sha256-1tcKaO9lOkvqfmG/7FMbfAEToAuFy2YMewS8ysBKuLA=";
12+ };
13+
14+ alpine-rootfs = pkgs.fetchurl {
15+ url = "https://tarballs.nixos.org/alpine/3.12/rootfs.tar.xz";
16+ hash = "sha256-Tba9sSoaiMtQLY45u7p5DMqXTSDgs/763L/SQp0bkCA=";
917 };
1018
11− lxd-image-metadata = lxd-image.lxdMeta.${pkgs.system};
12− lxd-image-rootfs = lxd-image.lxdImage.${pkgs.system};
19+ lxd-config = pkgs.writeText "config.yaml" ''
20+ storage_pools:
21+ - name: default
22+ driver: dir
23+ config:
24+ source: /var/lxd-pool
25+
26+ networks:
27+ - name: lxdbr0
28+ type: bridge
29+ config:
30+ ipv4.address: auto
31+ ipv6.address: none
32+
33+ profiles:
34+ - name: default
35+ devices:
36+ eth0:
37+ name: eth0
38+ network: lxdbr0
39+ type: nic
40+ root:
41+ path: /
42+ pool: default
43+ type: disk
44+ '';
45+
1346
1447in {
1548 name = "lxd-image-server";
1649
1750 meta = with pkgs.lib.maintainers; {
18− maintainers = [ mkg20001 patryk27 ];
51+ maintainers = [ mkg20001 ];
1952 };
2053
2154 nodes.machine = { lib, ... }: {
@@ -67,20 +100,20 @@ in {
67100 # lxd expects the pool's directory to already exist
68101 machine.succeed("mkdir /var/lxd-pool")
69102
103+
70104 machine.succeed(
71− "cat ${./common/lxd/config.yaml} | lxd init --preseed"
105+ "cat ${lxd-config} | lxd init --preseed"
72106 )
73107
74108 machine.succeed(
75− "lxc image import ${lxd-image-metadata}/*/*.tar.xz ${lxd-image-rootfs}/*/*.tar.xz --alias nixos"
109+ "lxc image import ${alpine-meta} ${alpine-rootfs} --alias alpine"
76110 )
77111
78− loc = "/var/www/simplestreams/images/iats/nixos/amd64/default/v1"
112+ loc = "/var/www/simplestreams/images/iats/alpine/amd64/default/v1"
79113
80114 with subtest("push image to server"):
81− machine.succeed("lxc launch nixos test")
82− machine.sleep(5)
83− machine.succeed("lxc stop -f test")
115+ machine.succeed("lxc launch alpine test")
116+ machine.succeed("lxc stop test")
84117 machine.succeed("lxc publish --public test --alias=testimg")
85118 machine.succeed("lxc image export testimg")
86119 machine.succeed("ls >&2")
nixos/tests/lxd-image.nixnew file+89
@@ -0,0 +1,89 @@
1+# This test ensures that the nixOS lxd images builds and functions properly
2+# It has been extracted from `lxd.nix` to seperate failures of just the image and the lxd software
3+
4+import ./make-test-python.nix ({ pkgs, ...} : let
5+ release = import ../release.nix {
6+ /* configuration = {
7+ environment.systemPackages = with pkgs; [ stdenv ]; # inject stdenv so rebuild test works
8+ }; */
9+ };
10+
11+ metadata = release.lxdMeta.${pkgs.system};
12+ image = release.lxdImage.${pkgs.system};
13+
14+ lxd-config = pkgs.writeText "config.yaml" ''
15+ storage_pools:
16+ - name: default
17+ driver: dir
18+ config:
19+ source: /var/lxd-pool
20+
21+ networks:
22+ - name: lxdbr0
23+ type: bridge
24+ config:
25+ ipv4.address: auto
26+ ipv6.address: none
27+
28+ profiles:
29+ - name: default
30+ devices:
31+ eth0:
32+ name: eth0
33+ network: lxdbr0
34+ type: nic
35+ root:
36+ path: /
37+ pool: default
38+ type: disk
39+ '';
40+in {
41+ name = "lxd-image";
42+
43+ meta = with pkgs.lib.maintainers; {
44+ maintainers = [ mkg20001 ];
45+ };
46+
47+ nodes.machine = { lib, ... }: {
48+ virtualisation = {
49+ # disk full otherwise
50+ diskSize = 2048;
51+
52+ lxc.lxcfs.enable = true;
53+ lxd.enable = true;
54+ };
55+ };
56+
57+ testScript = ''
58+ machine.wait_for_unit("sockets.target")
59+ machine.wait_for_unit("lxd.service")
60+ machine.wait_for_file("/var/lib/lxd/unix.socket")
61+
62+ # It takes additional second for lxd to settle
63+ machine.sleep(1)
64+
65+ # lxd expects the pool's directory to already exist
66+ machine.succeed("mkdir /var/lxd-pool")
67+
68+ machine.succeed(
69+ "cat ${lxd-config} | lxd init --preseed"
70+ )
71+
72+ # TODO: test custom built container aswell
73+
74+ with subtest("importing container works"):
75+ machine.succeed("lxc image import ${metadata}/*/*.tar.xz ${image}/*/*.tar.xz --alias nixos")
76+
77+ with subtest("launching container works"):
78+ machine.succeed("lxc launch nixos machine -c security.nesting=true")
79+ # make sure machine boots up properly
80+ machine.sleep(5)
81+
82+ with subtest("container shell works"):
83+ machine.succeed("echo true | lxc exec machine /run/current-system/sw/bin/bash -")
84+ machine.succeed("lxc exec machine /run/current-system/sw/bin/true")
85+
86+ # with subtest("rebuilding works"):
87+ # machine.succeed("lxc exec machine /run/current-system/sw/bin/nixos-rebuild switch")
88+ '';
89+})
nixos/tests/lxd.nix+63−40
@@ -1,18 +1,48 @@
1−import ./make-test-python.nix ({ pkgs, lib, ... } :
1+import ./make-test-python.nix ({ pkgs, ...} :
22
33let
4− lxd-image = import ../release.nix {
5− configuration = {
6− # Building documentation makes the test unnecessarily take a longer time:
7− documentation.enable = lib.mkForce false;
4+ # Since we don't have access to the internet during the tests, we have to
5+ # pre-fetch lxd containers beforehand.
6+ #
7+ # I've chosen to import Alpine Linux, because its image is turbo-tiny and,
8+ # generally, sufficient for our tests.
9+ alpine-meta = pkgs.fetchurl {
10+ url = "https://tarballs.nixos.org/alpine/3.12/lxd.tar.xz";
11+ hash = "sha256-1tcKaO9lOkvqfmG/7FMbfAEToAuFy2YMewS8ysBKuLA=";
12+ };
813
9− # Our tests require `grep` & friends:
10− environment.systemPackages = with pkgs; [ busybox ];
11− };
14+ alpine-rootfs = pkgs.fetchurl {
15+ url = "https://tarballs.nixos.org/alpine/3.12/rootfs.tar.xz";
16+ hash = "sha256-Tba9sSoaiMtQLY45u7p5DMqXTSDgs/763L/SQp0bkCA=";
1217 };
1318
14− lxd-image-metadata = lxd-image.lxdMeta.${pkgs.system};
15− lxd-image-rootfs = lxd-image.lxdImage.${pkgs.system};
19+ lxd-config = pkgs.writeText "config.yaml" ''
20+ storage_pools:
21+ - name: default
22+ driver: dir
23+ config:
24+ source: /var/lxd-pool
25+
26+ networks:
27+ - name: lxdbr0
28+ type: bridge
29+ config:
30+ ipv4.address: auto
31+ ipv6.address: none
32+
33+ profiles:
34+ - name: default
35+ devices:
36+ eth0:
37+ name: eth0
38+ network: lxdbr0
39+ type: nic
40+ root:
41+ path: /
42+ pool: default
43+ type: disk
44+ '';
45+
1646
1747in {
1848 name = "lxd";
@@ -23,8 +53,6 @@ in {
2353
2454 nodes.machine = { lib, ... }: {
2555 virtualisation = {
26− diskSize = 2048;
27−
2856 # Since we're testing `limits.cpu`, we've gotta have a known number of
2957 # cores to lean on
3058 cores = 2;
@@ -49,66 +77,61 @@ in {
4977 machine.succeed("mkdir /var/lxd-pool")
5078
5179 machine.succeed(
52− "cat ${./common/lxd/config.yaml} | lxd init --preseed"
80+ "cat ${lxd-config} | lxd init --preseed"
5381 )
5482
5583 machine.succeed(
56− "lxc image import ${lxd-image-metadata}/*/*.tar.xz ${lxd-image-rootfs}/*/*.tar.xz --alias nixos"
84+ "lxc image import ${alpine-meta} ${alpine-rootfs} --alias alpine"
5785 )
5886
59− with subtest("Container can be managed"):
60− machine.succeed("lxc launch nixos container")
61− machine.sleep(5)
62− machine.succeed("echo true | lxc exec container /run/current-system/sw/bin/bash -")
63− machine.succeed("lxc exec container true")
64− machine.succeed("lxc delete -f container")
87+ with subtest("Containers can be launched and destroyed"):
88+ machine.succeed("lxc launch alpine test")
89+ machine.succeed("lxc exec test true")
90+ machine.succeed("lxc delete -f test")
6591
66− with subtest("Container is mounted with lxcfs inside"):
67− machine.succeed("lxc launch nixos container")
68− machine.sleep(5)
92+ with subtest("Containers are being mounted with lxcfs inside"):
93+ machine.succeed("lxc launch alpine test")
6994
7095 ## ---------- ##
7196 ## limits.cpu ##
7297
73− machine.succeed("lxc config set container limits.cpu 1")
74− machine.succeed("lxc restart container")
75− machine.sleep(5)
98+ machine.succeed("lxc config set test limits.cpu 1")
99+ machine.succeed("lxc restart test")
76100
101+ # Since Alpine doesn't have `nproc` pre-installed, we've gotta resort
102+ # to the primal methods
77103 assert (
78104 "1"
79− == machine.succeed("lxc exec container grep -- -c ^processor /proc/cpuinfo").strip()
105+ == machine.succeed("lxc exec test grep -- -c ^processor /proc/cpuinfo").strip()
80106 )
81107
82− machine.succeed("lxc config set container limits.cpu 2")
83− machine.succeed("lxc restart container")
84− machine.sleep(5)
108+ machine.succeed("lxc config set test limits.cpu 2")
109+ machine.succeed("lxc restart test")
85110
86111 assert (
87112 "2"
88− == machine.succeed("lxc exec container grep -- -c ^processor /proc/cpuinfo").strip()
113+ == machine.succeed("lxc exec test grep -- -c ^processor /proc/cpuinfo").strip()
89114 )
90115
91116 ## ------------- ##
92117 ## limits.memory ##
93118
94− machine.succeed("lxc config set container limits.memory 64MB")
95− machine.succeed("lxc restart container")
96− machine.sleep(5)
119+ machine.succeed("lxc config set test limits.memory 64MB")
120+ machine.succeed("lxc restart test")
97121
98122 assert (
99123 "MemTotal: 62500 kB"
100− == machine.succeed("lxc exec container grep -- MemTotal /proc/meminfo").strip()
124+ == machine.succeed("lxc exec test grep -- MemTotal /proc/meminfo").strip()
101125 )
102126
103− machine.succeed("lxc config set container limits.memory 128MB")
104− machine.succeed("lxc restart container")
105− machine.sleep(5)
127+ machine.succeed("lxc config set test limits.memory 128MB")
128+ machine.succeed("lxc restart test")
106129
107130 assert (
108131 "MemTotal: 125000 kB"
109− == machine.succeed("lxc exec container grep -- MemTotal /proc/meminfo").strip()
132+ == machine.succeed("lxc exec test grep -- MemTotal /proc/meminfo").strip()
110133 )
111134
112− machine.succeed("lxc delete -f container")
135+ machine.succeed("lxc delete -f test")
113136 '';
114137})
nixos/tests/mailcatcher.nix+2−7
@@ -9,13 +9,8 @@ import ./make-test-python.nix ({ lib, ... }:
99 {
1010 services.mailcatcher.enable = true;
1111
12− programs.msmtp = {
13− enable = true;
14− accounts.default = {
15− host = "localhost";
16− port = 1025;
17− };
18− };
12+ services.ssmtp.enable = true;
13+ services.ssmtp.hostName = "localhost:1025";
1914
2015 environment.systemPackages = [ pkgs.mailutils ];
2116 };
nixos/tests/matrix-appservice-irc.nix−3
@@ -20,9 +20,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
2020
2121 enable_registration = true;
2222
23− # don't use this in production, always use some form of verification
24− enable_registration_without_verification = true;
25−
2623 listeners = [ {
2724 # The default but tls=false
2825 bind_addresses = [
nixos/tests/mongodb.nix−4
@@ -37,8 +37,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
3737 mongodb-3_6
3838 mongodb-4_0
3939 mongodb-4_2
40− mongodb-4_4
41− mongodb-5_0
4240 ];
4341 };
4442 };
@@ -50,8 +48,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
5048 + runMongoDBTest pkgs.mongodb-3_6
5149 + runMongoDBTest pkgs.mongodb-4_0
5250 + runMongoDBTest pkgs.mongodb-4_2
53− + runMongoDBTest pkgs.mongodb-4_4
54− + runMongoDBTest pkgs.mongodb-5_0
5551 + ''
5652 node.shutdown()
5753 '';
nixos/tests/nar-serve.nix+1−1
@@ -31,7 +31,7 @@ import ./make-test-python.nix (
3131
3232 # Create a fake cache with Nginx service the static files
3333 server.succeed(
34− "nix --experimental-features nix-command copy --to file:///var/www ${pkgs.hello}"
34+ "nix copy --to file:///var/www ${pkgs.hello}"
3535 )
3636 server.wait_for_unit("nginx.service")
3737 server.wait_for_open_port(80)
nixos/tests/nbd.nix−16
@@ -28,11 +28,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
2828 ## It's also a loopback device to test exporting /dev/...
2929 systemd.services.create-priv-file =
3030 mkCreateSmallFileService { path = "/vault-priv.disk"; loop = true; };
31− ## `aaa.disk` is just here because "[aaa]" sorts before
32− ## "[generic]" lexicographically, and nbd-server breaks if
33− ## "[generic]" isn't the first section.
34− systemd.services.create-aaa-file =
35− mkCreateSmallFileService { path = "/aaa.disk"; };
3631
3732 # Needed only for nbd-client used in the tests.
3833 environment.systemPackages = [ pkgs.nbd ];
@@ -44,9 +39,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
4439 services.nbd.server = {
4540 enable = true;
4641 exports = {
47− aaa = {
48− path = "/aaa.disk";
49− };
5042 vault-pub = {
5143 path = "/vault-pub.disk";
5244 };
@@ -91,13 +83,5 @@ import ./make-test-python.nix ({ pkgs, ... }:
9183 if foundString != testString:
9284 raise Exception(f"Read the wrong string from nbd disk. Expected: '{testString}'. Found: '{foundString}'")
9385 server.succeed("nbd-client -d /dev/nbd0")
94−
95− # Server: Successfully connect to the aaa disk
96− server.succeed("nbd-client localhost ${toString listenPort} /dev/nbd0 -name aaa -persist")
97− server.succeed(f"echo '{testString}' | dd of=/dev/nbd0 conv=notrunc")
98− foundString = server.succeed(f"dd status=none if=/aaa.disk count={len(testString)}")[:len(testString)]
99− if foundString != testString:
100− raise Exception(f"Read the wrong string from nbd disk. Expected: '{testString}'. Found: '{foundString}'")
101− server.succeed("nbd-client -d /dev/nbd0")
10286 '';
10387 })
nixos/tests/ncdns.nix+9−6
@@ -29,10 +29,10 @@ in
2929 };
3030
3131 nodes.server = { ... }: {
32− networking.nameservers = [ "::1" ];
32+ networking.nameservers = [ "127.0.0.1" ];
3333
3434 services.namecoind.rpc = {
35− address = "::1";
35+ address = "127.0.0.1";
3636 user = "namecoin";
3737 password = "secret";
3838 port = 8332;
@@ -45,7 +45,7 @@ in
4545 script = ''
4646 while true; do
4747 echo -e "HTTP/1.1 200 OK\n\n $(<${fakeReply})\n" \
48− | ${pkgs.netcat}/bin/nc -N -l ::1 8332
48+ | ${pkgs.netcat}/bin/nc -N -l 127.0.0.1 8332
4949 done
5050 '';
5151 };
@@ -58,10 +58,14 @@ in
5858 identity.address = "1.0.0.1";
5959 };
6060
61− services.pdns-recursor.enable = true;
62− services.pdns-recursor.resolveNamecoin = true;
61+ services.pdns-recursor = {
62+ enable = true;
63+ dns.allowFrom = [ "127.0.0.0/8" ];
64+ resolveNamecoin = true;
65+ };
6366
6467 environment.systemPackages = [ pkgs.dnsutils ];
68+
6569 };
6670
6771 testScript =
@@ -87,7 +91,6 @@ in
8791 assert "example.com" in server.succeed("dig SOA @localhost -p 5333 bit")
8892
8993 with subtest("bit. zone forwarding works"):
90− server.wait_for_unit("pdns-recursor")
9194 assert "1.2.3.4" in server.succeed("host test.bit")
9295 '';
9396})
nixos/tests/networking.nix+1−1
@@ -878,7 +878,7 @@ let
878878 linkConfig.Name = "custom_name";
879879 };
880880 }
881− else { boot.initrd.services.udev.rules = ''
881+ else { services.udev.initrdRules = ''
882882 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:12:01:01", KERNEL=="eth*", NAME="custom_name"
883883 '';
884884 });
nixos/tests/nextcloud/with-mysql-and-memcached.nix+22−1
@@ -26,7 +26,6 @@ in {
2626 redis = false;
2727 memcached = true;
2828 };
29− database.createLocally = true;
3029 config = {
3130 dbtype = "mysql";
3231 dbname = "nextcloud";
@@ -39,6 +38,28 @@ in {
3938 };
4039 };
4140
41+ services.mysql = {
42+ enable = true;
43+ settings.mysqld = {
44+ bind-address = "127.0.0.1";
45+
46+ # FIXME(@Ma27) Nextcloud isn't compatible with mariadb 10.6,
47+ # this is a workaround.
48+ # See https://help.nextcloud.com/t/update-to-next-cloud-21-0-2-has-get-an-error/117028/22
49+ innodb_read_only_compressed = 0;
50+ };
51+ package = pkgs.mariadb;
52+
53+ initialScript = pkgs.writeText "mysql-init" ''
54+ CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'hunter2';
55+ CREATE DATABASE IF NOT EXISTS nextcloud;
56+ GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER,
57+ CREATE TEMPORARY TABLES ON nextcloud.* TO 'nextcloud'@'localhost'
58+ IDENTIFIED BY 'hunter2';
59+ FLUSH privileges;
60+ '';
61+ };
62+
4263 systemd.services.nextcloud-setup= {
4364 requires = ["mysql.service"];
4465 after = ["mysql.service"];
nixos/tests/openssh.nix+6−12
@@ -80,21 +80,17 @@ in {
8080
8181 client.wait_for_unit("network.target")
8282 client.succeed(
83− "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'echo hello world' >&2",
84− timeout=30
83+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'echo hello world' >&2"
8584 )
8685 client.succeed(
87− "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'ulimit -l' | grep 1024",
88− timeout=30
86+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'ulimit -l' | grep 1024"
8987 )
9088
9189 client.succeed(
92− "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'echo hello world' >&2",
93− timeout=30
90+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'echo hello world' >&2"
9491 )
9592 client.succeed(
96− "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'ulimit -l' | grep 1024",
97− timeout=30
93+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'ulimit -l' | grep 1024"
9894 )
9995
10096 with subtest("configured-authkey"):
@@ -103,12 +99,10 @@ in {
10399 )
104100 client.succeed("chmod 600 privkey.snakeoil")
105101 client.succeed(
106− "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil server true",
107− timeout=30
102+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil server true"
108103 )
109104 client.succeed(
110− "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil server_lazy true",
111− timeout=30
105+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil server_lazy true"
112106 )
113107
114108 with subtest("localhost-only"):
nixos/tests/pam/pam-oath-login.nix+1−1
@@ -7,7 +7,7 @@ let
77 # how many passwords have been made. In this env, we'll always be on
88 # the 0th counter, so the password is static.
99 #
10− # Generated in nix-shell -p oath-toolkit
10+ # Generated in nix-shell -p oathToolkit
1111 # via: oathtool -v -d6 -w10 cdd4083ef8ff1fa9178c6d46bfb1a3
1212 # and picking a the first 4:
1313 oathSnakeOilPassword1 = "143349";
nixos/tests/pam/pam-ussh.nixdeleted−70
@@ -1,70 +0,0 @@
1−import ../make-test-python.nix ({ pkgs, lib, ... }:
2−
3−let
4− testOnlySSHCredentials = pkgs.runCommand "pam-ussh-test-ca" {
5− nativeBuildInputs = [ pkgs.openssh ];
6− } ''
7− mkdir $out
8− ssh-keygen -t ed25519 -N "" -f $out/ca
9−
10− ssh-keygen -t ed25519 -N "" -f $out/alice
11− ssh-keygen -s $out/ca -I "alice user key" -n "alice,root" -V 19700101:forever $out/alice.pub
12−
13− ssh-keygen -t ed25519 -N "" -f $out/bob
14− ssh-keygen -s $out/ca -I "bob user key" -n "bob" -V 19700101:forever $out/bob.pub
15− '';
16− makeTestScript = user: pkgs.writeShellScript "pam-ussh-${user}-test-script" ''
17− set -euo pipefail
18−
19− eval $(${pkgs.openssh}/bin/ssh-agent)
20−
21− mkdir -p $HOME/.ssh
22− chmod 700 $HOME/.ssh
23− cp ${testOnlySSHCredentials}/${user}{,.pub,-cert.pub} $HOME/.ssh
24− chmod 600 $HOME/.ssh/${user}
25− chmod 644 $HOME/.ssh/${user}{,-cert}.pub
26−
27− set -x
28−
29− ${pkgs.openssh}/bin/ssh-add $HOME/.ssh/${user}
30− ${pkgs.openssh}/bin/ssh-add -l &>2
31−
32− exec sudo id -u -n
33− '';
34−in {
35− name = "pam-ussh";
36− meta.maintainers = with lib.maintainers; [ lukegb ];
37−
38− machine =
39− { ... }:
40− {
41− users.users.alice = { isNormalUser = true; extraGroups = [ "wheel" ]; };
42− users.users.bob = { isNormalUser = true; extraGroups = [ "wheel" ]; };
43−
44− security.pam.ussh = {
45− enable = true;
46− authorizedPrincipals = "root";
47− caFile = "${testOnlySSHCredentials}/ca.pub";
48− };
49−
50− security.sudo = {
51− enable = true;
52− extraConfig = ''
53− Defaults lecture="never"
54− '';
55− };
56− };
57−
58− testScript =
59− ''
60− with subtest("alice should be allowed to escalate to root"):
61− machine.succeed(
62− 'su -c "${makeTestScript "alice"}" -l alice | grep root'
63− )
64−
65− with subtest("bob should not be allowed to escalate to root"):
66− machine.fail(
67− 'su -c "${makeTestScript "bob"}" -l bob | grep root'
68− )
69− '';
70−})
nixos/tests/paperless.nix → nixos/tests/paperless-ng.nixrenamed+12−11
@@ -1,32 +1,30 @@
11import ./make-test-python.nix ({ lib, ... }: {
2− name = "paperless";
2+ name = "paperless-ng";
33 meta.maintainers = with lib.maintainers; [ earvstedt Flakebi ];
44
55 nodes.machine = { pkgs, ... }: {
66 environment.systemPackages = with pkgs; [ imagemagick jq ];
7− services.paperless = {
7+ services.paperless-ng = {
88 enable = true;
99 passwordFile = builtins.toFile "password" "admin";
1010 };
1111 };
1212
1313 testScript = ''
14− import json
14+ machine.wait_for_unit("paperless-ng-consumer.service")
1515
16− machine.wait_for_unit("paperless-consumer.service")
17−
18− with subtest("Add a document via the file system"):
16+ with subtest("Create test doc"):
1917 machine.succeed(
2018 "convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "
2119 "-annotate +5+20 'hello world 16-10-2005' /var/lib/paperless/consume/doc.png"
2220 )
2321
2422 with subtest("Web interface gets ready"):
25− machine.wait_for_unit("paperless-web.service")
23+ machine.wait_for_unit("paperless-ng-web.service")
2624 # Wait until server accepts connections
2725 machine.wait_until_succeeds("curl -fs localhost:28981")
2826
29− with subtest("Add a document via the web interface"):
27+ with subtest("Create web test doc"):
3028 machine.succeed(
3129 "convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "
3230 "-annotate +5+20 'hello web 16-10-2005' /tmp/webdoc.png"
@@ -37,8 +35,11 @@ import ./make-test-python.nix ({ lib, ... }: {
3735 machine.wait_until_succeeds(
3836 "(($(curl -u admin:admin -fs localhost:28981/api/documents/ | jq .count) == 2))"
3937 )
40− docs = json.loads(machine.succeed("curl -u admin:admin -fs localhost:28981/api/documents/"))['results']
41− assert "2005-10-16" in docs[0]['created']
42− assert "2005-10-16" in docs[1]['created']
38+ assert "2005-10-16" in machine.succeed(
39+ "curl -u admin:admin -fs localhost:28981/api/documents/ | jq '.results | .[0] | .created'"
40+ )
41+ assert "2005-10-16" in machine.succeed(
42+ "curl -u admin:admin -fs localhost:28981/api/documents/ | jq '.results | .[1] | .created'"
43+ )
4344 '';
4445})
nixos/tests/pdns-recursor.nix+1−4
@@ -1,15 +1,12 @@
11import ./make-test-python.nix ({ pkgs, ... }: {
2− name = "powerdns-recursor";
2+ name = "powerdns";
33
44 nodes.server = { ... }: {
55 services.pdns-recursor.enable = true;
6− services.pdns-recursor.exportHosts= true;
7− networking.hosts."192.0.2.1" = [ "example.com" ];
86 };
97
108 testScript = ''
119 server.wait_for_unit("pdns-recursor")
1210 server.wait_for_open_port("53")
13− assert "192.0.2.1" in server.succeed("host example.com localhost")
1411 '';
1512})
nixos/tests/pgadmin4.nix+48−37
@@ -1,27 +1,53 @@
1−import ./make-test-python.nix ({ pkgs, lib, buildDeps ? [ ], pythonEnv ? [ ], ... }:
2−
3− /*
4− This test suite replaces the typical pytestCheckHook function in python
5− packages. Pgadmin4 test suite needs a running and configured postgresql
6− server. This is why this test exists.
7−
8− To not repeat all the python dependencies needed, this test is called directly
9− from the pgadmin4 derivation, which also passes the currently
10− used propagatedBuildInputs and any python overrides.
11−
12− Unfortunately, there doesn't seem to be an easy way to otherwise include
13− the needed packages here.
14−
15− Due the the needed parameters a direct call to "nixosTests.pgadmin4" fails
16− and needs to be called as "pgadmin4.tests"
17−
18− */
1+import ./make-test-python.nix ({ pkgs, lib, ... }:
192
203 let
214 pgadmin4SrcDir = "/pgadmin";
225 pgadmin4Dir = "/var/lib/pgadmin";
236 pgadmin4LogDir = "/var/log/pgadmin";
247
8+ python-with-needed-packages = pkgs.python3.withPackages (ps: with ps; [
9+ selenium
10+ testtools
11+ testscenarios
12+ flask
13+ flask-babelex
14+ flask-babel
15+ flask-gravatar
16+ flask_login
17+ flask_mail
18+ flask_migrate
19+ flask_sqlalchemy
20+ flask_wtf
21+ flask-compress
22+ passlib
23+ pytz
24+ simplejson
25+ six
26+ sqlparse
27+ wtforms
28+ flask-paranoid
29+ psutil
30+ psycopg2
31+ python-dateutil
32+ sqlalchemy
33+ itsdangerous
34+ flask-security-too
35+ bcrypt
36+ cryptography
37+ sshtunnel
38+ ldap3
39+ gssapi
40+ flask-socketio
41+ eventlet
42+ httpagentparser
43+ user-agents
44+ wheel
45+ authlib
46+ qrcode
47+ pillow
48+ pyotp
49+ boto3
50+ ]);
2551 in
2652 {
2753 name = "pgadmin4";
@@ -29,27 +55,12 @@ import ./make-test-python.nix ({ pkgs, lib, buildDeps ? [ ], pythonEnv ? [ ], ..
2955
3056 nodes.machine = { pkgs, ... }: {
3157 imports = [ ./common/x11.nix ];
32− # needed because pgadmin 6.8 will fail, if those dependencies get updated
33− nixpkgs.overlays = [
34− (self: super: {
35− pythonPackages = pythonEnv;
36− })
37− ];
38−
3958 environment.systemPackages = with pkgs; [
4059 pgadmin4
4160 postgresql
61+ python-with-needed-packages
4262 chromedriver
4363 chromium
44− # include the same packages as in pgadmin minus speaklater3
45− (python3.withPackages
46− (ps: buildDeps ++
47− [
48− # test suite package requirements
49− pythonPackages.testscenarios
50− pythonPackages.selenium
51− ])
52− )
5364 ];
5465 services.postgresql = {
5566 enable = true;
@@ -110,7 +121,7 @@ import ./make-test-python.nix ({ pkgs, lib, buildDeps ? [ ], pythonEnv ? [ ], ..
110121 with subtest("run browser test"):
111122 machine.succeed(
112123 'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \
113− && python regression/runtests.py --pkg browser --exclude \
124+ && ${python-with-needed-packages.interpreter} regression/runtests.py --pkg browser --exclude \
114125 browser.tests.test_ldap_login.LDAPLoginTestCase,browser.tests.test_ldap_login'
115126 )
116127
@@ -120,13 +131,13 @@ import ./make-test-python.nix ({ pkgs, lib, buildDeps ? [ ], pythonEnv ? [ ], ..
120131 machine.succeed(
121132 'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \
122133 && export FONTCONFIG_FILE=${pkgs.makeFontsConf { fontDirectories = [];}} \
123− && python regression/runtests.py --pkg feature_tests'
134+ && ${python-with-needed-packages.interpreter} regression/runtests.py --pkg feature_tests'
124135 )
125136
126137 with subtest("run resql test"):
127138 machine.succeed(
128139 'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \
129− && python regression/runtests.py --pkg resql'
140+ && ${python-with-needed-packages.interpreter} regression/runtests.py --pkg resql'
130141 )
131142 '';
132143 })
nixos/tests/snapcast.nix−1
@@ -19,7 +19,6 @@ in {
1919 port = port;
2020 tcp.port = tcpPort;
2121 http.port = httpPort;
22− openFirewall = true;
2322 buffer = bufferSize;
2423 streams = {
2524 mpd = {
nixos/tests/step-ca.nix−1
@@ -9,7 +9,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
99 '';
1010 in
1111 {
12− name = "step-ca";
1312 nodes =
1413 {
1514 caserver =
nixos/tests/systemd-initrd-btrfs-raid.nixdeleted−45
@@ -1,45 +0,0 @@
1−import ./make-test-python.nix ({ lib, pkgs, ... }: {
2− name = "systemd-initrd-btrfs-raid";
3−
4− nodes.machine = { pkgs, ... }: {
5− # Use systemd-boot
6− virtualisation = {
7− emptyDiskImages = [ 512 512 ];
8− useBootLoader = true;
9− useEFIBoot = true;
10− };
11− boot.loader.systemd-boot.enable = true;
12− boot.loader.efi.canTouchEfiVariables = true;
13−
14− environment.systemPackages = with pkgs; [ btrfs-progs ];
15− boot.initrd.systemd = {
16− enable = true;
17− emergencyAccess = true;
18− };
19−
20− specialisation.boot-btrfs-raid.configuration = {
21− fileSystems = lib.mkVMOverride {
22− "/".fsType = lib.mkForce "btrfs";
23− };
24− virtualisation.bootDevice = "/dev/vdc";
25− };
26− };
27−
28− testScript = ''
29− # Create RAID
30− machine.succeed("mkfs.btrfs -d raid0 /dev/vdc /dev/vdd")
31− machine.succeed("mkdir -p /mnt && mount /dev/vdc /mnt && echo hello > /mnt/test && umount /mnt")
32−
33− # Boot from the RAID
34− machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-btrfs-raid.conf")
35− machine.succeed("sync")
36− machine.crash()
37− machine.wait_for_unit("multi-user.target")
38−
39− # Ensure we have successfully booted from the RAID
40− assert "(initrd)" in machine.succeed("systemd-analyze") # booted with systemd in stage 1
41− assert "/dev/vdc on / type btrfs" in machine.succeed("mount")
42− assert "hello" in machine.succeed("cat /test")
43− assert "Total devices 2" in machine.succeed("btrfs filesystem show")
44− '';
45−})
nixos/tests/systemd-initrd-luks-keyfile.nixdeleted−53
@@ -1,53 +0,0 @@
1−import ./make-test-python.nix ({ lib, pkgs, ... }: let
2−
3− keyfile = pkgs.writeText "luks-keyfile" ''
4− MIGHAoGBAJ4rGTSo/ldyjQypd0kuS7k2OSsmQYzMH6TNj3nQ/vIUjDn7fqa3slt2
5− gV6EK3TmTbGc4tzC1v4SWx2m+2Bjdtn4Fs4wiBwn1lbRdC6i5ZYCqasTWIntWn+6
6− FllUkMD5oqjOR/YcboxG8Z3B5sJuvTP9llsF+gnuveWih9dpbBr7AgEC
7− '';
8−
9−in {
10− name = "systemd-initrd-luks-keyfile";
11−
12− nodes.machine = { pkgs, ... }: {
13− # Use systemd-boot
14− virtualisation = {
15− emptyDiskImages = [ 512 ];
16− useBootLoader = true;
17− useEFIBoot = true;
18− };
19− boot.loader.systemd-boot.enable = true;
20−
21− environment.systemPackages = with pkgs; [ cryptsetup ];
22− boot.initrd.systemd = {
23− enable = true;
24− emergencyAccess = true;
25− };
26−
27− specialisation.boot-luks.configuration = {
28− boot.initrd.luks.devices = lib.mkVMOverride {
29− cryptroot = {
30− device = "/dev/vdc";
31− keyFile = "/etc/cryptroot.key";
32− };
33− };
34− virtualisation.bootDevice = "/dev/mapper/cryptroot";
35− boot.initrd.secrets."/etc/cryptroot.key" = keyfile;
36− };
37− };
38−
39− testScript = ''
40− # Create encrypted volume
41− machine.wait_for_unit("multi-user.target")
42− machine.succeed("cryptsetup luksFormat -q --iter-time=1 -d ${keyfile} /dev/vdc")
43−
44− # Boot from the encrypted disk
45− machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks.conf")
46− machine.succeed("sync")
47− machine.crash()
48−
49− # Boot and decrypt the disk
50− machine.wait_for_unit("multi-user.target")
51− assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
52− '';
53−})
nixos/tests/systemd-initrd-luks-password.nixdeleted−48
@@ -1,48 +0,0 @@
1−import ./make-test-python.nix ({ lib, pkgs, ... }: {
2− name = "systemd-initrd-luks-password";
3−
4− nodes.machine = { pkgs, ... }: {
5− # Use systemd-boot
6− virtualisation = {
7− emptyDiskImages = [ 512 512 ];
8− useBootLoader = true;
9− useEFIBoot = true;
10− };
11− boot.loader.systemd-boot.enable = true;
12−
13− environment.systemPackages = with pkgs; [ cryptsetup ];
14− boot.initrd.systemd = {
15− enable = true;
16− emergencyAccess = true;
17− };
18−
19− specialisation.boot-luks.configuration = {
20− boot.initrd.luks.devices = lib.mkVMOverride {
21− # We have two disks and only type one password - key reuse is in place
22− cryptroot.device = "/dev/vdc";
23− cryptroot2.device = "/dev/vdd";
24− };
25− virtualisation.bootDevice = "/dev/mapper/cryptroot";
26− };
27− };
28−
29− testScript = ''
30− # Create encrypted volume
31− machine.wait_for_unit("multi-user.target")
32− machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdc -")
33− machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdd -")
34−
35− # Boot from the encrypted disk
36− machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks.conf")
37− machine.succeed("sync")
38− machine.crash()
39−
40− # Boot and decrypt the disk
41− machine.start()
42− machine.wait_for_console_text("Please enter passphrase for disk cryptroot")
43− machine.send_console("supersecret\n")
44− machine.wait_for_unit("multi-user.target")
45−
46− assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
47− '';
48−})
nixos/tests/systemd-initrd-simple.nix+7−24
@@ -1,7 +1,7 @@
11import ./make-test-python.nix ({ lib, pkgs, ... }: {
22 name = "systemd-initrd-simple";
33
4− nodes.machine = { pkgs, ... }: {
4+ machine = { pkgs, ... }: {
55 boot.initrd.systemd = {
66 enable = true;
77 emergencyAccess = true;
@@ -14,31 +14,14 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
1414 testScript = ''
1515 import subprocess
1616
17− with subtest("handover to stage-2 systemd works"):
18− machine.wait_for_unit("multi-user.target")
19− machine.succeed("systemd-analyze | grep -q '(initrd)'") # direct handover
20− machine.succeed("touch /testfile") # / is writable
21− machine.fail("touch /nix/store/testfile") # /nix/store is not writable
22− # Special filesystems are mounted by systemd
23− machine.succeed("[ -e /run/booted-system ]") # /run
24− machine.succeed("[ -e /sys/class ]") # /sys
25− machine.succeed("[ -e /dev/null ]") # /dev
26− machine.succeed("[ -e /proc/1 ]") # /proc
27− # stage-2-init mounted more special filesystems
28− machine.succeed("[ -e /dev/shm ]") # /dev/shm
29− machine.succeed("[ -e /dev/pts/ptmx ]") # /dev/pts
30− machine.succeed("[ -e /run/keys ]") # /run/keys
17+ oldAvail = machine.succeed("df --output=avail / | sed 1d")
18+ machine.shutdown()
3119
20+ subprocess.check_call(["qemu-img", "resize", "vm-state-machine/machine.qcow2", "+1G"])
3221
33− with subtest("growfs works"):
34− oldAvail = machine.succeed("df --output=avail / | sed 1d")
35− machine.shutdown()
22+ machine.start()
23+ newAvail = machine.succeed("df --output=avail / | sed 1d")
3624
37− subprocess.check_call(["qemu-img", "resize", "vm-state-machine/machine.qcow2", "+1G"])
38−
39− machine.start()
40− newAvail = machine.succeed("df --output=avail / | sed 1d")
41−
42− assert int(oldAvail) < int(newAvail), "File system did not grow"
25+ assert int(oldAvail) < int(newAvail), "File system did not grow"
4326 '';
4427})
nixos/tests/systemd-initrd-swraid.nixdeleted−50
@@ -1,50 +0,0 @@
1−import ./make-test-python.nix ({ lib, pkgs, ... }: {
2− name = "systemd-initrd-swraid";
3−
4− nodes.machine = { pkgs, ... }: {
5− # Use systemd-boot
6− virtualisation = {
7− emptyDiskImages = [ 512 512 ];
8− useBootLoader = true;
9− useEFIBoot = true;
10− };
11− boot.loader.systemd-boot.enable = true;
12− boot.loader.efi.canTouchEfiVariables = true;
13−
14− environment.systemPackages = with pkgs; [ mdadm e2fsprogs ]; # for mdadm and mkfs.ext4
15− boot.initrd = {
16− systemd = {
17− enable = true;
18− emergencyAccess = true;
19− };
20− services.swraid = {
21− enable = true;
22− mdadmConf = ''
23− ARRAY /dev/md0 devices=/dev/vdc,/dev/vdd
24− '';
25− };
26− kernelModules = [ "raid0" ];
27− };
28−
29− specialisation.boot-swraid.configuration.virtualisation.bootDevice = "/dev/disk/by-label/testraid";
30− };
31−
32− testScript = ''
33− # Create RAID
34− machine.succeed("mdadm --create --force /dev/md0 -n 2 --level=raid0 /dev/vdc /dev/vdd")
35− machine.succeed("mkfs.ext4 -L testraid /dev/md0")
36− machine.succeed("mkdir -p /mnt && mount /dev/md0 /mnt && echo hello > /mnt/test && umount /mnt")
37−
38− # Boot from the RAID
39− machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-swraid.conf")
40− machine.succeed("sync")
41− machine.crash()
42− machine.wait_for_unit("multi-user.target")
43−
44− # Ensure we have successfully booted from the RAID
45− assert "(initrd)" in machine.succeed("systemd-analyze") # booted with systemd in stage 1
46− assert "/dev/md0 on / type ext4" in machine.succeed("mount")
47− assert "hello" in machine.succeed("cat /test")
48− assert "md0" in machine.succeed("cat /proc/mdstat")
49− '';
50−})
nixos/tests/systemd-networkd.nix−10
@@ -8,9 +8,6 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
88 environment.systemPackages = with pkgs; [ wireguard-tools ];
99 systemd.network = {
1010 enable = true;
11− config = {
12− routeTables.custom = 23;
13− };
1411 netdevs = {
1512 "90-wg0" = {
1613 netdevConfig = { Kind = "wireguard"; Name = "wg0"; };
@@ -42,7 +39,6 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
4239 address = [ "10.0.0.${nodeId}/32" ];
4340 routes = [
4441 { routeConfig = { Gateway = "10.0.0.${nodeId}"; Destination = "10.0.0.0/24"; }; }
45− { routeConfig = { Gateway = "10.0.0.${nodeId}"; Destination = "10.0.0.0/24"; Table = "custom"; }; }
4642 ];
4743 };
4844 "30-eth1" = {
@@ -91,12 +87,6 @@ testScript = ''
9187 node1.wait_for_unit("systemd-networkd-wait-online.service")
9288 node2.wait_for_unit("systemd-networkd-wait-online.service")
9389
94− # ================================
95− # Networkd Config
96− # ================================
97− node1.succeed("grep RouteTable=custom:23 /etc/systemd/networkd.conf")
98− node1.succeed("sudo ip route show table custom | grep '10.0.0.0/24 via 10.0.0.1 dev wg0 proto static'")
99−
10090 # ================================
10191 # Wireguard
10292 # ================================
nixos/tests/systemd-shutdown.nixdeleted−26
@@ -1,26 +0,0 @@
1−import ./make-test-python.nix ({ pkgs, systemdStage1 ? false, ...} : let
2− msg = "Shutting down NixOS";
3−in {
4− name = "systemd-shutdown";
5− meta = with pkgs.lib.maintainers; {
6− maintainers = [ das_j ];
7− };
8−
9− nodes.machine = {
10− imports = [ ../modules/profiles/minimal.nix ];
11− systemd.shutdownRamfs.contents."/etc/systemd/system-shutdown/shutdown-message".source = pkgs.writeShellScript "shutdown-message" ''
12− echo "${msg}"
13− '';
14− };
15−
16− testScript = ''
17− machine.wait_for_unit("multi-user.target")
18− # .shutdown() would wait for the machine to power off
19− machine.succeed("systemctl poweroff")
20− # Message printed by systemd-shutdown
21− machine.wait_for_console_text("Unmounting '/oldroot'")
22− machine.wait_for_console_text("${msg}")
23− # Don't try to sync filesystems
24− machine.booted = False
25− '';
26−})
nixos/tests/taskserver.nix−1
@@ -63,7 +63,6 @@ in {
6363 server = {
6464 services.taskserver.enable = true;
6565 services.taskserver.listenHost = "::";
66− services.taskserver.openFirewall = true;
6766 services.taskserver.fqdn = "server";
6867 services.taskserver.organisations = {
6968 testOrganisation.users = [ "alice" "foo" ];
nixos/tests/web-apps/netbox.nix+1−1
@@ -5,7 +5,7 @@ import ../make-test-python.nix ({ lib, pkgs, ... }: {
55 maintainers = [ n0emis ];
66 };
77
8− nodes.machine = { ... }: {
8+ machine = { ... }: {
99 services.netbox = {
1010 enable = true;
1111 secretKeyFile = pkgs.writeText "secret" ''
nixos/tests/web-apps/nifi.nixdeleted−30
@@ -1,30 +0,0 @@
1−import ../make-test-python.nix ({pkgs, ...}:
2−{
3− name = "nifi";
4− meta.maintainers = with pkgs.lib.maintainers; [ izorkin ];
5−
6− nodes = {
7− nifi = { pkgs, ... }: {
8− virtualisation = {
9− memorySize = 2048;
10− diskSize = 4096;
11− };
12− services.nifi = {
13− enable = true;
14− enableHTTPS = false;
15− };
16− };
17− };
18−
19− testScript = ''
20− nifi.start()
21−
22− nifi.wait_for_unit("nifi.service")
23− nifi.wait_for_open_port(8080)
24−
25− # Check if NiFi is running
26− nifi.succeed("curl --fail http://127.0.0.1:8080/nifi/login 2> /dev/null | grep 'NiFi Login'")
27−
28− nifi.shutdown()
29− '';
30−})
nixos/tests/web-apps/peertube.nix+2−3
@@ -30,11 +30,10 @@ import ../make-test-python.nix ({pkgs, ...}:
3030 '';
3131 };
3232
33− services.redis.servers.peertube = {
33+ services.redis = {
3434 enable = true;
3535 bind = "0.0.0.0";
3636 requirePass = "turrQfaQwnanGbcsdhxy";
37− port = 6379;
3837 };
3938 };
4039
@@ -110,7 +109,7 @@ import ../make-test-python.nix ({pkgs, ...}:
110109 start_all()
111110
112111 database.wait_for_unit("postgresql.service")
113− database.wait_for_unit("redis-peertube.service")
112+ database.wait_for_unit("redis.service")
114113
115114 database.wait_for_open_port(5432)
116115 database.wait_for_open_port(6379)
nixos/tests/xmonad-xdg-autostart.nixdeleted−35
@@ -1,35 +0,0 @@
1−import ./make-test-python.nix ({ lib, ... }: {
2− name = "xmonad-xdg-autostart";
3− meta.maintainers = with lib.maintainers; [ oxalica ];
4−
5− nodes.machine = { pkgs, config, ... }: {
6− imports = [ ./common/x11.nix ./common/user-account.nix ];
7− test-support.displayManager.auto.user = "alice";
8− services.xserver.displayManager.defaultSession = "none+xmonad";
9− services.xserver.windowManager.xmonad.enable = true;
10− services.xserver.desktopManager.runXdgAutostartIfNone = true;
11−
12− environment.systemPackages = [
13− (pkgs.writeTextFile {
14− name = "test-xdg-autostart";
15− destination = "/etc/xdg/autostart/test-xdg-autostart.desktop";
16− text = ''
17− [Desktop Entry]
18− Name=test-xdg-autoatart
19− Type=Application
20− Terminal=false
21− Exec=${pkgs.coreutils}/bin/touch ${config.users.users.alice.home}/xdg-autostart-executed
22− '';
23− })
24− ];
25− };
26−
27− testScript = { nodes, ... }:
28− let
29− user = nodes.machine.config.users.users.alice;
30− in
31− ''
32− machine.wait_for_x()
33− machine.wait_for_file("${user.home}/xdg-autostart-executed")
34− '';
35−})
nixos/tests/xmpp/xmpp-sendmessage.nix+4−1
@@ -51,8 +51,11 @@ class CthonTest(ClientXMPP):
5151 log.info('Message sent')
5252
5353 # Test http upload (XEP_0363)
54+ def timeout_callback(arg):
55+ log.error("ERROR: Cannot upload file. XEP_0363 seems broken")
56+ sys.exit(1)
5457 try:
55− url = await self['xep_0363'].upload_file("${dummyFile}",timeout=10)
58+ url = await self['xep_0363'].upload_file("${dummyFile}",timeout=10, timeout_callback=timeout_callback)
5659 except:
5760 log.error("ERROR: Cannot run upload command. XEP_0363 seems broken")
5861 sys.exit(1)
pkgs/applications/accessibility/espeakup/default.nixdeleted−46
@@ -1,46 +0,0 @@
1−{ stdenv
2−, lib
3−, meson
4−, ninja
5−, espeak-ng
6−, fetchFromGitHub
7−, pkg-config
8−, ronn
9−, alsa-lib
10−, systemd
11−}:
12−
13−stdenv.mkDerivation rec {
14− pname = "espeakup";
15− version = "0.90";
16−
17− src = fetchFromGitHub {
18− owner = "linux-speakup";
19− repo = "espeakup";
20− rev = "v${version}";
21− sha256 = "0lmjwafvfxy07zn18v3dzjwwpnid2xffgvy2dzlwkbns8gb60ds2";
22− };
23−
24− nativeBuildInputs = [
25− meson
26− ninja
27− pkg-config
28− ronn
29− ];
30−
31− buildInputs = [
32− espeak-ng
33− alsa-lib
34− systemd
35− ];
36−
37− PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMUNITDIR = "${placeholder "out"}/lib/systemd/system";
38−
39− meta = with lib; {
40− homepage = "https://github.com/linux-speakup/espeakup";
41− description = "Lightweight connector for espeak-ng and speakup";
42− license = licenses.gpl3Plus;
43− maintainers = with maintainers; [ ethindp ];
44− platforms = with platforms; linux;
45− };
46−}
pkgs/applications/accessibility/wvkbd/default.nixdeleted−36
@@ -1,36 +0,0 @@
1−{ stdenv
2−, lib
3−, fetchFromGitHub
4−, wayland-scanner
5−, wayland
6−, pango
7−, glib
8−, harfbuzz
9−, cairo
10−, pkg-config
11−, libxkbcommon
12−}:
13−
14−stdenv.mkDerivation rec {
15− pname = "wvkbd";
16− version = "0.7";
17−
18− src = fetchFromGitHub {
19− owner = "jjsullivan5196";
20− repo = pname;
21− rev = "v${version}";
22− sha256 = "sha256-5UV2PMrLXtF3AxjfPxxwFRkgVef+Ap8nG1v795o0bWE=";
23− };
24−
25− nativeBuildInputs = [ pkg-config ];
26− buildInputs = [ wayland-scanner wayland pango glib harfbuzz cairo libxkbcommon ];
27− installFlags = [ "PREFIX=$(out)" ];
28−
29− meta = with lib; {
30− homepage = "https://github.com/jjsullivan5196/wvkbd";
31− description = "On-screen keyboard for wlroots";
32− maintainers = [ maintainers.elohmeier ];
33− platforms = platforms.linux;
34− license = licenses.gpl3Plus;
35− };
36−}
pkgs/applications/audio/ChowPhaser/default.nixdeleted−76
@@ -1,76 +0,0 @@
1−{ alsa-lib, at-spi2-core, cmake, curl, dbus, libepoxy, fetchFromGitHub, freeglut
2−, freetype, gcc-unwrapped, gtk3, lib, libGL, libXcursor, libXdmcp, libXext
3−, libXinerama, libXrandr, libXtst, libdatrie, libjack2, libpsl, libselinux
4−, libsepol, libsysprof-capture, libthai, libxkbcommon, pcre, pkg-config
5−, python3, sqlite, stdenv }:
6−
7−stdenv.mkDerivation rec {
8− pname = "ChowPhaser";
9− version = "1.1.1";
10−
11− src = fetchFromGitHub {
12− owner = "jatinchowdhury18";
13− repo = "ChowPhaser";
14− rev = "v${version}";
15− fetchSubmodules = true;
16− sha256 = "sha256-9wo7ZFMruG3QNvlpILSvrFh/Sx6J1qnlWc8+aQyS4tQ=";
17− };
18−
19− nativeBuildInputs = [ pkg-config cmake ];
20−
21− buildInputs = [
22− alsa-lib
23− at-spi2-core
24− curl
25− dbus
26− libepoxy
27− freeglut
28− freetype
29− gtk3
30− libGL
31− libXcursor
32− libXdmcp
33− libXext
34− libXinerama
35− libXrandr
36− libXtst
37− libdatrie
38− libjack2
39− libpsl
40− libselinux
41− libsepol
42− libsysprof-capture
43− libthai
44− libxkbcommon
45− pcre
46− python3
47− sqlite
48− gcc-unwrapped
49− ];
50−
51− cmakeFlags = [
52− "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
53− "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
54− "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
55− ];
56−
57− installPhase = ''
58− mkdir -p $out/lib/lv2 $out/lib/vst3 $out/bin $out/share/doc/ChowPhaser/
59− cd ChowPhaserMono_artefacts/Release
60− cp libChowPhaserMono_SharedCode.a $out/lib
61− cp -r VST3/ChowPhaserMono.vst3 $out/lib/vst3
62− cp Standalone/ChowPhaserMono $out/bin
63− cd ../../ChowPhaserStereo_artefacts/Release
64− cp libChowPhaserStereo_SharedCode.a $out/lib
65− cp -r VST3/ChowPhaserStereo.vst3 $out/lib/vst3
66− cp Standalone/ChowPhaserStereo $out/bin
67− '';
68−
69− meta = with lib; {
70− homepage = "https://github.com/jatinchowdhury18/ChowPhaser";
71− description = "Phaser effect based loosely on the Schulte Compact Phasing 'A'";
72− license = with licenses; [ bsd3 ];
73− maintainers = with maintainers; [ magnetophon ];
74− platforms = platforms.linux;
75− };
76−}
pkgs/applications/audio/LibreArp/default.nixdeleted−53
@@ -1,53 +0,0 @@
1−{ stdenv, lib, fetchFromGitLab, cmake, pkg-config, cairo, libxkbcommon
2−, xcbutilcursor, xcbutilkeysyms, xcbutil, libXrandr, libXinerama, libXcursor
3−, alsa-lib, libjack2, lv2, gcc-unwrapped, curl}:
4−
5−stdenv.mkDerivation rec {
6− pname = "LibreArp";
7− version = "2.2";
8−
9− src = fetchFromGitLab {
10− owner = "LibreArp";
11− repo = "LibreArp";
12− rev = version;
13− hash = "sha256-jCUT/sflO9L57xRTqNR90RbwJ0uZ+xJVXnB3n+FhWBo=";
14− fetchSubmodules = true;
15− };
16−
17− nativeBuildInputs = [ cmake pkg-config ];
18− buildInputs = [
19− cairo
20− libxkbcommon
21− xcbutilcursor
22− xcbutilkeysyms
23− xcbutil
24− libXrandr
25− libXinerama
26− libXcursor
27− alsa-lib
28− libjack2
29− lv2
30− curl
31− ];
32−
33− cmakeFlags = [
34− "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
35− "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
36− "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
37− ];
38−
39− installPhase = ''
40− mkdir -p $out/lib/vst3
41− cd LibreArp_artefacts/Release
42− cp -r VST3/LibreArp.vst3 $out/lib/vst3
43− '';
44−
45− meta = with lib; {
46− description =
47− "A pattern-based arpeggio generator plugin.";
48− homepage = "https://librearp.gitlab.io/";
49− license = licenses.gpl3Plus;
50− platforms = [ "x86_64-linux" ];
51− maintainers = with maintainers; [ magnetophon ];
52− };
53−}
pkgs/applications/audio/LibreArp/lv2.nixdeleted−53
@@ -1,53 +0,0 @@
1−{ stdenv, lib, fetchFromGitLab, cmake, pkg-config, cairo, libxkbcommon
2−, xcbutilcursor, xcbutilkeysyms, xcbutil, libXrandr, libXinerama, libXcursor
3−, alsa-lib, libjack2, lv2, gcc-unwrapped, curl}:
4−
5−stdenv.mkDerivation rec {
6− pname = "LibreArp-lv2";
7− version = "2.2";
8−
9− src = fetchFromGitLab {
10− owner = "LibreArp";
11− repo = "LibreArp";
12− rev = "${version}-lv2";
13− hash = "sha256-j5SksuhC4ZXXILfOpwXNqIu5fO07a/6tiZ5qUo+p0Ug=";
14− fetchSubmodules = true;
15− };
16−
17− nativeBuildInputs = [ cmake pkg-config ];
18− buildInputs = [
19− cairo
20− libxkbcommon
21− xcbutilcursor
22− xcbutilkeysyms
23− xcbutil
24− libXrandr
25− libXinerama
26− libXcursor
27− alsa-lib
28− libjack2
29− lv2
30− curl
31− ];
32−
33− cmakeFlags = [
34− "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
35− "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
36− "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
37− ];
38−
39− installPhase = ''
40− mkdir -p $out/lib/lv2
41− cd LibreArp_artefacts/Release
42− cp -r LV2/LibreArp.lv2 $out/lib/lv2
43− '';
44−
45− meta = with lib; {
46− description =
47− "A pattern-based arpeggio generator plugin.";
48− homepage = "https://librearp.gitlab.io/";
49− license = licenses.gpl3Plus;
50− platforms = [ "x86_64-linux" ];
51− maintainers = with maintainers; [ magnetophon ];
52− };
53−}
pkgs/applications/audio/amberol/default.nixdeleted−75
@@ -1,75 +0,0 @@
1−{ lib
2−, stdenv
3−, fetchFromGitLab
4−, rustPlatform
5−, desktop-file-utils
6−, appstream-glib
7−, meson
8−, ninja
9−, pkg-config
10−, reuse
11−, wrapGAppsHook4
12−, glib
13−, gtk4
14−, gst_all_1
15−, libadwaita
16−, dbus
17−}:
18−
19−stdenv.mkDerivation rec {
20− pname = "amberol";
21− version = "0.4.3";
22−
23− src = fetchFromGitLab {
24− domain = "gitlab.gnome.org";
25− owner = "World";
26− repo = pname;
27− rev = version;
28− sha256 = "sha256-4yW7rVlP9Zskyt4l/VQoX+9q3TUdEuLZrNQuQvziIf4=";
29− };
30−
31− cargoDeps = rustPlatform.fetchCargoTarball {
32− inherit src;
33− name = "${pname}-${version}";
34− sha256 = "sha256-1ahEWLBmkT+B8qD0Qd1skXqk1wvP6yuFNAQBRdispC4=";
35− };
36−
37− postPatch = ''
38− patchShebangs build-aux
39− '';
40−
41− nativeBuildInputs = [
42− appstream-glib
43− desktop-file-utils
44− meson
45− ninja
46− pkg-config
47− reuse
48− wrapGAppsHook4
49− ] ++ (with rustPlatform; [
50− cargoSetupHook
51− rust.cargo
52− rust.rustc
53− ]);
54−
55− buildInputs = [
56− glib
57− gtk4
58− libadwaita
59− gst_all_1.gstreamer
60− gst_all_1.gst-plugins-base
61− gst_all_1.gst-plugins-good
62− gst_all_1.gst-plugins-bad
63− gst_all_1.gst-plugins-ugly
64− gst_all_1.gst-libav
65− dbus
66− ];
67−
68− meta = with lib; {
69− homepage = "https://gitlab.gnome.org/ebassi/amberol";
70− description = "A small and simple sound and music player";
71− maintainers = with maintainers; [ linsui ];
72− license = licenses.gpl3Plus;
73− platforms = platforms.linux;
74− };
75−}
pkgs/applications/audio/audio-recorder/default.nix+1−1
@@ -2,7 +2,7 @@
22, pkg-config, intltool
33, glib, dbus, gtk3, libappindicator-gtk3, gst_all_1
44, librsvg, wrapGAppsHook
5−, pulseaudioSupport ? true, libpulseaudio }:
5+, pulseaudioSupport ? true, libpulseaudio ? null }:
66
77stdenv.mkDerivation rec {
88 pname = "audio-recorder";
pkgs/applications/audio/bespokesynth/default.nix−1
@@ -142,7 +142,6 @@ stdenv.mkDerivation rec {
142142 gpl3Plus
143143 ] ++ lib.optional enableVST2 unfree;
144144 maintainers = with maintainers; [ astro tobiasBora OPNA2608 ];
145− mainProgram = "BespokeSynth";
146145 platforms = platforms.all;
147146 };
148147}
pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix+2−2
@@ -6,11 +6,11 @@
66
77stdenv.mkDerivation rec {
88 pname = "bitwig-studio";
9− version = "4.2.3";
9+ version = "4.2.2";
1010
1111 src = fetchurl {
1212 url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
13− sha256 = "sha256-UCafrjrEwwHkhPum7sTOjtXzy7PNeK5/aeKg+b3CGJU=";
13+ sha256 = "sha256-cpEV0EWW9vd2ZE+RaqN9fhyy7axgPlx4PmlOeX3TSfY=";
1414 };
1515
1616 nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
pkgs/applications/audio/blanket/default.nix+7−7
@@ -9,21 +9,21 @@
99, appstream-glib
1010, python3Packages
1111, glib
12−, gtk4
13−, libadwaita
12+, gtk3
13+, libhandy
1414, gobject-introspection
1515, gst_all_1
1616}:
1717
1818python3Packages.buildPythonApplication rec {
1919 pname = "blanket";
20− version = "0.6.0";
20+ version = "0.5.0";
2121
2222 src = fetchFromGitHub {
2323 owner = "rafaelmardojai";
2424 repo = "blanket";
25− rev = "refs/tags/${version}";
26− sha256 = "sha256-4gthT1x76IfXWkLaLMPtFS4TRlRGk5Enbu/k1jAHzwE=";
25+ rev = version;
26+ sha256 = "00i821zqfbigxmc709322r16z75qsw4rg23yhv35gza9sl65bzkg";
2727 };
2828
2929 nativeBuildInputs = [
@@ -37,8 +37,8 @@ python3Packages.buildPythonApplication rec {
3737
3838 buildInputs = [
3939 glib
40− gtk4
41− libadwaita
40+ gtk3
41+ libhandy
4242 gobject-introspection
4343 gst_all_1.gstreamer
4444 gst_all_1.gst-plugins-base
pkgs/applications/audio/cardinal/default.nix+11−2
@@ -23,14 +23,23 @@
2323
2424stdenv.mkDerivation rec {
2525 pname = "cardinal";
26− version = "22.04";
26+ version = "22.02";
2727
2828 src = fetchurl {
2929 url =
3030 "https://github.com/DISTRHO/Cardinal/releases/download/${version}/cardinal-${version}.tar.xz";
31− sha256 = "sha256-7As4CckwByrTynOOpwAXa1R9Bpp/ft537f+PvAgz/BE=";
31+ sha256 = "sha256-IVlAROFGFffTEU00NCmv74w1DRb7dNMp20FeBVoDrdM=";
3232 };
3333
34+ patches = [
35+ # see https://github.com/DISTRHO/Cardinal/issues/151#issuecomment-1041886260
36+ (fetchpatch {
37+ url =
38+ "https://github.com/DISTRHO/Cardinal/commit/13e9ef37c5dd35d77a54b1cb006767be7a72ac69.patch";
39+ sha256 = "sha256-NYUYLbLeBX1WEzjPi0s/T1N+EXQKyi0ifbPxgBYDjRs=";
40+ })
41+ ];
42+
3443 prePatch = ''
3544 patchShebangs ./dpf/utils/generate-ttl.sh
3645 '';
pkgs/applications/audio/carla/default.nix+2−2
@@ -15,13 +15,13 @@ assert withGtk3 -> gtk3 != null;
1515
1616stdenv.mkDerivation rec {
1717 pname = "carla";
18− version = "2.4.3";
18+ version = "2.4.2";
1919
2020 src = fetchFromGitHub {
2121 owner = "falkTX";
2222 repo = pname;
2323 rev = "v${version}";
24− sha256 = "sha256-FAQTIM5NpcOhLNMf62qiKaxg6QtK5uIJF/XT6KJVnUc=";
24+ sha256 = "sha256-A0QmyphjsNU06kh2f9rXrR+GkDEI5HqXRA9J82E6qJU=";
2525 };
2626
2727 nativeBuildInputs = [
pkgs/applications/audio/caudec/default.nix+2−2
@@ -1,4 +1,4 @@
1−{ lib, stdenv, fetchurl, makeWrapper, bc, findutils, flac, lame, opusTools, procps, sox }:
1+{ lib, stdenv, fetchurl, makeWrapper, bash, bc, findutils, flac, lame, opusTools, procps, sox }:
22
33stdenv.mkDerivation rec {
44 pname = "caudec";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
1313 patchShebangs ./install.sh
1414 '';
1515
16− nativeBuildInputs = [ makeWrapper ];
16+ nativeBuildInputs = [ bash makeWrapper ];
1717
1818 installPhase = ''
1919 ./install.sh --prefix=$out/bin
pkgs/applications/audio/cider/default.nix+3−3
@@ -2,11 +2,11 @@
22
33appimageTools.wrapType2 rec {
44 pname = "cider";
5− version = "1.4.1.1680";
5+ version = "1.3.1308";
66
77 src = fetchurl {
8− url = "https://github.com/ciderapp/cider-releases/releases/download/v${version}/Cider-${builtins.concatStringsSep "." (lib.take 3 (lib.splitVersion version))}-alpha.${builtins.elemAt (lib.splitVersion version) 3}.AppImage";
9− sha256 = "sha256-hEv+vfMMH+Trwa1UF5R8EtyYeyiRVLP0BrXOK2+1q8M=";
8+ url = "https://1308-429851205-gh.circle-artifacts.com/0/%7E/Cider/dist/artifacts/Cider-${version}.AppImage";
9+ sha256 = "1lbyvn1c8155p039qfzx7jwad7km073phkmrzjm0w3ahdpwz3wgi";
1010 };
1111
1212 extraInstallCommands =
pkgs/applications/audio/clementine/default.nix+10−3
@@ -51,17 +51,24 @@ let
5151 withCD = config.clementine.cd or true;
5252 withCloud = config.clementine.cloud or true;
5353
54− version = "unstable-2022-04-11";
54+ # On the update after all 1.4rc, qt5.15 and protobuf 3.15 will be supported.
55+ version = "1.4.0rc1";
5556
5657 src = fetchFromGitHub {
5758 owner = "clementine-player";
5859 repo = "Clementine";
59− rev = "250024e117fbe5fae7c62b9c8e655d66412a6ed7";
60− sha256 = "06fcbs3wig3mh711iypyj49qm5246f7qhvgvv8brqfrd8cqyh6qf";
60+ rev = version;
61+ sha256 = "1rqk0hrsn8f8bjk0j0vq1af0ygy6xx7qi9fw0jjw2cmj6kzckyi2";
6162 };
6263
6364 patches = [
6465 ./clementine-spotify-blob.patch
66+ (fetchpatch {
67+ # "short-term" fix for execution on wayland (1.4.0rc1-131-g2179027a6)
68+ # for https://github.com/clementine-player/Clementine/issues/6587
69+ url = "https://github.com/clementine-player/Clementine/commit/2179027a6d97530c857e43be873baacd696ff332.patch";
70+ sha256 = "0344bfcyvjim5ph8w4km6zkg96rj5g9ybp9x14qgyw2gkdksimn6";
71+ })
6572 ];
6673
6774 nativeBuildInputs = [
pkgs/applications/audio/cmus/default.nix+2−2
@@ -1,5 +1,5 @@
11{ config, lib, stdenv, fetchFromGitHub, runCommand, ncurses, pkg-config
2−, libiconv, CoreAudio, AudioUnit, VideoToolbox
2+, libiconv, CoreAudio, AudioUnit
33
44, alsaSupport ? stdenv.isLinux, alsa-lib ? null
55# simple fallback for everyone else
@@ -121,7 +121,7 @@ stdenv.mkDerivation rec {
121121 nativeBuildInputs = [ pkg-config ];
122122 buildInputs = [ ncurses ]
123123 ++ lib.optional stdenv.cc.isClang clangGCC
124− ++ lib.optionals stdenv.isDarwin [ libiconv CoreAudio AudioUnit VideoToolbox ]
124+ ++ lib.optionals stdenv.isDarwin [ libiconv CoreAudio AudioUnit ]
125125 ++ flatten (concatMap (a: a.deps) opts);
126126
127127 makeFlags = [ "LD=$(CC)" ];
pkgs/applications/audio/denemo/default.nix+2−2
@@ -6,11 +6,11 @@
66
77stdenv.mkDerivation rec {
88 pname = "denemo";
9− version = "2.6.0";
9+ version = "2.5.0";
1010
1111 src = fetchurl {
1212 url = "https://ftp.gnu.org/gnu/denemo/denemo-${version}.tar.gz";
13− sha256 = "sha256-S+WXDGmEf5fx+HYnXJdE5QNOfJg7EqEEX7IMI2SUtV0=";
13+ sha256 = "sha256-B6GbBL/o/z0emT+Iw6XvWmAsJCmIwSGCyV1DkhDyfBY=";
1414 };
1515
1616 buildInputs = [
pkgs/applications/audio/faust/faust2.nix+2−2
@@ -20,13 +20,13 @@ with lib.strings;
2020
2121let
2222
23− version = "2.40.0";
23+ version = "2.37.3";
2424
2525 src = fetchFromGitHub {
2626 owner = "grame-cncm";
2727 repo = "faust";
2828 rev = version;
29− sha256 = "sha256-IsrLaoMDwrDPxtqCXIy/7tZCdogTUkJ00obSco9SR/A=";
29+ sha256 = "sha256-Jzauw8+vBjtbK73Bh4huhX1ql1cWmh80EzEET3x03rc=";
3030 fetchSubmodules = true;
3131 };
3232
pkgs/applications/audio/faust/faustlive.nix+12−9
@@ -1,34 +1,37 @@
11{ lib, stdenv, fetchFromGitHub
22, llvm_10, qt5, qrencode, libmicrohttpd, libjack2, alsa-lib, faust, curl
3−, bc, coreutils, which, libsndfile, flac, libogg, libvorbis, libopus, pkg-config, libxcb, cmake, gnutls, libtasn1, p11-kit
3+, bc, coreutils, which, libsndfile, pkg-config, libxcb
44}:
55
66stdenv.mkDerivation rec {
77 pname = "faustlive";
8− version = "2.5.8";
8+ version = "2.5.5";
99 src = fetchFromGitHub {
1010 owner = "grame-cncm";
1111 repo = "faustlive";
1212 rev = version;
13− sha256 = "sha256-dt5YlvaCZ6JiNGPwVXPrKzVGWxnhdyP4lnKgck7ZSF8=";
13+ sha256 = "0qbn05nq170ckycwalkk5fppklc4g457mapr7p7ryrhc1hwzffm9";
1414 fetchSubmodules = true;
1515 };
1616
17− nativeBuildInputs = [ pkg-config qt5.wrapQtAppsHook cmake ];
17+ nativeBuildInputs = [ pkg-config qt5.wrapQtAppsHook ];
1818
1919 buildInputs = [
2020 llvm_10 qt5.qtbase qrencode libmicrohttpd libjack2 alsa-lib faust curl
21− bc coreutils which libsndfile flac libogg libvorbis libopus libxcb gnutls libtasn1 p11-kit
21+ bc coreutils which libsndfile libxcb
2222 ];
2323
2424 makeFlags = [ "PREFIX=$(out)" ];
2525
26− postInstall = ''
27− wrapProgram $out/bin/FaustLive --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libmicrohttpd libsndfile faust llvm_10 ]}"
28− '';
29−
3026 postPatch = "cd Build";
3127
28+ installPhase = ''
29+ install -d "$out/bin"
30+ install -d "$out/share/applications"
31+ install FaustLive/FaustLive "$out/bin"
32+ install rsrc/FaustLive.desktop "$out/share/applications"
33+ '';
34+
3235 meta = with lib; {
3336 description = "A standalone just-in-time Faust compiler";
3437 longDescription = ''
pkgs/applications/audio/faustPhysicalModeling/default.nix+2−2
@@ -1,13 +1,13 @@
11{ stdenv, lib, fetchFromGitHub, faust2jaqt, faust2lv2 }:
22stdenv.mkDerivation rec {
33 pname = "faustPhysicalModeling";
4− version = "2.40.0";
4+ version = "2.37.3";
55
66 src = fetchFromGitHub {
77 owner = "grame-cncm";
88 repo = "faust";
99 rev = version;
10− sha256 = "sha256-t3I3j5s2ACHfub+fxxaTwu+5ptEwH0JQpVdmHYOzbCA=";
10+ sha256 = "sha256-h6L+qRkN2chnI4821WrjD3uRFw3J0sUYVLL8w57vR1U=";
1111 };
1212
1313 buildInputs = [ faust2jaqt faust2lv2 ];
pkgs/applications/audio/fluidsynth/default.nix+2−2
@@ -5,13 +5,13 @@
55
66stdenv.mkDerivation rec {
77 pname = "fluidsynth";
8− version = "2.2.5";
8+ version = "2.2.3";
99
1010 src = fetchFromGitHub {
1111 owner = "FluidSynth";
1212 repo = "fluidsynth";
1313 rev = "v${version}";
14− sha256 = "sha256-aR8TLxl6OziP+DMSNro0DB/UtvzXDeDYQ3o/iy70XD4=";
14+ sha256 = "0x5808d03ym23np17nl8gfbkx3c4y3d7jyyr2222wn2prswbb6x3";
1515 };
1616
1717 nativeBuildInputs = [ buildPackages.stdenv.cc pkg-config cmake ];
pkgs/applications/audio/ft2-clone/default.nix+2−2
@@ -13,13 +13,13 @@
1313
1414stdenv.mkDerivation rec {
1515 pname = "ft2-clone";
16− version = "1.54";
16+ version = "1.52";
1717
1818 src = fetchFromGitHub {
1919 owner = "8bitbubsy";
2020 repo = "ft2-clone";
2121 rev = "v${version}";
22− sha256 = "sha256-lNiQ0X2vvPGubb4Pde+eh0Z6ClCQgigIUM+PddaiVUg=";
22+ sha256 = "sha256-RyZ3PV7jaTN3DEYMT0BqKDHbb+7/IgiRaCra1xA0h1A=";
2323 };
2424
2525 # Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
pkgs/applications/audio/furnace/default.nix+2−2
@@ -1,7 +1,7 @@
11{ stdenv
22, lib
33, gitUpdater
4−, testers
4+, testVersion
55, furnace
66, fetchFromGitHub
77, cmake
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
8383 inherit pname version;
8484 rev-prefix = "v";
8585 };
86− tests.version = testers.testVersion {
86+ tests.version = testVersion {
8787 package = furnace;
8888 # The command always exits with code 1
8989 command = "(furnace --version || [ $? -eq 1 ])";
pkgs/applications/audio/greg/default.nix+3−3
@@ -2,15 +2,15 @@
22
33with pythonPackages; buildPythonApplication rec {
44 pname = "greg";
5− version = "0.4.8";
5+ version = "0.4.7";
66
77 disabled = !isPy3k;
88
99 src = fetchFromGitHub {
1010 owner = "manolomartinez";
1111 repo = pname;
12− rev = "refs/tags/v${version}";
13− sha256 = "sha256-o4+tXVJTgT52JyJOC+Glr2cvZjbTaZL8TIsmz+A4vE4=";
12+ rev = "v" + version;
13+ sha256 = "0bdzgh2k1ppgcvqiasxwp3w89q44s4jgwjidlips3ixx1bzm822v";
1414 };
1515
1616 propagatedBuildInputs = [ setuptools feedparser ];
pkgs/applications/audio/gspeech/default.nix+2−2
@@ -20,13 +20,13 @@
2020
2121python3.pkgs.buildPythonApplication rec {
2222 pname = "gSpeech";
23− version = "0.11.0";
23+ version = "0.10.1";
2424
2525 src = fetchFromGitHub {
2626 owner = "mothsart";
2727 repo = pname;
2828 rev = version;
29− sha256 = "0z11yxvgi8m2xjmmf56zla91jpmf0a4imwi9qqz6bp51pw4sk8gp";
29+ sha256 = "1i0jwgxcn94nsi7c0ad0w77y04g04ka2szijzfqzqfnacdmdyrfc";
3030 };
3131
3232 nativeBuildInputs = [
pkgs/applications/audio/guitarix/default.nix−2
@@ -108,8 +108,6 @@ stdenv.mkDerivation rec {
108108 "--install-roboto-font"
109109 ] ++ optional optimizationSupport "--optimization";
110110
111− NIX_CFLAGS_COMPILE = [ "-fpermissive" ];
112−
113111 meta = with lib; {
114112 description = "A virtual guitar amplifier for Linux running with JACK";
115113 longDescription = ''
pkgs/applications/audio/helio-workstation/default.nix+2−2
@@ -5,14 +5,14 @@
55
66stdenv.mkDerivation rec {
77 pname = "helio-workstation";
8− version = "3.9";
8+ version = "3.8";
99
1010 src = fetchFromGitHub {
1111 owner = "helio-fm";
1212 repo = pname;
1313 rev = version;
1414 fetchSubmodules = true;
15− sha256 = "sha256-AtgKgw+F5lc0Ma3zOxmk3iaZQp2KZb2FP5F8QvvYTT4=";
15+ sha256 = "sha256-uwRSOJ5WvDH4mfL9pCTCGzuSRT8SIBrI+Wsbumzejv0=";
1616 };
1717
1818 buildInputs = [
pkgs/applications/audio/hivelytracker/default.nix+1−1
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
6060 # files passed as arguments anyway, so this works well enough until the
6161 # issue is fixed.
6262 wrapProgram $out/bin/hivelytracker \
63− --chdir "$out/share/hivelytracker"
63+ --run "cd $out/share/hivelytracker"
6464
6565 # Also install the hvl2wav tool
6666 install -Dm755 hvl2wav/hvl2wav $out/bin/hvl2wav
pkgs/applications/audio/hqplayer-desktop/default.nix−1
@@ -86,7 +86,6 @@ mkDerivation rec {
8686 homepage = "https://www.signalyst.com/custom.html";
8787 description = "High-end upsampling multichannel software HD-audio player";
8888 license = licenses.unfree;
89− platforms = [ "x86_64-linux" ];
9089 maintainers = with maintainers; [ lovesegfault ];
9190 };
9291}
pkgs/applications/audio/jamesdsp/default.nix+5−40
@@ -2,31 +2,18 @@
22, mkDerivation
33, fetchFromGitHub
44, pipewire
5−, pulseaudio
6−, gst_all_1
75, glibmm
86, qmake
9−, qtbase
10−, qtsvg
11−, wrapQtAppsHook
127, makeDesktopItem
138, pkg-config
149, libarchive
1510, fetchpatch
16−, copyDesktopItems
17−, usePipewire ? true
18−, usePulseaudio ? false
1911}:
2012
21−assert lib.asserts.assertMsg (usePipewire != usePulseaudio) "You need to enable one and only one of pulseaudio or pipewire support";
22−
23−let
24− pluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good ]);
25−in
26− mkDerivation rec {
13+mkDerivation rec{
2714 pname = "jamesdsp";
2815 version = "2.3";
29− src = fetchFromGitHub rec {
16+ src = fetchFromGitHub rec{
3017 owner = "Audio4Linux";
3118 repo = "JDSP4Linux";
3219 fetchSubmodules = true;
@@ -40,37 +27,15 @@ in
4027 url = "https://github.com/Audio4Linux/JDSP4Linux/commit/003c9e9fc426f83e269aed6e05be3ed55273931a.patch";
4128 hash = "sha256-crll/a7C9pUq9eL5diq8/YgC5bNC6SrdijZEBxZpJ8E=";
4229 })
43− # compatibility fix for PipeWire 0.3.44+, remove on version bump
44− (fetchpatch {
45− url = "https://github.com/Audio4Linux/JDSP4Linux/commit/e04c55735cc20fc3c3ce042c5681ec80f7df3c96.patch";
46− hash = "sha256-o6AUtQzugykALSdkM3i3lYqRmzJX3FzmALSi0TrWuRA=";
47− })
48− ];
49−
50− nativeBuildInputs = [
51− qmake
52− pkg-config
53− copyDesktopItems
54− wrapQtAppsHook
5530 ];
5631
32+ nativeBuildInputs = [ qmake pkg-config ];
5733 buildInputs = [
5834 glibmm
5935 libarchive
60− qtbase
61− qtsvg
62− ] ++ lib.optional usePipewire pipewire
63− ++ lib.optionals usePulseaudio [
64− pulseaudio
65− gst_all_1.gst-plugins-base
66− gst_all_1.gst-plugins-good
67− gst_all_1.gstreamer
36+ pipewire
6837 ];
6938
70− qtWrapperArgs = lib.optionals usePulseaudio [ "--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : ${pluginPath}" ];
71−
72− qmakeFlags = lib.optionals usePulseaudio [ "CONFIG+=USE_PULSEAUDIO" ];
73−
7439 desktopItems = [
7540 (makeDesktopItem {
7641 name = "jamesdsp";
@@ -89,7 +54,7 @@ in
8954 description = "An audio effect processor for PipeWire clients";
9055 homepage = "https://github.com/Audio4Linux/JDSP4Linux";
9156 license = licenses.gpl3Only;
92− maintainers = with maintainers; [ pasqui23 rewine ];
57+ maintainers = with maintainers;[ pasqui23 ];
9358 platforms = platforms.linux;
9459 };
9560}
pkgs/applications/audio/jmusicbot/default.nix+2−2
@@ -2,11 +2,11 @@
22
33stdenv.mkDerivation rec {
44 pname = "JMusicBot";
5− version = "0.3.8";
5+ version = "0.3.6";
66
77 src = fetchurl {
88 url = "https://github.com/jagrosh/MusicBot/releases/download/${version}/JMusicBot-${version}.jar";
9− sha256 = "sha256-wzmrh9moY6oo3RqOy9Zl1X70BZlvbJkQmz8BaBIFtIM=";
9+ sha256 = "sha256-Hc3dsOADC+jVZScY19OYDkHimntMjdw/BoB3EUS/d0k=";
1010 };
1111
1212 dontUnpack = true;
pkgs/applications/audio/libopenmpt/default.nixnew file+42
@@ -0,0 +1,42 @@
1+{ config, lib, stdenv, fetchurl, fetchpatch, zlib, pkg-config, mpg123, libogg, libvorbis, portaudio, libsndfile, flac
2+, usePulseAudio ? config.pulseaudio or stdenv.isLinux, libpulseaudio }:
3+
4+stdenv.mkDerivation rec {
5+ pname = "libopenmpt";
6+ version = "0.5.11";
7+
8+ outputs = [ "out" "lib" "dev" ];
9+
10+ src = fetchurl {
11+ url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
12+ sha256 = "1c54lldr2imjzhlhq5lvwhj7d5794xm97cby9pznr5wdjjay0sa4";
13+ };
14+
15+ patches = [
16+ # Fix pending upstream inclusion for gcc-12 include headers:
17+ # https://github.com/OpenMPT/openmpt/pull/8
18+ (fetchpatch {
19+ name = "gcc-12.patch";
20+ url = "https://github.com/OpenMPT/openmpt/commit/6e7a43190ef2f9ba0b3efc19b9527261b69ec8f7.patch";
21+ sha256 = "081m1rf09bbrlg52aihaajmld5dcnwbp6y7zpyik92mm332r330h";
22+ })
23+ ];
24+
25+ enableParallelBuilding = true;
26+
27+ nativeBuildInputs = [ pkg-config ];
28+ buildInputs = [ zlib mpg123 libogg libvorbis portaudio libsndfile flac ]
29+ ++ lib.optional usePulseAudio libpulseaudio;
30+
31+ configureFlags = lib.optional (!usePulseAudio) "--without-pulseaudio";
32+
33+ doCheck = true;
34+
35+ meta = with lib; {
36+ description = "A cross-platform command-line based module file player";
37+ homepage = "https://lib.openmpt.org/libopenmpt/";
38+ license = licenses.bsd3;
39+ maintainers = with maintainers; [ OPNA2608 ];
40+ platforms = platforms.unix;
41+ };
42+}
pkgs/applications/audio/lollypop/default.nix+2−2
@@ -25,7 +25,7 @@
2525
2626python3.pkgs.buildPythonApplication rec {
2727 pname = "lollypop";
28− version = "1.4.31";
28+ version = "1.4.26";
2929
3030 format = "other";
3131 doCheck = false;
@@ -34,7 +34,7 @@ python3.pkgs.buildPythonApplication rec {
3434 url = "https://gitlab.gnome.org/World/lollypop";
3535 rev = "refs/tags/${version}";
3636 fetchSubmodules = true;
37− sha256 = "sha256-kWqTDhk7QDmN0yr6x8ER5oHkUAkP3i5yOabnNXSHSqA=";
37+ sha256 = "sha256-Q/z9oET06DimMRZl03TgjEeheoVHtIkH+Z69qWZetcI=";
3838 };
3939
4040 nativeBuildInputs = [
pkgs/applications/audio/losslessaudiochecker/default.nix+1−1
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
2323 description = "Utility to check whether audio is truly lossless or not";
2424 homepage = "https://losslessaudiochecker.com";
2525 license = lib.licenses.unfree;
26− platforms = [ "x86_64-linux" ];
26+ platforms = lib.platforms.x86_64;
2727 maintainers = with lib.maintainers; [ p-h ];
2828 };
2929}
pkgs/applications/audio/lyrebird/default.nix+1−1
@@ -42,7 +42,7 @@ python3Packages.buildPythonApplication rec {
4242 makeWrapperArgs = [
4343 "--prefix 'PATH' ':' '${lib.makeBinPath [ sox pulseaudio ]}'"
4444 "--prefix 'PYTHONPATH' ':' '${placeholder "out"}/share/lyrebird'"
45− "--chdir '${placeholder "out"}/share/lyrebird'"
45+ "--run 'cd ${placeholder "out"}/share/lyrebird'"
4646 ''"''${gappsWrapperArgs[@]}"''
4747 ];
4848
pkgs/applications/audio/moc/default.nix+3−5
@@ -1,8 +1,7 @@
11{ lib, stdenv, fetchurl, pkg-config
22, ncurses, db , popt, libtool
3−, libiconv, CoreServices
43# Sound sub-systems
5−, alsaSupport ? (!stdenv.isDarwin), alsa-lib
4+, alsaSupport ? true, alsa-lib
65, pulseSupport ? true, libpulseaudio, autoreconfHook
76, jackSupport ? true, libjack2
87, ossSupport ? true
@@ -65,8 +64,7 @@ in stdenv.mkDerivation rec {
6564 ++ opt wavpackSupport wavpack
6665 # Misc
6766 ++ opt curlSupport curl
68− ++ opt samplerateSupport libsamplerate
69− ++ lib.optionals stdenv.isDarwin [ libiconv CoreServices ];
67+ ++ opt samplerateSupport libsamplerate;
7068
7169 configureFlags = [
7270 # Sound sub-systems
@@ -99,6 +97,6 @@ in stdenv.mkDerivation rec {
9997 homepage = "http://moc.daper.net/";
10098 license = licenses.gpl2;
10199 maintainers = with maintainers; [ aethelz pSub jagajaga ];
102− platforms = platforms.unix;
100+ platforms = platforms.linux;
103101 };
104102}
pkgs/applications/audio/mopidy/mopidy.nix+3−3
@@ -4,13 +4,13 @@
44
55pythonPackages.buildPythonApplication rec {
66 pname = "mopidy";
7− version = "3.3.0";
7+ version = "3.2.0";
88
99 src = fetchFromGitHub {
1010 owner = "mopidy";
1111 repo = "mopidy";
12− rev = "refs/tags/v${version}";
13− sha256 = "sha256-F0fIl9DrludZZdzsrl/xsp7TLMgTPbVGtGvMHyD52Yw=";
12+ rev = "v${version}";
13+ sha256 = "1l1rya48ykiq156spm8pfsm6li8apz66ppz7gs4s91fv7g7l5x2f";
1414 };
1515
1616 nativeBuildInputs = [ wrapGAppsHook ];
pkgs/applications/audio/musikcube/default.nix+3−5
@@ -6,7 +6,6 @@
66, fetchFromGitHub
77, fetchpatch
88, ffmpeg
9−, gnutls
109, lame
1110, libev
1211, libmicrohttpd
@@ -21,17 +20,17 @@
2120
2221stdenv.mkDerivation rec {
2322 pname = "musikcube";
24− version = "0.97.0";
23+ version = "0.96.10";
2524
2625 src = fetchFromGitHub {
2726 owner = "clangen";
2827 repo = pname;
2928 rev = version;
30− sha256 = "sha256-W9Ng1kqai5qhaDs5KWg/1sOTIAalBXLng1MG8sl/ZOg=";
29+ sha256 = "sha256-Aa52pRGq99Pt++aEVZdmVNhhQuBajgfZp39L1AfKvho=";
3130 };
3231
3332 patches = [
34− # Fix pending upstream inclusion for ncurses-6.3 support:
33+ # Fix pending upstream inclusion for ncuurses-6.3 support:
3534 # https://github.com/clangen/musikcube/pull/474
3635 (fetchpatch {
3736 name = "ncurses-6.3.patch";
@@ -49,7 +48,6 @@ stdenv.mkDerivation rec {
4948 boost
5049 curl
5150 ffmpeg
52− gnutls
5351 lame
5452 libev
5553 libmicrohttpd
pkgs/applications/audio/ncspot/default.nix+7−3
@@ -7,16 +7,20 @@
77
88rustPlatform.buildRustPackage rec {
99 pname = "ncspot";
10− version = "0.9.8";
10+ version = "0.9.5";
1111
1212 src = fetchFromGitHub {
1313 owner = "hrkfdn";
1414 repo = "ncspot";
1515 rev = "v${version}";
16− sha256 = "sha256-lrEIFPi55aP9utAaMIFtqocpkbDXRJqS/jlGUtE26kE=";
16+ sha256 = "sha256-HnP0dXKkMssDAhrsA99bTCVGdov9t5+1y8fJ+BWTM80=";
1717 };
1818
19− cargoSha256 = "sha256-vkNGQ3SXKJpUqDZ4TfmlSleAPAOQnsEncE8475NLJ4M=";
19+ # Upstream now only supports rust 1.58+, but this version is not yet available in nixpkgs.
20+ # See https://github.com/hrkfdn/ncspot/issues/714
21+ patches = [ ./rust_1_57_support.patch ];
22+
23+ cargoSha256 = "sha256-g6UMwirsSV+/NtFIfEZrz5h/OitPQcDeSawh7wq4TLI=";
2024
2125 nativeBuildInputs = [ pkg-config ];
2226
pkgs/applications/audio/ncspot/rust_1_57_support.patchnew file+21
@@ -0,0 +1,21 @@
1+diff --git a/src/ui/listview.rs b/src/ui/listview.rs
2+index 17fead7..e6c72b6 100644
3+--- a/src/ui/listview.rs
4++++ b/src/ui/listview.rs
5+@@ -85,7 +85,7 @@ impl<I: ListItem> ListView<I> {
6+
7+ pub fn content_height_with_paginator(&self) -> usize {
8+ let content_len = self.content.read().unwrap().len();
9+- log::info!("content len: {content_len}");
10++ log::info!("content len: {}", content_len);
11+
12+ // add 1 more row for paginator if we can paginate
13+ if self.can_paginate() {
14+@@ -97,7 +97,7 @@ impl<I: ListItem> ListView<I> {
15+
16+ fn can_paginate(&self) -> bool {
17+ let loaded = self.get_pagination().loaded_content();
18+- log::info!("can paginate: {loaded}");
19++ log::info!("can paginate: {}", loaded);
20+ self.get_pagination().max_content().unwrap_or(0) > self.get_pagination().loaded_content()
21+ }
pkgs/applications/audio/noise-repellent/default.nix+9−11
@@ -1,24 +1,22 @@
1−{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, cmake, libspecbleach, lv2 }:
1+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, fftwFloat, lv2 }:
22
33stdenv.mkDerivation rec {
44 pname = "noise-repellent";
5− version = "0.2.1";
5+ version = "0.1.5";
66
77 src = fetchFromGitHub {
88 owner = "lucianodato";
99 repo = pname;
10− rev = "v${version}";
11− sha256 = "sha256-hMNVzhJZFGFeu5aygLkfq495O0zpaIk41ddzejvDITE=";
10+ rev = version;
11+ sha256 = "0hb89x9i2knzan46q4nwscf5zmnb2nwf4w13xl2c0y1mx1ls1mwl";
12+ fetchSubmodules = true;
1213 };
1314
14− mesonFlags = [
15− "--prefix=${placeholder "out"}/lib/lv2"
16− "--buildtype=release"
17− ];
15+ mesonFlags = ("--prefix=${placeholder "out"}/lib/lv2");
1816
19− nativeBuildInputs = [ meson ninja pkg-config cmake ];
17+ nativeBuildInputs = [ meson ninja pkg-config ];
2018 buildInputs = [
21− libspecbleach lv2
19+ fftwFloat lv2
2220 ];
2321
2422 meta = with lib; {
@@ -26,6 +24,6 @@ stdenv.mkDerivation rec {
2624 homepage = "https://github.com/lucianodato/noise-repellent";
2725 license = licenses.gpl3;
2826 maintainers = [ maintainers.magnetophon ];
29− platforms = platforms.unix;
27+ platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "i686-darwin" ];
3028 };
3129}
pkgs/applications/audio/ocenaudio/default.nix+2−2
@@ -11,11 +11,11 @@
1111
1212stdenv.mkDerivation rec {
1313 pname = "ocenaudio";
14− version = "3.11.10";
14+ version = "3.11.7";
1515
1616 src = fetchurl {
1717 url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}";
18− sha256 = "sha256-Ah6Ni5EbFdIQ/wN7uGeMrSP5ybQfI4iy9gI1VT5LztU=";
18+ sha256 = "sha256-fTeDRo7gCM1jXTQGm9MsmKu4KvTGDUogF3VSZWk91RM=";
1919 };
2020
2121 nativeBuildInputs = [
pkgs/applications/audio/odin2/default.nixdeleted−79
@@ -1,79 +0,0 @@
1−{ stdenv
2−, lib
3−, fetchFromGitHub
4−, cmake
5−, pkg-config
6−, alsa-lib
7−, freetype
8−, libjack2
9−, lv2
10−, libX11
11−, libXcursor
12−, libXext
13−, libXinerama
14−, libXrandr
15−, libGL
16−, gcc-unwrapped
17−}:
18−
19−stdenv.mkDerivation rec {
20− pname = "odin2";
21− version = "unstable-2022-02-23";
22−
23− src = fetchFromGitHub {
24− owner = "baconpaul";
25− repo = "odin2";
26− rev = "ed02d06cfb5db8a118d291c00bd2e4cd6e262cde";
27− fetchSubmodules = true;
28− sha256 = "sha256-VkZ+mqCmqWQafdN0nQxJdPxbiaZ37/0jOhLvVbnGLvQ=";
29− };
30−
31− nativeBuildInputs = [
32− cmake
33− pkg-config
34− ];
35−
36− buildInputs = [
37− alsa-lib
38− freetype
39− libjack2
40− lv2
41− libX11
42− libXcursor
43− libXext
44− libXinerama
45− libXrandr
46− libGL
47− ];
48−
49− # JUCE dlopen's these at runtime, crashes without them
50− NIX_LDFLAGS = (toString [
51− "-lX11"
52− "-lXext"
53− "-lXcursor"
54− "-lXinerama"
55− "-lXrandr"
56− ]);
57−
58− cmakeFlags = [
59− "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
60− "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
61− "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
62− ];
63−
64− installPhase = ''
65− mkdir -p $out/bin $out/lib/vst3
66− cd Odin2_artefacts/Release
67− cp -r VST3/Odin2.vst3 $out/lib/vst3
68− cp -r Standalone/Odin2 $out/bin
69−'';
70−
71−
72− meta = with lib; {
73− description = "Odin 2 Synthesizer Plugin";
74− homepage = "https://thewavewarden.com/odin2";
75− license = licenses.gpl3;
76− platforms = [ "x86_64-linux" ];
77− maintainers = with maintainers; [ magnetophon ];
78− };
79−}
pkgs/applications/audio/osdlyrics/default.nixdeleted−87
@@ -1,87 +0,0 @@
1−{ lib
2−, stdenv
3−, fetchFromGitHub
4−
5−, autoreconfHook
6−, pkg-config
7−, intltool
8−
9−, glib
10−, gtk2
11−, dbus-glib
12−, libappindicator-gtk2
13−, libnotify
14−, python3
15−, runtimeShell
16−}:
17−
18−stdenv.mkDerivation rec {
19− pname = "osdlyrics";
20− version = "0.5.10";
21−
22− src = fetchFromGitHub {
23− owner = "osdlyrics";
24− repo = "osdlyrics";
25− rev = version;
26− sha256 = "sha256-x9gIT1JkfPIc4RmmQJLv9rOG2WqAftoTK5uiRlS65zU=";
27− };
28−
29− nativeBuildInputs = [
30− autoreconfHook
31− pkg-config
32− intltool
33− ];
34−
35− buildInputs = [
36− glib
37− gtk2
38− dbus-glib
39− libappindicator-gtk2
40− libnotify
41− python3.pkgs.wrapPython
42− (python3.withPackages (pp: with pp; [
43− chardet
44− dbus-python
45− future
46− pycurl
47− pygobject3
48− ]))
49− ];
50−
51− postFixup = ''
52− extractExecLine() {
53− serviceFile=$1
54− program=$2
55−
56− execLine=$(grep --only-matching --perl-regexp 'Exec=\K(.+)' "$serviceFile")
57− echo "#!${runtimeShell}" > "$program"
58− echo "exec $execLine" >> "$program"
59− chmod +x "$program"
60−
61− substituteInPlace "$serviceFile" \
62− --replace "Exec=$execLine" "Exec=$program"
63− }
64−
65− # Extract the exec line into a separate program so that it can be wrapped.
66− mkdir -p "$out/libexec/osdlyrics/"
67− for svcFile in "$out/share/dbus-1/services"/*; do
68− svc=$(basename "$svcFile" ".service")
69− if grep "python" "$svcFile"; then
70− extractExecLine "$svcFile" "$out/libexec/osdlyrics/$svc"
71− fi
72− done
73−
74− for p in "$out/bin/osdlyrics-create-lyricsource" "$out/bin/osdlyrics-daemon" "$out/libexec/osdlyrics"/*; do
75− wrapProgram "$p" \
76− --prefix PYTHONPATH : "$out/${python3.sitePackages}"
77− done
78− '';
79−
80− meta = with lib; {
81− description = "Standalone lyrics fetcher/displayer";
82− homepage = "https://github.com/osdlyrics/osdlyrics";
83− license = licenses.gpl3Plus;
84− maintainers = with maintainers; [ jtojnar ];
85− platforms = platforms.linux;
86− };
87−}
pkgs/applications/audio/parlatype/default.nixnew file+66
@@ -0,0 +1,66 @@
1+{ lib, stdenv, fetchFromGitHub, pkg-config, meson, gtk3, at-spi2-core, dbus, gst_all_1, sphinxbase, pocketsphinx, ninja, gettext, appstream-glib, python3, glib, gobject-introspection, gsettings-desktop-schemas, itstool, wrapGAppsHook, hicolor-icon-theme }:
2+
3+stdenv.mkDerivation rec {
4+ pname = "parlatype";
5+ version = "2.1";
6+
7+ src = fetchFromGitHub {
8+ owner = "gkarsay";
9+ repo = pname;
10+ rev = "v${version}";
11+ sha256 = "1k53q0kbwpnbgyr0lmfzf5sm4f93d8nbjrzdz9pdhzpxgihndg25";
12+ };
13+
14+ nativeBuildInputs = [
15+ pkg-config
16+ meson
17+ ninja
18+ gettext
19+ appstream-glib
20+ python3
21+ gobject-introspection
22+ itstool
23+ wrapGAppsHook
24+ ];
25+
26+ buildInputs = [
27+ gtk3
28+ at-spi2-core
29+ dbus
30+ gst_all_1.gstreamer
31+ gst_all_1.gst-plugins-base
32+ gst_all_1.gst-plugins-good
33+ gst_all_1.gst-plugins-bad
34+ gst_all_1.gst-plugins-ugly
35+ gst_all_1.gst-libav
36+ sphinxbase
37+ pocketsphinx
38+ glib
39+ gsettings-desktop-schemas
40+ hicolor-icon-theme
41+ ];
42+
43+ postPatch = ''
44+ chmod +x data/meson_post_install.py
45+ patchShebangs data/meson_post_install.py
46+ '';
47+
48+ doCheck = false;
49+
50+ buildPhase = ''
51+ export GST_PLUGIN_SYSTEM_PATH_1_0="$out/lib/gstreamer-1.0/:$GST_PLUGIN_SYSTEM_PATH_1_0"
52+ '';
53+
54+ meta = with lib; {
55+ description = "GNOME audio player for transcription";
56+ longDescription = ''
57+ Parlatype is a minimal audio player for manual speech transcription, written for the GNOME desktop environment.
58+ It plays audio sources to transcribe them in your favourite text application.
59+ It’s intended to be useful for journalists, students, scientists and whoever needs to transcribe audio files.
60+ '';
61+ homepage = "https://gkarsay.github.io/parlatype/";
62+ license = licenses.gpl3Plus;
63+ maintainers = [ maintainers.melchips ];
64+ platforms = platforms.linux;
65+ };
66+}
pkgs/applications/audio/pianobar/default.nix+2−2
@@ -2,11 +2,11 @@
22
33stdenv.mkDerivation rec {
44 pname = "pianobar";
5− version = "2022.04.01";
5+ version = "2020.11.28";
66
77 src = fetchurl {
88 url = "https://6xq.net/projects/pianobar/${pname}-${version}.tar.bz2";
9− sha256 = "sha256-FnCyiGWouCpXu23+p/FuL6QUXS81SRC7FzgLMsm5R2M=";
9+ sha256 = "1znlwybfpxsjqr1jmr8j0ci8wzmpzmk2yxb0qcx9w9a8nnbgnfv5";
1010 };
1111
1212 nativeBuildInputs = [ pkg-config ];
pkgs/applications/audio/pipecontrol/default.nixdeleted−50
@@ -1,50 +0,0 @@
1−{ lib
2−, stdenv
3−, fetchFromGitHub
4−, pipewire
5−, cmake
6−, extra-cmake-modules
7−, gnumake
8−, wrapQtAppsHook
9−, qtbase
10−, qttools
11−, kirigami2
12−, kcoreaddons
13−, ki18n
14−, qtquickcontrols2
15−}:
16−
17−stdenv.mkDerivation rec {
18− pname = "pipecontrol";
19− version = "0.2.2";
20−
21− src = fetchFromGitHub {
22− owner = "portaloffreedom";
23− repo = pname;
24− rev = "v${version}";
25− sha256 = "sha256-BeubRDx82MQX1gB7GnGJlQ2FyYX1S83C3gqPZgIjgoM=";
26− };
27−
28− nativeBuildInputs = [
29− cmake
30− extra-cmake-modules
31− wrapQtAppsHook
32− qttools
33− ];
34−
35− buildInputs = [
36− pipewire
37− qtbase
38− kirigami2
39− kcoreaddons
40− ki18n
41− qtquickcontrols2
42− ];
43−
44− meta = with lib; {
45− description = "Pipewire control GUI program in Qt (Kirigami2)";
46− homepage = "https://github.com/portaloffreedom/pipecontrol";
47− license = licenses.gpl3Only;
48− maintainers = with maintainers; [ tilcreator ];
49− };
50−}
pkgs/applications/audio/plexamp/default.nix+3−3
@@ -2,12 +2,12 @@
22
33let
44 pname = "plexamp";
5− version = "4.2.1";
5+ version = "4.1.0";
66
77 src = fetchurl {
88 url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
99 name="${pname}-${version}.AppImage";
10− sha512 = "S2/T+T24X6D0oTbGPMp2BVfWTvzsUCWS1xsigLT/vFr12PlZgPfOWgo987W3YE30WJJDdybLqnkTl+uhNndC+A==";
10+ sha512 = "N+WkH6n7MWfRd2rsk/2b/rABL6pcjpKa1iBZSHslIOEc5fYWjGAxjwwTU0RgSaqptS1DyPeCUeWuphWPZJsQgw==";
1111 };
1212
1313 appimageContents = appimageTools.extractType2 {
@@ -33,7 +33,7 @@ in appimageTools.wrapType2 {
3333 meta = with lib; {
3434 description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
3535 homepage = "https://plexamp.com/";
36− changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/44";
36+ changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/42";
3737 license = licenses.unfree;
3838 maintainers = with maintainers; [ killercup synthetica ];
3939 platforms = [ "x86_64-linux" ];
pkgs/applications/audio/pt2-clone/default.nix+2−2
@@ -8,13 +8,13 @@
88
99stdenv.mkDerivation rec {
1010 pname = "pt2-clone";
11− version = "1.46";
11+ version = "1.43";
1212
1313 src = fetchFromGitHub {
1414 owner = "8bitbubsy";
1515 repo = "pt2-clone";
1616 rev = "v${version}";
17− sha256 = "sha256-xRq37hjuMiGxsWRnZ/ryXYLvQpjbfQEjQkMjjuqL7r8=";
17+ sha256 = "sha256-+sHGjgDqizv/9n0dDj8knsl+4MBfO3/pMkmD+MPsuNM=";
1818 };
1919
2020 nativeBuildInputs = [ cmake ];
pkgs/applications/audio/puddletag/default.nix−1
@@ -17,7 +17,6 @@
1717let
1818 # NOTE: check if we can drop any of these overrides when bumping the version
1919 overrideVersions = [
20− "lxml"
2120 "pyparsing"
2221 "pyqt5"
2322 ];
pkgs/applications/audio/pulseaudio-modules-bt/default.nixnew file+91
@@ -0,0 +1,91 @@
1+{ stdenv
2+, runCommand
3+, fetchFromGitHub
4+, pulseaudio
5+, pkg-config
6+, ffmpeg
7+, patchelf
8+, fdk_aac
9+, libtool
10+, ldacbt
11+, cmake
12+, bluez
13+, dbus
14+, sbc
15+, lib
16+}:
17+
18+let
19+ pulseSources = runCommand "pulseaudio-sources" {} ''
20+ mkdir $out
21+ if [ -d ${pulseaudio.src} ]; then
22+ ln -s ${pulseaudio.src}/* $out/
23+ else
24+ tar -xf ${pulseaudio.src}
25+ mv pulseaudio*/* $out/
26+ fi
27+ '';
28+
29+in stdenv.mkDerivation rec {
30+ pname = "pulseaudio-modules-bt";
31+ version = "1.4";
32+
33+ src = fetchFromGitHub {
34+ owner = "EHfive";
35+ repo = "pulseaudio-modules-bt";
36+ rev = "v${version}";
37+ sha256 = "0bzg6x405j39axnkvc6n6vkl1hv1frk94y1i9sl170081bk23asd";
38+ };
39+
40+ patches = [
41+ ./fix-install-path.patch
42+ ];
43+
44+ nativeBuildInputs = [
45+ pkg-config
46+ patchelf
47+ cmake
48+ ];
49+
50+ buildInputs = [
51+ pulseaudio
52+ ffmpeg
53+ fdk_aac
54+ libtool
55+ ldacbt
56+ bluez
57+ dbus
58+ sbc
59+ ];
60+
61+ postPatch = ''
62+ # Upstream bundles pulseaudio as a submodule
63+ rm -r pa
64+ ln -s ${pulseSources} pa
65+
66+ # Pulseaudio version is detected with a -rebootstrapped suffix which build system assumptions
67+ substituteInPlace config.h.in --replace PulseAudio_VERSION ${pulseaudio.version}
68+ substituteInPlace CMakeLists.txt --replace '${"\${PULSE_DIR}"}' ${pulseaudio.pulseDir}
69+
70+ # Fraunhofer recommends to enable afterburner but upstream has it set to false by default
71+ substituteInPlace src/modules/bluetooth/a2dp/a2dp_aac.c \
72+ --replace "info->aac_afterburner = false;" "info->aac_afterburner = true;"
73+ '';
74+
75+ postFixup = ''
76+ for so in $out/lib/pulse-${pulseaudio.version}/modules/*.so; do
77+ orig_rpath=$(patchelf --print-rpath "$so")
78+ patchelf \
79+ --set-rpath "${ldacbt}/lib:${lib.getLib ffmpeg}/lib:$out/${pulseaudio.pulseDir}/modules:$orig_rpath" \
80+ "$so"
81+ done
82+ '';
83+
84+ meta = with lib; {
85+ homepage = "https://github.com/EHfive/pulseaudio-modules-bt";
86+ description = "LDAC, aptX, aptX HD, AAC codecs (A2DP Audio) support for Linux PulseAudio";
87+ platforms = platforms.linux;
88+ license = licenses.mit;
89+ maintainers = with maintainers; [ adisbladis ];
90+ };
91+}
pkgs/applications/audio/pulseaudio-modules-bt/fix-install-path.patchnew file+11
@@ -0,0 +1,11 @@
1+diff --git a/CMakeLists.txt b/CMakeLists.txt
2+index 8d20dbf..63fe7ba 100644
3+--- a/CMakeLists.txt
4++++ b/CMakeLists.txt
5+@@ -213,5 +213,4 @@ INSTALL(TARGETS
6+ module-bluez5-device
7+ module-bluetooth-discover
8+ module-bluetooth-policy
9+- LIBRARY DESTINATION ${PulseAudio_modlibexecdir})
10+-
11++ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${PULSE_DIR}/modules/)
pkgs/applications/audio/pyradio/default.nix+3−3
@@ -2,7 +2,7 @@
22
33python3Packages.buildPythonApplication rec {
44 pname = "pyradio";
5− version = "0.8.9.17";
5+ version = "0.8.9.16";
66
77 propagatedBuildInputs = with python3Packages; [
88 requests
@@ -13,8 +13,8 @@ python3Packages.buildPythonApplication rec {
1313 src = fetchFromGitHub {
1414 owner = "coderholic";
1515 repo = pname;
16− rev = "refs/tags/${version}";
17− sha256 = "sha256-lfDSD1+xbA6tAKeHKciq/n6YHWS4JTOvjIqOn+FQ2yA=";
16+ rev = version;
17+ sha256 = "sha256-uerQfyGHWhLbO6UkLSMA1tdfW/8fDQkcm6hYIdwwC7I=";
1818 };
1919
2020 checkPhase = ''
pkgs/applications/audio/qpwgraph/default.nix+3−3
@@ -5,14 +5,14 @@
55
66mkDerivation rec {
77 pname = "qpwgraph";
8− version = "0.2.5";
8+ version = "0.2.2";
99
1010 src = fetchFromGitLab {
1111 domain = "gitlab.freedesktop.org";
1212 owner = "rncbc";
1313 repo = "qpwgraph";
1414 rev = "v${version}";
15− sha256 = "sha256-OYIBlTO1vXmmY4/ZacvsEQ5EnOfetBvnG2v5xL44czY=";
15+ sha256 = "sha256-BBvF1L3IqkYqSghHxcbwOBizdu6GtxaWof3Q/bc+aTY=";
1616 };
1717
1818 nativeBuildInputs = [ cmake pkg-config ];
@@ -29,6 +29,6 @@ mkDerivation rec {
2929 homepage = "https://gitlab.freedesktop.org/rncbc/qpwgraph";
3030 license = licenses.gpl2Plus;
3131 platforms = platforms.linux;
32− maintainers = with maintainers; [ kanashimia exi ];
32+ maintainers = with maintainers; [ kanashimia ];
3333 };
3434}
pkgs/applications/audio/shortwave/default.nix+12−9
@@ -14,29 +14,28 @@
1414, ninja
1515, openssl
1616, pkg-config
17+, python3
1718, rustPlatform
1819, sqlite
19−, wrapGAppsHook4
20−, cmake
21−, libshumate
20+, wrapGAppsHook
2221}:
2322
2423stdenv.mkDerivation rec {
2524 pname = "shortwave";
26− version = "3.0.0";
25+ version = "2.0.1";
2726
2827 src = fetchFromGitLab {
2928 domain = "gitlab.gnome.org";
3029 owner = "World";
3130 repo = "Shortwave";
3231 rev = version;
33− sha256 = "sha256-qwk63o9pfqpAm6l9ioj3RccacemQU8R6LF6El4yHkjQ";
32+ sha256 = "sha256-25qPb7qlqCwYJzl4qZxAZYx5asxSlXBlc/0dGyBdk1o=";
3433 };
3534
3635 cargoDeps = rustPlatform.fetchCargoTarball {
3736 inherit src;
3837 name = "${pname}-${version}";
39− hash = "sha256-YrB322nv9CgZqt5//VMvVwjWA51ePlX2PI6raRJGBxA=";
38+ hash = "sha256-00dQXcSNmdZb2nSLG3q7jm4sugF9XR4LbH0OmcuHVxA=";
4039 };
4140
4241 nativeBuildInputs = [
@@ -47,11 +46,11 @@ stdenv.mkDerivation rec {
4746 meson
4847 ninja
4948 pkg-config
49+ python3
5050 rustPlatform.rust.cargo
5151 rustPlatform.cargoSetupHook
5252 rustPlatform.rust.rustc
53− wrapGAppsHook4
54− cmake
53+ wrapGAppsHook
5554 ];
5655
5756 buildInputs = [
@@ -62,7 +61,6 @@ stdenv.mkDerivation rec {
6261 libadwaita
6362 openssl
6463 sqlite
65− libshumate
6664 ] ++ (with gst_all_1; [
6765 gstreamer
6866 gst-plugins-base
@@ -70,6 +68,10 @@ stdenv.mkDerivation rec {
7068 gst-plugins-bad
7169 ]);
7270
71+ postPatch = ''
72+ patchShebangs build-aux/meson/postinstall.py
73+ '';
74+
7375 meta = with lib; {
7476 homepage = "https://gitlab.gnome.org/World/Shortwave";
7577 description = "Find and listen to internet radio stations";
@@ -78,6 +80,7 @@ stdenv.mkDerivation rec {
7880 desktop. It is the successor to the older Gradio application.
7981 '';
8082 maintainers = with maintainers; [ lasandell ];
83+ broken = true; # incompatible with latest libadwaita
8184 license = licenses.gpl3Plus;
8285 platforms = platforms.linux;
8386 };
pkgs/applications/audio/sonixd/default.nixdeleted−27
@@ -1,27 +0,0 @@
1−{ lib
2−, fetchurl
3−, appimageTools
4−}:
5−
6−appimageTools.wrapType2 rec {
7− pname = "sonixd";
8− version = "0.15.1";
9−
10− src = fetchurl {
11− url = "https://github.com/jeffvli/sonixd/releases/download/v${version}/Sonixd-${version}-linux-x86_64.AppImage";
12− sha256 = "sha256-23WU1nwvrzyw0J+Pplm3JbsScjJxu+RhmwVoe/PjozY=";
13− };
14−
15− extraInstallCommands = ''
16− mv $out/bin/sonixd-${version} $out/bin/sonixd
17− '';
18−
19− meta = with lib; {
20− description = "Full-featured Subsonic/Jellyfin compatible desktop music player";
21− homepage = "https://github.com/jeffvli/sonixd";
22− license = licenses.gpl3Only;
23− maintainers = with maintainers; [ onny ];
24− platforms = [ "x86_64-linux" ];
25− };
26−}
27−
pkgs/applications/audio/soundwireserver/default.nix−1
@@ -34,7 +34,6 @@ qt5.mkDerivation {
3434 description = "Turn your Android device into wireless headphones / wireless speaker";
3535 homepage = "https://georgielabs.net/";
3636 maintainers = with maintainers; [ mkg20001 ];
37− platforms = [ "x86_64-linux" ];
3837 license = licenses.unfree;
3938 };
4039}
pkgs/applications/audio/spot/default.nix+3−3
@@ -21,19 +21,19 @@
2121
2222stdenv.mkDerivation rec {
2323 pname = "spot";
24− version = "0.3.3";
24+ version = "0.3.1";
2525
2626 src = fetchFromGitHub {
2727 owner = "xou816";
2828 repo = "spot";
2929 rev = version;
30− hash = "sha256-0iuLZq9FSxaOchxx6LzGwpY8qnOq2APl/qkBYzEV2uw=";
30+ hash = "sha256-uZzylK9imEazwC/ogsDO8ZBvByE5/SNSV+mIlp7Z9Ww=";
3131 };
3232
3333 cargoDeps = rustPlatform.fetchCargoTarball {
3434 inherit src;
3535 name = "${pname}-${version}";
36− hash = "sha256-g46BkrTv6tdrGe/p245O4cBoPjbvyRP7U6hH1Hp4ja0=";
36+ hash = "sha256-v5xdlsI6OlEpCYOTFePTyI8BkIrAwT6FR2JwiRTGgOA=";
3737 };
3838
3939 nativeBuildInputs = [
pkgs/applications/audio/spotify-tui/default.nix−1
@@ -31,6 +31,5 @@ rustPlatform.buildRustPackage rec {
3131 changelog = "https://github.com/Rigellute/spotify-tui/blob/v${version}/CHANGELOG.md";
3232 license = licenses.mit;
3333 maintainers = with maintainers; [ jwijenbergh ];
34− mainProgram = "spt";
3534 };
3635}
pkgs/applications/audio/spotify/default.nix+3−3
@@ -10,14 +10,14 @@ let
1010 # If an update breaks things, one of those might have valuable info:
1111 # https://aur.archlinux.org/packages/spotify/
1212 # https://community.spotify.com/t5/Desktop-Linux
13− version = "1.1.84.716.gc5f8b819";
13+ version = "1.1.80.699.gc3dac750";
1414 # To get the latest stable revision:
1515 # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
1616 # To get general information:
1717 # curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
1818 # More examples of api usage:
1919 # https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
20− rev = "60";
20+ rev = "58";
2121
2222 deps = [
2323 alsa-lib
@@ -80,7 +80,7 @@ stdenv.mkDerivation {
8080 # https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
8181 src = fetchurl {
8282 url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
83− sha512 = "1209b956822d8bb661daa2c88616bed403ec26dc22c6b866cecff59235c56112284c2f99aa06352fc0df6fcd15225a6ad60afd3b4ff4d7b948ab83e70ab31a71";
83+ sha512 = "91385a5a8de31d6e9f1945d23108447fd369c1cdc2e4d95cbb7cec5d403c3be14a1b0fabe3fb01aef809a39b033d289add1bcb307ab19c7fcb63689dbae57c53";
8484 };
8585
8686 nativeBuildInputs = [ makeWrapper wrapGAppsHook squashfsTools ];
pkgs/applications/audio/strawberry/default.nix−1
@@ -72,7 +72,6 @@ mkDerivation rec {
7272 ] ++ lib.optionals withGstreamer (with gst_all_1; [
7373 glib-networking
7474 gstreamer
75− gst-libav
7675 gst-plugins-base
7776 gst-plugins-good
7877 gst-plugins-bad
pkgs/applications/audio/viper4linux-gui/default.nixdeleted−82
@@ -1,82 +0,0 @@
1−{ lib
2−, stdenv
3−, fetchFromGitHub
4−, copyDesktopItems
5−, pkg-config
6−, qtbase
7−, qtsvg
8−, qtmultimedia
9−, qmake
10−, gst_all_1
11−, libpulseaudio
12−, makeDesktopItem
13−, viper4linux
14−, wrapQtAppsHook
15−}:
16−let
17− gstPluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" (with gst_all_1; [ gstreamer gst-plugins-viperfx gst-plugins-base gst-plugins-good ]);
18−in
19−stdenv.mkDerivation rec {
20− pname = "viper4linux-gui";
21− version = "unstable-2022-04-23";
22−
23− src = fetchFromGitHub {
24− owner = "Audio4Linux";
25− repo = "Viper4Linux-GUI";
26− rev = "2d0c84d7dda76c59e31c850e38120002eb779b7a";
27− sha256 = "sha256-5YlLCF598i/sldczPEgCB+1KJDA7jqM964QDSNjgTKM=";
28− };
29−
30− desktopItems = [
31− (makeDesktopItem {
32− name = pname;
33− exec = "viper-gui";
34− icon = "viper";
35− desktopName = "viper4linux";
36− genericName = "Equalizer";
37− comment = meta.description;
38− categories = [ "AudioVideo" "Audio" ];
39− startupNotify = false;
40− })
41− ];
42−
43− nativeBuildInputs = [
44− qmake
45− pkg-config
46− wrapQtAppsHook
47− copyDesktopItems
48− ];
49−
50− buildInputs = [
51− qtbase
52− qtmultimedia
53− qtsvg
54− gst_all_1.gstreamer
55− gst_all_1.gst-plugins-bad
56− gst_all_1.gst-plugins-viperfx
57− libpulseaudio
58− viper4linux
59− ];
60−
61− qmakeFlags = [ "V4L_Frontend.pro" ];
62−
63− qtWrapperArgs = [
64− "--prefix PATH : ${lib.makeBinPath [ viper4linux gst_all_1.gstreamer ]}"
65− "--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : ${gstPluginPath}"
66− ];
67−
68− installPhase = ''
69− runHook preInstalli
70− install -D V4L_Frontend $out/bin/viper-gui
71− install -D icons/viper.png $out/share/icons/viper.png
72− runHook postInstall
73− '';
74−
75− meta = with lib; {
76− description = "Official UI for Viper4Linux2";
77− homepage = "https://github.com/Audio4Linux/Viper4Linux-GUI";
78− license = licenses.gpl3Plus;
79− platforms = [ "x86_64-linux" ];
80− maintainers = with maintainers; [ rewine ];
81− };
82−}
pkgs/applications/audio/viper4linux/default.nixdeleted−61
@@ -1,61 +0,0 @@
1−{ lib
2−, stdenv
3−, fetchFromGitHub
4−, pkg-config
5−, gst_all_1
6−, libviperfx
7−, makeWrapper
8−}:
9−let
10− gstPluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" (with gst_all_1; [ gstreamer gst-plugins-viperfx gst-plugins-base gst-plugins-good ]);
11−in
12−stdenv.mkDerivation rec {
13− pname = "viper4linux";
14− version = "unstable-2022-03-13";
15−
16− src = fetchFromGitHub {
17− owner = "Audio4Linux";
18− repo = "Viper4Linux";
19− rev = "5da25644824f88cf0db24378d2c84770ba4f6816";
20− sha256 = "sha256-CJNVr/1ehJzX45mxunXcRAypBBGEBdswOzAVG2H+ayg=";
21− };
22−
23− nativeBuildInputs = [ makeWrapper ];
24−
25− buildInputs = [
26− gst_all_1.gstreamer
27− gst_all_1.gst-plugins-base
28− gst_all_1.gst-plugins-good
29− gst_all_1.gst-plugins-viperfx
30− libviperfx
31− ];
32−
33− dontBuild = true;
34−
35− postPatch = ''
36− substituteInPlace viper --replace "/etc/viper4linux" "$out/etc/viper4linux"
37− '';
38−
39− installPhase = ''
40− runHook preInstall
41− install -D viper -t $out/bin
42− mkdir -p $out/etc/viper4linux
43− cp -r viper4linux/* $out/etc/viper4linux
44− runHook postInstall
45− '';
46−
47− postFixup = ''
48− wrapProgram "$out/bin/viper" \
49− --prefix PATH : $out/bin:${lib.makeBinPath [ gst_all_1.gstreamer ]} \
50− --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : ${gstPluginPath} \
51− --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libviperfx ]}
52− '';
53−
54− meta = with lib; {
55− description = "An Adaptive Digital Sound Processor";
56− homepage = "https://github.com/Audio4Linux/Viper4Linux";
57− license = licenses.gpl3Plus;
58− platforms = [ "x86_64-linux" ];
59− maintainers = with maintainers; [ rewine ];
60− };
61−}
pkgs/applications/audio/whipper/default.nix−8
@@ -8,8 +8,6 @@
88, flac
99, sox
1010, util-linux
11−, testers
12−, whipper
1311}:
1412
1513let
@@ -47,7 +45,6 @@ in python3.pkgs.buildPythonApplication rec {
4745 ruamel-yaml
4846 discid
4947 pillow
50− setuptools
5148 ];
5249
5350 buildInputs = [ libsndfile ];
@@ -74,11 +71,6 @@ in python3.pkgs.buildPythonApplication rec {
7471 runHook postCheck
7572 '';
7673
77− passthru.tests.version = testers.testVersion {
78− package = whipper;
79− command = "HOME=$TMPDIR whipper --version";
80− };
81−
8274 meta = with lib; {
8375 homepage = "https://github.com/whipper-team/whipper";
8476 description = "A CD ripper aiming for accuracy over speed";
pkgs/applications/audio/x42-plugins/default.nix+2−2
@@ -3,12 +3,12 @@
33, libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
44
55stdenv.mkDerivation rec {
6− version = "20220327";
6+ version = "20220107";
77 pname = "x42-plugins";
88
99 src = fetchurl {
1010 url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
11− sha256 = "sha256-IhuPqTlCbCxExT5B9Au42RQQl4sDEvz6+HhsuT02KVs=";
11+ sha256 = "sha256-+lzgkRQHe6moid3h6az/iqt2XL5vbyM0BjSTwMBvd3I=";
1212 };
1313
1414 nativeBuildInputs = [ pkg-config ];
pkgs/applications/blockchains/alfis/default.nix+3−3
@@ -14,16 +14,16 @@
1414
1515rustPlatform.buildRustPackage rec {
1616 pname = "alfis";
17− version = "0.7.0";
17+ version = "0.6.11";
1818
1919 src = fetchFromGitHub {
2020 owner = "Revertron";
2121 repo = "Alfis";
2222 rev = "v${version}";
23− sha256 = "sha256-lamobXaDY+v8NpoI+TuuBO5Cdol9+7VPhdmLEH6sZIo=";
23+ sha256 = "sha256-vm/JBJh58UaSem18RpJuPUzM2GCy4RfCb6Hr1B7KWQA=";
2424 };
2525
26− cargoSha256 = "sha256-C5MCT4EG/lI4s2rVGSm9DgBu43FKpp3iTBbCf7N1jOA=";
26+ cargoSha256 = "sha256-8ijGO8up0qVQ/kVX5/DveKyovYLh7jm+d7vooS1waAA=";
2727
2828 checkFlags = [
2929 # these want internet access, disable them
pkgs/applications/blockchains/bisq-desktop/default.nix+2−1
@@ -10,6 +10,7 @@
1010, writeScript
1111, bash
1212, tor
13+, gnutar
1314, zip
1415, xz
1516}:
@@ -41,7 +42,7 @@ stdenv.mkDerivation rec {
4142 sha256 = "09bpkmn22kal3cxg8sil02wy2f2gplsbdkp4viagn0jppma02jid";
4243 };
4344
44− nativeBuildInputs = [ makeWrapper copyDesktopItems imagemagick dpkg zip xz ];
45+ nativeBuildInputs = [ makeWrapper copyDesktopItems imagemagick dpkg gnutar zip xz ];
4546
4647 desktopItems = [
4748 (makeDesktopItem {
pkgs/applications/blockchains/bitcoin/default.nix+2−2
@@ -25,7 +25,7 @@
2525
2626with lib;
2727let
28− version = "23.0";
28+ version = "22.0";
2929 majorVersion = versions.major version;
3030 desktop = fetchurl {
3131 url = "https://raw.githubusercontent.com/bitcoin-core/packaging/${majorVersion}.x/debian/bitcoin-qt.desktop";
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
4141 "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
4242 "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
4343 ];
44− sha256 = "26748bf49d6d6b4014d0fedccac46bf2bcca42e9d34b3acfd9e3467c415acc05";
44+ sha256 = "d0e9d089b57048b1555efa7cd5a63a7ed042482045f6f33402b1df425bf9613b";
4545 };
4646
4747 nativeBuildInputs =
pkgs/applications/blockchains/btcpayserver/default.nix+2−2
@@ -3,13 +3,13 @@
33
44buildDotnetModule rec {
55 pname = "btcpayserver";
6− version = "1.5.1";
6+ version = "1.4.7";
77
88 src = fetchFromGitHub {
99 owner = pname;
1010 repo = pname;
1111 rev = "v${version}";
12− sha256 = "sha256-DcxRrVUen+JxMpiLDPfknpwCe962ifaekBeBnxJ0y88=";
12+ sha256 = "sha256-Qz4BNrhK+NPnKBgjXGYl4P2R878LCuMGZxLECawA12E=";
1313 };
1414
1515 projectFile = "BTCPayServer/BTCPayServer.csproj";
pkgs/applications/blockchains/btcpayserver/deps.nix+29−29
@@ -31,18 +31,18 @@
3131 })
3232 (fetchNuGet {
3333 pname = "BTCPayServer.Lightning.All";
34− version = "1.3.6";
35− sha256 = "0jdpqy6kxg0lyh4n88wsvrcqc0kk7s7zn5lw7ivwys716m69qrdl";
34+ version = "1.3.2";
35+ sha256 = "0xcfba8n9zf5m1nb48ilggp03kpki4nv4kx7k7a5w1gxgm6k6j9z";
3636 })
3737 (fetchNuGet {
3838 pname = "BTCPayServer.Lightning.Charge";
39− version = "1.3.2";
40− sha256 = "0v5rss6dg7297kq1frhn2pj9gd0rd8g1p5d316x5wkd4w7pmrm2w";
39+ version = "1.3.1";
40+ sha256 = "1xakwnb839dl0qnhqprsnfq8png31iyb0fsngljis5jc8yvb4353";
4141 })
4242 (fetchNuGet {
4343 pname = "BTCPayServer.Lightning.CLightning";
44− version = "1.3.2";
45− sha256 = "0qs5p6pm54il23j8yysw0pzvrki37y6z8cd2gdknpz2f3wg7slm9";
44+ version = "1.3.1";
45+ sha256 = "0a79p6i3xiq6svv08c4hhihkvqa2ac7fphi3g9i0cwh47ak0k5h2";
4646 })
4747 (fetchNuGet {
4848 pname = "BTCPayServer.Lightning.Common";
@@ -51,23 +51,23 @@
5151 })
5252 (fetchNuGet {
5353 pname = "BTCPayServer.Lightning.Common";
54− version = "1.3.2";
55− sha256 = "119zplkc7iy9wc95iz1qnyi42fr99ar4hp8a11p708a22w941yi0";
54+ version = "1.3.1";
55+ sha256 = "165p1246fn628hlwdrx7sanlxa6qqpn480rq1asn5r1602w21844";
5656 })
5757 (fetchNuGet {
5858 pname = "BTCPayServer.Lightning.Eclair";
59− version = "1.3.2";
60− sha256 = "08gw1gqng1khxzvvhlwsg6lw1w56ylilg738wi6cbcwy7vl7f6bb";
59+ version = "1.3.1";
60+ sha256 = "1vlwm5mw8wffp00xhkx19yavk59b5x540sg81vis3q7hjvvgca5c";
6161 })
6262 (fetchNuGet {
6363 pname = "BTCPayServer.Lightning.LNBank";
64− version = "1.3.4";
65− sha256 = "1vyz63pi5j31y8pz0b4hp9c4j249rszzfcymk3z3b2clwq32s4i4";
64+ version = "1.3.1";
65+ sha256 = "0qga34vi4fzfr0g4qk0ad8xkqdig2ishmdj9i32s5yrrjrkx7c8d";
6666 })
6767 (fetchNuGet {
6868 pname = "BTCPayServer.Lightning.LND";
69− version = "1.3.3";
70− sha256 = "137azpxxmp2q69bp07ky1jsgnfy9lf0dg5ba8l654flvvrgxaq6y";
69+ version = "1.3.1";
70+ sha256 = "1b70jlyzy9xjvfywzi6i3l3sd4mkknxpni9akdi0phsfqysmy0wl";
7171 })
7272 (fetchNuGet {
7373 pname = "BuildBundlerMinifier";
@@ -89,11 +89,6 @@
8989 version = "15.0.5";
9090 sha256 = "01y8bhsnxghn3flz0pr11vj6wjrpmia8rpdrsp7kjfc1zmhqlgma";
9191 })
92− (fetchNuGet {
93− pname = "Dapper";
94− version = "2.0.123";
95− sha256 = "15hxrchfgiqnmgf8fqhrf4pb4c8l9igg5qnkw9yk3rkagcqfkk91";
96− })
9792 (fetchNuGet {
9893 pname = "DigitalRuby.ExchangeSharp";
9994 version = "0.6.3";
@@ -379,6 +374,11 @@
379374 version = "3.1.6";
380375 sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5";
381376 })
377+ (fetchNuGet {
378+ pname = "Microsoft.EntityFrameworkCore.Abstractions";
379+ version = "6.0.0";
380+ sha256 = "1aw13qjkpglc1mm3cv7s73s8fschy8lzdnigsp346b7mycpg7v92";
381+ })
382382 (fetchNuGet {
383383 pname = "Microsoft.EntityFrameworkCore.Abstractions";
384384 version = "6.0.1";
@@ -831,8 +831,8 @@
831831 })
832832 (fetchNuGet {
833833 pname = "NBitcoin";
834− version = "6.0.18";
835− sha256 = "1dr669h68cx6yfzr3n97yzzwbgnsv5g2008diyxngdjm55nh3q9s";
834+ version = "6.0.15";
835+ sha256 = "038dcl2k88w4cijws3pdnjflgy4lmqx70z0l7yqz355kmxjz8ain";
836836 })
837837 (fetchNuGet {
838838 pname = "NBitcoin";
@@ -856,8 +856,8 @@
856856 })
857857 (fetchNuGet {
858858 pname = "NBXplorer.Client";
859− version = "4.2.0";
860− sha256 = "1adbn5cbr42cjfvijaf1lffhcrcn0ws1arfi7mrg3kjshbzfgims";
859+ version = "4.1.3";
860+ sha256 = "1nh4jj7yg81825hr7cc99qlnfmdm6jibap81qqi8a968b61z4251";
861861 })
862862 (fetchNuGet {
863863 pname = "NETStandard.Library";
@@ -931,13 +931,13 @@
931931 })
932932 (fetchNuGet {
933933 pname = "Npgsql.EntityFrameworkCore.PostgreSQL";
934− version = "6.0.3";
935− sha256 = "0mgwm9psxvrq6vs2cy7m72wnknydgrs71hir2jqal5wbdh8g01np";
934+ version = "6.0.1";
935+ sha256 = "108sc62dqdb6ym2ck651kamcv6qf93cmaqzygfblmiglwzi6frnx";
936936 })
937937 (fetchNuGet {
938938 pname = "Npgsql";
939− version = "6.0.3";
940− sha256 = "1crzgi4dfbn8r381m9rvkma5xi2q7gqdzgxhc36hy3r0y63v1l8q";
939+ version = "6.0.1";
940+ sha256 = "150paiwqxp6zsy5v7vl2a9h3ikzfv3pd04whxifmamq0h1ghw0ld";
941941 })
942942 (fetchNuGet {
943943 pname = "NSec.Cryptography";
@@ -1086,8 +1086,8 @@
10861086 })
10871087 (fetchNuGet {
10881088 pname = "Selenium.WebDriver.ChromeDriver";
1089− version = "100.0.4896.6000";
1090− sha256 = "1pfdvxjy4xiw1j7787lf07w9nr0dmj589vf6p4aqmk2cfz8j35c6";
1089+ version = "98.0.4758.10200";
1090+ sha256 = "10mc50gm78zbxrwvxlygzmj2a29liiacv8haax0534c26vj9dwkl";
10911091 })
10921092 (fetchNuGet {
10931093 pname = "Selenium.WebDriver";
pkgs/applications/blockchains/chia-plotter/default.nix+6−13
@@ -9,13 +9,13 @@
99
1010stdenv.mkDerivation {
1111 pname = "chia-plotter";
12− version = "1.1.8";
12+ version = "1.1.7";
1313
1414 src = fetchFromGitHub {
1515 owner = "madMAx43v3r";
1616 repo = "chia-plotter";
17− rev = "9d7fd929919d1adde6404cb4718a665a81bcef6d";
18− sha256 = "sha256-TMAly+Qof2DHPRHqE1nZuHQaCeMo0jEd8MWy4OlXrcs=";
17+ rev = "18cad340858f0dbcc8dafd0bda1ce1af0fe58c65";
18+ sha256 = "sha256-lXjeqcjn3+LtnVYngdM1T3on7V7wez4oOAZ0RpKJXMM=";
1919 fetchSubmodules = true;
2020 };
2121
@@ -25,17 +25,10 @@ stdenv.mkDerivation {
2525 src = ./dont_fetch_dependencies.patch;
2626 pybind11_src = python3Packages.pybind11.src;
2727 relic_src = fetchFromGitHub {
28− owner = "Chia-Network";
28+ owner = "relic-toolkit";
2929 repo = "relic";
30− rev = "1d98e5abf3ca5b14fd729bd5bcced88ea70ecfd7";
31− hash = "sha256-IfTD8DvTEXeLUoKe4Ejafb+PEJW5DV/VXRYuutwGQHU=";
32− };
33− sodium_src = fetchFromGitHub {
34− owner = "AmineKhaldi";
35− repo = "libsodium-cmake";
36− rev = "f73a3fe1afdc4e37ac5fe0ddd401bf521f6bba65"; # pinned by upstream
37− sha256 = "sha256-lGz7o6DQVAuEc7yTp8bYS2kwjzHwGaNjugDi1ruRJOA=";
38− fetchSubmodules = true;
30+ rev = "1885ae3b681c423c72b65ce1fe70910142cf941c";
31+ hash = "sha256-tsSZTcssl8t7Nqdex4BesgQ+ACPgTdtHnJFvS9josN0=";
3932 };
4033 })
4134 ];
pkgs/applications/blockchains/chia-plotter/dont_fetch_dependencies.patch+11−24
@@ -11,43 +11,30 @@ index 255e3bb..5f99c3a 100644
1111+ SOURCE_DIR @pybind11_src@
1212 )
1313 FetchContent_MakeAvailable(pybind11 relic)
14−
15−diff --git a/CMakeLists.txt b/CMakeLists.txt
16−index 6922167..23d8da6 100644
17−--- a/lib/bls-signatures/CMakeLists.txt
18−+++ b/lib/bls-signatures/CMakeLists.txt
19−@@ -31,29 +31,18 @@ set(CMAKE_MODULE_PATH
20− include(FetchContent)
2114
22− FetchContent_Declare(Sodium
23−- GIT_REPOSITORY https://github.com/AmineKhaldi/libsodium-cmake.git
24−- # Latest commit at the moment this was added here
25−- # Anchored to libsodium v1.0.18
26−- GIT_TAG f73a3fe1afdc4e37ac5fe0ddd401bf521f6bba65
27−+ URL @sodium_src@
28− )
29− set(SODIUM_PCH "on" CACHE STRING "")
30− set(SODIUM_DISABLE_TESTS "on" CACHE STRING "")
31− set(SODIUM_CHIA_MINIMAL "on" CACHE STRING "")
32− FetchContent_MakeAvailable(Sodium)
15+diff --git a/lib/bls-signatures/src/CMakeLists.txt b/lib/bls-signatures/src/CMakeLists.txt
16+index b762b5d..e06073b 100644
17+--- a/lib/bls-signatures/src/CMakeLists.txt
18++++ b/lib/bls-signatures/src/CMakeLists.txt
19+@@ -4,18 +4,11 @@ set (CMAKE_CXX_STANDARD 17)
20+ # CMake 3.14+
21+ include(FetchContent)
3322
3423-if (DEFINED ENV{RELIC_MAIN})
3524- set(RELIC_GIT_TAG "origin/main")
3625-else ()
37−- # This is currently anchored to upstream aecdcae7956f542fbee2392c1f0feb0a8ac41dc5
38−- set(RELIC_GIT_TAG "1d98e5abf3ca5b14fd729bd5bcced88ea70ecfd7")
26+- set(RELIC_GIT_TAG "1885ae3b681c423c72b65ce1fe70910142cf941c")
3927-endif ()
4028-
4129 message(STATUS "Relic will be built from: ${RELIC_GIT_TAG}")
4230
4331 FetchContent_Declare(
4432 relic
45−- GIT_REPOSITORY https://github.com/Chia-Network/relic.git
46−- GIT_TAG ${RELIC_GIT_TAG}
33+- GIT_REPOSITORY https://github.com/relic-toolkit/relic.git
34+- GIT_TAG ${RELIC_GIT_TAG}
4735+ SOURCE_DIR @relic_src@
4836 )
49−
50− # Relic related options
37+ FetchContent_MakeAvailable(relic)
5138
5239diff --git a/CMakeLists.txt b/CMakeLists.txt
5340index 970ec74..948441a 100644
pkgs/applications/blockchains/clightning/default.nix+2−2
@@ -21,11 +21,11 @@ let
2121in
2222stdenv.mkDerivation rec {
2323 pname = "clightning";
24− version = "0.11.0.1";
24+ version = "0.10.2";
2525
2626 src = fetchurl {
2727 url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
28− sha256 = "e2ad6eead19a0cd8869e291c27d318cf553bb015339c1f0e8d8b30e7bc0910d8";
28+ sha256 = "3c9dcb686217b2efe0e988e90b95777c4591e3335e259e01a94af87e0bf01809";
2929 };
3030
3131 # when building on darwin we need dawin.cctools to provide the correct libtool
pkgs/applications/blockchains/electrs/default.nix+3−3
@@ -12,16 +12,16 @@ let
1212in
1313rustPlatform.buildRustPackage rec {
1414 pname = "electrs";
15− version = "0.9.7";
15+ version = "0.9.6";
1616
1717 src = fetchFromGitHub {
1818 owner = "romanz";
1919 repo = pname;
2020 rev = "v${version}";
21− hash = "sha256-hdXc64gj7QtCnTq3f5mpQDEKLM6qaDBLkQE07xxNaDE=";
21+ hash = "sha256-BI7hxlpg2sggD1ag73n+tRre+Ja2ZFhDPzy1DV8aEHw=";
2222 };
2323
24− cargoHash = "sha256-xMATO+H3bGkM/tLRimmLGYtrOAX8hzkw5Hb0c6iVAXY=";
24+ cargoHash = "sha256-Oy2mOulSB2a9LaT47G+BzjidcjPjHeaoesQ7g6M8M1Q=";
2525
2626 # needed for librocksdb-sys
2727 nativeBuildInputs = [ llvmPackages.clang ];
pkgs/applications/blockchains/ledger-live-desktop/default.nix+2−2
@@ -2,12 +2,12 @@
22
33let
44 pname = "ledger-live-desktop";
5− version = "2.40.4";
5+ version = "2.40.2";
66 name = "${pname}-${version}";
77
88 src = fetchurl {
99 url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
10− hash = "sha256-ktmGXEWoCrhx9hGau2VkQi0GMa53EqHV1wGtUk6kicc=";
10+ hash = "sha256-2L1iVPLCCIQ6qBqkg+GmiqMmknHmdDLUrysN8vcW2YQ=";
1111 };
1212
1313 appimageContents = appimageTools.extractType2 {
pkgs/applications/blockchains/lightning-loop/default.nix+3−3
@@ -5,16 +5,16 @@
55
66buildGoModule rec {
77 pname = "lightning-loop";
8− version = "0.18.0-beta";
8+ version = "0.17.0-beta";
99
1010 src = fetchFromGitHub {
1111 owner = "lightninglabs";
1212 repo = "loop";
1313 rev = "v${version}";
14− sha256 = "1kg5nlvb4lb3cjn84wcylhq0l73d2n6rg4n1srnxmgs96v41y78f";
14+ sha256 = "0hjawagn1dfgj67i52bvf3phvm9f9708z3jqs6cvyz0w7vp107py";
1515 };
1616
17− vendorSha256 = "0q3wbjfaqdj29sjlhx6fhc0p4d12aa31s6ia36jalcvf659ybb0l";
17+ vendorSha256 = "1fpc73hwdn3baz5ykrykvqdr5861gj9p6liy8qll5525kdv560f6";
1818
1919 subPackages = [ "cmd/loop" "cmd/loopd" ];
2020
pkgs/applications/blockchains/lnd/default.nix+2−2
@@ -6,13 +6,13 @@
66
77buildGoModule rec {
88 pname = "lnd";
9− version = "0.14.3-beta";
9+ version = "0.14.2-beta";
1010
1111 src = fetchFromGitHub {
1212 owner = "lightningnetwork";
1313 repo = "lnd";
1414 rev = "v${version}";
15− sha256 = "sha256-ZTvGFmjhQBIWqMGatMAlX59uVyl1oUKo7L5jiz571Gc";
15+ sha256 = "sha256-JOKitxxWcTlGlxYR1XpySZlI2fT9jgBrOxNUwT/sqdQ=";
1616 };
1717
1818 vendorSha256 = "sha256-shDmJcEyobY7Ih1MHMEY2GQnzAffsH/y4J1bme/bT7I=";
pkgs/applications/blockchains/monero-cli/default.nix+2−2
@@ -9,13 +9,13 @@
99
1010stdenv.mkDerivation rec {
1111 pname = "monero-cli";
12− version = "0.17.3.2";
12+ version = "0.17.3.0";
1313
1414 src = fetchFromGitHub {
1515 owner = "monero-project";
1616 repo = "monero";
1717 rev = "v${version}";
18− sha256 = "19sgcbli7fc1l6ms7ma6hcz1mmpbnd296lc8a19rl410acpv45zy";
18+ sha256 = "1spsf7m3x4psp9s7mivr6x4886jnbq4i8ll2dl8bv5bsdhcd3pjm";
1919 fetchSubmodules = true;
2020 };
2121
pkgs/applications/blockchains/monero-gui/default.nix+2−2
@@ -14,13 +14,13 @@
1414
1515stdenv.mkDerivation rec {
1616 pname = "monero-gui";
17− version = "0.17.3.2";
17+ version = "0.17.3.1";
1818
1919 src = fetchFromGitHub {
2020 owner = "monero-project";
2121 repo = "monero-gui";
2222 rev = "v${version}";
23− sha256 = "10gincmgc0qpsgm94m1fqfy9j8jn9g1gjk12lcqnf77kvcnz37hq";
23+ sha256 = "sha256-RrchaqFmL4W9F8DhZfvxm7mHMkx/OX8K9e8uNFXWubo=";
2424 };
2525
2626 nativeBuildInputs = [
pkgs/applications/blockchains/namecoin/default.nix+6−5
@@ -1,14 +1,15 @@
11{ lib, stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkg-config, qt4, protobuf, qrencode, hexdump
22, withGui }:
33
4+with lib;
45stdenv.mkDerivation rec {
5− pname = "namecoin" + lib.optionalString (!withGui) "d";
6− version = "22.0";
6+ pname = "namecoin" + optionalString (!withGui) "d";
7+ version = "nc22.0";
78
89 src = fetchFromGitHub {
910 owner = "namecoin";
1011 repo = "namecoin-core";
11− rev = "nc${version}";
12+ rev = version;
1213 sha256 = "sha256-Z3CLDe0c4IpFPPTie8yoh0kcuvGmiegSgl4ITNSDkgY=";
1314 };
1415
@@ -25,7 +26,7 @@ stdenv.mkDerivation rec {
2526 db4
2627 miniupnpc
2728 eject
28− ] ++ lib.optionals withGui [
29+ ] ++ optionals withGui [
2930 qt4
3031 protobuf
3132 qrencode
@@ -37,7 +38,7 @@ stdenv.mkDerivation rec {
3738 "--with-boost-libdir=${boost.out}/lib"
3839 ];
3940
40− meta = with lib; {
41+ meta = {
4142 description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency";
4243 homepage = "https://namecoin.org";
4344 license = licenses.mit;
pkgs/applications/blockchains/nbxplorer/default.nix+2−2
@@ -2,13 +2,13 @@
22
33buildDotnetModule rec {
44 pname = "nbxplorer";
5− version = "2.3.20";
5+ version = "2.2.20";
66
77 src = fetchFromGitHub {
88 owner = "dgarage";
99 repo = "NBXplorer";
1010 rev = "v${version}";
11− sha256 = "sha256-cAko5s1bFSI7HOcXg/tZtdMMe0S9zkRBeZ6bispxgwc=";
11+ sha256 = "sha256-C3REnfecNwf3dtk6aLYAEsedHRlIrQZAokXtf6KI8U0=";
1212 };
1313
1414 projectFile = "NBXplorer/NBXplorer.csproj";
pkgs/applications/blockchains/nbxplorer/deps.nix−15
@@ -1,9 +1,4 @@
11{ fetchNuGet }: [
2− (fetchNuGet {
3− pname = "Dapper";
4− version = "2.0.123";
5− sha256 = "15hxrchfgiqnmgf8fqhrf4pb4c8l9igg5qnkw9yk3rkagcqfkk91";
6− })
72 (fetchNuGet {
83 pname = "DBTrie";
94 version = "1.0.39";
@@ -254,11 +249,6 @@
254249 version = "1.0.0.18";
255250 sha256 = "0lgssxafv6cqlw21fb79fm0fcln0clgsk6zadcwrnjv9vampfw7b";
256251 })
257− (fetchNuGet {
258− pname = "Npgsql";
259− version = "6.0.3";
260− sha256 = "1crzgi4dfbn8r381m9rvkma5xi2q7gqdzgxhc36hy3r0y63v1l8q";
261− })
262252 (fetchNuGet {
263253 pname = "NuGet.Frameworks";
264254 version = "5.0.0";
@@ -764,11 +754,6 @@
764754 version = "4.5.0";
765755 sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43";
766756 })
767− (fetchNuGet {
768− pname = "System.Runtime.CompilerServices.Unsafe";
769− version = "6.0.0";
770− sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc";
771− })
772757 (fetchNuGet {
773758 pname = "System.Runtime.Extensions";
774759 version = "4.1.0";
pkgs/applications/blockchains/nearcore/default.nixdeleted−42
@@ -1,42 +0,0 @@
1−{ rustPlatform, lib, fetchFromGitHub
2−, zlib, elfutils, openssl
3−, cmake, python3, pkg-config, protobuf, perl, llvmPackages
4−}:
5−rustPlatform.buildRustPackage rec {
6− #https://github.com/near/nearcore
7− pname = "nearcore";
8− version = "1.25.0";
9− src = fetchFromGitHub {
10− owner = "near";
11− repo = "nearcore";
12− # there is also a branch for this version number, so we need to be explicit
13− rev = "refs/tags/${version}";
14− sha256 = "sha256-7hiBqJLGIf+kNKJvMQ7KtGZm/SWLY3pT7YDlwbm3HDM=";
15− };
16−
17− cargoSha256 = "sha256-EGv4CibSHL9oTAdWK7d/SOzZWPcEB16hTWlWHjKU4wc=";
18−
19− # don't build SDK samples that require wasm-enabled rust
20− cargoBuildFlags = [ "-p" "neard" ];
21− doCheck = false; # needs network
22−
23− buildInputs = [ zlib elfutils openssl ];
24− nativeBuildInputs = [
25− cmake
26− python3
27− pkg-config
28− protobuf
29− perl
30− ];
31−
32− LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
33− BINDGEN_EXTRA_CLANG_ARGS = "-isystem ${llvmPackages.libclang.lib}/lib/clang/${lib.getVersion llvmPackages.clang}/include";
34−
35− meta = with lib; {
36− description = "Reference client for NEAR Protocol";
37− homepage = "https://github.com/near/nearcore";
38− license = licenses.mit;
39− maintainers = with maintainers; [ mic92 ];
40− platforms = platforms.unix;
41− };
42−}
pkgs/applications/blockchains/openethereum/default.nix+3−3
@@ -12,16 +12,16 @@
1212
1313rustPlatform.buildRustPackage rec {
1414 pname = "openethereum";
15− version = "3.3.5";
15+ version = "3.2.6";
1616
1717 src = fetchFromGitHub {
1818 owner = "openethereum";
1919 repo = "openethereum";
2020 rev = "v${version}";
21− sha256 = "sha256-PpRRoufuZ9fXbLonMAo6qaA/jtJZXW98uM0BEXdJ2oU=";
21+ sha256 = "0lxps3cyg8dzb9qr1kg91s9jc3mnm6hxybwcbhva38pcq4yc40xc";
2222 };
2323
24− cargoSha256 = "sha256-xXUNXQvVq6XqW/hmCfJ2/mHKkZu0amRZ77vX+Jib0iM=";
24+ cargoSha256 = "08yrpls3szmw6vy2c4d6b1k907ga0809ylvyx0zb6f8mp8z7ahl2";
2525
2626 nativeBuildInputs = [ cmake pkg-config ];
2727
pkgs/applications/blockchains/solana/default.nix+4−9
@@ -10,23 +10,19 @@
1010, zlib
1111, protobuf
1212}:
13−let
14− pinData = lib.importJSON ./pin.json;
15− version = pinData.version;
16− sha256 = pinData.sha256;
17− cargoSha256 = pinData.cargoSha256;
18−in
1913rustPlatform.buildRustPackage rec {
2014 pname = "solana-testnet-cli";
21− inherit version cargoSha256;
15+ version = "1.9.2";
2216
2317 src = fetchFromGitHub {
2418 owner = "solana-labs";
2519 repo = "solana";
2620 rev = "v${version}";
27− inherit sha256;
21+ sha256 = "sha256-wrv35vBohLztMZPb6gfZdCaXcjj/Y7vnQqINaI6dBM4=";
2822 };
2923
24+ cargoSha256 = "sha256-A5uVa+cRmrkVyw7MFH4QAr0VIFi18wcc2VPFvQyT9EM=";
25+
3026 buildAndTestSubdir = "cli";
3127
3228 nativeBuildInputs = lib.optionals stdenv.isLinux [ protobuf pkg-config ];
@@ -57,5 +53,4 @@ rustPlatform.buildRustPackage rec {
5753 maintainers = with maintainers; [ happysalada ];
5854 platforms = platforms.unix;
5955 };
60− passthru.updateScript = ./update.sh;
6156}
pkgs/applications/blockchains/solana/pin.jsondeleted−5
@@ -1,5 +0,0 @@
1−{
2− "version": "1.10.9",
3− "sha256": "sha256-y7+ogMJ5E9E/+ZaTCHWOQWG7iR+BGuVqvlNUDT++Ghc=",
4− "cargoSha256": "sha256-7EULmmztt+INvSdluvvX5xbE2hWKAmHiW0MEYIPNPw4="
5−}
pkgs/applications/blockchains/solana/update.shdeleted−33
@@ -1,33 +0,0 @@
1−#!/usr/bin/env nix-shell
2−#! nix-shell -i oil -p jq sd nix-prefetch-github ripgrep
3−
4−# TODO set to `verbose` or `extdebug` once implemented in oil
5−shopt --set xtrace
6−# we need failures inside of command subs to get the correct cargoSha256
7−shopt --unset inherit_errexit
8−
9−const directory = $(dirname $0 | xargs realpath)
10−const owner = "solana-labs"
11−const repo = "solana"
12−const latest_rev = $(curl -q https://api.github.com/repos/${owner}/${repo}/releases/latest | \
13− jq -r '.tag_name')
14−const latest_version = $(echo $latest_rev | sd 'v' '')
15−const current_version = $(jq -r '.version' $directory/pin.json)
16−if ("$latest_version" === "$current_version") {
17− echo "solana is already up-to-date"
18− return 0
19−} else {
20− const tarball_meta = $(nix-prefetch-github $owner $repo --rev "$latest_rev")
21− const tarball_hash = "sha256-$(echo $tarball_meta | jq -r '.sha256')"
22−
23− jq ".version = \"$latest_version\" | \
24− .\"sha256\" = \"$tarball_hash\" | \
25− .\"cargoSha256\" = \"\"" $directory/pin.json | sponge $directory/pin.json
26−
27− const new_cargo_sha256 = $(nix-build -A solana-testnet 2>&1 | \
28− tail -n 2 | \
29− head -n 1 | \
30− sd '\s+got:\s+' '')
31−
32− jq ".cargoSha256 = \"$new_cargo_sha256\"" $directory/pin.json | sponge $directory/pin.json
33−}
pkgs/applications/blockchains/wasabibackend/default.nix+1−1
@@ -32,7 +32,7 @@ buildDotnetModule rec {
3232
3333 preConfigure = ''
3434 makeWrapperArgs+=(
35− --chdir "$out/lib/${pname}"
35+ --run "cd $out/lib/${pname}"
3636 )
3737 '';
3838
pkgs/applications/blockchains/zcash/default.nix+6−6
@@ -1,24 +1,24 @@
11{ rust, rustPlatform, stdenv, lib, fetchFromGitHub, autoreconfHook, makeWrapper
2−, cargo, pkg-config, curl, coreutils, boost177, db62, hexdump, libsodium
2+, cargo, pkg-config, curl, coreutils, boost175, db62, hexdump, libsodium
33, libevent, utf8cpp, util-linux, withDaemon ? true, withMining ? true
44, withUtils ? true, withWallet ? true, withZmq ? true, zeromq
55}:
66
77rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
88 pname = "zcash";
9− version = "4.6.0-2";
9+ version = "4.6.0-1";
1010
1111 src = fetchFromGitHub {
1212 owner = "zcash";
1313 repo = "zcash";
1414 rev = "v${version}";
15− sha256 = "sha256-RvUa8CKPBFfsqzrJkPHePZMqpCfyVafrUbftMdTviHA=";
15+ sha256 = "sha256-YJ5ufo+LYbOTr9SyiEzzp1pcSx6+cHSvDLBOIcx9X+4=";
1616 };
1717
18− cargoSha256 = "sha256-qWimataBZ/rLDOLgetNfFAzi/psXcJV54b3WGm9k+b4=";
18+ cargoSha256 = "sha256-m/SBHv3BNYKkSXxHnCdVng3blbHrTc/HxX/nEIa1DnM=";
1919
2020 nativeBuildInputs = [ autoreconfHook cargo hexdump makeWrapper pkg-config ];
21− buildInputs = [ boost177 libevent libsodium utf8cpp ]
21+ buildInputs = [ boost175 libevent libsodium utf8cpp ]
2222 ++ lib.optional withWallet db62
2323 ++ lib.optional withZmq zeromq;
2424
@@ -37,7 +37,7 @@ rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
3737
3838 configureFlags = [
3939 "--disable-tests"
40− "--with-boost-libdir=${lib.getLib boost177}/lib"
40+ "--with-boost-libdir=${lib.getLib boost175}/lib"
4141 "CXXFLAGS=-I${lib.getDev utf8cpp}/include/utf8cpp"
4242 "RUST_TARGET=${rust.toRustTargetSpec stdenv.hostPlatform}"
4343 ] ++ lib.optional (!withWallet) "--disable-wallet"
pkgs/applications/editors/android-studio/common.nix+3−5
@@ -52,7 +52,6 @@
5252, xkeyboard_config
5353, zlib
5454, makeDesktopItem
55−, tiling_wm # if we are using a tiling wm, need to set _JAVA_AWT_WM_NONREPARENTING in wrapper
5655}:
5756
5857let
@@ -81,7 +80,6 @@ let
8180 --set-default JAVA_HOME "$out/jre" \
8281 --set ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \
8382 --set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb" \
84− ${lib.optionalString tiling_wm "--set _JAVA_AWT_WM_NONREPARENTING 1"} \
8583 --set FONTCONFIG_FILE ${fontsConf} \
8684 --prefix PATH : "${lib.makeBinPath [
8785
@@ -218,9 +216,9 @@ in runCommand
218216 # source-code itself).
219217 platforms = [ "x86_64-linux" ];
220218 maintainers = with maintainers; rec {
221− stable = [ ];
222− beta = [ ];
223− canary = [ ];
219+ stable = [ fabianhjr ];
220+ beta = [ fabianhjr ];
221+ canary = [ fabianhjr ];
224222 dev = canary;
225223 }."${channel}";
226224 };
pkgs/applications/editors/android-studio/default.nix+7−8
@@ -1,4 +1,4 @@
1−{ callPackage, makeFontsConf, gnome2, buildFHSUserEnv, tiling_wm ? false }:
1+{ callPackage, makeFontsConf, gnome2, buildFHSUserEnv }:
22
33let
44 mkStudio = opts: callPackage (import ./common.nix opts) {
@@ -7,19 +7,18 @@ let
77 };
88 inherit (gnome2) GConf gnome_vfs;
99 inherit buildFHSUserEnv;
10− inherit tiling_wm;
1110 };
1211 stableVersion = {
13− version = "2021.1.1.23"; # "Android Studio Bumblebee (2021.1.1 Patch 3)"
14− sha256Hash = "1kxb19qf7bs5lyfgr8vamakp1nf2wlxlwwni1kihza67ib6hcxdk";
12+ version = "2021.1.1.21"; # "Android Studio Bumblebee (2021.1.1 Patch 1)"
13+ sha256Hash = "PeMJIILfaunTlpR4EV76qQlTlZDcWoKes61qe9W9oqQ=";
1514 };
1615 betaVersion = {
17− version = "2021.2.1.11"; # "Android Studio Chipmunk (2021.2.1) Beta 4"
18− sha256Hash = "0in8x6v957y9hsnz5ak845pdpvgvnvlm0s6r9y8f27zkm947vbjd";
16+ version = "2021.2.1.8"; # "Android Studio Chipmunk (2021.2.1) Beta 1"
17+ sha256Hash = "bPfs4kw7czG9CbEgrzn0bQXdT03jyqPVqtaIuVBFSmc=";
1918 };
2019 latestVersion = { # canary & dev
21− version = "2021.3.1.7"; # "Android Studio Dolphin (2021.3.1) Canary 7"
22− sha256Hash = "02jwy3q2ccs7l3snm8w40znzk54v2h1sljdr3d0yh7sy0qyn32k1";
20+ version = "2021.3.1.1"; # "Android Studio Dolphin (2021.3.1) Canary 1"
21+ sha256Hash = "W3pNQBM7WdDScQo5b8q5Va5NTgl73uZu0ks/zDMb4aA=";
2322 };
2423in {
2524 # Attributes are named by their corresponding release channels
pkgs/applications/editors/bluej/default.nix+8−35
@@ -1,9 +1,8 @@
1−{ lib, stdenv, fetchurl, jdk, glib, wrapGAppsHook }:
1+{ lib, stdenv, fetchurl, makeWrapper, jdk }:
22
33stdenv.mkDerivation rec {
44 pname = "bluej";
55 version = "5.0.3";
6−
76 src = fetchurl {
87 # We use the deb here. First instinct might be to go for the "generic" JAR
98 # download, but that is actually a graphical installer that is much harder
@@ -12,44 +11,18 @@ stdenv.mkDerivation rec {
1211 sha256 = "sha256-OarqmptxZc7xEEYeoCVqHXkAvfzfSYx5nUp/iWPyoqw=";
1312 };
1413
15− nativeBuildInputs = [ wrapGAppsHook ];
16− buildInputs = [ glib ];
14+ nativeBuildInputs = [ makeWrapper ];
1715
18− sourceRoot = ".";
19− preUnpack = ''
20− unpackCmdHooks+=(_tryDebData)
21− _tryDebData() {
22− if ! [[ "$1" =~ \.deb$ ]]; then return 1; fi
23− ar xf "$1"
24− if ! [[ -e data.tar.xz ]]; then return 1; fi
25− unpackFile data.tar.xz
26− }
16+ unpackPhase = ''
17+ ar xf $src
18+ tar xf data.tar.xz
2719 '';
2820
2921 installPhase = ''
30− runHook preInstall
31−
32− if [ -n "$prefix" ]; then
33− mkdir -p "$prefix"
34− fi
35−
36− mkdir -p "$out"
37−
38− if shopt -q dotglob; then dotglobOpt=$?; else dotglobOpt=$?; fi
39− shopt -s dotglob
40− for file in usr/*; do
41− cp -R "$file" "$out"
42− done
43− if (( !dotglobOpt )); then shopt -u dotglob; fi
44−
45− runHook postInstall
46− '';
47−
48− dontWrapGApps = true;
22+ mkdir -p $out
23+ cp -r usr/* $out
4924
50− preFixup = ''
5125 makeWrapper ${jdk}/bin/java $out/bin/bluej \
52− "''${gappsWrapperArgs[@]}" \
5326 --add-flags "-Djavafx.embed.singleThread=true -Dawt.useSystemAAFontSettings=on -Xmx512M -cp \"$out/share/bluej/bluej.jar\" bluej.Boot"
5427 '';
5528
@@ -57,7 +30,7 @@ stdenv.mkDerivation rec {
5730 description = "A simple integrated development environment for Java";
5831 homepage = "https://www.bluej.org/";
5932 license = licenses.gpl2ClasspathPlus;
60− maintainers = with maintainers; [ chvp ];
33+ maintainers = [ maintainers.chvp ];
6134 platforms = platforms.unix;
6235 };
6336}
pkgs/applications/editors/cudatext/default.nix+2−2
@@ -38,13 +38,13 @@ let
3838in
3939stdenv.mkDerivation rec {
4040 pname = "cudatext";
41− version = "1.163.0";
41+ version = "1.160.0";
4242
4343 src = fetchFromGitHub {
4444 owner = "Alexey-T";
4545 repo = "CudaText";
4646 rev = version;
47− sha256 = "sha256-4jGLyAE202GAjaypubKGW1edyKqOti/yTwstC/R94iE=";
47+ sha256 = "sha256-42V6RFa+mAXyaUuKeDQa9Voi1MjnzcVl+cOA65VabxM=";
4848 };
4949
5050 postPatch = ''
pkgs/applications/editors/cudatext/deps.json+12−12
@@ -1,23 +1,23 @@
11{
22 "EncConv": {
33 "owner": "Alexey-T",
4− "rev": "2022.04.18",
5− "sha256": "sha256-UV07a9qNzd0JQWCq/eD0K9fA7kxAKj5OP7dOpECo8xw="
4+ "rev": "2022.03.02",
5+ "sha256": "sha256-fBN6Ix5CqhzMbNrWGn6nw6+JRDmEfqe6o8JGHERkiPE="
66 },
77 "ATBinHex-Lazarus": {
88 "owner": "Alexey-T",
9− "rev": "2022.04.16",
10− "sha256": "sha256-7ye73KSpoPvvxBNwBC3uloufFE+448RDyNScumk1ViE="
9+ "rev": "2021.11.17",
10+ "sha256": "sha256-wdYH0sISFNx42zt07gLn9ANxcyrq3WrbRhWfTFgPQWw="
1111 },
1212 "ATFlatControls": {
1313 "owner": "Alexey-T",
14− "rev": "2022.04.18",
15− "sha256": "sha256-Bp/pkbTPLiVaDSstzTaNjKb+msPw8Tuny75n/aYBpUc="
14+ "rev": "2022.03.17",
15+ "sha256": "sha256-zpirFZcqIT53tZhgxQGdwVB6pA98SQLr1o3f+Lhq2QY="
1616 },
1717 "ATSynEdit": {
1818 "owner": "Alexey-T",
19− "rev": "2022.04.26",
20− "sha256": "sha256-aItWkjnFqxeyEywELEBkuvMH1zfI4jJFL10CexSktxU="
19+ "rev": "2022.04.06",
20+ "sha256": "sha256-EnPOAl1qsdcYzmUgT5rSYqY/xOLSfDcMNCXIG8LC4H0="
2121 },
2222 "ATSynEdit_Cmp": {
2323 "owner": "Alexey-T",
@@ -26,13 +26,13 @@
2626 },
2727 "EControl": {
2828 "owner": "Alexey-T",
29− "rev": "2022.04.21",
30− "sha256": "sha256-le6ulGFUNjeipYQKzVFezFb9u/0IcQcu5BMxFaIZdyw="
29+ "rev": "2022.03.28",
30+ "sha256": "sha256-jh3lqisiPNMxCapP6O5oJdUL3PLQ3JyomtgWix+bML0="
3131 },
3232 "ATSynEdit_Ex": {
3333 "owner": "Alexey-T",
34− "rev": "2022.04.11",
35− "sha256": "sha256-wzE6lNhrXsBOP+Zx+qAcj6Hhf87qqDaqKf9up7I3ZUo="
34+ "rev": "2022.03.28",
35+ "sha256": "sha256-TpAaL7/bhnrQgAq1mUTdEWXecSmznWy/iAw+TMMrQGo="
3636 },
3737 "Python-for-Lazarus": {
3838 "owner": "Alexey-T",
pkgs/applications/editors/emacs/27.nixnew file+16
@@ -0,0 +1,16 @@
1+import ./generic.nix (rec {
2+ version = "27.2";
3+ sha256 = "sha256-tKfMTnjmPzeGJOCRkhW5EK9bsqCvyBn60pgnLp9Awbk=";
4+ patches = fetchpatch: [
5+ (fetchpatch {
6+ name = "fix-aarch64-darwin-triplet.patch";
7+ url = "https://git.savannah.gnu.org/cgit/emacs.git/patch/?id=a88f63500e475f842e5fbdd9abba4ce122cdb082";
8+ sha256 = "sha256-RF9b5PojFUAjh2TDUW4+HaWveV30Spy1iAXhaWf1ZVg=";
9+ })
10+ # glibc 2.34 compat
11+ (fetchpatch {
12+ url = "https://src.fedoraproject.org/rpms/emacs/raw/181aafcdb7ee2fded9fce4cfc448f27edccc927f/f/emacs-glibc-2.34.patch";
13+ sha256 = "sha256-2o3C/jhZPl2OW/LmVPt/fhdwbS9NOdF9lVEF1Kn9aEk=";
14+ })
15+ ];
16+})
pkgs/applications/editors/emacs/28.nixdeleted−5
@@ -1,5 +0,0 @@
1−import ./generic.nix (rec {
2− version = "28.1";
3− sha256 = "sha256-D33wnlxhx0LyG9WZaQDj2II3tG0HcJdZTC4dSA3lrgY=";
4− patches = _: [ ];
5−})
pkgs/applications/editors/emacs/at-fdcwd.patchnew file+15
@@ -0,0 +1,15 @@
1+diff --git a/lib/careadlinkat.h b/lib/careadlinkat.h
2+index 84ede3e..8e8f42e 100644
3+--- a/lib/careadlinkat.h
4++++ b/lib/careadlinkat.h
5+@@ -23,6 +23,10 @@
6+ #include <fcntl.h>
7+ #include <unistd.h>
8+
9++#ifndef AT_FDCWD
10++#define AT_FDCWD -2
11++#endif
12++
13+ struct allocator;
14+
15+ /* Assuming the current directory is FD, get the symbolic link value
pkgs/applications/editors/emacs/elisp-packages/cedet/default.nixnew file+52
@@ -0,0 +1,52 @@
1+{ lib, fetchurl, stdenv, emacs, python }:
2+
3+stdenv.mkDerivation rec {
4+ pname = "cedet";
5+ version = "1.1";
6+
7+ src = fetchurl {
8+ url = "mirror://sourceforge/cedet/cedet-${version}.tar.gz";
9+ sha256 = "0p2bwlpwwa019axvgj09xkxbr53j0pq23d46s4la9jfhl47nbh22";
10+ };
11+
12+ buildInputs = [ emacs python ];
13+
14+ doCheck = true;
15+ checkPhase = "make utest";
16+
17+ installPhase = ''
18+ mkdir -p "$out/share/emacs/site-lisp"
19+ cp -v */*.el */*/*.el */*.elc */*/*.elc "$out/share/emacs/site-lisp"
20+ chmod a-x "$out/share/emacs/site-lisp/"*
21+
22+ mkdir -p "$out/share/info"
23+ cp -v */*.info* */*/*.info* "$out/share/info"
24+ '';
25+
26+ meta = {
27+ description = "CEDET, a Collection of Emacs Development Environment Tools";
28+
29+ longDescription = ''
30+ CEDET is a collection of tools written with the end goal of
31+ creating an advanced development environment in Emacs.
32+
33+ Emacs already is a great environment for writing software, but
34+ there are additional areas that need improvement. Many new
35+ ideas for integrated environments have been developed in newer
36+ products, such as JBuilder, Eclipse, or KDevelop. CEDET is a
37+ project which brings together several different tools needed to
38+ implement advanced features.
39+
40+ CEDET includes EIEIO (Enhanced Implementation of Emacs
41+ Interpreted Objects), Semantic, SRecode, Speedbar, EDE (Emacs
42+ Development Environment), and COGRE (COnnected GRaph Editor).
43+ '';
44+
45+ license = lib.licenses.gpl2Plus;
46+
47+ homepage = "http://cedet.sourceforge.net/";
48+
49+ # Fails with `semantic-idle.el:42:1:Error: Invalid function: class-p`
50+ broken = true;
51+ };
52+}
pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix+45−124
@@ -234,10 +234,10 @@
234234 elpaBuild {
235235 pname = "auctex";
236236 ename = "auctex";
237− version = "13.1.2";
237+ version = "13.1.1";
238238 src = fetchurl {
239− url = "https://elpa.gnu.org/packages/auctex-13.1.2.tar";
240− sha256 = "0j79y7iz0g3i36w5l91l2dljs8b4sx42f7q25z2963mvhfvrbp10";
239+ url = "https://elpa.gnu.org/packages/auctex-13.1.1.tar";
240+ sha256 = "193sqq2wiq3lg99m8hifl9rjxdazpy638r99sqvmxmkfm98cr34r";
241241 };
242242 packageRequires = [ emacs ];
243243 meta = {
@@ -309,10 +309,10 @@
309309 elpaBuild {
310310 pname = "bbdb";
311311 ename = "bbdb";
312− version = "3.2.2.1";
312+ version = "3.2.1";
313313 src = fetchurl {
314− url = "https://elpa.gnu.org/packages/bbdb-3.2.2.1.tar";
315− sha256 = "060nd6vhwwh56jc1mvmyj6mn6kx7zgmbhrkfv9sqdx7h96bcrsbh";
314+ url = "https://elpa.gnu.org/packages/bbdb-3.2.1.tar";
315+ sha256 = "01vsnifs47krq1srgdkk9agbv3p2fykl9nydr4nrfjxbqpnyh3ij";
316316 };
317317 packageRequires = [ cl-lib emacs ];
318318 meta = {
@@ -384,10 +384,10 @@
384384 elpaBuild {
385385 pname = "boxy";
386386 ename = "boxy";
387− version = "1.0.5";
387+ version = "1.0.4";
388388 src = fetchurl {
389− url = "https://elpa.gnu.org/packages/boxy-1.0.5.tar";
390− sha256 = "0g608nhg160p9gflw52h3247x35r0g6bl89yq35jbsc7fnw6m5ry";
389+ url = "https://elpa.gnu.org/packages/boxy-1.0.4.tar";
390+ sha256 = "0cwzjyj8yjg13b63va6pnj01m6kc5g3zx69c9w2ysl2wk24zn6dz";
391391 };
392392 packageRequires = [ emacs ];
393393 meta = {
@@ -654,21 +654,6 @@
654654 license = lib.licenses.free;
655655 };
656656 }) {};
657− comint-mime = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
658− elpaBuild {
659− pname = "comint-mime";
660− ename = "comint-mime";
661− version = "0.1";
662− src = fetchurl {
663− url = "https://elpa.gnu.org/packages/comint-mime-0.1.tar";
664− sha256 = "1ak0ylqdslsb6a64dkpvappdbqnl1i8lc17jla9pqqs7r16sh3n0";
665− };
666− packageRequires = [ emacs ];
667− meta = {
668− homepage = "https://elpa.gnu.org/packages/comint-mime.html";
669− license = lib.licenses.free;
670− };
671− }) {};
672657 compact-docstrings = callPackage ({ elpaBuild, fetchurl, lib }:
673658 elpaBuild {
674659 pname = "compact-docstrings";
@@ -752,21 +737,6 @@
752737 license = lib.licenses.free;
753738 };
754739 }) {};
755− compat = callPackage ({ elpaBuild, emacs, fetchurl, lib, nadvice }:
756− elpaBuild {
757− pname = "compat";
758− ename = "compat";
759− version = "28.1.0.3";
760− src = fetchurl {
761− url = "https://elpa.gnu.org/packages/compat-28.1.0.3.tar";
762− sha256 = "12h06ab57hhjq434cf39g69ain6dpqq8a0h9xc91kvjsiz9chqhd";
763− };
764− packageRequires = [ emacs nadvice ];
765− meta = {
766− homepage = "https://elpa.gnu.org/packages/compat.html";
767− license = lib.licenses.free;
768− };
769− }) {};
770740 consult = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
771741 elpaBuild {
772742 pname = "consult";
@@ -801,10 +771,10 @@
801771 elpaBuild {
802772 pname = "corfu";
803773 ename = "corfu";
804− version = "0.21";
774+ version = "0.20";
805775 src = fetchurl {
806− url = "https://elpa.gnu.org/packages/corfu-0.21.tar";
807− sha256 = "1jabx61ajiysd3yqkraanlx9gnkz1qs6d94wjc5a2ran58iyknyr";
776+ url = "https://elpa.gnu.org/packages/corfu-0.20.tar";
777+ sha256 = "03yycimbqs4ixz7lxp7f1b4fipq6kl2bbjnl87r0n9x8mzfslbdl";
808778 };
809779 packageRequires = [ emacs ];
810780 meta = {
@@ -906,10 +876,10 @@
906876 elpaBuild {
907877 pname = "csv-mode";
908878 ename = "csv-mode";
909− version = "1.19";
879+ version = "1.18";
910880 src = fetchurl {
911− url = "https://elpa.gnu.org/packages/csv-mode-1.19.tar";
912− sha256 = "0sslxlnw10ba6m711p4ps4zsfjz56dsp2945ga5z0y8d860pliqh";
881+ url = "https://elpa.gnu.org/packages/csv-mode-1.18.tar";
882+ sha256 = "0fv7hvsfbc9n4hsgg3ywk8qf4ig5a986zfq0lwnjj8pcz1bpmrxj";
913883 };
914884 packageRequires = [ cl-lib emacs ];
915885 meta = {
@@ -981,10 +951,10 @@
981951 elpaBuild {
982952 pname = "debbugs";
983953 ename = "debbugs";
984− version = "0.32";
954+ version = "0.31";
985955 src = fetchurl {
986− url = "https://elpa.gnu.org/packages/debbugs-0.32.tar";
987− sha256 = "1xp3mj3ndaljma0g7x9abziphgi2a6j8k1v52sb8xwgn4p5gdvby";
956+ url = "https://elpa.gnu.org/packages/debbugs-0.31.tar";
957+ sha256 = "11vdjrn5m5g6pirw8jv0602fbwwgdhazfrrwxxplii8x02gqk0sr";
988958 };
989959 packageRequires = [ emacs soap-client ];
990960 meta = {
@@ -2303,10 +2273,10 @@
23032273 elpaBuild {
23042274 pname = "kind-icon";
23052275 ename = "kind-icon";
2306− version = "0.1.5";
2276+ version = "0.1.4";
23072277 src = fetchurl {
2308− url = "https://elpa.gnu.org/packages/kind-icon-0.1.5.tar";
2309− sha256 = "0qajj89vkgc9gbgff6akzll53jy0kgkv6c9jvwpl32rbg8v0wp63";
2278+ url = "https://elpa.gnu.org/packages/kind-icon-0.1.4.tar";
2279+ sha256 = "00pyvnq4dx51l2wbhvm6k6cx5xmy32j4h1lkr5kr8s3j5w83ip25";
23102280 };
23112281 packageRequires = [ emacs svg-lib ];
23122282 meta = {
@@ -2404,21 +2374,6 @@
24042374 license = lib.licenses.free;
24052375 };
24062376 }) {};
2407− lin = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
2408− elpaBuild {
2409− pname = "lin";
2410− ename = "lin";
2411− version = "0.3.0";
2412− src = fetchurl {
2413− url = "https://elpa.gnu.org/packages/lin-0.3.0.tar";
2414− sha256 = "08h7rh8gidn9mn031mg8lvhxswv1hxn4i0ffk2vxygfbp9jxfi61";
2415− };
2416− packageRequires = [ emacs ];
2417− meta = {
2418− homepage = "https://elpa.gnu.org/packages/lin.html";
2419− license = lib.licenses.free;
2420− };
2421− }) {};
24222377 lmc = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
24232378 elpaBuild {
24242379 pname = "lmc";
@@ -2498,10 +2453,10 @@
24982453 elpaBuild {
24992454 pname = "logos";
25002455 ename = "logos";
2501− version = "0.3.1";
2456+ version = "0.2.0";
25022457 src = fetchurl {
2503− url = "https://elpa.gnu.org/packages/logos-0.3.1.tar";
2504− sha256 = "0wwvp47bmc7w3jvh480vc31agf0s39mvgk0h550z6a1wzlrfzyh9";
2458+ url = "https://elpa.gnu.org/packages/logos-0.2.0.tar";
2459+ sha256 = "0cqmgvgyyn656rg60bbnxr2flmnw9h4z5i2w98bsf4krlp3s4i6x";
25052460 };
25062461 packageRequires = [ emacs ];
25072462 meta = {
@@ -2712,10 +2667,10 @@
27122667 elpaBuild {
27132668 pname = "modus-themes";
27142669 ename = "modus-themes";
2715− version = "2.3.0";
2670+ version = "2.2.0";
27162671 src = fetchurl {
2717− url = "https://elpa.gnu.org/packages/modus-themes-2.3.0.tar";
2718− sha256 = "028c1z4p1bbgf34fml4i0prihxn44x288iyprz9gxrp7x3gl05n8";
2672+ url = "https://elpa.gnu.org/packages/modus-themes-2.2.0.tar";
2673+ sha256 = "1vgwr9q16d3hjwmqljmmzlpn177gvwbk3wg4l1fmgc5bpb7k78ky";
27192674 };
27202675 packageRequires = [ emacs ];
27212676 meta = {
@@ -2871,10 +2826,10 @@
28712826 elpaBuild {
28722827 pname = "nano-modeline";
28732828 ename = "nano-modeline";
2874− version = "0.6";
2829+ version = "0.5";
28752830 src = fetchurl {
2876− url = "https://elpa.gnu.org/packages/nano-modeline-0.6.tar";
2877− sha256 = "1cxycfx4ic2hzfvp3d2z0a5xjg97p49yla3a1qxw1dldcjg9lfg0";
2831+ url = "https://elpa.gnu.org/packages/nano-modeline-0.5.tar";
2832+ sha256 = "0f6xgrxykd5jmlzf9xmywh0jc2jfq698m4nqk60h40dm6pi0gfi2";
28782833 };
28792834 packageRequires = [ emacs ];
28802835 meta = {
@@ -3445,10 +3400,10 @@
34453400 elpaBuild {
34463401 pname = "pulsar";
34473402 ename = "pulsar";
3448− version = "0.3.0";
3403+ version = "0.2.0";
34493404 src = fetchurl {
3450− url = "https://elpa.gnu.org/packages/pulsar-0.3.0.tar";
3451− sha256 = "0dbfj7789qp4l25y8qazmx5kqgjgqjsnk24rwcf6qann4cq6wgnq";
3405+ url = "https://elpa.gnu.org/packages/pulsar-0.2.0.tar";
3406+ sha256 = "0vil6gv7w6d77hksc2pbrwjdd8dp3ka4kf5kihx04r95032pky62";
34523407 };
34533408 packageRequires = [ emacs ];
34543409 meta = {
@@ -3740,10 +3695,10 @@
37403695 elpaBuild {
37413696 pname = "rec-mode";
37423697 ename = "rec-mode";
3743− version = "1.8.3";
3698+ version = "1.8.2";
37443699 src = fetchurl {
3745− url = "https://elpa.gnu.org/packages/rec-mode-1.8.3.tar";
3746− sha256 = "0lkmvvdj4xx3qhxqggizrcdawav0accyrza2wmhfdq88g2zh5575";
3700+ url = "https://elpa.gnu.org/packages/rec-mode-1.8.2.tar";
3701+ sha256 = "06mjj1la2v8zdhsflj3mwcp7qnkj7gxzm8wbk2pli1h8vnq2zvd0";
37473702 };
37483703 packageRequires = [ emacs ];
37493704 meta = {
@@ -4350,10 +4305,10 @@
43504305 elpaBuild {
43514306 pname = "taxy";
43524307 ename = "taxy";
4353− version = "0.9";
4308+ version = "0.8";
43544309 src = fetchurl {
4355− url = "https://elpa.gnu.org/packages/taxy-0.9.tar";
4356− sha256 = "1nzafs3yvcnmg07zi345n2yvjsw9wixlybzibnhf5k6jnd0vvpjh";
4310+ url = "https://elpa.gnu.org/packages/taxy-0.8.tar";
4311+ sha256 = "00pc6lh35gj8vzcsn17fyazb9jsc4m6nr7cvb32w02isadv8qd3m";
43574312 };
43584313 packageRequires = [ emacs ];
43594314 meta = {
@@ -4361,25 +4316,6 @@
43614316 license = lib.licenses.free;
43624317 };
43634318 }) {};
4364− taxy-magit-section = callPackage ({ elpaBuild
4365− , emacs
4366− , fetchurl
4367− , lib
4368− , magit-section }:
4369− elpaBuild {
4370− pname = "taxy-magit-section";
4371− ename = "taxy-magit-section";
4372− version = "0.9.1";
4373− src = fetchurl {
4374− url = "https://elpa.gnu.org/packages/taxy-magit-section-0.9.1.tar";
4375− sha256 = "0ybkz5nqjdrg2z9bfd07xg4k49hrl26vsrwz2vqpfbsqqg5vr4pr";
4376− };
4377− packageRequires = [ emacs magit-section ];
4378− meta = {
4379− homepage = "https://elpa.gnu.org/packages/taxy-magit-section.html";
4380− license = lib.licenses.free;
4381− };
4382− }) {};
43834319 temp-buffer-browse = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
43844320 elpaBuild {
43854321 pname = "temp-buffer-browse";
@@ -4463,10 +4399,10 @@
44634399 elpaBuild {
44644400 pname = "tramp";
44654401 ename = "tramp";
4466− version = "2.5.2.3";
4402+ version = "2.5.2.2";
44674403 src = fetchurl {
4468− url = "https://elpa.gnu.org/packages/tramp-2.5.2.3.tar";
4469− sha256 = "1nv603jrvql03z2pfg74yq0hp7963gagg27fksc456mpmz4p7ajq";
4404+ url = "https://elpa.gnu.org/packages/tramp-2.5.2.2.tar";
4405+ sha256 = "104nn6xdmcviqqv4cx5llhwj1sh4q04w3h9s8gimmi2kg0z8s36r";
44704406 };
44714407 packageRequires = [ emacs ];
44724408 meta = {
@@ -4534,21 +4470,6 @@
45344470 license = lib.licenses.free;
45354471 };
45364472 }) {};
4537− transient-cycles = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
4538− elpaBuild {
4539− pname = "transient-cycles";
4540− ename = "transient-cycles";
4541− version = "1.0";
4542− src = fetchurl {
4543− url = "https://elpa.gnu.org/packages/transient-cycles-1.0.tar";
4544− sha256 = "1gad71kqdw6rm9dy5rxm85l4a5qibs20ijl8bpaxbbq37j44lvjb";
4545− };
4546− packageRequires = [ emacs ];
4547− meta = {
4548− homepage = "https://elpa.gnu.org/packages/transient-cycles.html";
4549− license = lib.licenses.free;
4550− };
4551− }) {};
45524473 trie = callPackage ({ elpaBuild, fetchurl, heap, lib, tNFA }:
45534474 elpaBuild {
45544475 pname = "trie";
@@ -4774,10 +4695,10 @@
47744695 elpaBuild {
47754696 pname = "vertico";
47764697 ename = "vertico";
4777− version = "0.22";
4698+ version = "0.21";
47784699 src = fetchurl {
4779− url = "https://elpa.gnu.org/packages/vertico-0.22.tar";
4780− sha256 = "1m8r2iqyyvym7a47awh00aq7hld54dklrx4ibwvnmhpxl0fzh7g8";
4700+ url = "https://elpa.gnu.org/packages/vertico-0.21.tar";
4701+ sha256 = "0aw3hkr46zghvyp7s2b6ziqavsf1zpml4bbxcvs4kvm05qa0y1hv";
47814702 };
47824703 packageRequires = [ emacs ];
47834704 meta = {
pkgs/applications/editors/emacs/elisp-packages/ement/default.nix+3−11
@@ -5,31 +5,23 @@
55, plz
66, cl-lib
77, ts
8−, magit-section
9−, taxy-magit-section
10−, taxy
11−, svg-lib
128}:
139
1410trivialBuild {
1511 pname = "ement";
16− version = "unstable-2022-04-22";
12+ version = "unstable-2021-10-08";
1713
1814 src = fetchFromGitHub {
1915 owner = "alphapapa";
2016 repo = "ement.el";
21− rev = "70da19e4c9210d362b1d6d9c17ab2c034a03250d";
22− sha256 = "sha256-Pxul0WrtyH2XZzF0fOOitLc3x/kc+Qc11RDH0n+Hm04=";
17+ rev = "c951737dc855604aba389166bb0e7366afadc533";
18+ sha256 = "00iwwz4hzg4g59wrb5df6snqz3ppvrsadhfp61w1pa8gvg2z9bvy";
2319 };
2420
2521 packageRequires = [
2622 plz
2723 cl-lib
2824 ts
29− magit-section
30− taxy-magit-section
31− taxy
32− svg-lib
3325 ];
3426
3527 patches = [
pkgs/applications/editors/emacs/elisp-packages/header-file-mode/default.nixdeleted−30
@@ -1,30 +0,0 @@
1−{ trivialBuild
2−, lib
3−, fetchFromGitHub
4−}:
5−
6−trivialBuild {
7− pname = "header-file-mode";
8− version = "unstable-2022-04-19";
9−
10− src = fetchFromGitHub {
11− owner = "0x4b";
12− repo = "header-file-mode";
13− rev = "fdf1930730e1b0c3f82490099a1325805491eff5";
14− sha256 = "sha256-FJgRI6RLQk9osh7d+YRfrV5CoGCDx2cZvsjAWlm969c=";
15− };
16−
17− postUnpack = ''
18− sourceRoot="$sourceRoot/lisp"
19− '';
20−
21− meta = {
22− description = ''
23− A major mode that, when associated with the .h file extension, will put
24− those file into the major mode of their corresponding implementation file.
25− '';
26− license = lib.licenses.gpl3Plus;
27− platforms = lib.platforms.all;
28− maintainers = with lib.maintainers; [ aidalgol ];
29− };
30−}
pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix+1−5
@@ -178,8 +178,6 @@
178178
179179 git-undo = callPackage ./git-undo { };
180180
181− header-file-mode = callPackage ./header-file-mode { };
182−
183181 helm-words = callPackage ./helm-words { };
184182
185183 isearch-plus = callPackage ./isearch-plus { };
@@ -233,12 +231,10 @@
233231
234232 sv-kalender = callPackage ./sv-kalender { };
235233
236− tree-sitter-langs = callPackage ./tree-sitter-langs { final = self; };
237− tsc = callPackage ./tsc { };
238−
239234 youtube-dl = callPackage ./youtube-dl { };
240235
241236 # From old emacsPackages (pre emacsPackagesNg)
237+ cedet = callPackage ./cedet { };
242238 cedille = callPackage ./cedille { cedille = pkgs.cedille; };
243239 color-theme-solarized = callPackage ./color-theme-solarized { };
244240 session-management-for-emacs = callPackage ./session-management-for-emacs { };
pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix+32−26
@@ -49,10 +49,10 @@
4949 elpaBuild {
5050 pname = "annotate";
5151 ename = "annotate";
52− version = "1.5.3";
52+ version = "1.5.1";
5353 src = fetchurl {
54− url = "https://elpa.nongnu.org/nongnu/annotate-1.5.3.tar";
55− sha256 = "0d5lqaj1bqckvjpwxqglzrhk8fm03n19lxwm74jxfl1lkxq4dw3x";
54+ url = "https://elpa.nongnu.org/nongnu/annotate-1.5.1.tar";
55+ sha256 = "13xf8izl99y1aqwk9k9hgiwggibjycjh2lhwg0wk5hm7zp6gm8mx";
5656 };
5757 packageRequires = [];
5858 meta = {
@@ -219,10 +219,10 @@
219219 elpaBuild {
220220 pname = "buttercup";
221221 ename = "buttercup";
222− version = "1.25";
222+ version = "1.24";
223223 src = fetchurl {
224− url = "https://elpa.nongnu.org/nongnu/buttercup-1.25.tar";
225− sha256 = "1iadgn56sfakv927g9bk7fq7yjg0f3r10ygrmjpy46vgvfz0fqs6";
224+ url = "https://elpa.nongnu.org/nongnu/buttercup-1.24.tar";
225+ sha256 = "1ch949xf03gw9r5v32akx7hqnq7zrp3qr3gcic5b52yl5nmy8mhn";
226226 };
227227 packageRequires = [ emacs ];
228228 meta = {
@@ -469,10 +469,10 @@
469469 elpaBuild {
470470 pname = "elpher";
471471 ename = "elpher";
472− version = "3.3.3";
472+ version = "3.3.2";
473473 src = fetchurl {
474− url = "https://elpa.nongnu.org/nongnu/elpher-3.3.3.tar";
475− sha256 = "0yaf6g424g6dngg0acbhlhd24k77bl5h82wiw98f3731xdad174r";
474+ url = "https://elpa.nongnu.org/nongnu/elpher-3.3.2.tar";
475+ sha256 = "1w34agw5qfgbpk6s2bllvgkj4wm1rlcyn33yfgj2xr4a5gfcs30a";
476476 };
477477 packageRequires = [ emacs ];
478478 meta = {
@@ -602,10 +602,10 @@
602602 elpaBuild {
603603 pname = "evil-matchit";
604604 ename = "evil-matchit";
605− version = "2.4.3";
605+ version = "2.4.1";
606606 src = fetchurl {
607− url = "https://elpa.nongnu.org/nongnu/evil-matchit-2.4.3.tar";
608− sha256 = "079qbx6f4clh5ngnrga016h0q2vf7afx9irsa06pishfs94pl4qn";
607+ url = "https://elpa.nongnu.org/nongnu/evil-matchit-2.4.1.tar";
608+ sha256 = "0ybw0jfjkwiz4ln3z5pizbw5d9d612crpk410czcyi8adyj018nc";
609609 };
610610 packageRequires = [ emacs evil ];
611611 meta = {
@@ -617,10 +617,10 @@
617617 elpaBuild {
618618 pname = "evil-nerd-commenter";
619619 ename = "evil-nerd-commenter";
620− version = "3.5.7";
620+ version = "3.5.6";
621621 src = fetchurl {
622− url = "https://elpa.nongnu.org/nongnu/evil-nerd-commenter-3.5.7.tar";
623− sha256 = "1lar8hy9n29gv4cijalyy2ba23y0kyh9ycnsi5dzjs68pk3y4hca";
622+ url = "https://elpa.nongnu.org/nongnu/evil-nerd-commenter-3.5.6.tar";
623+ sha256 = "0bv7s2jcgi3ma3dspczy7jrb55vqkhsz0rq0nz14qiay5j9dwghd";
624624 };
625625 packageRequires = [ emacs ];
626626 meta = {
@@ -1096,10 +1096,10 @@
10961096 elpaBuild {
10971097 pname = "highlight-parentheses";
10981098 ename = "highlight-parentheses";
1099− version = "2.1.1";
1099+ version = "2.1.0";
11001100 src = fetchurl {
1101− url = "https://elpa.nongnu.org/nongnu/highlight-parentheses-2.1.1.tar";
1102− sha256 = "1r0sk4da3apgbik8d84vknwna45k1ks3n0s1fspj5c88b4r7xnsx";
1101+ url = "https://elpa.nongnu.org/nongnu/highlight-parentheses-2.1.0.tar";
1102+ sha256 = "1rsixbvglar0k0x24xkxw80sx9i85q48jdzx6wbyjz2clz974ja5";
11031103 };
11041104 packageRequires = [ emacs ];
11051105 meta = {
@@ -1635,16 +1635,22 @@
16351635 license = lib.licenses.free;
16361636 };
16371637 }) {};
1638− pacmacs = callPackage ({ dash, elpaBuild, emacs, fetchurl, lib }:
1638+ pacmacs = callPackage ({ cl-lib ? null
1639+ , dash
1640+ , elpaBuild
1641+ , emacs
1642+ , f
1643+ , fetchurl
1644+ , lib }:
16391645 elpaBuild {
16401646 pname = "pacmacs";
16411647 ename = "pacmacs";
1642− version = "0.1.1";
1648+ version = "0.1";
16431649 src = fetchurl {
1644− url = "https://elpa.nongnu.org/nongnu/pacmacs-0.1.1.tar";
1645− sha256 = "0ni4jmvkdqiiw2xync6raxvq4gr2hc7b65cbil66z7g7vlw5y56y";
1650+ url = "https://elpa.nongnu.org/nongnu/pacmacs-0.1.tar";
1651+ sha256 = "0vhxxnk8n4h2klvr4xahsm845dwds895fxxgcs7dz2262g9myd93";
16461652 };
1647− packageRequires = [ dash emacs ];
1653+ packageRequires = [ cl-lib dash emacs f ];
16481654 meta = {
16491655 homepage = "https://elpa.gnu.org/packages/pacmacs.html";
16501656 license = lib.licenses.free;
@@ -1903,10 +1909,10 @@
19031909 elpaBuild {
19041910 pname = "shellcop";
19051911 ename = "shellcop";
1906− version = "0.0.8";
1912+ version = "0.0.7";
19071913 src = fetchurl {
1908− url = "https://elpa.nongnu.org/nongnu/shellcop-0.0.8.tar";
1909− sha256 = "00kj1zadrqnikvwrxd6ma0c8r1jf70c1zaqr03s0g49h4lz6m2da";
1914+ url = "https://elpa.nongnu.org/nongnu/shellcop-0.0.7.tar";
1915+ sha256 = "1zwj22bf37ffdbz5iqkwz5mzzsxffhj521dmwkgp5sh4r1fwip8a";
19101916 };
19111917 packageRequires = [ emacs ];
19121918 meta = {
pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json+1744−2254
This diff is too big to show here.
pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default-grammars.jsondeleted−32
This diff is too big to show here.
pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default.nixdeleted−44
This diff is too big to show here.
pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/update-defaults.pydeleted−74
This diff is too big to show here.
pkgs/applications/editors/emacs/elisp-packages/tsc/default.nixdeleted−89
This diff is too big to show here.
pkgs/applications/editors/emacs/elisp-packages/tsc/src.jsondeleted−10
This diff is too big to show here.
pkgs/applications/editors/emacs/elisp-packages/tsc/update.pydeleted−122
This diff is too big to show here.
pkgs/applications/editors/emacs/elisp-packages/updatedeleted−10
This diff is too big to show here.
pkgs/applications/editors/emacs/elisp-packages/update-manualdeleted−7
This diff is too big to show here.
pkgs/applications/editors/emacs/elisp-packages/update-manual.nixdeleted−11
This diff is too big to show here.
pkgs/applications/editors/emacs/generic.nix+5−9
This diff is too big to show here.
pkgs/applications/editors/gnome-builder/default.nix+13−2
This diff is too big to show here.
pkgs/applications/editors/helix/default.nix−3
This diff is too big to show here.
pkgs/applications/editors/jetbrains/default.nix+17−20
This diff is too big to show here.
pkgs/applications/editors/jetbrains/update.py+14−17
This diff is too big to show here.
pkgs/applications/editors/jetbrains/versions.json+132−132
This diff is too big to show here.
pkgs/applications/editors/jupyter-kernels/octave/kernel.nix+6−4
This diff is too big to show here.
pkgs/applications/editors/jupyter-kernels/wolfram/default.nixdeleted−22
This diff is too big to show here.
pkgs/applications/editors/jupyter-kernels/wolfram/kernel.nixdeleted−32
This diff is too big to show here.
pkgs/applications/editors/lapce/default.nix+7−23
This diff is too big to show here.
pkgs/applications/editors/lapce/fix-version.patchnew file+31
This diff is too big to show here.
pkgs/applications/editors/lifeograph/default.nix+5−5
This diff is too big to show here.
pkgs/applications/editors/mg/default.nix−4
This diff is too big to show here.
pkgs/applications/editors/mle/default.nix+1−11
This diff is too big to show here.
pkgs/applications/editors/neovim/default.nix+2−2
This diff is too big to show here.
pkgs/applications/editors/neovim/neovide/default.nix+6−6
This diff is too big to show here.
pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock+2−2
This diff is too big to show here.
pkgs/applications/editors/neovim/ruby_provider/gemset.nix+5−5
This diff is too big to show here.
pkgs/applications/editors/oed/default.nix−9
This diff is too big to show here.
pkgs/applications/editors/okteta/default.nix−2
This diff is too big to show here.
pkgs/applications/editors/oni2/common.nix+1
This diff is too big to show here.
pkgs/applications/editors/pinegrow/default.nix+2−2
This diff is too big to show here.
pkgs/applications/editors/rstudio/default.nix+1−1
This diff is too big to show here.
pkgs/applications/editors/setzer/default.nix+2−2
This diff is too big to show here.
pkgs/applications/editors/texmaker/default.nix+2−2
This diff is too big to show here.
pkgs/applications/editors/texstudio/default.nix+2−2
This diff is too big to show here.
pkgs/applications/editors/vim/common.nix+2−2
This diff is too big to show here.
pkgs/applications/editors/vim/plugins/build-vim-plugin.nix−2
This diff is too big to show here.
pkgs/applications/editors/vim/plugins/default.nix+2−7
This diff is too big to show here.
pkgs/applications/editors/vim/plugins/generated.nix+631−656
This diff is too big to show here.
pkgs/applications/editors/vim/plugins/overrides.nix+5−4
This diff is too big to show here.
pkgs/applications/editors/vim/plugins/update.py+16−47
This diff is too big to show here.
pkgs/applications/editors/vim/plugins/vim-command-check-hook.shdeleted−25
This diff is too big to show here.
pkgs/applications/editors/vim/plugins/vim-plugin-names−2
This diff is too big to show here.
pkgs/applications/editors/vim/plugins/vim-utils.nix+2−18
This diff is too big to show here.
pkgs/applications/editors/vscode/extensions/default.nix+14−26
This diff is too big to show here.
pkgs/applications/editors/vscode/extensions/ms-vsliveshare-vsliveshare/default.nix+1
This diff is too big to show here.
pkgs/applications/editors/vscode/extensions/remote-ssh/default.nix+2−2
This diff is too big to show here.
pkgs/applications/editors/vscode/generic.nix+3−9
This diff is too big to show here.
pkgs/applications/editors/vscode/update-vscodium.sh+12−16
This diff is too big to show here.
pkgs/applications/editors/vscode/vscode.nix+6−6
This diff is too big to show here.
pkgs/applications/editors/vscode/vscodium.nix+13−10
This diff is too big to show here.
pkgs/applications/editors/xedit/default.nix+2−2
This diff is too big to show here.
pkgs/applications/emulators/bsnes/ares/default.nix → pkgs/applications/emulators/ares/default.nixrenamed
The content is the same.
pkgs/applications/emulators/bsnes/ares/fix-ruby.patch → pkgs/applications/emulators/ares/fix-ruby.patchrenamed
The content is the same.
pkgs/applications/emulators/basiliskii/default.nixdeleted−28
This diff is too big to show here.
pkgs/applications/emulators/basiliskii/remove-redhat-6-workaround-for-scsi-sg.h.patchdeleted−10
This diff is too big to show here.
pkgs/applications/emulators/bsnes/bsnes-hd/default.nix → pkgs/applications/emulators/bsnes-hd/default.nixrenamed
The content is the same.
pkgs/applications/emulators/bsnes/bsnes-hd/macos-copy-app-to-prefix.patch → pkgs/applications/emulators/bsnes-hd/macos-copy-app-to-prefix.patchrenamed
The content is the same.
pkgs/applications/emulators/bsnes/bsnes-hd/macos-replace-sips-with-png2icns.patch → pkgs/applications/emulators/bsnes-hd/macos-replace-sips-with-png2icns.patchrenamed
The content is the same.
pkgs/applications/emulators/commanderx16/emulator.nix+5−7
This diff is too big to show here.
pkgs/applications/emulators/commanderx16/rom.nix+6−12
This diff is too big to show here.
pkgs/applications/emulators/dolphin-emu/master.nix+4−4
This diff is too big to show here.
pkgs/applications/emulators/dolphin-emu/primehack.nix+2−2
This diff is too big to show here.
pkgs/applications/emulators/flycast/default.nix+2−2
This diff is too big to show here.
pkgs/applications/emulators/bsnes/higan/001-include-cmath.patch → pkgs/applications/emulators/higan/001-include-cmath.patchrenamed
The content is the same.
pkgs/applications/emulators/bsnes/higan/002-sips-to-png2icns.patch → pkgs/applications/emulators/higan/002-sips-to-png2icns.patchrenamed
The content is the same.
pkgs/applications/emulators/bsnes/higan/default.nix → pkgs/applications/emulators/higan/default.nixrenamed
The content is the same.
pkgs/applications/emulators/mame/0001-Revert-Added-PDF-documentation-to-dist.mak.patchdeleted−37
This diff is too big to show here.
pkgs/applications/emulators/mame/default.nix+14−64
This diff is too big to show here.
pkgs/applications/emulators/proton-caller/default.nix−1
This diff is too big to show here.
pkgs/applications/emulators/retroarch/disable-menu_show_core_updater.patch → pkgs/applications/emulators/retroarch/0001-Disable-menu_show_core_updater.patchrenamed+1−1
This diff is too big to show here.
pkgs/applications/emulators/retroarch/use-fixed-paths-on-libretro_info_path.patch → pkgs/applications/emulators/retroarch/0002-Use-fixed-paths-on-libretro_info_path.patchrenamed+17−21
This diff is too big to show here.
pkgs/applications/emulators/retroarch/cores.nix+43−16
This diff is too big to show here.
pkgs/applications/emulators/retroarch/default.nix+8−25
This diff is too big to show here.
pkgs/applications/emulators/retroarch/disable-menu-show-core-updater.patchnew file+13
This diff is too big to show here.
pkgs/applications/emulators/retroarch/hashes.json+150−139
This diff is too big to show here.
pkgs/applications/emulators/retroarch/update_cores.py → pkgs/applications/emulators/retroarch/update.pyrenamed+13−7
This diff is too big to show here.
pkgs/applications/emulators/retroarch/wrapper.nix+6−10
This diff is too big to show here.
pkgs/applications/emulators/ripes/default.nixdeleted−50
This diff is too big to show here.
pkgs/applications/emulators/ryujinx/default.nix+3−3
This diff is too big to show here.
pkgs/applications/emulators/ryujinx/deps.nix+9−9
This diff is too big to show here.
pkgs/applications/emulators/snes9x-gtk/default.nixnew file+37
This diff is too big to show here.
pkgs/applications/emulators/snes9x/default.nixdeleted−130
This diff is too big to show here.
pkgs/applications/emulators/yuzu/base.nixnew file+86
This diff is too big to show here.
pkgs/applications/emulators/yuzu/compatibility-list.jsondeleted−1
This diff is too big to show here.
pkgs/applications/emulators/yuzu/default.nix+10−22
This diff is too big to show here.
pkgs/applications/emulators/yuzu/generic.nixdeleted−157
This diff is too big to show here.
pkgs/applications/emulators/yuzu/update.shdeleted−102
This diff is too big to show here.
pkgs/applications/emulators/zesarux/default.nix−8
This diff is too big to show here.
pkgs/applications/finance/irpf/default.nix+3−10
This diff is too big to show here.
pkgs/applications/gis/grass/default.nix+36−10
This diff is too big to show here.
pkgs/applications/gis/qgis/unwrapped-ltr.nix+2−2
This diff is too big to show here.
pkgs/applications/gis/qgis/unwrapped.nix+2−2
This diff is too big to show here.
pkgs/applications/graphics/ImageMagick/7.0.nix+11−6
This diff is too big to show here.
pkgs/applications/graphics/awesomebump/default.nix+1−1
This diff is too big to show here.
pkgs/applications/graphics/cloudcompare/default.nix+12−47
This diff is too big to show here.
pkgs/applications/graphics/cq-editor/default.nix+1−1
This diff is too big to show here.
pkgs/applications/graphics/darktable/default.nix−2
This diff is too big to show here.
pkgs/applications/graphics/digikam/default.nix+3−14
This diff is too big to show here.
pkgs/applications/graphics/drawio/default.nix+2−2
This diff is too big to show here.
pkgs/applications/graphics/foxotron/default.nix+1−1
This diff is too big to show here.
pkgs/applications/graphics/geeqie/default.nix+4−4
This diff is too big to show here.
pkgs/applications/graphics/gimp/plugins/default.nix+1−40
This diff is too big to show here.
pkgs/applications/graphics/graphicsmagick/default.nix+2−2
This diff is too big to show here.
pkgs/applications/graphics/gscan2pdf/default.nix+4−2
This diff is too big to show here.
pkgs/applications/graphics/hydrus/default.nix+3−3
This diff is too big to show here.
pkgs/applications/graphics/inkscape/default.nix−1
This diff is too big to show here.
pkgs/applications/graphics/openboard/default.nix+4−3
This diff is too big to show here.
pkgs/applications/graphics/openscad/default.nix−4
This diff is too big to show here.
pkgs/applications/graphics/ovito/default.nix+2−2
This diff is too big to show here.
pkgs/applications/graphics/pixeluvo/default.nix−1
This diff is too big to show here.
pkgs/applications/graphics/rawtherapee/default.nix−3
This diff is too big to show here.
pkgs/applications/graphics/rawtherapee/fix-6324.patchdeleted−356
This diff is too big to show here.
pkgs/applications/graphics/sane/backends/brscan4/default.nix+2−2
This diff is too big to show here.
pkgs/applications/graphics/sane/backends/brscan5/default.nix+2−2
This diff is too big to show here.
pkgs/applications/kde/skanpage.nix → pkgs/applications/graphics/skanpage/default.nixrenamed+7−3
This diff is too big to show here.
pkgs/applications/graphics/tesseract/default.nix−6
This diff is too big to show here.
pkgs/applications/graphics/tesseract/fetch-language-hashes+2−2
This diff is too big to show here.
pkgs/applications/graphics/tesseract/languages.nix+245−245
This diff is too big to show here.
pkgs/applications/graphics/tesseract/tesseract3.nix+3−14
This diff is too big to show here.
pkgs/applications/graphics/tesseract/tesseract4.nix+3−15
This diff is too big to show here.
pkgs/applications/graphics/tesseract/tesseract5.nixdeleted−39
This diff is too big to show here.
pkgs/applications/graphics/tesseract/wrapper.nix+3−29
This diff is too big to show here.
pkgs/applications/graphics/unigine-sanctuary/default.nixdeleted−97
This diff is too big to show here.
pkgs/applications/graphics/unigine-tropics/default.nixdeleted−95
This diff is too big to show here.
pkgs/applications/graphics/unigine-valley/default.nix+99−120
This diff is too big to show here.
pkgs/applications/graphics/yed/default.nix+2−2
This diff is too big to show here.
pkgs/applications/kde/default.nix+1−4
This diff is too big to show here.
pkgs/applications/kde/fetch.sh+1−1
This diff is too big to show here.
pkgs/applications/kde/kaddressbook.nix−4
This diff is too big to show here.
pkgs/applications/kde/kalarm.nix+2−2
This diff is too big to show here.
pkgs/applications/kde/kalarmcal.nixnew file+19
This diff is too big to show here.
pkgs/applications/kde/kdegraphics-thumbnailers.nix+2−2
This diff is too big to show here.
pkgs/applications/kde/kdepim-addons.nix+2−2
This diff is too big to show here.
pkgs/applications/kde/kdepim-runtime/default.nix+2−2
This diff is too big to show here.
pkgs/applications/kde/kmousetool.nixdeleted−35
This diff is too big to show here.
pkgs/applications/kde/picmi.nix+11−1
This diff is too big to show here.
pkgs/applications/kde/pimcommon.nix+2−2
This diff is too big to show here.
pkgs/applications/kde/srcs.nix+921−937
This diff is too big to show here.
pkgs/applications/kde/yakuake.nix−2
This diff is too big to show here.
pkgs/applications/logging/sosreport/default.nixdeleted−51
This diff is too big to show here.
pkgs/applications/misc/1password-gui/beta.nixdeleted−132
This diff is too big to show here.
pkgs/applications/misc/1password-gui/default.nix+3−3
This diff is too big to show here.
pkgs/applications/misc/1password/default.nix+5−5
This diff is too big to show here.
pkgs/applications/misc/ArchiSteamFarm/default.nix−1
This diff is too big to show here.
pkgs/applications/misc/ArchiSteamFarm/deps-aarch64-linux.nix+18−17
This diff is too big to show here.
pkgs/applications/misc/ArchiSteamFarm/deps-x86_64-linux.nix+18−17
This diff is too big to show here.
pkgs/applications/misc/ablog/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/anytype/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/archivy/default.nix+3−9
This diff is too big to show here.
pkgs/applications/misc/audio/wavesurfer/default.nixnew file+30
This diff is too big to show here.
pkgs/applications/misc/authy/default.nix+7−30
This diff is too big to show here.
pkgs/applications/misc/autospotting/default.nix−1
This diff is too big to show here.
pkgs/applications/misc/azuredatastudio/default.nix+3−3
This diff is too big to show here.
pkgs/applications/misc/barrier/default.nix+1−12
This diff is too big to show here.
pkgs/applications/misc/blender/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/bottles/default.nix+17−7
This diff is too big to show here.
pkgs/applications/misc/bottles/update.pynew file+65
This diff is too big to show here.
pkgs/applications/misc/buku/default.nix+1−2
This diff is too big to show here.
pkgs/applications/misc/calcoo/0001-javac-encoding.diffdeleted−21
This diff is too big to show here.
pkgs/applications/misc/calcoo/default.nixdeleted−58
This diff is too big to show here.
pkgs/applications/misc/calcurse/default.nix+3−4
This diff is too big to show here.
pkgs/applications/misc/calibre/default.nix+1−5
This diff is too big to show here.
pkgs/applications/misc/catclock/default.nix−1
This diff is too big to show here.
pkgs/applications/misc/charm/default.nix+5−3
This diff is too big to show here.
pkgs/applications/misc/copyq/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/cubiomes-viewer/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/dasel/default.nix+3−3
This diff is too big to show here.
pkgs/applications/misc/debian-goodies/default.nixdeleted−70
This diff is too big to show here.
pkgs/applications/misc/dunst/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/electrum-grs/default.nix+21−3
This diff is too big to show here.
pkgs/applications/misc/evtest/default.nix+1−1
This diff is too big to show here.
pkgs/applications/misc/faircamp/default.nix+4−4
This diff is too big to show here.
pkgs/applications/misc/ff2mpv/default.nixdeleted−34
This diff is too big to show here.
pkgs/applications/misc/firestarter/default.nix+1−3
This diff is too big to show here.
pkgs/applications/misc/fluidd/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/foxitreader/default.nix−1
This diff is too big to show here.
pkgs/applications/misc/fspy/default.nix+3−2
This diff is too big to show here.
pkgs/applications/misc/gallery-dl/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/globe-cli/default.nix−1
This diff is too big to show here.
pkgs/applications/misc/gnome-firmware-updater/default.nixnew file+75
This diff is too big to show here.
pkgs/applications/misc/gnome-firmware/default.nixdeleted−63
This diff is too big to show here.
pkgs/applications/misc/gnome-secrets/default.nix+10−4
This diff is too big to show here.
pkgs/applications/misc/gremlin-console/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/gsctl/default.nix+4−10
This diff is too big to show here.
pkgs/applications/misc/hello/default.nix+9−11
This diff is too big to show here.
pkgs/applications/misc/hello/test.nixdeleted−8
This diff is too big to show here.
pkgs/applications/misc/hubstaff/default.nix+1−1
This diff is too big to show here.
pkgs/applications/misc/hugo/default.nix+6−6
This diff is too big to show here.
pkgs/applications/misc/ipmiview/default.nix+3−3
This diff is too big to show here.
pkgs/applications/misc/join-desktop/default.nixdeleted−73
This diff is too big to show here.
pkgs/applications/misc/joplin-desktop/default.nix+3−3
This diff is too big to show here.
pkgs/applications/misc/josm/default.nix+4−4
This diff is too big to show here.
pkgs/applications/misc/k4dirstat/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/keylight-controller-mschneider82/default.nixdeleted−53
This diff is too big to show here.
pkgs/applications/misc/kiln/default.nix+3−3
This diff is too big to show here.
pkgs/applications/misc/kjv/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/kratos/default.nix+3−3
This diff is too big to show here.
pkgs/applications/misc/libosmocore/default.nix+6−21
This diff is too big to show here.
pkgs/applications/misc/lighthouse/default.nixnew file+35
This diff is too big to show here.
pkgs/applications/misc/lutris/default.nix+4−4
This diff is too big to show here.
pkgs/applications/misc/marktext/default.nix+6−5
This diff is too big to show here.
pkgs/applications/misc/masterpdfeditor/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/mediainfo/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/megacmd/default.nix+10−5
This diff is too big to show here.
pkgs/applications/misc/megasync/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/mepo/default.nix+8−34
This diff is too big to show here.
pkgs/applications/misc/metadata-cleaner/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/minigalaxy/default.nix−4
This diff is too big to show here.
pkgs/applications/misc/mob/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/moonlight-qt/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/mop/default.nix+8−7
This diff is too big to show here.
pkgs/applications/misc/mop/deps.nixnew file+11
This diff is too big to show here.
pkgs/applications/misc/multibootusb/default.nix+1−1
This diff is too big to show here.
pkgs/applications/misc/nnn/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/notejot/default.nix+11−4
This diff is too big to show here.
pkgs/applications/misc/nut/default.nix−2
This diff is too big to show here.
pkgs/applications/misc/obsidian/default.nix+3−3
This diff is too big to show here.
pkgs/applications/misc/octoprint/default.nix+245−7
This diff is too big to show here.
pkgs/applications/misc/opencpn/default.nix+16−85
This diff is too big to show here.
pkgs/applications/misc/organicmaps/default.nix+12−7
This diff is too big to show here.
pkgs/applications/misc/osmscout-server/default.nix+24−3
This diff is too big to show here.
pkgs/applications/misc/otpclient/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/pdfstudio/default.nix+4−4
This diff is too big to show here.
pkgs/applications/misc/phwmon/default.nix+1−1
This diff is too big to show here.
pkgs/applications/misc/polybar/default.nix+2−12
This diff is too big to show here.
pkgs/applications/misc/polybar/remove-hardcoded-etc.diffdeleted−13
This diff is too big to show here.
pkgs/applications/misc/portfolio-filemanager/default.nix+2−6
This diff is too big to show here.
pkgs/applications/misc/prusa-slicer/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/prusa-slicer/super-slicer.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/pure-maps/default.nix+2−3
This diff is too big to show here.
pkgs/applications/misc/ranger/default.nix+4−13
This diff is too big to show here.
pkgs/applications/misc/rm-improved/default.nix−1
This diff is too big to show here.
pkgs/applications/misc/sampler/default.nix+2−5
This diff is too big to show here.
pkgs/applications/misc/sigal/default.nix+13−17
This diff is too big to show here.
pkgs/applications/misc/sigi/default.nix+10−7
This diff is too big to show here.
pkgs/applications/misc/sioyek/default.nixdeleted−56
This diff is too big to show here.
pkgs/applications/misc/skate/default.nix+3−3
This diff is too big to show here.
pkgs/applications/misc/skytemple/default.nix+2−5
This diff is too big to show here.
pkgs/applications/misc/slides/default.nix+4−5
This diff is too big to show here.
pkgs/applications/misc/solaar/default.nix+2−3
This diff is too big to show here.
pkgs/applications/misc/sqls/default.nix+3−5
This diff is too big to show here.
pkgs/applications/misc/stork/default.nix+3−3
This diff is too big to show here.
pkgs/applications/misc/taskwarrior/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/terminal-typeracer/default.nix−1
This diff is too big to show here.
pkgs/applications/misc/timewarrior/default.nix−1
This diff is too big to show here.
pkgs/applications/misc/toipe/default.nixdeleted−20
This diff is too big to show here.
pkgs/applications/misc/tty-solitaire/default.nix−1
This diff is too big to show here.
pkgs/applications/misc/tut/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/tvbrowser/bin.nix+1−1
This diff is too big to show here.
pkgs/applications/misc/udiskie/default.nix+25−30
This diff is too big to show here.
pkgs/applications/misc/udiskie/locale-path.patchdeleted−17
This diff is too big to show here.
pkgs/applications/misc/upwork/default.nix+4−14
This diff is too big to show here.
pkgs/applications/misc/veracrypt/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/vit/default.nix+5−3
This diff is too big to show here.
pkgs/tools/X11/xdragon/default.nix → pkgs/applications/misc/xdragon/default.nixrenamed+3−3
This diff is too big to show here.
pkgs/applications/misc/xmrig/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/xmrig/moneroocean.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/xpdf/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/xplr/default.nix+3−3
This diff is too big to show here.
pkgs/applications/misc/xteddy/default.nix+1−1
This diff is too big to show here.
pkgs/applications/misc/ydict/default.nixdeleted−28
This diff is too big to show here.
pkgs/applications/misc/zettlr/default.nix+2−2
This diff is too big to show here.
pkgs/applications/misc/zola/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/alpnpass/default.nixdeleted−34
This diff is too big to show here.
pkgs/applications/networking/appgate-sdp/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/bee/bee.nix+3−1
This diff is too big to show here.
pkgs/applications/networking/browsers/brave/default.nix+53−72
This diff is too big to show here.
pkgs/applications/networking/browsers/chromium/common.nix+9−16
This diff is too big to show here.
pkgs/applications/networking/browsers/chromium/default.nix+3−1
This diff is too big to show here.
pkgs/applications/networking/browsers/chromium/get-commit-message.py+3−3
This diff is too big to show here.
pkgs/applications/networking/browsers/chromium/upstream-info.json+30−30
This diff is too big to show here.
pkgs/applications/kde/falkon.nix → pkgs/applications/networking/browsers/falkon/default.nixrenamed+13−4
This diff is too big to show here.
pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix+393−393
This diff is too big to show here.
pkgs/applications/networking/browsers/firefox-bin/release_sources.nix+393−393
This diff is too big to show here.
pkgs/applications/networking/browsers/firefox/common.nix+14−3
This diff is too big to show here.
pkgs/applications/networking/browsers/firefox/librewolf/src.json+5−5
This diff is too big to show here.
pkgs/applications/networking/browsers/firefox/packages.nix+4−4
This diff is too big to show here.
pkgs/applications/networking/browsers/google-chrome/default.nix+1−1
This diff is too big to show here.
pkgs/applications/networking/browsers/lagrange/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/browsers/links2/default.nix−1
This diff is too big to show here.
pkgs/applications/networking/browsers/microsoft-edge/default.nix+6−6
This diff is too big to show here.
pkgs/applications/networking/browsers/palemoon/default.nix+4−4
This diff is too big to show here.
pkgs/applications/networking/browsers/qtchan/default.nix+1−1
This diff is too big to show here.
pkgs/applications/networking/browsers/qutebrowser/default.nix+3−6
This diff is too big to show here.
pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix+4−11
This diff is too big to show here.
pkgs/applications/networking/browsers/vieb/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/browsers/vivaldi/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/browsers/vivaldi/widevine.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/c14/default.nixnew file+22
This diff is too big to show here.
pkgs/applications/networking/cloudflare-dyndns/default.nixdeleted−53
This diff is too big to show here.
pkgs/applications/networking/cloudflared/default.nix+6−17
This diff is too big to show here.
pkgs/applications/networking/cluster/argo/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/cluster/argocd-autopilot/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/cluster/arkade/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/cluster/atlantis/default.nix+5−8
This diff is too big to show here.
pkgs/applications/networking/cluster/cilium/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix−1
This diff is too big to show here.
pkgs/applications/networking/cluster/cmctl/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/cluster/driftctl/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/cluster/flink/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/cluster/fluxcd/default.nix+5−5
This diff is too big to show here.
pkgs/applications/networking/cluster/fluxcd/update.sh+31−38
This diff is too big to show here.
pkgs/applications/networking/cluster/hadoop/default.nix−5
This diff is too big to show here.
pkgs/applications/networking/cluster/helm-docs/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/cluster/helm/default.nix+9−21
This diff is too big to show here.
pkgs/applications/networking/cluster/helmfile/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/cluster/istioctl/default.nix+3−8
This diff is too big to show here.
pkgs/applications/networking/cluster/k3s/default.nix+8−23
This diff is too big to show here.
pkgs/applications/networking/cluster/k3s/patches/0002-Don-t-build-a-static-binary-in-package-cli.patchnew file+37
This diff is too big to show here.
pkgs/applications/networking/cluster/kn/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/cluster/kompose/default.nix+7−17
This diff is too big to show here.
pkgs/applications/networking/cluster/kops/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/cluster/krane/Gemfile.lock+12−12
This diff is too big to show here.
pkgs/applications/networking/cluster/krane/gemset.nix+20−20
This diff is too big to show here.
pkgs/applications/networking/cluster/kube3d/default.nix+11−28
This diff is too big to show here.
pkgs/applications/networking/cluster/kubecfg/default.nix+7−7
This diff is too big to show here.
pkgs/applications/networking/cluster/kubernetes/kubectl.nix−1
This diff is too big to show here.
pkgs/applications/networking/cluster/kuttl/default.nix−1
This diff is too big to show here.
pkgs/applications/networking/cluster/nerdctl/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/cluster/nomad-pack/default.nix+4−4
This diff is too big to show here.
pkgs/applications/networking/cluster/nomad/1.1.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/cluster/ocm/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/cluster/odo/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/cluster/openshift/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/cluster/pachyderm/default.nix−1
This diff is too big to show here.
pkgs/applications/networking/cluster/pgo-client/default.nix−1
This diff is too big to show here.
pkgs/applications/networking/cluster/popeye/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/cluster/spark/default.nix+2−6
This diff is too big to show here.
pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix+4−9
This diff is too big to show here.
pkgs/applications/networking/cluster/starboard/default.nix+9−15
This diff is too big to show here.
pkgs/applications/networking/cluster/talosctl/default.nix+9−11
This diff is too big to show here.
pkgs/applications/networking/cluster/tanka/default.nix−1
This diff is too big to show here.
pkgs/applications/networking/cluster/tektoncd-cli/default.nix−1
This diff is too big to show here.
pkgs/applications/networking/cluster/terraform-providers/default.nix+1−5
This diff is too big to show here.
pkgs/applications/networking/cluster/terraform-providers/providers.json+200−228
This diff is too big to show here.
pkgs/applications/networking/cluster/terraform/default.nix+4−4
This diff is too big to show here.
pkgs/applications/networking/cluster/waypoint/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/cluster/werf/default.nix+4−11
This diff is too big to show here.
pkgs/applications/networking/firewalld/default.nixdeleted−104
This diff is too big to show here.
pkgs/applications/networking/firewalld/respect-xml-catalog-files-var.patchdeleted−13
This diff is too big to show here.
pkgs/applications/networking/flexget/default.nix+1−4
This diff is too big to show here.
pkgs/applications/networking/gmailctl/default.nix+6−4
This diff is too big to show here.
pkgs/applications/networking/gns3/default.nix+8−7
This diff is too big to show here.
pkgs/applications/networking/gns3/gui.nix+7−29
This diff is too big to show here.
pkgs/applications/networking/gns3/server.nix+22−36
This diff is too big to show here.
pkgs/applications/networking/ids/zeek/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/alfaview/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/bluejeans/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nixdeleted−50
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/caprine-bin/build-from-dmg.nixdeleted−35
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/caprine-bin/default.nixdeleted−25
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/chatty/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix+2−3
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json+2−2
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/discord/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/element/element-desktop-package.json+1−2
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/element/pin.json+4−4
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/ferdi/default.nix+1−1
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/franz/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/gajim/default.nix+1−1
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/gotktrix/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix+3−4
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/kaidan/default.nix−2
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/kdeltachat/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/linphone/default.nix+13−40
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/linphone/do-not-build-linphone-sdk.patch+31−56
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/linphone/no-store-path-in-autostart.patchdeleted−27
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/linphone/remove-bc_compute_full_version-usage.patch+6−6
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/psi-plus/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/ripcord/default.nix+1−1
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/signal-desktop/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/slack/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/teams/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix+21−1
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kf594.patchdeleted−57
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/kotato-10.12-sdk.patch+22−31
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt-10.12-sdk.patch+4−17
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/tg_owt.nix+7−15
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nixdeleted−23
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix−8
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/telegram/tdesktop/kf594.diffdeleted−57
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/threema-desktop/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/torchat/default.nix+1−1
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/wire-desktop/default.nix+5−6
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/zoom-us/default.nix+8−47
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/zulip/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/ipfs-cluster/default.nix+12−3
This diff is too big to show here.
pkgs/applications/networking/ipfs/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/irc/senpai/default.nix+4−4
This diff is too big to show here.
pkgs/applications/networking/irc/weechat/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/mailreaders/aerc/default.nix+14−23
This diff is too big to show here.
pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch+56−86
This diff is too big to show here.
pkgs/applications/networking/mailreaders/claws-mail/default.nix−2
This diff is too big to show here.
pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/mailreaders/evolution/evolution/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/mailreaders/mailspring/default.nix+1−1
This diff is too big to show here.
pkgs/applications/networking/mailreaders/meli/default.nix+2−1
This diff is too big to show here.
pkgs/applications/networking/mailreaders/mutt/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/mailreaders/neomutt/default.nix+12−2
This diff is too big to show here.
pkgs/applications/networking/mailreaders/notmuch-bower/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/mailreaders/notmuch/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix+261−261
This diff is too big to show here.
pkgs/applications/networking/mailreaders/thunderbird/packages.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/modem-manager-gui/default.nix−15
This diff is too big to show here.
pkgs/applications/networking/n8n/node-packages.nix+752−634
This diff is too big to show here.
pkgs/applications/networking/newsreaders/liferea/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/nextcloud-client/default.nix+3−26
This diff is too big to show here.
pkgs/applications/networking/owncloud-client/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/p2p/gnunet/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/p2p/qbittorrent/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/p2p/tribler/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/p2p/twister/default.nixnew file+70
This diff is too big to show here.
pkgs/applications/networking/ping/default.nixnew file+76
This diff is too big to show here.
pkgs/applications/networking/pjsip/default.nix+1−7
This diff is too big to show here.
pkgs/applications/networking/protonvpn-gui/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/remote/freerdp/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/remote/rustdesk/default.nix+1−1
This diff is too big to show here.
pkgs/applications/networking/remote/vmware-horizon-client/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/resilio-sync/default.nix+19−19
This diff is too big to show here.
pkgs/applications/networking/seafile-client/default.nix+3−5
This diff is too big to show here.
pkgs/applications/networking/seahub/default.nix+5−12
This diff is too big to show here.
pkgs/applications/networking/seaweedfs/default.nix+5−6
This diff is too big to show here.
pkgs/applications/networking/soju/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/sync/onedrive/default.nix+2−2
This diff is too big to show here.
pkgs/applications/networking/sync/rclone/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/syncplay/default.nix+4−6
This diff is too big to show here.
pkgs/applications/networking/syncthing/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/synology-drive-client/default.nix+4−4
This diff is too big to show here.
pkgs/applications/networking/termius/default.nix+3−3
This diff is too big to show here.
pkgs/applications/networking/tetrd/default.nix+1−1
This diff is too big to show here.
pkgs/applications/networking/zerobin/default.nix+1−1
This diff is too big to show here.
pkgs/applications/office/banking/default.nix+8−10
This diff is too big to show here.
pkgs/applications/office/beamerpresenter/default.nix+22−45
This diff is too big to show here.
pkgs/applications/office/bookworm/default.nix+2
This diff is too big to show here.
pkgs/applications/office/buho/default.nixdeleted−58
This diff is too big to show here.
pkgs/applications/office/calligra/default.nix−16
This diff is too big to show here.
pkgs/applications/office/fava/default.nix+3−15
This diff is too big to show here.
pkgs/applications/office/foliate/default.nix+1
This diff is too big to show here.
pkgs/applications/office/gnumeric/default.nix+2−3
This diff is too big to show here.
pkgs/applications/office/jameica/default.nix+1−1
This diff is too big to show here.
pkgs/applications/kde/kalendar.nix → pkgs/applications/office/kalendar/default.nixrenamed+10−1
This diff is too big to show here.
pkgs/applications/office/khronos/default.nix+9−2
This diff is too big to show here.
pkgs/applications/office/ledger/default.nix+2−2
This diff is too big to show here.
pkgs/applications/office/libreoffice/soffice-template.desktopdeleted−6
This diff is too big to show here.
pkgs/applications/office/libreoffice/wrapper.nix+12−25
This diff is too big to show here.
pkgs/applications/office/morgen/default.nix+2−2
This diff is too big to show here.
pkgs/applications/office/paperless-ngx/default.nix → pkgs/applications/office/paperless-ng/default.nixrenamed+34−16
This diff is too big to show here.
pkgs/applications/office/paperwork/paperwork-gtk.nix+1−1
This diff is too big to show here.
pkgs/applications/office/portfolio/default.nix+3−3
This diff is too big to show here.
pkgs/applications/office/qownnotes/default.nix+2−2
This diff is too big to show here.
pkgs/applications/office/trilium/default.nix+3−3
This diff is too big to show here.
pkgs/applications/office/tusk/default.nix+2−3
This diff is too big to show here.
pkgs/applications/office/zotero/default.nix+2−2
This diff is too big to show here.
pkgs/applications/radio/cubicsdr/default.nix+21−3
This diff is too big to show here.
pkgs/applications/radio/flex-ncat/default.nix−1
This diff is too big to show here.
pkgs/applications/radio/flrig/default.nix+2−4
This diff is too big to show here.
pkgs/applications/radio/gnss-sdr/default.nix−6
This diff is too big to show here.
pkgs/applications/radio/gnuradio/3.9.nix+2−8
This diff is too big to show here.
pkgs/applications/radio/gnuradio/default.nix+3−10
This diff is too big to show here.
pkgs/applications/radio/gnuradio/wrapper.nix+1−1
This diff is too big to show here.
pkgs/applications/radio/gqrx/default.nix+2−2
This diff is too big to show here.
pkgs/applications/radio/kalibrate-rtl/default.nix+5−5
This diff is too big to show here.
pkgs/applications/radio/rtl-ais/default.nix−1
This diff is too big to show here.
pkgs/applications/radio/rtl-sdr/default.nix+7−11
This diff is too big to show here.
pkgs/applications/radio/splat/default.nixdeleted−55
This diff is too big to show here.
pkgs/applications/radio/uhd/default.nix−2
This diff is too big to show here.
pkgs/applications/science/astronomy/astrolabe-generator/default.nix−1
This diff is too big to show here.
pkgs/applications/science/astronomy/stellarium/default.nix+2−2
This diff is too big to show here.
pkgs/applications/science/biology/bayescan/default.nix−1
This diff is too big to show here.
pkgs/applications/science/biology/blast/default.nix+2−2
This diff is too big to show here.
pkgs/applications/science/biology/bwa/default.nix−2
This diff is too big to show here.
pkgs/applications/science/biology/clustal-omega/default.nix−1
This diff is too big to show here.
pkgs/applications/science/biology/cmtk/default.nix+1−4
This diff is too big to show here.
pkgs/applications/science/biology/dcm2niix/default.nix+7−42
This diff is too big to show here.
pkgs/applications/science/biology/dcm2niix/dont-fetch-external-libs.patchdeleted−36
This diff is too big to show here.
pkgs/applications/science/biology/eggnog-mapper/default.nix+16−30
This diff is too big to show here.
pkgs/applications/science/biology/megahit/default.nix−3
This diff is too big to show here.
pkgs/applications/science/biology/picard-tools/default.nix−1
This diff is too big to show here.
pkgs/applications/science/biology/quast/default.nix+3−1
This diff is too big to show here.
pkgs/applications/science/biology/samtools/default.nix+1−8
This diff is too big to show here.
pkgs/applications/science/biology/tebreak/default.nix+2−2
This diff is too big to show here.
pkgs/applications/science/computer-architecture/qtrvsim/default.nix+2−2
This diff is too big to show here.
pkgs/applications/science/electronics/verilator/default.nix+2−2
This diff is too big to show here.
pkgs/applications/science/engineering/brmodelo/default.nixdeleted−109
This diff is too big to show here.
pkgs/applications/science/logic/abc/default.nix+3−3
This diff is too big to show here.
pkgs/applications/science/logic/coq/default.nix+14−14
This diff is too big to show here.
pkgs/applications/science/logic/cvc5/default.nixdeleted−34
This diff is too big to show here.
pkgs/applications/science/logic/easycrypt/default.nixdeleted−50
This diff is too big to show here.
pkgs/applications/science/logic/easycrypt/runtest.nixdeleted−24
This diff is too big to show here.
pkgs/applications/science/logic/elan/default.nix+3−3
This diff is too big to show here.
pkgs/applications/science/logic/fast-downward/default.nix+12−19
This diff is too big to show here.
pkgs/applications/science/logic/isabelle/default.nix+2−31
This diff is too big to show here.
pkgs/applications/science/logic/key/default.nix+3−2
This diff is too big to show here.
pkgs/applications/science/logic/naproche/default.nix+3−3
This diff is too big to show here.
pkgs/applications/science/logic/symbiyosys/default.nix−1
This diff is too big to show here.
pkgs/applications/science/logic/symfpu/default.nixdeleted−26
This diff is too big to show here.
pkgs/applications/science/logic/tlaplus/toolbox.nix+1−1
This diff is too big to show here.
pkgs/applications/science/machine-learning/finalfusion-utils/default.nix−1
This diff is too big to show here.
pkgs/applications/science/math/adolc/default.nixdeleted−23
This diff is too big to show here.
pkgs/applications/science/math/caffe/default.nix+3−7
This diff is too big to show here.
pkgs/applications/science/math/calc/default.nix+2−2
This diff is too big to show here.
pkgs/applications/science/math/calculix/calculix.patch+9−10
This diff is too big to show here.
pkgs/applications/science/math/calculix/default.nix+3−6
This diff is too big to show here.
pkgs/applications/science/math/cntk/default.nix+2−6
This diff is too big to show here.
pkgs/applications/science/math/giac/default.nix+16−12
This diff is too big to show here.
pkgs/applications/science/math/mxnet/default.nix+2−6
This diff is too big to show here.
pkgs/applications/science/math/qalculate-gtk/default.nix+2−2
This diff is too big to show here.
pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patchdeleted−13
This diff is too big to show here.
pkgs/applications/science/math/sage/sage-src.nix+7−31
This diff is too big to show here.
pkgs/applications/science/math/wolfram-engine/default.nixdeleted−143
This diff is too big to show here.
pkgs/applications/science/math/wolfram-engine/l10ns.nixdeleted−51
This diff is too big to show here.
pkgs/applications/science/math/wolfram-engine/notebook.nixdeleted−9
This diff is too big to show here.
pkgs/applications/science/medicine/xmedcon/default.nix+2−2
This diff is too big to show here.
pkgs/applications/science/misc/bada-bib/default.nix+3−3
This diff is too big to show here.
pkgs/applications/science/misc/colmap/default.nix+6−22
This diff is too big to show here.
pkgs/applications/science/misc/cwltool/default.nix+2−2
This diff is too big to show here.
pkgs/applications/science/misc/fityk/default.nix−4
This diff is too big to show here.
pkgs/applications/science/misc/netlogo/default.nix+1−1
This diff is too big to show here.
pkgs/applications/science/misc/root/5.nix−5
This diff is too big to show here.
pkgs/applications/science/misc/snakemake/default.nix+13−27
This diff is too big to show here.
pkgs/applications/science/molecular-dynamics/gromacs/default.nix+2−2
This diff is too big to show here.
pkgs/applications/science/physics/xfitter/default.nix+30−34
This diff is too big to show here.
pkgs/applications/science/physics/xfitter/undefined_behavior.patchnew file+454
This diff is too big to show here.
pkgs/applications/science/programming/jflap/default.nixdeleted−32
This diff is too big to show here.
pkgs/applications/science/robotics/mavproxy/default.nix+2−2
This diff is too big to show here.
pkgs/applications/science/robotics/sumorobot-manager/default.nix+1−1
This diff is too big to show here.
pkgs/applications/terminal-emulators/alacritty/default.nix+2
This diff is too big to show here.
pkgs/applications/terminal-emulators/foot/default.nix+2−3
This diff is too big to show here.
pkgs/applications/terminal-emulators/hyper/default.nix+2−2
This diff is too big to show here.
pkgs/applications/terminal-emulators/syncterm/default.nix−2
This diff is too big to show here.
pkgs/applications/terminal-emulators/wezterm/default.nix+10−21
This diff is too big to show here.
pkgs/applications/version-management/commit-formatter/default.nix−1
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix−1
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix−1
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/gh/default.nix+2−2
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/ghorg/default.nix+2−2
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix−1
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/git-branchless/default.nix+3−3
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/git-cliff/default.nix+3−3
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/git-crypt/default.nix+7−17
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/git-extras/default.nix+2−2
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix+12−5
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/git-machete/default.nix+3−3
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/git/default.nix+16−18
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/gitbatch/default.nix+10−12
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/gitbatch/deps.nixnew file+543
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/glab/default.nix+1−10
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/scmpuff/default.nix+9−14
This diff is too big to show here.
pkgs/applications/version-management/git-and-tools/scmpuff/deps.nixnew file+273
This diff is too big to show here.
pkgs/applications/version-management/git-lfs/default.nix+2−2
This diff is too big to show here.
pkgs/applications/version-management/git-repo/default.nix+2−2
This diff is too big to show here.
pkgs/applications/version-management/git-review/default.nix+2−2
This diff is too big to show here.
pkgs/applications/version-management/git-sizer/default.nix+6−15
This diff is too big to show here.
pkgs/applications/version-management/gitea/default.nix+2−2
This diff is too big to show here.
pkgs/applications/version-management/gitkraken/default.nix+4−4
This diff is too big to show here.
pkgs/applications/version-management/gitlab/data.json+7−7
This diff is too big to show here.
pkgs/applications/version-management/gitlab/gitaly/Gemfile+1−1
This diff is too big to show here.
pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock+13−13
This diff is too big to show here.
pkgs/applications/version-management/gitlab/gitaly/default.nix+4−4
This diff is too big to show here.
pkgs/applications/version-management/gitlab/gitaly/gemset.nix+16−16
This diff is too big to show here.
pkgs/applications/version-management/gitlab/gitlab-shell/default.nix+3−3
This diff is too big to show here.
pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix+2−2
This diff is too big to show here.
pkgs/applications/version-management/gitlab/rubyEnv/Gemfile+9−10
This diff is too big to show here.
pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock+83−87
This diff is too big to show here.
pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix+64−75
This diff is too big to show here.
pkgs/applications/version-management/gitoxide/default.nix+3−3
This diff is too big to show here.
pkgs/applications/version-management/jujutsu/default.nix+2−3
This diff is too big to show here.
pkgs/applications/version-management/monotone/default.nix−2
This diff is too big to show here.
pkgs/applications/version-management/p4/default.nix+1−1
This diff is too big to show here.
pkgs/applications/version-management/pijul/default.nix+3−3
This diff is too big to show here.
pkgs/applications/version-management/rcs/default.nix+9−1
This diff is too big to show here.
pkgs/applications/version-management/redmine/Gemfile+2−2
This diff is too big to show here.
pkgs/applications/version-management/redmine/Gemfile.lock+50−48
This diff is too big to show here.
pkgs/applications/version-management/redmine/default.nix+6−4
This diff is too big to show here.
pkgs/applications/version-management/redmine/gemset.nix+49−39
This diff is too big to show here.
pkgs/applications/version-management/redmine/update.shdeleted−17
This diff is too big to show here.
pkgs/applications/version-management/subversion/default.nix+7−2
This diff is too big to show here.
pkgs/applications/version-management/yadm/default.nix+2−2
This diff is too big to show here.
pkgs/applications/video/ani-cli/default.nix+2−2
This diff is too big to show here.
pkgs/applications/video/celluloid/default.nix+4−2
This diff is too big to show here.
pkgs/applications/video/clickshare-csc1/default.nix+2
This diff is too big to show here.
pkgs/applications/video/davinci-resolve/default.nix+2−2
This diff is too big to show here.
pkgs/applications/video/epgstation/default.nix+5−3
This diff is too big to show here.
pkgs/applications/video/epgstation/update.nix+4−2
This diff is too big to show here.
pkgs/applications/video/f1viewer/default.nix+2−2
This diff is too big to show here.
pkgs/applications/video/ffmpeg-normalize/default.nix+2−2
This diff is too big to show here.
pkgs/applications/video/handbrake/default.nix+2−2
This diff is too big to show here.
pkgs/applications/video/hdhomerun-config-gui/default.nix+1−3
This diff is too big to show here.
pkgs/applications/video/hyperion-ng/default.nixdeleted−50
This diff is too big to show here.
pkgs/applications/video/kodi/add-KODI_WEBSERVER_EXTRA_WHITELIST.patchdeleted−88
This diff is too big to show here.
pkgs/applications/video/kodi/unwrapped.nix+2−17
This diff is too big to show here.
pkgs/applications/video/kodi/wrapper.nix+6
This diff is too big to show here.
pkgs/applications/video/lightworks/default.nix+4−4
This diff is too big to show here.
pkgs/applications/video/mirakurun/default.nix+6−4
This diff is too big to show here.
pkgs/applications/video/mirakurun/update.nix+7−3
This diff is too big to show here.
pkgs/applications/video/mkvtoolnix/default.nix+2−2
This diff is too big to show here.
pkgs/applications/video/mpv/scripts/autocrop.nixdeleted−19
This diff is too big to show here.
pkgs/applications/video/mpv/scripts/autodeint.nixdeleted−19
This diff is too big to show here.
pkgs/applications/video/obs-studio/default.nix+2−2
This diff is too big to show here.
pkgs/applications/video/obs-studio/plugins/default.nix−1
This diff is too big to show here.
pkgs/applications/video/obs-studio/plugins/obs-vkcapture.nixdeleted−35
This diff is too big to show here.
pkgs/applications/video/peek/default.nix+2
This diff is too big to show here.
pkgs/applications/video/vdr/plugins.nix+80−5
This diff is too big to show here.
pkgs/applications/video/vlc/default.nix+2−2
This diff is too big to show here.
pkgs/applications/video/webcamoid/default.nix+9−4
This diff is too big to show here.
pkgs/applications/virtualization/cloud-hypervisor/default.nix+3−3
This diff is too big to show here.
pkgs/applications/virtualization/containerd/default.nix+2−2
This diff is too big to show here.
pkgs/applications/virtualization/crosvm/Cargo.lock+22−31
This diff is too big to show here.
pkgs/applications/virtualization/crosvm/generate-cargo.shdeleted−7
This diff is too big to show here.
pkgs/applications/virtualization/crosvm/update.py+2−10
This diff is too big to show here.
pkgs/applications/virtualization/crosvm/upstream-info.json+5−5
This diff is too big to show here.
pkgs/applications/virtualization/crun/default.nix+2−2
This diff is too big to show here.
pkgs/applications/virtualization/distrobox/default.nix+2−2
This diff is too big to show here.
pkgs/applications/virtualization/docker-slim/default.nix+2−2
This diff is too big to show here.
pkgs/applications/virtualization/ecs-agent/default.nix−1
This diff is too big to show here.
pkgs/applications/virtualization/firectl/default.nix+6−6
This diff is too big to show here.
pkgs/applications/virtualization/firectl/gomod.patchnew file+15
This diff is too big to show here.
pkgs/applications/virtualization/imgcrypt/default.nix+2−2
This diff is too big to show here.
pkgs/applications/virtualization/kvmtool/default.nixdeleted−23
This diff is too big to show here.
pkgs/applications/virtualization/lima/default.nix+3−8
This diff is too big to show here.
pkgs/applications/virtualization/podman-tui/default.nix+4−4
This diff is too big to show here.
pkgs/applications/virtualization/podman/default.nix−1
This diff is too big to show here.
pkgs/applications/virtualization/qemu/allow-virtfs-on-darwin.patchnew file+77
This diff is too big to show here.
pkgs/applications/virtualization/qemu/default.nix+70−18
This diff is too big to show here.
pkgs/applications/virtualization/qemu/provide-fallback-for-utimensat.patch+4−4
This diff is too big to show here.
pkgs/applications/virtualization/qemu/rename-9p-util.patchnew file+54
This diff is too big to show here.
pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patchdeleted−208
This diff is too big to show here.
pkgs/applications/virtualization/virt-manager/default.nix+2−12
This diff is too big to show here.
pkgs/applications/virtualization/virtualbox/guest-additions/default.nix+7−3
This diff is too big to show here.
pkgs/applications/virtualization/vmware-workstation/default.nixdeleted−341
This diff is too big to show here.
pkgs/applications/virtualization/vmware-workstation/vmware-bootstrapdeleted−11
This diff is too big to show here.
pkgs/applications/virtualization/vmware-workstation/vmware-configdeleted−21
This diff is too big to show here.
pkgs/applications/virtualization/vmware-workstation/vmware-installer-bootstrapdeleted−5
This diff is too big to show here.
pkgs/applications/virtualization/vmware-workstation/vmware-modconfigdeleted−8
This diff is too big to show here.
pkgs/applications/window-managers/afterstep/default.nix+1−13
This diff is too big to show here.
pkgs/applications/window-managers/herbstluftwm/default.nix+4−9
This diff is too big to show here.
pkgs/applications/window-managers/i3/status-rust.nix+3−3
This diff is too big to show here.
pkgs/applications/window-managers/phosh/default.nix+2−2
This diff is too big to show here.
pkgs/applications/window-managers/sway/lock-effects.nix−8
This diff is too big to show here.
pkgs/applications/window-managers/wmfs/default.nix+5−1
This diff is too big to show here.
pkgs/applications/window-managers/wmii-hg/default.nixnew file+46
This diff is too big to show here.
pkgs/applications/window-managers/wmii/default.nixdeleted−72
This diff is too big to show here.
pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix+1−1
This diff is too big to show here.
pkgs/build-support/build-graalvm-native-image/default.nix−2
This diff is too big to show here.
pkgs/build-support/docker/default.nix+2−1
This diff is too big to show here.
pkgs/build-support/dotnet/build-dotnet-module/default.nix+5−10
This diff is too big to show here.
pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh+1−2
This diff is too big to show here.
pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-check-hook.sh+1−2
This diff is too big to show here.
pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-configure-hook.sh+1−5
This diff is too big to show here.
pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh+4−5
This diff is too big to show here.
pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh+1−2
This diff is too big to show here.
pkgs/build-support/dotnet/make-nuget-source/default.nix+18−26
This diff is too big to show here.
pkgs/build-support/dotnet/nuget-to-nix/default.nix+3−25
This diff is too big to show here.
pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh+1−3
This diff is too big to show here.
pkgs/build-support/emacs/wrapper.nix+2−16
This diff is too big to show here.
pkgs/build-support/emacs/wrapper.sh+1−1
This diff is too big to show here.
pkgs/build-support/fetchfirefoxaddon/default.nix+2−2
This diff is too big to show here.
pkgs/build-support/fetchgit/default.nix+1−2
This diff is too big to show here.
pkgs/build-support/fetchnextcloudapp/default.nix+6−1
This diff is too big to show here.
pkgs/build-support/fetchurl/default.nix+1−1
This diff is too big to show here.
pkgs/build-support/fetchurl/mirrors.nix−1
This diff is too big to show here.
pkgs/build-support/kernel/make-initrd-ng-tool.nix+1−8
This diff is too big to show here.
pkgs/build-support/kernel/make-initrd-ng.nix+2−16
This diff is too big to show here.
pkgs/build-support/kernel/make-initrd-ng/src/main.rs+7−15
This diff is too big to show here.
pkgs/build-support/kernel/make-initrd.nix+2−2
This diff is too big to show here.
pkgs/build-support/kernel/make-initrd.sh+1−1
This diff is too big to show here.
pkgs/build-support/make-darwin-bundle/default.nix+4−4
This diff is too big to show here.
pkgs/build-support/ocaml/dune.nix+2−2
This diff is too big to show here.
pkgs/build-support/ocaml/oasis.nix+1−1
This diff is too big to show here.
pkgs/build-support/rust/build-rust-crate/build-crate.nix+2−3
This diff is too big to show here.
pkgs/build-support/rust/build-rust-crate/configure-crate.nix+1−2
This diff is too big to show here.
pkgs/build-support/rust/build-rust-crate/default.nix+4−11
This diff is too big to show here.
pkgs/build-support/rust/default-crate-overrides.nix+1−1
This diff is too big to show here.
pkgs/build-support/setup-hooks/auto-patchelf.py+17−23
This diff is too big to show here.
pkgs/build-support/setup-hooks/auto-patchelf.sh+1−9
This diff is too big to show here.
pkgs/build-support/setup-hooks/desktop-to-darwin-bundle.sh+6−26
This diff is too big to show here.
pkgs/build-support/setup-hooks/make-wrapper.sh−5
This diff is too big to show here.
pkgs/build-support/setup-hooks/postgresql-test-hook/default.nixdeleted−9
This diff is too big to show here.
pkgs/build-support/setup-hooks/postgresql-test-hook/postgresql-test-hook.shdeleted−79
This diff is too big to show here.
pkgs/build-support/setup-hooks/postgresql-test-hook/test.nixdeleted−27
This diff is too big to show here.
pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh+4
This diff is too big to show here.
pkgs/build-support/testers/test-equal-derivation.nix → pkgs/build-support/test-equal-derivation.nixrenamed+17
This diff is too big to show here.
pkgs/build-support/testers/default.nixdeleted−18
This diff is too big to show here.
pkgs/build-support/trivial-builders.nix+36−7
This diff is too big to show here.
pkgs/build-support/writers/default.nix+2−2
This diff is too big to show here.
pkgs/common-updater/git-updater.nix+2−6
This diff is too big to show here.
pkgs/common-updater/scripts/list-git-tags+1−1
This diff is too big to show here.
pkgs/data/documentation/scheme-manpages/default.nix+3−3
This diff is too big to show here.
pkgs/data/fonts/amiri/default.nix+2−2
This diff is too big to show here.
pkgs/data/fonts/annapurna-sil/default.nixdeleted−29
This diff is too big to show here.
pkgs/data/fonts/comic-mono/comic-mono-weight.confdeleted−14
This diff is too big to show here.
pkgs/data/fonts/comic-mono/default.nixdeleted−35
This diff is too big to show here.
pkgs/data/fonts/ezra-sil/default.nixdeleted−26
This diff is too big to show here.
pkgs/data/fonts/galatia-sil/default.nixdeleted−29
This diff is too big to show here.
pkgs/data/fonts/iosevka/bin.nix+2−3
This diff is too big to show here.
pkgs/data/fonts/iosevka/variants.nix+92−92
This diff is too big to show here.
pkgs/data/fonts/kacst/default.nixdeleted−22
This diff is too big to show here.
pkgs/data/fonts/lao/default.nixdeleted−22
This diff is too big to show here.
pkgs/data/fonts/sarasa-gothic/default.nix+2−2
This diff is too big to show here.
pkgs/data/fonts/sudo/default.nix+2−2
This diff is too big to show here.
pkgs/data/fonts/times-newer-roman/default.nix+1−1
This diff is too big to show here.
pkgs/data/fonts/uni-vga/default.nix+6−4
This diff is too big to show here.
pkgs/data/fonts/unifont/default.nix+6−4
This diff is too big to show here.
pkgs/data/fonts/unifont_upper/default.nix+2−2
This diff is too big to show here.
pkgs/data/icons/comixcursors/default.nix+25−5
This diff is too big to show here.
pkgs/data/icons/elementary-xfce-icon-theme/default.nix+1−1
This diff is too big to show here.
pkgs/data/icons/luna-icons/default.nix+2−5
This diff is too big to show here.
pkgs/data/misc/cacert/default.nix+2−2
This diff is too big to show here.
pkgs/data/misc/cacert/update.sh+10−7
This diff is too big to show here.
pkgs/data/misc/cldr-emoji-annotation/default.nixnew file+27
This diff is too big to show here.
pkgs/data/misc/dns-root-data/default.nix+1−2
This diff is too big to show here.
pkgs/data/misc/freepats/default.nix+2−3
This diff is too big to show here.
pkgs/data/misc/hackage/pin.json+4−4
This diff is too big to show here.
pkgs/data/misc/nixos-artwork/wallpapers.nix−16
This diff is too big to show here.
pkgs/data/misc/shared-mime-info/default.nix−1
This diff is too big to show here.
pkgs/data/misc/wireless-regdb/default.nix+2−2
This diff is too big to show here.
pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix+1−5
This diff is too big to show here.
pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/fix-man-options-duplication.patchdeleted−11
This diff is too big to show here.
pkgs/data/themes/flat-remix-gnome/default.nix+4−4
This diff is too big to show here.
pkgs/data/themes/flat-remix-gtk/default.nix+2−2
This diff is too big to show here.
pkgs/data/themes/gnome-breeze/default.nixnew file+29
This diff is too big to show here.
pkgs/data/themes/orchis-theme/default.nix+2−2
This diff is too big to show here.
pkgs/data/themes/vimix/default.nix+4−12
This diff is too big to show here.
pkgs/data/themes/yaru/default.nix+5−2
This diff is too big to show here.
pkgs/desktops/cdesktopenv/default.nix+2−15
This diff is too big to show here.
pkgs/desktops/enlightenment/econnman/default.nix+4−4
This diff is too big to show here.
pkgs/desktops/enlightenment/ecrire/default.nix+1−1
This diff is too big to show here.
pkgs/desktops/enlightenment/efl/default.nix+1−1
This diff is too big to show here.
pkgs/desktops/enlightenment/enlightenment/default.nix+1−1
This diff is too big to show here.
pkgs/desktops/enlightenment/ephoto/default.nix+1−1
This diff is too big to show here.
pkgs/desktops/enlightenment/evisum/default.nix+1−1
This diff is too big to show here.
pkgs/desktops/enlightenment/rage/default.nix+1−1
This diff is too big to show here.
pkgs/desktops/enlightenment/terminology/default.nix+1−1
This diff is too big to show here.
pkgs/desktops/gnome-2/platform/libglade/default.nix+5−2
This diff is too big to show here.
pkgs/desktops/gnome/apps/ghex/default.nix+27−8
This diff is too big to show here.
pkgs/desktops/gnome/apps/gnome-boxes/default.nix−7
This diff is too big to show here.
pkgs/desktops/gnome/apps/gnome-boxes/fix-gir-lib-path.patchdeleted−22
This diff is too big to show here.
pkgs/desktops/gnome/apps/gnome-calendar/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/gnome/apps/gnome-connections/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/gnome/apps/gnome-maps/default.nix+13−2
This diff is too big to show here.
pkgs/desktops/gnome/apps/gnome-music/default.nix+5−4
This diff is too big to show here.
pkgs/desktops/gnome/apps/gnome-nettool/default.nix+11−61
This diff is too big to show here.
pkgs/desktops/gnome/apps/gnome-text-editor/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/gnome/apps/gnome-todo/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/gnome/core/eog/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/gnome/core/epiphany/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/gnome/core/evince/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/gnome/core/evolution-data-server/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/gnome/core/gnome-initial-setup/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/gnome/core/gnome-software/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/gnome/core/mutter/3.38/default.nix+1−3
This diff is too big to show here.
pkgs/desktops/gnome/core/mutter/default.nix+1−3
This diff is too big to show here.
pkgs/desktops/gnome/core/nautilus/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/gnome/core/simple-scan/default.nix+4−3
This diff is too big to show here.
pkgs/desktops/gnome/core/zenity/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/gnome/default.nix+15
This diff is too big to show here.
pkgs/desktops/gnome/extensions/arcmenu/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/gnome/extensions/collisions.json−32
This diff is too big to show here.
pkgs/desktops/gnome/extensions/extensionRenames.nix+12−15
This diff is too big to show here.
pkgs/desktops/gnome/extensions/extensions.json+223−248
This diff is too big to show here.
pkgs/desktops/gnome/extensions/impatience/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/gnome/extensions/manuallyPackaged.nix+1
This diff is too big to show here.
pkgs/desktops/gnome/extensions/night-theme-switcher/default.nixnew file+35
This diff is too big to show here.
pkgs/desktops/gnome/extensions/update-extensions.py+47−66
This diff is too big to show here.
pkgs/desktops/gnome/games/hitori/default.nix+14−2
This diff is too big to show here.
pkgs/desktops/gnome/games/swell-foop/default.nix+4−3
This diff is too big to show here.
pkgs/desktops/gnome/games/tali/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/lumina/lumina-calculator/default.nix+1−1
This diff is too big to show here.
pkgs/desktops/lumina/lumina-pdf/default.nix+1−1
This diff is too big to show here.
pkgs/desktops/lumina/lumina/default.nix+1−1
This diff is too big to show here.
pkgs/desktops/lxqt/compton-conf/default.nix+1−1
This diff is too big to show here.
pkgs/desktops/lxqt/default.nix+5−2
This diff is too big to show here.
pkgs/desktops/lxqt/libfm-qt/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/liblxqt/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/libqtxdg/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/libsysstat/default.nix+1−1
This diff is too big to show here.
pkgs/desktops/lxqt/lximage-qt/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-about/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-admin/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-archiver/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-build-tools/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-config/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-globalkeys/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-notificationd/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-panel/default.nix+3−4
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-policykit/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-powermanagement/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-qtplugin/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-runner/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-session/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-sudo/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/lxqt-themes/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/obconf-qt/default.nix+1−1
This diff is too big to show here.
pkgs/desktops/lxqt/pavucontrol-qt/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/pcmanfm-qt/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/qlipper/default.nix+1−1
This diff is too big to show here.
pkgs/desktops/lxqt/qps/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/qterminal/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/qtermwidget/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/screengrab/default.nix+3−3
This diff is too big to show here.
pkgs/desktops/lxqt/xdg-desktop-portal-lxqt/default.nixdeleted−41
This diff is too big to show here.
pkgs/desktops/mate/caja-extensions/default.nix+1−17
This diff is too big to show here.
pkgs/desktops/mate/caja-extensions/hardcode-gsettings.patchdeleted−169
This diff is too big to show here.
pkgs/desktops/mate/default.nix−2
This diff is too big to show here.
pkgs/desktops/mate/mate-control-center/default.nix+1−3
This diff is too big to show here.
pkgs/desktops/mate/mate-panel/default.nix−7
This diff is too big to show here.
pkgs/desktops/mate/mate-settings-daemon/wrapped.nixdeleted−22
This diff is too big to show here.
pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/pantheon/apps/switchboard/default.nix+15−2
This diff is too big to show here.
pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix+5−12
This diff is too big to show here.
pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix+6−6
This diff is too big to show here.
pkgs/desktops/pantheon/default.nix−2
This diff is too big to show here.
pkgs/desktops/pantheon/desktop/gala/default.nix+15−4
This diff is too big to show here.
pkgs/desktops/pantheon/granite/7/default.nixdeleted−73
This diff is too big to show here.
pkgs/desktops/pantheon/services/elementary-notifications/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/plasma-5/3rdparty/kwin/scripts/dynamic-workspaces.nix+1−1
This diff is too big to show here.
pkgs/desktops/xfce/applications/xfce4-terminal/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/xfce/core/xfce4-panel/default.nix+2−2
This diff is too big to show here.
pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin/default.nix+2−2
This diff is too big to show here.
pkgs/development/beam-modules/elvis-erlang/default.nix+1−2
This diff is too big to show here.
pkgs/development/beam-modules/erlang-ls/default.nix+3−3
This diff is too big to show here.
pkgs/development/beam-modules/erlang-ls/rebar-deps.nix+7−8
This diff is too big to show here.
pkgs/development/compilers/abcl/default.nix+1−6
This diff is too big to show here.
pkgs/development/compilers/adoptopenjdk-bin/generate-sources.py−1
This diff is too big to show here.
pkgs/development/compilers/adoptopenjdk-bin/sources.json+100−244
This diff is too big to show here.
pkgs/development/compilers/alan/2.nixdeleted−31
This diff is too big to show here.
pkgs/development/compilers/alan/default.nixdeleted−48
This diff is too big to show here.
pkgs/development/compilers/algol68g/default.nix−1
This diff is too big to show here.
pkgs/development/compilers/bluespec/default.nix+5−13
This diff is too big to show here.
pkgs/development/compilers/bupc/default.nix+1
This diff is too big to show here.
pkgs/development/compilers/chez/default.nix+3−3
This diff is too big to show here.
pkgs/development/compilers/chicken/5/chicken.nix+1−6
This diff is too big to show here.
pkgs/development/compilers/chicken/5/eggs.nix+4−464
This diff is too big to show here.
pkgs/development/compilers/chicken/5/eggs.scm−8
This diff is too big to show here.
pkgs/development/compilers/coreclr/default.nixnew file+100
This diff is too big to show here.
pkgs/development/compilers/crystal/build-package.nix+1−5
This diff is too big to show here.
pkgs/development/compilers/crystal/default.nix+1−1
This diff is too big to show here.
pkgs/development/compilers/cudatoolkit/auto-add-opengl-runpath-hook.shdeleted−14
This diff is too big to show here.
pkgs/development/compilers/cudatoolkit/common.nix−1
This diff is too big to show here.
pkgs/development/compilers/cudatoolkit/default.nixnew file+94
This diff is too big to show here.
pkgs/development/compilers/cudatoolkit/extension.nixdeleted−15
This diff is too big to show here.
pkgs/development/compilers/cudatoolkit/redist/build-cuda-redist-package.nixdeleted−51
This diff is too big to show here.
pkgs/development/compilers/cudatoolkit/redist/extension.nixdeleted−32
This diff is too big to show here.
pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.4.4.jsondeleted−862
This diff is too big to show here.
pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.5.2.jsondeleted−873
This diff is too big to show here.
pkgs/development/compilers/cudatoolkit/redist/manifests/redistrib_11.6.2.jsondeleted−873
This diff is too big to show here.
pkgs/development/compilers/cudatoolkit/redist/overrides.nixdeleted−72
This diff is too big to show here.
pkgs/development/compilers/cudatoolkit/versions.tomldeleted−61
This diff is too big to show here.
pkgs/development/compilers/dmd/binary.nix+2−3
This diff is too big to show here.
pkgs/development/compilers/dotnet/default.nix+27−27
This diff is too big to show here.
pkgs/development/compilers/fennel/default.nix+2−2
This diff is too big to show here.
pkgs/development/compilers/gcc/10/default.nix+1−7
This diff is too big to show here.
pkgs/development/compilers/gcc/4.8/default.nix+1−1
This diff is too big to show here.
pkgs/development/compilers/gcc/4.9/default.nix+1−1
This diff is too big to show here.
pkgs/development/compilers/gcc/6/default.nix−1
This diff is too big to show here.
pkgs/development/compilers/gcc/7/default.nix−1
This diff is too big to show here.
pkgs/development/compilers/gcc/8/default.nix−1
This diff is too big to show here.
pkgs/development/compilers/gcc/9/default.nix−1
This diff is too big to show here.
pkgs/development/compilers/ghc/8.10.2-binary.nix−14
This diff is too big to show here.
pkgs/development/compilers/ghc/8.10.7-binary.nix+1−14
This diff is too big to show here.
pkgs/development/compilers/ghc/8.10.7.nix+1−1
This diff is too big to show here.
pkgs/development/compilers/ghc/9.0.2.nix−9
This diff is too big to show here.
pkgs/development/compilers/ghc/head.nix+3−3
This diff is too big to show here.
pkgs/development/compilers/ghcjs/8.10/common-overrides.nix+3−32
This diff is too big to show here.
pkgs/development/compilers/ghcjs/8.10/default.nix+1−2
This diff is too big to show here.
pkgs/development/compilers/glslang/default.nix+2−2
This diff is too big to show here.
pkgs/development/compilers/go-jsonnet/default.nix+2−2
This diff is too big to show here.
pkgs/development/compilers/go/1.16.nix+2−1
This diff is too big to show here.
pkgs/development/compilers/go/1.17.nix+4−3
This diff is too big to show here.
pkgs/development/compilers/go/1.18.nix+4−3
This diff is too big to show here.
pkgs/development/compilers/graalvm/community-edition/default.nix+29−16
This diff is too big to show here.
pkgs/development/compilers/graalvm/community-edition/graalvm11-ce-sources.json+56−24
This diff is too big to show here.
pkgs/development/compilers/graalvm/community-edition/graalvm17-ce-sources.json+42−28
This diff is too big to show here.
pkgs/development/compilers/graalvm/community-edition/mkGraal.nix+71−94
This diff is too big to show here.
pkgs/development/compilers/graalvm/community-edition/update.nix+9−11
This diff is too big to show here.
pkgs/development/compilers/graalvm/enterprise-edition.nixnew file+183
This diff is too big to show here.
pkgs/development/compilers/hare/config-template.mkdeleted−27
This diff is too big to show here.
pkgs/development/compilers/hare/hare.nixdeleted−93
This diff is too big to show here.
pkgs/development/compilers/hare/harec.nixdeleted−45
This diff is too big to show here.
pkgs/development/compilers/inklecate/default.nix+1−1
This diff is too big to show here.
pkgs/development/compilers/inklecate/deps-darwin.nix+1−1
This diff is too big to show here.
pkgs/development/compilers/inklecate/deps-linux.nix+1−1
This diff is too big to show here.
pkgs/development/compilers/jasmin-compiler/default.nixdeleted−41
This diff is too big to show here.
pkgs/development/compilers/kotlin/default.nix+2−2
This diff is too big to show here.
pkgs/development/compilers/kotlin/native.nix+4−4
This diff is too big to show here.
pkgs/development/compilers/ldc/binary.nix+2−3
This diff is too big to show here.
pkgs/development/compilers/llvm/10/llvm/default.nix−6
This diff is too big to show here.
pkgs/development/compilers/llvm/11/llvm/default.nix−6
This diff is too big to show here.
pkgs/development/compilers/llvm/12/llvm/default.nix−6
This diff is too big to show here.
pkgs/development/compilers/llvm/13/llvm/default.nix−6
This diff is too big to show here.
pkgs/development/compilers/llvm/14/clang/default.nix−1
This diff is too big to show here.
pkgs/development/compilers/llvm/14/default.nix+2−2
This diff is too big to show here.
pkgs/development/compilers/llvm/14/llvm/default.nix−6
This diff is too big to show here.
pkgs/development/compilers/llvm/5/llvm/default.nix−6
This diff is too big to show here.
pkgs/development/compilers/llvm/6/llvm/default.nix−6
This diff is too big to show here.
pkgs/development/compilers/llvm/7/llvm/default.nix−6
This diff is too big to show here.
pkgs/development/compilers/llvm/8/llvm/default.nix−6
This diff is too big to show here.
pkgs/development/compilers/llvm/9/llvm/default.nix−6
This diff is too big to show here.
pkgs/development/compilers/llvm/git/llvm/default.nix−6
This diff is too big to show here.
pkgs/development/compilers/mruby/default.nix+1−9
This diff is too big to show here.
pkgs/development/compilers/mrustc/default.nix−1
This diff is too big to show here.
pkgs/development/compilers/muonlang/default.nix → pkgs/development/compilers/muon/default.nixrenamed
The content is the same.
pkgs/development/compilers/ocaml/generic.nix+5−5
This diff is too big to show here.
pkgs/development/compilers/open-watcom/v2.nix+3−3
This diff is too big to show here.
pkgs/development/compilers/opendylan/bin.nix+2−2
This diff is too big to show here.
pkgs/development/compilers/openjdk/11.nix+5−8
This diff is too big to show here.
pkgs/development/compilers/openjdk/17.nix+3−3
This diff is too big to show here.
pkgs/development/compilers/openjdk/8.nix+1−2
This diff is too big to show here.
pkgs/development/compilers/openjdk/darwin/8.nix−6
This diff is too big to show here.
pkgs/development/compilers/openjdk/fix-library-path-jdk11.patch+3−21
This diff is too big to show here.
pkgs/development/compilers/ponyc/default.nix+11−2
This diff is too big to show here.
pkgs/development/compilers/ponyc/disable-tests.patch+7−9
This diff is too big to show here.
pkgs/development/compilers/ponyc/make-safe-for-sandbox.patch+12−17
This diff is too big to show here.
pkgs/development/compilers/ponyc/pony-corral.nix+2−2
This diff is too big to show here.
pkgs/development/compilers/purescript/purescript/default.nix+7−5
This diff is too big to show here.
pkgs/development/compilers/purescript/purescript/test-minimal-module/Main.js+1−1
This diff is too big to show here.
pkgs/development/compilers/purescript/purescript/test-minimal-module/default.nix+2−2
This diff is too big to show here.
pkgs/development/compilers/qbe/default.nix+3−3
This diff is too big to show here.
pkgs/development/compilers/rust/1_59.nixnew file+64
This diff is too big to show here.
pkgs/development/compilers/rust/1_60.nixdeleted−64
This diff is too big to show here.
pkgs/development/compilers/rust/rustfmt.nix+3−3
This diff is too big to show here.
pkgs/development/compilers/sbcl/2.2.4.nixdeleted−4
This diff is too big to show here.
pkgs/development/compilers/scryer-prolog/cargo.patch+74−27
This diff is too big to show here.
pkgs/development/compilers/scryer-prolog/default.nix+6−19
This diff is too big to show here.
pkgs/development/compilers/scryer-prolog/fix-tests.patchdeleted−29
This diff is too big to show here.
pkgs/development/compilers/solc/default.nix+11−34
This diff is too big to show here.
pkgs/development/compilers/squeak/default.nix+3−1
This diff is too big to show here.
pkgs/development/compilers/swift/default.nix+6
This diff is too big to show here.
pkgs/development/compilers/tinygo/default.nix+1−1
This diff is too big to show here.
pkgs/development/compilers/uasm/default.nix+18−31
This diff is too big to show here.
pkgs/development/compilers/vlang/default.nix+1−1
This diff is too big to show here.
pkgs/development/compilers/yosys/default.nix+2−2
This diff is too big to show here.
pkgs/development/compilers/zulu/8.nix+3−9
This diff is too big to show here.
pkgs/development/compilers/zulu/default.nix+1−7
This diff is too big to show here.
pkgs/development/coq-modules/CoLoR/default.nix+1−2
This diff is too big to show here.
pkgs/development/coq-modules/Verdi/default.nix−3
This diff is too big to show here.
pkgs/development/coq-modules/coqtail-math/default.nix+1−6
This diff is too big to show here.
pkgs/development/coq-modules/flocq/default.nix+2−2
This diff is too big to show here.
pkgs/development/coq-modules/gappalib/default.nix+1−2
This diff is too big to show here.
pkgs/development/coq-modules/mathcomp-word/default.nix+1−2
This diff is too big to show here.
pkgs/development/coq-modules/metacoq/default.nixdeleted−76
This diff is too big to show here.
pkgs/development/coq-modules/metalib/default.nix+3−7
This diff is too big to show here.
pkgs/development/coq-modules/parsec/default.nix+2−6
This diff is too big to show here.
pkgs/development/coq-modules/simple-io/default.nix+3−10
This diff is too big to show here.
pkgs/development/coq-modules/smtcoq/default.nixdeleted−26
This diff is too big to show here.
pkgs/development/coq-modules/tlc/default.nix−2
This diff is too big to show here.
pkgs/development/coq-modules/trakt/default.nixdeleted−24
This diff is too big to show here.
pkgs/development/embedded/fpga/apio/default.nix+4−5
This diff is too big to show here.
pkgs/development/embedded/openocd/default.nix−11
This diff is too big to show here.
pkgs/development/embedded/stm32/stm32flash/default.nix+2−2
This diff is too big to show here.
pkgs/development/gnuradio-modules/osmosdr/default.nix−2
This diff is too big to show here.
pkgs/development/go-modules/generic/default.nix+2−1
This diff is too big to show here.
pkgs/development/go-packages/generic/default.nix+2−1
This diff is too big to show here.
pkgs/development/haskell-modules/configuration-arm.nix+1
This diff is too big to show here.
pkgs/development/haskell-modules/configuration-common.nix+15−79
This diff is too big to show here.
pkgs/development/haskell-modules/configuration-darwin.nix+7−6
This diff is too big to show here.
pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix+9−18
This diff is too big to show here.
pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix+8−16
This diff is too big to show here.
pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix+2−5
This diff is too big to show here.
pkgs/development/haskell-modules/configuration-ghc-head.nix+4−5
This diff is too big to show here.
pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml+3−21
This diff is too big to show here.
pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml+2−7
This diff is too big to show here.
pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml+65−71
This diff is too big to show here.
pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml+1−11
This diff is too big to show here.
pkgs/development/haskell-modules/configuration-nix.nix+3−16
This diff is too big to show here.
pkgs/development/haskell-modules/hackage-packages.nix+1360−2014
This diff is too big to show here.
pkgs/development/interpreters/alda/default.nix+3−3
This diff is too big to show here.
pkgs/development/interpreters/bats/default.nix+2−2
This diff is too big to show here.
pkgs/development/interpreters/clojure/babashka.nix+2−2
This diff is too big to show here.
pkgs/development/interpreters/clojure/default.nix+2−2
This diff is too big to show here.
pkgs/development/interpreters/dart/default.nix+1−6
This diff is too big to show here.
pkgs/development/interpreters/duktape/default.nix−1
This diff is too big to show here.
pkgs/development/interpreters/elixir/1.13.nix+2−2
This diff is too big to show here.
pkgs/development/interpreters/gnu-apl/default.nix+1−3
This diff is too big to show here.
pkgs/development/interpreters/guile/1.8.nix+1
This diff is too big to show here.
pkgs/development/interpreters/guile/2.0.nix+1
This diff is too big to show here.
pkgs/development/interpreters/guile/2.2.nix+1
This diff is too big to show here.
pkgs/development/interpreters/guile/3.0.nix+1
This diff is too big to show here.
pkgs/development/interpreters/joker/default.nix+2−2
This diff is too big to show here.
pkgs/development/interpreters/lolcode/default.nix−1
This diff is too big to show here.
pkgs/development/interpreters/luajit/2.0.nix+3−3
This diff is too big to show here.
pkgs/development/interpreters/luajit/2.1.nix+3−3
This diff is too big to show here.
pkgs/development/interpreters/luajit/default.nix+2−2
This diff is too big to show here.
pkgs/development/interpreters/nickel/default.nixdeleted−33
This diff is too big to show here.
pkgs/development/interpreters/octave/default.nix+10−3
This diff is too big to show here.
pkgs/development/interpreters/perl/default.nix+15−19
This diff is too big to show here.
pkgs/development/interpreters/php/7.4.nix+2−2
This diff is too big to show here.
pkgs/development/interpreters/php/8.0.nix+2−2
This diff is too big to show here.
pkgs/development/interpreters/php/8.1.nix+2−2
This diff is too big to show here.
pkgs/development/interpreters/php/generic.nix+1−5
This diff is too big to show here.
pkgs/development/interpreters/pixie/default.nixnew file+94
This diff is too big to show here.
pkgs/development/interpreters/pixie/dust.nixnew file+46
This diff is too big to show here.
pkgs/development/interpreters/pixie/load_paths.patchnew file+25
This diff is too big to show here.
pkgs/development/interpreters/pixie/make-paths-configurable.patchnew file+119
This diff is too big to show here.
pkgs/development/interpreters/python/cpython/3.11/python-3.x-distutils-C++.patchdeleted−257
This diff is too big to show here.
pkgs/development/interpreters/python/cpython/default.nix+10−16
This diff is too big to show here.
pkgs/development/interpreters/python/default.nix+11−6
This diff is too big to show here.
pkgs/development/interpreters/python/graalpython/default.nixnew file+21
This diff is too big to show here.
pkgs/development/interpreters/python/hooks/default.nix−6
This diff is too big to show here.
pkgs/development/interpreters/python/hooks/setuptools-build-hook.sh−3
This diff is too big to show here.
pkgs/development/interpreters/python/hooks/sphinx-hook.shdeleted−57
This diff is too big to show here.
pkgs/development/interpreters/python/wrapper.nix+2−2
This diff is too big to show here.
pkgs/development/interpreters/racket/default.nix+2−2
This diff is too big to show here.
pkgs/development/interpreters/racket/minimal.nix+1−1
This diff is too big to show here.
pkgs/development/interpreters/rakudo/default.nix+2−2
This diff is too big to show here.
pkgs/development/interpreters/rakudo/moarvm.nix+2−2
This diff is too big to show here.
pkgs/development/interpreters/rakudo/nqp.nix+2−12
This diff is too big to show here.
pkgs/development/interpreters/ruby/default.nix+30−26
This diff is too big to show here.
pkgs/development/interpreters/ruby/patchsets.nix+3−3
This diff is too big to show here.
pkgs/development/interpreters/ruby/rbinstall-new-rubygems-compat.patchdeleted−87
This diff is too big to show here.
pkgs/development/interpreters/sollya/default.nix+2−2
This diff is too big to show here.
pkgs/development/interpreters/supercollider/default.nix+13−36
This diff is too big to show here.
pkgs/development/interpreters/supercollider/plugins/sc3-plugins.nixdeleted−33
This diff is too big to show here.
pkgs/development/interpreters/supercollider/supercollider-3.12.0-env-dirs.patchdeleted−65
This diff is too big to show here.
pkgs/development/interpreters/supercollider/wrapper.nixdeleted−18
This diff is too big to show here.
pkgs/development/interpreters/trealla/default.nix−1
This diff is too big to show here.
pkgs/development/interpreters/wasmtime/default.nix+3−3
This diff is too big to show here.
pkgs/development/interpreters/yex-lang/default.nix−1
This diff is too big to show here.
pkgs/development/interpreters/zuo/default.nixdeleted−23
This diff is too big to show here.
pkgs/development/java-modules/liquibase_redshift_extension/default.nixdeleted−27
This diff is too big to show here.
pkgs/development/java-modules/redshift_jdbc/default.nixdeleted−28
This diff is too big to show here.
pkgs/development/libraries/CoinMP/default.nix−2
This diff is too big to show here.
pkgs/development/libraries/SDL2/default.nix+1−5
This diff is too big to show here.
pkgs/development/libraries/SDL_audiolib/default.nixdeleted−53
This diff is too big to show here.
pkgs/development/libraries/apache-activemq/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/argagg/0001-catch.diffdeleted−20
This diff is too big to show here.
pkgs/development/libraries/argagg/default.nixdeleted−46
This diff is too big to show here.
pkgs/development/libraries/armadillo/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/at-spi2-core/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/audio/libopenmpt/default.nixdeleted−66
This diff is too big to show here.
pkgs/development/libraries/audio/libopenmpt/update.shdeleted−31
This diff is too big to show here.
pkgs/development/libraries/audio/libspecbleach/default.nixdeleted−26
This diff is too big to show here.
pkgs/development/libraries/audio/lilv/default.nix−1
This diff is too big to show here.
pkgs/development/libraries/audio/lv2/default.nix−2
This diff is too big to show here.
pkgs/development/libraries/audio/sratom/default.nix−1
This diff is too big to show here.
pkgs/development/libraries/aws-c-sdkutils/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/aws-sdk-cpp/default.nix+12−41
This diff is too big to show here.
pkgs/development/libraries/bash/bash-preexec/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/bashup-events/generic.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/bc-decaf/default.nixdeleted−36
This diff is too big to show here.
pkgs/development/libraries/bctoolbox/default.nix+5−17
This diff is too big to show here.
pkgs/development/libraries/belcard/default.nix+3−4
This diff is too big to show here.
pkgs/development/libraries/belle-sip/default.nix+9−10
This diff is too big to show here.
pkgs/development/libraries/belr/default.nix+3−4
This diff is too big to show here.
pkgs/development/libraries/boost/1.78.nixdeleted−15
This diff is too big to show here.
pkgs/development/libraries/boost/default.nix−1
This diff is too big to show here.
pkgs/development/libraries/boost/generic.nix+5−23
This diff is too big to show here.
pkgs/development/libraries/bullet/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/bzrtp/default.nix+6−5
This diff is too big to show here.
pkgs/development/libraries/cgreen/default.nix−6
This diff is too big to show here.
pkgs/development/libraries/clucene-core/2.x.nix+1−4
This diff is too big to show here.
pkgs/development/libraries/clucene-core/default.nix−4
This diff is too big to show here.
pkgs/development/libraries/cpp-ipfs-api/default.nix−4
This diff is too big to show here.
pkgs/development/libraries/cpp-utilities/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/cutelyst/default.nix+4−13
This diff is too big to show here.
pkgs/development/libraries/dbus/default.nix−7
This diff is too big to show here.
pkgs/development/libraries/docopt_cpp/default.nix+2−10
This diff is too big to show here.
pkgs/development/libraries/doctest/default.nix+5−5
This diff is too big to show here.
pkgs/development/libraries/duckdb/default.nix+3−36
This diff is too big to show here.
pkgs/development/libraries/entt/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/faudio/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/fcft/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/ffmpegthumbnailer/default.nix+3−3
This diff is too big to show here.
pkgs/development/libraries/flatcc/default.nix−5
This diff is too big to show here.
pkgs/development/libraries/freeimage/default.nix+4−4
This diff is too big to show here.
pkgs/development/libraries/freeimage/unbundle.diff+39−39
This diff is too big to show here.
pkgs/development/libraries/freetype/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gdal/2.4.nix+1−11
This diff is too big to show here.
pkgs/development/libraries/gecode/3.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gensio/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/geos/3.9.nixdeleted−25
This diff is too big to show here.
pkgs/development/libraries/geos/default.nix+6−15
This diff is too big to show here.
pkgs/development/libraries/ghc_filesystem/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/glfw/3.x.nix+5−4
This diff is too big to show here.
pkgs/development/libraries/glib/default.nix+10−8
This diff is too big to show here.
pkgs/development/libraries/glib/elementary-terminal-support.patchdeleted−16
This diff is too big to show here.
pkgs/development/libraries/glib/gnome-console-support.patchdeleted−55
This diff is too big to show here.
pkgs/development/libraries/glibc/common.nix−7
This diff is too big to show here.
pkgs/development/libraries/glibc/default.nix+7−4
This diff is too big to show here.
pkgs/development/libraries/glibmm/2.68.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/glibmm/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/glm/default.nix−5
This diff is too big to show here.
pkgs/development/libraries/glog/default.nix+14−5
This diff is too big to show here.
pkgs/development/libraries/goffice/default.nix+3−3
This diff is too big to show here.
pkgs/development/libraries/goocanvas/2.x.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/graphene-hardened-malloc/default.nix+8−15
This diff is too big to show here.
pkgs/development/libraries/graphene/0001-meson-add-options-for-tests-installation-dirs.patch+59−13
This diff is too big to show here.
pkgs/development/libraries/graphene/default.nix+3−14
This diff is too big to show here.
pkgs/development/libraries/grpc/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gsettings-desktop-schemas/default.nix+3−9
This diff is too big to show here.
pkgs/development/libraries/gspell/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gstreamer/bad/default.nix+3−5
This diff is too big to show here.
pkgs/development/libraries/gstreamer/base/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gstreamer/core/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gstreamer/default.nix−2
This diff is too big to show here.
pkgs/development/libraries/gstreamer/devtools/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gstreamer/ges/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gstreamer/good/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gstreamer/libav/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gstreamer/rtsp-server/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gstreamer/ugly/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gstreamer/vaapi/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gstreamer/viperfx/default.nixdeleted−41
This diff is too big to show here.
pkgs/development/libraries/gtk-frdp/default.nix+5−3
This diff is too big to show here.
pkgs/development/libraries/gtk/4.x.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gtksourceview/5.x.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gusb/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/gvfs/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/htmlcxx/c++17.patchdeleted−24
This diff is too big to show here.
pkgs/development/libraries/htmlcxx/default.nix+4−7
This diff is too big to show here.
pkgs/development/libraries/hunspell/dictionaries.nix+3−2
This diff is too big to show here.
pkgs/development/libraries/hwloc/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/hyperscan/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/igraph/default.nix+2−3
This diff is too big to show here.
pkgs/development/libraries/imath/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/inih/default.nix+3−3
This diff is too big to show here.
pkgs/development/libraries/intel-media-driver/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/intel-media-sdk/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/jarowinkler-cpp/default.nixdeleted−41
This diff is too big to show here.
pkgs/development/libraries/java/commons/daemon/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/jellyfin-ffmpeg/default.nixdeleted−30
This diff is too big to show here.
pkgs/development/libraries/jsoncpp/default.nix+3−27
This diff is too big to show here.
pkgs/development/libraries/kde-frameworks/default.nix+1−1
This diff is too big to show here.
pkgs/development/libraries/kde-frameworks/fetch.sh+1−1
This diff is too big to show here.
pkgs/development/libraries/kde-frameworks/srcs.nix+332−332
This diff is too big to show here.
pkgs/development/libraries/kpmcore/default.nix+18−10
This diff is too big to show here.
pkgs/development/libraries/lasso/default.nix+9−35
This diff is too big to show here.
pkgs/development/libraries/leveldb/default.nix+5−1
This diff is too big to show here.
pkgs/development/libraries/libadwaita/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libarchive/default.nix+32−74
This diff is too big to show here.
pkgs/development/libraries/libargon2/default.nix+1−3
This diff is too big to show here.
pkgs/development/libraries/libavif/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libcef/default.nix+6−6
This diff is too big to show here.
pkgs/applications/networking/instant-messengers/deltachat-desktop/libdeltachat-darwin-dylib.patch → pkgs/development/libraries/libdeltachat/darwin-dylib.patchrenamed
The content is the same.
pkgs/development/libraries/libdeltachat/default.nix+5−3
This diff is too big to show here.
pkgs/development/libraries/libdvbcsa/default.nixdeleted−22
This diff is too big to show here.
pkgs/development/libraries/libe57format/default.nix−9
This diff is too big to show here.
pkgs/development/libraries/libechonest/default.nix−3
This diff is too big to show here.
pkgs/development/libraries/libepoxy/default.nix+3−2
This diff is too big to show here.
pkgs/development/libraries/libevdev/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libgcrypt/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libguestfs/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libhandy/default.nix+2−5
This diff is too big to show here.
pkgs/development/libraries/libinjection/default.nix+4−12
This diff is too big to show here.
pkgs/development/libraries/libinput/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libixp-hg/default.nixnew file+27
This diff is too big to show here.
pkgs/development/libraries/libixp/default.nixdeleted−28
This diff is too big to show here.
pkgs/development/libraries/libjcat/default.nix+3−4
This diff is too big to show here.
pkgs/development/libraries/libjson/default.nix−1
This diff is too big to show here.
pkgs/development/libraries/libkqueue/default.nixdeleted−23
This diff is too big to show here.
pkgs/development/libraries/liblastfm/default.nix−5
This diff is too big to show here.
pkgs/development/libraries/liblinphone/default.nix+9−23
This diff is too big to show here.
pkgs/development/libraries/liblinphone/use-normal-jsoncpp.patchdeleted−57
This diff is too big to show here.
pkgs/development/libraries/libmnl/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libnfc/default.nix+7−10
This diff is too big to show here.
pkgs/development/libraries/libnfnetlink/Use-stdlib-uint-instead-of-u_int.patchnew file+499
This diff is too big to show here.
pkgs/development/libraries/libnfnetlink/default.nix+6−2
This diff is too big to show here.
pkgs/development/libraries/libnftnl/default.nix+1−1
This diff is too big to show here.
pkgs/development/libraries/libngspice/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libosmscout/default.nix+8−9
This diff is too big to show here.
pkgs/development/libraries/libotr/default.nix−2
This diff is too big to show here.
pkgs/development/libraries/libotr/fix-regtest-client.patchdeleted−11
This diff is too big to show here.
pkgs/development/libraries/libpinyin/default.nix+3−3
This diff is too big to show here.
pkgs/development/libraries/libpostal/default.nix+1−1
This diff is too big to show here.
pkgs/development/libraries/libpqxx/6.nix+4−4
This diff is too big to show here.
pkgs/development/libraries/libpqxx/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libqalculate/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libraspberrypi/default.nix+3−3
This diff is too big to show here.
pkgs/development/libraries/libraw/default.nix+4−4
This diff is too big to show here.
pkgs/development/libraries/libraw/unstable.nixdeleted−12
This diff is too big to show here.
pkgs/development/libraries/librealsense/default.nix+3−3
This diff is too big to show here.
pkgs/development/libraries/libslirp/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libsoup/3.x.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libsystemtap/default.nix+6−9
This diff is too big to show here.
pkgs/development/libraries/libtiff/default.nix−30
This diff is too big to show here.
pkgs/development/libraries/libunistring/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libunwind/default.nix+1−9
This diff is too big to show here.
pkgs/development/libraries/libvdpau/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libviperfx/default.nixdeleted−30
This diff is too big to show here.
pkgs/development/libraries/libvirt/default.nix−4
This diff is too big to show here.
pkgs/development/libraries/libvmaf/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libwacom/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/libwebsockets/default.nix+3−14
This diff is too big to show here.
pkgs/development/libraries/libxcrypt/default.nix+2−6
This diff is too big to show here.
pkgs/development/libraries/libxmlb/default.nix+12−4
This diff is too big to show here.
pkgs/development/libraries/libxsmm/default.nix+3−1
This diff is too big to show here.
pkgs/development/libraries/libyang/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/lime/default.nix+5−15
This diff is too big to show here.
pkgs/development/libraries/liquid-dsp/default.nix+5−4
This diff is too big to show here.
pkgs/development/libraries/log4shib/default.nix−2
This diff is too big to show here.
pkgs/development/libraries/mapbox-gl-native/default.nix−5
This diff is too big to show here.
pkgs/development/libraries/mapbox-gl-qml/default.nix+7−4
This diff is too big to show here.
pkgs/development/libraries/maplibre-gl-native/default.nixdeleted−66
This diff is too big to show here.
pkgs/development/libraries/mediastreamer/default.nix+15−22
This diff is too big to show here.
pkgs/development/libraries/mediastreamer/msopenh264.nix+7−6
This diff is too big to show here.
pkgs/development/libraries/mesa/default.nix+6−5
This diff is too big to show here.
pkgs/development/libraries/mimetic/default.nix+2−8
This diff is too big to show here.
pkgs/development/libraries/mlt/qt-5.nix−1
This diff is too big to show here.
pkgs/development/libraries/mpich/default.nix+2−5
This diff is too big to show here.
pkgs/development/libraries/mvapich/default.nix−1
This diff is too big to show here.
pkgs/development/libraries/netcdf-fortran/default.nix−3
This diff is too big to show here.
pkgs/development/libraries/netcdf/default.nix+18−6
This diff is too big to show here.
pkgs/development/libraries/nghttp3/default.nix+3−3
This diff is too big to show here.
pkgs/development/libraries/ngtcp2/default.nix+3−3
This diff is too big to show here.
pkgs/development/libraries/notcurses/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/nss/85_security_load_3.77+.patchdeleted−76
This diff is too big to show here.
pkgs/development/libraries/nss/generic.nix → pkgs/development/libraries/nss/default.nixrenamed+10−8
This diff is too big to show here.
pkgs/development/libraries/nss/esr.nixdeleted−4
This diff is too big to show here.
pkgs/development/libraries/nss/latest.nixdeleted−10
This diff is too big to show here.
pkgs/development/libraries/ntdb/default.nixnew file+51
This diff is too big to show here.
pkgs/development/libraries/openal-soft/default.nix+8−14
This diff is too big to show here.
pkgs/development/libraries/openal-soft/search-out.patch+2−2
This diff is too big to show here.
pkgs/development/libraries/opendht/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/openfst/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/openjpeg/default.nix+1−1
This diff is too big to show here.
pkgs/development/libraries/openssl/default.nix+2−8
This diff is too big to show here.
pkgs/development/libraries/openvino/default.nix+1−3
This diff is too big to show here.
pkgs/development/libraries/ortp/default.nix+4−5
This diff is too big to show here.
pkgs/development/libraries/pcmsolver/default.nix+2−9
This diff is too big to show here.
pkgs/development/libraries/pcre/default.nix+1−1
This diff is too big to show here.
pkgs/development/libraries/pcre2/default.nix+3−1
This diff is too big to show here.
pkgs/development/libraries/pdal/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/phash/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/physics/cernlib/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/physics/lhapdf/maintainer.sh+2−2
This diff is too big to show here.
pkgs/development/libraries/physics/lhapdf/pdf_sets.nix+129−431
This diff is too big to show here.
pkgs/development/libraries/physics/qcdnum/default.nix−4
This diff is too big to show here.
pkgs/development/libraries/pmdk/default.nix+2−4
This diff is too big to show here.
pkgs/development/libraries/pocketsphinx/default.nixnew file+48
This diff is too big to show here.
pkgs/development/libraries/polkit-qt-1/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/poppler/0.61-CVE-2019-9959.patchnew file+20
This diff is too big to show here.
pkgs/development/libraries/poppler/0.61.nixnew file+94
This diff is too big to show here.
pkgs/development/libraries/proj/default.nix+8−17
This diff is too big to show here.
pkgs/development/libraries/protobuf/2.5.nixnew file+10
This diff is too big to show here.
pkgs/development/libraries/protobuf/generic.nixnew file+61
This diff is too big to show here.
pkgs/development/libraries/protolock/default.nix+2
This diff is too big to show here.
pkgs/development/libraries/ptex/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/qca-qt5/2.3.2.nixdeleted−30
This diff is too big to show here.
pkgs/development/libraries/qca-qt5/default.nix+10−5
This diff is too big to show here.
pkgs/development/libraries/qrupdate/default.nix+6−8
This diff is too big to show here.
pkgs/development/libraries/qt-5/5.12/default.nix+7−1
This diff is too big to show here.
pkgs/development/libraries/qt-5/5.14/default.nix+8−2
This diff is too big to show here.
pkgs/development/libraries/qt-5/5.14/qtwayland-libdrm-build.patchnew file+56
This diff is too big to show here.
pkgs/development/libraries/qt-5/5.15/default.nix+7−1
This diff is too big to show here.
pkgs/development/libraries/qt-5/5.15/srcs-generated.json+63−63
This diff is too big to show here.
pkgs/development/libraries/qt-5/modules/qtbase.nix+5−9
This diff is too big to show here.
pkgs/development/libraries/qt-5/modules/qtmultimedia.nix+2−3
This diff is too big to show here.
pkgs/development/libraries/qt-5/modules/qtwayland.nix−6
This diff is too big to show here.
pkgs/development/libraries/qt-5/modules/qtwebengine.nix+6−22
This diff is too big to show here.
pkgs/development/libraries/qt-5/qtModule.nix+1−1
This diff is too big to show here.
pkgs/development/libraries/qtutilities/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/quictls/default.nix+8−3
This diff is too big to show here.
pkgs/development/libraries/qwt/default.nix−2
This diff is too big to show here.
pkgs/development/libraries/rapidfuzz-cpp/default.nixdeleted−41
This diff is too big to show here.
pkgs/development/libraries/re2/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/redis-plus-plus/default.nixdeleted−38
This diff is too big to show here.
pkgs/development/libraries/rlottie/default.nix+1−16
This diff is too big to show here.
pkgs/development/libraries/robin-map/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/rocclr/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/rocm-comgr/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/rocm-device-libs/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/rocm-runtime/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/rocm-thunk/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/s2n-tls/default.nix−3
This diff is too big to show here.
pkgs/development/libraries/science/astronomy/indilib/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/science/astronomy/wcslib/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/science/biology/htslib/default.nix+2−18
This diff is too big to show here.
pkgs/development/libraries/science/math/blis/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/science/math/caffe2/default.nixnew file+147
This diff is too big to show here.
pkgs/development/libraries/science/math/caffe2/fix_compilation_on_gcc7.patchnew file+46
This diff is too big to show here.
pkgs/development/libraries/science/math/caffe2/update_clang_cvtsh_bugfix.patchnew file+55
This diff is too big to show here.
pkgs/development/libraries/science/math/cudnn/default.nixnew file+114
This diff is too big to show here.
pkgs/development/libraries/science/math/cudnn/extension.nixdeleted−116
This diff is too big to show here.
pkgs/development/libraries/science/math/cudnn/generic.nix+43−62
This diff is too big to show here.
pkgs/development/libraries/science/math/cutensor/default.nixnew file+48
This diff is too big to show here.
pkgs/development/python-modules/fenics/default.nix → pkgs/development/libraries/science/math/fenics/default.nixrenamed+20−12
This diff is too big to show here.
pkgs/development/libraries/science/math/liblapack/default.nix+11−2
This diff is too big to show here.
pkgs/development/libraries/science/math/libtorch/test/default.nix+2−3
This diff is too big to show here.
pkgs/development/libraries/science/math/magma/default.nix+20−7
This diff is too big to show here.
pkgs/development/libraries/science/math/nccl/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/science/math/scalapack/default.nix+1−8
This diff is too big to show here.
pkgs/development/libraries/science/math/tensorflow/bin.nix+1−4
This diff is too big to show here.
pkgs/development/libraries/science/math/zn_poly/default.nix+14−4
This diff is too big to show here.
pkgs/development/libraries/simpleitk/default.nix−2
This diff is too big to show here.
pkgs/development/libraries/skalibs/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/slang/default.nix−7
This diff is too big to show here.
pkgs/development/libraries/smesh/default.nix−2
This diff is too big to show here.
pkgs/development/libraries/snack/default.nixnew file+36
This diff is too big to show here.
pkgs/development/libraries/soci/bc-soci.nixdeleted−53
This diff is too big to show here.
pkgs/development/libraries/spdlog/default.nix+14−9
This diff is too big to show here.
pkgs/development/libraries/sphinxbase/default.nixnew file+40
This diff is too big to show here.
pkgs/development/libraries/spirv-headers/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/sqlite/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/sqlite/tools.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/sundials/default.nix−13
This diff is too big to show here.
pkgs/development/libraries/talloc/default.nix+1−2
This diff is too big to show here.
pkgs/development/libraries/taskflow/default.nixdeleted−50
This diff is too big to show here.
pkgs/development/libraries/taskflow/unvendor-doctest.patchdeleted−21
This diff is too big to show here.
pkgs/development/libraries/tdlib/default.nix+3−3
This diff is too big to show here.
pkgs/development/libraries/template-glib/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/tomlc99/default.nixdeleted−30
This diff is too big to show here.
pkgs/development/libraries/tomlcpp/0001-missing-headers.diffdeleted−15
This diff is too big to show here.
pkgs/development/libraries/tomlcpp/default.nixdeleted−35
This diff is too big to show here.
pkgs/development/libraries/tpm2-tss/default.nix+3−7
This diff is too big to show here.
pkgs/development/libraries/umockdev/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/unixODBCDrivers/default.nix+3−46
This diff is too big to show here.
pkgs/development/libraries/utmps/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/valhalla/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/vapoursynth/default.nix+7−4
This diff is too big to show here.
pkgs/development/libraries/vigra/default.nix+15−3
This diff is too big to show here.
pkgs/development/libraries/vulkan-headers/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/vulkan-loader/default.nix+3−6
This diff is too big to show here.
pkgs/development/libraries/vulkan-loader/fix-pkgconfig.patchdeleted−14
This diff is too big to show here.
pkgs/development/libraries/wasilibc/default.nix+14−19
This diff is too big to show here.
pkgs/development/libraries/waylandpp/default.nix+3−4
This diff is too big to show here.
pkgs/development/libraries/webkitgtk/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/wolfssl/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix+2−2
This diff is too big to show here.
pkgs/development/libraries/xdg-desktop-portal/default.nix+12−18
This diff is too big to show here.
pkgs/development/libraries/xdg-desktop-portal/fix-paths.patchnew file+13
This diff is too big to show here.
pkgs/development/libraries/xgboost/default.nix+5−5
This diff is too big to show here.
pkgs/development/libraries/zlib/CVE-2018-25032-1.patchdeleted−346
This diff is too big to show here.
pkgs/development/libraries/zlib/CVE-2018-25032-2.patchdeleted−27
This diff is too big to show here.
pkgs/development/libraries/zlib/default.nix−4
This diff is too big to show here.
pkgs/development/libraries/zlib/fix-configure-issue-cross.patchdeleted−24
This diff is too big to show here.
pkgs/development/lisp-modules-new/.gitattributesdeleted−1
This diff is too big to show here.
pkgs/development/lisp-modules-new/.gitignoredeleted−3
This diff is too big to show here.
pkgs/development/lisp-modules-new/doc/api.mddeleted−197
This diff is too big to show here.
pkgs/development/lisp-modules-new/doc/nix-cl.mddeleted−98
This diff is too big to show here.
pkgs/development/lisp-modules-new/doc/quicklisp.mddeleted−54
This diff is too big to show here.
pkgs/development/lisp-modules-new/doc/quirks.mddeleted−5
This diff is too big to show here.
pkgs/development/lisp-modules-new/examples/abcl-package-set.nixdeleted−24
This diff is too big to show here.
pkgs/development/lisp-modules-new/examples/abcl-with-packages.nixdeleted−23
This diff is too big to show here.
pkgs/development/lisp-modules-new/examples/bordeaux-threads.nixdeleted−43
This diff is too big to show here.
pkgs/development/lisp-modules-new/examples/sbcl-with-bt.nixdeleted−31
This diff is too big to show here.
pkgs/development/lisp-modules-new/import/api.lispdeleted−18
This diff is too big to show here.
pkgs/development/lisp-modules-new/import/database/sqlite.lispdeleted−134
This diff is too big to show here.
pkgs/development/lisp-modules-new/import/init.sqldeleted−41
This diff is too big to show here.
pkgs/development/lisp-modules-new/import/main.lispdeleted−40
This diff is too big to show here.
pkgs/development/lisp-modules-new/import/nix.lispdeleted−81
This diff is too big to show here.
pkgs/development/lisp-modules-new/import/org.lispbuilds.nix.asddeleted−24
This diff is too big to show here.
pkgs/development/lisp-modules-new/import/repository/quicklisp.lispdeleted−199
This diff is too big to show here.
pkgs/development/lisp-modules-new/import/util.lispdeleted−16
This diff is too big to show here.
pkgs/development/lisp-modules-new/imported.nix−65675
This diff is too big to show here.
pkgs/development/lisp-modules-new/lisp-packages.nix−432
This diff is too big to show here.
pkgs/development/lisp-modules-new/old-make-wrapper.sh−155
This diff is too big to show here.
pkgs/development/lisp-modules-new/packages.nix−369
This diff is too big to show here.
pkgs/development/lisp-modules-new/patches/swank-pure-paths.patch−28
This diff is too big to show here.
pkgs/development/lisp-modules-new/ql-import.lisp−6
This diff is too big to show here.
pkgs/development/lisp-modules-new/ql.nix−140
This diff is too big to show here.
pkgs/development/lisp-modules-new/readme.md−34
This diff is too big to show here.
pkgs/development/lisp-modules-new/shell.nix−7
This diff is too big to show here.
pkgs/development/lisp-modules-new/test/lispPackagesToTest.txt−395
This diff is too big to show here.
pkgs/development/lisp-modules-new/test/test.lisp−94
This diff is too big to show here.
pkgs/development/lua-modules/generated-packages.nix+9−42
This diff is too big to show here.
pkgs/development/lua-modules/luaexpat.patch+36
This diff is too big to show here.
pkgs/development/lua-modules/overrides.nix+4−8
This diff is too big to show here.
pkgs/development/misc/datafusion/default.nix−34
This diff is too big to show here.
pkgs/development/misc/haskell/hasura/graphql-engine.nix−5
This diff is too big to show here.
pkgs/development/misc/haskell/hasura/graphql-parser.nix−5
This diff is too big to show here.
pkgs/development/misc/msp430/mspds/binary.nix+1−2
This diff is too big to show here.
pkgs/development/misc/resholve/README.md+58−111
This diff is too big to show here.
pkgs/development/misc/resholve/default.nix+37−5
This diff is too big to show here.
pkgs/development/misc/resholve/resholve-package.nix+37
This diff is too big to show here.
pkgs/development/misc/resholve/resholve-utils.nix+20−149
This diff is too big to show here.
pkgs/development/misc/resholve/resholve.nix+6−7
This diff is too big to show here.
pkgs/development/misc/resholve/source.nix+2−2
This diff is too big to show here.
pkgs/development/misc/resholve/test.nix+57−18
This diff is too big to show here.
pkgs/development/mobile/androidenv/build-tools.nix+2−2
This diff is too big to show here.
pkgs/development/mobile/androidenv/platform-tools.nix+2−1
This diff is too big to show here.
pkgs/development/nim-packages/tempfile/default.nix−1
This diff is too big to show here.
pkgs/development/node-packages/composition.nix+1−1
This diff is too big to show here.
pkgs/development/node-packages/default.nix+41−16
This diff is too big to show here.
pkgs/development/node-packages/node-env.nix+11−21
This diff is too big to show here.
pkgs/development/node-packages/node-packages.json+2−4
This diff is too big to show here.
pkgs/development/node-packages/node-packages.nix+6326−6262
This diff is too big to show here.
pkgs/development/ocaml-modules/alcotest/default.nix+4−6
This diff is too big to show here.
pkgs/development/ocaml-modules/atd/default.nix+14−6
This diff is too big to show here.
pkgs/development/ocaml-modules/atdgen/codec-runtime.nix−18
This diff is too big to show here.
pkgs/development/ocaml-modules/atdgen/default.nix+17−8
This diff is too big to show here.
pkgs/development/ocaml-modules/atdgen/runtime.nix−15
This diff is too big to show here.
pkgs/development/ocaml-modules/bap/default.nix+4−5
This diff is too big to show here.
pkgs/development/ocaml-modules/batteries/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/bitstring/ppx.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/bitv/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/bjack/default.nix−25
This diff is too big to show here.
pkgs/development/ocaml-modules/brisk-reconciler/default.nix−33
This diff is too big to show here.
pkgs/development/ocaml-modules/bz2/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/camlp-streams/default.nix−20
This diff is too big to show here.
pkgs/development/ocaml-modules/camlpdf/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/caqti/default.nix+4−9
This diff is too big to show here.
pkgs/development/ocaml-modules/coin/default.nix+9−6
This diff is too big to show here.
pkgs/development/ocaml-modules/cpdf/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/cstruct/lwt.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/cstruct/ppx.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/cstruct/sexp.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/cstruct/unix.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/csv/lwt.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/ctypes/default.nix+3−3
This diff is too big to show here.
pkgs/development/ocaml-modules/dssi/default.nix−25
This diff is too big to show here.
pkgs/development/ocaml-modules/dune-action-plugin/default.nix−4
This diff is too big to show here.
pkgs/development/ocaml-modules/dune-glob/default.nix−4
This diff is too big to show here.
pkgs/development/ocaml-modules/dune-private-libs/default.nix−4
This diff is too big to show here.
pkgs/development/ocaml-modules/dune-rpc/default.nix−23
This diff is too big to show here.
pkgs/development/ocaml-modules/dune-site/default.nix−4
This diff is too big to show here.
pkgs/development/ocaml-modules/erm_xml/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/expat/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/farfadet/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/ffmpeg/base.nix+2−2
This diff is too big to show here.
pkgs/development/ocaml-modules/fiber/default.nix−23
This diff is too big to show here.
pkgs/development/ocaml-modules/flex/default.nix−22
This diff is too big to show here.
pkgs/development/ocaml-modules/fmt/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/fpath/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/frontc/default.nix+25−8
This diff is too big to show here.
pkgs/development/ocaml-modules/gen_js_api/default.nix−41
This diff is too big to show here.
pkgs/development/ocaml-modules/gen_js_api/ojs.nix−21
This diff is too big to show here.
pkgs/development/ocaml-modules/hacl-star/raw.nix−3
This diff is too big to show here.
pkgs/development/ocaml-modules/javalib/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/lablgl/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/lablgtk-extras/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/ladspa/default.nix−25
This diff is too big to show here.
pkgs/development/ocaml-modules/lastfm/default.nix−32
This diff is too big to show here.
pkgs/development/ocaml-modules/llvm/default.nix+2−2
This diff is too big to show here.
pkgs/development/ocaml-modules/logs/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/lua-ml/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/lwt/default.nix+3−3
This diff is too big to show here.
pkgs/development/ocaml-modules/nocrypto/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/notty/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/ocaml-lsp/default.nix+8−7
This diff is too big to show here.
pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix+4−8
This diff is too big to show here.
pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix+5−25
This diff is too big to show here.
pkgs/development/ocaml-modules/ocamlformat-rpc-lib/default.nix+3−15
This diff is too big to show here.
pkgs/development/ocaml-modules/ocp-ocamlres/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/ocsigen-deriving/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/ocsigen-ppx-rpc/default.nix−23
This diff is too big to show here.
pkgs/development/ocaml-modules/ocsigen-start/default.nix+2−4
This diff is too big to show here.
pkgs/development/ocaml-modules/phylogenetics/default.nix+4−2
This diff is too big to show here.
pkgs/development/ocaml-modules/ppxlib/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/ptime/default.nix+5−5
This diff is too big to show here.
pkgs/development/ocaml-modules/pure-splitmix/default.nix−22
This diff is too big to show here.
pkgs/development/ocaml-modules/reactivedata/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/rebez/default.nix−22
This diff is too big to show here.
pkgs/development/ocaml-modules/reperf/default.nix−41
This diff is too big to show here.
pkgs/development/ocaml-modules/samplerate/default.nix−25
This diff is too big to show here.
pkgs/development/ocaml-modules/sawja/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/sedlex/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/sosa/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/stdune/default.nix+2−6
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/010-PtGRANAD-test-helpers.nix+39
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/011-PtHangz2-test-helpers.nix+35
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/base-test-helpers.nix+32
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/base.nix+37
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/clic.nix+28
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/client-010-PtGRANAD.nix+38
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/client-011-PtHangz2.nix+44
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/client-base.nix+28
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/context.nix+34
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/crypto.nix+42
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/embedded-protocol-010-PtGRANAD.nix+23
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/embedded-protocol-demo-noops.nix+23
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/error-monad.nix+35
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/event-logging-test-helpers.nix+25
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/event-logging.nix+28
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/hacl-glue-unix.nix+26
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/hacl-glue.nix+17
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/legacy-store.nix+42
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/lmdb.nix+51
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/lwt-result-stdlib.nix+31
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/micheline.nix+32
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/mockup-proxy.nix+27
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/mockup-registration.nix+23
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/p2p-services.nix+19
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/p2p.nix+38
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-010-PtGRANAD-parameters.nix+23
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-010-PtGRANAD.nix+28
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-011-PtHangz2-parameters.nix+23
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-011-PtHangz2.nix+28
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-alpha.nix+21
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-compiler.nix+34
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-demo-noops.nix+21
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-environment-packer.nix+18
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-environment-sigs.nix+42
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-environment-structs.nix+25
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-environment.nix+43
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-plugin-010-PtGRANAD.nix+23
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-plugin-011-PtHangz2.nix+23
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-plugin-alpha.nix+21
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/protocol-updater.nix+26
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/proxy.nix+36
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/requester.nix+34
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/rpc-http-client-unix.nix+23
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/rpc-http-client.nix+23
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/rpc-http.nix+25
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/rpc.nix+25
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/sapling.nix+35
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/shell-context.nix+21
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/shell-services-test-helpers.nix+32
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/shell-services.nix+30
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/shell.nix+44
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/signer-backends.nix+30
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/signer-services.nix+21
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/stdlib-unix.nix+33
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/stdlib.nix+64
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/store.nix+50
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/test-helpers.nix+28
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/validation.nix+28
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/version.nix+21
This diff is too big to show here.
pkgs/development/ocaml-modules/tezos/workers.nix+21
This diff is too big to show here.
pkgs/development/ocaml-modules/toml/default.nix+4−2
This diff is too big to show here.
pkgs/development/ocaml-modules/tsdl/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/uri/sexp.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/uucp/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/uunf/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/uuuu/default.nix+9−6
This diff is too big to show here.
pkgs/development/ocaml-modules/vg/default.nix+2−2
This diff is too big to show here.
pkgs/development/ocaml-modules/wasm/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/xdg/default.nix−17
This diff is too big to show here.
pkgs/development/ocaml-modules/xmlm/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/xmlplaylist/default.nix−25
This diff is too big to show here.
pkgs/development/ocaml-modules/z3/default.nix+1−1
This diff is too big to show here.
pkgs/development/ocaml-modules/zarith/default.nix+1−1
This diff is too big to show here.
pkgs/development/octave-modules/octproj/default.nix−1
This diff is too big to show here.
pkgs/development/php-packages/composer/default.nix+2−2
This diff is too big to show here.
pkgs/development/php-packages/openswoole/default.nix−22
This diff is too big to show here.
pkgs/development/php-packages/pdepend/default.nix−41
This diff is too big to show here.
pkgs/development/php-packages/phpstan/default.nix+2−2
This diff is too big to show here.
pkgs/development/php-packages/xdebug/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/Mako/default.nix+4−31
This diff is too big to show here.
pkgs/development/python-modules/Nikola/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/Theano/default.nix+4−10
This diff is too big to show here.
pkgs/development/python-modules/XlsxWriter/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/adafruit-io/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/adb-shell/default.nix+3−12
This diff is too big to show here.
pkgs/development/python-modules/add-trailing-comma/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/advocate/default.nix−45
This diff is too big to show here.
pkgs/development/python-modules/aenum/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/aesara/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/aesedb/default.nix−45
This diff is too big to show here.
pkgs/development/python-modules/afdko/default.nix+9−3
This diff is too big to show here.
pkgs/development/python-modules/afsapi/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/ailment/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/aio-geojson-generic-client/default.nix−51
This diff is too big to show here.
pkgs/development/python-modules/aio-georss-client/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/aio-georss-gdacs/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/aioairzone/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/aiobotocore/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/aioconsole/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/aiodiscover/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/aioftp/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/aioh2/default.nix+24
This diff is too big to show here.
pkgs/development/python-modules/aiohomekit/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/aiohttp-apispec/default.nix+7−2
This diff is too big to show here.
pkgs/development/python-modules/aiohttp-remotes/default.nix−6
This diff is too big to show here.
pkgs/development/python-modules/aiohttp-swagger/default.nix+2−10
This diff is too big to show here.
pkgs/development/python-modules/aiolifx/default.nix+5−8
This diff is too big to show here.
pkgs/development/python-modules/aiomysql/default.nix+27−17
This diff is too big to show here.
pkgs/development/python-modules/aiooncue/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/aioqsw/default.nix−40
This diff is too big to show here.
pkgs/development/python-modules/aioshelly/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/aioslimproto/default.nix−41
This diff is too big to show here.
pkgs/development/python-modules/aiotractive/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/alembic/default.nix+6−2
This diff is too big to show here.
pkgs/development/python-modules/amply/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/amqp/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/androidtv/default.nix+4−12
This diff is too big to show here.
pkgs/development/python-modules/angr/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/angrop/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/ansible-compat/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/ansible-doctor/default.nix+25−32
This diff is too big to show here.
pkgs/development/python-modules/ansible-later/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/ansible-lint/default.nix+4
This diff is too big to show here.
pkgs/development/python-modules/ansible-runner/default.nix+3−8
This diff is too big to show here.
pkgs/development/python-modules/ansible/base.nix+88
This diff is too big to show here.
pkgs/development/python-modules/ansible/collections.nix+8−15
This diff is too big to show here.
pkgs/development/python-modules/ansible/core.nix+14−5
This diff is too big to show here.
pkgs/development/python-modules/ansible/legacy.nix+55
This diff is too big to show here.
pkgs/development/python-modules/apache-beam/default.nix+19−16
This diff is too big to show here.
pkgs/development/python-modules/apache-beam/fix-cython.patch+41
This diff is too big to show here.
pkgs/development/python-modules/apache-beam/relax-deps.patch+20
This diff is too big to show here.
pkgs/development/python-modules/apispec/default.nix+9−13
This diff is too big to show here.
pkgs/development/python-modules/apprise/default.nix+4−4
This diff is too big to show here.
pkgs/development/python-modules/approvaltests/default.nix+11−33
This diff is too big to show here.
pkgs/development/python-modules/appthreat-vulnerability-db/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/aprslib/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/apsw/default.nix+32−9
This diff is too big to show here.
pkgs/development/python-modules/apycula/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/archinfo/default.nix+14−4
This diff is too big to show here.
pkgs/development/python-modules/arris-tg2492lg/default.nix−43
This diff is too big to show here.
pkgs/development/python-modules/asana/default.nix+16−26
This diff is too big to show here.
pkgs/development/python-modules/asciimatics/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/asdf-standard/default.nix−43
This diff is too big to show here.
pkgs/development/python-modules/asdf-transform-schemas/default.nix−46
This diff is too big to show here.
pkgs/development/python-modules/asdf/default.nix+7−18
This diff is too big to show here.
pkgs/development/python-modules/asgiref/default.nix+4−14
This diff is too big to show here.
pkgs/development/python-modules/asn1crypto/default.nix+7−13
This diff is too big to show here.
pkgs/development/python-modules/astroid/default.nix+2−6
This diff is too big to show here.
pkgs/development/python-modules/astropy-extension-helpers/default.nix+4−15
This diff is too big to show here.
pkgs/development/python-modules/astropy/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/astroquery/default.nix+8−30
This diff is too big to show here.
pkgs/development/python-modules/asttokens/default.nix+1−6
This diff is too big to show here.
pkgs/development/python-modules/async-upnp-client/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/async_generator/default.nix+2
This diff is too big to show here.
pkgs/development/python-modules/asyncssh/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/atlassian-python-api/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/atom/default.nix+9−35
This diff is too big to show here.
pkgs/development/python-modules/aurorapy/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/authheaders/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/autobahn/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/autograd/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/av/default.nix+2−8
This diff is too big to show here.
pkgs/development/python-modules/awesomeversion/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/aws-adfs/default.nix+25−33
This diff is too big to show here.
pkgs/development/python-modules/aws-lambda-builders/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/awscrt/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/awsiotpythonsdk/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/azure-core/default.nix+3−5
This diff is too big to show here.
pkgs/development/python-modules/azure-identity/default.nix+18−15
This diff is too big to show here.
pkgs/development/python-modules/azure-keyvault-keys/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/azure-mgmt-containerservice/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/azure-mgmt-core/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/azure-mgmt-datafactory/default.nix+6−6
This diff is too big to show here.
pkgs/development/python-modules/azure-mgmt-msi/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/azure-mgmt-reservations/default.nix+6−6
This diff is too big to show here.
pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/azure-synapse-artifacts/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/bc-python-hcl2/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/bcrypt/default.nix+8−33
This diff is too big to show here.
pkgs/development/python-modules/beautifulsoup4/default.nix+3−9
This diff is too big to show here.
pkgs/development/python-modules/beautifultable/default.nix+1−6
This diff is too big to show here.
pkgs/development/python-modules/behave/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/bimmer-connected/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/bitarray/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/bitstruct/default.nix+4−15
This diff is too big to show here.
pkgs/development/python-modules/black/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/bleach/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/bleak/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/blinker/default.nix+3−8
This diff is too big to show here.
pkgs/development/python-modules/blspy/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/boltztrap2/default.nix+13−26
This diff is too big to show here.
pkgs/development/python-modules/boschshcpy/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/boto3/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/botocore/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/bottleneck/default.nix+15−30
This diff is too big to show here.
pkgs/development/python-modules/boxx/default.nix+4−11
This diff is too big to show here.
pkgs/development/python-modules/bpython/default.nix+2−16
This diff is too big to show here.
pkgs/development/python-modules/breezy/default.nix+5−20
This diff is too big to show here.
pkgs/development/python-modules/brother/default.nix+15−16
This diff is too big to show here.
pkgs/development/python-modules/browser-cookie3/default.nix+5−6
This diff is too big to show here.
pkgs/development/python-modules/bsblan/default.nix+13−14
This diff is too big to show here.
pkgs/development/python-modules/build/default.nix+2
This diff is too big to show here.
pkgs/development/python-modules/buildbot/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/buildbot/pkg.nix+1−1
This diff is too big to show here.
pkgs/development/python-modules/buildbot/plugins.nix+5−5
This diff is too big to show here.
pkgs/development/python-modules/buildbot/worker.nix+7−41
This diff is too big to show here.
pkgs/development/python-modules/caldav/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/can/default.nix+1−3
This diff is too big to show here.
pkgs/development/python-modules/canonicaljson/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/casbin/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/cattrs/default.nix+3
This diff is too big to show here.
pkgs/development/python-modules/celery/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/cert-chain-resolver/default.nix+7−22
This diff is too big to show here.
pkgs/development/python-modules/certomancer/default.nix−71
This diff is too big to show here.
pkgs/development/python-modules/cffi/default.nix+4−5
This diff is too big to show here.
pkgs/development/python-modules/chalice/default.nix+1−1
This diff is too big to show here.
pkgs/development/python-modules/cherrypy/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/chex/default.nix+5−3
This diff is too big to show here.
pkgs/development/python-modules/ckcc-protocol/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/claripy/default.nix+5−7
This diff is too big to show here.
pkgs/development/python-modules/cle/default.nix+3−5
This diff is too big to show here.
pkgs/development/python-modules/click-log/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/click/default.nix+8−3
This diff is too big to show here.
pkgs/development/python-modules/clickhouse-driver/default.nix+2
This diff is too big to show here.
pkgs/development/python-modules/clize/default.nix+9−26
This diff is too big to show here.
pkgs/development/python-modules/codepy/default.nix−35
This diff is too big to show here.
pkgs/development/python-modules/collections-extended/default.nix+4−9
This diff is too big to show here.
pkgs/development/python-modules/commoncode/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/connexion/default.nix+16−10
This diff is too big to show here.
pkgs/development/python-modules/contexttimer/default.nix−42
This diff is too big to show here.
pkgs/development/python-modules/coqpit/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/cppy/default.nix+7−12
This diff is too big to show here.
pkgs/development/python-modules/cryptography/default.nix+26−24
This diff is too big to show here.
pkgs/development/python-modules/cryptography/vectors.nix+6−9
This diff is too big to show here.
pkgs/development/python-modules/crytic-compile/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/cupy/default.nix+8−6
This diff is too big to show here.
pkgs/development/python-modules/cyclonedx-python-lib/default.nix+6−15
This diff is too big to show here.
pkgs/development/python-modules/cypherpunkpay/default.nix−97
This diff is too big to show here.
pkgs/development/python-modules/dask-mpi/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/dask-yarn/default.nix−47
This diff is too big to show here.
pkgs/development/python-modules/dask/default.nix+2
This diff is too big to show here.
pkgs/development/python-modules/databricks-connect/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/dataset/default.nix+5−11
This diff is too big to show here.
pkgs/development/python-modules/datasets/default.nix+6−19
This diff is too big to show here.
pkgs/development/python-modules/datasette/default.nix+12−12
This diff is too big to show here.
pkgs/development/python-modules/datashader/default.nix+1
This diff is too big to show here.
pkgs/development/python-modules/dateparser/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/db-dtypes/default.nix−39
This diff is too big to show here.
pkgs/development/python-modules/debtcollector/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/debugpy/default.nix+1
This diff is too big to show here.
pkgs/development/python-modules/deezer-python/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/deltachat/default.nix+3−7
This diff is too big to show here.
pkgs/development/python-modules/denonavr/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/devito/default.nix−100
This diff is too big to show here.
pkgs/development/python-modules/devolo-home-control-api/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/dictpath/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/diff-cover/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/diskcache/default.nix+4
This diff is too big to show here.
pkgs/development/python-modules/django-allauth/default.nix+11−25
This diff is too big to show here.
pkgs/development/python-modules/django-hijack-admin/default.nix−3
This diff is too big to show here.
pkgs/development/python-modules/django-hijack/default.nix+22−22
This diff is too big to show here.
pkgs/development/python-modules/django-taggit/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/django/3.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/django/4.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/django_modelcluster/default.nix+9−27
This diff is too big to show here.
pkgs/development/python-modules/dm-haiku/default.nix+2−9
This diff is too big to show here.
pkgs/development/python-modules/dm-sonnet/default.nix+91
This diff is too big to show here.
pkgs/development/python-modules/dnspython/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/dockerfile-parse/default.nix+9−27
This diff is too big to show here.
pkgs/development/python-modules/docstring-parser/default.nix+11−25
This diff is too big to show here.
pkgs/development/python-modules/docutils/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/doit/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/dragonfly/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/dropbox/default.nix+12−41
This diff is too big to show here.
pkgs/development/python-modules/duckdb-engine/default.nix−40
This diff is too big to show here.
pkgs/development/python-modules/dugong/default.nix−5
This diff is too big to show here.
pkgs/development/python-modules/dungeon-eos/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/durus/default.nix−28
This diff is too big to show here.
pkgs/development/python-modules/eagle100/default.nix−37
This diff is too big to show here.
pkgs/development/python-modules/editables/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/elementpath/default.nix+4−4
This diff is too big to show here.
pkgs/development/python-modules/elkm1-lib/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/enaml/default.nix+3−6
This diff is too big to show here.
pkgs/development/python-modules/entrypoint2/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/env-canada/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/envs/default.nix+11−15
This diff is too big to show here.
pkgs/development/python-modules/ephemeral-port-reserve/default.nix−42
This diff is too big to show here.
pkgs/development/python-modules/exceptiongroup/default.nix−39
This diff is too big to show here.
pkgs/development/python-modules/exchangelib/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/faker/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/fakeredis/default.nix−5
This diff is too big to show here.
pkgs/development/python-modules/falcon/default.nix+33−46
This diff is too big to show here.
pkgs/development/python-modules/faraday-agent-parameters-types/default.nix+1−6
This diff is too big to show here.
pkgs/development/python-modules/faraday-plugins/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/fastapi/default.nix+3−17
This diff is too big to show here.
pkgs/development/python-modules/fastavro/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/fastbencode/default.nix−26
This diff is too big to show here.
pkgs/development/python-modules/fastcore/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/fasteners/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/fastjsonschema/default.nix+14−3
This diff is too big to show here.
pkgs/development/python-modules/fastparquet/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/ffcv/default.nix+2−3
This diff is too big to show here.
pkgs/development/python-modules/filetype/default.nix+6−26
This diff is too big to show here.
pkgs/development/python-modules/findpython/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/fints/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/fipy/default.nix−8
This diff is too big to show here.
pkgs/development/python-modules/fipy/gmsh.patch−182
This diff is too big to show here.
pkgs/development/python-modules/fitbit/default.nix+16−24
This diff is too big to show here.
pkgs/development/python-modules/fivem-api/default.nix−42
This diff is too big to show here.
pkgs/development/python-modules/flake8-blind-except/default.nix−5
This diff is too big to show here.
pkgs/development/python-modules/flake8-bugbear/default.nix+4−9
This diff is too big to show here.
pkgs/development/python-modules/flake8-debugger/default.nix+14−23
This diff is too big to show here.
pkgs/development/python-modules/flake8/default.nix+1−1
This diff is too big to show here.
pkgs/development/python-modules/flask-admin/default.nix−5
This diff is too big to show here.
pkgs/development/python-modules/flask-appbuilder/default.nix+13−4
This diff is too big to show here.
pkgs/development/python-modules/flask-bcrypt/default.nix+3−9
This diff is too big to show here.
pkgs/development/python-modules/flask-compress/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/flask-httpauth/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/flask-jwt-extended/default.nix+10−31
This diff is too big to show here.
pkgs/development/python-modules/flask-login/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/flask-paranoid/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/flask-restful/default.nix−4
This diff is too big to show here.
pkgs/development/python-modules/flask-restful/werkzeug-2.1.0-compat.patch−114
This diff is too big to show here.
pkgs/development/python-modules/flask-restx/default.nix−15
This diff is too big to show here.
pkgs/development/python-modules/flask-seasurf/default.nix+3−13
This diff is too big to show here.
pkgs/development/python-modules/flask-security-too/default.nix+32−66
This diff is too big to show here.
pkgs/development/python-modules/flask-socketio/default.nix+2−6
This diff is too big to show here.
pkgs/development/python-modules/flask-talisman/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/flask-testing/default.nix+15−41
This diff is too big to show here.
pkgs/development/python-modules/flask/default.nix+8−6
This diff is too big to show here.
pkgs/development/python-modules/flatbuffers/default.nix−1
This diff is too big to show here.
pkgs/development/python-modules/flatdict/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/flax/default.nix+3−7
This diff is too big to show here.
pkgs/development/python-modules/flickrapi/default.nix+19−50
This diff is too big to show here.
pkgs/development/python-modules/flit-core/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/flit/default.nix+11−10
This diff is too big to show here.
pkgs/development/python-modules/flux-led/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/fn/default.nix+8−22
This diff is too big to show here.
pkgs/development/python-modules/fontmake/default.nix−42
This diff is too big to show here.
pkgs/development/python-modules/fontparts/default.nix+3−5
This diff is too big to show here.
pkgs/development/python-modules/fonttools/default.nix+5−8
This diff is too big to show here.
pkgs/development/python-modules/fqdn/default.nix−36
This diff is too big to show here.
pkgs/development/python-modules/freezegun/default.nix+10−21
This diff is too big to show here.
pkgs/development/python-modules/funcparserlib/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/fuse-python/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/garminconnect/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/gb-io/default.nix−45
This diff is too big to show here.
pkgs/development/python-modules/gbulb/default.nix−43
This diff is too big to show here.
pkgs/development/python-modules/gcal-sync/default.nix−46
This diff is too big to show here.
pkgs/development/python-modules/gehomesdk/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/gensim/default.nix+20−37
This diff is too big to show here.
pkgs/development/python-modules/geoalchemy2/default.nix+2−13
This diff is too big to show here.
pkgs/development/python-modules/geocachingapi/default.nix+4−10
This diff is too big to show here.
pkgs/development/python-modules/geopandas/default.nix+1−14
This diff is too big to show here.
pkgs/development/python-modules/ghapi/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/ghp-import/default.nix+4−12
This diff is too big to show here.
pkgs/development/python-modules/gipc/default.nix+2
This diff is too big to show here.
pkgs/development/python-modules/git-annex-adapter/default.nix−4
This diff is too big to show here.
pkgs/development/python-modules/glad/default.nix−18
This diff is too big to show here.
pkgs/development/python-modules/glances-api/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/glcontext/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/glean-parser/default.nix+5−6
This diff is too big to show here.
pkgs/development/python-modules/glfw/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/globus-sdk/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/glyphslib/default.nix−59
This diff is too big to show here.
pkgs/development/python-modules/google-api-core/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/google-api-python-client/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/google-auth-oauthlib/default.nix+3−13
This diff is too big to show here.
pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix−48
This diff is too big to show here.
pkgs/development/python-modules/google-cloud-bigquery/default.nix+4−15
This diff is too big to show here.
pkgs/development/python-modules/google-cloud-bigtable/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/google-cloud-dataproc/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/google-cloud-error-reporting/default.nix+7−6
This diff is too big to show here.
pkgs/development/python-modules/google-cloud-testutils/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/google-cloud-videointelligence/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/google-nest-sdm/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/gradient/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/graph_nets/default.nix+45
This diff is too big to show here.
pkgs/development/python-modules/graphene-django/default.nix+3−7
This diff is too big to show here.
pkgs/development/python-modules/graphene-django/graphene-3_2_0.patch−150
This diff is too big to show here.
pkgs/development/python-modules/graphene/default.nix−17
This diff is too big to show here.
pkgs/development/python-modules/graphql-relay/default.nix+4−19
This diff is too big to show here.
pkgs/development/python-modules/graphql-subscription-manager/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/greeclimate/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/gremlinpython/default.nix+9−3
This diff is too big to show here.
pkgs/development/python-modules/grip/default.nix+11−2
This diff is too big to show here.
pkgs/development/python-modules/grpcio-status/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/grpcio-tools/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/gspread/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/gtts/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/gym/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/h11/default.nix−3
This diff is too big to show here.
pkgs/development/python-modules/h3/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/hahomematic/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/hatasmota/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/hatchling/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/hg-evolve/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/hid/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/hidapi/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/hkavr/default.nix−37
This diff is too big to show here.
pkgs/development/python-modules/hmmlearn/default.nix+6−7
This diff is too big to show here.
pkgs/development/python-modules/homeconnect/default.nix+4−11
This diff is too big to show here.
pkgs/development/python-modules/howdoi/default.nix+2−16
This diff is too big to show here.
pkgs/development/python-modules/hpack/default.nix+6−19
This diff is too big to show here.
pkgs/development/python-modules/html-sanitizer/default.nix+1−3
This diff is too big to show here.
pkgs/development/python-modules/http-message-signatures/default.nix−56
This diff is too big to show here.
pkgs/development/python-modules/http-sfv/default.nix−39
This diff is too big to show here.
pkgs/development/python-modules/httpbin/default.nix−10
This diff is too big to show here.
pkgs/development/python-modules/httplib2/default.nix+4−2
This diff is too big to show here.
pkgs/development/python-modules/httpx-ntlm/default.nix+1−7
This diff is too big to show here.
pkgs/development/python-modules/hwi/default.nix+8−11
This diff is too big to show here.
pkgs/development/python-modules/hydra-check/default.nix+19−12
This diff is too big to show here.
pkgs/development/python-modules/hyperframe/default.nix+1−4
This diff is too big to show here.
pkgs/development/python-modules/hypothesis/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/hypothesmith/default.nix+4−28
This diff is too big to show here.
pkgs/development/python-modules/hypothesmith/remove-black.patch−88
This diff is too big to show here.
pkgs/development/python-modules/hyppo/default.nix+2−4
This diff is too big to show here.
pkgs/development/python-modules/ibis-framework/default.nix+47−34
This diff is too big to show here.
pkgs/development/python-modules/identify/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/igraph/default.nix+2−3
This diff is too big to show here.
pkgs/development/python-modules/ihatemoney/default.nix+34−36
This diff is too big to show here.
pkgs/development/python-modules/imap-tools/default.nix+2−3
This diff is too big to show here.
pkgs/development/python-modules/img2pdf/default.nix+12−2
This diff is too big to show here.
pkgs/development/python-modules/impacket/default.nix+5−31
This diff is too big to show here.
pkgs/development/python-modules/importlib-metadata/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/importlib-resources/default.nix+2−3
This diff is too big to show here.
pkgs/development/python-modules/installer/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix−26
This diff is too big to show here.
pkgs/development/python-modules/intbitset/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/intellifire4py/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/intensity-normalization/default.nix+2−4
This diff is too big to show here.
pkgs/development/python-modules/invocations/default.nix+4−15
This diff is too big to show here.
pkgs/development/python-modules/ipykernel/default.nix+7−9
This diff is too big to show here.
pkgs/development/python-modules/ipympl/default.nix+3−4
This diff is too big to show here.
pkgs/development/python-modules/ipython-sql/default.nix−58
This diff is too big to show here.
pkgs/development/python-modules/ipython/default.nix+5−3
This diff is too big to show here.
pkgs/development/python-modules/ipywidgets/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/islpy/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/ismartgate/default.nix+2−12
This diff is too big to show here.
pkgs/development/python-modules/iso4217/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/iso8601/default.nix+1−6
This diff is too big to show here.
pkgs/development/python-modules/isoduration/default.nix−50
This diff is too big to show here.
pkgs/development/python-modules/iterm2/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/itsdangerous/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/jarowinkler/default.nix−54
This diff is too big to show here.
pkgs/development/python-modules/jax/default.nix+8−21
This diff is too big to show here.
pkgs/development/python-modules/jaxlib/bin.nix+4−8
This diff is too big to show here.
pkgs/development/python-modules/jaxlib/default.nix+7−7
This diff is too big to show here.
pkgs/development/python-modules/jc/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/jedi-language-server/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/jeepney/default.nix+3−10
This diff is too big to show here.
pkgs/development/python-modules/jenkins-job-builder/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/jinja2/default.nix+3−4
This diff is too big to show here.
pkgs/development/python-modules/jira/default.nix+10−21
This diff is too big to show here.
pkgs/development/python-modules/jmespath/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/josepy/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/jsbeautifier/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/json-schema-for-humans/default.nix+8−7
This diff is too big to show here.
pkgs/development/python-modules/jsonrpc-async/default.nix+4−25
This diff is too big to show here.
pkgs/development/python-modules/jsonrpc-base/default.nix+1−9
This diff is too big to show here.
pkgs/development/python-modules/jug/default.nix+18−31
This diff is too big to show here.
pkgs/development/python-modules/junos-eznc/default.nix+15−49
This diff is too big to show here.
pkgs/development/python-modules/jupyter-client/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/jupyter-packaging/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/jupyter_console/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/jupyterlab-git/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/jupyterlab/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/jupyterlab_server/default.nix+5−7
This diff is too big to show here.
pkgs/development/python-modules/jwcrypto/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/kaldi-active-grammar/default.nix+1−7
This diff is too big to show here.
pkgs/development/python-modules/kbcstorage/default.nix−69
This diff is too big to show here.
pkgs/development/python-modules/kiss-headers/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/kivy-garden/default.nix+9−11
This diff is too big to show here.
pkgs/development/python-modules/kiwisolver/default.nix+9−21
This diff is too big to show here.
pkgs/development/python-modules/kubernetes/default.nix+3−4
This diff is too big to show here.
pkgs/development/python-modules/labgrid/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/ledgerblue/default.nix+6−29
This diff is too big to show here.
pkgs/development/python-modules/lektor/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/levenshtein/default.nix+6−14
This diff is too big to show here.
pkgs/development/python-modules/libcst/default.nix−4
This diff is too big to show here.
pkgs/development/python-modules/libgpuarray/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/libtmux/default.nix+5−7
This diff is too big to show here.
pkgs/development/python-modules/lightwave2/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/limits/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/limnoria/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/lmnotify/default.nix+6−17
This diff is too big to show here.
pkgs/development/python-modules/loo-py/default.nix+24−28
This diff is too big to show here.
pkgs/development/python-modules/losant-rest/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/luxtronik/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/lxmf/default.nix−39
This diff is too big to show here.
pkgs/development/python-modules/magicgui/default.nix+1−10
This diff is too big to show here.
pkgs/development/python-modules/mailchecker/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/mariadb/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/markupsafe/default.nix+3−5
This diff is too big to show here.
pkgs/development/python-modules/marshmallow-dataclass/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/mat2/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/matchpy/default.nix+23−29
This diff is too big to show here.
pkgs/development/python-modules/mautrix/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/mccabe/default.nix+4−16
This diff is too big to show here.
pkgs/development/python-modules/md-toc/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/mdurl/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/meater-python/default.nix−37
This diff is too big to show here.
pkgs/development/python-modules/mechanize/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/merkletools/default.nix+1−1
This diff is too big to show here.
pkgs/development/python-modules/meshtastic/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/metakernel/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/meteofrance-api/default.nix−76
This diff is too big to show here.
pkgs/development/python-modules/mezzanine/default.nix+27−41
This diff is too big to show here.
pkgs/development/python-modules/mitmproxy/default.nix−1
This diff is too big to show here.
pkgs/development/python-modules/mkdocs-material/default.nix+5−14
This diff is too big to show here.
pkgs/development/python-modules/mkdocs-minify/default.nix−37
This diff is too big to show here.
pkgs/development/python-modules/mkdocs-redirects/default.nix−31
This diff is too big to show here.
pkgs/development/python-modules/mkdocs/default.nix+11−2
This diff is too big to show here.
pkgs/development/python-modules/mlflow/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/mock/default.nix+14−12
This diff is too big to show here.
pkgs/development/python-modules/mocket/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/modeled/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/monero/default.nix−51
This diff is too big to show here.
pkgs/development/python-modules/monty/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/moretools/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/motionblinds/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/moto/default.nix+5−17
This diff is too big to show here.
pkgs/development/python-modules/msrest/default.nix+27−42
This diff is too big to show here.
pkgs/development/python-modules/murmurhash/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/mutagen/default.nix+5−1
This diff is too big to show here.
pkgs/development/python-modules/mutmut/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/mwclient/default.nix+7−31
This diff is too big to show here.
pkgs/development/python-modules/mwdblib/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/mwoauth/default.nix+8−15
This diff is too big to show here.
pkgs/development/python-modules/myfitnesspal/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/mypy-boto3-s3/default.nix+3−2
This diff is too big to show here.
pkgs/development/python-modules/namedlist/default.nix+9−30
This diff is too big to show here.
pkgs/development/python-modules/napari-npe2/default.nix−54
This diff is too big to show here.
pkgs/development/python-modules/napari/default.nix+6−15
This diff is too big to show here.
pkgs/development/python-modules/nbclient/default.nix+10−33
This diff is too big to show here.
pkgs/development/python-modules/nbconvert/default.nix+6−8
This diff is too big to show here.
pkgs/development/python-modules/nbformat/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/ncclient/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/ndg-httpsclient/default.nix+2−7
This diff is too big to show here.
pkgs/development/python-modules/neo4j-driver/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/net2grid/default.nix+58
This diff is too big to show here.
pkgs/development/python-modules/netmiko/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/nettigo-air-monitor/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/netutils/default.nix−66
This diff is too big to show here.
pkgs/development/python-modules/networkx/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/nextcord/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/nipype/neurdflib.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/nix-prefetch-github/default.nix+3−4
This diff is too big to show here.
pkgs/development/python-modules/nocasedict/default.nix+3−10
This diff is too big to show here.
pkgs/development/python-modules/nomadnet/default.nix−43
This diff is too big to show here.
pkgs/development/python-modules/nose/default.nix+1−3
This diff is too big to show here.
pkgs/development/python-modules/notebook/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/numba/default.nix+2−5
This diff is too big to show here.
pkgs/development/python-modules/numpydoc/default.nix+7−38
This diff is too big to show here.
pkgs/development/python-modules/nunavut/default.nix+2−4
This diff is too big to show here.
pkgs/development/python-modules/nutils/default.nix−32
This diff is too big to show here.
pkgs/development/python-modules/nvchecker/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/oasatelematics/default.nix−40
This diff is too big to show here.
pkgs/development/python-modules/oci/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/ocrmypdf/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/ondilo/default.nix+4−9
This diff is too big to show here.
pkgs/development/python-modules/onnx/default.nix+2−9
This diff is too big to show here.
pkgs/development/python-modules/openai/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/openhomedevice/default.nix+3−8
This diff is too big to show here.
pkgs/development/python-modules/openstep-plist/default.nix−31
This diff is too big to show here.
pkgs/development/python-modules/opentracing/default.nix+7−12
This diff is too big to show here.
pkgs/development/python-modules/optax/default.nix+1
This diff is too big to show here.
pkgs/development/python-modules/ormar/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/ovh/default.nix+5−30
This diff is too big to show here.
pkgs/development/python-modules/packaging/default.nix+25−29
This diff is too big to show here.
pkgs/development/python-modules/paho-mqtt/default.nix+8−2
This diff is too big to show here.
pkgs/development/python-modules/pandas/default.nix+3−11
This diff is too big to show here.
pkgs/development/python-modules/panel/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/parsimonious/default.nix+10−27
This diff is too big to show here.
pkgs/development/python-modules/path.py/default.nix+50
This diff is too big to show here.
pkgs/development/python-modules/path/default.nix−51
This diff is too big to show here.
pkgs/development/python-modules/pathy/default.nix+14−37
This diff is too big to show here.
pkgs/development/python-modules/pdm-pep517/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/peaqevcore/default.nix−38
This diff is too big to show here.
pkgs/development/python-modules/peco/default.nix−39
This diff is too big to show here.
pkgs/development/python-modules/peewee/default.nix+4−7
This diff is too big to show here.
pkgs/development/python-modules/pencompy/default.nix−32
This diff is too big to show here.
pkgs/development/python-modules/pep257/default.nix+23
This diff is too big to show here.
pkgs/development/python-modules/pex/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pg8000/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/phe/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/phik/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/phonemizer/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/phonenumbers/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pickleshare/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pikepdf/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pilkit/default.nix+17−29
This diff is too big to show here.
pkgs/development/python-modules/pillow-simd/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/pillow/default.nix+6−12
This diff is too big to show here.
pkgs/development/python-modules/pims/default.nix+19−42
This diff is too big to show here.
pkgs/development/python-modules/pip-tools/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pip/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pipdate/default.nix+5−9
This diff is too big to show here.
pkgs/development/python-modules/pipdeptree/default.nix−41
This diff is too big to show here.
pkgs/development/python-modules/pixcat/default.nix−38
This diff is too big to show here.
pkgs/development/python-modules/plaid-python/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pleroma-bot/default.nix+7−22
This diff is too big to show here.
pkgs/development/python-modules/plugwise/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/poetry-dynamic-versioning/default.nix−58
This diff is too big to show here.
pkgs/development/python-modules/polars/default.nix−57
This diff is too big to show here.
pkgs/development/python-modules/policy-sentry/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/policyuniverse/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/preprocess-cancellation/default.nix+6−36
This diff is too big to show here.
pkgs/development/python-modules/preprocess-cancellation/pep-621.patch−20
This diff is too big to show here.
pkgs/development/python-modules/prettytable/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/prompt-toolkit/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/proton-client/0001-OpenSSL-path-fix.patch−41
This diff is too big to show here.
pkgs/development/python-modules/proton-client/default.nix+8−18
This diff is too big to show here.
pkgs/development/python-modules/psautohint/default.nix+7−9
This diff is too big to show here.
pkgs/development/python-modules/pubnub/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/pure-python-adb/default.nix+6−25
This diff is too big to show here.
pkgs/development/python-modules/purl/default.nix+2−15
This diff is too big to show here.
pkgs/development/python-modules/pwntools/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/py-desmume/default.nix+14−3
This diff is too big to show here.
pkgs/development/python-modules/py-radix/default.nix−3
This diff is too big to show here.
pkgs/development/python-modules/py3rijndael/default.nix−30
This diff is too big to show here.
pkgs/development/python-modules/py4j/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyTelegramBotAPI/default.nix+5−21
This diff is too big to show here.
pkgs/development/python-modules/pyamg/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyasn1/default.nix+4−6
This diff is too big to show here.
pkgs/development/python-modules/pyathena/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyatmo/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pybids/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pybind11/default.nix+2−3
This diff is too big to show here.
pkgs/development/python-modules/pybotvac/default.nix+4−10
This diff is too big to show here.
pkgs/development/python-modules/pybullet/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pycapnp/default.nix+3−5
This diff is too big to show here.
pkgs/development/python-modules/pycep-parser/default.nix+4−3
This diff is too big to show here.
pkgs/development/python-modules/pycfmodel/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pychromecast/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pycm/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/pycoolmasternet-async/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pycountry/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pycuda/default.nix+1−3
This diff is too big to show here.
pkgs/development/python-modules/pycurl/default.nix+11−1
This diff is too big to show here.
pkgs/development/python-modules/pydantic/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/pydeconz/default.nix+4−6
This diff is too big to show here.
pkgs/development/python-modules/pydeps/default.nix−60
This diff is too big to show here.
pkgs/development/python-modules/pyeapi/default.nix+8−36
This diff is too big to show here.
pkgs/development/python-modules/pyee/default.nix+5−13
This diff is too big to show here.
pkgs/development/python-modules/pyefergy/default.nix+8−3
This diff is too big to show here.
pkgs/development/python-modules/pyevilgenius/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyezviz/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyfaidx/default.nix+5−5
This diff is too big to show here.
pkgs/development/python-modules/pyfakefs/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyfritzhome/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/pygatt/default.nix+2−6
This diff is too big to show here.
pkgs/development/python-modules/pygit2/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyhanko-certvalidator/default.nix−73
This diff is too big to show here.
pkgs/development/python-modules/pyhanko/0001-Updating-pytest-aiohttp-version.patch−25
This diff is too big to show here.
pkgs/development/python-modules/pyhanko/default.nix−132
This diff is too big to show here.
pkgs/development/python-modules/pyhaversion/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyhiveapi/default.nix+2−4
This diff is too big to show here.
pkgs/development/python-modules/pyinfra/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyinsteon/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/pyiqvia/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/pykerberos/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pykeyatome/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/pykulersky/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pylama/default.nix+2−3
This diff is too big to show here.
pkgs/development/python-modules/pylast/default.nix+5−5
This diff is too big to show here.
pkgs/development/python-modules/pylint/default.nix+10−18
This diff is too big to show here.
pkgs/development/python-modules/pymazda/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pymc3/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pymemcache/default.nix−6
This diff is too big to show here.
pkgs/development/python-modules/pymfy/default.nix+4−9
This diff is too big to show here.
pkgs/development/python-modules/pympler/default.nix+3−10
This diff is too big to show here.
pkgs/development/python-modules/pymyq/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/pync/default.nix+2
This diff is too big to show here.
pkgs/development/python-modules/pynello/default.nix+4−6
This diff is too big to show here.
pkgs/development/python-modules/pynetbox/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/pynetdicom/default.nix+2−10
This diff is too big to show here.
pkgs/development/python-modules/pynetgear/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pynina/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pynrrd/default.nix+4−14
This diff is too big to show here.
pkgs/development/python-modules/pynws/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyomo/default.nix+22−34
This diff is too big to show here.
pkgs/development/python-modules/pyopenssl/default.nix+6−2
This diff is too big to show here.
pkgs/development/python-modules/pyopenuv/default.nix+4−4
This diff is too big to show here.
pkgs/development/python-modules/pyoppleio/default.nix−37
This diff is too big to show here.
pkgs/development/python-modules/pyoverkiz/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyparsing/default.nix+6−4
This diff is too big to show here.
pkgs/development/python-modules/pyplaato/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyplatec/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/pypng/default.nix−29
This diff is too big to show here.
pkgs/development/python-modules/pyppeteer/default.nix+2−5
This diff is too big to show here.
pkgs/development/python-modules/pypykatz/default.nix+3−12
This diff is too big to show here.
pkgs/development/python-modules/pyqtwebengine/default.nix+1−1
This diff is too big to show here.
pkgs/development/python-modules/pyrad/default.nix+7−40
This diff is too big to show here.
pkgs/development/python-modules/pyradios/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/pyramid_jinja2/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyrevolve/default.nix−41
This diff is too big to show here.
pkgs/development/python-modules/pyro-ppl/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyrogram/default.nix+7−8
This diff is too big to show here.
pkgs/development/python-modules/pysaj/default.nix−41
This diff is too big to show here.
pkgs/development/python-modules/pysensibo/default.nix−39
This diff is too big to show here.
pkgs/development/python-modules/pyshp/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pysigma-backend-insightidr/default.nix−47
This diff is too big to show here.
pkgs/development/python-modules/pysigma-backend-splunk/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pysigma-pipeline-windows/default.nix−46
This diff is too big to show here.
pkgs/development/python-modules/pysigma/default.nix+7−2
This diff is too big to show here.
pkgs/development/python-modules/pyskyqremote/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/pyslurm/default.nix+5−14
This diff is too big to show here.
pkgs/development/python-modules/pysmappee/default.nix+6−10
This diff is too big to show here.
pkgs/development/python-modules/pysnmp-pyasn1/default.nix−41
This diff is too big to show here.
pkgs/development/python-modules/pysnmp-pysmi/default.nix−46
This diff is too big to show here.
pkgs/development/python-modules/pysnmplib/default.nix−48
This diff is too big to show here.
pkgs/development/python-modules/pysnow/default.nix+21−37
This diff is too big to show here.
pkgs/development/python-modules/pyspark/default.nix+1−1
This diff is too big to show here.
pkgs/development/python-modules/pytenable/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pytest-aiohttp/default.nix+13−11
This diff is too big to show here.
pkgs/development/python-modules/pytest-ansible/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/pytest-astropy/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pytest-asyncio/default.nix+4−8
This diff is too big to show here.
pkgs/development/python-modules/pytest-check/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pytest-datafiles/default.nix+8−33
This diff is too big to show here.
pkgs/development/python-modules/pytest-describe/default.nix−40
This diff is too big to show here.
pkgs/development/python-modules/pytest-httpbin/default.nix−6
This diff is too big to show here.
pkgs/development/python-modules/pytest-isort/default.nix+10−48
This diff is too big to show here.
pkgs/development/python-modules/pytest-metadata/default.nix+4−11
This diff is too big to show here.
pkgs/development/python-modules/pytest-mock/default.nix−9
This diff is too big to show here.
pkgs/development/python-modules/pytest-mpl/default.nix+3−18
This diff is too big to show here.
pkgs/development/python-modules/pytest-pep257/default.nix+20
This diff is too big to show here.
pkgs/development/python-modules/pytest-shutil/default.nix+3−8
This diff is too big to show here.
pkgs/development/python-modules/pytest-snapshot/default.nix+3−6
This diff is too big to show here.
pkgs/development/python-modules/pytest-testmon/default.nix+11−6
This diff is too big to show here.
pkgs/development/python-modules/pytest-xdist/default.nix+1−10
This diff is too big to show here.
pkgs/development/python-modules/pytest-xdist/setup-hook.sh−18
This diff is too big to show here.
pkgs/development/python-modules/pytest/default.nix+27−24
This diff is too big to show here.
pkgs/development/python-modules/python-barcode/default.nix−48
This diff is too big to show here.
pkgs/development/python-modules/python-benedict/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/python-binance/default.nix+4−8
This diff is too big to show here.
pkgs/development/python-modules/python-dotenv/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/python-efl/default.nix+1−1
This diff is too big to show here.
pkgs/development/python-modules/python-family-hub-local/default.nix−43
This diff is too big to show here.
pkgs/development/python-modules/python-gitlab/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/python-google-nest/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/python-kasa/default.nix+2−4
This diff is too big to show here.
pkgs/development/python-modules/python-logstash/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/python-miio/default.nix+15−18
This diff is too big to show here.
pkgs/development/python-modules/python-pae/default.nix−39
This diff is too big to show here.
pkgs/development/python-modules/python-registry/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/python-smarttub/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/python-sql/default.nix+8−24
This diff is too big to show here.
pkgs/development/python-modules/python-twitter/default.nix+9−30
This diff is too big to show here.
pkgs/development/python-modules/python-vagrant/default.nix+2−7
This diff is too big to show here.
pkgs/development/python-modules/python3-saml/default.nix−5
This diff is too big to show here.
pkgs/development/python-modules/pytibber/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pytomorrowio/default.nix−40
This diff is too big to show here.
pkgs/development/python-modules/pytools/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pytorch-metric-learning/default.nix−1
This diff is too big to show here.
pkgs/development/python-modules/pytorch-pfn-extras/default.nix+5−21
This diff is too big to show here.
pkgs/development/python-modules/pytorch/bin.nix−1
This diff is too big to show here.
pkgs/development/python-modules/pytorch/default.nix+4−12
This diff is too big to show here.
pkgs/development/python-modules/pytradfri/default.nix+5−8
This diff is too big to show here.
pkgs/development/python-modules/pytrafikverket/default.nix+4−11
This diff is too big to show here.
pkgs/development/python-modules/pyttsx3/default.nix−24
This diff is too big to show here.
pkgs/development/python-modules/pytz/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyupgrade/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyvesync/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pyvex/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/pyvicare/default.nix+4−4
This diff is too big to show here.
pkgs/development/python-modules/pyvips/default.nix+8−8
This diff is too big to show here.
pkgs/development/python-modules/pyvis/default.nix+8−8
This diff is too big to show here.
pkgs/development/python-modules/pyvo/default.nix−56
This diff is too big to show here.
pkgs/development/python-modules/pywavelets/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pywayland/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/pywebview/default.nix+6−18
This diff is too big to show here.
pkgs/development/python-modules/pywinrm/default.nix+12−28
This diff is too big to show here.
pkgs/development/python-modules/pywlroots/default.nix+2−6
This diff is too big to show here.
pkgs/development/python-modules/qiskit-aer/default.nix+9−8
This diff is too big to show here.
pkgs/development/python-modules/qiskit-finance/default.nix−4
This diff is too big to show here.
pkgs/development/python-modules/qiskit-ibmq-provider/default.nix+5−6
This diff is too big to show here.
pkgs/development/python-modules/qiskit-nature/default.nix+4−4
This diff is too big to show here.
pkgs/development/python-modules/qiskit-terra/default.nix+14−20
This diff is too big to show here.
pkgs/development/python-modules/qiskit/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/qtconsole/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/radio_beam/default.nix+3−14
This diff is too big to show here.
pkgs/development/python-modules/rapidfuzz-capi/default.nix−28
This diff is too big to show here.
pkgs/development/python-modules/rapidfuzz/default.nix+10−34
This diff is too big to show here.
pkgs/development/python-modules/ratelimiter/default.nix+13−21
This diff is too big to show here.
pkgs/development/python-modules/readme_renderer/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/redis/default.nix+7−24
This diff is too big to show here.
pkgs/development/python-modules/reedsolo/default.nix+4−17
This diff is too big to show here.
pkgs/development/python-modules/renault-api/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/reorder-python-imports/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/reportlab/default.nix+3−7
This diff is too big to show here.
pkgs/development/python-modules/requests-cache/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/requests-http-signature/default.nix+4−16
This diff is too big to show here.
pkgs/development/python-modules/requests-pkcs12/default.nix+3−10
This diff is too big to show here.
pkgs/development/python-modules/requests/default.nix+8−12
This diff is too big to show here.
pkgs/development/python-modules/responses/default.nix+5−7
This diff is too big to show here.
pkgs/development/python-modules/rfc6555/default.nix+6−4
This diff is too big to show here.
pkgs/development/python-modules/rich/default.nix+5−4
This diff is too big to show here.
pkgs/development/python-modules/ring-doorbell/default.nix+7−11
This diff is too big to show here.
pkgs/development/python-modules/ripser/default.nix+6−12
This diff is too big to show here.
pkgs/development/python-modules/rjpl/default.nix−37
This diff is too big to show here.
pkgs/development/python-modules/rns/default.nix−43
This diff is too big to show here.
pkgs/development/python-modules/robotframework-tools/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/ropper/default.nix+15−26
This diff is too big to show here.
pkgs/development/python-modules/rova/default.nix−40
This diff is too big to show here.
pkgs/development/python-modules/rtsp-to-webrtc/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/s3-credentials/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/sabyenc3/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/sagemaker/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/samsungctl/default.nix+4−11
This diff is too big to show here.
pkgs/development/python-modules/samsungtvws/default.nix+9−42
This diff is too big to show here.
pkgs/development/python-modules/sanic/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/sapi-python-client/default.nix+30
This diff is too big to show here.
pkgs/development/python-modules/schema-salad/default.nix+3−5
This diff is too big to show here.
pkgs/development/python-modules/scikit-build/default.nix+23−33
This diff is too big to show here.
pkgs/development/python-modules/scikit-learn-extra/default.nix−1
This diff is too big to show here.
pkgs/development/python-modules/scikit-learn/default.nix+2
This diff is too big to show here.
pkgs/development/python-modules/scikit-survival/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/scmrepo/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/seabreeze/default.nix+2−5
This diff is too big to show here.
pkgs/development/python-modules/secretstorage/default.nix+6−17
This diff is too big to show here.
pkgs/development/python-modules/securetar/default.nix−41
This diff is too big to show here.
pkgs/development/python-modules/segyio/default.nix−55
This diff is too big to show here.
pkgs/development/python-modules/sendgrid/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/sentry-sdk/default.nix+10−24
This diff is too big to show here.
pkgs/development/python-modules/servefile/default.nix−43
This diff is too big to show here.
pkgs/development/python-modules/service_identity/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/setupmeta/default.nix−3
This diff is too big to show here.
pkgs/development/python-modules/setuptools-rust/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/setuptools/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/setuptools/setuptools-distutils-C++.patch+54−18
This diff is too big to show here.
pkgs/development/python-modules/seventeentrack/default.nix−61
This diff is too big to show here.
pkgs/development/python-modules/shapely/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/shapely/library-paths.patch+23−49
This diff is too big to show here.
pkgs/development/python-modules/shiboken2/default.nix+1−1
This diff is too big to show here.
pkgs/development/python-modules/shiv/default.nix−34
This diff is too big to show here.
pkgs/development/python-modules/shtab/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/signedjson/default.nix+18−31
This diff is too big to show here.
pkgs/development/python-modules/simple-salesforce/default.nix−6
This diff is too big to show here.
pkgs/development/python-modules/simplejson/default.nix+1−1
This diff is too big to show here.
pkgs/development/python-modules/simplisafe-python/default.nix+2−6
This diff is too big to show here.
pkgs/development/python-modules/skein/default.nix+13−34
This diff is too big to show here.
pkgs/development/python-modules/skein/skeinjar.nix+12−11
This diff is too big to show here.
pkgs/development/python-modules/skein/skeinrepo.nix+44
This diff is too big to show here.
pkgs/development/python-modules/skia-pathops/default.nix−43
This diff is too big to show here.
pkgs/development/python-modules/skytemple-files/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/skytemple-rust/default.nix+6−15
This diff is too big to show here.
pkgs/development/python-modules/skytemple-ssb-debugger/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/slack-sdk/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/slither-analyzer/default.nix+6−10
This diff is too big to show here.
pkgs/development/python-modules/slixmpp/0001-xep_0030-allow-extra-args-in-get_info_from_domain.patch−36
This diff is too big to show here.
pkgs/development/python-modules/slixmpp/default.nix+2−5
This diff is too big to show here.
pkgs/development/python-modules/smart-open/default.nix+26−8
This diff is too big to show here.
pkgs/development/python-modules/snowflake-connector-python/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/snowflake-sqlalchemy/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/social-auth-core/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/socid-extractor/default.nix+1−7
This diff is too big to show here.
pkgs/development/python-modules/sortedcontainers/default.nix+16−31
This diff is too big to show here.
pkgs/development/python-modules/spacy-transformers/default.nix+7−9
This diff is too big to show here.
pkgs/development/python-modules/spacy/default.nix+21−26
This diff is too big to show here.
pkgs/development/python-modules/sparqlwrapper/default.nix+10−7
This diff is too big to show here.
pkgs/development/python-modules/sphinx-jinja/default.nix+12−9
This diff is too big to show here.
pkgs/development/python-modules/sphinx/default.nix+3−10
This diff is too big to show here.
pkgs/development/python-modules/sphinx_rtd_theme/default.nix+1−1
This diff is too big to show here.
pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix+6−14
This diff is too big to show here.
pkgs/development/python-modules/sphinxcontrib-spelling/default.nix+7−21
This diff is too big to show here.
pkgs/development/python-modules/sphinxext-opengraph/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/spyder-kernels/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/spyder/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/sqlalchemy-imageattach/default.nix+42
This diff is too big to show here.
pkgs/development/python-modules/sqlalchemy-mixins/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/sqlalchemy/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/sqlite-utils/default.nix+2−8
This diff is too big to show here.
pkgs/development/python-modules/sqlitedict/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/sqlmap/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/srsly/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/srvlookup/default.nix+11−28
This diff is too big to show here.
pkgs/development/python-modules/starlette/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/staticjinja/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/stookalert/default.nix−33
This diff is too big to show here.
pkgs/development/python-modules/stringly/default.nix−28
This diff is too big to show here.
pkgs/development/python-modules/stripe/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/sumo/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/sunpy/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/superqt/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/svdtools/default.nix+11−9
This diff is too big to show here.
pkgs/development/python-modules/svg-path/default.nix+3−27
This diff is too big to show here.
pkgs/development/python-modules/swspotify/default.nix+19−36
This diff is too big to show here.
pkgs/development/python-modules/symengine/default.nix+4−11
This diff is too big to show here.
pkgs/development/python-modules/sympy/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/syslog-rfc5424-formatter/default.nix+4−10
This diff is too big to show here.
pkgs/development/python-modules/tablib/default.nix+9−13
This diff is too big to show here.
pkgs/development/python-modules/tellduslive/default.nix+3−10
This diff is too big to show here.
pkgs/development/python-modules/tensorflow-datasets/default.nix+1−7
This diff is too big to show here.
pkgs/development/python-modules/tensorflow/bin.nix+6−10
This diff is too big to show here.
pkgs/development/python-modules/tensorflow/binary-hashes.nix+19−31
This diff is too big to show here.
pkgs/development/python-modules/tensorflow/default.nix+1−6
This diff is too big to show here.
pkgs/development/python-modules/tensorflow/prefetcher.sh+4−7
This diff is too big to show here.
pkgs/development/python-modules/terminado/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/tern/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/teslajsonpy/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/testing-common-database/default.nix−5
This diff is too big to show here.
pkgs/development/python-modules/textual/default.nix+13−16
This diff is too big to show here.
pkgs/development/python-modules/tifffile/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/timetagger/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/tldextract/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/tomlkit/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/torchinfo/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/torchvision/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/tornado/default.nix+8−14
This diff is too big to show here.
pkgs/development/python-modules/total-connect-client/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/tpm2-pytss/default.nix+19−40
This diff is too big to show here.
pkgs/development/python-modules/tqdm/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/treelog/default.nix−28
This diff is too big to show here.
pkgs/development/python-modules/trimesh/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/trytond/default.nix−9
This diff is too big to show here.
pkgs/development/python-modules/tubeup/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/tweepy/default.nix+6−6
This diff is too big to show here.
pkgs/development/python-modules/twill/default.nix+8−18
This diff is too big to show here.
pkgs/development/python-modules/twine/default.nix+11−13
This diff is too big to show here.
pkgs/development/python-modules/twisted/default.nix+5−5
This diff is too big to show here.
pkgs/development/python-modules/twitch-python/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/twitterapi/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/txtorcon/default.nix+15−8
This diff is too big to show here.
pkgs/development/python-modules/typer/default.nix+9−10
This diff is too big to show here.
pkgs/development/python-modules/types-cryptography/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/types-dateutil/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/types-decorator/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/types-freezegun/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/types-paramiko/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/types-pytz/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/types-requests/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/types-setuptools/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/types-tabulate/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/types-toml/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/types-typed-ast/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/types-urllib3/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/typical/default.nix+9−10
This diff is too big to show here.
pkgs/development/python-modules/tzdata/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/tzlocal/default.nix+2−3
This diff is too big to show here.
pkgs/development/python-modules/uamqp/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/ufo2ft/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/ufoLib2/default.nix−3
This diff is too big to show here.
pkgs/development/python-modules/uharfbuzz/default.nix−45
This diff is too big to show here.
pkgs/development/python-modules/umap-learn/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/update-dotdee/default.nix+3−42
This diff is too big to show here.
pkgs/development/python-modules/urllib3/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/ush/default.nix+2−10
This diff is too big to show here.
pkgs/development/python-modules/validators/default.nix−2
This diff is too big to show here.
pkgs/development/python-modules/validictory/default.nix−3
This diff is too big to show here.
pkgs/development/python-modules/variants/default.nix+1−2
This diff is too big to show here.
pkgs/development/python-modules/vdirsyncer/default.nix+8−13
This diff is too big to show here.
pkgs/development/python-modules/vertica-python/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/virtualenv/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/vispy/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/vivisect/default.nix+3−27
This diff is too big to show here.
pkgs/development/python-modules/voluptuous/default.nix+11−15
This diff is too big to show here.
pkgs/development/python-modules/waitress/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/wallbox/default.nix+2−4
This diff is too big to show here.
pkgs/development/python-modules/wandb/default.nix+38−50
This diff is too big to show here.
pkgs/development/python-modules/wasm/default.nix−3
This diff is too big to show here.
pkgs/development/python-modules/watchdog/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/watchgod/default.nix+2−7
This diff is too big to show here.
pkgs/development/python-modules/websocket-client/default.nix+2−4
This diff is too big to show here.
pkgs/development/python-modules/webssh/default.nix+2−7
This diff is too big to show here.
pkgs/development/python-modules/webthing/default.nix+3−10
This diff is too big to show here.
pkgs/development/python-modules/weconnect-mqtt/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/weconnect/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/werkzeug/default.nix+3−10
This diff is too big to show here.
pkgs/development/python-modules/west/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/whodap/default.nix+3−3
This diff is too big to show here.
pkgs/development/python-modules/widgetsnbextension/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/wifi/default.nix−45
This diff is too big to show here.
pkgs/development/python-modules/winacl/default.nix+2−6
This diff is too big to show here.
pkgs/development/python-modules/winsspi/default.nix+5−15
This diff is too big to show here.
pkgs/development/python-modules/wsproto/default.nix+9−10
This diff is too big to show here.
pkgs/development/python-modules/wxPython/4.1.nix−2
This diff is too big to show here.
pkgs/development/python-modules/xdis/default.nix+12−35
This diff is too big to show here.
pkgs/development/python-modules/xhtml2pdf/default.nix+3−7
This diff is too big to show here.
pkgs/development/python-modules/xknx/default.nix+5−10
This diff is too big to show here.
pkgs/development/python-modules/xml2rfc/default.nix+15−35
This diff is too big to show here.
pkgs/development/python-modules/xxhash/default.nix−5
This diff is too big to show here.
pkgs/development/python-modules/yamlfix/default.nix+5
This diff is too big to show here.
pkgs/development/python-modules/yanc/default.nix+5−5
This diff is too big to show here.
pkgs/development/python-modules/youtube-search-python/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/yoyo-migrations/default.nix−30
This diff is too big to show here.
pkgs/development/python-modules/yte/default.nix−57
This diff is too big to show here.
pkgs/development/python-modules/zarr/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/zeroconf/default.nix+2−4
This diff is too big to show here.
pkgs/development/python-modules/zetup/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/zha-quirks/default.nix+4−10
This diff is too big to show here.
pkgs/development/python-modules/zigpy-deconz/default.nix+3−6
This diff is too big to show here.
pkgs/development/python-modules/zigpy/default.nix+2−4
This diff is too big to show here.
pkgs/development/python-modules/zimports/default.nix+2−4
This diff is too big to show here.
pkgs/development/python-modules/zodb/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/zodbpickle/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/zope_testing/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/zopfli/default.nix+5−6
This diff is too big to show here.
pkgs/development/python-modules/zulip/default.nix+14−6
This diff is too big to show here.
pkgs/development/python-modules/zwave-js-server-python/default.nix+2−2
This diff is too big to show here.
pkgs/development/python-modules/zwave-me-ws/default.nix−52
This diff is too big to show here.
pkgs/development/python2-modules/cryptography-vectors/default.nix+2−3
This diff is too big to show here.
pkgs/development/python2-modules/cryptography/default.nix+5−10
This diff is too big to show here.
pkgs/development/quickemu/default.nix+6−6
This diff is too big to show here.
pkgs/development/r-modules/bioc-annotation-packages.nix+1−2
This diff is too big to show here.
pkgs/development/r-modules/bioc-experiment-packages.nix+3−3
This diff is too big to show here.
pkgs/development/r-modules/bioc-packages.nix+57−57
This diff is too big to show here.
pkgs/development/r-modules/cran-packages.nix+1129−1293
This diff is too big to show here.
pkgs/development/ruby-modules/bundler-app/default.nix+1−1
This diff is too big to show here.
pkgs/development/ruby-modules/with-packages/Gemfile−1
This diff is too big to show here.
pkgs/development/tools/altair-graphql-client/default.nix+4−3
This diff is too big to show here.
pkgs/development/tools/amazon-qldb-shell/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/ammonite/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/analysis/actionlint/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/analysis/binlore/default.nix+9−10
This diff is too big to show here.
pkgs/development/tools/analysis/brakeman/Gemfile.lock+2−2
This diff is too big to show here.
pkgs/development/tools/analysis/brakeman/gemset.nix+2−2
This diff is too big to show here.
pkgs/development/tools/analysis/checkov/default.nix+3−4
This diff is too big to show here.
pkgs/development/tools/analysis/checkstyle/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/analysis/coan/default.nix−4
This diff is too big to show here.
pkgs/development/tools/analysis/codeql/default.nix+3−4
This diff is too big to show here.
pkgs/development/tools/analysis/cppcheck/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/analysis/cvehound/default.nix+12−17
This diff is too big to show here.
pkgs/development/tools/analysis/flow/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/analysis/oclgrind/default.nix+2−3
This diff is too big to show here.
pkgs/development/tools/analysis/radare2/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/analysis/rr/default.nix+5−11
This diff is too big to show here.
pkgs/development/tools/analysis/tfsec/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/apksigcopier/default.nix+16−31
This diff is too big to show here.
pkgs/development/tools/appthreat-depscan/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/asmfmt/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/azcopy/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/azure-functions-core-tools/default.nix+1
This diff is too big to show here.
pkgs/development/tools/bacon/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/bazel-gazelle/default.nix−1
This diff is too big to show here.
pkgs/development/tools/bazel-kazel/default.nix−1
This diff is too big to show here.
pkgs/development/tools/bingo/bingo_version.patch−13
This diff is too big to show here.
pkgs/development/tools/bingo/default.nix+5−7
This diff is too big to show here.
pkgs/development/tools/buf/default.nix+5−5
This diff is too big to show here.
pkgs/development/tools/build-managers/alibuild/default.nix+6−9
This diff is too big to show here.
pkgs/development/tools/build-managers/apache-maven/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix+7−3
This diff is too big to show here.
pkgs/development/tools/build-managers/bazel/bazel_1/default.nix+7−3
This diff is too big to show here.
pkgs/development/tools/build-managers/bazel/bazel_3/default.nix+7−5
This diff is too big to show here.
pkgs/development/tools/build-managers/bazel/bazel_3/gcc11.patch−24
This diff is too big to show here.
pkgs/development/tools/build-managers/bazel/bazel_4/default.nix+10−3
This diff is too big to show here.
pkgs/development/tools/build-managers/bazel/bazel_5/default.nix+11−3
This diff is too big to show here.
pkgs/development/tools/build-managers/bazel/bazel_5/src-deps.json+14−98
This diff is too big to show here.
pkgs/development/tools/build-managers/bazel/buildtools/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/build-managers/bloop/default.nix+47−18
This diff is too big to show here.
pkgs/development/tools/build-managers/build2/default.nix−1
This diff is too big to show here.
pkgs/development/tools/build-managers/conan/default.nix+14−5
This diff is too big to show here.
pkgs/development/tools/build-managers/go-mk/default.nix−1
This diff is too big to show here.
pkgs/development/tools/build-managers/mage/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/build-managers/meson/default.nix−7
This diff is too big to show here.
pkgs/development/tools/build-managers/mill/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/build-managers/rebar3/default.nix+1−1
This diff is too big to show here.
pkgs/development/tools/build-managers/redo-apenwarr/default.nix+2−1
This diff is too big to show here.
pkgs/development/tools/build-managers/rocm-cmake/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/build-managers/samurai/default.nix+4−26
This diff is too big to show here.
pkgs/development/tools/build-managers/scala-cli/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/build-managers/tup/default.nix−2
This diff is too big to show here.
pkgs/development/tools/build-managers/tup/fusermount-setuid.patch−31
This diff is too big to show here.
pkgs/development/tools/build-managers/tup/setup-hook.sh+2−2
This diff is too big to show here.
pkgs/development/tools/build-managers/wafHook/setup-hook.sh−4
This diff is too big to show here.
pkgs/development/tools/buildkit/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/ccloud-cli/default.nix+1−1
This diff is too big to show here.
pkgs/development/tools/checkmate/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/clj-kondo/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/clog-cli/default.nix−1
This diff is too big to show here.
pkgs/development/tools/compile-daemon/default.nix−1
This diff is too big to show here.
pkgs/development/tools/confluent-cli/default.nix+1−1
This diff is too big to show here.
pkgs/development/tools/conftest/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/continuous-integration/buildkite-agent/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/continuous-integration/buildkite-cli/default.nix−1
This diff is too big to show here.
pkgs/development/tools/continuous-integration/dagger/default.nix−28
This diff is too big to show here.
pkgs/development/tools/continuous-integration/github-runner/default.nix+6−13
This diff is too big to show here.
pkgs/development/tools/continuous-integration/github-runner/deps.nix+5−5
This diff is too big to show here.
pkgs/development/tools/continuous-integration/gitlab-runner/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/continuous-integration/jenkins/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/coursier/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/dapr/cli/default.nix+8−15
This diff is too big to show here.
pkgs/development/tools/database/beekeeper-studio/default.nix+4−5
This diff is too big to show here.
pkgs/development/tools/database/clickhouse-backup/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/database/liquibase/default.nix+9−24
This diff is too big to show here.
pkgs/development/tools/database/litecli/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/database/pg_activity/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/database/pg_checksums/default.nix−1
This diff is too big to show here.
pkgs/development/tools/database/pgcli/default.nix+6−4
This diff is too big to show here.
pkgs/development/tools/database/prisma-engines/default.nix+3−15
This diff is too big to show here.
pkgs/development/tools/database/sqldeveloper/default.nix+1−1
This diff is too big to show here.
pkgs/development/tools/database/sqlfluff/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/database/termdbms/default.nix−1
This diff is too big to show here.
pkgs/development/tools/ddosify/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/dive/default.nix+2
This diff is too big to show here.
pkgs/development/tools/doctl/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/dprint/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/earthly/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/easyjson/default.nix+5−6
This diff is too big to show here.
pkgs/development/tools/easyjson/deps.nix−11
This diff is too big to show here.
pkgs/development/tools/efm-langserver/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/electron/default.nix+25−35
This diff is too big to show here.
pkgs/development/tools/electron/generic.nix+5−6
This diff is too big to show here.
pkgs/development/tools/errcheck/default.nix+6−7
This diff is too big to show here.
pkgs/development/tools/esbuild/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/evans/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/fdroidserver/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/flyway/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/fq/default.nix+5−5
This diff is too big to show here.
pkgs/development/tools/fx/default.nix−22
This diff is too big to show here.
pkgs/development/tools/ginkgo/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/git-series/default.nix+32−14
This diff is too big to show here.
pkgs/development/tools/global-platform-pro/default.nix−1
This diff is too big to show here.
pkgs/development/tools/go-containerregistry/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/go-migrate/default.nix+2−4
This diff is too big to show here.
pkgs/development/tools/go-minimock/default.nix−1
This diff is too big to show here.
pkgs/development/tools/go-mockery/default.nix−1
This diff is too big to show here.
pkgs/development/tools/go-motion/default.nix+13−10
This diff is too big to show here.
pkgs/development/tools/go-protobuf/default.nix+2
This diff is too big to show here.
pkgs/development/tools/go-swagger/default.nix−1
This diff is too big to show here.
pkgs/development/tools/go-toml/default.nix+6−8
This diff is too big to show here.
pkgs/development/tools/godot/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/gofumpt/default.nix+2
This diff is too big to show here.
pkgs/development/tools/gojq/default.nix−28
This diff is too big to show here.
pkgs/development/tools/golint/default.nix+4−9
This diff is too big to show here.
pkgs/development/tools/gomplate/default.nix+5−10
This diff is too big to show here.
pkgs/development/tools/gopls/default.nix+5−5
This diff is too big to show here.
pkgs/development/tools/gosec/default.nix+2
This diff is too big to show here.
pkgs/development/tools/gotestsum/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/gron/default.nix+12−4
This diff is too big to show here.
pkgs/development/tools/haskell/hyper-haskell/server.nix+1−8
This diff is too big to show here.
pkgs/development/tools/hcloud/default.nix+7−8
This diff is too big to show here.
pkgs/development/tools/hjson-go/default.nix+11−14
This diff is too big to show here.
pkgs/development/tools/htmltest/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/impl/default.nix+6−6
This diff is too big to show here.
pkgs/development/tools/jdt-language-server/default.nix−103
This diff is too big to show here.
pkgs/development/tools/jl/default.nix−6
This diff is too big to show here.
pkgs/development/tools/jql/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/jsonnet-bundler/default.nix−1
This diff is too big to show here.
pkgs/development/tools/just/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/kdash/default.nix−34
This diff is too big to show here.
pkgs/development/tools/konstraint/default.nix+4−21
This diff is too big to show here.
pkgs/development/tools/kotlin-language-server/default.nix+4−9
This diff is too big to show here.
pkgs/development/tools/krankerl/default.nix+2
This diff is too big to show here.
pkgs/development/tools/ktlint/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/kube-linter/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/metal-cli/default.nix+4−11
This diff is too big to show here.