@@ -55,11 +55,6 @@ trim_trailing_whitespace = unset
56indent_size = unset
56indent_size = unset
58−# trailing whitespace is an actual syntax element of classic Markdown/
59−# CommonMark to enforce a line break
61−trim_trailing_whitespace = unset
64trim_trailing_whitespace = unset
59trim_trailing_whitespace = unset
@@ -41,8 +41,7 @@
41/pkgs/build-support/cc-wrapper @Ericson2314
41/pkgs/build-support/cc-wrapper @Ericson2314
42/pkgs/build-support/bintools-wrapper @Ericson2314
42/pkgs/build-support/bintools-wrapper @Ericson2314
43/pkgs/build-support/setup-hooks @Ericson2314
43/pkgs/build-support/setup-hooks @Ericson2314
44−/pkgs/build-support/setup-hooks/auto-patchelf.sh @layus
44+/pkgs/build-support/setup-hooks/auto-patchelf.sh @aszlig
45−/pkgs/build-support/setup-hooks/auto-patchelf.py @layus
47# Nixpkgs build-support
46# Nixpkgs build-support
48/pkgs/build-support/writers @lassulus @Profpatsch
47/pkgs/build-support/writers @lassulus @Profpatsch
@@ -285,7 +284,3 @@
285/nixos/modules/services/misc/matrix-conduit.nix @piegamesde
284/nixos/modules/services/misc/matrix-conduit.nix @piegamesde
286/nixos/tests/matrix-appservice-irc.nix @piegamesde
285/nixos/tests/matrix-appservice-irc.nix @piegamesde
287/nixos/tests/matrix-conduit.nix @piegamesde
286/nixos/tests/matrix-conduit.nix @piegamesde
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:
25 git commit -m "${{ steps.setup.outputs.title }}" providers.json
25 git commit -m "${{ steps.setup.outputs.title }}" providers.json
27 - name: create PR
27 - name: create PR
28− uses: peter-evans/create-pull-request@v4
28+ uses: peter-evans/create-pull-request@v3
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.
33+ Created by [update-terraform-providers](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/update-terraform-providers.yml) action.
33− Check that all providers build with:
35+ Check that all providers build with `@ofborg build terraform-full`
35− @ofborg build terraform-full
37 branch: terraform-providers-update
36 branch: terraform-providers-update
38 delete-branch: false
37 delete-branch: false
39 labels: "2.status: work-in-progress"
38 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
7Because 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.
7Because 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.
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.
11## `fetchurl` and `fetchzip` {#fetchurl}
11## `fetchurl` and `fetchzip` {#fetchurl}
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.
16{ stdenv, fetchurl }:
16{ stdenv, fetchurl }:
@@ -24,9 +24,9 @@ stdenv.mkDerivation {
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.
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.
31Most other fetchers return a directory rather than a single file.
31Most other fetchers return a directory rather than a single file.
@@ -38,9 +38,9 @@ Used with Subversion. Expects `url` to a Subversion directory, `rev`, and `sha25
39Used 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`.
39Used 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`.
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.
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:
46{ stdenv, fetchgit }:
46{ stdenv, fetchgit }:
@@ -78,17 +78,17 @@ A number of fetcher functions wrap part of `fetchurl` and `fetchzip`. They are m
79## `fetchFromGitHub` {#fetchfromgithub}
79## `fetchFromGitHub` {#fetchfromgithub}
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.
83`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.
83`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.
85## `fetchFromGitLab` {#fetchfromgitlab}
85## `fetchFromGitLab` {#fetchfromgitlab}
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.
89## `fetchFromGitiles` {#fetchfromgitiles}
89## `fetchFromGitiles` {#fetchfromgitiles}
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.
93## `fetchFromBitbucket` {#fetchfrombitbucket}
93## `fetchFromBitbucket` {#fetchfrombitbucket}
@@ -96,11 +96,11 @@ This is used with BitBucket repositories. The arguments expected are very simila
97## `fetchFromSavannah` {#fetchfromsavannah}
97## `fetchFromSavannah` {#fetchfromsavannah}
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.
101## `fetchFromRepoOrCz` {#fetchfromrepoorcz}
101## `fetchFromRepoOrCz` {#fetchfromrepoorcz}
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.
105## `fetchFromSourcehut` {#fetchfromsourcehut}
105## `fetchFromSourcehut` {#fetchfromsourcehut}
@@ -111,4 +111,4 @@ or "hg"), `domain` and `fetchSubmodules`.
112If `fetchSubmodules` is `true`, `fetchFromSourcehut` uses `fetchgit`
112If `fetchSubmodules` is `true`, `fetchFromSourcehut` uses `fetchgit`
113or `fetchhg` with `fetchSubmodules` or `fetchSubrepos` set to `true`,
113or `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`
59At the end of the process, only one new single layer will be produced and added to the resulting image.
59At the end of the process, only one new single layer will be produced and added to the resulting image.
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`.
63It is possible to inspect the arguments with which an image was built using its `buildArgs` attribute.
63It is possible to inspect the arguments with which an image was built using its `buildArgs` attribute.
@@ -87,7 +87,7 @@ pkgs.dockerTools.buildImage {
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:
92```ShellSession
92```ShellSession
93$ docker images
93$ docker images
@@ -95,7 +95,7 @@ REPOSITORY TAG IMAGE ID CREATED SIZE
95hello latest de2bf4786de6 About a minute ago 25.2MB
95hello latest de2bf4786de6 About a minute ago 25.2MB
98−However, the produced images will not be binary reproducible.
98+however, the produced images will not be binary reproducible.
100## buildLayeredImage {#ssec-pkgs-dockerTools-buildLayeredImage}
100## buildLayeredImage {#ssec-pkgs-dockerTools-buildLayeredImage}
@@ -119,13 +119,13 @@ Create a Docker image with many of the store paths being on their own layer to i
120`contents` _optional_
120`contents` _optional_
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.
124 *Default:* `[]`
124 *Default:* `[]`
126`config` _optional_
126`config` _optional_
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).
130 *Default:* `{}`
130 *Default:* `{}`
@@ -195,9 +195,9 @@ pkgs.dockerTools.buildLayeredImage {
196Increasing the `maxLayers` increases the number of layers which have a chance to be shared between different images.
196Increasing the `maxLayers` increases the number of layers which have a chance to be shared between different images.
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.
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.
202The 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.
202The 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.
@@ -213,7 +213,7 @@ The image produced by running the output script can be piped directly into `dock
213$(nix-build) | docker load
213$(nix-build) | docker load
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:
218```ShellSession
218```ShellSession
219$(nix-build) | gzip --fast | skopeo copy docker-archive:/dev/stdin docker://some_docker_registry/myimage:tag
219$(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 @@
1# pkgs.ociTools {#sec-pkgs-ociTools}
1# pkgs.ociTools {#sec-pkgs-ociTools}
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.
5## buildContainer {#ssec-pkgs-ociTools-buildContainer}
5## buildContainer {#ssec-pkgs-ociTools-buildContainer}
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.
9The parameters of `buildContainer` with an example value are described below:
9The parameters of `buildContainer` with an example value are described below:
@@ -30,7 +30,7 @@ buildContainer {
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
35- `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)
35- `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)
doc/builders/images/snaptools.section.md+1−1
@@ -33,7 +33,7 @@ in snapTools.makeSnap {
34## Build a Graphical Snap {#ssec-pkgs-snapTools-build-a-snap-firefox}
34## Build a Graphical Snap {#ssec-pkgs-snapTools-build-a-snap-firefox}
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.
38``` {#ex-snapTools-buildSnap-firefox .nix}
38``` {#ex-snapTools-buildSnap-firefox .nix}
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
5## Basic usage {#sec-citrix-base}
5## Basic usage {#sec-citrix-base}
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.
9−## Citrix Self-service {#sec-citrix-selfservice}
9+## Citrix Selfservice {#sec-citrix-selfservice}
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.
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:
15```ShellSession
15```ShellSession
16$ storebrowse -C ~/Downloads/receiverconfig.cr
16$ storebrowse -C ~/Downloads/receiverconfig.cr
@@ -19,7 +19,7 @@ $ selfservice
20## Custom certificates {#sec-citrix-custom-certs}
20## Custom certificates {#sec-citrix-custom-certs}
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`:
25with import <nixpkgs> { config.allowUnfree = true; };
25with 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
8$ nix-env -f '<nixpkgs>' -qaP -A eclipses --description
8$ nix-env -f '<nixpkgs>' -qaP -A eclipses --description
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.
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
16packageOverrides = pkgs: {
16packageOverrides = pkgs: {
@@ -22,15 +22,15 @@ packageOverrides = pkgs: {
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
27```ShellSession
27```ShellSession
28$ nix-env -f '<nixpkgs>' -qaP -A eclipses.plugins --description
28$ nix-env -f '<nixpkgs>' -qaP -A eclipses.plugins --description
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.
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
36packageOverrides = pkgs: {
36packageOverrides = pkgs: {
doc/builders/packages/elm.section.md+1−1
@@ -1,6 +1,6 @@
1# Elm {#sec-elm}
1# Elm {#sec-elm}
3−To start a development environment, run:
3+To start a development environment do
5```ShellSession
5```ShellSession
6nix-shell -p elmPackages.elm elmPackages.elm-format
6nix-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.
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.
@@ -101,9 +101,9 @@ You can install it like any other packages via `nix-env -iA myEmacs`. However, t
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.
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'`.
109overrides = self: super: rec {
109overrides = self: super: rec {
doc/builders/packages/etc-files.section.md+4−4
@@ -1,10 +1,10 @@
1# /etc files {#etc}
1# /etc files {#etc}
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.
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.
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_.
@@ -15,4 +15,4 @@ NIX_ETC_SERVICES=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/e
15NIX_ETC_PROTOCOLS=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/protocols
15NIX_ETC_PROTOCOLS=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/protocols
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 @@
3## Build wrapped Firefox with extensions and policies {#build-wrapped-firefox-with-extensions-and-policies}
3## Build wrapped Firefox with extensions and policies {#build-wrapped-firefox-with-extensions-and-policies}
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:
@@ -40,12 +40,13 @@ The `wrapFirefox` function allows to pass policies, preferences and extensions t
43−If `nixExtensions != null`, then all manually installed add-ons will be uninstalled from your browser profile.
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)
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`.
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.
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.
48## Troubleshooting {#sec-firefox-troubleshooting}
48## 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.
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.
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.
36## Fish wrapper {#sec-fish-wrapper}
36## Fish wrapper {#sec-fish-wrapper}
38The `wrapFish` package is a wrapper around Fish which can be used to create
38The `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
40snippets and functions sourced from the given paths. This provides a convenient
40snippets and functions sourced from the given paths. This provides a convenient
41way to test Fish plugins and scripts without having to alter the environment.
41way to test Fish plugins and scripts without having to alter the environment.
doc/builders/packages/fuse.section.md+2−2
@@ -24,10 +24,10 @@ packages on macOS:
24 checking for fuse.h... no
24 checking for fuse.h... no
25 configure: error: No fuse.h found.
25 configure: error: No fuse.h found.
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
28`AC_CHECK_LIBS` to detect libfuse, and will occur even when the `fuse` package
28`AC_CHECK_LIBS` to detect libfuse, and will occur even when the `fuse` package
29is included in `buildInputs`. It happens because libfuse headers throw an error
29is 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
31`FUSE_USE_VERSION`, but only inside C source files. This results in the above
31`FUSE_USE_VERSION`, but only inside C source files. This results in the above
32error at configure time because the configure script would attempt to compile
32error at configure time because the configure script would attempt to compile
33sample FUSE programs without defining `FUSE_USE_VERSION`.
33sample 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.
7IBus 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).
7IBus 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).
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:
12{ pkgs, ... }: {
12{ pkgs, ... }: {
@@ -19,7 +19,7 @@ On NixOS, you need to explicitly enable `ibus` with given engines before customi
20## Using custom hunspell dictionaries {#sec-ibus-typing-booster-customize-hunspell}
20## Using custom hunspell dictionaries {#sec-ibus-typing-booster-customize-hunspell}
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:
25ibus-engines.typing-booster.override { langs = [ "de-at" "en-gb" ]; }
25ibus-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
32The `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:
32The `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:
34−On NixOS, it can be installed using the following expression:
34+On NixOS it can be installed using the following expression:
37{ pkgs, ... }: { fonts.fonts = with pkgs; [ noto-fonts-emoji ]; }
37{ 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
5The 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`).
5The 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`).
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:
10modulesTree = [kernel]
10modulesTree = [kernel]
@@ -14,19 +14,19 @@ modulesTree = [kernel]
15How to add a new (major) version of the Linux kernel to Nixpkgs:
15How to add a new (major) version of the Linux kernel to Nixpkgs:
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.
192. Add the new kernel to the `kernels` attribute set in `linux-kernels.nix` (e.g., create an attribute `kernel_2_6_22`).
192. Add the new kernel to the `kernels` attribute set in `linux-kernels.nix` (e.g., create an attribute `kernel_2_6_22`).
213. 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:
213. 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:
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`).
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.
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`).
29− 4. If needed, you can also run `make menuconfig`:
29+ 4. If needed you can also run `make menuconfig`:
31 ```ShellSession
31 ```ShellSession
32 $ nix-env -f "<nixpkgs>" -iA ncurses
32 $ nix-env -f "<nixpkgs>" -iA ncurses
@@ -34,7 +34,7 @@ How to add a new (major) version of the Linux kernel to Nixpkgs:
34 $ make menuconfig ARCH=arch
34 $ make menuconfig ARCH=arch
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`).
394. 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.
394. 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.
doc/builders/packages/locales.section.md+2−2
@@ -1,5 +1,5 @@
1# Locales {#locales}
1# Locales {#locales}
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.
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 @@
5## ETags on static files served from the Nix store {#sec-nginx-etag}
5## ETags on static files served from the Nix store {#sec-nginx-etag}
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).
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.
11As 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.
11As 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
13If 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.
13If 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.
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
5- `fzf` : `fzf-share`
5- `fzf` : `fzf-share`
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:
10source "$(fzf-share)/completion.bash"
10source "$(fzf-share)/completion.bash"
doc/builders/packages/steam.section.md+8−8
@@ -2,20 +2,20 @@
3## Steam in Nix {#sec-steam-nix}
3## Steam in Nix {#sec-steam-nix}
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.
7Nix problems and constraints:
7Nix problems and constraints:
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`.
10- We don't have the dynamic loader in `/lib`.
10- 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.
12- The steam binary cannot be patched, it's also checked.
12- The steam binary cannot be patched, it's also checked.
14The 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.
14The 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.
16## How to play {#sec-steam-play}
16## How to play {#sec-steam-play}
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.
20## Troubleshooting {#sec-steam-troub}
20## Troubleshooting {#sec-steam-troub}
@@ -32,7 +32,7 @@ Use `programs.steam.enable = true;` if you want to add steam to `systemPackages`
32- **Using the FOSS Radeon or nouveau (nvidia) drivers**
32- **Using the FOSS Radeon or nouveau (nvidia) drivers**
34 - The `newStdcpp` parameter was removed since NixOS 17.09 and should not be needed anymore.
34 - 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
38 steam.sh: line 713: 7842 Segmentation fault (core dumped)
38 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`
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
48 /home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found
48 /home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found
51− you need to add:
51+ you need to add
54 steam.override { withJava = true; };
54 steam.override { withJava = true; };
@@ -56,7 +56,7 @@ Use `programs.steam.enable = true;` if you want to add steam to `systemPackages`
57## steam-run {#sec-steam-run}
57## steam-run {#sec-steam-run}
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
62steam-run ./foo
62steam-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.
5## Configuring urxvt {#sec-urxvt-conf}
5## Configuring urxvt {#sec-urxvt-conf}
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
10rxvt-unicode.override {
10rxvt-unicode.override {
@@ -58,14 +58,14 @@ rxvt-unicode.override {
59## Packaging urxvt plugins {#sec-urxvt-pkg}
59## Packaging urxvt plugins {#sec-urxvt-pkg}
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`.
63A 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.
63A 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.
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:
68passthru.perlPackages = [ "self" ];
68passthru.perlPackages = [ "self" ];
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}
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
6weechat.override {configure = {availablePlugins, ...}: {
6weechat.override {configure = {availablePlugins, ...}: {
@@ -13,7 +13,7 @@ If the `configure` function returns an attrset without the `plugins` attribute,
14The plugins currently available are `python`, `perl`, `ruby`, `guile`, `tcl` and `lua`.
14The plugins currently available are `python`, `perl`, `ruby`, `guile`, `tcl` and `lua`.
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:
19weechat.override { configure = {availablePlugins, ...}: {
19weechat.override { configure = {availablePlugins, ...}: {
@@ -49,7 +49,7 @@ weechat.override {
50Further values can be added to the list of commands when running `weechat --run-command "your-commands"`.
50Further values can be added to the list of commands when running `weechat --run-command "your-commands"`.
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`:
55weechat.override {
55weechat.override {
@@ -64,7 +64,7 @@ weechat.override {
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:
70{ stdenv, fetchurl }:
70{ stdenv, fetchurl }:
doc/builders/special.xml+1
@@ -7,4 +7,5 @@
8 <xi:include href="special/fhs-environments.section.xml" />
8 <xi:include href="special/fhs-environments.section.xml" />
9 <xi:include href="special/mkshell.section.xml" />
9 <xi:include href="special/mkshell.section.xml" />
10+ <xi:include href="special/invalidateFetcherByDrvHash.section.xml" />
doc/builders/special/invalidateFetcherByDrvHash.section.mdnew file+31
@@ -0,0 +1,31 @@
2+## `invalidateFetcherByDrvHash` {#sec-pkgs-invalidateFetcherByDrvHash}
4+Use the derivation hash to invalidate the output via name, for testing.
6+Type: `(a@{ name, ... } -> Derivation) -> a -> Derivation`
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.
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.
16+This relies on the assumption that Nix isn't clever enough to reuse its
17+database of local store contents to optimize fetching.
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.
26+ tests.fetchgit = invalidateFetcherByDrvHash fetchgit {
28+ url = "https://github.com/NixOS/nix";
29+ rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a";
30+ sha256 = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY=";
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.
4−## `testVersion` {#tester-testVersion}
6−Checks the command output contains the specified version
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.
17−passthru.tests.version = testVersion { package = hello; };
19−passthru.tests.version = testVersion {
21− command = "weed version";
24−passthru.tests.version = testVersion {
26− command = "KeY --help";
27− # Wrong '2.5' version in the code. Drop on next version.
32−## `testEqualDerivation` {#tester-testEqualDerivation}
34−Checks that two packages produce the exact same build instructions.
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.
39−When the derivations are equal, the return value is an empty file.
40−Otherwise, the build log explains the difference via `nix-diff`.
46− "The hello package must stay the same when enabling checks."
48− (hello.overrideAttrs(o: { doCheck = true; }))
51−## `invalidateFetcherByDrvHash` {#tester-invalidateFetcherByDrvHash}
53−Use the derivation hash to invalidate the output via name, for testing.
55−Type: `(a@{ name, ... } -> Derivation) -> a -> Derivation`
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.
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.
65−This relies on the assumption that Nix isn't clever enough to reuse its
66−database of local store contents to optimize fetching.
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.
76−tests.fetchgit = invalidateFetcherByDrvHash fetchgit {
78− url = "https://github.com/NixOS/nix";
79− rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a";
80− sha256 = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY=";
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
36## `runCommandLocal` {#trivial-builder-runCommandLocal}
36## `runCommandLocal` {#trivial-builder-runCommandLocal}
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.
40::: {.note}
40::: {.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`.
44## `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin` {#trivial-builder-writeText}
44## `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin` {#trivial-builder-writeText}
@@ -219,5 +219,5 @@ produces an output path `/nix/store/<hash>-runtime-references` containing
219/nix/store/<hash>-hello-2.10
219/nix/store/<hash>-hello-2.10
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
223by `hi`'s output.
223by `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
215There are a few naming guidelines:
215There are a few naming guidelines:
217−- The `pname` attribute _should_ be identical to the upstream package name.
217+- The `name` attribute _should_ be identical to the upstream package name.
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"`.
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"`.
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"`.
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.
227- 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)
227- 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)
doc/contributing/submitting-changes.chapter.md+1−1
@@ -96,7 +96,7 @@ We use jbidwatcher as an example for a discontinued project here.
971. Have Nixpkgs checked out locally and up to date.
971. Have Nixpkgs checked out locally and up to date.
981. Create a new branch for your change, e.g. `git checkout -b jbidwatcher`
981. 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`
1001. Remove the package from the list of all packages (`pkgs/top-level/all-packages.nix`).
1001. Remove the package from the list of all packages (`pkgs/top-level/all-packages.nix`).
1011. 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.)
1011. 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.)
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"
5− <title>Hooks reference</title>
7− Nixpkgs has several hook packages that augment the stdenv phases.
9− <xi:include href="./postgresql-test-hook.section.xml" />
doc/hooks/postgresql-test-hook.section.mddeleted−59
@@ -1,59 +0,0 @@
2−# `postgresqlTestHook` {#sec-postgresqlTestHook}
4−This hook starts a PostgreSQL server during the `checkPhase`. Example:
7−{ stdenv, postgresql, postgresqlTestHook }:
19−If you use a custom `checkPhase`, remember to add the `runHook` calls:
30−## Variables {#sec-postgresqlTestHook-variables}
32−The hook logic will read a number of variables and set them to a default value if unset or empty.
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`.
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`.
49−## TCP and the Nix sandbox {#sec-postgresqlTestHook-tcp}
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.
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.
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.
doc/languages-frameworks/chicken.section.mddeleted−49
@@ -1,49 +0,0 @@
1−# CHICKEN {#sec-chicken}
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".
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
18− chickenPackages.chickenEggs.srfi-189
22−Both `chicken` and its eggs have a setup hook which configures the environment
23−variables `CHICKEN_INCLUDE_PATH` and `CHICKEN_REPOSITORY_PATH`.
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.
31−The package set is regenerated by running the following shell commands:
34−$ nix-shell -p chickenPackages.egg2nix
35−$ cd pkgs/development/compilers/chicken/5/
36−$ egg2nix eggs.scm > eggs.nix
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.
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/gnome.section.md+2−16
@@ -42,21 +42,7 @@ Unlike other libraries mentioned in this section, GdkPixbuf only supports a sing
43### Icons {#ssec-gnome-icons}
43### Icons {#ssec-gnome-icons}
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.
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.
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:
51− pantheon.elementary-icon-theme
55− # The icon theme is hardcoded.
56− --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
61To 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.
47To 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.
@@ -112,7 +98,7 @@ For convenience, it also adds `dconf.lib` for a GIO module implementing a GSetti
113- []{#ssec-gnome-hooks-dconf} `dconf.lib` is a dependency of `wrapGAppsHook`, which then also adds it to the `GIO_EXTRA_MODULES` variable.
99- []{#ssec-gnome-hooks-dconf} `dconf.lib` is a dependency of `wrapGAppsHook`, which then also adds it to the `GIO_EXTRA_MODULES` variable.
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`.
117- []{#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`.
103- []{#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`.
doc/languages-frameworks/index.xml−1
@@ -9,7 +9,6 @@
9 <xi:include href="android.section.xml" />
9 <xi:include href="android.section.xml" />
10 <xi:include href="beam.section.xml" />
10 <xi:include href="beam.section.xml" />
11 <xi:include href="bower.section.xml" />
11 <xi:include href="bower.section.xml" />
12− <xi:include href="chicken.section.xml" />
13 <xi:include href="coq.section.xml" />
12 <xi:include href="coq.section.xml" />
14 <xi:include href="crystal.section.xml" />
13 <xi:include href="crystal.section.xml" />
15 <xi:include href="cuda.section.xml" />
14 <xi:include href="cuda.section.xml" />
@@ -25,10 +25,8 @@
25 <title>Builders</title>
25 <title>Builders</title>
26 <xi:include href="builders/fetchers.chapter.xml" />
26 <xi:include href="builders/fetchers.chapter.xml" />
27 <xi:include href="builders/trivial-builders.chapter.xml" />
27 <xi:include href="builders/trivial-builders.chapter.xml" />
28− <xi:include href="builders/testers.chapter.xml" />
29 <xi:include href="builders/special.xml" />
28 <xi:include href="builders/special.xml" />
30 <xi:include href="builders/images.xml" />
29 <xi:include href="builders/images.xml" />
31− <xi:include href="hooks/index.xml" />
32 <xi:include href="languages-frameworks/index.xml" />
30 <xi:include href="languages-frameworks/index.xml" />
33 <xi:include href="builders/packages/index.xml" />
31 <xi:include href="builders/packages/index.xml" />
doc/stdenv/meta.chapter.md−34
@@ -175,40 +175,6 @@ The NixOS tests are available as `nixosTests` in parameters of derivations. For
176NixOS 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).
176NixOS 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).
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.
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
189−# my-package/default.nix
190−{ stdenv, callPackage }:
191−stdenv.mkDerivation (finalAttrs: {
193− passthru.tests.example = callPackage ./example.nix { my-package = finalAttrs.finalPackage; };
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" ];
205− my-package <example.in >example.actual
206− diff -U3 --color=auto example.expected example.actual
212### `timeout` {#var-meta-timeout}
178### `timeout` {#var-meta-timeout}
214A 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`.
180A 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
318For information about how to run the updates, execute `nix-shell maintainers/scripts/update.nix`.
318For information about how to run the updates, execute `nix-shell maintainers/scripts/update.nix`.
320−### Recursive attributes in `mkDerivation`
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:
325−mkDerivation (finalAttrs: {
329− lib.optionals finalAttrs.withFeature ["--with-feature"];
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.
336−Instead, the definition references `finalAttrs`, allowing users to change `withFeature`
337−consistently with `overrideAttrs`.
339−`finalAttrs` also contains the attribute `finalPackage`, which includes the output paths, etc.
341−Let's look at a more elaborate example to understand the differences between
345−# `pkg` is the _original_ definition (for illustration purposes)
347− mkDerivation (finalAttrs: {
350− # An example attribute
353− # `passthru.tests` is a commonly defined attribute.
354− passthru.tests.simple = f finalAttrs.finalPackage;
356− # An example of an attribute containing a function
357− passthru.appendPackages = packages':
358− finalAttrs.finalPackage.overrideAttrs (newSelf: super: {
359− packages = super.packages ++ packages';
362− # For illustration purposes; referenced as
363− # `(pkg.overrideAttrs(x)).finalAttrs` etc in the text below.
364− passthru.finalAttrs = finalAttrs;
365− passthru.original = pkg;
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`.
372−See also the section about [`passthru.tests`](#var-meta-tests).
374## Phases {#sec-stdenv-phases}
320## Phases {#sec-stdenv-phases}
376`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.
322`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
1098In 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.
1044In 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.
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.
1102The `autoPatchelf` command also recognizes a `--no-recurse` command line flag, which prevents it from recursing into subdirectories.
1048The `autoPatchelf` command also recognizes a `--no-recurse` command line flag, which prevents it from recursing into subdirectories.
doc/using/overrides.chapter.md+2−6
@@ -39,18 +39,14 @@ The function `overrideAttrs` allows overriding the attribute set passed to a `st
39Example usage:
39Example usage:
42−helloWithDebug = pkgs.hello.overrideAttrs (finalAttrs: previousAttrs: {
42+helloWithDebug = pkgs.hello.overrideAttrs (oldAttrs: rec {
43 separateDebugInfo = true;
43 separateDebugInfo = true;
47In 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.
47In 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.
49−The argument `previousAttrs` is conventionally used to refer to the attr set originally passed to `stdenv.mkDerivation`.
49+The argument `oldAttrs` is conventionally used to refer to the attr set originally passed to `stdenv.mkDerivation`.
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.
53−If only a one-argument function is written, the argument has the meaning of `previousAttrs`.
55::: {.note}
51::: {.note}
56Note 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).
52Note 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).
@@ -11,9 +11,6 @@ let
11 callLibs = file: import file { lib = self; };
11 callLibs = file: import file { lib = self; };
14− # interacting with flakes
15− flakes = callLibs ./flakes.nix;
17 # often used, or depending on very little
14 # often used, or depending on very little
18 trivial = callLibs ./trivial.nix;
15 trivial = callLibs ./trivial.nix;
19 fixedPoints = callLibs ./fixed-points.nix;
16 fixedPoints = callLibs ./fixed-points.nix;
@@ -62,7 +59,6 @@ let
62 # linux kernel configuration
59 # linux kernel configuration
63 kernel = callLibs ./kernel.nix;
60 kernel = callLibs ./kernel.nix;
65− inherit (self.flakes) callLocklessFlake;
66 inherit (builtins) add addErrorContext attrNames concatLists
62 inherit (builtins) add addErrorContext attrNames concatLists
67 deepSeq elem elemAt filter genericClosure genList getAttr
63 deepSeq elem elemAt filter genericClosure genList getAttr
68 hasAttr head isAttrs isBool isInt isList isString length
64 hasAttr head isAttrs isBool isInt isList isString length
@@ -98,8 +94,7 @@ let
98 concatImapStringsSep makeSearchPath makeSearchPathOutput
94 concatImapStringsSep makeSearchPath makeSearchPathOutput
99 makeLibraryPath makeBinPath optionalString
95 makeLibraryPath makeBinPath optionalString
100 hasInfix hasPrefix hasSuffix stringToCharacters stringAsChars escape
96 hasInfix hasPrefix hasSuffix stringToCharacters stringAsChars escape
101− escapeShellArg escapeShellArgs isValidPosixName toShellVar toShellVars
102− escapeRegex escapeXML replaceChars lowerChars
97+ escapeShellArg escapeShellArgs escapeRegex escapeXML replaceChars lowerChars
103 upperChars toLower toUpper addContextFrom splitString
98 upperChars toLower toUpper addContextFrom splitString
104 removePrefix removeSuffix versionOlder versionAtLeast
99 removePrefix removeSuffix versionOlder versionAtLeast
105 getName getVersion
100 getName getVersion
@@ -113,7 +108,7 @@ let
113 makeScope makeScopeWithSplicing;
108 makeScope makeScopeWithSplicing;
114 inherit (self.meta) addMetaAttrs dontDistribute setName updateName
109 inherit (self.meta) addMetaAttrs dontDistribute setName updateName
115 appendToName mapDerivationAttrset setPrio lowPrio lowPrioSet hiPrio
110 appendToName mapDerivationAttrset setPrio lowPrio lowPrioSet hiPrio
116− hiPrioSet getLicenseFromSpdxId getExe;
111+ hiPrioSet getLicenseFromSpdxId;
117 inherit (self.sources) pathType pathIsDirectory cleanSourceFilter
112 inherit (self.sources) pathType pathIsDirectory cleanSourceFilter
118 cleanSource sourceByRegex sourceFilesBySuffices
113 cleanSource sourceByRegex sourceFilesBySuffices
119 commitIdFromGitRepo cleanSourceWith pathHasContext
114 commitIdFromGitRepo cleanSourceWith pathHasContext
@@ -1,22 +0,0 @@
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.
11− path = ./directoryContainingFlake;
12− inputs = { inherit nixpkgs; };
15− callLocklessFlake = { path, inputs ? { } }:
17− self = { outPath = path; } //
18− ((import (path + "/flake.nix")).outputs (inputs // { self = self; }));
@@ -126,18 +126,4 @@ rec {
126 lib.warn "getLicenseFromSpdxId: No license matches the given SPDX ID: ${licstr}"
126 lib.warn "getLicenseFromSpdxId: No license matches the given SPDX ID: ${licstr}"
127 { shortName = licstr; }
127 { shortName = licstr; }
130− /* Get the path to the main program of a derivation with either
131− meta.mainProgram or pname or name
133− Type: getExe :: derivation -> string
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"
142− "${lib.getBin x}/bin/${x.meta.mainProgram or (lib.getName x)}";
@@ -113,10 +113,6 @@ rec {
113 args ? {}
113 args ? {}
114 , # This would be remove in the future, Prefer _module.check option instead.
114 , # This would be remove in the future, Prefer _module.check option instead.
115 check ? true
115 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
122 withWarnings = x:
118 withWarnings = x:
@@ -160,10 +156,7 @@ rec {
160 type = types.lazyAttrsOf types.raw;
156 type = types.lazyAttrsOf types.raw;
161 # Only render documentation once at the root of the option tree,
157 # Only render documentation once at the root of the option tree,
162 # not for all individual submodules.
158 # not for all individual submodules.
163− # Allow merging option decls to make this internal regardless.
164− ${if prefix == []
159+ internal = prefix != [];
165− then null # unset => visible
166− else "internal"} = true;
167 # TODO: Change the type of this option to a submodule with a
160 # TODO: Change the type of this option to a submodule with a
168 # freeformType, so that individual arguments can be documented
161 # freeformType, so that individual arguments can be documented
169 # separately
162 # separately
@@ -345,17 +338,15 @@ rec {
345 modules ? [],
338 modules ? [],
346 specialArgs ? {},
339 specialArgs ? {},
347 prefix ? [],
340 prefix ? [],
348− extensionOffset ? length modules,
350 evalModules (evalModulesArgs // {
342 evalModules (evalModulesArgs // {
351 modules = regularModules ++ modules;
343 modules = regularModules ++ modules;
352 specialArgs = evalModulesArgs.specialArgs or {} // specialArgs;
344 specialArgs = evalModulesArgs.specialArgs or {} // specialArgs;
353 prefix = extendArgs.prefix or evalModulesArgs.prefix;
345 prefix = extendArgs.prefix or evalModulesArgs.prefix;
354− inherit extensionOffset;
357 type = lib.types.submoduleWith {
348 type = lib.types.submoduleWith {
358− inherit modules specialArgs extensionOffset;
349+ inherit modules specialArgs;
361 result = withWarnings {
352 result = withWarnings {
@@ -17,7 +17,6 @@ rec {
23 parseDrvName
22 parseDrvName
@@ -254,7 +253,10 @@ rec {
256 hasInfix = infix: content:
255 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);
259 /* Convert a string to a list of characters (i.e. singleton strings).
261 /* Convert a string to a list of characters (i.e. singleton strings).
260 This allows you to, e.g., map a function over each character. However,
262 This allows you to, e.g., map a function over each character. However,
@@ -325,65 +327,6 @@ rec {
326 escapeShellArgs = concatMapStringsSep " " escapeShellArg;
328 escapeShellArgs = concatMapStringsSep " " escapeShellArg;
328− /* Test whether the given name is a valid POSIX shell variable name.
330− Type: string -> bool
333− isValidPosixName "foo_bar000"
335− isValidPosixName "0-bad.jpg"
338− isValidPosixName = name: match "[a-zA-Z_][a-zA-Z0-9_]*" name != null;
340− /* Translate a Nix value into a shell variable declaration, with proper escaping.
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.
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).
349− Type: string -> (string | listOf string | attrsOf string) -> string
353− ${toShellVar "foo" "some string"}
354− [[ "$foo" == "some string" ]]
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}"
365− else if isList value then
366− "declare -a ${name}=(${escapeShellArgs value})"
368− "${name}=${escapeShellArg value}"
371− /* Translate an attribute set into corresponding shell variable declarations
374− Type: attrsOf (string | listOf string | attrsOf string) -> string
381− ${toShellVars { inherit foo bar; }}
382− [[ "$foo" == "$bar" ]]
385− toShellVars = vars: concatStringsSep "\n" (lib.mapAttrsToList toShellVar vars);
387 /* Turn a string into a Nix expression representing that string
330 /* Turn a string into a Nix expression representing that string
389 Type: string -> string
332 Type: string -> string
lib/systems/doubles.nix−2
@@ -74,8 +74,6 @@ in {
74 mips = filterDoubles predicates.isMips;
74 mips = filterDoubles predicates.isMips;
75 mmix = filterDoubles predicates.isMmix;
75 mmix = filterDoubles predicates.isMmix;
76 riscv = filterDoubles predicates.isRiscV;
76 riscv = filterDoubles predicates.isRiscV;
77− riscv32 = filterDoubles predicates.isRiscV32;
78− riscv64 = filterDoubles predicates.isRiscV64;
79 vc4 = filterDoubles predicates.isVc4;
77 vc4 = filterDoubles predicates.isVc4;
80 or1k = filterDoubles predicates.isOr1k;
78 or1k = filterDoubles predicates.isOr1k;
81 m68k = filterDoubles predicates.isM68k;
79 m68k = filterDoubles predicates.isM68k;
lib/systems/inspect.nix−3
@@ -13,7 +13,6 @@ rec {
13 isx86_64 = { cpu = { family = "x86"; bits = 64; }; };
13 isx86_64 = { cpu = { family = "x86"; bits = 64; }; };
14 isPowerPC = { cpu = cpuTypes.powerpc; };
14 isPowerPC = { cpu = cpuTypes.powerpc; };
15 isPower = { cpu = { family = "power"; }; };
15 isPower = { cpu = { family = "power"; }; };
16− isPower64 = { cpu = { family = "power"; bits = 64; }; };
17 isx86 = { cpu = { family = "x86"; }; };
16 isx86 = { cpu = { family = "x86"; }; };
18 isAarch32 = { cpu = { family = "arm"; bits = 32; }; };
17 isAarch32 = { cpu = { family = "arm"; bits = 32; }; };
19 isAarch64 = { cpu = { family = "arm"; bits = 64; }; };
18 isAarch64 = { cpu = { family = "arm"; bits = 64; }; };
@@ -24,8 +23,6 @@ rec {
24 isMips64n64 = { cpu = { family = "mips"; bits = 64; }; abi = { abi = "64"; }; };
23 isMips64n64 = { cpu = { family = "mips"; bits = 64; }; abi = { abi = "64"; }; };
25 isMmix = { cpu = { family = "mmix"; }; };
24 isMmix = { cpu = { family = "mmix"; }; };
26 isRiscV = { cpu = { family = "riscv"; }; };
25 isRiscV = { cpu = { family = "riscv"; }; };
27− isRiscV32 = { cpu = { family = "riscv"; bits = 32; }; };
28− isRiscV64 = { cpu = { family = "riscv"; bits = 64; }; };
29 isSparc = { cpu = { family = "sparc"; }; };
26 isSparc = { cpu = { family = "sparc"; }; };
30 isWasm = { cpu = { family = "wasm"; }; };
27 isWasm = { cpu = { family = "wasm"; }; };
31 isMsp430 = { cpu = { family = "msp430"; }; };
28 isMsp430 = { cpu = { family = "msp430"; }; };
lib/systems/platforms.nix+3−3
@@ -3,7 +3,7 @@
3# targetPlatform, etc) containing at least the minimal set of attrs
3# targetPlatform, etc) containing at least the minimal set of attrs
4# required (see types.parsedPlatform in lib/systems/parse.nix). This
4# required (see types.parsedPlatform in lib/systems/parse.nix). This
5# file takes an already-valid platform and further elaborates it with
5# 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.
@@ -500,7 +500,7 @@ rec {
500 # based on:
500 # based on:
501 # https://www.mail-archive.com/qemu-discuss@nongnu.org/msg05179.html
501 # https://www.mail-archive.com/qemu-discuss@nongnu.org/msg05179.html
502 # https://gmplib.org/~tege/qemu.html#mips64-debian
502 # https://gmplib.org/~tege/qemu.html#mips64-debian
503− mips64el-qemu-linux-gnuabi64 = {
503+ mips64el-qemu-linux-gnuabi64 = (import ./examples).mips64el-linux-gnuabi64 // {
504 linux-kernel = {
504 linux-kernel = {
505 name = "mips64el";
505 name = "mips64el";
506 baseConfig = "64r2el_defconfig";
506 baseConfig = "64r2el_defconfig";
@@ -568,5 +568,5 @@ rec {
569 else if platform.parsed.cpu == lib.systems.parse.cpuTypes.powerpc64le then powernv
569 else if platform.parsed.cpu == lib.systems.parse.cpuTypes.powerpc64le then powernv
571− else { };
571+ else pc;
lib/tests/flakes/subflakeTest/flake.nixdeleted−8
@@ -1,8 +0,0 @@
2− outputs = { self, subflake, callLocklessFlake }: rec {
3− x = (callLocklessFlake {
lib/tests/flakes/subflakeTest/subflake/flake.nixdeleted−5
@@ -22,15 +22,6 @@ in
27− testCallLocklessFlake = {
28− expr = callLocklessFlake {
29− path = ./flakes/subflakeTest;
30− inputs = { subflake = ./flakes/subflakeTest/subflake; inherit callLocklessFlake; };
32− expected = { x = 1; outPath = ./flakes/subflakeTest; };
@@ -260,56 +251,6 @@ runTests {
260 expected = ""test" 'test' < & >";
251 expected = ""test" 'test' < & >";
266− STRing01 = "just a 'string'";
267− _array_ = [ "with" "more strings" ];
268− assoc."with some" = ''
275− STRing01='just a '\'''string'\''''
276− declare -a _array_=('with' 'more strings')
277− declare -A assoc=(['with some']='strings
283− testHasInfixFalse = {
284− expr = hasInfix "c" "abde";
288− testHasInfixTrue = {
289− expr = hasInfix "c" "abcde";
293− testHasInfixDerivation = {
294− expr = hasInfix "hello" (import ../.. { system = "x86_64-linux"; }).hello;
298− testHasInfixPath = {
299− expr = hasInfix "tests" ./.;
303− testHasInfixPathStoreDir = {
304− expr = hasInfix builtins.storeDir ./.;
308− testHasInfixToString = {
309− expr = hasInfix "a" { __toString = _: "a"; };
315 testFilter = {
256 testFilter = {
@@ -293,7 +293,7 @@ checkConfigOutput '^"a c"$' config.result ./functionTo/merging-attrs.nix
294# moduleType
294# moduleType
295checkConfigOutput '^"a b"$' config.resultFoo ./declare-variants.nix ./define-variant.nix
295checkConfigOutput '^"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
297checkConfigOutput '^"a b c"$' config.resultFooFoo ./declare-variants.nix ./define-variant.nix
297checkConfigOutput '^"a b c"$' config.resultFooFoo ./declare-variants.nix ./define-variant.nix
299## emptyValue's
299## emptyValue's
@@ -327,10 +327,6 @@ checkConfigError 'The option .theOption.nested. in .other.nix. is already declar
327# Test that types.optionType leaves types untouched as long as they don't need to be merged
327# Test that types.optionType leaves types untouched as long as they don't need to be merged
328checkConfigOutput 'ok' config.freeformItems.foo.bar ./adhoc-freeformType-survives-type-merge.nix
328checkConfigOutput 'ok' config.freeformItems.foo.bar ./adhoc-freeformType-survives-type-merge.nix
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
335====== module tests ======
331====== module tests ======
336$pass Pass
332$pass Pass
lib/tests/modules/extendModules-168767-imports.nixdeleted−41
@@ -1,41 +0,0 @@
10− options.sub = mkOption {
12− type = types.submodule (
18− options.value = mkOption {
22− options.specialisation = mkOption {
27− specialisation = mkOverride 0 { };
37− { config.sub.value = 1; }
@@ -19,9 +19,6 @@ with lib.systems.doubles; lib.runTests {
19 testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-genode" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ];
19 testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-genode" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ];
20 testmips = mseteq mips [ "mips64el-linux" "mipsel-linux" "mipsel-netbsd" ];
20 testmips = mseteq mips [ "mips64el-linux" "mipsel-linux" "mipsel-netbsd" ];
21 testmmix = mseteq mmix [ "mmix-mmixware" ];
21 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" ];
25 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" ];
22 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" ];
27 testcygwin = mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ];
24 testcygwin = mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ];
@@ -568,11 +568,6 @@ rec {
568 { modules
568 { modules
569 , specialArgs ? {}
569 , specialArgs ? {}
570 , shorthandOnlyDefinesConfig ? false
570 , shorthandOnlyDefinesConfig ? false
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
578 inherit (lib.modules) evalModules;
573 inherit (lib.modules) evalModules;
@@ -584,11 +579,11 @@ rec {
584 allModules = defs: imap1 (n: { value, file }:
579 allModules = defs: imap1 (n: { value, file }:
585 if isFunction value
580 if isFunction value
586 then setFunctionArgs
581 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))
588 (functionArgs value)
583 (functionArgs value)
589 else if isAttrs value
584 else if isAttrs value
591− lib.modules.unifyModuleSyntax file "${toString file}-${toString (n + extensionOffset)}" (shorthandToModule value)
586+ lib.modules.unifyModuleSyntax file "${toString file}-${toString n}" (shorthandToModule value)
592 else value
587 else value
@@ -625,7 +620,6 @@ rec {
625 (base.extendModules {
620 (base.extendModules {
626 modules = [ { _module.args.name = last loc; } ] ++ allModules defs;
621 modules = [ { _module.args.name = last loc; } ] ++ allModules defs;
627 prefix = loc;
622 prefix = loc;
628− extensionOffset = extensionOffset + length defs;
629 }).config;
623 }).config;
630 emptyValue = { value = {}; };
624 emptyValue = { value = {}; };
631 getSubOptions = prefix: (base.extendModules
625 getSubOptions = prefix: (base.extendModules
maintainers/maintainer-list.nix+37−207
@@ -380,12 +380,6 @@
380 githubId = 209175;
380 githubId = 209175;
381 name = "Alesya Huzik";
381 name = "Alesya Huzik";
384− email = "aidalgol+nixpkgs@fastmail.net";
385− github = "aidalgol";
387− name = "Aidan Gauland";
390 email = "aij+git@mrph.org";
384 email = "aij+git@mrph.org";
391 github = "aij";
385 github = "aij";
@@ -525,12 +519,6 @@
525 githubId = 38869148;
519 githubId = 38869148;
526 name = "Alex Eyre";
520 name = "Alex Eyre";
529− email = "aliasgram@gmail.com";
532− name = "Alias Gram";
534 alibabzo = {
522 alibabzo = {
535 email = "alistair.bill@gmail.com";
523 email = "alistair.bill@gmail.com";
536 github = "alibabzo";
524 github = "alibabzo";
@@ -681,18 +669,6 @@
681 githubId = 858965;
669 githubId = 858965;
682 name = "Andrew Morsillo";
670 name = "Andrew Morsillo";
685− name = "Tris Emmy Wilson";
686− email = "tris@tris.fyi";
687− github = "an-empty-string";
691− email = "aipopov@live.ru";
692− github = "AnatolyPopov";
694− name = "Anatolii Popov";
696 andehen = {
672 andehen = {
697 email = "git@andehen.net";
673 email = "git@andehen.net";
698 github = "andehen";
674 github = "andehen";
@@ -841,13 +817,6 @@
841 githubId = 5327697;
817 githubId = 5327697;
842 name = "Anatolii Prylutskyi";
818 name = "Anatolii Prylutskyi";
845− email = "mail@anselmschueler.com";
846− github = "schuelermine";
847− githubId = 48802534;
848− name = "Anselm Schüler";
849− matrix = "@schuelermine:matrix.org";
851 antoinerg = {
820 antoinerg = {
852 email = "roygobeil.antoine@gmail.com";
821 email = "roygobeil.antoine@gmail.com";
853 github = "antoinerg";
822 github = "antoinerg";
@@ -1068,8 +1037,8 @@
1068 name = "Kirill Boltaev";
1037 name = "Kirill Boltaev";
1070 ashley = {
1039 ashley = {
1071− email = "ashley@kira64.xyz";
1040+ email = "personavinny@protonmail.com";
1072− github = "kira64xyz";
1041+ github = "paranoidcat";
1073 githubId = 84152630;
1042 githubId = 84152630;
1074 name = "Ashley Chiara";
1043 name = "Ashley Chiara";
@@ -1409,12 +1378,6 @@
1409 githubId = 164148;
1378 githubId = 164148;
1410 name = "Ben Darwin";
1379 name = "Ben Darwin";
1413− email = "bdd@mindcast.org";
1416− name = "Berk D. Demir";
1418 bdesham = {
1381 bdesham = {
1419 email = "benjamin@esham.io";
1382 email = "benjamin@esham.io";
1420 github = "bdesham";
1383 github = "bdesham";
@@ -1831,12 +1794,6 @@
1831 githubId = 7214361;
1794 githubId = 7214361;
1832 name = "Roman Gerasimenko";
1795 name = "Roman Gerasimenko";
1835− email = "builditluc@icloud.com";
1836− github = "builditluc";
1837− githubId = 37375448;
1840 bburdette = {
1797 bburdette = {
1841 email = "bburdette@protonmail.com";
1798 email = "bburdette@protonmail.com";
1842 github = "bburdette";
1799 github = "bburdette";
@@ -2086,12 +2043,6 @@
2086 githubId = 8228888;
2043 githubId = 8228888;
2087 name = "Charlie Hanley";
2044 name = "Charlie Hanley";
2090− email = "charlesbaynham@gmail.com";
2091− github = "charlesbaynham";
2092− githubId = 4397637;
2093− name = "Charles Baynham";
2095 CharlesHD = {
2046 CharlesHD = {
2096 email = "charleshdespointes@gmail.com";
2047 email = "charleshdespointes@gmail.com";
2097 github = "CharlesHD";
2048 github = "CharlesHD";
@@ -2132,6 +2083,12 @@
2132 githubId = 18648043;
2083 githubId = 18648043;
2133 name = "Daniel Cartwright";
2084 name = "Daniel Cartwright";
2087+ email = "okinan@protonmail.com";
2088+ github = "chiiruno";
2089+ githubId = 30435868;
2090+ name = "Okina Matara";
2135 Chili-Man = {
2092 Chili-Man = {
2136 email = "dr.elhombrechile@gmail.com";
2093 email = "dr.elhombrechile@gmail.com";
2137 name = "Diego Rodriguez";
2094 name = "Diego Rodriguez";
@@ -2303,7 +2260,6 @@
2303 fingerprint = "539F 0655 4D35 38A5 429A E253 13E7 9449 C052 5215";
2260 fingerprint = "539F 0655 4D35 38A5 429A E253 13E7 9449 C052 5215";
2305 name = "ckie";
2262 name = "ckie";
2306− matrix = "@ckie:ckie.dev";
2308 clkamp = {
2264 clkamp = {
2309 email = "c@lkamp.de";
2265 email = "c@lkamp.de";
@@ -3881,13 +3837,6 @@
3881 githubId = 222467;
3837 githubId = 222467;
3882 name = "Dmitry Ivanov";
3838 name = "Dmitry Ivanov";
3885− name = "Ethin Probst";
3886− email = "harlydavidsen@gmail.com";
3887− matrix = "@ethindp:the-gdn.net";
3888− github = "ethindp";
3889− githubId = 8030501;
3891 Etjean = {
3840 Etjean = {
3892 email = "et.jean@outlook.fr";
3841 email = "et.jean@outlook.fr";
3893 github = "Etjean";
3842 github = "Etjean";
@@ -4124,18 +4073,11 @@
4124 matrix = "@felschr:matrix.org";
4073 matrix = "@felschr:matrix.org";
4125 github = "felschr";
4074 github = "felschr";
4126 githubId = 3314323;
4075 githubId = 3314323;
4127− name = "Felix Schröter";
4076+ name = "Felix Tenley";
4128− keys = [
4077+ keys = [{
4131− longkeyid = "ed25519/0x910ACB9F6BD26F58";
4078+ longkeyid = "ed25519/0x910ACB9F6BD26F58";
4132− fingerprint = "6AB3 7A28 5420 9A41 82D9 0068 910A CB9F 6BD2 6F58";
4079+ fingerprint = "6AB3 7A28 5420 9A41 82D9 0068 910A CB9F 6BD2 6F58";
4135− longkeyid = "ed25519/0x671E39E6744C807D";
4136− fingerprint = "7E08 6842 0934 AA1D 6821 1F2A 671E 39E6 744C 807D";
4140 ffinkdevs = {
4082 ffinkdevs = {
4141 email = "fink@h0st.space";
4083 email = "fink@h0st.space";
@@ -4754,12 +4696,6 @@
4754 githubId = 201997;
4696 githubId = 201997;
4755 name = "Eric Seidel";
4697 name = "Eric Seidel";
4758− name = "grindhold";
4759− email = "grindhold+nix@skarphed.org";
4760− github = "grindhold";
4761− githubId = 2592640;
4763 gspia = {
4699 gspia = {
4764 email = "iahogsp@gmail.com";
4700 email = "iahogsp@gmail.com";
4765 github = "gspia";
4701 github = "gspia";
@@ -4778,12 +4714,6 @@
4778 githubId = 343415;
4714 githubId = 343415;
4779 name = "Greg Roodt";
4715 name = "Greg Roodt";
4782− email = "grnnja@gmail.com";
4784− githubId = 31556469;
4785− name = "Prem Netsuwan";
4787 gruve-p = {
4717 gruve-p = {
4788 email = "groestlcoin@gmail.com";
4718 email = "groestlcoin@gmail.com";
4789 github = "gruve-p";
4719 github = "gruve-p";
@@ -5649,12 +5579,6 @@
5649 githubId = 488556;
5579 githubId = 488556;
5650 name = "Javier Aguirre";
5580 name = "Javier Aguirre";
5653− name = "Jayesh Bhoot";
5654− email = "jayesh@bhoot.sh";
5655− github = "jayesh-bhoot";
5656− githubId = 1915507;
5658 jb55 = {
5582 jb55 = {
5659 email = "jb55@jb55.com";
5583 email = "jb55@jb55.com";
5660 github = "jb55";
5584 github = "jb55";
@@ -6885,6 +6809,12 @@
6885 githubId = 99639;
6809 githubId = 99639;
6886 name = "Pawel Kruszewski";
6810 name = "Pawel Kruszewski";
6813+ email = "tomasz.kontusz@gmail.com";
6814+ github = "ktosiek";
6816+ name = "Tomasz Kontusz";
6888 kubukoz = {
6818 kubukoz = {
6889 email = "kubukoz@gmail.com";
6819 email = "kubukoz@gmail.com";
6890 github = "kubukoz";
6820 github = "kubukoz";
@@ -7218,13 +7148,6 @@
7218 githubId = 1769386;
7148 githubId = 1769386;
7219 name = "Liam Diprose";
7149 name = "Liam Diprose";
7222− email = "jared@perrycode.com";
7223− github = "libjared";
7224− githubId = 3746656;
7225− matrix = "@libjared:matrix.org";
7226− name = "Jared Perry";
7228 liff = {
7151 liff = {
7229 email = "liff@iki.fi";
7152 email = "liff@iki.fi";
7230 github = "liff";
7153 github = "liff";
@@ -7255,13 +7178,6 @@
7255 githubId = 714;
7178 githubId = 714;
7256 name = "Lily Ballard";
7179 name = "Lily Ballard";
7258− lilyinstarlight = {
7259− email = "lily@lily.flowers";
7260− matrix = "@lily:lily.flowers";
7261− github = "lilyinstarlight";
7263− name = "Lily Foster";
7265 limeytexan = {
7181 limeytexan = {
7266 email = "limeytexan@gmail.com";
7182 email = "limeytexan@gmail.com";
7267 github = "limeytexan";
7183 github = "limeytexan";
@@ -7390,7 +7306,7 @@
7390 name = "Anthony Lodi";
7306 name = "Anthony Lodi";
7392 loicreynier = {
7308 loicreynier = {
7393− email = "loic@loicreynier.fr";
7309+ email = "loic@loireynier.fr";
7394 github = "loicreynier";
7310 github = "loicreynier";
7395 githubId = 88983487;
7311 githubId = 88983487;
7396 name = "Loïc Reynier";
7312 name = "Loïc Reynier";
@@ -8922,12 +8838,6 @@
8922 githubId = 3747396;
8838 githubId = 3747396;
8923 name = "Nathan Isom";
8839 name = "Nathan Isom";
8926− email = "nix@neil.mayhew.name";
8927− github = "neilmayhew";
8929− name = "Neil Mayhew";
8931 nelsonjeppesen = {
8841 nelsonjeppesen = {
8932 email = "nix@jeppesen.io";
8842 email = "nix@jeppesen.io";
8933 github = "NelsonJeppesen";
8843 github = "NelsonJeppesen";
@@ -10035,12 +9945,6 @@
10035 fingerprint = "2CD2 B030 BD22 32EF DF5A 008A 3618 20A4 5DB4 1E9A";
9945 fingerprint = "2CD2 B030 BD22 32EF DF5A 008A 3618 20A4 5DB4 1E9A";
10039− email = "xdjiaxd@gmail.com";
10040− github = "podocarp";
10041− githubId = 10473184;
10042− name = "Jia Xiaodong";
10044 polendri = {
9948 polendri = {
10045 email = "paul@ijj.li";
9949 email = "paul@ijj.li";
10046 github = "polendri";
9950 github = "polendri";
@@ -10300,12 +10204,6 @@
10300 githubId = 115877;
10204 githubId = 115877;
10301 name = "Kenny Shen";
10205 name = "Kenny Shen";
10304− email = "quaggy@gmail.com";
10307− name = "Jonathan Wright";
10309 queezle = {
10207 queezle = {
10310 email = "git@queezle.net";
10208 email = "git@queezle.net";
10311 github = "qzle";
10209 github = "qzle";
@@ -11126,22 +11024,28 @@
11126 githubId = 132835;
11024 githubId = 132835;
11127 name = "Samuel Dionne-Riel";
11025 name = "Samuel Dionne-Riel";
11028+ email = "s@muel.gr";
11029+ github = "samuelgrf";
11030+ githubId = 67663538;
11031+ name = "Samuel Gräfenstein";
11034+ longkeyid = "rsa4096/0xDE75F92E318123F0";
11035+ fingerprint = "6F2E 2A90 423C 8111 BFF2 895E DE75 F92E 3181 23F0";
11038+ longkeyid = "rsa4096/0xEF76A063F15C63C8";
11039+ fingerprint = "FF24 5832 8FAF 4660 18C6 186E EF76 A063 F15C 63C8";
11129 samuelrivas = {
11043 samuelrivas = {
11130 email = "samuelrivas@gmail.com";
11044 email = "samuelrivas@gmail.com";
11131 github = "samuelrivas";
11045 github = "samuelrivas";
11132 githubId = 107703;
11046 githubId = 107703;
11133 name = "Samuel Rivas";
11047 name = "Samuel Rivas";
11136− name = "Samyak Sarnayak";
11137− email = "samyak201@gmail.com";
11138− github = "Samyak2";
11139− githubId = 34161949;
11141− longkeyid = "rsa4096/0x365873F2F0C6153B";
11142− fingerprint = "155C F413 0129 C058 9A5F 5524 3658 73F2 F0C6 153B";
11145 sander = {
11049 sander = {
11146 email = "s.vanderburg@tudelft.nl";
11050 email = "s.vanderburg@tudelft.nl";
11147 github = "svanderburg";
11051 github = "svanderburg";
@@ -11368,12 +11272,6 @@
11368 githubId = 307899;
11272 githubId = 307899;
11369 name = "Gurkan Gur";
11273 name = "Gurkan Gur";
11372− email = "sb@canva.com";
11373− github = "serge-belov";
11374− githubId = 38824235;
11375− name = "Serge Belov";
11377 sersorrel = {
11275 sersorrel = {
11378 email = "ash@sorrel.sh";
11276 email = "ash@sorrel.sh";
11379 github = "sersorrel";
11277 github = "sersorrel";
@@ -11418,12 +11316,6 @@
11418 githubId = 1151264;
11316 githubId = 1151264;
11419 name = "Sebastian Graf";
11317 name = "Sebastian Graf";
11422− email = "shadaj@users.noreply.github.com";
11423− github = "shadaj";
11424− githubId = 543055;
11425− name = "Shadaj Laddad";
11427 shahrukh330 = {
11319 shahrukh330 = {
11428 email = "shahrukh330@gmail.com";
11320 email = "shahrukh330@gmail.com";
11429 github = "shahrukh330";
11321 github = "shahrukh330";
@@ -11620,12 +11512,6 @@
11620 githubId = 2770647;
11512 githubId = 2770647;
11621 name = "Simon Vandel Sillesen";
11513 name = "Simon Vandel Sillesen";
11624− email = "sir4ur0n@users.noreply.github.com";
11625− github = "sir4ur0n";
11626− githubId = 1204125;
11627− name = "sir4ur0n";
11629 siraben = {
11515 siraben = {
11630 email = "bensiraphob@gmail.com";
11516 email = "bensiraphob@gmail.com";
11631 matrix = "@siraben:matrix.org";
11517 matrix = "@siraben:matrix.org";
@@ -12063,12 +11949,6 @@
12063 githubId = 1694705;
11949 githubId = 1694705;
12064 name = "Sam Stites";
11950 name = "Sam Stites";
12067− email = "strager.nds@gmail.com";
12068− github = "strager";
12070− name = "Matthew \"strager\" Glazar";
12072 stumoss = {
11952 stumoss = {
12073 email = "samoss@gmail.com";
11953 email = "samoss@gmail.com";
12074 github = "stumoss";
11954 github = "stumoss";
@@ -12561,12 +12441,6 @@
12561 githubId = 844343;
12441 githubId = 844343;
12562 name = "Thiago K. Okada";
12442 name = "Thiago K. Okada";
12564− thibaultlemaire = {
12565− email = "thibault.lemaire@protonmail.com";
12566− github = "ThibaultLemaire";
12567− githubId = 21345269;
12568− name = "Thibault Lemaire";
12570 thibautmarty = {
12444 thibautmarty = {
12571 email = "github@thibautmarty.fr";
12445 email = "github@thibautmarty.fr";
12572 matrix = "@thibaut:thibautmarty.fr";
12446 matrix = "@thibaut:thibautmarty.fr";
@@ -12813,13 +12687,6 @@
12813 githubId = 90456;
12687 githubId = 90456;
12814 name = "Rebecca (Bex) Kelly";
12688 name = "Rebecca (Bex) Kelly";
12817− name = "Thomas Watson";
12818− email = "twatson52@icloud.com";
12819− matrix = "@tpw_rules:matrix.org";
12820− github = "tpwrules";
12821− githubId = 208010;
12823 travisbhartwell = {
12690 travisbhartwell = {
12824 email = "nafai@travishartwell.net";
12691 email = "nafai@travishartwell.net";
12825 github = "travisbhartwell";
12692 github = "travisbhartwell";
@@ -13294,12 +13161,6 @@
13294 githubId = 1771332;
13161 githubId = 1771332;
13295 name = "László Vaskó";
13162 name = "László Vaskó";
13298− email = "vmfuentes64@gmail.com";
13299− github = "vlinkz";
13300− githubId = 20145996;
13301− name = "Victor Fuentes";
13303 vlstill = {
13164 vlstill = {
13304 email = "xstill@fi.muni.cz";
13165 email = "xstill@fi.muni.cz";
13305 github = "vlstill";
13166 github = "vlstill";
@@ -13592,7 +13453,7 @@
13592 name = "Andrei Pampu";
13453 name = "Andrei Pampu";
13594 wolfangaukang = {
13455 wolfangaukang = {
13595− email = "clone.gleeful135+nixpkgs@anonaddy.me";
13456+ email = "liquid.query960@4wrd.cc";
13596 github = "wolfangaukang";
13457 github = "wolfangaukang";
13597 githubId = 8378365;
13458 githubId = 8378365;
13598 name = "P. R. d. O.";
13459 name = "P. R. d. O.";
@@ -13645,13 +13506,6 @@
13645 github = "wunderbrick";
13506 github = "wunderbrick";
13646 githubId = 52174714;
13507 githubId = 52174714;
13649− email = "72203260+wyndon@users.noreply.github.com";
13650− matrix = "@wyndon:envs.net";
13651− github = "wyndon";
13652− githubId = 72203260;
13655 wyvie = {
13509 wyvie = {
13656 email = "elijahrum@gmail.com";
13510 email = "elijahrum@gmail.com";
13657 github = "wyvie";
13511 github = "wyvie";
@@ -14211,12 +14065,6 @@
14211 github = "deifactor";
14065 github = "deifactor";
14212 githubId = 30192992;
14066 githubId = 30192992;
14215− name = "deinferno";
14216− email = "14363193+deinferno@users.noreply.github.com";
14217− github = "deinferno";
14218− githubId = 14363193;
14220 fzakaria = {
14068 fzakaria = {
14221 name = "Farid Zakaria";
14069 name = "Farid Zakaria";
14222 email = "farid.m.zakaria@gmail.com";
14070 email = "farid.m.zakaria@gmail.com";
@@ -14340,12 +14188,6 @@
14340 github = "zbioe";
14188 github = "zbioe";
14341 githubId = 7332055;
14189 githubId = 7332055;
14345− email = "linzway@qq.com";
14347− githubId = 348013;
14349 zenithal = {
14191 zenithal = {
14350 name = "zenithal";
14192 name = "zenithal";
14351 email = "i@zenithal.me";
14193 email = "i@zenithal.me";
@@ -14466,16 +14308,4 @@
14466 github = "kuwii";
14308 github = "kuwii";
14467 githubId = 10705175;
14309 githubId = 10705175;
14470− name = "Martin Elias";
14471− email = "martin+nixpkgs@elias.sx";
14472− github = "melias122";
14473− githubId = 1027766;
14476− name = "Bryan Honof";
14477− email = "bryanhonof@gmail.com";
14478− github = "bryanhonof";
14479− githubId = 5932804;
maintainers/scripts/luarocks-packages.csv+1−2
@@ -52,7 +52,7 @@ luadbi-postgresql,,,,,,
52luadbi-sqlite3,,,,,,
52luadbi-sqlite3,,,,,,
53luaepnf,,,,,,
53luaepnf,,,,,,
54luaevent,,,,,,
54luaevent,,,,,,
55−luaexpat,,,,1.4.1-1,,arobyn flosse
55+luaexpat,,,,1.3.0-1,,arobyn flosse
56luaffi,,,http://luarocks.org/dev,,,
56luaffi,,,http://luarocks.org/dev,,,
57luafilesystem,,,,1.7.0-2,,flosse
57luafilesystem,,,,1.7.0-2,,flosse
58lualogging,,,,,,
58lualogging,,,,,,
@@ -64,7 +64,6 @@ luasocket,,,,,,
64luasql-sqlite3,,,,,,vyp
64luasql-sqlite3,,,,,,vyp
65luassert,,,,,,
65luassert,,,,,,
66luasystem,,,,,,
66luasystem,,,,,,
68luautf8,,,,,,pstn
67luautf8,,,,,,pstn
69luazip,,,,,,
68luazip,,,,,,
70lua-yajl,,,,,,pstn
69lua-yajl,,,,,,pstn
maintainers/scripts/pluginupdate.py+37−43
@@ -87,8 +87,7 @@ def make_request(url: str, token=None) -> urllib.request.Request:
87 return urllib.request.Request(url, headers=headers)
87 return urllib.request.Request(url, headers=headers)
90−# a dictionary of plugins and their new repositories
91−Redirects = Dict['PluginDesc', 'Repo']
90+Redirects = Dict['Repo', 'Repo']
93class Repo:
92class Repo:
94 def __init__(
93 def __init__(
@@ -97,8 +96,8 @@ class Repo:
97 self.uri = uri
96 self.uri = uri
98 '''Url to the repo'''
97 '''Url to the repo'''
99 self._branch = branch
98 self._branch = branch
100− # Redirect is the new Repo to use
99+ # {old_uri: new_uri}
101− self.redirect: Optional['Repo'] = None
100+ self.redirect: Redirects = {}
102 self.token = "dummy_token"
101 self.token = "dummy_token"
104 @property
103 @property
@@ -208,7 +207,7 @@ class RepoGitHub(Repo):
210 new_repo = RepoGitHub(owner=new_owner, repo=new_name, branch=self.branch)
209 new_repo = RepoGitHub(owner=new_owner, repo=new_name, branch=self.branch)
211− self.redirect = new_repo
210+ self.redirect[self] = new_repo
214 def prefetch(self, commit: str) -> str:
213 def prefetch(self, commit: str) -> str:
@@ -238,7 +237,7 @@ class RepoGitHub(Repo):
241−@dataclass(frozen=True)
240+@dataclass
242class PluginDesc:
241class PluginDesc:
243 repo: Repo
242 repo: Repo
244 branch: str
243 branch: str
@@ -311,16 +310,6 @@ def load_plugins_from_csv(config: FetchConfig, input_file: Path,) -> List[Plugin
312 return plugins
311 return plugins
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)
324class Editor:
313class Editor:
325 """The configuration of the update script."""
314 """The configuration of the update script."""
@@ -343,15 +332,9 @@ class Editor:
343 self.deprecated = deprecated or root.joinpath("deprecated.json")
332 self.deprecated = deprecated or root.joinpath("deprecated.json")
344 self.cache_file = cache_file or f"{name}-plugin-cache.json"
333 self.cache_file = cache_file or f"{name}-plugin-cache.json"
346− def get_current_plugins(self) -> List[Plugin]:
335+ def get_current_plugins(self):
347 """To fill the cache"""
336 """To fill the cache"""
348− data = run_nix_expr(self.get_plugins)
337+ return get_current_plugins(self)
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"])
356 def load_plugin_spec(self, config: FetchConfig, plugin_file) -> List[PluginDesc]:
339 def load_plugin_spec(self, config: FetchConfig, plugin_file) -> List[PluginDesc]:
357 '''CSV spec'''
340 '''CSV spec'''
@@ -465,10 +448,24 @@ class CleanEnvironment(object):
465 self.empty_config.close()
448 self.empty_config.close()
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)
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"])
468def prefetch_plugin(
465def prefetch_plugin(
469 p: PluginDesc,
466 p: PluginDesc,
470 cache: "Optional[Cache]" = None,
467 cache: "Optional[Cache]" = None,
471−) -> Tuple[Plugin, Optional[Repo]]:
468+) -> Tuple[Plugin, Redirects]:
472 repo, branch, alias = p.repo, p.branch, p.alias
469 repo, branch, alias = p.repo, p.branch, p.alias
473 name = alias or p.repo.name
470 name = alias or p.repo.name
474 commit = None
471 commit = None
@@ -482,7 +479,7 @@ def prefetch_plugin(
482 return cached_plugin, repo.redirect
479 return cached_plugin, repo.redirect
484 has_submodules = repo.has_submodules()
481 has_submodules = repo.has_submodules()
485− log.debug(f"prefetch {name}")
482+ print(f"prefetch {name}")
486 sha256 = repo.prefetch(commit)
483 sha256 = repo.prefetch(commit)
@@ -491,7 +488,7 @@ def prefetch_plugin(
494−def print_download_error(plugin: PluginDesc, ex: Exception):
491+def print_download_error(plugin: str, ex: Exception):
495 print(f"{plugin}: {ex}", file=sys.stderr)
492 print(f"{plugin}: {ex}", file=sys.stderr)
496 ex_traceback = ex.__traceback__
493 ex_traceback = ex.__traceback__
497 tb_lines = [
494 tb_lines = [
@@ -501,21 +498,19 @@ def print_download_error(plugin: PluginDesc, ex: Exception):
501 print("\n".join(tb_lines))
498 print("\n".join(tb_lines))
503def check_results(
500def check_results(
504− results: List[Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]]]
501+ results: List[Tuple[PluginDesc, Union[Exception, Plugin], Redirects]]
505) -> Tuple[List[Tuple[PluginDesc, Plugin]], Redirects]:
502) -> Tuple[List[Tuple[PluginDesc, Plugin]], Redirects]:
507− failures: List[Tuple[PluginDesc, Exception]] = []
504+ failures: List[Tuple[str, Exception]] = []
508 plugins = []
505 plugins = []
506+ # {old: new} plugindesc
509− redirects: Redirects = {}
507+ redirects: Dict[Repo, Repo] = {}
510 for (pdesc, result, redirect) in results:
508 for (pdesc, result, redirect) in results:
511 if isinstance(result, Exception):
509 if isinstance(result, Exception):
512− failures.append((pdesc, result))
510+ failures.append((pdesc.name, result))
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)
520 print(f"{len(results) - len(failures)} plugins were checked", end="")
515 print(f"{len(results) - len(failures)} plugins were checked", end="")
521 if len(failures) == 0:
516 if len(failures) == 0:
@@ -596,13 +591,13 @@ class Cache:
597def prefetch(
592def prefetch(
598 pluginDesc: PluginDesc, cache: Cache
593 pluginDesc: PluginDesc, cache: Cache
599−) -> Tuple[PluginDesc, Union[Exception, Plugin], Optional[Repo]]:
594+) -> Tuple[PluginDesc, Union[Exception, Plugin], dict]:
601 plugin, redirect = prefetch_plugin(pluginDesc, cache)
596 plugin, redirect = prefetch_plugin(pluginDesc, cache)
602 cache[plugin.commit] = plugin
597 cache[plugin.commit] = plugin
603 return (pluginDesc, plugin, redirect)
598 return (pluginDesc, plugin, redirect)
604 except Exception as e:
599 except Exception as e:
605− return (pluginDesc, e, None)
600+ return (pluginDesc, e, {})
@@ -611,7 +606,7 @@ def rewrite_input(
611 input_file: Path,
606 input_file: Path,
612 deprecated: Path,
607 deprecated: Path,
613 # old pluginDesc and the new
608 # old pluginDesc and the new
614− redirects: Redirects = {},
609+ redirects: Dict[PluginDesc, PluginDesc] = {},
615 append: List[PluginDesc] = [],
610 append: List[PluginDesc] = [],
617 plugins = load_plugins_from_csv(config, input_file,)
612 plugins = load_plugins_from_csv(config, input_file,)
@@ -623,10 +618,9 @@ def rewrite_input(
623 cur_date_iso = datetime.now().strftime("%Y-%m-%d")
618 cur_date_iso = datetime.now().strftime("%Y-%m-%d")
624 with open(deprecated, "r") as f:
619 with open(deprecated, "r") as f:
625 deprecations = json.load(f)
620 deprecations = json.load(f)
626− for pdesc, new_repo in redirects.items():
621+ for old, new in redirects.items():
627− new_pdesc = PluginDesc(new_repo, pdesc.branch, pdesc.alias)
628− old_plugin, _ = prefetch_plugin(pdesc)
622+ old_plugin, _ = prefetch_plugin(old)
629− new_plugin, _ = prefetch_plugin(new_pdesc)
623+ new_plugin, _ = prefetch_plugin(new)
630 if old_plugin.normalized_name != new_plugin.normalized_name:
624 if old_plugin.normalized_name != new_plugin.normalized_name:
631 deprecations[old_plugin.normalized_name] = {
625 deprecations[old_plugin.normalized_name] = {
632 "new": new_plugin.normalized_name,
626 "new": new_plugin.normalized_name,
maintainers/team-list.nix−36
@@ -198,18 +198,6 @@ with lib.maintainers; {
198 enableFeatureFreezePing = true;
198 enableFeatureFreezePing = true;
208− scope = "Maintain Enlightenment desktop environment and related packages.";
209− shortName = "Enlightenment";
210− enableFeatureFreezePing = true;
213 # Dummy group for the "everyone else" section
201 # Dummy group for the "everyone else" section
214 feature-freeze-everyone-else = {
202 feature-freeze-everyone-else = {
215 members = [ ];
203 members = [ ];
@@ -355,30 +343,6 @@ with lib.maintainers; {
355 shortName = "Linux Kernel";
343 shortName = "Linux Kernel";
365− scope = "Maintain lumina desktop environment and related packages.";
366− shortName = "Lumina";
367− enableFeatureFreezePing = true;
377− scope = "Maintain LXQt desktop environment and related packages.";
379− enableFeatureFreezePing = true;
382 marketing = {
346 marketing = {
383 members = [
347 members = [
nixos/doc/manual/administration/declarative-containers.section.md+1−1
@@ -40,7 +40,7 @@ section for details on container networking.)
40To disable the container, just remove it from `configuration.nix` and
40To disable the container, just remove it from `configuration.nix` and
41run `nixos-rebuild
41run `nixos-rebuild
42 switch`. Note that this will not delete the root directory of the
42 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
44the imperative method: `nixos-container destroy foo`.
44the imperative method: `nixos-container destroy foo`.
46Declarative containers can be started and stopped using the
46Declarative 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:
10# nixos-container create foo
10# nixos-container create foo
13−This creates the container's root directory in `/var/lib/nixos-containers/foo`
13+This creates the container's root directory in `/var/lib/containers/foo`
14−and a small configuration file in `/etc/nixos-containers/foo.conf`. It also
14+and a small configuration file in `/etc/containers/foo.conf`. It also
15builds the container's initial system configuration and stores it in
15builds the container's initial system configuration and stores it in
16`/nix/var/nix/profiles/per-container/foo/system`. You can modify the
16`/nix/var/nix/profiles/per-container/foo/system`. You can modify the
17initial configuration of the container on the command line. For
17initial configuration of the container on the command line. For
nixos/doc/manual/default.nix−4
@@ -14,10 +14,6 @@ with pkgs;
15 lib = pkgs.lib;
15 lib = pkgs.lib;
17− docbook_xsl_ns = pkgs.docbook-xsl-ns.override {
18− withManOptDedupPatch = true;
21 # We need to strip references to /nix/store/* from options,
17 # We need to strip references to /nix/store/* from options,
22 # including any `extraSources` if some modules came from elsewhere,
18 # including any `extraSources` if some modules came from elsewhere,
23 # or else the build will fail.
19 # 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:
30# mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso
30# mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso
33−## Additional drivers or firmware {#sec-building-image-drivers}
35−If you need additional (non-distributable) drivers or firmware in the
36−installer, you might want to extend these configurations.
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`:
46− imports = [ ./installation-cd-graphical-gnome.nix ];
48− boot.initrd.kernelModules = [ "wl" ];
50− boot.kernelModules = [ "kvm-intel" "wl" ];
51− boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
55−Then build it like in the example above:
58−$ git clone https://github.com/NixOS/nixpkgs.git
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
64## Technical Notes {#sec-building-image-tech-notes}
33## Technical Notes {#sec-building-image-tech-notes}
66The config value enforcement is implemented via `mkImageMediaOverride = mkOverride 60;`
35The config value enforcement is implemented via `mkImageMediaOverride = mkOverride 60;`
nixos/doc/manual/development/development.xml+1
@@ -14,6 +14,7 @@
14 <xi:include href="../from_md/development/building-parts.chapter.xml" />
14 <xi:include href="../from_md/development/building-parts.chapter.xml" />
15 <xi:include href="../from_md/development/what-happens-during-a-system-switch.chapter.xml" />
15 <xi:include href="../from_md/development/what-happens-during-a-system-switch.chapter.xml" />
16 <xi:include href="../from_md/development/writing-documentation.chapter.xml" />
16 <xi:include href="../from_md/development/writing-documentation.chapter.xml" />
17+ <xi:include href="../from_md/development/building-nixos.chapter.xml" />
17 <xi:include href="../from_md/development/nixos-tests.chapter.xml" />
18 <xi:include href="../from_md/development/nixos-tests.chapter.xml" />
18 <xi:include href="../from_md/development/testing-installer.chapter.xml" />
19 <xi:include href="../from_md/development/testing-installer.chapter.xml" />
nixos/doc/manual/development/writing-nixos-tests.section.md+14−25
@@ -159,42 +159,34 @@ The following methods are available on machine objects:
161: Execute a shell command, returning a list `(status, stdout)`.
161: Execute a shell command, returning a list `(status, stdout)`.
163− Commands are run with `set -euo pipefail` set:
165− - If several commands are separated by `;` and one fails, the
166− command as a whole will fail.
168− - For pipelines, the last non-zero exit status will be returned
169− (if there is one; otherwise zero will be returned).
171− - Dereferencing unset variables fails the command.
173− - It will wait for stdout to be closed.
175 If the command detaches, it must close stdout, as `execute` will wait
162 If the command detaches, it must close stdout, as `execute` will wait
176 for this to consume all output reliably. This can be achieved by
163 for this to consume all output reliably. This can be achieved by
177 redirecting stdout to stderr `>&2`, to `/dev/console`, `/dev/null` or
164 redirecting stdout to stderr `>&2`, to `/dev/console`, `/dev/null` or
178 a file. Examples of detaching commands are `sleep 365d &`, where the
165 a file. Examples of detaching commands are `sleep 365d &`, where the
179 shell forks a new process that can write to stdout and `xclip -i`, where
166 shell forks a new process that can write to stdout and `xclip -i`, where
180 the `xclip` command itself forks without closing stdout.
167 the `xclip` command itself forks without closing stdout.
182 Takes an optional parameter `check_return` that defaults to `True`.
168 Takes an optional parameter `check_return` that defaults to `True`.
183 Setting this parameter to `False` will not check for the return code
169 Setting this parameter to `False` will not check for the return code
184 and return -1 instead. This can be used for commands that shut down
170 and return -1 instead. This can be used for commands that shut down
185 the VM and would therefore break the pipe that would be used for
171 the VM and would therefore break the pipe that would be used for
186 retrieving the return code.
172 retrieving the return code.
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.
194: Execute a shell command, raising an exception if the exit status is
176: Execute a shell command, raising an exception if the exit status is
195− not zero, otherwise returning the standard output. Similar to `execute`,
177+ not zero, otherwise returning the standard output. Commands are run
196− except that the timeout is `None` by default. See `execute` for details on
178+ with `set -euo pipefail` set:
197− command execution.
179+
180+ - If several commands are separated by `;` and one fails, the
181+ command as a whole will fail.
183+ - For pipelines, the last non-zero exit status will be returned
184+ (if there is one, zero will be returned otherwise).
186+ - Dereferencing unset variables fail the command.
188+ - It will wait for stdout to be closed. See `execute` for the
@@ -204,13 +196,10 @@ The following methods are available on machine objects:
204`wait_until_succeeds`
196`wait_until_succeeds`
206: Repeat a shell command with 1-second intervals until it succeeds.
198: 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
211`wait_until_fails`
200`wait_until_fails`
213−: Like `wait_until_succeeds`, but repeating the command until it fails.
202+: Repeat a shell command with 1-second intervals until it fails.
215`wait_for_unit`
204`wait_for_unit`
nixos/doc/manual/from_md/administration/declarative-containers.section.xml+2−2
@@ -48,8 +48,8 @@ containers.database = {
48 <literal>configuration.nix</literal> and run
48 <literal>configuration.nix</literal> and run
49 <literal>nixos-rebuild switch</literal>. Note that this will not
49 <literal>nixos-rebuild switch</literal>. Note that this will not
50 delete the root directory of the container in
50 delete the root directory of the container in
51− <literal>/var/lib/nixos-containers</literal>. Containers can be
51+ <literal>/var/lib/containers</literal>. Containers can be destroyed
52− destroyed using the imperative method:
52+ using the imperative method:
53 <literal>nixos-container destroy foo</literal>.
53 <literal>nixos-container destroy foo</literal>.
nixos/doc/manual/from_md/administration/imperative-containers.section.xml+2−3
@@ -14,9 +14,8 @@
14</programlisting>
14</programlisting>
16 This creates the container’s root directory in
16 This creates the container’s root directory in
17− <literal>/var/lib/nixos-containers/foo</literal> and a small
17+ <literal>/var/lib/containers/foo</literal> and a small configuration
18− configuration file in
19− <literal>/etc/nixos-containers/foo.conf</literal>. It also builds
18+ file in <literal>/etc/containers/foo.conf</literal>. It also builds
20 the container’s initial system configuration and stores it in
19 the container’s initial system configuration and stores it in
21 <literal>/nix/var/nix/profiles/per-container/foo/system</literal>.
20 <literal>/nix/var/nix/profiles/per-container/foo/system</literal>.
22 You can modify the initial configuration of the container on the
21 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
44 <programlisting>
44 <programlisting>
45# mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso
45# mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso
48− <section xml:id="sec-building-image-drivers">
49− <title>Additional drivers or firmware</title>
51− If you need additional (non-distributable) drivers or firmware in
52− the installer, you might want to extend these configurations.
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>:
60− <programlisting language="bash">
64− imports = [ ./installation-cd-graphical-gnome.nix ];
66− boot.initrd.kernelModules = [ "wl" ];
68− boot.kernelModules = [ "kvm-intel" "wl" ];
69− boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
73− Then build it like in the example above:
76−$ git clone https://github.com/NixOS/nixpkgs.git
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
80</programlisting>
46</programlisting>
81 </section>
47 </section>
82 <section xml:id="sec-building-image-tech-notes">
48 <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()
274 <listitem>
274 <listitem>
276 Execute a shell command, returning a list
276 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.
300+ <literal>succeed</literal>
304+ Execute a shell command, raising an exception if the exit
305+ status is not zero, otherwise returning the standard output.
280 Commands are run with <literal>set -euo pipefail</literal>
306 Commands are run with <literal>set -euo pipefail</literal>
@@ -291,63 +317,22 @@ start_all()
291 <listitem>
317 <listitem>
293 For pipelines, the last non-zero exit status will be
319 For pipelines, the last non-zero exit status will be
294− returned (if there is one; otherwise zero will be
320+ returned (if there is one, zero will be returned
295− returned).
321+ otherwise).
297 </listitem>
323 </listitem>
298 <listitem>
324 <listitem>
300− Dereferencing unset variables fails the command.
326+ Dereferencing unset variables fail the command.
302 </listitem>
328 </listitem>
303 <listitem>
329 <listitem>
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.
307 </listitem>
334 </listitem>
308 </itemizedlist>
335 </itemizedlist>
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
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.
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
341− <literal>succeed</literal>
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.
351 </listitem>
336 </listitem>
352 </varlistentry>
337 </varlistentry>
353 <varlistentry>
338 <varlistentry>
@@ -368,10 +353,7 @@ start_all()
368 <listitem>
353 <listitem>
370 Repeat a shell command with 1-second intervals until it
355 Repeat a shell command with 1-second intervals until it
371− succeeds. Has a default timeout of 900 seconds which can be
356+ succeeds.
373− <literal>wait_until_succeeds(cmd, timeout=10)</literal>. See
374− <literal>execute</literal> for details on command execution.
376 </listitem>
358 </listitem>
377 </varlistentry>
359 </varlistentry>
@@ -381,8 +363,8 @@ start_all()
382 <listitem>
364 <listitem>
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
387 </listitem>
369 </listitem>
388 </varlistentry>
370 </varlistentry>
nixos/doc/manual/from_md/release-notes/rl-2205.section.xml+2−552
@@ -43,33 +43,6 @@
45 </listitem>
45 </listitem>
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.
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>.
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
73 <listitem>
46 <listitem>
75 PHP 8.1 is now available
48 PHP 8.1 is now available
@@ -100,29 +73,6 @@
100 Systemd has been upgraded to the version 250.
73 Systemd has been upgraded to the version 250.
102 </listitem>
75 </listitem>
105− Pulseaudio has been upgraded to version 15.0 and now
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
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.
126 <listitem>
76 <listitem>
128 <link xlink:href="https://kops.sigs.k8s.io"><literal>kops</literal></link>
78 <link xlink:href="https://kops.sigs.k8s.io"><literal>kops</literal></link>
@@ -151,14 +101,6 @@
153 </listitem>
103 </listitem>
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.
162 </itemizedlist>
104 </itemizedlist>
163 </section>
105 </section>
164 <section xml:id="sec-release-22.05-new-services">
106 <section xml:id="sec-release-22.05-new-services">
@@ -188,13 +130,6 @@
188 <link xlink:href="option.html#opt-services.matrix-conduit.enable">services.matrix-conduit</link>.
130 <link xlink:href="option.html#opt-services.matrix-conduit.enable">services.matrix-conduit</link>.
190 </listitem>
132 </listitem>
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>.
198 <listitem>
133 <listitem>
200 <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html">filebeat</link>,
135 <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html">filebeat</link>,
@@ -426,14 +361,6 @@
426 <link xlink:href="options.html#opt-services.headscale.enable">services.headscale</link>
361 <link xlink:href="options.html#opt-services.headscale.enable">services.headscale</link>
428 </listitem>
363 </listitem>
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>.
437 <listitem>
364 <listitem>
439 <link xlink:href="https://0xerr0r.github.io/blocky/">blocky</link>,
366 <link xlink:href="https://0xerr0r.github.io/blocky/">blocky</link>,
@@ -447,14 +374,6 @@
447 cluster resource manager
374 cluster resource manager
449 </listitem>
376 </listitem>
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>.
458 </itemizedlist>
377 </itemizedlist>
459 </section>
378 </section>
460 <section xml:id="sec-release-22.05-incompatibilities">
379 <section xml:id="sec-release-22.05-incompatibilities">
@@ -522,85 +441,12 @@
522 new versions will release.
441 new versions will release.
524 </listitem>
443 </listitem>
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>.
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
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>.
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>.
560 <listitem>
444 <listitem>
562 <literal>security.klogd</literal> was removed. Logging of
446 <literal>security.klogd</literal> was removed. Logging of
563 kernel messages is handled by systemd since Linux 3.5.
447 kernel messages is handled by systemd since Linux 3.5.
565 </listitem>
449 </listitem>
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:
576− <programlisting language="bash">
578− # Original ssmtp configuration:
583− hostName = "smtp.example:587";
584− authUser = "someone";
585− authPassFile = "/secrets/password.txt";
588− # Equivalent msmtp configuration:
591− accounts.default = {
593− tls_starttls = true;
595− host = "smtp.example";
597− user = "someone";
598− passwordeval = "cat /secrets/password.txt";
604 <listitem>
450 <listitem>
606 <literal>services.kubernetes.addons.dashboard</literal> was
452 <literal>services.kubernetes.addons.dashboard</literal> was
@@ -618,53 +464,12 @@
618 relying on the insecure behaviour before upgrading.
464 relying on the insecure behaviour before upgrading.
620 </listitem>
466 </listitem>
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
629− <itemizedlist spacing="compact">
632− listen on (and allows connections from) both IPv4 and IPv6
634− (<literal>services.pdns-recursor.dns.address</literal>,
635− <literal>services.pdns-recursor.dns.allowFrom</literal>);
640− allow only local connections to the REST API server
641− (<literal>services.pdns-recursor.api.allowFrom</literal>).
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>).
653 <listitem>
467 <listitem>
655 <literal>openssh</literal> has been update to 8.9p1, changing
469 <literal>openssh</literal> has been update to 8.9p1, changing
656 the FIDO security key middleware interface.
470 the FIDO security key middleware interface.
658 </listitem>
472 </listitem>
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>.
668 <listitem>
473 <listitem>
670 <literal>services.k3s.enable</literal> no longer implies
475 <literal>services.k3s.enable</literal> no longer implies
@@ -697,13 +502,6 @@
698</programlisting>
503</programlisting>
699 </listitem>
504 </listitem>
702− <literal>services.prometheus.alertManagerTimeout</literal> has
703− been removed as it has been deprecated upstream and has no
707 <listitem>
505 <listitem>
709 The DHCP server (<literal>services.dhcpd4</literal>,
507 The DHCP server (<literal>services.dhcpd4</literal>,
@@ -737,24 +535,6 @@
739 </listitem>
537 </listitem>
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.
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>.
758 <listitem>
538 <listitem>
760 The <literal>matrix-synapse</literal> service
540 The <literal>matrix-synapse</literal> service
@@ -877,136 +657,6 @@
877 to the new location if the <literal>stateVersion</literal> is
657 to the new location if the <literal>stateVersion</literal> is
881− As of Synapse 1.58.0, the old groups/communities feature has
882− been disabled by default. It will be completely removed with
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:
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
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>
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
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>.
947− The new names are as follows:
949− <itemizedlist spacing="compact">
952− <literal>bindAddress</literal>:
953− <link linkend="opt-services.keycloak.settings.http-host"><literal>services.keycloak.settings.http-host</literal></link>
958− <literal>forceBackendUrlToFrontendUrl</literal>:
959− <link linkend="opt-services.keycloak.settings.hostname-strict-backchannel"><literal>services.keycloak.settings.hostname-strict-backchannel</literal></link>
964− <literal>httpPort</literal>:
965− <link linkend="opt-services.keycloak.settings.http-port"><literal>services.keycloak.settings.http-port</literal></link>
970− <literal>httpsPort</literal>:
971− <link linkend="opt-services.keycloak.settings.https-port"><literal>services.keycloak.settings.https-port</literal></link>
978− For example, when using a reverse proxy the migration could
984− <programlisting language="bash">
985− services.keycloak = {
987− httpPort = "8080";
988− frontendUrl = "https://keycloak.example.com/auth";
989− database.passwordFile = "/run/keys/db_password";
991− "subsystem=undertow"."server=default-server"."http-listener=default".proxy-address-forwarding = true;
998− <programlisting language="bash">
999− services.keycloak = {
1003− hostname = "keycloak.example.com";
1004− http-relative-path = "/auth";
1005− proxy = "edge";
1007− database.passwordFile = "/run/keys/db_password";
1010 </listitem>
660 </listitem>
1011 <listitem>
661 <listitem>
@@ -1142,14 +792,6 @@
1142 <literal>admin</literal> and <literal>password</literal>.
792 <literal>admin</literal> and <literal>password</literal>.
1144 </listitem>
794 </listitem>
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>.
1153 <listitem>
795 <listitem>
1155 The <literal>autorestic</literal> package has been upgraded
797 The <literal>autorestic</literal> package has been upgraded
@@ -1352,14 +994,6 @@
1352 <literal>systemd.nspawn.<name>.execConfig.PrivateUsers = false</literal>
994 <literal>systemd.nspawn.<name>.execConfig.PrivateUsers = false</literal>
1354 </listitem>
996 </listitem>
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>.
1363 <listitem>
997 <listitem>
1365 The Tor SOCKS proxy is now actually disabled if
999 The Tor SOCKS proxy is now actually disabled if
@@ -1370,15 +1004,6 @@
1370 <literal>true</literal>.
1004 <literal>true</literal>.
1372 </listitem>
1006 </listitem>
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
1382 <listitem>
1007 <listitem>
1384 The terraform 0.12 compatibility has been removed and the
1009 The terraform 0.12 compatibility has been removed and the
@@ -1423,16 +1048,6 @@
1423 <literal>otelcorecol</literal> and enjoy a 7x smaller binary.
1048 <literal>otelcorecol</literal> and enjoy a 7x smaller binary.
1425 </listitem>
1050 </listitem>
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.
1436 <listitem>
1051 <listitem>
1438 <literal>pkgs.pgadmin</literal> now refers to
1053 <literal>pkgs.pgadmin</literal> now refers to
@@ -1713,17 +1328,6 @@
1713 <literal>pkgs.cosmoc</literal>.
1328 <literal>pkgs.cosmoc</literal>.
1715 </listitem>
1330 </listitem>
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
1727 </itemizedlist>
1331 </itemizedlist>
1728 </section>
1332 </section>
1729 <section xml:id="sec-release-22.05-notable-changes">
1333 <section xml:id="sec-release-22.05-notable-changes">
@@ -1837,14 +1441,6 @@
1837 </listitem>
1441 </listitem>
1838 </itemizedlist>
1442 </itemizedlist>
1839 </listitem>
1443 </listitem>
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.
1848 <listitem>
1444 <listitem>
1850 If you are using Wayland you can choose to use the Ozone
1446 If you are using Wayland you can choose to use the Ozone
@@ -1993,29 +1589,6 @@
1993 configuration.
1589 configuration.
1995 </listitem>
1591 </listitem>
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.
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.
2019 <listitem>
1592 <listitem>
2021 A new module was added for the Envoy reverse proxy, providing
1594 A new module was added for the Envoy reverse proxy, providing
@@ -2047,51 +1620,10 @@
2047 </listitem>
1620 </listitem>
2048 <listitem>
1621 <listitem>
2050− ORY Kratos was updated to version 0.9.0-alpha.3, which
1623+ ORY Kratos was updated to version 0.8.3-alpha.1.pre.0, which
2051 introduces some breaking changes:
1624 introduces some breaking changes:
2053 <itemizedlist spacing="compact">
1626 <itemizedlist spacing="compact">
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
2060− <literal>https://kratos:4434/admin/identities</literal>
2066− <literal>selfservice.whitelisted_return_urls</literal> has
2067− been renamed to <literal>allowed_return_urls</literal>
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.
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.
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
2095 <listitem>
1627 <listitem>
2097 If you are relying on the SQLite images, update your
1629 If you are relying on the SQLite images, update your
@@ -2128,18 +1660,6 @@
2128 Notes for v0.8.2-alpha-1</link>
1660 Notes for v0.8.2-alpha-1</link>
2130 </listitem>
1662 </listitem>
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>
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>
2143 </itemizedlist>
1663 </itemizedlist>
2144 </listitem>
1664 </listitem>
2145 </itemizedlist>
1665 </itemizedlist>
@@ -2153,13 +1673,6 @@
2153 <literal>true</literal>.
1673 <literal>true</literal>.
2155 </listitem>
1675 </listitem>
2158− A module for declarative configuration of openconnect VPN
2159− profiles was added under
2160− <literal>networking.openconnect</literal>.
2163 <listitem>
1676 <listitem>
2165 The <literal>element-desktop</literal> package now has an
1678 The <literal>element-desktop</literal> package now has an
@@ -2258,21 +1771,6 @@
2258 should now be used instead.
1771 should now be used instead.
2260 </listitem>
1773 </listitem>
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,
2267− <link xlink:href="https://github.com/uber/pam-ussh">pam-ussh</link>.
2272− The <literal>vscode-extensions.ionide.ionide-fsharp</literal>
2273− package has been updated to 6.0.0 and now requires .NET 6.0.
2276 <listitem>
1774 <listitem>
2278 The <literal>zrepl</literal> package has been updated from
1776 The <literal>zrepl</literal> package has been updated from
@@ -2298,24 +1796,6 @@
2298 </listitem>
1796 </listitem>
2299 </itemizedlist>
1797 </itemizedlist>
2300 </listitem>
1798 </listitem>
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.
2308− <itemizedlist spacing="compact">
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).
2319 <listitem>
1799 <listitem>
2321 Renamed option
1801 Renamed option
@@ -2386,10 +1866,7 @@
2387 <literal>services.xserver.desktopManager.xfce</literal> now
1867 <literal>services.xserver.desktopManager.xfce</literal> now
2388 includes Xfce’s screen locker,
1868 includes Xfce’s screen locker,
2389− <literal>xfce4-screensaver</literal> that is enabled by
1869+ <literal>xfce4-screensaver</literal>.
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>.
2394 </listitem>
1871 </listitem>
2395 <listitem>
1872 <listitem>
@@ -2407,24 +1884,6 @@
2407 (<link xlink:href="https://github.com/NixOS/nixpkgs/pull/158992">#158992</link>).
1884 (<link xlink:href="https://github.com/NixOS/nixpkgs/pull/158992">#158992</link>).
2409 </listitem>
1886 </listitem>
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>.
2422− The Nextcloud module now supports to create a Mysql database
2424− <literal>services.nextcloud.database.createLocally</literal>
2428 <listitem>
1887 <listitem>
2430 The <literal>spark3</literal> package has been updated from
1889 The <literal>spark3</literal> package has been updated from
@@ -2456,15 +1915,6 @@
2456 generating host-global NNCP configuration.
1915 generating host-global NNCP configuration.
2458 </listitem>
1917 </listitem>
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
2468 </itemizedlist>
1918 </itemizedlist>
2469 </section>
1919 </section>
2470</section>
1920</section>
nixos/doc/manual/installation/installation.xml−1
@@ -14,5 +14,4 @@
14 <xi:include href="../from_md/installation/installing.chapter.xml" />
14 <xi:include href="../from_md/installation/installing.chapter.xml" />
15 <xi:include href="../from_md/installation/changing-config.chapter.xml" />
15 <xi:include href="../from_md/installation/changing-config.chapter.xml" />
16 <xi:include href="../from_md/installation/upgrading.chapter.xml" />
16 <xi:include href="../from_md/installation/upgrading.chapter.xml" />
17− <xi:include href="../from_md/installation/building-nixos.chapter.xml" />
nixos/doc/manual/man-nixos-rebuild.xml−8
@@ -548,14 +548,6 @@
548 (<replaceable>user@host</replaceable>). You can also set ssh options by
548 (<replaceable>user@host</replaceable>). You can also set ssh options by
549 defining the <envar>NIX_SSHOPTS</envar> environment variable.
549 defining the <envar>NIX_SSHOPTS</envar> environment variable.
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.
559 </listitem>
551 </listitem>
560 </varlistentry>
552 </varlistentry>
nixos/doc/manual/md-to-db.sh+1−1
@@ -1,5 +1,5 @@
1#! /usr/bin/env nix-shell
1#! /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
4# This script is temporarily needed while we transition the manual to
4# This script is temporarily needed while we transition the manual to
5# CommonMark. It converts the .md files in the regular manual folder
5# CommonMark. It converts the .md files in the regular manual folder
nixos/doc/manual/release-notes/rl-2205.section.md+2−226
@@ -17,21 +17,6 @@ In addition to numerous new and upgraded packages, this release has the followin
18- 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.
18- 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.
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.
26− Additionally, `passthru` can now reference `finalAttrs.finalPackage` containing
27− the final package, including attributes such as the output paths and
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.
35- PHP 8.1 is now available
20- PHP 8.1 is now available
37- 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).
22- 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
43- Systemd has been upgraded to the version 250.
28- Systemd has been upgraded to the version 250.
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.
48−- The new [`postgresqlTestHook`](https://nixos.org/manual/nixpkgs/stable/#sec-postgresqlTestHook) runs a PostgreSQL server for the duration of package checks.
50- [`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.
30- [`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.
52- Module authors can use `mkRenamedOptionModuleWith` to automate the deprecation cycle without annoying out-of-tree module authors and their users.
32- Module authors can use `mkRenamedOptionModuleWith` to automate the deprecation cycle without annoying out-of-tree module authors and their users.
54- 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.
34- 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.
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.
58## New Services {#sec-release-22.05-new-services}
36## New Services {#sec-release-22.05-new-services}
60- [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).
38- [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
64- [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).
42- [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).
66−- [nethoscope](https://github.com/vvilhonen/nethoscope), listen to your network traffic. Available as [programs.nethoscope](#opt-programs.nethoscope.enable).
68- [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).
44- [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).
70- [apfs](https://github.com/linux-apfs/linux-apfs-rw), a kernel module for mounting the Apple File System (APFS).
46- [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
128- [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)
104- [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)
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).
132- [blocky](https://0xerr0r.github.io/blocky/), fast and lightweight DNS proxy as ad-blocker for local network with many features.
106- [blocky](https://0xerr0r.github.io/blocky/), fast and lightweight DNS proxy as ad-blocker for local network with many features.
134- [pacemaker](https://clusterlabs.org/pacemaker/) cluster resource manager
108- [pacemaker](https://clusterlabs.org/pacemaker/) cluster resource manager
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).
138<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
110<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
140## Backward Incompatibilities {#sec-release-22.05-incompatibilities}
112## Backward Incompatibilities {#sec-release-22.05-incompatibilities}
@@ -171,71 +143,15 @@ In addition to numerous new and upgraded packages, this release has the followin
171 org-contrib, refer to the ones in `pkgs.emacsPackages.elpaPackages` and
143 org-contrib, refer to the ones in `pkgs.emacsPackages.elpaPackages` and
172 `pkgs.emacsPackages.nongnuPackages` where the new versions will release.
144 `pkgs.emacsPackages.nongnuPackages` where the new versions will release.
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`.
178− If you are changing `system.stateVersion` to `"22.05"` manually on an existing
179− system you are responsible for migrating these directories yourself.
181− This is to improve compatibility with `libcontainer` based software such as Podman and Skopeo
182− which assumes they have ownership over `/etc/containers`.
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".
187- `security.klogd` was removed. Logging of kernel messages is handled
146- `security.klogd` was removed. Logging of kernel messages is handled
188 by systemd since Linux 3.5.
147 by systemd since Linux 3.5.
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:
197− # Original ssmtp configuration:
202− hostName = "smtp.example:587";
203− authUser = "someone";
204− authPassFile = "/secrets/password.txt";
207− # Equivalent msmtp configuration:
210− accounts.default = {
212− tls_starttls = true;
214− host = "smtp.example";
217− passwordeval = "cat /secrets/password.txt";
223- `services.kubernetes.addons.dashboard` was removed due to it being an outdated version.
149- `services.kubernetes.addons.dashboard` was removed due to it being an outdated version.
225- `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.
151- `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.
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`).
233−- In the ncdns module, the default value of `services.ncdns.address` has been changed to the IPv6 loopback address (`::1`).
235- `openssh` has been update to 8.9p1, changing the FIDO security key middleware interface.
153- `openssh` has been update to 8.9p1, changing the FIDO security key middleware interface.
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`.
239- `services.k3s.enable` no longer implies `systemd.enableUnifiedCgroupHierarchy = false`, and will default to the 'systemd' cgroup driver when using `services.k3s.docker = true`.
155- `services.k3s.enable` no longer implies `systemd.enableUnifiedCgroupHierarchy = false`, and will default to the 'systemd' cgroup driver when using `services.k3s.docker = true`.
240 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.
156 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.
241 The previous behavior may be retained by explicitly setting `systemd.enableUnifiedCgroupHierarchy = false` in your configuration.
157 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
256−- `services.prometheus.alertManagerTimeout` has been removed as it has been deprecated upstream and has no effect.
258- The DHCP server (`services.dhcpd4`, `services.dhcpd6`) has been hardened.
172- The DHCP server (`services.dhcpd4`, `services.dhcpd6`) has been hardened.
259 The service is now using the systemd's `DynamicUser` mechanism to run as an unprivileged dynamically-allocated user with limited capabilities.
173 The service is now using the systemd's `DynamicUser` mechanism to run as an unprivileged dynamically-allocated user with limited capabilities.
260 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.
174 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
265- `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.
179- `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.
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.
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`.
271- The `matrix-synapse` service (`services.matrix-synapse`) has been converted to use the `settings` option defined in RFC42.
181- The `matrix-synapse` service (`services.matrix-synapse`) has been converted to use the `settings` option defined in RFC42.
272 This means that options that are part of your `homeserver.yaml` configuration, and that were specified at the top-level of the
182 This means that options that are part of your `homeserver.yaml` configuration, and that were specified at the top-level of the
273 module (`services.matrix-synapse`) now need to be moved into `services.matrix-synapse.settings`. And while not all options you
183 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
362 `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
272 `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
363 location if the `stateVersion` is updated.
273 location if the `stateVersion` is updated.
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.
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
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
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.
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.
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
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)
412− For example, when using a reverse proxy the migration could look
417− services.keycloak = {
420− frontendUrl = "https://keycloak.example.com/auth";
421− database.passwordFile = "/run/keys/db_password";
423− "subsystem=undertow"."server=default-server"."http-listener=default".proxy-address-forwarding = true;
430− services.keycloak = {
434− hostname = "keycloak.example.com";
435− http-relative-path = "/auth";
438− database.passwordFile = "/run/keys/db_password";
442- The MoinMoin wiki engine (`services.moinmoin`) has been removed, because Python 2 is being retired from nixpkgs.
275- The MoinMoin wiki engine (`services.moinmoin`) has been removed, because Python 2 is being retired from nixpkgs.
444- Services in the `hadoop` module previously set `openFirewall` to true by default.
277- 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
481- `services.miniflux.adminCredentialFiles` is now required, instead of defaulting to `admin` and `password`.
314- `services.miniflux.adminCredentialFiles` is now required, instead of defaulting to `admin` and `password`.
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`.
487- 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.
316- 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.
489- For `pkgs.python3.pkgs.ipython`, its direct dependency `pkgs.python3.pkgs.matplotlib-inline`
318- 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
536- `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`
365- `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`
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`.
540- 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`.
367- 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`.
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.
546- 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
369- 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
547`$out/libexec/terraform-providers/<registry>/<owner>/<name>/<version>/<os>_<arch>/terraform-provider-<name>_v<version>` (which mkProvider does).
370`$out/libexec/terraform-providers/<registry>/<owner>/<name>/<version>/<os>_<arch>/terraform-provider-<name>_v<version>` (which mkProvider does).
@@ -563,10 +386,6 @@ In addition to numerous new and upgraded packages, this release has the followin
563 you should change the package you refer to. If you don't need them update your
386 you should change the package you refer to. If you don't need them update your
564 commands from `otelcontribcol` to `otelcorecol` and enjoy a 7x smaller binary.
387 commands from `otelcontribcol` to `otelcorecol` and enjoy a 7x smaller binary.
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.
570- `pkgs.pgadmin` now refers to `pkgs.pgadmin4`. `pgadmin3` has been removed.
389- `pkgs.pgadmin` now refers to `pkgs.pgadmin4`. `pgadmin3` has been removed.
572- `pkgs.noto-fonts-cjk` is now deprecated in favor of `pkgs.noto-fonts-cjk-sans`
391- `pkgs.noto-fonts-cjk` is now deprecated in favor of `pkgs.noto-fonts-cjk-sans`
@@ -644,8 +463,6 @@ In addition to numerous new and upgraded packages, this release has the followin
645- `pkgs.cosmopolitan` no longer provides the `cosmoc` command. It has been moved to `pkgs.cosmoc`.
464- `pkgs.cosmopolitan` no longer provides the `cosmoc` command. It has been moved to `pkgs.cosmoc`.
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.
649<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
466<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
651## Other Notable Changes {#sec-release-22.05-notable-changes}
468## Other Notable Changes {#sec-release-22.05-notable-changes}
@@ -687,10 +504,6 @@ In addition to numerous new and upgraded packages, this release has the followin
687 - Support for older versions of hadoop have been added to the module
504 - Support for older versions of hadoop have been added to the module
688 - Overriding and extending site XML files has been made easier
505 - Overriding and extending site XML files has been made easier
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.
694- If you are using Wayland you can choose to use the Ozone Wayland support
507- If you are using Wayland you can choose to use the Ozone Wayland support
695 in Chrome and several Electron apps by setting the environment variable
508 in Chrome and several Electron apps by setting the environment variable
696 `NIXOS_OZONE_WL=1` (for example via
509 `NIXOS_OZONE_WL=1` (for example via
@@ -746,17 +559,6 @@ In addition to numerous new and upgraded packages, this release has the followin
747- The `services.stubby` module was converted to a [settings-style](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) configuration.
560- The `services.stubby` module was converted to a [settings-style](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) configuration.
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.
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.
760- A new module was added for the Envoy reverse proxy, providing the options `services.envoy.enable` and `services.envoy.settings`.
562- A new module was added for the Envoy reverse proxy, providing the options `services.envoy.enable` and `services.envoy.settings`.
762- The option `services.duplicati.dataDir` has been added to allow changing the location of duplicati's files.
564- The option `services.duplicati.dataDir` has been added to allow changing the location of duplicati's files.
@@ -765,28 +567,18 @@ In addition to numerous new and upgraded packages, this release has the followin
766- `nixos-generate-config` now puts the dhcp configuration in `hardware-configuration.nix` instead of `configuration.nix`.
568- `nixos-generate-config` now puts the dhcp configuration in `hardware-configuration.nix` instead of `configuration.nix`.
768−- ORY Kratos was updated to version 0.9.0-alpha.3, which introduces some breaking changes:
570+- ORY Kratos was updated to version 0.8.3-alpha.1.pre.0, 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.
774 - If you are relying on the SQLite images, update your Docker Pull commands as follows:
571 - If you are relying on the SQLite images, update your Docker Pull commands as follows:
775 - `docker pull oryd/kratos:{version}`
572 - `docker pull oryd/kratos:{version}`
776 - Additionally, all passwords now have to be at least 8 characters long.
573 - Additionally, all passwords now have to be at least 8 characters long.
777 - For more details, see:
574 - For more details, see:
778 - [Release Notes for v0.8.1-alpha-1](https://github.com/ory/kratos/releases/tag/v0.8.1-alpha.1)
575 - [Release Notes for v0.8.1-alpha-1](https://github.com/ory/kratos/releases/tag/v0.8.1-alpha.1)
779 - [Release Notes for v0.8.2-alpha-1](https://github.com/ory/kratos/releases/tag/v0.8.2-alpha.1)
576 - [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)
784- `fetchFromSourcehut` now allows fetching repositories recursively
578- `fetchFromSourcehut` now allows fetching repositories recursively
785 using `fetchgit` or `fetchhg` if the argument `fetchSubmodules`
579 using `fetchgit` or `fetchhg` if the argument `fetchSubmodules`
786 is set to `true`.
580 is set to `true`.
788−- A module for declarative configuration of openconnect VPN profiles was added under `networking.openconnect`.
790- The `element-desktop` package now has an `useKeytar` option (defaults to `true`),
582- The `element-desktop` package now has an `useKeytar` option (defaults to `true`),
791 which allows disabling `keytar` and in turn `libsecret` usage
583 which allows disabling `keytar` and in turn `libsecret` usage
792 (which binds to native credential managers / keychain libraries).
584 (which binds to native credential managers / keychain libraries).
@@ -817,18 +609,11 @@ In addition to numerous new and upgraded packages, this release has the followin
817 and [services.logrotate.extraConfig](#opt-services.logrotate.extraConfig) will work, but issue deprecation
609 and [services.logrotate.extraConfig](#opt-services.logrotate.extraConfig) will work, but issue deprecation
818 warnings and [services.logrotate.settings](#opt-services.logrotate.settings) should now be used instead.
610 warnings and [services.logrotate.settings](#opt-services.logrotate.settings) should now be used instead.
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).
822−- The `vscode-extensions.ionide.ionide-fsharp` package has been updated to 6.0.0 and now requires .NET 6.0.
824- The `zrepl` package has been updated from 0.4.0 to 0.5:
612- The `zrepl` package has been updated from 0.4.0 to 0.5:
826 - The RPC protocol version was bumped; all zrepl daemons in a setup must be updated and restarted before replication can resume.
614 - The RPC protocol version was bumped; all zrepl daemons in a setup must be updated and restarted before replication can resume.
827 - 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.
615 - 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.
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).
832- Renamed option `services.openssh.challengeResponseAuthentication` to `services.openssh.kbdInteractiveAuthentication`.
617- Renamed option `services.openssh.challengeResponseAuthentication` to `services.openssh.kbdInteractiveAuthentication`.
833 Reason is that the old name has been deprecated upstream.
618 Reason is that the old name has been deprecated upstream.
834 Using the old option name will still work, but produce a warning.
619 Using the old option name will still work, but produce a warning.
@@ -853,17 +638,12 @@ In addition to numerous new and upgraded packages, this release has the followin
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.
638- 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`.
639 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`.
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).
641+- `services.xserver.desktopManager.xfce` now includes Xfce's screen locker, `xfce4-screensaver`.
858- 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)).
643- 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)).
860- The `R` package now builds again on `aarch64-darwin` ([#158992](https://github.com/NixOS/nixpkgs/pull/158992)).
645- The `R` package now builds again on `aarch64-darwin` ([#158992](https://github.com/NixOS/nixpkgs/pull/158992)).
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`.
864−- The Nextcloud module now supports to create a Mysql database automatically
865− with `services.nextcloud.database.createLocally` enabled.
867- The `spark3` package has been updated from 3.1.2 to 3.2.1 ([#160075](https://github.com/NixOS/nixpkgs/pull/160075)):
647- The `spark3` package has been updated from 3.1.2 to 3.2.1 ([#160075](https://github.com/NixOS/nixpkgs/pull/160075)):
869 - Testing has been enabled for `aarch64-linux` in addition to `x86_64-linux`.
649 - Testing has been enabled for `aarch64-linux` in addition to `x86_64-linux`.
@@ -871,8 +651,4 @@ In addition to numerous new and upgraded packages, this release has the followin
872- The `programs.nncp` options were added for generating host-global NNCP configuration.
652- The `programs.nncp` options were added for generating host-global NNCP configuration.
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.
878<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
654<!-- 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.
4−# The result of this builder is a single disk image, partitioned like this:
6−# * partition #1: a very small, 1MiB partition to leave room for Grub.
8−# * partition #2: boot, a partition formatted with FAT to be used for /boot.
9−# FAT is chosen to support EFI.
11−# * partition #3: nixos, a partition dedicated to a zpool.
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`.
18−, # The NixOS configuration to be installed onto the disk image.
21−, # size of the FAT partition, in megabytes.
24−, # The size of the root partition, in megabytes.
27−, # The name of the ZFS pool
28− rootPoolName ? "tank"
31− rootPoolProperties ? {
34−, # pool-wide filesystem properties
35− rootPoolFilesystemProperties ? {
36− acltype = "posixacl";
39− mountpoint = "legacy";
43−, # datasets, with per-attribute options:
44− # mount: (optional) mount point in the VM
45− # properties: (optional) ZFS properties on the dataset, like filesystemProperties
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 `/`
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'.
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.
62−, # Shell code executed after the VM has finished.
65−, name ? "nixos-disk-image"
67−, # Disk image format, one of qcow2, qcow2-compressed, vdi, vpc, raw.
70−, # Include a copy of Nixpkgs in the disk image
71− includeChannel ? true
74− formatOpt = if format == "qcow2-compressed" then "qcow2" else format;
76− compress = lib.optionalString (format == "qcow2-compressed") "-c";
78− filenameSuffix = "." + {
83− }.${formatOpt} or formatOpt;
84− rootFilename = "nixos.root${filenameSuffix}";
86− # FIXME: merge with channel.nix / make-channel.nix.
89− nixpkgs = lib.cleanSource pkgs.path;
91− pkgs.runCommand "nixos-${config.system.nixos.version}" { } ''
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
98− rm -rf $out/nixos/.git
99− echo -n ${config.system.nixos.versionSuffix} > $out/nixos/.version-suffix
102− closureInfo = pkgs.closureInfo {
103− rootPaths = [ config.system.build.toplevel ]
104− ++ (lib.optional includeChannel channelSources);
107− modulesTree = pkgs.aggregateModules
108− (with config.boot.kernelPackages; [ kernel zfs ]);
110− tools = lib.makeBinPath (
112− config.system.build.nixos-enter
113− config.system.build.nixos-install
124− hasDefinedMount = disk: ((disk.mount or null) != null);
126− stringifyProperties = prefix: properties: lib.concatStringsSep " \\\n" (
129− property: value: "${prefix} ${lib.escapeShellArg property}=${lib.escapeShellArg value}"
134− featuresToProperties = features:
138− name = "feature@${feature}";
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 }:
149− properties = stringifyProperties "-o" (value.properties or { });
151− "zfs create -p ${properties} ${name}";
153− lib.concatMapStringsSep "\n" cmd sorted;
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 }:
162− mkdir -p /mnt${lib.escapeShellArg value.mount}
163− mount -t zfs ${name} /mnt${lib.escapeShellArg value.mount}
166− lib.concatMapStringsSep "\n" cmd sorted;
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 }:
175− umount /mnt${lib.escapeShellArg value.mount}
178− lib.concatMapStringsSep "\n" cmd sorted;
181− fileSystemsCfgFile =
183− mountable = lib.filterAttrs (_: value: hasDefinedMount value) datasets;
185− pkgs.runCommand "filesystem-config.nix"
187− buildInputs = with pkgs; [ jq nixpkgs-fmt ];
188− filesystems = builtins.toJSON {
189− fileSystems = lib.mapAttrs'
196− device = "${dataset}";
202− passAsFile = [ "filesystems" ];
205− echo "builtins.fromJSON '''"
206− jq . < "$filesystemsPath"
214− if configFile == null
215− then fileSystemsCfgFile
217− pkgs.runCommand "configuration.nix"
219− buildInputs = with pkgs; [ nixpkgs-fmt ];
223− echo '{ imports = ['
224− printf "(%s)\n" "$(cat ${fileSystemsCfgFile})";
225− printf "(%s)\n" "$(cat ${configFile})";
233− pkgs.vmTools.override {
235− [ "zfs" "9p" "9pnet_virtio" "virtio_pci" "virtio_blk" ] ++
236− (pkgs.lib.optional pkgs.stdenv.hostPlatform.isx86 "rtc_cmos");
237− kernel = modulesTree;
240− pkgs.runCommand name
243− QEMU_OPTS = "-drive file=$rootDiskImage,if=virtio,cache=unsafe,werror=report";
245− PATH=$PATH:${pkgs.qemu_kvm}/bin
248− rootDiskImage=root.raw
249− qemu-img create -f raw $rootDiskImage ${toString (bootSize + rootSize)}M
253− ${if formatOpt == "raw" then ''
254− mv $rootDiskImage $out/${rootFilename}
256− ${pkgs.qemu}/bin/qemu-img convert -f raw -O ${formatOpt} ${compress} $rootDiskImage $out/${rootFilename}
258− rootDiskImage=$out/${rootFilename}
263− export PATH=${tools}:$PATH
266− cp -sv /dev/vda /dev/sda
267− cp -sv /dev/vda /dev/xvda
269− parted --script /dev/vda -- \
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 \
280− sfdisk --dump /dev/vda
284− ${stringifyProperties " -o" rootPoolProperties} \
285− ${stringifyProperties " -O" rootPoolFilesystemProperties} \
286− ${rootPoolName} /dev/vda3
287− parted --script /dev/vda -- print
293− mkfs.vfat -n ESP /dev/vda2
294− mount /dev/vda2 /mnt/boot
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
303− export NIX_STATE_DIR=$TMPDIR/state
304− nix-store --load-db < ${closureInfo}/registration
309− --system ${config.system.build.toplevel} \
311− ${lib.optionalString includeChannel ''--channel ${channelSources}''}
318− zpool export ${rootPoolName}
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 {
24 qemuBinary = qemuPkg: {
24 qemuBinary = qemuPkg: {
25 x86_64-linux = "${qemuPkg}/bin/qemu-kvm -cpu max";
25 x86_64-linux = "${qemuPkg}/bin/qemu-kvm -cpu max";
26− armv7l-linux = "${qemuPkg}/bin/qemu-system-arm -machine virt,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 -machine virt,gic-version=max,accel=kvm:tcg -cpu max";
27+ aarch64-linux = "${qemuPkg}/bin/qemu-system-aarch64 -enable-kvm -machine virt,gic-version=host -cpu host";
28 powerpc64le-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
28 powerpc64le-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
29 powerpc64-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
29 powerpc64-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
30 x86_64-darwin = "${qemuPkg}/bin/qemu-kvm -cpu max";
30 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 }:
3with systemdUtils.lib;
3with systemdUtils.lib;
4with systemdUtils.unitOptions;
4with systemdUtils.unitOptions;
@@ -34,36 +34,4 @@ rec {
35 automounts = with types; listOf (submodule [ stage2AutomountOptions unitConfig automountConfig ]);
35 automounts = with types; listOf (submodule [ stage2AutomountOptions unitConfig automountConfig ]);
36 initrdAutomounts = with types; attrsOf (submodule [ stage1AutomountOptions unitConfig automountConfig ]);
36 initrdAutomounts = with types; attrsOf (submodule [ stage1AutomountOptions unitConfig automountConfig ]);
38− initrdContents = types.attrsOf (types.submodule ({ config, options, name, ... }: {
40− enable = mkEnableOption "copying of this file and symlinking it" // { default = true; };
52− type = types.nullOr types.lines;
53− description = "Text of the file.";
58− description = "Path of the source file.";
63− source = mkIf (config.text != null) (
64− let name' = "initrd-" + baseNameOf name;
65− in mkDerivedConfig options.text (pkgs.writeText name')
nixos/lib/test-driver/test_driver/driver.py+1−1
@@ -86,7 +86,7 @@ class Driver:
87 def subtest(self, name: str) -> Iterator[None]:
87 def subtest(self, name: str) -> Iterator[None]:
88 """Group logs under a given test name"""
88 """Group logs under a given test name"""
89− with rootlog.nested("subtest: " + name):
89+ with rootlog.nested(name):
92 return True
92 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
2from contextlib import contextmanager
2from contextlib import contextmanager
3from typing import Any, Dict, Iterator
3from typing import Any, Dict, Iterator
4from queue import Queue, Empty
4from queue import Queue, Empty
@@ -81,11 +81,7 @@ class Logger:
82 @contextmanager
82 @contextmanager
83 def nested(self, message: str, attributes: Dict[str, str] = {}) -> Iterator[None]:
83 def nested(self, message: str, attributes: Dict[str, str] = {}) -> Iterator[None]:
85− self.maybe_prefix(
84+ self._eprint(self.maybe_prefix(message, attributes))
86− Style.BRIGHT + Fore.GREEN + message + Style.RESET_ALL, attributes
90 self.xml.startElement("nest", attrs={})
86 self.xml.startElement("nest", attrs={})
91 self.xml.startElement("head", attributes)
87 self.xml.startElement("head", attributes)
nixos/lib/test-driver/test_driver/machine.py+2−9
@@ -526,17 +526,10 @@ class Machine:
526 self.run_callbacks()
526 self.run_callbacks()
527 self.connect()
527 self.connect()
529− # Always run command with shell opts
530− command = f"set -euo pipefail; {command}"
533 if timeout is not None:
529 if timeout is not None:
534− timeout_str = f"timeout {timeout}"
537− f"{timeout_str} sh -c {shlex.quote(command)} | (base64 --wrap 0; echo)\n"
530+ command = "timeout {} sh -c {}".format(timeout, shlex.quote(command))
532+ out_command = f"( set -euo pipefail; {command} ) | (base64 --wrap 0; echo)\n"
540 assert self.shell
533 assert self.shell
541 self.shell.send(out_command.encode())
534 self.shell.send(out_command.encode())
@@ -194,25 +194,9 @@ rec {
194 (( ! $inherit_errexit_enabled )) && shopt -u inherit_errexit
194 (( ! $inherit_errexit_enabled )) && shopt -u inherit_errexit
197− /* Remove packages of packagesToRemove from packages, based on their names.
198− Relies on package names and has quadratic complexity so use with caution!
201− removePackagesByName :: [package] -> [package] -> [package]
204− removePackagesByName [ nautilus file-roller ] [ file-roller totem ]
207− removePackagesByName = packages: packagesToRemove:
209− namesToRemove = map lib.getName packagesToRemove;
211− lib.filter (x: !(builtins.elem (lib.getName x) namesToRemove)) packages;
213 systemdUtils = {
197 systemdUtils = {
214 lib = import ./systemd-lib.nix { inherit lib config pkgs; };
198 lib = import ./systemd-lib.nix { inherit lib config pkgs; };
215 unitOptions = import ./systemd-unit-options.nix { inherit lib systemdUtils; };
199 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; };
nixos/maintainers/scripts/ec2/amazon-image.nix+1−1
@@ -73,7 +73,7 @@ in {
76− zfsBuilder = import ../../../lib/make-multi-disk-zfs-image.nix {
76+ zfsBuilder = import ../../../lib/make-zfs-image.nix {
77 inherit lib config configFile;
77 inherit lib config configFile;
78 inherit (cfg) contents format name;
78 inherit (cfg) contents format name;
79 pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package
79 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;
27 networking.useDHCP = false;
27 networking.useDHCP = false;
28 networking.interfaces.eth0.useDHCP = true;
28 networking.interfaces.eth0.useDHCP = true;
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
31 documentation.enable = true;
31 documentation.enable = true;
32 documentation.nixos.enable = true;
32 documentation.nixos.enable = true;
33 environment.noXlibs = false;
33 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 ]; }"
3−{ config, lib, pkgs, ... }:
5− inherit (lib) mkOption types;
7− cfg = config.openstackImage;
8− imageBootMode = if config.openstack.efi then "uefi" else "legacy-bios";
12− ../../../modules/virtualisation/openstack-config.nix
13− ] ++ (lib.optional copyChannel ../../../modules/installer/cd-dvd/channel.nix);
16− options.openstackImage = {
19− description = "The name of the generated derivation";
20− default = "nixos-openstack-image-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}";
26− description = "The size in MB of the image";
30− type = types.enum [ "raw" "qcow2" ];
32− description = "The image format to output";
37− documentation.enable = copyChannel;
43− "tank/system/root".mount = "/";
44− "tank/system/var".mount = "/var";
45− "tank/local/nix".mount = "/nix";
46− "tank/user/home".mount = "/home";
51− system.build.openstackImage = import ../../../lib/make-single-disk-zfs-image.nix {
53− inherit (cfg) contents format name;
54− pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package
56− configFile = pkgs.writeText "configuration.nix"
58− { modulesPath, ... }: {
59− imports = [ "''${modulesPath}/virtualisation/openstack-config.nix" ];
60− openstack.zfs.enable = true;
64− includeChannel = copyChannel;
68− rootSize = cfg.sizeMB;
69− rootPoolProperties = {
74− datasets = config.openstack.zfs.datasets;
77− extension=''${rootDiskImage##*.}
78− friendlyName=$out/${cfg.name}
79− rootDisk="$friendlyName.root.$extension"
80− mv "$rootDiskImage" "$rootDisk"
82− mkdir -p $out/nix-support
83− echo "file ${cfg.format} $rootDisk" >> $out/nix-support/hydra-build-products
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" \
92− | .label = $system_label
93− | .boot_mode = $boot_mode
95− | .disks.root.logical_bytes = $root_logical_bytes
96− | .disks.root.file = $root
97− ' > $out/nix-support/image-info.json
nixos/maintainers/scripts/openstack/openstack-image.nix+8−9
@@ -1,18 +1,17 @@
1# nix-build '<nixpkgs/nixos>' -A config.system.build.openstackImage --arg configuration "{ imports = [ ./nixos/maintainers/scripts/openstack/openstack-image.nix ]; }"
1# nix-build '<nixpkgs/nixos>' -A config.system.build.openstackImage --arg configuration "{ imports = [ ./nixos/maintainers/scripts/openstack/openstack-image.nix ]; }"
3{ config, lib, pkgs, ... }:
3{ config, lib, pkgs, ... }:
9− ../../../modules/virtualisation/openstack-config.nix
10− ] ++ (lib.optional copyChannel ../../../modules/installer/cd-dvd/channel.nix);
12− documentation.enable = copyChannel;
5+with lib;
9+ [ ../../../modules/installer/cd-dvd/channel.nix
10+ ../../../modules/virtualisation/openstack-config.nix
14 system.build.openstackImage = import ../../../lib/make-disk-image.nix {
13 system.build.openstackImage = import ../../../lib/make-disk-image.nix {
15− inherit lib config copyChannel;
14+ inherit lib config;
16 additionalSpace = "1024M";
15 additionalSpace = "1024M";
17 pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package
16 pkgs = import ../../../.. { inherit (pkgs) system; }; # ensure we use the regular qemu-kvm package
18 format = "qcow2";
17 format = "qcow2";
nixos/modules/config/console.nix+9−23
@@ -12,7 +12,7 @@ let
13 optimizedKeymap = pkgs.runCommand "keymap" {
13 optimizedKeymap = pkgs.runCommand "keymap" {
14 nativeBuildInputs = [ pkgs.buildPackages.kbd ];
14 nativeBuildInputs = [ pkgs.buildPackages.kbd ];
15− LOADKEYS_KEYMAP_PATH = "${consoleEnv pkgs.kbd}/share/keymaps/**";
15+ LOADKEYS_KEYMAP_PATH = "${consoleEnv}/share/keymaps/**";
16 preferLocalBuild = true;
16 preferLocalBuild = true;
18 loadkeys -b ${optionalString isUnicode "-u"} "${cfg.keyMap}" > $out
18 loadkeys -b ${optionalString isUnicode "-u"} "${cfg.keyMap}" > $out
@@ -24,9 +24,9 @@ let
24 FONT=${cfg.font}
24 FONT=${cfg.font}
27− consoleEnv = kbd: pkgs.buildEnv {
27+ consoleEnv = pkgs.buildEnv {
28 name = "console-env";
28 name = "console-env";
29− paths = [ kbd ] ++ cfg.packages;
29+ paths = [ pkgs.kbd ] ++ cfg.packages;
30 pathsToLink = [
30 pathsToLink = [
31 "/share/consolefonts"
31 "/share/consolefonts"
32 "/share/consoletrans"
32 "/share/consoletrans"
@@ -136,9 +136,9 @@ in
136 # virtual consoles.
136 # virtual consoles.
137 environment.etc."vconsole.conf".source = vconsoleConf;
137 environment.etc."vconsole.conf".source = vconsoleConf;
138 # Provide kbd with additional packages.
138 # Provide kbd with additional packages.
139− environment.etc.kbd.source = "${consoleEnv pkgs.kbd}/share";
139+ environment.etc.kbd.source = "${consoleEnv}/share";
141− boot.initrd.preLVMCommands = mkIf (!config.boot.initrd.systemd.enable) (mkBefore ''
141+ boot.initrd.preLVMCommands = mkBefore ''
142 kbd_mode ${if isUnicode then "-u" else "-a"} -C /dev/console
142 kbd_mode ${if isUnicode then "-u" else "-a"} -C /dev/console
143 printf "\033%%${if isUnicode then "G" else "@"}" >> /dev/console
143 printf "\033%%${if isUnicode then "G" else "@"}" >> /dev/console
144 loadkmap < ${optimizedKeymap}
144 loadkmap < ${optimizedKeymap}
@@ -146,26 +146,12 @@ in
146 ${optionalString cfg.earlySetup ''
146 ${optionalString cfg.earlySetup ''
147 setfont -C /dev/console $extraUtils/share/consolefonts/font.psf
147 setfont -C /dev/console $extraUtils/share/consolefonts/font.psf
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"; };
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
165 systemd.services.reload-systemd-vconsole-setup =
151 systemd.services.reload-systemd-vconsole-setup =
166 { description = "Reset console on configuration changes";
152 { description = "Reset console on configuration changes";
167 wantedBy = [ "multi-user.target" ];
153 wantedBy = [ "multi-user.target" ];
168− restartTriggers = [ vconsoleConf (consoleEnv pkgs.kbd) ];
154+ restartTriggers = [ vconsoleConf consoleEnv ];
169 reloadIfChanged = true;
155 reloadIfChanged = true;
170 serviceConfig =
156 serviceConfig =
171 { RemainAfterExit = true;
157 { RemainAfterExit = true;
@@ -183,13 +169,13 @@ in
186− (mkIf (cfg.earlySetup && !config.boot.initrd.systemd.enable) {
172+ (mkIf cfg.earlySetup {
187 boot.initrd.extraUtilsCommands = ''
173 boot.initrd.extraUtilsCommands = ''
188 mkdir -p $out/share/consolefonts
174 mkdir -p $out/share/consolefonts
189 ${if substring 0 1 cfg.font == "/" then ''
175 ${if substring 0 1 cfg.font == "/" then ''
190 font="${cfg.font}"
176 font="${cfg.font}"
191 '' else ''
177 '' else ''
192− font="$(echo ${consoleEnv pkgs.kbd}/share/consolefonts/${cfg.font}.*)"
178+ font="$(echo ${consoleEnv}/share/consolefonts/${cfg.font}.*)"
194 if [[ $font == *.gz ]]; then
180 if [[ $font == *.gz ]]; then
195 gzip -cd $font > $out/share/consolefonts/font.psf
181 gzip -cd $font > $out/share/consolefonts/font.psf
nixos/modules/config/nsswitch.nix+4−7
@@ -95,14 +95,11 @@ with lib;
95 config = {
95 config = {
96 assertions = [
96 assertions = [
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 [].
98 assertion = config.system.nssModules.path != "" -> config.services.nscd.enable;
101 assertion = config.system.nssModules.path != "" -> config.services.nscd.enable;
100− Loading NSS modules from system.nssModules (${config.system.nssModules.path}),
102+ message = "Loading NSS modules from system.nssModules (${config.system.nssModules.path}), requires services.nscd.enable being set to true.";
101− requires services.nscd.enable being set to true.
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.
nixos/modules/config/terminfo.nix+1−25
@@ -1,33 +1,9 @@
1# This module manages the terminfo database
1# This module manages the terminfo database
2# and its integration in the system.
2# and its integration in the system.
3−{ config, lib, pkgs, ... }:
3+{ config, ... }:
9− options.environment.enableAllTerminfo = with lib; mkOption {
13− Whether to install all terminfo outputs
17 config = {
5 config = {
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; [
25− rxvt-unicode-unwrapped
26− rxvt-unicode-unwrapped-emoji
31 environment.pathsToLink = [
7 environment.pathsToLink = [
32 "/share/terminfo"
8 "/share/terminfo"
nixos/modules/hardware/all-firmware.nix+3−7
@@ -27,8 +27,7 @@ in {
29 hardware.enableRedistributableFirmware = mkOption {
29 hardware.enableRedistributableFirmware = mkOption {
30− default = config.hardware.enableAllFirmware;
30+ default = false;
31− defaultText = lib.literalExpression "config.hardware.enableAllFirmware";
32 type = types.bool;
31 type = types.bool;
33 description = ''
32 description = ''
34 Turn on this option if you want to enable all the firmware with a license allowing redistribution.
33 Turn on this option if you want to enable all the firmware with a license allowing redistribution.
@@ -72,7 +71,7 @@ in {
73 (mkIf cfg.enableAllFirmware {
72 (mkIf cfg.enableAllFirmware {
74 assertions = [{
73 assertions = [{
75− assertion = !cfg.enableAllFirmware || config.nixpkgs.config.allowUnfree;
74+ assertion = !cfg.enableAllFirmware || (config.nixpkgs.config.allowUnfree or false);
76 message = ''
75 message = ''
77 the list of hardware.enableAllFirmware contains non-redistributable licensed firmware files.
76 the list of hardware.enableAllFirmware contains non-redistributable licensed firmware files.
78 This requires nixpkgs.config.allowUnfree to be true.
77 This requires nixpkgs.config.allowUnfree to be true.
@@ -85,10 +84,7 @@ in {
85 b43Firmware_6_30_163_46
84 b43Firmware_6_30_163_46
86 b43FirmwareCutter
85 b43FirmwareCutter
87 xow_dongle-firmware
86 xow_dongle-firmware
88− ] ++ optionals pkgs.stdenv.hostPlatform.isx86 [
87+ ] ++ optional pkgs.stdenv.hostPlatform.isx86 facetimehd-firmware;
89− facetimehd-calibration
93 (mkIf cfg.wirelessRegulatoryDatabase {
89 (mkIf cfg.wirelessRegulatoryDatabase {
94 hardware.firmware = [ pkgs.wireless-regdb ];
90 hardware.firmware = [ pkgs.wireless-regdb ];
nixos/modules/hardware/raid/hpsa.nix+1−4
@@ -8,10 +8,7 @@ let
8 version = "2.40-13.0";
8 version = "2.40-13.0";
10 src = pkgs.fetchurl {
10 src = pkgs.fetchurl {
12− "https://downloads.linux.hpe.com/SDR/downloads/MCP/Ubuntu/pool/non-free/${pname}-${version}_amd64.deb"
11+ url = "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"
15 sha256 = "11w7fwk93lmfw0yya4jpjwdmgjimqxx6412sqa166g1pz4jil4sw";
12 sha256 = "11w7fwk93lmfw0yya4jpjwdmgjimqxx6412sqa166g1pz4jil4sw";
nixos/modules/hardware/video/amdgpu-pro.nix+1−2
@@ -51,10 +51,9 @@ in
51 (isYes "KALLSYMS_ALL")
51 (isYes "KALLSYMS_ALL")
54− boot.initrd.extraUdevRulesCommands = mkIf (!config.boot.initrd.systemd.enable) ''
54+ boot.initrd.extraUdevRulesCommands = ''
55 cp -v ${package}/etc/udev/rules.d/*.rules $out/
55 cp -v ${package}/etc/udev/rules.d/*.rules $out/
57− boot.initrd.services.udev.packages = [ package ];
59 environment.systemPackages =
58 environment.systemPackages =
60 [ package.vulkan ] ++
59 [ package.vulkan ] ++
nixos/modules/hardware/video/nvidia.nix+7−9
@@ -24,7 +24,6 @@ let
24 primeEnabled = syncCfg.enable || offloadCfg.enable;
24 primeEnabled = syncCfg.enable || offloadCfg.enable;
25 nvidiaPersistencedEnabled = cfg.nvidiaPersistenced;
25 nvidiaPersistencedEnabled = cfg.nvidiaPersistenced;
26 nvidiaSettings = cfg.nvidiaSettings;
26 nvidiaSettings = cfg.nvidiaSettings;
27− busIDType = types.strMatching "([[:print:]]+\:[0-9]{1,3}\:[0-9]{1,2}\:[0-9])?";
@@ -69,7 +68,7 @@ in
71 hardware.nvidia.prime.nvidiaBusId = mkOption {
70 hardware.nvidia.prime.nvidiaBusId = mkOption {
72− type = busIDType;
71+ type = types.str;
73 default = "";
72 default = "";
74 example = "PCI:1:0:0";
73 example = "PCI:1:0:0";
75 description = ''
74 description = ''
@@ -79,7 +78,7 @@ in
81 hardware.nvidia.prime.intelBusId = mkOption {
80 hardware.nvidia.prime.intelBusId = mkOption {
82− type = busIDType;
81+ type = types.str;
83 default = "";
82 default = "";
84 example = "PCI:0:2:0";
83 example = "PCI:0:2:0";
85 description = ''
84 description = ''
@@ -89,7 +88,7 @@ in
91 hardware.nvidia.prime.amdgpuBusId = mkOption {
90 hardware.nvidia.prime.amdgpuBusId = mkOption {
92− type = busIDType;
91+ type = types.str;
93 default = "";
92 default = "";
94 example = "PCI:4:0:0";
93 example = "PCI:4:0:0";
95 description = ''
94 description = ''
@@ -361,12 +360,11 @@ in
361 services.udev.extraRules =
360 services.udev.extraRules =
363 # Create /dev/nvidia-uvm when the nvidia-uvm module is loaded.
362 # 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'"
363+ KERNEL=="nvidia", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidiactl c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 255'"
365− KERNEL=="nvidia_modeset", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-modeset c 195 254'"
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'"
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}"
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'"
368 KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'"
366 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'"
370 '' + optionalString cfg.powerManagement.finegrained ''
368 '' + optionalString cfg.powerManagement.finegrained ''
371 # Remove NVIDIA USB xHCI Host Controller devices, if present
369 # Remove NVIDIA USB xHCI Host Controller devices, if present
372 ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{remove}="1"
370 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
15 options.hardware.facetimehd.enable = mkEnableOption "facetimehd kernel module";
15 options.hardware.facetimehd.enable = mkEnableOption "facetimehd kernel module";
17− options.hardware.facetimehd.withCalibration = mkOption {
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"/>
29 config = mkIf cfg.enable {
17 config = mkIf cfg.enable {
31 boot.kernelModules = [ "facetimehd" ];
19 boot.kernelModules = [ "facetimehd" ];
@@ -34,8 +22,7 @@ in
35 boot.extraModulePackages = [ kernelPackages.facetimehd ];
23 boot.extraModulePackages = [ kernelPackages.facetimehd ];
37− hardware.firmware = [ pkgs.facetimehd-firmware ]
25+ hardware.firmware = [ pkgs.facetimehd-firmware ];
38− ++ optional cfg.withCalibration pkgs.facetimehd-calibration;
40 # unload module during suspend/hibernate as it crashes the whole system
27 # unload module during suspend/hibernate as it crashes the whole system
41 powerManagement.powerDownCommands = ''
28 powerManagement.powerDownCommands = ''
nixos/modules/i18n/input-method/fcitx5.nix+11−20
@@ -5,9 +5,7 @@ with lib;
6 im = config.i18n.inputMethod;
6 im = config.i18n.inputMethod;
7 cfg = im.fcitx5;
7 cfg = im.fcitx5;
8− addons = cfg.addons ++ optional cfg.enableRimeData pkgs.rime-data;
9− fcitx5Package = pkgs.fcitx5-with-addons.override { inherit addons; };
8+ fcitx5Package = pkgs.fcitx5-with-addons.override { inherit (cfg) addons; };
10− whetherRimeDataDir = any (p: p.pname == "fcitx5-rime") cfg.addons;
12 options = {
10 options = {
13 i18n.inputMethod.fcitx5 = {
11 i18n.inputMethod.fcitx5 = {
@@ -19,29 +17,22 @@ in {
19 Enabled Fcitx5 addons.
17 Enabled Fcitx5 addons.
23− enableRimeData = mkEnableOption "default rime-data with fcitx5-rime";
27 config = mkIf (im.enabled == "fcitx5") {
23 config = mkIf (im.enabled == "fcitx5") {
28 i18n.inputMethod.package = fcitx5Package;
24 i18n.inputMethod.package = fcitx5Package;
30− environment = mkMerge [{
31− variables = {
26+ environment.variables = {
32− GTK_IM_MODULE = "fcitx";
27+ GTK_IM_MODULE = "fcitx";
33− QT_IM_MODULE = "fcitx";
28+ QT_IM_MODULE = "fcitx";
34− XMODIFIERS = "@im=fcitx";
29+ XMODIFIERS = "@im=fcitx";
37− (mkIf whetherRimeDataDir {
42− variables = {
32+ systemd.user.services.fcitx5-daemon = {
43− NIX_RIME_DATA_DIR = "/run/current-system/sw/share/rime-data";
33+ enable = true;
44− };
34+ script = "${fcitx5Package}/bin/fcitx5";
45− })];
35+ wantedBy = [ "graphical-session.target" ];
nixos/modules/installer/cd-dvd/channel.nix+1−2
@@ -39,8 +39,7 @@ in
39 echo "unpacking the NixOS/Nixpkgs sources..."
39 echo "unpacking the NixOS/Nixpkgs sources..."
40 mkdir -p /nix/var/nix/profiles/per-user/root
40 mkdir -p /nix/var/nix/profiles/per-user/root
41 ${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/per-user/root/channels \
41 ${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 \
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
44 mkdir -m 0700 -p /root/.nix-defexpr
43 mkdir -m 0700 -p /root/.nix-defexpr
45 ln -s /nix/var/nix/profiles/per-user/root/channels /root/.nix-defexpr/channels
44 ln -s /nix/var/nix/profiles/per-user/root/channels /root/.nix-defexpr/channels
46 mkdir -m 0755 -p /var/lib/nixos
45 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;
35 # Enable sound in graphical iso's.
35 # Enable sound in graphical iso's.
36 hardware.pulseaudio.enable = true;
36 hardware.pulseaudio.enable = true;
38− # Spice guest additions
38+ environment.systemPackages = [
39− services.spice-vdagentd.enable = true;
42− boot.plymouth.enable = true;
44− environment.defaultPackages = with pkgs; [
45 # Include gparted for partitioning disks.
39 # Include gparted for partitioning disks.
46− gparted
40+ pkgs.gparted
48 # Include some editors.
42 # Include some editors.
50− nano
44+ pkgs.bvi # binary editor
52 # Include some version control tools.
47 # Include some version control tools.
56 # Firefox for reading the manual.
50 # Firefox for reading the manual.
57− firefox
51+ pkgs.firefox
59− glxinfo
53+ pkgs.glxinfo
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.
6− imports = [ ./installation-cd-graphical-calamares.nix ];
8− isoImage.edition = "gnome";
10− services.xserver.desktopManager.gnome = {
11− # Add Firefox and other tools useful for installation to the launcher
12− favoriteAppsOverride = ''
14− favorite-apps=[ 'firefox.desktop', 'nixos-manual.desktop', 'org.gnome.Console.desktop', 'org.gnome.Nautilus.desktop', 'gparted.desktop', 'io.calamares.calamares.desktop' ]
17− # Override GNOME defaults to disable GNOME tour and disable suspend
18− extraGSettingsOverrides = ''
20− welcome-dialog-last-shown-version='9999999999'
22− [org.gnome.settings-daemon.plugins.power]
23− sleep-inactive-ac-type='nothing'
24− sleep-inactive-battery-type='nothing'
27− extraGSettingsOverridePackages = [ pkgs.gnome.gnome-settings-daemon ];
32− # Theme calamares with GNOME theme
35− platformTheme = "gnome";
38− # Fix scaling for calamares on wayland
39− environment.variables = {
40− QT_QPA_PLATFORM = "$([[ $XDG_SESSION_TYPE = \"wayland\" ]] && echo \"wayland\")";
43− services.xserver.displayManager = {
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.
50− # * https://github.com/NixOS/nixpkgs/pull/63790
51− # * https://gitlab.gnome.org/GNOME/gnome-control-center/issues/22
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
7− imports = [ ./installation-cd-graphical-calamares.nix ];
9− isoImage.edition = "plasma5";
12− desktopManager.plasma5 = {
16− # Automatically login as nixos.
26− environment.systemPackages = with pkgs; [
27− # Graphical text editor
31− system.activationScripts.installerDesktop = let
33− # Comes from documentation.nix when xserver and nixos.enable are true.
34− manualDesktopFile = "/run/current-system/sw/share/applications/nixos-manual.desktop";
36− homeDir = "/home/nixos/";
37− desktopDir = homeDir + "Desktop/";
40− mkdir -p ${desktopDir}
41− chown nixos ${homeDir} ${desktopDir}
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"}
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
6− calamares-nixos-autostart = pkgs.makeAutostartItem { name = "io.calamares.calamares"; package = pkgs.calamares-nixos; };
9− imports = [ ./installation-cd-graphical-base.nix ];
11− environment.systemPackages = with pkgs; [
12− # Calamares for graphical installation
15− calamares-nixos-autostart
16− calamares-nixos-extensions
17− # Needed for calamares QML module packagechooserq
nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix+3−1
@@ -1,6 +1,8 @@
1# This module defines a NixOS installation CD that contains GNOME.
1# This module defines a NixOS installation CD that contains GNOME.
3−{ ... }:
3+{ lib, ... }:
6 imports = [ ./installation-cd-graphical-base.nix ];
8 imports = [ ./installation-cd-graphical-base.nix ];
nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix+3−1
@@ -1,7 +1,9 @@
1# This module defines a NixOS installation CD that contains X11 and
1# This module defines a NixOS installation CD that contains X11 and
4−{ pkgs, ... }:
4+{ config, lib, pkgs, ... }:
7 imports = [ ./installation-cd-graphical-base.nix ];
9 imports = [ ./installation-cd-graphical-base.nix ];
nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix+3−3
@@ -87,19 +87,19 @@ in
87 boot.initrd.availableKernelModules =
87 boot.initrd.availableKernelModules =
88 [ "mvsdio" "reiserfs" "ext3" "ums-cypress" "rtc_mv" "ext4" ];
88 [ "mvsdio" "reiserfs" "ext3" "ums-cypress" "rtc_mv" "ext4" ];
90− boot.postBootCommands = lib.mkIf (!boot.initrd.systemd.enable)
90+ boot.postBootCommands =
92 mkdir -p /mnt
92 mkdir -p /mnt
94 cp ${dummyConfiguration} /etc/nixos/configuration.nix
94 cp ${dummyConfiguration} /etc/nixos/configuration.nix
97− boot.initrd.extraUtilsCommands = lib.mkIf (!boot.initrd.systemd.enable)
97+ boot.initrd.extraUtilsCommands =
99 copy_bin_and_libs ${pkgs.util-linux}/sbin/hwclock
99 copy_bin_and_libs ${pkgs.util-linux}/sbin/hwclock
102− boot.initrd.postDeviceCommands = lib.mkIf (!boot.initrd.systemd.enable)
102+ boot.initrd.postDeviceCommands =
104 hwclock -s
104 hwclock -s
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.
5−# It's meant to be scp'ed to a machine with working ssh and kexec binary
8−# This is useful for (cloud) providers where you can't boot a custom image, but
9−# get some Debian or Ubuntu installation.
18− (modulesPath + "/installer/netboot/netboot-minimal.nix")
22− system.build.kexecBoot =
24− kexecScript = pkgs.writeScript "kexec-boot" ''
26− if ! kexec -v >/dev/null 2>&1; then
27− echo "kexec not found: please install kexec-tools" 2>&1
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}"
36− pkgs.linkFarm "kexec-tree" [
39− path = "${config.system.build.netbootRamdisk}/initrd";
43− path = "${config.system.build.kernel}/${config.system.boot.loader.kernelFile}";
nixos/modules/installer/sd-card/sd-image-aarch64.nix−9
@@ -39,12 +39,6 @@
39 # Supported in newer board revisions
39 # Supported in newer board revisions
40 arm_boost=1
40 arm_boost=1
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.
49 # Boot in 64-bit mode.
43 # Boot in 64-bit mode.
50 arm_64bit=1
44 arm_64bit=1
@@ -71,9 +65,6 @@
71 cp ${pkgs.ubootRaspberryPi4_64bit}/u-boot.bin firmware/u-boot-rpi4.bin
65 cp ${pkgs.ubootRaspberryPi4_64bit}/u-boot.bin firmware/u-boot-rpi4.bin
72 cp ${pkgs.raspberrypi-armstubs}/armstub8-gic.bin firmware/armstub8-gic.bin
66 cp ${pkgs.raspberrypi-armstubs}/armstub8-gic.bin firmware/armstub8-gic.bin
73 cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-4-b.dtb firmware/
67 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/
78 populateRootCommands = ''
69 populateRootCommands = ''
79 mkdir -p ./files/boot
70 mkdir -p ./files/boot
nixos/modules/installer/tools/nix-fallback-paths.nix+5−5
@@ -1,7 +1,7 @@
2− x86_64-linux = "/nix/store/yx36yzxpw1hn4fz8iyf1rfyd56jg3yf4-nix-2.8.0";
2+ x86_64-linux = "/nix/store/0n2wfvi1i3fg97cjc54wslvk0804y0sn-nix-2.7.0";
3− i686-linux = "/nix/store/c0hg806zvwg800qbszzj8ff4a224kjgf-nix-2.8.0";
3+ i686-linux = "/nix/store/4p27c1k9z99pli6x8cxfph20yfyzn9nh-nix-2.7.0";
4− aarch64-linux = "/nix/store/wic2832ll53q392r2wks4xr2nrk7p8p5-nix-2.8.0";
4+ aarch64-linux = "/nix/store/r9yr8ijsb0gi9r7y92y3yzyld59yp0kj-nix-2.7.0";
5− x86_64-darwin = "/nix/store/5yqdvnkmkrhl36xh0qy31pymdphjimdd-nix-2.8.0";
5+ x86_64-darwin = "/nix/store/hyfj5imsd0c4amlcjpf8l6w4q2draaj3-nix-2.7.0";
6− aarch64-darwin = "/nix/store/izc9592szrnpv8n86hr88bhpyc9g6b4s-nix-2.8.0";
6+ aarch64-darwin = "/nix/store/9l96qllhbb6xrsjaai76dn74ap7rq92n-nix-2.7.0";
nixos/modules/installer/tools/tools.nix−5
@@ -206,11 +206,6 @@ in
206 # Or disable the firewall altogether.
206 # Or disable the firewall altogether.
207 # networking.firewall.enable = false;
207 # networking.firewall.enable = false;
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;
214 # This value determines the NixOS release from which the default
209 # This value determines the NixOS release from which the default
215 # settings for stateful data, like file locations and database versions
210 # settings for stateful data, like file locations and database versions
216 # on your system were taken. It‘s perfectly fine and recommended to leave
211 # on your system were taken. It‘s perfectly fine and recommended to leave
nixos/modules/misc/locate.nix+1−1
@@ -27,7 +27,7 @@ in
28 locate = mkOption {
28 locate = mkOption {
29 type = package;
29 type = package;
30− default = pkgs.findutils.locate;
30+ default = pkgs.findutils;
31 defaultText = literalExpression "pkgs.findutils";
31 defaultText = literalExpression "pkgs.findutils";
32 example = literalExpression "pkgs.mlocate";
32 example = literalExpression "pkgs.mlocate";
33 description = ''
33 description = ''
nixos/modules/module-list.nix+3−15
@@ -172,7 +172,6 @@
172 ./programs/java.nix
172 ./programs/java.nix
173 ./programs/k40-whisperer.nix
173 ./programs/k40-whisperer.nix
174 ./programs/kclock.nix
174 ./programs/kclock.nix
176 ./programs/kdeconnect.nix
175 ./programs/kdeconnect.nix
177 ./programs/kbdlight.nix
176 ./programs/kbdlight.nix
178 ./programs/less.nix
177 ./programs/less.nix
@@ -186,7 +185,6 @@
186 ./programs/nbd.nix
185 ./programs/nbd.nix
187 ./programs/nix-ld.nix
186 ./programs/nix-ld.nix
188 ./programs/neovim.nix
187 ./programs/neovim.nix
189− ./programs/nethoscope.nix
190 ./programs/nm-applet.nix
188 ./programs/nm-applet.nix
191 ./programs/nncp.nix
189 ./programs/nncp.nix
192 ./programs/npm.nix
190 ./programs/npm.nix
@@ -206,6 +204,7 @@
206 ./programs/spacefm.nix
204 ./programs/spacefm.nix
207 ./programs/singularity.nix
205 ./programs/singularity.nix
208 ./programs/ssh.nix
206 ./programs/ssh.nix
207+ ./programs/ssmtp.nix
209 ./programs/sysdig.nix
208 ./programs/sysdig.nix
210 ./programs/systemtap.nix
209 ./programs/systemtap.nix
211 ./programs/starship.nix
210 ./programs/starship.nix
@@ -410,7 +409,6 @@
410 ./services/display-managers/greetd.nix
409 ./services/display-managers/greetd.nix
411 ./services/editors/emacs.nix
410 ./services/editors/emacs.nix
412 ./services/editors/infinoted.nix
411 ./services/editors/infinoted.nix
413− ./services/editors/haste.nix
414 ./services/finance/odoo.nix
412 ./services/finance/odoo.nix
415 ./services/games/asf.nix
413 ./services/games/asf.nix
416 ./services/games/crossfire-server.nix
414 ./services/games/crossfire-server.nix
@@ -460,7 +458,6 @@
460 ./services/hardware/udisks2.nix
458 ./services/hardware/udisks2.nix
461 ./services/hardware/upower.nix
459 ./services/hardware/upower.nix
462 ./services/hardware/usbmuxd.nix
460 ./services/hardware/usbmuxd.nix
463− ./services/hardware/usbrelayd.nix
464 ./services/hardware/thermald.nix
461 ./services/hardware/thermald.nix
465 ./services/hardware/undervolt.nix
462 ./services/hardware/undervolt.nix
466 ./services/hardware/vdr.nix
463 ./services/hardware/vdr.nix
@@ -599,7 +596,7 @@
599 ./services/misc/osrm.nix
596 ./services/misc/osrm.nix
600 ./services/misc/owncast.nix
597 ./services/misc/owncast.nix
601 ./services/misc/packagekit.nix
598 ./services/misc/packagekit.nix
602− ./services/misc/paperless.nix
599+ ./services/misc/paperless-ng.nix
603 ./services/misc/parsoid.nix
600 ./services/misc/parsoid.nix
604 ./services/misc/plex.nix
601 ./services/misc/plex.nix
605 ./services/misc/plikd.nix
602 ./services/misc/plikd.nix
@@ -663,7 +660,6 @@
663 ./services/monitoring/longview.nix
660 ./services/monitoring/longview.nix
664 ./services/monitoring/mackerel-agent.nix
661 ./services/monitoring/mackerel-agent.nix
665 ./services/monitoring/metricbeat.nix
662 ./services/monitoring/metricbeat.nix
666− ./services/monitoring/mimir.nix
667 ./services/monitoring/monit.nix
663 ./services/monitoring/monit.nix
668 ./services/monitoring/munin.nix
664 ./services/monitoring/munin.nix
669 ./services/monitoring/nagios.nix
665 ./services/monitoring/nagios.nix
@@ -737,14 +733,12 @@
737 ./services/networking/blocky.nix
733 ./services/networking/blocky.nix
738 ./services/networking/charybdis.nix
734 ./services/networking/charybdis.nix
739 ./services/networking/cjdns.nix
735 ./services/networking/cjdns.nix
740− ./services/networking/cloudflare-dyndns.nix
741 ./services/networking/cntlm.nix
736 ./services/networking/cntlm.nix
742 ./services/networking/connman.nix
737 ./services/networking/connman.nix
743 ./services/networking/consul.nix
738 ./services/networking/consul.nix
744 ./services/networking/coredns.nix
739 ./services/networking/coredns.nix
745 ./services/networking/corerad.nix
740 ./services/networking/corerad.nix
746 ./services/networking/coturn.nix
741 ./services/networking/coturn.nix
747− ./services/networking/create_ap.nix
748 ./services/networking/croc.nix
742 ./services/networking/croc.nix
749 ./services/networking/dante.nix
743 ./services/networking/dante.nix
750 ./services/networking/ddclient.nix
744 ./services/networking/ddclient.nix
@@ -858,7 +852,6 @@
858 ./services/networking/ofono.nix
852 ./services/networking/ofono.nix
859 ./services/networking/oidentd.nix
853 ./services/networking/oidentd.nix
860 ./services/networking/onedrive.nix
854 ./services/networking/onedrive.nix
861− ./services/networking/openconnect.nix
862 ./services/networking/openvpn.nix
855 ./services/networking/openvpn.nix
863 ./services/networking/ostinato.nix
856 ./services/networking/ostinato.nix
864 ./services/networking/owamp.nix
857 ./services/networking/owamp.nix
@@ -1060,7 +1053,6 @@
1060 ./services/web-apps/netbox.nix
1053 ./services/web-apps/netbox.nix
1061 ./services/web-apps/nextcloud.nix
1054 ./services/web-apps/nextcloud.nix
1062 ./services/web-apps/nexus.nix
1055 ./services/web-apps/nexus.nix
1063− ./services/web-apps/nifi.nix
1064 ./services/web-apps/node-red.nix
1056 ./services/web-apps/node-red.nix
1065 ./services/web-apps/pict-rs.nix
1057 ./services/web-apps/pict-rs.nix
1066 ./services/web-apps/peertube.nix
1058 ./services/web-apps/peertube.nix
@@ -1185,14 +1177,12 @@
1185 ./system/boot/stage-2.nix
1177 ./system/boot/stage-2.nix
1186 ./system/boot/systemd.nix
1178 ./system/boot/systemd.nix
1187 ./system/boot/systemd/coredump.nix
1179 ./system/boot/systemd/coredump.nix
1188− ./system/boot/systemd/initrd-secrets.nix
1189− ./system/boot/systemd/initrd.nix
1190 ./system/boot/systemd/journald.nix
1180 ./system/boot/systemd/journald.nix
1191 ./system/boot/systemd/logind.nix
1181 ./system/boot/systemd/logind.nix
1192 ./system/boot/systemd/nspawn.nix
1182 ./system/boot/systemd/nspawn.nix
1193− ./system/boot/systemd/shutdown.nix
1194 ./system/boot/systemd/tmpfiles.nix
1183 ./system/boot/systemd/tmpfiles.nix
1195 ./system/boot/systemd/user.nix
1184 ./system/boot/systemd/user.nix
1185+ ./system/boot/systemd/initrd.nix
1196 ./system/boot/timesyncd.nix
1186 ./system/boot/timesyncd.nix
1197 ./system/boot/tmp.nix
1187 ./system/boot/tmp.nix
1198 ./system/etc/etc-activation.nix
1188 ./system/etc/etc-activation.nix
@@ -1246,7 +1236,6 @@
1246 ./virtualisation/amazon-options.nix
1236 ./virtualisation/amazon-options.nix
1247 ./virtualisation/hyperv-guest.nix
1237 ./virtualisation/hyperv-guest.nix
1248 ./virtualisation/kvmgt.nix
1238 ./virtualisation/kvmgt.nix
1249− ./virtualisation/openstack-options.nix
1250 ./virtualisation/openvswitch.nix
1239 ./virtualisation/openvswitch.nix
1251 ./virtualisation/parallels-guest.nix
1240 ./virtualisation/parallels-guest.nix
1252 ./virtualisation/podman/default.nix
1241 ./virtualisation/podman/default.nix
@@ -1256,7 +1245,6 @@
1256 ./virtualisation/virtualbox-guest.nix
1245 ./virtualisation/virtualbox-guest.nix
1257 ./virtualisation/virtualbox-host.nix
1246 ./virtualisation/virtualbox-host.nix
1258 ./virtualisation/vmware-guest.nix
1247 ./virtualisation/vmware-guest.nix
1259− ./virtualisation/vmware-host.nix
1260 ./virtualisation/waydroid.nix
1248 ./virtualisation/waydroid.nix
1261 ./virtualisation/xen-dom0.nix
1249 ./virtualisation/xen-dom0.nix
1262 ./virtualisation/xe-guest-utilities.nix
1250 ./virtualisation/xe-guest-utilities.nix
nixos/modules/profiles/all-hardware.nix−3
@@ -40,9 +40,6 @@ in
40 # SD cards.
40 # SD cards.
41 "sdhci_pci"
41 "sdhci_pci"
46 # Firewire support. Not tested.
43 # Firewire support. Not tested.
47 "ohci1394" "sbp2"
44 "ohci1394" "sbp2"
nixos/modules/profiles/installation-device.nix−4
@@ -99,10 +99,6 @@ with lib;
99 stdenvNoCC # for runCommand
99 stdenvNoCC # for runCommand
101 jq # for closureInfo
101 jq # for closureInfo
102− # For boot.initrd.systemd
105− systemdStage1Network
108 # Show all debug messages from the kernel but don't log refused packets
104 # 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 @@
1# Common configuration for virtual machines running under QEMU (using
1# Common configuration for virtual machines running under QEMU (using
4−{ config, lib, ... }:
4+{ ... }:
7 boot.initrd.availableKernelModules = [ "virtio_net" "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_scsi" "9p" "9pnet_virtio" ];
7 boot.initrd.availableKernelModules = [ "virtio_net" "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_scsi" "9p" "9pnet_virtio" ];
8 boot.initrd.kernelModules = [ "virtio_balloon" "virtio_console" "virtio_rng" ];
8 boot.initrd.kernelModules = [ "virtio_balloon" "virtio_console" "virtio_rng" ];
10− boot.initrd.postDeviceCommands = lib.mkIf (!config.boot.initrd.systemd.enable)
10+ boot.initrd.postDeviceCommands =
12 # Set the system time from the hardware clock to work around a
12 # Set the system time from the hardware clock to work around a
13 # bug in qemu-kvm > 1.5.2 (where the VM clock is initialised
13 # bug in qemu-kvm > 1.5.2 (where the VM clock is initialised
nixos/modules/programs/chromium.nix−3
@@ -108,8 +108,5 @@ in
108 # for google-chrome https://www.chromium.org/administrators/linux-quick-start
108 # for google-chrome https://www.chromium.org/administrators/linux-quick-start
109 environment.etc."opt/chrome/policies/managed/default.json".text = builtins.toJSON defaultProfile;
109 environment.etc."opt/chrome/policies/managed/default.json".text = builtins.toJSON defaultProfile;
110 environment.etc."opt/chrome/policies/managed/extra.json".text = builtins.toJSON cfg.extraOpts;
110 environment.etc."opt/chrome/policies/managed/extra.json".text = builtins.toJSON cfg.extraOpts;
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;
nixos/modules/programs/k3b.nixdeleted−52
@@ -1,52 +0,0 @@
1−{ config, pkgs, lib, ... }:
7− options.programs.k3b = {
12− Whether to enable k3b, the KDE disk burning application.
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.
25− config = mkIf config.programs.k3b.enable {
27− environment.systemPackages = with pkgs; [
34− security.wrappers = {
39− permissions = "u+wrx,g+x";
40− source = "${pkgs.cdrdao}/bin/cdrdao";
46− permissions = "u+wrx,g+x";
47− source = "${pkgs.cdrkit}/bin/cdrecord";
nixos/modules/programs/mininet.nix+2−2
@@ -23,8 +23,8 @@ let
23 ln -s ${pyEnv}/bin/mn $out/bin/mn
23 ln -s ${pyEnv}/bin/mn $out/bin/mn
25 # mn errors out without a telnet binary
25 # mn errors out without a telnet binary
26− # pkgs.inetutils brings an undesired ifconfig into PATH see #43105
26+ # pkgs.telnet brings an undesired ifconfig into PATH see #43105
27− ln -s ${pkgs.inetutils}/bin/telnet $out/bin/telnet
27+ ln -s ${pkgs.telnet}/bin/telnet $out/bin/telnet
nixos/modules/programs/nethoscope.nixdeleted−30
@@ -1,30 +0,0 @@
1−{ config, lib, pkgs, ... }:
5−let cfg = config.programs.nethoscope;
8− meta.maintainers = with maintainers; [ _0x4A6F ];
11− programs.nethoscope = {
16− Whether to add nethoscope to the global environment and configure a
17− setcap wrapper for it.
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";
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.
6+{ config, lib, pkgs, ... }:
11+ cfg = config.services.ssmtp;
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" ])
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")
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
45+ <option>services.ssmtp.hostName</option> to the
46+ host name of your preferred mail server.
50+ settings = mkOption {
51+ type = with types; attrsOf (oneOf [ bool str ]);
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.
57+ example = literalExpression ''
60+ FromLineOverride = false;
65+ hostName = mkOption {
67+ example = "mail.example.org";
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.
78+ example = "root@example.org";
80+ The e-mail to which mail for users with UID < 1000 is forwarded.
87+ example = "example.org";
89+ The domain from which mail will appear to be sent.
97+ Whether TLS should be used to connect to the default mail
102+ useSTARTTLS = mkOption {
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.)
112+ authUser = mkOption {
115+ example = "foo@example.org";
117+ Username used for SMTP auth. Leave blank to disable.
121+ authPassFile = mkOption {
122+ type = types.nullOr types.str;
124+ example = "/run/keys/ssmtp-authpass";
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.
133+ setSendmail = mkOption {
136+ description = "Whether to set the system sendmail to ssmtp's.";
144+ config = mkIf cfg.enable {
148+ assertion = cfg.useSTARTTLS -> cfg.useTLS;
149+ message = "services.ssmtp.useSTARTTLS has no effect without services.ssmtp.useTLS";
153+ services.ssmtp.settings = mkMerge [
155+ MailHub = cfg.hostName;
156+ FromLineOverride = mkDefault true;
157+ UseTLS = cfg.useTLS;
158+ UseSTARTTLS = cfg.useSTARTTLS;
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; })
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
177+ environment.systemPackages = [pkgs.ssmtp];
179+ services.mail.sendmailSetuidWrapper = mkIf cfg.setSendmail {
180+ program = "sendmail";
181+ source = "${pkgs.ssmtp}/bin/sendmail";
nixos/modules/programs/thefuck.nix+6−7
@@ -6,12 +6,9 @@ let
6 prg = config.programs;
6 prg = config.programs;
7 cfg = prg.thefuck;
7 cfg = prg.thefuck;
9− bashAndZshInitScript = ''
9+ initScript = ''
10 eval $(${pkgs.thefuck}/bin/thefuck --alias ${cfg.alias})
10 eval $(${pkgs.thefuck}/bin/thefuck --alias ${cfg.alias})
13− ${pkgs.thefuck}/bin/thefuck --alias ${cfg.alias} | source
17 options = {
14 options = {
@@ -33,8 +30,10 @@ in
33 config = mkIf cfg.enable {
30 config = mkIf cfg.enable {
34 environment.systemPackages = with pkgs; [ thefuck ];
31 environment.systemPackages = with pkgs; [ thefuck ];
36− programs.bash.interactiveShellInit = bashAndZshInitScript;
33+ programs.bash.interactiveShellInit = initScript;
37− programs.zsh.interactiveShellInit = mkIf prg.zsh.enable bashAndZshInitScript;
34+ programs.zsh.interactiveShellInit = mkIf prg.zsh.enable initScript;
38− programs.fish.interactiveShellInit = mkIf prg.fish.enable fishInitScript;
35+ programs.fish.interactiveShellInit = mkIf prg.fish.enable ''
36+ ${pkgs.thefuck}/bin/thefuck --alias | source
nixos/modules/rename.nix−5
@@ -69,11 +69,6 @@ with lib;
70 (mkRemovedOptionModule [ "services" "quagga" ] "the corresponding package has been removed from nixpkgs")
70 (mkRemovedOptionModule [ "services" "quagga" ] "the corresponding package has been removed from nixpkgs")
71 (mkRemovedOptionModule [ "services" "seeks" ] "")
71 (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
77 (mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
72 (mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
78 (mkRemovedOptionModule [ "services" "wakeonlan"] "This module was removed in favor of enabling it with networking.interfaces.<name>.wakeOnLan")
73 (mkRemovedOptionModule [ "services" "wakeonlan"] "This module was removed in favor of enabling it with networking.interfaces.<name>.wakeOnLan")
79 (mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
74 (mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
nixos/modules/security/pam.nix+3−113
@@ -61,19 +61,6 @@ let
64− usshAuth = mkOption {
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.
72− Note that the <option>security.pam.ussh.enable</option> must also be
73− set for this option to take effect.
77 yubicoAuth = mkOption {
64 yubicoAuth = mkOption {
78 default = config.security.pam.yubico.enable;
65 default = config.security.pam.yubico.enable;
79 defaultText = literalExpression "config.security.pam.yubico.enable";
66 defaultText = literalExpression "config.security.pam.yubico.enable";
@@ -488,11 +475,8 @@ let
488 optionalString cfg.usbAuth ''
475 optionalString cfg.usbAuth ''
489 auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so
476 auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so
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}"}
494 (let oath = config.security.pam.oath; in optionalString cfg.oathAuth ''
478 (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}
497 (let yubi = config.security.pam.yubico; in optionalString cfg.yubicoAuth ''
481 (let yubi = config.security.pam.yubico; in optionalString cfg.yubicoAuth ''
498 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"}
482 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
610 session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so
594 session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so
612 optionalString cfg.pamMount ''
596 optionalString cfg.pamMount ''
613− session [success=1 default=ignore] ${pkgs.pam}/lib/security/pam_succeed_if.so service = systemd-user quiet
614 session optional ${pkgs.pam_mount}/lib/security/pam_mount.so disable_interactive
597 session optional ${pkgs.pam_mount}/lib/security/pam_mount.so disable_interactive
616 optionalString use_ldap ''
599 optionalString use_ldap ''
@@ -943,96 +926,6 @@ in
946− security.pam.ussh = {
951− Enables Uber's USSH PAM (<literal>pam-ussh</literal>) module.
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
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>).
960− More information can be found <link
961− xlink:href="https://github.com/uber/pam-ussh">here</link>.
967− type = with types; nullOr path;
969− By default <literal>pam-ussh</literal> reads the trusted user CA keys
970− from <filename>/etc/ssh/trusted_user_ca</filename>.
972− This should be set the same as your <literal>TrustedUserCAKeys</literal>
977− authorizedPrincipals = mkOption {
979− type = with types; nullOr commas;
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
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.
989− Mutually exclusive with <literal>authorizedPrincipalsFile</literal>.
993− authorizedPrincipalsFile = mkOption {
995− type = with types; nullOr path;
997− Path to a list of principals; if the user presents a certificate with
998− one of these principals, then they will be authorized.
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.
1004− Mutually exclusive with <literal>authorizedPrincipals</literal>.
1010− type = with types; nullOr str;
1012− If set, then the authenticating user must be a member of this group
1013− to use this module.
1017− control = mkOption {
1018− default = "sufficient";
1019− type = types.enum [ "required" "requisite" "sufficient" "optional" ];
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,
1028− <refentrytitle>pam.conf</refentrytitle>
1029− <manvolnum>5</manvolnum>
1031− for better understanding of this option.
1036 security.pam.yubico = {
929 security.pam.yubico = {
1037 enable = mkOption {
930 enable = mkOption {
1038 default = false;
931 default = false;
@@ -1131,7 +1024,7 @@ in
1131 ++ optional config.services.sssd.enable pkgs.sssd
1024 ++ optional config.services.sssd.enable pkgs.sssd
1132 ++ optionals config.krb5.enable [pam_krb5 pam_ccreds]
1025 ++ optionals config.krb5.enable [pam_krb5 pam_ccreds]
1133 ++ optionals config.security.pam.enableOTPW [ pkgs.otpw ]
1026 ++ 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 ]
1135 ++ optionals config.security.pam.p11.enable [ pkgs.pam_p11 ]
1028 ++ optionals config.security.pam.p11.enable [ pkgs.pam_p11 ]
1136 ++ optionals config.security.pam.u2f.enable [ pkgs.pam_u2f ];
1029 ++ optionals config.security.pam.u2f.enable [ pkgs.pam_u2f ];
@@ -1217,11 +1110,8 @@ in
1217 optionalString (isEnabled (cfg: cfg.usbAuth)) ''
1110 optionalString (isEnabled (cfg: cfg.usbAuth)) ''
1218 mr ${pkgs.pam_usb}/lib/security/pam_usb.so,
1111 mr ${pkgs.pam_usb}/lib/security/pam_usb.so,
1220− optionalString (isEnabled (cfg: cfg.usshAuth)) ''
1221− mr ${pkgs.pam_ussh}/lib/security/pam_ussh.so,
1223 optionalString (isEnabled (cfg: cfg.oathAuth)) ''
1113 optionalString (isEnabled (cfg: cfg.oathAuth)) ''
1224− "mr ${pkgs.oath-toolkit}/lib/security/pam_oath.so,
1114+ "mr ${pkgs.oathToolkit}/lib/security/pam_oath.so,
1226 optionalString (isEnabled (cfg: cfg.yubicoAuth)) ''
1116 optionalString (isEnabled (cfg: cfg.yubicoAuth)) ''
1227 mr ${pkgs.yubico-pam}/lib/security/pam_yubico.so,
1117 mr ${pkgs.yubico-pam}/lib/security/pam_yubico.so,
nixos/modules/security/pam_mount.nix+6−78
@@ -5,14 +5,6 @@ with lib;
6 cfg = config.security.pam.mount;
6 cfg = config.security.pam.mount;
8− oflRequired = cfg.logoutHup || cfg.logoutTerm || cfg.logoutKill;
10− fake_ofl = pkgs.writeShellScriptBin "fake_ofl" ''
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
16 anyPamMount = any (attrByPath ["pamMount"] false) (attrValues config.security.pam.services);
8 anyPamMount = any (attrByPath ["pamMount"] false) (attrValues config.security.pam.services);
@@ -59,71 +51,6 @@ in
59 You can define volume-specific options in the volume definitions.
51 You can define volume-specific options in the volume definitions.
63− debugLevel = mkOption {
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" />.
75− logoutWait = mkOption {
79− Amount of microseconds to wait until killing remaining processes after
81− For more information, visit <link
82− xlink:href="http://pam-mount.sourceforge.net/pam_mount.conf.5.html" />.
86− logoutHup = mkOption {
90− Kill remaining processes after logout by sending a SIGHUP.
94− logoutTerm = mkOption {
98− Kill remaining processes after logout by sending a SIGTERM.
102− logoutKill = mkOption {
106− Kill remaining processes after logout by sending a SIGKILL.
110− createMountPoints = mkOption {
114− Create mountpoints for volumes if they do not exist.
118− removeCreatedMountPoints = mkOption {
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.
@@ -150,20 +77,21 @@ in
150 <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
77 <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
151 <!-- auto generated from Nixos: modules/config/users-groups.nix -->
78 <!-- auto generated from Nixos: modules/config/users-groups.nix -->
152 <pam_mount>
79 <pam_mount>
153− <debug enable="${toString cfg.debugLevel}" />
80+ <debug enable="0" />
154 <!-- if activated, requires ofl from hxtools to be present -->
82 <!-- 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" />
156 <!-- set PATH variable for pam_mount module -->
84 <!-- set PATH variable for pam_mount module -->
157 <path>${makeBinPath ([ pkgs.util-linux ] ++ cfg.additionalSearchPaths)}</path>
85 <path>${makeBinPath ([ pkgs.util-linux ] ++ cfg.additionalSearchPaths)}</path>
158 <!-- create mount point if not present -->
86 <!-- 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" />
160 <!-- specify the binaries to be called -->
89 <!-- specify the binaries to be called -->
161 <fusemount>${pkgs.fuse}/bin/mount.fuse %(VOLUME) %(MNTPT) -o ${concatStringsSep "," (cfg.fuseMountOptions ++ [ "%(OPTIONS)" ])}</fusemount>
90 <fusemount>${pkgs.fuse}/bin/mount.fuse %(VOLUME) %(MNTPT) -o ${concatStringsSep "," (cfg.fuseMountOptions ++ [ "%(OPTIONS)" ])}</fusemount>
162− <fuseumount>${pkgs.fuse}/bin/fusermount -u %(MNTPT)</fuseumount>
163 <cryptmount>${pkgs.pam_mount}/bin/mount.crypt %(VOLUME) %(MNTPT)</cryptmount>
91 <cryptmount>${pkgs.pam_mount}/bin/mount.crypt %(VOLUME) %(MNTPT)</cryptmount>
164 <cryptumount>${pkgs.pam_mount}/bin/umount.crypt %(MNTPT)</cryptumount>
92 <cryptumount>${pkgs.pam_mount}/bin/umount.crypt %(MNTPT)</cryptumount>
165 <pmvarrun>${pkgs.pam_mount}/bin/pmvarrun -u %(USER) -o %(OPERATION)</pmvarrun>
93 <pmvarrun>${pkgs.pam_mount}/bin/pmvarrun -u %(USER) -o %(OPERATION)</pmvarrun>
166− ${optionalString oflRequired "<ofl>${fake_ofl}/bin/fake_ofl %(SIGNAL) %(MNTPT)</ofl>"}
94+
167 ${concatStrings (map userVolumeEntry (attrValues extraUserVolumes))}
95 ${concatStrings (map userVolumeEntry (attrValues extraUserVolumes))}
168 ${concatStringsSep "\n" cfg.extraVolumes}
96 ${concatStringsSep "\n" cfg.extraVolumes}
169 </pam_mount>
97 </pam_mount>
nixos/modules/security/sudo.nix+1−1
@@ -245,7 +245,7 @@ in
246 environment.systemPackages = [ sudo ];
246 environment.systemPackages = [ sudo ];
248− security.pam.services.sudo = { sshAgentAuth = true; usshAuth = true; };
248+ security.pam.services.sudo = { sshAgentAuth = true; };
250 environment.etc.sudoers =
250 environment.etc.sudoers =
251 { source =
251 { source =
nixos/modules/services/audio/snapserver.nix+7−15
@@ -1,4 +1,4 @@
1−{ config, options, lib, pkgs, ... }:
1+{ config, lib, pkgs, ... }:
@@ -101,8 +101,6 @@ in {
102 openFirewall = mkOption {
102 openFirewall = mkOption {
103 type = types.bool;
103 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.
106 default = true;
104 default = true;
107 description = ''
105 description = ''
108 Whether to automatically open the specified ports in the firewall.
106 Whether to automatically open the specified ports in the firewall.
@@ -275,16 +273,10 @@ in {
276 config = mkIf cfg.enable {
274 config = mkIf cfg.enable {
279− # https://github.com/badaix/snapcast/blob/98ac8b2fb7305084376607b59173ce4097c620d8/server/streamreader/stream_manager.cpp#L85
276+ # 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 ''
277+ warnings = 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.
278+ services.snapserver.streams.${k}.type = "spotify" is deprecated, use services.snapserver.streams.${k}.type = "librespot" instead.
282− '' else "") cfg.streams)
279+ '' 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.
289 systemd.services.snapserver = {
281 systemd.services.snapserver = {
290 after = [ "network.target" ];
282 after = [ "network.target" ];
@@ -312,8 +304,8 @@ in {
313 networking.firewall.allowedTCPPorts =
305 networking.firewall.allowedTCPPorts =
314 optionals cfg.openFirewall [ cfg.port ]
306 optionals cfg.openFirewall [ cfg.port ]
315− ++ optional (cfg.openFirewall && cfg.tcp.enable) cfg.tcp.port
307+ ++ optional cfg.tcp.enable cfg.tcp.port
316− ++ optional (cfg.openFirewall && cfg.http.enable) cfg.http.port;
308+ ++ optional cfg.http.enable cfg.http.port;
nixos/modules/services/continuous-integration/github-runner.nix−10
@@ -299,16 +299,6 @@ in
299 RestrictRealtime = true;
299 RestrictRealtime = true;
300 RestrictSUIDSGID = true;
300 RestrictSUIDSGID = true;
301 UMask = "0066";
301 UMask = "0066";
302− ProtectProc = "invisible";
304− SystemCallFilter = [
311− RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" "AF_NETLINK" ];
313 # Needs network access
303 # Needs network access
314 PrivateNetwork = false;
304 PrivateNetwork = false;
nixos/modules/services/continuous-integration/gitlab-runner.nix+2−9
@@ -36,12 +36,12 @@ let
37 # register new services
37 # register new services
38 ${concatStringsSep "\n" (mapAttrsToList (name: service: ''
38 ${concatStringsSep "\n" (mapAttrsToList (name: service: ''
39− if echo "$NEW_SERVICES" | grep -xq "${name}"; then
39+ if echo "$NEW_SERVICES" | grep -xq ${name}; then
40 bash -c ${escapeShellArg (concatStringsSep " \\\n " ([
40 bash -c ${escapeShellArg (concatStringsSep " \\\n " ([
41 "set -a && source ${service.registrationConfigFile} &&"
41 "set -a && source ${service.registrationConfigFile} &&"
42 "gitlab-runner register"
42 "gitlab-runner register"
43 "--non-interactive"
43 "--non-interactive"
44− (if service.description != null then "--description \"${service.description}\"" else "--name '${name}'")
44+ "--name ${name}"
45 "--executor ${service.executor}"
45 "--executor ${service.executor}"
46 "--limit ${toString service.limit}"
46 "--limit ${toString service.limit}"
47 "--request-concurrency ${toString service.requestConcurrency}"
47 "--request-concurrency ${toString service.requestConcurrency}"
@@ -365,13 +365,6 @@ in
365 with <literal>RUNNER_ENV</literal> variable set.
365 with <literal>RUNNER_ENV</literal> variable set.
368− description = mkOption {
369− type = types.nullOr types.str;
372− Name/description of the runner.
375 executor = mkOption {
368 executor = mkOption {
376 type = types.str;
369 type = types.str;
377 default = "docker";
370 default = "docker";
nixos/modules/services/databases/cockroachdb.nix+29−37
@@ -1,4 +1,4 @@
1−{ config, lib, pkgs, utils, ... }:
1+{ config, lib, pkgs, ... }:
@@ -6,44 +6,46 @@ let
6 cfg = config.services.cockroachdb;
6 cfg = config.services.cockroachdb;
7 crdb = cfg.package;
7 crdb = cfg.package;
9− startupCommand = utils.escapeSystemdExecArgs
9+ escape = builtins.replaceStrings ["%"] ["%%"];
10− ([
10+ ifNotNull = v: s: optionalString (v != null) s;
12+ startupCommand = lib.concatStringsSep " "
11− # Basic startup
13+ [ # Basic startup
12− "${crdb}/bin/cockroach"
14+ "${crdb}/bin/cockroach start"
14 "--logtostderr"
15 "--logtostderr"
15 "--store=/var/lib/cockroachdb"
16 "--store=/var/lib/cockroachdb"
17+ (ifNotNull cfg.locality "--locality='${cfg.locality}'")
17 # WebUI settings
19 # WebUI settings
18− "--http-addr=${cfg.http.address}:${toString cfg.http.port}"
20+ "--http-addr='${cfg.http.address}:${toString cfg.http.port}'"
20 # Cluster listen address
22 # Cluster listen address
21− "--listen-addr=${cfg.listen.address}:${toString cfg.listen.port}"
23+ "--listen-addr='${cfg.listen.address}:${toString cfg.listen.port}'"
25+ # Cluster configuration
26+ (ifNotNull cfg.join "--join=${cfg.join}")
23− # Cache and memory settings.
28+ # Cache and memory settings. Must be escaped.
24− "--cache=${cfg.cache}"
29+ "--cache='${escape cfg.cache}'"
25− "--max-sql-memory=${cfg.maxSqlMemory}"
30+ "--max-sql-memory='${escape cfg.maxSqlMemory}'"
27 # Certificate/security settings.
32 # Certificate/security settings.
28 (if cfg.insecure then "--insecure" else "--certs-dir=${cfg.certsDir}")
33 (if cfg.insecure then "--insecure" else "--certs-dir=${cfg.certsDir}")
30− ++ lib.optional (cfg.join != null) "--join=${cfg.join}"
35+
31− ++ lib.optional (cfg.locality != null) "--locality=${cfg.locality}"
34− addressOption = descr: defaultPort: {
36+ addressOption = descr: defaultPort: {
35− address = mkOption {
37+ address = mkOption {
36− type = types.str;
38+ type = types.str;
37− default = "localhost";
39+ default = "localhost";
38− description = "Address to bind to for ${descr}";
40+ description = "Address to bind to for ${descr}";
41− port = mkOption {
43+ port = mkOption {
42− type = types.port;
44+ type = types.port;
43− default = defaultPort;
45+ default = defaultPort;
44− description = "Port to bind to for ${descr}";
46+ description = "Port to bind to for ${descr}";
@@ -157,16 +159,6 @@ in
157 only contain open source features and open source code).
159 only contain open source features and open source code).
161− extraArgs = mkOption {
162− type = types.listOf types.str;
164− example = [ "--advertise-addr" "[fe80::f6f2:::]" ];
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"/>
nixos/modules/services/databases/couchdb.nix−6
@@ -193,11 +193,6 @@ in {
194 preStart = ''
194 preStart = ''
195 touch ${cfg.configFile}
195 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
203 environment = {
198 environment = {
@@ -209,7 +204,6 @@ in {
209 ERL_FLAGS= ''-couch_ini ${cfg.package}/etc/default.ini ${configFile} ${pkgs.writeText "couchdb-extra.ini" cfg.extraConfig} ${cfg.configFile}'';
204 ERL_FLAGS= ''-couch_ini ${cfg.package}/etc/default.ini ${configFile} ${pkgs.writeText "couchdb-extra.ini" cfg.extraConfig} ${cfg.configFile}'';
210 # 5. the vm.args file
205 # 5. the vm.args file
211 COUCHDB_ARGS_FILE=''${cfg.argsFile}'';
206 COUCHDB_ARGS_FILE=''${cfg.argsFile}'';
212− HOME =''${cfg.databaseDir}'';
215 serviceConfig = {
209 serviceConfig = {
nixos/modules/services/desktops/pipewire/pipewire-media-session.nix+4−4
@@ -58,7 +58,7 @@ in {
58 Configuration for the media session core. For details see
58 Configuration for the media session core. For details see
59 https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/media-session.conf
59 https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/media-session.conf
61− default = defaults.media-session;
61+ default = {};
64 alsa-monitor = mkOption {
64 alsa-monitor = mkOption {
@@ -67,7 +67,7 @@ in {
67 Configuration for the alsa monitor. For details see
67 Configuration for the alsa monitor. For details see
68 https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/alsa-monitor.conf
68 https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/alsa-monitor.conf
70− default = defaults.alsa-monitor;
70+ default = {};
73 bluez-monitor = mkOption {
73 bluez-monitor = mkOption {
@@ -76,7 +76,7 @@ in {
76 Configuration for the bluez5 monitor. For details see
76 Configuration for the bluez5 monitor. For details see
77 https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/bluez-monitor.conf
77 https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/bluez-monitor.conf
79− default = defaults.bluez-monitor;
79+ default = {};
82 v4l2-monitor = mkOption {
82 v4l2-monitor = mkOption {
@@ -85,7 +85,7 @@ in {
85 Configuration for the V4L2 monitor. For details see
85 Configuration for the V4L2 monitor. For details see
86 https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/v4l2-monitor.conf
86 https://gitlab.freedesktop.org/pipewire/media-session/-/blob/${cfg.package.version}/src/daemon/media-session.d/v4l2-monitor.conf
88− default = defaults.v4l2-monitor;
88+ default = {};
nixos/modules/services/editors/haste.nixdeleted−86
@@ -1,86 +0,0 @@
1−{ config, lib, pkgs, ... }:
6− pkg = pkgs.haste-server;
7− cfg = config.services.haste-server;
9− format = pkgs.formats.json {};
12− options.services.haste-server = {
13− enable = mkEnableOption "haste-server";
14− openFirewall = mkEnableOption "firewall passthrough for haste-server";
16− settings = mkOption {
18− Configuration for haste-server.
19− For documentation see <link xlink:href="https://github.com/toptal/haste-server#settings">project readme</link>
25− config = mkIf (cfg.enable) {
26− networking.firewall.allowedTCPPorts = mkIf (cfg.openFirewall) [ cfg.settings.port ];
28− services.haste-server = {
30− host = mkDefault "::";
31− port = mkDefault 7777;
33− keyLength = mkDefault 10;
34− maxLength = mkDefault 400000;
36− staticMaxAge = mkDefault 86400;
37− recompressStaticAssets = mkDefault false;
39− logging = mkDefault [
47− keyGenerator = mkDefault {
54− totalRequests = mkDefault 500;
55− every = mkDefault 60000;
60− storage = mkDefault {
65− about = mkDefault "${pkg}/share/haste-server/about.md";
70− systemd.services.haste-server = {
71− wantedBy = [ "multi-user.target" ];
72− requires = [ "network.target" ];
73− after = [ "network.target" ];
76− User = "haste-server";
78− StateDirectory = "haste-server";
79− WorkingDirectory = "/var/lib/haste-server";
80− ExecStart = "${pkg}/bin/haste-server ${format.generate "config.json" cfg.settings}";
83− path = with pkgs; [ pkg coreutils ];
nixos/modules/services/hardware/udev.nix+23−125
@@ -8,24 +8,6 @@ let
9 cfg = config.services.udev;
9 cfg = config.services.udev;
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
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
22− # TODO move this into the initrd-network module when it exists
23− initrdLinkUnits = pkgs.runCommand "initrd-link-units" {} ''
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))}
29 extraUdevRules = pkgs.writeTextFile {
11 extraUdevRules = pkgs.writeTextFile {
30 name = "extra-udev-rules";
12 name = "extra-udev-rules";
31 text = cfg.extraRules;
13 text = cfg.extraRules;
@@ -41,16 +23,17 @@ let
41 nixosRules = ''
23 nixosRules = ''
42 # Miscellaneous devices.
24 # Miscellaneous devices.
43 KERNEL=="kvm", MODE="0666"
25 KERNEL=="kvm", MODE="0666"
26+ KERNEL=="kqemu", MODE="0666"
45 # Needed for gpm.
28 # Needed for gpm.
46 SUBSYSTEM=="input", KERNEL=="mice", TAG+="systemd"
29 SUBSYSTEM=="input", KERNEL=="mice", TAG+="systemd"
49 # Perform substitutions in all udev rules files.
32 # 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"
51 { preferLocalBuild = true;
34 { preferLocalBuild = true;
52 allowSubstitutes = false;
35 allowSubstitutes = false;
53− packages = unique (map toString udevPackages);
36+ packages = unique (map toString cfg.packages);
56 mkdir -p $out
39 mkdir -p $out
@@ -78,9 +61,6 @@ let
78 --replace \"/bin/mount \"${pkgs.util-linux}/bin/mount \
61 --replace \"/bin/mount \"${pkgs.util-linux}/bin/mount \
79 --replace /usr/bin/readlink ${pkgs.coreutils}/bin/readlink \
62 --replace /usr/bin/readlink ${pkgs.coreutils}/bin/readlink \
80 --replace /usr/bin/basename ${pkgs.coreutils}/bin/basename
63 --replace /usr/bin/basename ${pkgs.coreutils}/bin/basename
81− ${optionalString (initrdBin != null) ''
82− substituteInPlace $i --replace '/run/current-system/systemd' "${removeSuffix "/bin" initrdBin}"
86 echo -n "Checking that all programs called by relative paths in udev rules exist in ${udev}/lib/udev... "
66 echo -n "Checking that all programs called by relative paths in udev rules exist in ${udev}/lib/udev... "
@@ -105,9 +85,8 @@ let
105 for i in $import_progs $run_progs; do
85 for i in $import_progs $run_progs; do
106 # if the path refers to /run/current-system/systemd, replace with config.systemd.package
86 # if the path refers to /run/current-system/systemd, replace with config.systemd.package
107 if [[ $i == /run/current-system/systemd* ]]; then
87 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/}"
111 if [[ ! -x $i ]]; then
90 if [[ ! -x $i ]]; then
112 echo "FAIL"
91 echo "FAIL"
113 echo "$i is called in udev rules but is not executable or does not exist"
92 echo "$i is called in udev rules but is not executable or does not exist"
@@ -124,7 +103,7 @@ let
124 echo "Consider fixing the following udev rules:"
103 echo "Consider fixing the following udev rules:"
125 echo "$filesToFixup" | while read localFile; do
104 echo "$filesToFixup" | while read localFile; do
126 remoteFile="origin unknown"
105 remoteFile="origin unknown"
127− for i in ${toString binPackages}; do
106+ for i in ${toString cfg.packages}; do
128 for j in "$i"/*/udev/rules.d/*; do
107 for j in "$i"/*/udev/rules.d/*; do
129 [ -e "$out/$(basename "$j")" ] || continue
108 [ -e "$out/$(basename "$j")" ] || continue
130 [ "$(basename "$j")" = "$(basename "$localFile")" ] || continue
109 [ "$(basename "$j")" = "$(basename "$localFile")" ] || continue
@@ -147,7 +126,7 @@ let
147 ${optionalString (!config.boot.hardwareScan) ''
126 ${optionalString (!config.boot.hardwareScan) ''
148 ln -s /dev/null $out/80-drivers.rules
127 ln -s /dev/null $out/80-drivers.rules
152 hwdbBin = pkgs.runCommand "hwdb.bin"
131 hwdbBin = pkgs.runCommand "hwdb.bin"
153 { preferLocalBuild = true;
132 { preferLocalBuild = true;
@@ -223,6 +202,20 @@ in
205+ initrdRules = mkOption {
208+ SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1D:60:B9:6D:4F", KERNEL=="eth*", NAME="my_fast_network_card"
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.
226 extraRules = mkOption {
219 extraRules = mkOption {
227 default = "";
220 default = "";
228 example = ''
221 example = ''
@@ -290,52 +283,6 @@ in
293− boot.initrd.services.udev = {
295− packages = mkOption {
296− type = types.listOf types.path;
300− <emphasis>This will only be used when systemd is used in stage 1.</emphasis>
302− List of packages containing <command>udev</command> rules that will be copied to stage 1.
304− <filename><replaceable>pkg</replaceable>/etc/udev/rules.d</filename> and
305− <filename><replaceable>pkg</replaceable>/lib/udev/rules.d</filename>
310− binPackages = mkOption {
311− type = types.listOf types.path;
315− <emphasis>This will only be used when systemd is used in stage 1.</emphasis>
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.
326− SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1D:60:B9:6D:4F", KERNEL=="eth*", NAME="my_fast_network_card"
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.
@@ -351,61 +298,16 @@ in
352 boot.kernelParams = mkIf (!config.networking.usePredictableInterfaceNames) [ "net.ifnames=0" ];
299 boot.kernelParams = mkIf (!config.networking.usePredictableInterfaceNames) [ "net.ifnames=0" ];
354− boot.initrd.extraUdevRulesCommands = optionalString (!config.boot.initrd.systemd.enable && config.boot.initrd.services.udev.rules != "")
301+ boot.initrd.extraUdevRulesCommands = optionalString (cfg.initrdRules != "")
356 cat <<'EOF' > $out/99-local.rules
303 cat <<'EOF' > $out/99-local.rules
357− ${config.boot.initrd.services.udev.rules}
304+ ${cfg.initrdRules}
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"
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;
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 ];
388− "/etc/systemd/network".source = initrdLinkUnits;
390− # Insert initrd rules
391− boot.initrd.services.udev.packages = [
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;
400 environment.etc =
308 environment.etc =
402− "udev/rules.d".source = udevRulesFor {
310+ "udev/rules.d".source = udevRules;
403− name = "udev-rules";
404− udevPackages = cfg.packages;
405− systemd = config.systemd.package;
406− binPackages = cfg.packages;
407− inherit udevPath udev;
409 "udev/hwdb.bin".source = hwdbBin;
311 "udev/hwdb.bin".source = hwdbBin;
@@ -436,8 +338,4 @@ in
441− (mkRenamedOptionModule [ "services" "udev" "initrdRules" ] [ "boot" "initrd" "services" "udev" "rules" ])
nixos/modules/services/hardware/udisks2.nix−39
@@ -4,13 +4,6 @@
8− settingsFormat = pkgs.formats.ini {
9− listToValue = concatMapStringsSep "," (generators.mkValueStringDefault {});
11− configFiles = mapAttrs (name: value: (settingsFormat.generate name value)) (mapAttrs' (name: value: nameValuePair name value ) config.services.udisks2.settings);
16 ###### interface
9 ###### interface
@@ -28,36 +21,6 @@ in
31− settings = mkOption rec {
32− type = types.attrsOf settingsFormat.type;
33− apply = recursiveUpdate default;
38− modules_load_preference = "ondemand";
41− encryption = "luks2";
45− example = literalExpression ''
47− "WDC-WD10EZEX-60M2NA0-WD-WCC3F3SJ0698.conf" = {
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.
@@ -69,8 +32,6 @@ in
70 environment.systemPackages = [ pkgs.udisks2 ];
33 environment.systemPackages = [ pkgs.udisks2 ];
72− environment.etc = mapAttrs' (name: value: nameValuePair "udisks2/${name}" { source = value; } ) configFiles;
74 security.polkit.enable = true;
35 security.polkit.enable = true;
76 services.dbus.packages = [ pkgs.udisks2 ];
37 services.dbus.packages = [ pkgs.udisks2 ];
nixos/modules/services/hardware/usbrelayd.nixdeleted−44
@@ -1,44 +0,0 @@
1−{ config, lib, pkgs, ... }:
4− cfg = config.services.usbrelayd;
7− options.services.usbrelayd = with types; {
8− enable = mkEnableOption "USB Relay MQTT daemon";
12− description = "Hostname or IP address of your MQTT Broker.";
13− default = "127.0.0.1";
20− clientName = mkOption {
22− description = "Name, your client connects as.";
23− default = "MyUSBRelay";
27− config = mkIf cfg.enable {
29− # TODO: Rename to .conf in upcomming release
30− environment.etc."usbrelayd.ini".text = ''
32− BROKER = ${cfg.broker}
33− CLIENTNAME = ${cfg.clientName}
36− services.udev.packages = [ pkgs.usbrelayd ];
37− systemd.packages = [ pkgs.usbrelayd ];
38− users.users.usbrelay = {
42− users.groups.usbrelay = { };
nixos/modules/services/logging/logrotate.nix+3−3
@@ -162,8 +162,8 @@ let
162 # file exist, but we only have sandboxed users here so brown these
162 # file exist, but we only have sandboxed users here so brown these
163 # out. according to man page that means su, create and createolddir.
163 # out. according to man page that means su, create and createolddir.
164 # files required to exist also won't be present, so missingok is forced.
164 # files required to exist also won't be present, so missingok is forced.
165− user=$(${pkgs.buildPackages.coreutils}/bin/id -un)
165+ user=$(${pkgs.coreutils}/bin/id -un)
166− group=$(${pkgs.buildPackages.coreutils}/bin/id -gn)
166+ group=$(${pkgs.coreutils}/bin/id -gn)
167 sed -e "s/\bsu\s.*/su $user $group/" \
167 sed -e "s/\bsu\s.*/su $user $group/" \
168 -e "s/\b\(create\s\+[0-9]*\s*\|createolddir\s\+[0-9]*\s\+\).*/\1$user $group/" \
168 -e "s/\b\(create\s\+[0-9]*\s*\|createolddir\s\+[0-9]*\s\+\).*/\1$user $group/" \
169 -e "1imissingok" -e "s/\bnomissingok\b//" \
169 -e "1imissingok" -e "s/\bnomissingok\b//" \
@@ -173,7 +173,7 @@ let
173 # 'error:' at common log level, so we can use grep, taking care
173 # 'error:' at common log level, so we can use grep, taking care
174 # to keep error codes
174 # to keep error codes
175 set -o pipefail
175 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 \
177 | ( ! grep "error:" ) > /tmp/logrotate-error; then
177 | ( ! grep "error:" ) > /tmp/logrotate-error; then
178 echo "Logrotate configuration check failed."
178 echo "Logrotate configuration check failed."
179 echo "The failing configuration (after adjustments to pass tests in sandbox) was:"
179 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 {
192 log_dir = "/var/log/mailman";
192 log_dir = "/var/log/mailman";
193 lock_dir = "$var_dir/lock";
193 lock_dir = "$var_dir/lock";
194 etc_dir = "/etc";
194 etc_dir = "/etc";
195+ ext_dir = "$etc_dir/mailman.d";
195 pid_file = "/run/mailman/master.pid";
196 pid_file = "/run/mailman/master.pid";
@@ -224,14 +225,7 @@ in {
224 See <https://mailman.readthedocs.io/en/latest/src/mailman/docs/mta.html>.
225 See <https://mailman.readthedocs.io/en/latest/src/mailman/docs/mta.html>.
228− { assertion = cfg.webHosts != [];
230− services.mailman.serve.enable requires there to be at least one entry
231− in services.mailman.webHosts.
234− ] ++ (lib.optionals cfg.enablePostfix [
228+ in (lib.optionals cfg.enablePostfix [
235 { assertion = postfix.enable;
229 { assertion = postfix.enable;
236 message = ''
230 message = ''
237 Mailman's default NixOS configuration requires Postfix to be enabled.
231 Mailman's default NixOS configuration requires Postfix to be enabled.
@@ -281,14 +275,15 @@ in {
281 globals().update(json.load(f))
275 globals().update(json.load(f))
284− services.nginx = mkIf (cfg.serve.enable && cfg.webHosts != []) {
278+ services.nginx = mkIf cfg.serve.enable {
285 enable = mkDefault true;
279 enable = mkDefault true;
286− virtualHosts = lib.genAttrs cfg.webHosts (webHost: {
280+ virtualHosts."${lib.head cfg.webHosts}" = {
281+ serverAliases = cfg.webHosts;
287 locations = {
282 locations = {
288 "/".extraConfig = "uwsgi_pass unix:/run/mailman-web.socket;";
283 "/".extraConfig = "uwsgi_pass unix:/run/mailman-web.socket;";
289 "/static/".alias = webSettings.STATIC_ROOT + "/";
284 "/static/".alias = webSettings.STATIC_ROOT + "/";
294 environment.systemPackages = [ (pkgs.buildEnv {
289 environment.systemPackages = [ (pkgs.buildEnv {
@@ -318,9 +313,7 @@ in {
318 systemd.services = {
313 systemd.services = {
319 mailman = {
314 mailman = {
320 description = "GNU Mailman Master Process";
315 description = "GNU Mailman Master Process";
321− before = lib.optional cfg.enablePostfix "postfix.service";
322− after = [ "network.target" ]
316+ after = [ "network.target" ];
323− ++ lib.optional cfg.enablePostfix "postfix-setup.service";
324 restartTriggers = [ config.environment.etc."mailman.cfg".source ];
317 restartTriggers = [ config.environment.etc."mailman.cfg".source ];
325 wantedBy = [ "multi-user.target" ];
318 wantedBy = [ "multi-user.target" ];
326 serviceConfig = {
319 serviceConfig = {
nixos/modules/services/mail/postfix.nix+17−22
@@ -723,10 +723,23 @@ in
723 { ${setgidGroup}.gid = config.ids.gids.postdrop;
723 { ${setgidGroup}.gid = config.ids.gids.postdrop;
726− systemd.services.postfix-setup =
726+ systemd.services.postfix =
727− { description = "Setup for Postfix mail server";
727+ { description = "Postfix mail server";
729+ wantedBy = [ "multi-user.target" ];
730+ after = [ "network.target" ];
731+ path = [ pkgs.postfix ];
728− serviceConfig.Type = "oneshot";
733+ serviceConfig = {
729− script = ''
734+ Type = "forking";
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";
730 # Backwards compatibility
743 # Backwards compatibility
731 if [ ! -d /var/lib/postfix ] && [ -d /var/postfix ]; then
744 if [ ! -d /var/lib/postfix ] && [ -d /var/postfix ]; then
732 mkdir -p /var/lib
745 mkdir -p /var/lib
@@ -764,24 +777,6 @@ in
767− systemd.services.postfix =
768− { description = "Postfix mail server";
770− wantedBy = [ "multi-user.target" ];
771− after = [ "network.target" "postfix-setup.service" ];
772− requires = [ "postfix-setup.service" ];
773− path = [ pkgs.postfix ];
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";
785 services.postfix.config = (mapAttrs (_: v: mkDefault v) {
780 services.postfix.config = (mapAttrs (_: v: mkDefault v) {
786 compatibility_level = pkgs.postfix.version;
781 compatibility_level = pkgs.postfix.version;
787 mail_owner = cfg.user;
782 mail_owner = cfg.user;
nixos/modules/services/matrix/matrix-synapse.nix+1−1
@@ -81,7 +81,7 @@ in {
81 (mkRemovedOptionModule [ "services" "matrix-synapse" "verbose" ] "Use a log config instead." )
81 (mkRemovedOptionModule [ "services" "matrix-synapse" "verbose" ] "Use a log config instead." )
83 # options that were moved into rfc42 style settigns
83 # 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" )
85 (mkRemovedOptionModule [ "services" "matrix-synapse" "database_args" ] "Use settings.database.args instead" )
85 (mkRemovedOptionModule [ "services" "matrix-synapse" "database_args" ] "Use settings.database.args instead" )
86 (mkRemovedOptionModule [ "services" "matrix-synapse" "database_name" ] "Use settings.database.args.database instead" )
86 (mkRemovedOptionModule [ "services" "matrix-synapse" "database_name" ] "Use settings.database.args.database instead" )
87 (mkRemovedOptionModule [ "services" "matrix-synapse" "database_type" ] "Use settings.database.name instead" )
87 (mkRemovedOptionModule [ "services" "matrix-synapse" "database_type" ] "Use settings.database.name instead" )
nixos/modules/services/misc/dendrite.nix−1
@@ -247,7 +247,6 @@ in
247 WorkingDirectory = workingDir;
247 WorkingDirectory = workingDir;
248 RuntimeDirectory = "dendrite";
248 RuntimeDirectory = "dendrite";
249 RuntimeDirectoryMode = "0700";
249 RuntimeDirectoryMode = "0700";
250− LimitNOFILE = 65535;
251 EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
250 EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
252 ExecStartPre = ''
251 ExecStartPre = ''
253 ${pkgs.envsubst}/bin/envsubst \
252 ${pkgs.envsubst}/bin/envsubst \
nixos/modules/services/misc/etebase-server.nix+1−1
@@ -166,7 +166,7 @@ in
167 makeWrapper ${pythonEnv}/bin/etebase-server \
167 makeWrapper ${pythonEnv}/bin/etebase-server \
168 $out/bin/etebase-server \
168 $out/bin/etebase-server \
169− --chdir ${escapeShellArg cfg.dataDir} \
169+ --run "cd ${cfg.dataDir}" \
170 --prefix ETEBASE_EASY_CONFIG_PATH : "${configIni}"
170 --prefix ETEBASE_EASY_CONFIG_PATH : "${configIni}"
nixos/modules/services/misc/gitea.nix+16−11
@@ -499,7 +499,6 @@ in
499 oldLfsJwtSecret = "${cfg.stateDir}/custom/conf/jwt_secret"; # old file for LFS_JWT_SECRET
499 oldLfsJwtSecret = "${cfg.stateDir}/custom/conf/jwt_secret"; # old file for LFS_JWT_SECRET
500 lfsJwtSecret = "${cfg.stateDir}/custom/conf/lfs_jwt_secret"; # new file for LFS_JWT_SECRET
500 lfsJwtSecret = "${cfg.stateDir}/custom/conf/lfs_jwt_secret"; # new file for LFS_JWT_SECRET
501 internalToken = "${cfg.stateDir}/custom/conf/internal_token";
501 internalToken = "${cfg.stateDir}/custom/conf/internal_token";
502− replaceSecretBin = "${pkgs.replace-secret}/bin/replace-secret";
504 # copy custom configuration and generate a random secret key if needed
503 # copy custom configuration and generate a random secret key if needed
505 ${optionalString (cfg.useWizard == false) ''
504 ${optionalString (cfg.useWizard == false) ''
@@ -527,17 +526,23 @@ in
527 ${gitea}/bin/gitea generate secret INTERNAL_TOKEN > ${internalToken}
526 ${gitea}/bin/gitea generate secret INTERNAL_TOKEN > ${internalToken}
530− chmod u+w '${runConfig}'
529+ SECRETKEY="$(head -n1 ${secretKey})"
531− ${replaceSecretBin} '#secretkey#' '${secretKey}' '${runConfig}'
532− ${replaceSecretBin} '#dbpass#' '${cfg.database.passwordFile}' '${runConfig}'
530+ DBPASS="$(head -n1 ${cfg.database.passwordFile})"
533− ${replaceSecretBin} '#oauth2jwtsecret#' '${oauth2JwtSecret}' '${runConfig}'
531+ OAUTH2JWTSECRET="$(head -n1 ${oauth2JwtSecret})"
534− ${replaceSecretBin} '#lfsjwtsecret#' '${lfsJwtSecret}' '${runConfig}'
532+ LFSJWTSECRET="$(head -n1 ${lfsJwtSecret})"
535− ${replaceSecretBin} '#internaltoken#' '${internalToken}' '${runConfig}'
533+ INTERNALTOKEN="$(head -n1 ${internalToken})"
537− ${lib.optionalString (cfg.mailerPasswordFile != null) ''
534+ ${if (cfg.mailerPasswordFile == null) then ''
535+ MAILERPASSWORD="#mailerpass#"
538− ${replaceSecretBin} '#mailerpass#' '${cfg.mailerPasswordFile}' '${runConfig}'
537+ MAILERPASSWORD="$(head -n1 ${cfg.mailerPasswordFile} || :)"
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" \
540− chmod u-w '${runConfig}'
545+ -i ${runConfig}
542 (umask 027; gitea_setup)
547 (umask 027; gitea_setup)
nixos/modules/services/misc/gitlab.nix+2−2
@@ -179,7 +179,7 @@ let
179 ${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
179 ${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
180 --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \
180 --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \
181 --set RAKEOPT '-f ${cfg.packages.gitlab}/share/gitlab/Rakefile' \
181 --set RAKEOPT '-f ${cfg.packages.gitlab}/share/gitlab/Rakefile' \
182− --chdir '${cfg.packages.gitlab}/share/gitlab'
182+ --run 'cd ${cfg.packages.gitlab}/share/gitlab'
@@ -193,7 +193,7 @@ let
193 makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/rails $out/bin/gitlab-rails \
193 makeWrapper ${cfg.packages.gitlab.rubyEnv}/bin/rails $out/bin/gitlab-rails \
194 ${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
194 ${concatStrings (mapAttrsToList (name: value: "--set ${name} '${value}' ") gitlabEnv)} \
195 --set PATH '${lib.makeBinPath [ pkgs.nodejs pkgs.gzip pkgs.git pkgs.gnutar postgresqlPackage pkgs.coreutils pkgs.procps ]}:$PATH' \
195 --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'
nixos/modules/services/misc/paperless.nix → nixos/modules/services/misc/paperless-ng.nixrenamed+51−49
@@ -2,13 +2,11 @@
5− cfg = config.services.paperless;
5+ cfg = config.services.paperless-ng;
7 defaultUser = "paperless";
7 defaultUser = "paperless";
9− # Don't start a redis instance if the user sets a custom redis connection
10− enableRedis = !hasAttr "PAPERLESS_REDIS" cfg.extraConfig;
9+ hasCustomRedis = hasAttr "PAPERLESS_REDIS" cfg.extraConfig;
11− redisServer = config.services.redis.servers.paperless;
14 PAPERLESS_DATA_DIR = cfg.dataDir;
12 PAPERLESS_DATA_DIR = cfg.dataDir;
@@ -17,15 +15,15 @@ let
17 GUNICORN_CMD_ARGS = "--bind=${cfg.address}:${toString cfg.port}";
15 GUNICORN_CMD_ARGS = "--bind=${cfg.address}:${toString cfg.port}";
19 lib.mapAttrs (_: toString) cfg.extraConfig
17 lib.mapAttrs (_: toString) cfg.extraConfig
20− ) // (optionalAttrs enableRedis {
18+ ) // (optionalAttrs (!hasCustomRedis) {
21− PAPERLESS_REDIS = "unix://${redisServer.unixSocket}";
19+ PAPERLESS_REDIS = "unix://${config.services.redis.servers.paperless-ng.unixSocket}";
24 manage = let
22 manage = let
25 setupEnv = lib.concatStringsSep "\n" (mapAttrsToList (name: val: "export ${name}=\"${val}\"") env);
23 setupEnv = lib.concatStringsSep "\n" (mapAttrsToList (name: val: "export ${name}=\"${val}\"") env);
26 in pkgs.writeShellScript "manage" ''
24 in pkgs.writeShellScript "manage" ''
27 ${setupEnv}
25 ${setupEnv}
28− exec ${cfg.package}/bin/paperless-ngx "$@"
26+ exec ${cfg.package}/bin/paperless-ng "$@"
31 # Secure the services
29 # Secure the services
@@ -38,7 +36,7 @@ let
38 "-/etc/hosts"
36 "-/etc/hosts"
39 "-/etc/localtime"
37 "-/etc/localtime"
40 "-/run/postgresql"
38 "-/run/postgresql"
41− ] ++ (optional enableRedis redisServer.unixSocket);
39+ ] ++ (optional (!hasCustomRedis) config.services.redis.servers.paperless-ng.unixSocket);
42 BindPaths = [
40 BindPaths = [
43 cfg.consumptionDir
41 cfg.consumptionDir
44 cfg.dataDir
42 cfg.dataDir
@@ -55,6 +53,7 @@ let
55 PrivateNetwork = true;
53 PrivateNetwork = true;
56 PrivateTmp = true;
54 PrivateTmp = true;
57 PrivateUsers = true;
55 PrivateUsers = true;
58 ProtectClock = true;
57 ProtectClock = true;
59 # Breaks if the home dir of the user is in /home
58 # Breaks if the home dir of the user is in /home
60 # Also does not add much value in combination with the TemporaryFileSystem.
59 # Also does not add much value in combination with the TemporaryFileSystem.
@@ -67,15 +66,11 @@ let
67 ProtectKernelModules = true;
66 ProtectKernelModules = true;
68 ProtectKernelTunables = true;
67 ProtectKernelTunables = true;
69 ProtectProc = "invisible";
68 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";
74 RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
69 RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
75 RestrictNamespaces = true;
70 RestrictNamespaces = true;
76 RestrictRealtime = true;
71 RestrictRealtime = true;
77 RestrictSUIDSGID = true;
72 RestrictSUIDSGID = true;
78− SupplementaryGroups = optional enableRedis redisServer.user;
73+ SupplementaryGroups = optional (!hasCustomRedis) config.services.redis.servers.paperless-ng.user;
79 SystemCallArchitectures = "native";
74 SystemCallArchitectures = "native";
80 SystemCallFilter = [ "@system-service" "~@privileged @resources @setuid @keyring" ];
75 SystemCallFilter = [ "@system-service" "~@privileged @resources @setuid @keyring" ];
81 # Does not work well with the temporary root
76 # Does not work well with the temporary root
@@ -86,22 +81,26 @@ in
86 meta.maintainers = with maintainers; [ earvstedt Flakebi ];
81 meta.maintainers = with maintainers; [ earvstedt Flakebi ];
88 imports = [
83 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.
92− options.services.paperless = {
91+ options.services.paperless-ng = {
93 enable = mkOption {
92 enable = mkOption {
94 type = lib.types.bool;
93 type = lib.types.bool;
95 default = false;
94 default = false;
96 description = ''
95 description = ''
97− Enable Paperless.
96+ Enable Paperless-ng.
99 When started, the Paperless database is automatically created if it doesn't
98 When started, the Paperless database is automatically created if it doesn't
100 exist and updated if the Paperless package has changed.
99 exist and updated if the Paperless package has changed.
101 Both tasks are achieved by running a Django migration.
100 Both tasks are achieved by running a Django migration.
103 A script to manage the Paperless instance (by wrapping Django's manage.py) is linked to
102 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>.
@@ -134,13 +133,13 @@ in
134 passwordFile = mkOption {
133 passwordFile = mkOption {
135 type = types.nullOr types.path;
134 type = types.nullOr types.path;
136 default = null;
135 default = null;
137− example = "/run/keys/paperless-password";
136+ example = "/run/keys/paperless-ng-password";
138 description = ''
137 description = ''
139 A file containing the superuser password.
138 A file containing the superuser password.
141 A superuser is required to access the web interface.
140 A superuser is required to access the web interface.
142 If unset, you can create a superuser manually by running
141 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>.
145 The default superuser name is <literal>admin</literal>. To change it, set
144 The default superuser name is <literal>admin</literal>. To change it, set
146 option <option>extraConfig.PAPERLESS_ADMIN_USER</option>.
145 option <option>extraConfig.PAPERLESS_ADMIN_USER</option>.
@@ -169,9 +168,9 @@ in
169 type = types.attrs;
168 type = types.attrs;
170 default = {};
169 default = {};
171 description = ''
170 description = ''
172− Extra paperless config options.
171+ Extra paperless-ng config options.
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>
175 for available options.
174 for available options.
177 example = literalExpression ''
176 example = literalExpression ''
@@ -189,14 +188,15 @@ in
190 package = mkOption {
189 package = mkOption {
191 type = types.package;
190 type = types.package;
192− default = pkgs.paperless-ngx;
191+ default = pkgs.paperless-ng;
193− defaultText = literalExpression "pkgs.paperless-ngx";
192+ defaultText = literalExpression "pkgs.paperless-ng";
194 description = "The Paperless package to use.";
193 description = "The Paperless package to use.";
198 config = mkIf cfg.enable {
197 config = mkIf cfg.enable {
198+ # Enable redis if no special url is set
199− services.redis.servers.paperless.enable = mkIf enableRedis true;
199+ services.redis.servers.paperless-ng.enable = mkIf (!hasCustomRedis) true;
201 systemd.tmpfiles.rules = [
201 systemd.tmpfiles.rules = [
202 "d '${cfg.dataDir}' - ${cfg.user} ${config.users.users.${cfg.user}.group} - -"
202 "d '${cfg.dataDir}' - ${cfg.user} ${config.users.users.${cfg.user}.group} - -"
@@ -208,11 +208,11 @@ in
211− systemd.services.paperless-scheduler = {
211+ systemd.services.paperless-ng-server = {
212− description = "Paperless scheduler";
212+ description = "Paperless document server";
213 serviceConfig = defaultServiceConfig // {
213 serviceConfig = defaultServiceConfig // {
214 User = cfg.user;
214 User = cfg.user;
215− ExecStart = "${cfg.package}/bin/paperless-ngx qcluster";
215+ ExecStart = "${cfg.package}/bin/paperless-ng qcluster";
216 Restart = "on-failure";
216 Restart = "on-failure";
217 # The `mbind` syscall is needed for running the classifier.
217 # The `mbind` syscall is needed for running the classifier.
218 SystemCallFilter = defaultServiceConfig.SystemCallFilter ++ [ "mbind" ];
218 SystemCallFilter = defaultServiceConfig.SystemCallFilter ++ [ "mbind" ];
@@ -221,15 +221,15 @@ in
222 environment = env;
222 environment = env;
223 wantedBy = [ "multi-user.target" ];
223 wantedBy = [ "multi-user.target" ];
224− wants = [ "paperless-consumer.service" "paperless-web.service" ];
224+ wants = [ "paperless-ng-consumer.service" "paperless-ng-web.service" ];
226 preStart = ''
226 preStart = ''
227− ln -sf ${manage} ${cfg.dataDir}/paperless-manage
227+ ln -sf ${manage} ${cfg.dataDir}/paperless-ng-manage
229 # Auto-migrate on first run or if the package has changed
229 # Auto-migrate on first run or if the package has changed
230 versionFile="${cfg.dataDir}/src-version"
230 versionFile="${cfg.dataDir}/src-version"
231 if [[ $(cat "$versionFile" 2>/dev/null) != ${cfg.package} ]]; then
231 if [[ $(cat "$versionFile" 2>/dev/null) != ${cfg.package} ]]; then
232− ${cfg.package}/bin/paperless-ngx migrate
232+ ${cfg.package}/bin/paperless-ng migrate
233 echo ${cfg.package} > "$versionFile"
233 echo ${cfg.package} > "$versionFile"
@@ -240,18 +240,20 @@ in
240 superuserStateFile="${cfg.dataDir}/superuser-state"
240 superuserStateFile="${cfg.dataDir}/superuser-state"
242 if [[ $(cat "$superuserStateFile" 2>/dev/null) != $superuserState ]]; then
242 if [[ $(cat "$superuserStateFile" 2>/dev/null) != $superuserState ]]; then
243− ${cfg.package}/bin/paperless-ngx manage_superuser
243+ ${cfg.package}/bin/paperless-ng manage_superuser
244 echo "$superuserState" > "$superuserStateFile"
244 echo "$superuserState" > "$superuserStateFile"
247− } // optionalAttrs enableRedis {
247+ } // optionalAttrs (!hasCustomRedis) {
248− after = [ "redis-paperless.service" ];
248+ after = [ "redis-paperless-ng.service" ];
251− # Reading the user-provided password file requires root access
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.
252− systemd.services.paperless-copy-password = mkIf (cfg.passwordFile != null) {
254+ systemd.services.paperless-ng-copy-password = mkIf (cfg.passwordFile != null) {
253− requiredBy = [ "paperless-scheduler.service" ];
255+ requiredBy = [ "paperless-ng-server.service" ];
254− before = [ "paperless-scheduler.service" ];
256+ before = [ "paperless-ng-server.service" ];
255 serviceConfig = {
257 serviceConfig = {
256 ExecStart = ''
258 ExecStart = ''
257 ${pkgs.coreutils}/bin/install --mode 600 --owner '${cfg.user}' --compare \
259 ${pkgs.coreutils}/bin/install --mode 600 --owner '${cfg.user}' --compare \
@@ -261,27 +263,27 @@ in
264− systemd.services.paperless-consumer = {
266+ systemd.services.paperless-ng-consumer = {
265 description = "Paperless document consumer";
267 description = "Paperless document consumer";
266 serviceConfig = defaultServiceConfig // {
268 serviceConfig = defaultServiceConfig // {
267 User = cfg.user;
269 User = cfg.user;
268− ExecStart = "${cfg.package}/bin/paperless-ngx document_consumer";
270+ ExecStart = "${cfg.package}/bin/paperless-ng document_consumer";
269 Restart = "on-failure";
271 Restart = "on-failure";
271 environment = env;
273 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
273 # during migrations
275 # during migrations
274− bindsTo = [ "paperless-scheduler.service" ];
276+ bindsTo = [ "paperless-ng-server.service" ];
275− after = [ "paperless-scheduler.service" ];
277+ after = [ "paperless-ng-server.service" ];
278− systemd.services.paperless-web = {
280+ systemd.services.paperless-ng-web = {
279 description = "Paperless web server";
281 description = "Paperless web server";
280 serviceConfig = defaultServiceConfig // {
282 serviceConfig = defaultServiceConfig // {
281 User = cfg.user;
283 User = cfg.user;
282 ExecStart = ''
284 ExecStart = ''
283 ${pkgs.python3Packages.gunicorn}/bin/gunicorn \
285 ${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
286 Restart = "on-failure";
288 Restart = "on-failure";
@@ -294,15 +296,15 @@ in
295 environment = env // {
297 environment = env // {
296 PATH = mkForce cfg.package.path;
298 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";
299 # Allow the web interface to access the private /tmp directory of the server.
301 # Allow the web interface to access the private /tmp directory of the server.
300 # This is required to support uploading files via the web interface.
302 # This is required to support uploading files via the web interface.
301− unitConfig.JoinsNamespaceOf = "paperless-scheduler.service";
303+ unitConfig.JoinsNamespaceOf = "paperless-ng-server.service";
302− # Bind to `paperless-scheduler` so that the web server never runs
304+ # Bind to `paperless-ng-server` so that the web server never runs
303 # during migrations
305 # during migrations
304− bindsTo = [ "paperless-scheduler.service" ];
306+ bindsTo = [ "paperless-ng-server.service" ];
305− after = [ "paperless-scheduler.service" ];
307+ after = [ "paperless-ng-server.service" ];
308 users = optionalAttrs (cfg.user == defaultUser) {
310 users = optionalAttrs (cfg.user == defaultUser) {
nixos/modules/services/misc/sourcehut/default.nix+1−1
@@ -1018,7 +1018,7 @@ in
1018 inherit configIniOfService;
1018 inherit configIniOfService;
1019 mainService = mkMerge [ baseService {
1019 mainService = mkMerge [ baseService {
1020 serviceConfig.StateDirectory = [ "sourcehut/gitsrht" "sourcehut/gitsrht/repos" ];
1020 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 ''
1022 # Fix Git hooks of repositories pre-dating https://github.com/NixOS/nixpkgs/pull/133984
1022 # Fix Git hooks of repositories pre-dating https://github.com/NixOS/nixpkgs/pull/133984
nixos/modules/services/misc/taskserver/default.nix+6−10
@@ -106,7 +106,7 @@ let
107 certtool = "${pkgs.gnutls.bin}/bin/certtool";
107 certtool = "${pkgs.gnutls.bin}/bin/certtool";
109− nixos-taskserver = with pkgs.python3.pkgs; buildPythonApplication {
109+ nixos-taskserver = with pkgs.python2.pkgs; buildPythonApplication {
110 name = "nixos-taskserver";
110 name = "nixos-taskserver";
112 src = pkgs.runCommand "nixos-taskserver-src" { preferLocalBuild = true; } ''
112 src = pkgs.runCommand "nixos-taskserver-src" { preferLocalBuild = true; } ''
@@ -277,6 +277,10 @@ in {
277 example = "::";
277 example = "::";
278 description = ''
278 description = ''
279 The address (IPv4, IPv6 or DNS) to listen on.
279 The address (IPv4, IPv6 or DNS) to listen on.
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>.
@@ -288,14 +292,6 @@ in {
291− openFirewall = mkOption {
295− Whether to open the firewall for the specified Taskserver port.
299 fqdn = mkOption {
295 fqdn = mkOption {
300 type = types.str;
296 type = types.str;
301 default = "localhost";
297 default = "localhost";
@@ -564,7 +560,7 @@ in {
567− (mkIf (cfg.enable && cfg.openFirewall) {
563+ (mkIf (cfg.enable && cfg.listenHost != "localhost") {
568 networking.firewall.allowedTCPPorts = [ cfg.listenPort ];
564 networking.firewall.allowedTCPPorts = [ cfg.listenPort ];
nixos/modules/services/misc/taskserver/helper-tool.py+5−5
@@ -90,7 +90,7 @@ def certtool_cmd(*args, **kwargs):
91 return subprocess.check_output(
91 return subprocess.check_output(
92 [CERTTOOL_COMMAND] + list(args),
92 [CERTTOOL_COMMAND] + list(args),
93− preexec_fn=lambda: os.umask(0o077),
93+ preexec_fn=lambda: os.umask(0077),
94 stderr=subprocess.STDOUT,
94 stderr=subprocess.STDOUT,
@@ -164,7 +164,7 @@ def generate_key(org, user):
164 pubcert = os.path.join(basedir, "public.cert")
164 pubcert = os.path.join(basedir, "public.cert")
167− os.makedirs(basedir, mode=0o700)
167+ os.makedirs(basedir, mode=0700)
169 certtool_cmd("-p", "--bits", CERT_BITS, "--outfile", privkey)
169 certtool_cmd("-p", "--bits", CERT_BITS, "--outfile", privkey)
@@ -301,7 +301,7 @@ class Organisation(object):
301 return None
301 return None
302 if name not in self.users.keys():
302 if name not in self.users.keys():
303 output = taskd_cmd("add", "user", self.name, name,
303 output = taskd_cmd("add", "user", self.name, name,
304− capture_stdout=True, encoding='utf-8')
304+ capture_stdout=True)
305 key = RE_USERKEY.search(output)
305 key = RE_USERKEY.search(output)
306 if key is None:
306 if key is None:
307 msg = "Unable to find key while creating user {}."
307 msg = "Unable to find key while creating user {}."
@@ -412,9 +412,9 @@ class Manager(object):
412 if org is not None:
412 if org is not None:
413 if self.ignore_imperative and is_imperative(name):
413 if self.ignore_imperative and is_imperative(name):
415− for user in list(org.users.keys()):
415+ for user in org.users.keys():
416 org.del_user(user)
416 org.del_user(user)
417− for group in list(org.groups.keys()):
417+ for group in org.groups.keys():
418 org.del_group(group)
418 org.del_group(group)
419 taskd_cmd("remove", "org", name)
419 taskd_cmd("remove", "org", name)
420 del self._lazy_orgs[name]
420 del self._lazy_orgs[name]
nixos/modules/services/misc/zookeeper.nix+1−8
@@ -114,13 +114,6 @@ in {
114 type = types.package;
114 type = types.package;
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;
@@ -138,7 +131,7 @@ in {
138 after = [ "network.target" ];
131 after = [ "network.target" ];
139 serviceConfig = {
132 serviceConfig = {
140 ExecStart = ''
133 ExecStart = ''
141− ${cfg.jre}/bin/java \
134+ ${pkgs.jre}/bin/java \
142 -cp "${cfg.package}/lib/*:${configDir}" \
135 -cp "${cfg.package}/lib/*:${configDir}" \
143 ${escapeShellArgs cfg.extraCmdLineOptions} \
136 ${escapeShellArgs cfg.extraCmdLineOptions} \
144 -Dzookeeper.datadir.autocreate=false \
137 -Dzookeeper.datadir.autocreate=false \
nixos/modules/services/monitoring/mimir.nixdeleted−63
@@ -1,63 +0,0 @@
1−{ config, lib, pkgs, ... }:
4− inherit (lib) escapeShellArgs mkEnableOption mkIf mkOption types;
6− cfg = config.services.mimir;
8− settingsFormat = pkgs.formats.yaml {};
10− options.services.mimir = {
11− enable = mkEnableOption "mimir";
13− configuration = mkOption {
14− type = (pkgs.formats.json {}).type;
17− Specify the configuration for Mimir in Nix.
21− configFile = mkOption {
22− type = types.nullOr types.path;
25− Specify a configuration file that Mimir should use.
30− config = mkIf cfg.enable {
33− (cfg.configuration == {} -> cfg.configFile != null) &&
34− (cfg.configFile != null -> cfg.configuration == {})
37− Please specify either
38− 'services.mimir.configuration' or
39− 'services.mimir.configFile'.
43− systemd.services.mimir = {
44− description = "mimir Service Daemon";
45− wantedBy = [ "multi-user.target" ];
48− conf = if cfg.configFile == null
49− then settingsFormat.generate "config.yaml" cfg.configuration
53− ExecStart = "${pkgs.grafana-mimir}/bin/mimir --config.file=${conf}";
56− ProtectSystem = "full";
57− DevicePolicy = "closed";
58− NoNewPrivileges = true;
59− StateDirectory = "mimir";
nixos/modules/services/monitoring/nagios.nix+2−2
@@ -102,8 +102,8 @@ in
103 plugins = mkOption {
103 plugins = mkOption {
104 type = types.listOf types.package;
104 type = types.listOf types.package;
105− default = with pkgs; [ monitoring-plugins msmtp mailutils ];
105+ default = with pkgs; [ monitoring-plugins ssmtp mailutils ];
106− defaultText = literalExpression "[pkgs.monitoring-plugins pkgs.msmtp pkgs.mailutils]";
106+ defaultText = literalExpression "[pkgs.monitoring-plugins pkgs.ssmtp pkgs.mailutils]";
107 description = "
107 description = "
108 Packages to be added to the Nagios <envar>PATH</envar>.
108 Packages to be added to the Nagios <envar>PATH</envar>.
109 Typically used to add plugins, but can be anything.
109 Typically used to add plugins, but can be anything.
nixos/modules/services/monitoring/prometheus/default.nix+9−2
@@ -74,6 +74,7 @@ let
75 "--web.listen-address=${cfg.listenAddress}:${builtins.toString cfg.port}"
75 "--web.listen-address=${cfg.listenAddress}:${builtins.toString cfg.port}"
76 "--alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
76 "--alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
77+ "--alertmanager.timeout=${toString cfg.alertmanagerTimeout}s"
77 ] ++ optional (cfg.webExternalUrl != null) "--web.external-url=${cfg.webExternalUrl}"
78 ] ++ optional (cfg.webExternalUrl != null) "--web.external-url=${cfg.webExternalUrl}"
78 ++ optional (cfg.retentionTime != null) "--storage.tsdb.retention.time=${cfg.retentionTime}";
79 ++ optional (cfg.retentionTime != null) "--storage.tsdb.retention.time=${cfg.retentionTime}";
@@ -1562,8 +1563,6 @@ in
1562 (mkRenamedOptionModule [ "services" "prometheus2" ] [ "services" "prometheus" ])
1563 (mkRenamedOptionModule [ "services" "prometheus2" ] [ "services" "prometheus" ])
1563 (mkRemovedOptionModule [ "services" "prometheus" "environmentFile" ]
1564 (mkRemovedOptionModule [ "services" "prometheus" "environmentFile" ]
1564 "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 "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")
1569 options.services.prometheus = {
1568 options.services.prometheus = {
@@ -1720,6 +1719,14 @@ in
1722+ alertmanagerTimeout = mkOption {
1726+ Alert manager HTTP API timeout (in seconds).
1723 webExternalUrl = mkOption {
1730 webExternalUrl = mkOption {
1724 type = types.nullOr types.str;
1731 type = types.nullOr types.str;
1725 default = null;
1732 default = null;
nixos/modules/services/monitoring/prometheus/exporters.xml−21
@@ -19,7 +19,6 @@
19<programlisting>
19<programlisting>
20 services.prometheus.exporters.node = {
20 services.prometheus.exporters.node = {
21 enable = true;
21 enable = true;
23 enabledCollectors = [
22 enabledCollectors = [
@@ -43,26 +42,6 @@
43 <link xlink:href="https://nixos.org/nixos/options.html#prometheus.exporters">available
42 <link xlink:href="https://nixos.org/nixos/options.html#prometheus.exporters">available
44 options</link>.
43 options</link>.
48− Prometheus can now be configured to consume the metrics produced by the exporter:
50− services.prometheus = {
57− targets = [ "localhost:${toString config.services.prometheus.exporters.node.port}" ];
66 </section>
45 </section>
67 <section xml:id="module-services-prometheus-exporters-new-exporter">
46 <section xml:id="module-services-prometheus-exporters-new-exporter">
68 <title>Adding a new exporter</title>
47 <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, ... }:
4 cfg = config.services.ipfs;
4 cfg = config.services.ipfs;
5+ opt = options.services.ipfs;
6 ipfsFlags = utils.escapeSystemdExecArgs (
7 ipfsFlags = utils.escapeSystemdExecArgs (
7 optional cfg.autoMount "--mount" ++
8 optional cfg.autoMount "--mount" ++
@@ -254,15 +255,15 @@ in
255 # 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.
256 # 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.
256 rm -vf "$IPFS_PATH/api"
257 rm -vf "$IPFS_PATH/api"
257− '' + optionalString cfg.autoMigrate ''
258+
258− ${pkgs.ipfs-migrator}/bin/fs-repo-migrations -to '${cfg.package.repoVersion}' -y
260 ipfs --offline config profile apply ${profile}
259 ipfs --offline config profile apply ${profile}
262 '' + optionalString cfg.autoMount ''
261 '' + optionalString cfg.autoMount ''
263 ipfs --offline config Mounts.FuseAllowOther --json true
262 ipfs --offline config Mounts.FuseAllowOther --json true
264 ipfs --offline config Mounts.IPFS ${cfg.ipfsMountDir}
263 ipfs --offline config Mounts.IPFS ${cfg.ipfsMountDir}
265 ipfs --offline config Mounts.IPNS ${cfg.ipnsMountDir}
264 ipfs --offline config Mounts.IPNS ${cfg.ipnsMountDir}
265+ '' + optionalString cfg.autoMigrate ''
266+ ${pkgs.ipfs-migrator}/bin/fs-repo-migrations -to '${cfg.package.repoVersion}' -y
267 ipfs --offline config show \
268 ipfs --offline config show \
268 | ${pkgs.jq}/bin/jq '. * $extraConfig' --argjson extraConfig ${
269 | ${pkgs.jq}/bin/jq '. * $extraConfig' --argjson extraConfig ${
@@ -315,9 +316,6 @@ in
316 [ "" "%t/ipfs.sock" ] ++ lib.optional (fromCfg != null) fromCfg;
317 [ "" "%t/ipfs.sock" ] ++ lib.optional (fromCfg != null) fromCfg;
321− maintainers = with lib.maintainers; [ Luflosi ];
nixos/modules/services/networking/asterisk.nix+43−11
@@ -14,9 +14,28 @@ let
15 # Add filecontents from files of useTheseDefaultConfFiles to confFiles, do not override
15 # Add filecontents from files of useTheseDefaultConfFiles to confFiles, do not override
16 defaultConfFiles = subtractLists (attrNames cfg.confFiles) cfg.useTheseDefaultConfFiles;
16 defaultConfFiles = subtractLists (attrNames cfg.confFiles) cfg.useTheseDefaultConfFiles;
17− allConfFiles = {
17+ allConfFiles =
19+ builtins.listToAttrs (map (x: { name = x;
20+ value = builtins.readFile (cfg.package + "/etc/asterisk/" + x); })
23+ asteriskEtc = pkgs.stdenv.mkDerivation
24+ ((mapAttrs' (name: value: nameValuePair
25+ # Fudge the names to make bash happy
26+ ((replaceChars ["."] ["_"] name) + "_")
30+ confFilesString = concatStringsSep " " (
31+ attrNames allConfFiles
34+ name = "asterisk-etc";
18 # Default asterisk.conf file
36 # Default asterisk.conf file
19− "asterisk.conf".text = ''
37+ # (Notice that astetcdir will be set to the path of this derivation)
20 [directories]
39 [directories]
21 astetcdir => /etc/asterisk
40 astetcdir => /etc/asterisk
22 astmoddir => ${cfg.package}/lib/asterisk/modules
41 astmoddir => ${cfg.package}/lib/asterisk/modules
@@ -29,28 +48,43 @@ let
29 astrundir => /run/asterisk
48 astrundir => /run/asterisk
30 astlogdir => /var/log/asterisk
49 astlogdir => /var/log/asterisk
31 astsbindir => ${cfg.package}/sbin
50 astsbindir => ${cfg.package}/sbin
52+ extraConf = cfg.extraConfig;
35 # Loading all modules by default is considered sensible by the authors of
54 # Loading all modules by default is considered sensible by the authors of
36 # "Asterisk: The Definitive Guide". Secure sites will likely want to
55 # "Asterisk: The Definitive Guide". Secure sites will likely want to
37 # specify their own "modules.conf" in the confFiles option.
56 # specify their own "modules.conf" in the confFiles option.
38− "modules.conf".text = ''
57+ modulesConf = ''
40 autoload=yes
59 autoload=yes
43 # Use syslog for logging so logs can be viewed with journalctl
62 # Use syslog for logging so logs can be viewed with journalctl
44− "logger.conf".text = ''
63+ loggerConf = ''
47 [logfiles]
66 [logfiles]
48 syslog.local0 => notice,warning,error
67 syslog.local0 => notice,warning,error
51− mapAttrs (name: text: { inherit text; }) cfg.confFiles //
52− listToAttrs (map (x: nameValuePair x { source = cfg.package + "/etc/asterisk/" + x; }) defaultConfFiles);
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
77+ echo "$modulesConf" > "$out"/modules.conf
79+ echo "$loggerConf" > "$out"/logger.conf
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"
@@ -175,9 +209,7 @@ in
175 config = mkIf cfg.enable {
209 config = mkIf cfg.enable {
176 environment.systemPackages = [ cfg.package ];
210 environment.systemPackages = [ cfg.package ];
178− environment.etc = mapAttrs' (name: value:
212+ environment.etc.asterisk.source = asteriskEtc;
179− nameValuePair "asterisk/${name}" value
182 users.users.asterisk =
214 users.users.asterisk =
183 { name = asteriskUser;
215 { name = asteriskUser;
nixos/modules/services/networking/bird.nix+2−1
@@ -68,7 +68,8 @@ in
68 systemd.services.bird2 = {
68 systemd.services.bird2 = {
69 description = "BIRD Internet Routing Daemon";
69 description = "BIRD Internet Routing Daemon";
70 wantedBy = [ "multi-user.target" ];
70 wantedBy = [ "multi-user.target" ];
71+ reloadIfChanged = true;
71− reloadTriggers = [ config.environment.etc."bird/bird2.conf".source ];
72+ restartTriggers = [ config.environment.etc."bird/bird2.conf".source ];
72 serviceConfig = {
73 serviceConfig = {
73 Type = "forking";
74 Type = "forking";
74 Restart = "on-failure";
75 Restart = "on-failure";
nixos/modules/services/networking/cloudflare-dyndns.nixdeleted−93
@@ -1,93 +0,0 @@
1−{ config, pkgs, lib, ... }:
6− cfg = config.services.cloudflare-dyndns;
10− services.cloudflare-dyndns = {
11− enable = mkEnableOption "Cloudflare Dynamic DNS Client";
13− apiTokenFile = mkOption {
14− type = types.nullOr types.str;
17− The path to a file containing the CloudFlare API token.
19− The file must have the form `CLOUDFLARE_API_TOKEN=...`
24− type = types.listOf types.str;
27− List of domain names to update records for.
35− Whether this is a DNS-only record, or also being proxied through CloudFlare.
43− Whether to enable setting IPv4 A records.
51− Whether to enable setting IPv6 AAAA records.
55− deleteMissing = mkOption {
59− Whether to delete the record when no IP address is found.
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" ];
73− CLOUDFLARE_DOMAINS = toString cfg.domains;
79− StateDirectory = "cloudflare-dyndns";
80− EnvironmentFile = cfg.apiTokenFile;
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";
89− "${pkgs.cloudflare-dyndns}/bin/cloudflare-dyndns ${toString args}";
nixos/modules/services/networking/consul.nix+6−32
@@ -80,21 +80,13 @@ in
80 The name of the interface to pull the bind_addr from.
80 The name of the interface to pull the bind_addr from.
85− forceAddrFamily = mkOption {
86− type = types.enum [ "any" "ipv4" "ipv6" ];
89− Whether to bind ipv4/ipv6 or both kind of addresses.
93 forceIpv4 = mkOption {
86 forceIpv4 = mkOption {
94− type = types.nullOr types.bool;
87+ type = types.bool;
95− default = null;
88+ default = false;
96 description = ''
89 description = ''
97− Deprecated: Use consul.forceAddrFamily instead.
98 Whether we should force the interfaces to only pull ipv4 addresses.
90 Whether we should force the interfaces to only pull ipv4 addresses.
@@ -183,13 +175,6 @@ in
183 systemPackages = [ cfg.package ];
175 systemPackages = [ cfg.package ];
186− warnings = lib.flatten [
187− (lib.optional (cfg.forceIpv4 != null) ''
188− The option consul.forceIpv4 is deprecated, please use
189− consul.forceAddrFamily instead.
193 systemd.services.consul = {
178 systemd.services.consul = {
194 wantedBy = [ "multi-user.target" ];
179 wantedBy = [ "multi-user.target" ];
195 after = [ "network.target" ] ++ systemdDevices;
180 after = [ "network.target" ] ++ systemdDevices;
@@ -211,21 +196,15 @@ in
213 path = with pkgs; [ iproute2 gnugrep gawk consul ];
198 path = with pkgs; [ iproute2 gnugrep gawk consul ];
214− preStart = let
199+ preStart = ''
215− family = if cfg.forceAddrFamily == "ipv6" then
217− else if cfg.forceAddrFamily == "ipv4" then
222 mkdir -m 0700 -p ${dataDir}
200 mkdir -m 0700 -p ${dataDir}
223 chown -R consul ${dataDir}
201 chown -R consul ${dataDir}
225 # Determine interface addresses
203 # Determine interface addresses
226 getAddrOnce () {
204 getAddrOnce () {
227− ip ${family} addr show dev "$1" scope global \
205+ ip addr show dev "$1" \
206+ | grep 'inet${optionalString (cfg.forceIpv4) " "}.*scope global' \
228− | awk -F '[ /\t]*' '/inet/ {print $3}' | head -n 1
207+ | awk -F '[ /\t]*' '{print $3}' | head -n 1
230 getAddr () {
209 getAddr () {
231 ADDR="$(getAddrOnce $1)"
210 ADDR="$(getAddrOnce $1)"
@@ -255,11 +234,6 @@ in
259− (mkIf (cfg.forceIpv4 != null && cfg.forceIpv4) {
260− services.consul.forceAddrFamily = "ipv4";
263 (mkIf (cfg.alerts.enable) {
237 (mkIf (cfg.alerts.enable) {
264 systemd.services.consul-alerts = {
238 systemd.services.consul-alerts = {
265 wantedBy = [ "multi-user.target" ];
239 wantedBy = [ "multi-user.target" ];
nixos/modules/services/networking/create_ap.nixdeleted−50
@@ -1,50 +0,0 @@
1−{ config, lib, pkgs, ... }:
6− cfg = config.services.create_ap;
7− configFile = pkgs.writeText "create_ap.conf" (generators.toKeyValue { } cfg.settings);
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 ]);
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.
21− INTERNET_IFACE = "eth0";
22− WIFI_IFACE = "wlan0";
23− SSID = "My Wifi Hotspot";
24− PASSPHRASE = "12345678";
30− config = mkIf cfg.enable {
33− services.create_ap = {
34− wantedBy = [ "multi-user.target" ];
35− description = "Create AP Service";
36− after = [ "network.target" ];
37− restartTriggers = [ configFile ];
39− ExecStart = "${pkgs.linux-wifi-hotspot}/bin/create_ap --config ${configFile}";
40− KillSignal = "SIGINT";
41− Restart = "on-failure";
48− meta.maintainers = with lib.maintainers; [ onny ];
nixos/modules/services/networking/headscale.nix+1−1
@@ -479,7 +479,7 @@ in
479 NoNewPrivileges = true;
479 NoNewPrivileges = true;
480 LockPersonality = true;
480 LockPersonality = true;
481 RestrictRealtime = true;
481 RestrictRealtime = true;
482− SystemCallFilter = [ "@system-service" "~@privileged" "@chown" ];
482+ SystemCallFilter = [ "@system-service" "~@priviledged" "@chown" ];
483 SystemCallArchitectures = "native";
483 SystemCallArchitectures = "native";
484 RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX";
484 RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX";
nixos/modules/services/networking/nbd.nix+15−28
@@ -4,34 +4,28 @@ with lib;
6 cfg = config.services.nbd;
6 cfg = config.services.nbd;
7+ configFormat = pkgs.formats.ini { };
7 iniFields = with types; attrsOf (oneOf [ bool int float str ]);
8 iniFields = with types; attrsOf (oneOf [ bool int float str ]);
8− # The `[generic]` section must come before all the others in the
9+ serverConfig = configFormat.generate "nbd-server-config"
9− # config file. This means we can't just dump an attrset to INI
10+ ({
10− # because that sorts the sections by name. Instead, we serialize it
11+ generic =
13− generic = (cfg.server.extraOptions // {
12+ (cfg.server.extraOptions // {
14− user = "root";
13+ user = "root";
15− group = "root";
14+ group = "root";
16− port = cfg.server.listenPort;
15+ port = cfg.server.listenPort;
17− } // (optionalAttrs (cfg.server.listenAddress != null) {
16+ } // (optionalAttrs (cfg.server.listenAddress != null) {
18− listenaddr = cfg.server.listenAddress;
17+ listenaddr = cfg.server.listenAddress;
22− mapAttrs
20+ // (mapAttrs
23 (_: { path, allowAddresses, extraOptions }:
21 (_: { path, allowAddresses, extraOptions }:
24 extraOptions // {
22 extraOptions // {
25 exportname = path;
23 exportname = path;
26 } // (optionalAttrs (allowAddresses != null) {
24 } // (optionalAttrs (allowAddresses != null) {
27 authfile = pkgs.writeText "authfile" (concatStringsSep "\n" allowAddresses);
25 authfile = pkgs.writeText "authfile" (concatStringsSep "\n" allowAddresses);
29− cfg.server.exports;
27+ cfg.server.exports)
31− pkgs.writeText "nbd-server-config" ''
32− ${lib.generators.toINI {} genericSection}
33− ${lib.generators.toINI {} exportSections}
35 splitLists =
29 splitLists =
37 (path: hasPrefix "/dev/" path)
31 (path: hasPrefix "/dev/" path)
@@ -109,13 +103,6 @@ in
111 config = mkIf cfg.server.enable {
105 config = mkIf cfg.server.enable {
114− assertion = !(cfg.server.exports ? "generic");
115− message = "services.nbd.server exports must not be named 'generic'";
119 boot.kernelModules = [ "nbd" ];
106 boot.kernelModules = [ "nbd" ];
121 systemd.services.nbd-server = {
108 systemd.services.nbd-server = {
nixos/modules/services/networking/ncdns.nix+2−2
@@ -58,7 +58,7 @@ in
59 address = mkOption {
59 address = mkOption {
60 type = types.str;
60 type = types.str;
61− default = "[::1]";
61+ default = "127.0.0.1";
62 description = ''
62 description = ''
63 The IP address the ncdns resolver will bind to. Leave this unchanged
63 The IP address the ncdns resolver will bind to. Leave this unchanged
64 if you do not wish to directly expose the resolver.
64 if you do not wish to directly expose the resolver.
@@ -202,7 +202,7 @@ in
202 config = mkIf cfg.enable {
202 config = mkIf cfg.enable {
204 services.pdns-recursor = mkIf cfgs.pdns-recursor.resolveNamecoin {
204 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}";
206 luaConfig =
206 luaConfig =
207 if cfg.dnssec.enable
207 if cfg.dnssec.enable
208 then ''readTrustAnchorsFromFile("${cfg.dnssec.keys.public}")''
208 then ''readTrustAnchorsFromFile("${cfg.dnssec.keys.public}")''
nixos/modules/services/networking/networkmanager.nix+53−56
@@ -5,6 +5,18 @@ with lib;
6 cfg = config.networking.networkmanager;
6 cfg = config.networking.networkmanager;
8+ basePackages = with pkgs; [
11+ networkmanager-fortisslvpn
12+ networkmanager-iodine
14+ networkmanager-openconnect
15+ networkmanager-openvpn
18+ ] ++ optional (!delegateWireless && !enableIwd) wpa_supplicant;
8 delegateWireless = config.networking.wireless.enable == true && cfg.unmanaged != [];
20 delegateWireless = config.networking.wireless.enable == true && cfg.unmanaged != [];
10 enableIwd = cfg.wifi.backend == "iwd";
22 enableIwd = cfg.wifi.backend == "iwd";
@@ -133,15 +145,6 @@ let
141− ++ lib.optionals (!delegateWireless && !enableIwd) [
@@ -224,33 +227,17 @@ in {
227− plugins = mkOption {
230+ packages = mkOption {
228− type =
231+ type = types.listOf types.package;
230− networkManagerPluginPackage = types.package // {
231− description = "NetworkManager plug-in";
235− (types.package.check p
236− && p ? networkManagerPlugin
237− && lib.isString p.networkManagerPlugin)
239− Package ‘${p.name}’, is not a NetworkManager plug-in.
240− Those need to have a ‘networkManagerPlugin’ attribute.
244− types.listOf networkManagerPluginPackage;
245 default = [ ];
232 default = [ ];
246 description = ''
233 description = ''
247− List of NetworkManager plug-ins to enable.
234+ Extra packages that provide NetworkManager plugins.
248− Some plug-ins are enabled by the NetworkManager module by default.
236+ apply = list: basePackages ++ list;
252 dhcp = mkOption {
239 dhcp = mkOption {
253− type = types.enum [ "dhcpcd" "internal" ];
240+ type = types.enum [ "dhclient" "dhcpcd" "internal" ];
254 default = "internal";
241 default = "internal";
255 description = ''
242 description = ''
256 Which program (or internal library) should be used for DHCP.
243 Which program (or internal library) should be used for DHCP.
@@ -393,7 +380,7 @@ in {
393 </para><para>
380 </para><para>
394 If you enable this option the
381 If you enable this option the
395 <literal>networkmanager_strongswan</literal> plugin will be added to
382 <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
397 so you don't need to to that yourself.
384 so you don't need to to that yourself.
@@ -412,9 +399,6 @@ in {
414 imports = [
401 imports = [
415− (mkRenamedOptionModule
416− [ "networking" "networkmanager" "packages" ]
417− [ "networking" "networkmanager" "plugins" ])
418 (mkRenamedOptionModule [ "networking" "networkmanager" "useDnsmasq" ] [ "networking" "networkmanager" "dns" ])
402 (mkRenamedOptionModule [ "networking" "networkmanager" "useDnsmasq" ] [ "networking" "networkmanager" "dns" ])
419 (mkRemovedOptionModule ["networking" "networkmanager" "dynamicHosts"] ''
403 (mkRemovedOptionModule ["networking" "networkmanager" "dynamicHosts"] ''
420 This option was removed because allowing (multiple) regular users to
404 This option was removed because allowing (multiple) regular users to
@@ -442,12 +426,31 @@ in {
443 hardware.wirelessRegulatoryDatabase = true;
427 hardware.wirelessRegulatoryDatabase = true;
445− environment.etc = {
429+ environment.etc = with pkgs; {
446− "NetworkManager/NetworkManager.conf".source = configFile;
430+ "NetworkManager/NetworkManager.conf".source = configFile;
432+ "NetworkManager/VPN/nm-openvpn-service.name".source =
433+ "${networkmanager-openvpn}/lib/NetworkManager/VPN/nm-openvpn-service.name";
435+ "NetworkManager/VPN/nm-vpnc-service.name".source =
436+ "${networkmanager-vpnc}/lib/NetworkManager/VPN/nm-vpnc-service.name";
438+ "NetworkManager/VPN/nm-openconnect-service.name".source =
439+ "${networkmanager-openconnect}/lib/NetworkManager/VPN/nm-openconnect-service.name";
441+ "NetworkManager/VPN/nm-fortisslvpn-service.name".source =
442+ "${networkmanager-fortisslvpn}/lib/NetworkManager/VPN/nm-fortisslvpn-service.name";
444+ "NetworkManager/VPN/nm-l2tp-service.name".source =
445+ "${networkmanager-l2tp}/lib/NetworkManager/VPN/nm-l2tp-service.name";
447+ "NetworkManager/VPN/nm-iodine-service.name".source =
448+ "${networkmanager-iodine}/lib/NetworkManager/VPN/nm-iodine-service.name";
450+ "NetworkManager/VPN/nm-sstp-service.name".source =
451+ "${networkmanager-sstp}/lib/NetworkManager/VPN/nm-sstp-service.name";
448− // builtins.listToAttrs (map (pkg: nameValuePair "NetworkManager/${pkg.networkManagerPlugin}" {
449− source = "${pkg}/lib/NetworkManager/${pkg.networkManagerPlugin}";
451 // optionalAttrs cfg.enableFccUnlock
454 // optionalAttrs cfg.enableFccUnlock
453 "ModemManager/fcc-unlock.d".source =
456 "ModemManager/fcc-unlock.d".source =
@@ -457,13 +460,18 @@ in {
458 "NetworkManager/dispatcher.d/02overridedns".source = overrideNameserversScript;
461 "NetworkManager/dispatcher.d/02overridedns".source = overrideNameserversScript;
463+ // optionalAttrs cfg.enableStrongSwan
465+ "NetworkManager/VPN/nm-strongswan-service.name".source =
466+ "${pkgs.networkmanager_strongswan}/lib/NetworkManager/VPN/nm-strongswan-service.name";
460 // listToAttrs (lib.imap1 (i: s:
468 // listToAttrs (lib.imap1 (i: s:
462 name = "NetworkManager/dispatcher.d/${dispatcherTypesSubdirMap.${s.type}}03userscript${lib.fixedWidthNumber 4 i}";
470 name = "NetworkManager/dispatcher.d/${dispatcherTypesSubdirMap.${s.type}}03userscript${lib.fixedWidthNumber 4 i}";
463 value = { mode = "0544"; inherit (s) source; };
471 value = { mode = "0544"; inherit (s) source; };
464 }) cfg.dispatcherScripts);
472 }) cfg.dispatcherScripts);
466− environment.systemPackages = packages;
474+ environment.systemPackages = cfg.packages;
468 users.groups = {
476 users.groups = {
469 networkmanager.gid = config.ids.gids.networkmanager;
477 networkmanager.gid = config.ids.gids.networkmanager;
@@ -482,13 +490,14 @@ in {
485− systemd.packages = packages;
493+ systemd.packages = cfg.packages;
487 systemd.tmpfiles.rules = [
495 systemd.tmpfiles.rules = [
488 "d /etc/NetworkManager/system-connections 0700 root root -"
496 "d /etc/NetworkManager/system-connections 0700 root root -"
489 "d /etc/ipsec.d 0700 root root -"
497 "d /etc/ipsec.d 0700 root root -"
490 "d /var/lib/NetworkManager-fortisslvpn 0700 root root -"
498 "d /var/lib/NetworkManager-fortisslvpn 0700 root root -"
500+ "d /var/lib/dhclient 0755 root root -"
492 "d /var/lib/misc 0755 root root -" # for dnsmasq.leases
501 "d /var/lib/misc 0755 root root -" # for dnsmasq.leases
@@ -525,20 +534,8 @@ in {
525 useDHCP = false;
534 useDHCP = false;
529− networkmanager.plugins = with pkgs; [
530− networkmanager-fortisslvpn
531− networkmanager-iodine
533− networkmanager-openconnect
534− networkmanager-openvpn
540 (mkIf cfg.enableStrongSwan {
537 (mkIf cfg.enableStrongSwan {
541− networkmanager.plugins = [ pkgs.networkmanager_strongswan ];
538+ networkmanager.packages = [ pkgs.networkmanager_strongswan ];
544 (mkIf enableIwd {
541 (mkIf enableIwd {
@@ -562,10 +559,10 @@ in {
562 security.polkit.enable = true;
559 security.polkit.enable = true;
563 security.polkit.extraConfig = polkitConf;
560 security.polkit.extraConfig = polkitConf;
565− services.dbus.packages = packages
562+ services.dbus.packages = cfg.packages
566 ++ optional cfg.enableStrongSwan pkgs.strongswanNM
563 ++ optional cfg.enableStrongSwan pkgs.strongswanNM
567 ++ optional (cfg.dns == "dnsmasq") pkgs.dnsmasq;
564 ++ optional (cfg.dns == "dnsmasq") pkgs.dnsmasq;
569− services.udev.packages = packages;
566+ services.udev.packages = cfg.packages;
nixos/modules/services/networking/openconnect.nixdeleted−137
@@ -1,137 +0,0 @@
1−{ config, lib, options, pkgs, ... }:
4− cfg = config.networking.openconnect;
5− openconnect = cfg.package;
6− pkcs11 = types.strMatching "pkcs11:.+" // {
8− description = "PKCS#11 URI";
13− description = "Gateway server to connect to.";
14− example = "gateway.example.com";
18− protocol = mkOption {
19− description = "Protocol to use.";
20− example = "anyconnect";
22− types.enum [ "anyconnect" "array" "nc" "pulse" "gp" "f5" "fortinet" ];
26− description = "Username to authenticate with.";
27− example = "example-user";
28− type = types.nullOr types.str;
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 {
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.
41− example = "/var/lib/secrets/openconnect-passwd";
42− type = types.nullOr types.path;
45− certificate = mkOption {
46− description = "Certificate to authenticate with.";
48− example = "/var/lib/secrets/openconnect_certificate.pem";
49− type = with types; nullOr (either path pkcs11);
52− privateKey = mkOption {
53− description = "Private key to authenticate with.";
54− example = "/var/lib/secrets/openconnect_private_key.pem";
56− type = with types; nullOr (either path pkcs11);
59− extraOptions = mkOption {
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>.
70− compression = "stateless";
72− no-http-keepalive = true;
75− type = with types; attrsOf (either str bool);
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" ''
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}"}
92− ${generateExtraConfig icfg.extraOptions}
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" ];
102− ExecStart = "${openconnect}/bin/openconnect --config=${
103− generateConfig name icfg
105− StandardInput = "file:${icfg.passwordFile}";
111− options.networking.openconnect = {
112− package = mkPackageOption pkgs "openconnect" { };
114− interfaces = mkOption {
115− description = "OpenConnect interfaces.";
119− gateway = "gateway.example.com";
120− protocol = "anyconnect";
121− user = "example-user";
122− passwordFile = "/var/lib/secrets/openconnect-passwd";
125− type = with types; attrsOf (submodule interfaceOptions);
130− systemd.services = mapAttrs' (name: value: {
131− name = "openconnect-${name}";
132− value = generateUnit name value;
136− meta.maintainers = with maintainers; [ alyaeanyx ];
nixos/modules/services/networking/pdns-recursor.nix+7−12
@@ -30,10 +30,10 @@ in {
30 enable = mkEnableOption "PowerDNS Recursor, a recursive DNS server";
30 enable = mkEnableOption "PowerDNS Recursor, a recursive DNS server";
32 dns.address = mkOption {
32 dns.address = mkOption {
33− type = oneOrMore types.str;
33+ type = types.str;
34− default = [ "::" "0.0.0.0" ];
34+ default = "0.0.0.0";
35 description = ''
35 description = ''
36− IP addresses Recursor DNS server will bind to.
36+ IP address Recursor DNS server will bind to.
@@ -47,12 +47,8 @@ in {
48 dns.allowFrom = mkOption {
48 dns.allowFrom = mkOption {
49 type = types.listOf types.str;
49 type = types.listOf types.str;
50− default = [
50+ default = [ "10.0.0.0/8" "172.16.0.0/12" "192.168.0.0/16" ];
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"
55− example = [ "0.0.0.0/0" "::/0" ];
51+ example = [ "0.0.0.0/0" ];
56 description = ''
52 description = ''
57 IP address ranges of clients allowed to make DNS queries.
53 IP address ranges of clients allowed to make DNS queries.
@@ -76,8 +72,7 @@ in {
77 api.allowFrom = mkOption {
73 api.allowFrom = mkOption {
78 type = types.listOf types.str;
74 type = types.listOf types.str;
79− default = [ "127.0.0.1" "::1" ];
75+ default = [ "0.0.0.0/0" ];
80− example = [ "0.0.0.0/0" "::/0" ];
81 description = ''
76 description = ''
82 IP address ranges of clients allowed to make API requests.
77 IP address ranges of clients allowed to make API requests.
@@ -101,7 +96,7 @@ in {
102 forwardZonesRecurse = mkOption {
97 forwardZonesRecurse = mkOption {
103 type = types.attrs;
98 type = types.attrs;
104− example = { eth = "[::1]:5353"; };
99+ example = { eth = "127.0.0.1:5353"; };
105 default = {};
100 default = {};
106 description = ''
101 description = ''
107 DNS zones to be forwarded to other recursive servers.
102 DNS zones to be forwarded to other recursive servers.
nixos/modules/services/networking/prosody.nix−1
@@ -820,7 +820,6 @@ in
820 '') cfg.muc}
820 '') cfg.muc}
822 ${ lib.optionalString (cfg.uploadHttp != null) ''
822 ${ lib.optionalString (cfg.uploadHttp != null) ''
823− -- TODO: think about migrating this to mod-http_file_share instead.
824 Component ${toLua cfg.uploadHttp.domain} "http_upload"
823 Component ${toLua cfg.uploadHttp.domain} "http_upload"
825 http_upload_file_size_limit = ${cfg.uploadHttp.uploadFileSizeLimit}
824 http_upload_file_size_limit = ${cfg.uploadHttp.uploadFileSizeLimit}
826 http_upload_expire_after = ${cfg.uploadHttp.uploadExpireAfter}
825 http_upload_expire_after = ${cfg.uploadHttp.uploadExpireAfter}
nixos/modules/services/networking/shellhub-agent.nix+17−26
@@ -1,37 +1,31 @@
1{ config, lib, pkgs, ... }:
1{ config, lib, pkgs, ... }:
6 cfg = config.services.shellhub-agent;
5 cfg = config.services.shellhub-agent;
9 ###### interface
8 ###### interface
11 options = {
10 options = {
13 services.shellhub-agent = {
12 services.shellhub-agent = {
15− enable = mkEnableOption "ShellHub Agent daemon";
17− package = mkPackageOption pkgs "shellhub-agent" { };
19− preferredHostname = mkOption {
14+ enable = mkOption {
20− type = types.str;
15+ type = types.bool;
21− default = "";
16+ default = false;
22 description = ''
17 description = ''
23− Set the device preferred hostname. This provides a hint to
18+ Whether to enable the ShellHub Agent daemon, which allows
24− the server to use this as hostname if it is available.
19+ secure remote logins.
28− keepAliveInterval = mkOption {
23+ package = mkOption {
29− type = types.int;
24+ type = types.package;
30− default = 30;
25+ default = pkgs.shellhub-agent;
26+ defaultText = literalExpression "pkgs.shellhub-agent";
31 description = ''
27 description = ''
32− Determine the interval to send the keep alive message to
28+ Which ShellHub Agent package to use.
33− the server. This has a direct impact of the bandwidth
@@ -80,13 +74,9 @@ in
80 "time-sync.target"
74 "time-sync.target"
83− environment = {
77+ environment.SERVER_ADDRESS = cfg.server;
84− SHELLHUB_SERVER_ADDRESS = cfg.server;
78+ environment.PRIVATE_KEY = cfg.privateKey;
85− SHELLHUB_PRIVATE_KEY = cfg.privateKey;
79+ environment.TENANT_ID = cfg.tenantId;
86− SHELLHUB_TENANT_ID = cfg.tenantId;
87− SHELLHUB_KEEPALIVE_INTERVAL = toString cfg.keepAliveInterval;
88− SHELLHUB_PREFERRED_HOSTNAME = cfg.preferredHostname;
91 serviceConfig = {
81 serviceConfig = {
92 # The service starts sessions for different users.
82 # The service starts sessions for different users.
@@ -95,6 +85,7 @@ in
95 ExecStart = "${cfg.package}/bin/agent";
85 ExecStart = "${cfg.package}/bin/agent";
89+ environment.systemPackages = [ cfg.package ];
nixos/modules/services/networking/ssh/sshd.nix−1
@@ -441,7 +441,6 @@ in
442 ${flip concatMapStrings cfg.hostKeys (k: ''
442 ${flip concatMapStrings cfg.hostKeys (k: ''
443 if ! [ -s "${k.path}" ]; then
443 if ! [ -s "${k.path}" ]; then
445 ssh-keygen \
444 ssh-keygen \
446 -t "${k.type}" \
445 -t "${k.type}" \
447 ${if k ? bits then "-b ${toString k.bits}" else ""} \
446 ${if k ? bits then "-b ${toString k.bits}" else ""} \
nixos/modules/services/networking/supplicant.nix+1−1
@@ -43,7 +43,7 @@ let
43 path = [ pkgs.coreutils ];
43 path = [ pkgs.coreutils ];
45 preStart = ''
45 preStart = ''
46− ${optionalString (suppl.configFile.path!=null && suppl.configFile.writable) ''
46+ ${optionalString (suppl.configFile.path!=null) ''
47 (umask 077 && touch -a "${suppl.configFile.path}")
47 (umask 077 && touch -a "${suppl.configFile.path}")
49 ${optionalString suppl.userControlled.enable ''
49 ${optionalString suppl.userControlled.enable ''
nixos/modules/services/networking/syncplay.nix+1−1
@@ -89,7 +89,7 @@ in
89 ${lib.optionalString (cfg.passwordFile != null) ''
89 ${lib.optionalString (cfg.passwordFile != null) ''
90 export SYNCPLAY_PASSWORD=$(cat "''${CREDENTIALS_DIRECTORY}/password")
90 export SYNCPLAY_PASSWORD=$(cat "''${CREDENTIALS_DIRECTORY}/password")
92− exec ${pkgs.syncplay-nogui}/bin/syncplay-server ${escapeShellArgs cmdArgs}
92+ exec ${pkgs.syncplay}/bin/syncplay-server ${escapeShellArgs cmdArgs}
nixos/modules/services/networking/tailscale.nix+1−9
@@ -21,12 +21,6 @@ in {
21 description = ''The interface name for tunnel traffic. Use "userspace-networking" (beta) to not use TUN.'';
21 description = ''The interface name for tunnel traffic. Use "userspace-networking" (beta) to not use TUN.'';
24− permitCertUid = mkOption {
25− type = types.nullOr types.nonEmptyStr;
27− description = "Username or user ID of the user allowed to to fetch Tailscale TLS certificates for the node.";
30 package = mkOption {
24 package = mkOption {
31 type = types.package;
25 type = types.package;
32 default = pkgs.tailscale;
26 default = pkgs.tailscale;
@@ -44,9 +38,7 @@ in {
44 serviceConfig.Environment = [
38 serviceConfig.Environment = [
45 "PORT=${toString cfg.port}"
39 "PORT=${toString cfg.port}"
46 ''"FLAGS=--tun ${lib.escapeShellArg cfg.interfaceName}"''
40 ''"FLAGS=--tun ${lib.escapeShellArg cfg.interfaceName}"''
47− ] ++ (lib.optionals (cfg.permitCertUid != null) [
48− "TS_PERMIT_CERT_UID=${cfg.permitCertUid}"
nixos/modules/services/networking/zeronet.nix+1−1
@@ -90,5 +90,5 @@ in with lib; {
90 (mkRemovedOptionModule [ "services" "zeronet" "logDir" ] "Zeronet will log by default in /var/lib/zeronet")
90 (mkRemovedOptionModule [ "services" "zeronet" "logDir" ] "Zeronet will log by default in /var/lib/zeronet")
93− meta.maintainers = with maintainers; [ Madouura ];
93+ meta.maintainers = with maintainers; [ chiiruno ];
nixos/modules/services/system/nscd.nix+8−17
@@ -7,6 +7,10 @@ let
7 nssModulesPath = config.system.nssModules.path;
7 nssModulesPath = config.system.nssModules.path;
8 cfg = config.services.nscd;
8 cfg = config.services.nscd;
10+ nscd = if pkgs.stdenv.hostPlatform.libc == "glibc"
11+ then pkgs.stdenv.cc.libc.bin
@@ -33,19 +37,6 @@ in
33 description = "Configuration to use for Name Service Cache Daemon.";
37 description = "Configuration to use for Name Service Cache Daemon.";
37− type = types.package;
38− default = if pkgs.stdenv.hostPlatform.libc == "glibc"
39− then pkgs.stdenv.cc.libc.bin
41− defaultText = lib.literalExpression ''
42− if pkgs.stdenv.hostPlatform.libc == "glibc"
43− then pkgs.stdenv.cc.libc.bin
46− description = "package containing the nscd binary to be used by the service";
@@ -78,16 +69,16 @@ in
78 # files. So prefix the ExecStart command with "!" to prevent systemd
69 # files. So prefix the ExecStart command with "!" to prevent systemd
79 # from dropping privileges early. See ExecStart in systemd.service(5).
70 # from dropping privileges early. See ExecStart in systemd.service(5).
80 serviceConfig =
71 serviceConfig =
81− { ExecStart = "!@${cfg.package}/bin/nscd nscd";
72+ { ExecStart = "!@${nscd}/sbin/nscd nscd";
82 Type = "forking";
73 Type = "forking";
83 DynamicUser = true;
74 DynamicUser = true;
84 RuntimeDirectory = "nscd";
75 RuntimeDirectory = "nscd";
85 PIDFile = "/run/nscd/nscd.pid";
76 PIDFile = "/run/nscd/nscd.pid";
86 Restart = "always";
77 Restart = "always";
87 ExecReload =
78 ExecReload =
88− [ "${cfg.package}/bin/nscd --invalidate passwd"
79+ [ "${nscd}/sbin/nscd --invalidate passwd"
89− "${cfg.package}/bin/nscd --invalidate group"
80+ "${nscd}/sbin/nscd --invalidate group"
90− "${cfg.package}/bin/nscd --invalidate hosts"
81+ "${nscd}/sbin/nscd --invalidate hosts"
nixos/modules/services/ttys/kmscon.nix+5−24
@@ -1,6 +1,6 @@
1{ config, pkgs, lib, ... }:
1{ config, pkgs, lib, ... }:
3− inherit (lib) mapAttrs mkIf mkOption optional optionals types;
3+ inherit (lib) mkOption types mkIf;
5 cfg = config.services.kmscon;
5 cfg = config.services.kmscon;
@@ -28,19 +28,6 @@ in {
28 default = false;
28 default = false;
32− description = "Fonts used by kmscon, in order of priority.";
34− example = lib.literalExpression ''[ { name = "Source Code Pro"; package = pkgs.source-code-pro; } ]'';
36− let fontType = submodule {
38− name = mkOption { type = str; description = "Font name, as used by fontconfig."; };
39− package = mkOption { type = package; description = "Package providing the font."; };
41− }; in nullOr (nonEmptyListOf fontType);
44 extraConfig = mkOption {
31 extraConfig = mkOption {
45 description = "Extra contents of the kmscon.conf file.";
32 description = "Extra contents of the kmscon.conf file.";
46 type = types.lines;
33 type = types.lines;
@@ -100,17 +87,11 @@ in {
101 systemd.services.systemd-vconsole-setup.enable = false;
88 systemd.services.systemd-vconsole-setup.enable = false;
103− services.kmscon.extraConfig =
90+ services.kmscon.extraConfig = mkIf cfg.hwRender ''
105− render = optionals cfg.hwRender [ "drm" "hwaccel" ];
92+ hwaccel
106− fonts = optional (cfg.fonts != null) "font-name=${lib.concatMapStringsSep ", " (f: f.name) cfg.fonts}";
93+ '';
107− in lib.concatStringsSep "\n" (render ++ fonts);
109 hardware.opengl.enable = mkIf cfg.hwRender true;
95 hardware.opengl.enable = mkIf cfg.hwRender true;
111− fonts = mkIf (cfg.fonts != null) {
112− fontconfig.enable = true;
113− fonts = map (f: f.package) cfg.fonts;
nixos/modules/services/web-apps/atlassian/jira.nix−1
@@ -151,7 +151,6 @@ in
151 users.users.${cfg.user} = {
151 users.users.${cfg.user} = {
152 isSystemUser = true;
152 isSystemUser = true;
153 group = cfg.group;
153 group = cfg.group;
157 users.groups.${cfg.group} = {};
156 users.groups.${cfg.group} = {};
nixos/modules/services/web-apps/discourse.nix+3−9
@@ -609,7 +609,6 @@ in
609 connection_reaper_interval = 30;
609 connection_reaper_interval = 30;
610 relative_url_root = null;
610 relative_url_root = null;
611 message_bus_max_backlog_size = 100;
611 message_bus_max_backlog_size = 100;
612− message_bus_clear_every = 50;
613 secret_key_base = cfg.secretKeyBaseFile;
612 secret_key_base = cfg.secretKeyBaseFile;
614 fallback_assets_path = null;
613 fallback_assets_path = null;
@@ -656,12 +655,7 @@ in
656 long_polling_interval = null;
655 long_polling_interval = null;
659− services.redis.servers.discourse =
660− lib.mkIf (lib.elem cfg.redis.host [ "localhost" "127.0.0.1" ]) {
658+ services.redis.enable = lib.mkDefault (cfg.redis.host == "localhost");
662− bind = cfg.redis.host;
663− port = cfg.backendSettings.redis_port;
666 services.postgresql = lib.mkIf databaseActuallyCreateLocally {
660 services.postgresql = lib.mkIf databaseActuallyCreateLocally {
667 enable = true;
661 enable = true;
@@ -702,12 +696,12 @@ in
702 systemd.services.discourse = {
696 systemd.services.discourse = {
703 wantedBy = [ "multi-user.target" ];
697 wantedBy = [ "multi-user.target" ];
704 after = [
698 after = [
705− "redis-discourse.service"
699+ "redis.service"
706 "postgresql.service"
700 "postgresql.service"
707 "discourse-postgresql.service"
701 "discourse-postgresql.service"
709 bindsTo = [
703 bindsTo = [
710− "redis-discourse.service"
704+ "redis.service"
711 ] ++ lib.optionals (cfg.database.host == null) [
705 ] ++ lib.optionals (cfg.database.host == null) [
712 "postgresql.service"
706 "postgresql.service"
713 "discourse-postgresql.service"
707 "discourse-postgresql.service"
nixos/modules/services/web-apps/galene.nix−29
@@ -164,35 +164,6 @@ in
164 optional (cfg.dataDir == defaultdataDir) "galene/data" ++
164 optional (cfg.dataDir == defaultdataDir) "galene/data" ++
165 optional (cfg.groupsDir == defaultgroupsDir) "galene/groups" ++
165 optional (cfg.groupsDir == defaultgroupsDir) "galene/groups" ++
166 optional (cfg.recordingsDir == defaultrecordingsDir) "galene/recordings";
166 optional (cfg.recordingsDir == defaultrecordingsDir) "galene/recordings";
169− CapabilityBoundingSet = [ "" ];
170− DeviceAllow = [ "" ];
171− LockPersonality = true;
172− MemoryDenyWriteExecute = true;
173− NoNewPrivileges = true;
174− PrivateDevices = true;
176− PrivateUsers = true;
178− ProtectClock = true;
179− ProtectControlGroups = true;
181− ProtectHostname = true;
182− ProtectKernelLogs = true;
183− ProtectKernelModules = true;
184− ProtectKernelTunables = true;
185− ProtectProc = "invisible";
186− ProtectSystem = "strict";
187− ReadWritePaths = cfg.recordingsDir;
189− RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
190− RestrictNamespaces = true;
191− RestrictRealtime = true;
192− RestrictSUIDSGID = true;
193− SystemCallArchitectures = "native";
194− SystemCallFilter = [ "@system-service" "~@privileged" "~@resources" ];
nixos/modules/services/web-apps/keycloak.nix+514−360
@@ -4,94 +4,20 @@ let
4 cfg = config.services.keycloak;
4 cfg = config.services.keycloak;
5 opt = options.services.keycloak;
5 opt = options.services.keycloak;
11− mkChangedOptionModule
12− mkRenamedOptionModule
13− mkRemovedOptionModule
14− concatStringsSep
7+ inherit (lib) types mkOption concatStringsSep mapAttrsToList
15− mapAttrsToList
8+ escapeShellArg recursiveUpdate optionalAttrs boolToString mkOrder
16− escapeShellArg
9+ sort filterAttrs concatMapStringsSep concatStrings mkIf
21− literalExpression
10+ optionalString optionals mkDefault literalExpression hasSuffix
23− literalDocBook
11+ foldl' isAttrs filter attrNames elem literalDocBook
24− maintainers
12+ maintainers;
30− inherit (builtins)
14+ inherit (builtins) match typeOf;
39− prefixUnlessEmpty = prefix: string: optionalString (string != "") "${prefix}${string}";
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" ]
54− builtins.fromJSON config.services.keycloak.httpPort))
55− (mkChangedOptionModule
56− [ "services" "keycloak" "httpsPort" ]
57− [ "services" "keycloak" "settings" "https-port" ]
59− builtins.fromJSON config.services.keycloak.httpsPort))
60− (mkRemovedOptionModule
61− [ "services" "keycloak" "frontendUrl" ]
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.
67− (mkRemovedOptionModule
68− [ "services" "keycloak" "extraConfig" ]
69− "Use `services.keycloak.settings' instead.")
72 options.services.keycloak =
17 options.services.keycloak =
74− inherit (types)
19+ inherit (types) bool str nullOr attrsOf path enum anything
83− package
20+ package port;
86− assertStringPath = optionName: value:
89− services.keycloak.${optionName}:
91− is a Nix path, but should be a string, since Nix
92− paths are copied into the world-readable Nix store.
97 enable = mkOption {
23 enable = mkOption {
@@ -104,14 +30,89 @@ in
33+ bindAddress = mkOption {
35+ default = "\${jboss.bind.address:0.0.0.0}";
36+ example = "127.0.0.1";
38+ On which address Keycloak should accept new connections.
40+ A special syntax can be used to allow command line Java system
41+ properties to override the value: ''${property.name:value}
45+ httpPort = mkOption {
47+ default = "\${jboss.http.port:80}";
50+ On which port Keycloak should listen for new HTTP connections.
52+ A special syntax can be used to allow command line Java system
53+ properties to override the value: ''${property.name:value}
57+ httpsPort = mkOption {
59+ default = "\${jboss.https.port:443}";
62+ On which port Keycloak should listen for new HTTPS connections.
64+ A special syntax can be used to allow command line Java system
65+ properties to override the value: ''${property.name:value}
69+ frontendUrl = mkOption {
72+ if x == "" || hasSuffix "/" x then
76+ example = "keycloak.example.com/auth";
78+ The public URL used as base for all frontend requests. Should
79+ normally include a trailing <literal>/auth</literal>.
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.
87+ forceBackendUrlToFrontendUrl = mkOption {
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.
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.
107 sslCertificate = mkOption {
106 sslCertificate = mkOption {
108 type = nullOr path;
107 type = nullOr path;
109 default = null;
108 default = null;
110 example = "/run/keys/ssl_cert";
109 example = "/run/keys/ssl_cert";
111− apply = assertStringPath "sslCertificate";
112 description = ''
110 description = ''
113 The path to a PEM formatted certificate to use for TLS/SSL
111 The path to a PEM formatted certificate to use for TLS/SSL
114 connections.
112 connections.
114+ This should be a string, not a Nix path, since Nix paths are
115+ copied into the world-readable Nix store.
@@ -119,28 +120,28 @@ in
119 type = nullOr path;
120 type = nullOr path;
120 default = null;
121 default = null;
121 example = "/run/keys/ssl_key";
122 example = "/run/keys/ssl_key";
122− apply = assertStringPath "sslCertificateKey";
123 description = ''
123 description = ''
124 The path to a PEM formatted private key to use for TLS/SSL
124 The path to a PEM formatted private key to use for TLS/SSL
125 connections.
125 connections.
127+ This should be a string, not a Nix path, since Nix paths are
128+ copied into the world-readable Nix store.
129 plugins = lib.mkOption {
132 plugins = lib.mkOption {
130 type = lib.types.listOf lib.types.path;
133 type = lib.types.listOf lib.types.path;
131− default = [ ];
134+ default = [];
132 description = ''
135 description = ''
133− Keycloak plugin jar, ear files or derivations containing
136+ Keycloak plugin jar, ear files or derivations with them
134− them. Packaged plugins are available through
135− <literal>pkgs.keycloak.plugins</literal>.
139 database = {
140 database = {
140 type = mkOption {
141 type = mkOption {
141− type = enum [ "mysql" "mariadb" "postgresql" ];
142+ type = enum [ "mysql" "postgresql" ];
142 default = "postgresql";
143 default = "postgresql";
143− example = "mariadb";
144+ example = "mysql";
144 description = ''
145 description = ''
145 The type of database Keycloak should connect to.
146 The type of database Keycloak should connect to.
@@ -158,7 +159,6 @@ in
159 dbPorts = {
160 dbPorts = {
160 postgresql = 5432;
161 postgresql = 5432;
162 mysql = 3306;
162 mysql = 3306;
@@ -207,21 +207,6 @@ in
212− default = "keycloak";
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.
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
225 username = mkOption {
210 username = mkOption {
226 type = str;
211 type = str;
227 default = "keycloak";
212 default = "keycloak";
@@ -233,16 +218,19 @@ in
233 To use this with a local database, set <xref
218 To use this with a local database, set <xref
234 linkend="opt-services.keycloak.database.createLocally" /> to
219 linkend="opt-services.keycloak.database.createLocally" /> to
235 <literal>false</literal> and create the database and user
220 <literal>false</literal> and create the database and user
236− manually.
221+ manually. The database should be called
222+ <literal>keycloak</literal>.
240 passwordFile = mkOption {
226 passwordFile = mkOption {
241 type = path;
227 type = path;
242 example = "/run/keys/db_password";
228 example = "/run/keys/db_password";
243− apply = assertStringPath "passwordFile";
244 description = ''
229 description = ''
245− The path to a file containing the database password.
230+ File containing the database password.
232+ This should be a string, not a Nix path, since Nix paths are
233+ copied into the world-readable Nix store.
@@ -280,181 +268,67 @@ in
283− settings = mkOption {
271+ extraConfig = mkOption {
284− type = lib.types.submodule {
272+ type = attrsOf anything;
285− freeformType = attrsOf (nullOr (oneOf [ str int bool (attrsOf path) ]));
288− http-host = mkOption {
290− default = "0.0.0.0";
273+ default = { };
291− example = "127.0.0.1";
293− On which address Keycloak should accept new connections.
297− http-port = mkOption {
302− On which port Keycloak should listen for new HTTP connections.
306− https-port = mkOption {
311− On which port Keycloak should listen for new HTTPS connections.
315− http-relative-path = mkOption {
320− The path relative to <literal>/</literal> for serving
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.
333− xlink:href="https://www.keycloak.org/migration/migrating-to-quarkus"
334− /> for more information on migrating from Wildfly
341− hostname = mkOption {
343− example = "keycloak.example.com";
345− The hostname part of the public URL used as base for
346− all frontend requests.
348− See <link xlink:href="https://www.keycloak.org/server/hostname" />
349− for more information about hostname configuration.
353− hostname-strict-backchannel = mkOption {
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.
364− See <link xlink:href="https://www.keycloak.org/server/hostname" />
365− for more information about hostname configuration.
370− type = enum [ "edge" "reencrypt" "passthrough" "none" ];
374− The proxy address forwarding mode if the server is
375− behind a reverse proxy.
382− Enables communication through HTTP between the
388− <term>reencrypt</term>
391− Requires communication through HTTPS between the
397− <term>passthrough</term>
400− Enables communication through HTTP or HTTPS between
401− the proxy and Keycloak.
408− xlink:href="https://www.keycloak.org/server/reverseproxy"
409− /> for more information.
415 example = literalExpression ''
274 example = literalExpression ''
276+ "subsystem=keycloak-server" = {
278+ "provider=default" = null;
279+ "provider=fixed" = {
417− hostname = "keycloak.example.com";
281+ properties.hostname = "keycloak.example.com";
418− proxy = "reencrypt";
282+ };
419− https-key-store-file = "/path/to/file";
283+ default-provider = "fixed";
420− https-key-store-password = { _secret = "/run/keys/store_password"; };
284+ };
424 description = ''
288 description = ''
425− Configuration options corresponding to parameters set in
289+ Additional Keycloak configuration options to set in
426− <filename>conf/keycloak.conf</filename>.
290+ <literal>standalone.xml</literal>.
428− Most available options are documented at <link
292+ Options are expressed as a Nix attribute set which matches the
429− xlink:href="https://www.keycloak.org/server/all-config" />.
293+ structure of the jboss-cli configuration. The configuration is
430−
294+ effectively overlayed on top of the default configuration
431− Options containing secret data should be set to an attribute
295+ shipped with Keycloak. To remove existing nodes and undefine
432− set containing the attribute <literal>_secret</literal> - a
296+ attributes from the default configuration, set them to
433− string pointing to a file containing the value the option
297+ <literal>null</literal>.
434− should be set to. See the example to get a better picture of
298+
435− this: in the resulting
299+ The example configuration does the equivalent of the following
436− <filename>conf/keycloak.conf</filename> file, the
300+ script, which removes the hostname provider
437− <literal>https-key-store-password</literal> key will be set
301+ <literal>default</literal>, adds the deprecated hostname
438− to the contents of the
302+ provider <literal>fixed</literal> and defines it the default:
439− <filename>/run/keys/store_password</filename> file.
303+
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")
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>.
446− # We only want to create a database if we're actually going to
322+ # We only want to create a database if we're actually going to connect to it.
448 databaseActuallyCreateLocally = cfg.database.createLocally && cfg.database.host == "localhost";
323 databaseActuallyCreateLocally = cfg.database.createLocally && cfg.database.host == "localhost";
449 createLocalPostgreSQL = databaseActuallyCreateLocally && cfg.database.type == "postgresql";
324 createLocalPostgreSQL = databaseActuallyCreateLocally && cfg.database.type == "postgresql";
450− createLocalMySQL = databaseActuallyCreateLocally && elem cfg.database.type [ "mysql" "mariadb" ];
325+ createLocalMySQL = databaseActuallyCreateLocally && cfg.database.type == "mysql";
452 mySqlCaKeystore = pkgs.runCommand "mysql-ca-keystore" { } ''
327 mySqlCaKeystore = pkgs.runCommand "mysql-ca-keystore" { } ''
453 ${pkgs.jre}/bin/keytool -importcert -trustcacerts -alias MySQLCACert -file ${cfg.database.caCert} -keystore $out -storepass notsosecretpassword -noprompt
328 ${pkgs.jre}/bin/keytool -importcert -trustcacerts -alias MySQLCACert -file ${cfg.database.caCert} -keystore $out -storepass notsosecretpassword -noprompt
456− # Both theme and theme type directories need to be actual
331+ # Both theme and theme type directories need to be actual directories in one hierarchy to pass Keycloak checks.
457− # directories in one hierarchy to pass Keycloak checks.
458 themesBundle = pkgs.runCommand "keycloak-themes" { } ''
332 themesBundle = pkgs.runCommand "keycloak-themes" { } ''
459 linkTheme() {
333 linkTheme() {
460 theme="$1"
334 theme="$1"
@@ -473,7 +347,7 @@ in
475 mkdir -p "$out"
349 mkdir -p "$out"
476− for theme in ${keycloakBuild}/themes/*; do
350+ for theme in ${cfg.package}/themes/*; do
477 if [ -d "$theme" ]; then
351 if [ -d "$theme" ]; then
478 linkTheme "$theme" "$(basename "$theme")"
352 linkTheme "$theme" "$(basename "$theme")"
@@ -482,25 +356,329 @@ in
482 ${concatStringsSep "\n" (mapAttrsToList (name: theme: "linkTheme ${theme} ${escapeShellArg name}") cfg.themes)}
356 ${concatStringsSep "\n" (mapAttrsToList (name: theme: "linkTheme ${theme} ${escapeShellArg name}") cfg.themes)}
485− keycloakConfig = lib.generators.toKeyValue {
359+ keycloakConfig' = foldl' recursiveUpdate
486− mkKeyValue = lib.flip lib.generators.mkKeyValueDefault "=" {
360+ {
487− mkValueString = v: with builtins;
361+ "interface=public".inet-address = cfg.bindAddress;
488− if isInt v then toString v
362+ "socket-binding-group=standard-sockets"."socket-binding=http".port = cfg.httpPort;
489− else if isString v then v
363+ "subsystem=keycloak-server" = {
490− else if true == v then "true"
364+ "spi=hostname"."provider=default" = {
491− else if false == v then "false"
365+ enabled = true;
492− else if isSecret v then hashString "sha256" v._secret
366+ properties = {
493− else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
367+ inherit (cfg) frontendUrl forceBackendUrlToFrontendUrl;
370+ "theme=defaults".dir = toString themesBundle;
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@";
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";
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";
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";
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";
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";
426+ "key-manager=httpsKM" = mkOrder 901 {
427+ key-store = "httpsKS";
428+ credential-reference.clear-text = "notsosecretpassword";
430+ "server-ssl-context=httpsSSC" = mkOrder 902 {
431+ key-manager = "httpsKM";
434+ "subsystem=undertow" = mkOrder 901 {
435+ "server=default-server"."https-listener=https".ssl-context = "httpsSSC";
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`.
448+ JBoss paths and attributes / maps are distinguished by their
449+ name, where paths follow a `key=value` scheme.
453+ "subsystem=keycloak-server"."spi=hostname" = {
454+ "provider=fixed" = null;
455+ "provider=default" = {
458+ inherit frontendUrl;
459+ forceBackendUrlToFrontendUrl = false;
465+ if (outcome != success) of /:read-resource()
468+ if (outcome != success) of /subsystem=keycloak-server:read-resource()
469+ /subsystem=keycloak-server:add()
471+ if (outcome != success) of /subsystem=keycloak-server/spi=hostname:read-resource()
472+ /subsystem=keycloak-server/spi=hostname:add()
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" })
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)
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)
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")
486+ if (outcome != success) of /subsystem=keycloak-server/spi=hostname/provider=fixed:read-resource()
487+ /subsystem=keycloak-server/spi=hostname/provider=fixed:remove()
491+ mkJbossScript = attrs:
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
500+ writeAttributes "/subsystem=keycloak-server/spi=hostname/provider=default" {
503+ forceBackendUrlToFrontendUrl = false;
504+ frontendUrl = "https://keycloak.example.com/auth";
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)
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)
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")
519+ writeAttributes = path: set:
521+ # JBoss expressions like `${var}` need to be prefixed
522+ # with `expression` to evaluate.
523+ prefixExpression = string:
525+ matchResult = match ''"\$\{.*}"'' string;
527+ if matchResult != null then
528+ "expression " + string
532+ writeAttribute = attribute: value:
534+ type = typeOf value;
536+ if type == "set" then
538+ names = attrNames value;
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}")
546+ else if elem type [ "string" "path" "bool" ] then
548+ value' = if type == "bool" then boolToString value else ''"${value}"'';
551+ if (result != ${prefixExpression value'}) of ${path}:read-attribute(name="${attribute}")
552+ ${path}:write-attribute(name=${attribute}, value=${value'})
555+ else throw "Unsupported type '${type}' for path '${path}'!";
559+ (attribute: value: (writeAttribute attribute value))
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.
571+ forceBackendUrlToFrontendUrl = false;
572+ frontendUrl = "https://keycloak.example.com/auth";
576+ enabled = true, properties = { forceBackendUrlToFrontendUrl = false, frontendUrl = "https://keycloak.example.com/auth" }
581+ makeArg = attribute: value:
583+ type = typeOf value;
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
592+ throw "Unsupported type '${type}' for attribute '${attribute}'!";
595+ concatStringsSep ", " (mapAttrsToList makeArg set);
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.
602+ recurse = nodePath: nodeValue:
605+ if isAttrs nodeValue && nodeValue._type or "" == "order" then
611+ value = nodeContent.${name};
613+ if (match ".*([=]).*" name) == [ "=" ] then
614+ if isAttrs value || value == null then
617+ throw "Parsing path '${concatStringsSep "." (nodePath ++ [ name ])}' failed: JBoss attributes cannot contain '='!"
620+ jbossPath = "/" + concatStringsSep "/" nodePath;
621+ children = if !isAttrs nodeContent then { } else nodeContent;
622+ subPaths = filter isPath (attrNames children);
625+ value = children.${name};
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;
631+ if nodeContent != null then
633+ if (outcome != success) of ${jbossPath}:read-resource()
634+ ${jbossPath}:add(${makeArgList jbossAttrs})
636+ '' + writeAttributes jbossPath jbossAttrs
639+ if (outcome == success) of ${jbossPath}:read-resource()
640+ ${jbossPath}:remove()
644+ text + concatMapStringsSep "\n" (name: recurse (nodePath ++ [ name ]) children.${name}) orderedSubPaths;
648+ jbossCliScript = pkgs.writeText "jboss-cli-script" (mkJbossScript keycloakConfig');
650+ keycloakConfig = pkgs.runCommand "keycloak-config"
652+ nativeBuildInputs = [ cfg.package ];
655+ export JBOSS_BASE_DIR="$(pwd -P)";
656+ export JBOSS_MODULEPATH="${cfg.package}/modules";
657+ export JBOSS_LOG_DIR="$JBOSS_BASE_DIR/log";
659+ cp -r ${cfg.package}/standalone/configuration .
660+ chmod -R u+rwX ./configuration
662+ mkdir -p {deployments,ssl}
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
673+ echo "Keycloak not fully started yet, retrying.. ($attempt/$max_attempts)"
497− isSecret = v: isAttrs v && v ? _secret && isString v._secret;
678+ jboss-cli.sh --connect --file=${jbossCliScript} --echo-command
498− filteredConfig = lib.converge (lib.filterAttrsRecursive (_: v: ! elem v [{ } null])) cfg.settings;
679+
499− confFile = pkgs.writeText "keycloak.conf" (keycloakConfig filteredConfig);
680+ cp configuration/standalone.xml $out
500− keycloakBuild = cfg.package.override {
502− plugins = cfg.package.enabledPlugins ++ cfg.plugins;
505 mkIf cfg.enable
683 mkIf cfg.enable
@@ -511,46 +689,7 @@ in
514− environment.systemPackages = [ keycloakBuild ];
692+ environment.systemPackages = [ cfg.package ];
516− services.keycloak.settings =
518− postgresParams = concatStringsSep "&" (
519− optionals cfg.database.useSSL [
521− ] ++ optionals (cfg.database.caCert != null) [
522− "sslrootcert=${cfg.database.caCert}"
526− mariadbParams = concatStringsSep "&" ([
527− "characterEncoding=UTF-8"
528− ] ++ optionals cfg.database.useSSL [
531− "verifyServerCertificate=true"
532− ] ++ optionals (cfg.database.caCert != null) [
533− "trustCertificateKeyStoreUrl=file:${mySqlCaKeystore}"
534− "trustCertificateKeyStorePassword=notsosecretpassword"
536− dbProps = if cfg.database.type == "postgresql" then postgresParams else mariadbParams;
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;
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";
555 systemd.services.keycloakPostgreSQLInit = mkIf createLocalPostgreSQL {
694 systemd.services.keycloakPostgreSQLInit = mkIf createLocalPostgreSQL {
556 after = [ "postgresql.service" ];
695 after = [ "postgresql.service" ];
@@ -613,37 +752,41 @@ in
613 "mysql.service"
752 "mysql.service"
615 else [ ];
754 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
620− secretReplacements = lib.concatMapStrings mkSecretReplacement secretPaths;
623 after = databaseServices;
757 after = databaseServices;
624 bindsTo = databaseServices;
758 bindsTo = databaseServices;
625 wantedBy = [ "multi-user.target" ];
759 wantedBy = [ "multi-user.target" ];
626 path = with pkgs; [
760 path = with pkgs; [
627− keycloakBuild
761+ cfg.package
629 replace-secret
763 replace-secret
631 environment = {
765 environment = {
632− KC_HOME_DIR = "/run/keycloak";
766+ JBOSS_LOG_DIR = "/var/log/keycloak";
633− KC_CONF_DIR = "/run/keycloak/conf";
767+ JBOSS_BASE_DIR = "/run/keycloak";
768+ JBOSS_MODULEPATH = "${cfg.package}/modules";
635 serviceConfig = {
770 serviceConfig = {
636− LoadCredential =
771+ LoadCredential = [
637− map (p: "${baseNameOf p}:${p}") secretPaths
772+ "db_password:${cfg.database.passwordFile}"
638− ++ optionals (cfg.sslCertificate != null && cfg.sslCertificateKey != null) [
773+ ] ++ optionals (cfg.sslCertificate != null && cfg.sslCertificateKey != null) [
639− "ssl_cert:${cfg.sslCertificate}"
774+ "ssl_cert:${cfg.sslCertificate}"
640− "ssl_key:${cfg.sslCertificateKey}"
775+ "ssl_key:${cfg.sslCertificateKey}"
642 User = "keycloak";
777 User = "keycloak";
643 Group = "keycloak";
778 Group = "keycloak";
644 DynamicUser = true;
779 DynamicUser = true;
645− RuntimeDirectory = "keycloak";
780+ RuntimeDirectory = map (p: "keycloak/" + p) [
646 RuntimeDirectoryMode = 0700;
788 RuntimeDirectoryMode = 0700;
789+ LogsDirectory = "keycloak";
647 AmbientCapabilities = "CAP_NET_BIND_SERVICE";
790 AmbientCapabilities = "CAP_NET_BIND_SERVICE";
649 script = ''
792 script = ''
@@ -652,30 +795,41 @@ in
653 umask u=rwx,g=,o=
796 umask u=rwx,g=,o=
655− ln -s ${themesBundle} /run/keycloak/themes
798+ install_plugin() {
656− ln -s ${keycloakBuild}/providers /run/keycloak/
799+ if [ -d "$1" ]; then
657−
800+ find "$1" -type f \( -iname \*.ear -o -iname \*.jar \) -exec install -m 0500 -o keycloak -g keycloak "{}" "/run/keycloak/deployments/" \;
802+ install -m 0500 -o keycloak -g keycloak "$1" "/run/keycloak/deployments/"
806+ install -m 0600 ${cfg.package}/standalone/configuration/*.properties /run/keycloak/configuration
658− install -D -m 0600 ${confFile} /run/keycloak/conf/keycloak.conf
807+ install -T -m 0600 ${keycloakConfig} /run/keycloak/configuration/standalone.xml
660− ${secretReplacements}
809+ replace-secret '@db-password@' "$CREDENTIALS_DIRECTORY/db_password" /run/keycloak/configuration/standalone.xml
811+ export JAVA_OPTS=-Djboss.server.config.user.dir=/run/keycloak/configuration
812+ add-user-keycloak.sh -u admin -p '${cfg.initialAdminPassword}'
814+ + lib.optionalString (cfg.plugins != []) (lib.concatStringsSep "\n" (map (pl: "install_plugin ${lib.escapeShellArg pl}") cfg.plugins)) + "\n"
662− '' + optionalString (cfg.sslCertificate != null && cfg.sslCertificateKey != null) ''
815+ + optionalString (cfg.sslCertificate != null && cfg.sslCertificateKey != null) ''
663− mkdir -p /run/keycloak/ssl
816+ pushd /run/keycloak/ssl/
664− cp $CREDENTIALS_DIRECTORY/ssl_{cert,key} /run/keycloak/ssl/
817+ cat "$CREDENTIALS_DIRECTORY/ssl_cert" <(echo) \
818+ "$CREDENTIALS_DIRECTORY/ssl_key" <(echo) \
819+ /etc/ssl/certs/ca-certificates.crt \
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
666− export KEYCLOAK_ADMIN=admin
826+ ${cfg.package}/bin/standalone.sh
667− export KEYCLOAK_ADMIN_PASSWORD=${cfg.initialAdminPassword}
672 services.postgresql.enable = mkDefault createLocalPostgreSQL;
830 services.postgresql.enable = mkDefault createLocalPostgreSQL;
673 services.mysql.enable = mkDefault createLocalMySQL;
831 services.mysql.enable = mkDefault createLocalMySQL;
674− services.mysql.package =
832+ services.mysql.package = mkIf createLocalMySQL pkgs.mariadb;
676− dbPkg = if cfg.database.type == "mariadb" then pkgs.mariadb else pkgs.mysql80;
678− mkIf createLocalMySQL (mkDefault dbPkg);
681 meta.doc = ./keycloak.xml;
835 meta.doc = ./keycloak.xml;
nixos/modules/services/web-apps/keycloak.xml+81−61
@@ -27,10 +27,10 @@
29 Refer to the <link
29 Refer to the <link
30− xlink:href="https://www.keycloak.org/docs/latest/server_admin/index.html">
30+ xlink:href="https://www.keycloak.org/docs/latest/server_admin/index.html#admin-console">Admin
31− Keycloak Server Administration Guide</link> for information on
31+ Console section of the Keycloak Server Administration Guide</link> for
32+ information on how to administer your
32− how to administer your <productname>Keycloak</productname>
33+ <productname>Keycloak</productname> instance.
35 </section>
35 </section>
@@ -38,28 +38,27 @@
38 <title>Database access</title>
38 <title>Database access</title>
40 <productname>Keycloak</productname> can be used with either
40 <productname>Keycloak</productname> can be used with either
41− <productname>PostgreSQL</productname>,
41+ <productname>PostgreSQL</productname> or
42− <productname>MariaDB</productname> or
43 <productname>MySQL</productname>. Which one is used can be
42 <productname>MySQL</productname>. Which one is used can be
44 configured in <xref
43 configured in <xref
45 linkend="opt-services.keycloak.database.type" />. The selected
44 linkend="opt-services.keycloak.database.type" />. The selected
46 database will automatically be enabled and a database and role
45 database will automatically be enabled and a database and role
47 created unless <xref
46 created unless <xref
48− linkend="opt-services.keycloak.database.host" /> is changed
47+ linkend="opt-services.keycloak.database.host" /> is changed from
49− from its default of <literal>localhost</literal> or <xref
48+ its default of <literal>localhost</literal> or <xref
50− linkend="opt-services.keycloak.database.createLocally" /> is
49+ linkend="opt-services.keycloak.database.createLocally" /> is set
51− set to <literal>false</literal>.
50+ to <literal>false</literal>.
55 External database access can also be configured by setting
54 External database access can also be configured by setting
56 <xref linkend="opt-services.keycloak.database.host" />, <xref
55 <xref linkend="opt-services.keycloak.database.host" />, <xref
57− linkend="opt-services.keycloak.database.name" />, <xref
58 linkend="opt-services.keycloak.database.username" />, <xref
56 linkend="opt-services.keycloak.database.username" />, <xref
59 linkend="opt-services.keycloak.database.useSSL" /> and <xref
57 linkend="opt-services.keycloak.database.useSSL" /> and <xref
60 linkend="opt-services.keycloak.database.caCert" /> as
58 linkend="opt-services.keycloak.database.caCert" /> as
61− appropriate. Note that you need to manually create the database
59+ appropriate. Note that you need to manually create a database
60+ called <literal>keycloak</literal> and allow the configured
62− and allow the configured database user full access to it.
61+ database user full access to it.
@@ -80,27 +79,22 @@
80 </warning>
79 </warning>
81 </section>
80 </section>
83− <section xml:id="module-services-keycloak-hostname">
82+ <section xml:id="module-services-keycloak-frontendurl">
84− <title>Hostname</title>
83+ <title>Frontend URL</title>
86− The hostname is used to build the public URL used as base for
87− all frontend requests and must be configured through <xref
85+ The frontend URL is used as base for all frontend requests and
88− linkend="opt-services.keycloak.settings.hostname" />.
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>.
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
103− <xref linkend="opt-services.keycloak.settings.hostname-strict-backchannel" />
97+ <xref linkend="opt-services.keycloak.forceBackendUrlToFrontendUrl" />
104 determines whether Keycloak should force all requests to go
98 determines whether Keycloak should force all requests to go
105 through the frontend URL. By default,
99 through the frontend URL. By default,
106 <productname>Keycloak</productname> allows backend requests to
100 <productname>Keycloak</productname> allows backend requests to
@@ -110,10 +104,10 @@
113− For more information on hostname configuration, see the <link
107+ See the <link
114− xlink:href="https://www.keycloak.org/server/hostname">Hostname
108+ xlink:href="https://www.keycloak.org/docs/latest/server_installation/#_hostname">Hostname
115− section of the Keycloak Server Installation and Configuration
109+ section of the Keycloak Server Installation and Configuration
116− Guide</link>.
110+ Guide</link> for more information.
118 </section>
112 </section>
@@ -145,39 +139,67 @@
145 <section xml:id="module-services-keycloak-themes">
139 <section xml:id="module-services-keycloak-themes">
146 <title>Themes</title>
140 <title>Themes</title>
148− You can package custom themes and make them visible to
142+ You can package custom themes and make them visible to Keycloak via
149− Keycloak through <xref linkend="opt-services.keycloak.themes"
143+ <xref linkend="opt-services.keycloak.themes" />
151− xlink:href="https://www.keycloak.org/docs/latest/server_development/#_themes">
144+ option. See the <link xlink:href="https://www.keycloak.org/docs/latest/server_development/#_themes">
152 Themes section of the Keycloak Server Development Guide</link>
145 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.
156 </section>
148 </section>
158− <section xml:id="module-services-keycloak-settings">
150+ <section xml:id="module-services-keycloak-extra-config">
159− <title>Configuration file settings</title>
151+ <title>Additional configuration</title>
161− Keycloak server configuration parameters can be set in <xref
153+ Additional Keycloak configuration options, for which no
154+ explicit <productname>NixOS</productname> options are provided,
162− linkend="opt-services.keycloak.settings" />. These correspond
155+ can be set in <xref linkend="opt-services.keycloak.extraConfig" />.
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>.
173− Options containing secret data should be set to an attribute
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
174− set containing the attribute <literal>_secret</literal> - a
164+ <literal>null</literal>.
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.
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
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")
178+ would be expressed as
181+services.keycloak.extraConfig = {
182+ "subsystem=keycloak-server" = {
184+ "provider=default" = null;
185+ "provider=fixed" = {
187+ properties.hostname = "keycloak.example.com";
189+ default-provider = "fixed";
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>.
182 <section xml:id="module-services-keycloak-example-config">
204 <section xml:id="module-services-keycloak-example-config">
183 <title>Example configuration</title>
205 <title>Example configuration</title>
@@ -186,11 +208,9 @@
186<programlisting>
208<programlisting>
187services.keycloak = {
209services.keycloak = {
188 <link linkend="opt-services.keycloak.enable">enable</link> = true;
210 <link linkend="opt-services.keycloak.enable">enable</link> = true;
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;
193 <link linkend="opt-services.keycloak.initialAdminPassword">initialAdminPassword</link> = "e6Wcm0RrtegMEHl"; # change on first login
211 <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;
194 <link linkend="opt-services.keycloak.sslCertificate">sslCertificate</link> = "/run/keys/ssl_cert";
214 <link linkend="opt-services.keycloak.sslCertificate">sslCertificate</link> = "/run/keys/ssl_cert";
195 <link linkend="opt-services.keycloak.sslCertificateKey">sslCertificateKey</link> = "/run/keys/ssl_key";
215 <link linkend="opt-services.keycloak.sslCertificateKey">sslCertificateKey</link> = "/run/keys/ssl_key";
196 <link linkend="opt-services.keycloak.database.passwordFile">database.passwordFile</link> = "/run/keys/db_password";
216 <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 {
256− createLocally = mkOption {
260− Create the database and database user locally. Only available for
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.
271 config = {
254 config = {
272 dbtype = mkOption {
255 dbtype = mkOption {
273 type = types.enum [ "sqlite" "pgsql" "mysql" ];
256 type = types.enum [ "sqlite" "pgsql" "mysql" ];
@@ -522,29 +505,6 @@ in {
522 The nextcloud-occ program preconfigured to target this Nextcloud instance.
505 The nextcloud-occ program preconfigured to target this Nextcloud instance.
525− globalProfiles = mkEnableOption "global profiles" // {
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.
532− By default, the following properties are set to <quote>Show to everyone</quote>
533− if this flag is enabled:
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>
545− Only has an effect in Nextcloud 23 and later.
549 nginx.recommendedHttpHeaders = mkOption {
509 nginx.recommendedHttpHeaders = mkOption {
550 type = types.bool;
510 type = types.bool;
@@ -623,12 +583,6 @@ in {
623 else pkgs.php80;
583 else pkgs.php80;
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.'';
632 { systemd.timers.nextcloud-cron = {
586 { systemd.timers.nextcloud-cron = {
633 wantedBy = [ "timers.target" ];
587 wantedBy = [ "timers.target" ];
634 timerConfig.OnBootSec = "5m";
588 timerConfig.OnBootSec = "5m";
@@ -673,8 +627,6 @@ in {
673 if x == null then "false"
627 if x == null then "false"
674 else boolToString x;
628 else boolToString x;
676− nextcloudGreaterOrEqualThan = req: versionAtLeast cfg.package.version req;
678 overrideConfig = pkgs.writeText "nextcloud-config.php" ''
630 overrideConfig = pkgs.writeText "nextcloud-config.php" ''
680 ${optionalString requiresReadSecretFunction ''
632 ${optionalString requiresReadSecretFunction ''
@@ -714,7 +666,6 @@ in {
714 'trusted_domains' => ${writePhpArrary ([ cfg.hostName ] ++ c.extraTrustedDomains)},
666 'trusted_domains' => ${writePhpArrary ([ cfg.hostName ] ++ c.extraTrustedDomains)},
715 'trusted_proxies' => ${writePhpArrary (c.trustedProxies)},
667 'trusted_proxies' => ${writePhpArrary (c.trustedProxies)},
716 ${optionalString (c.defaultPhoneRegion != null) "'default_phone_region' => '${c.defaultPhoneRegion}',"}
668 ${optionalString (c.defaultPhoneRegion != null) "'default_phone_region' => '${c.defaultPhoneRegion}',"}
717− ${optionalString (nextcloudGreaterOrEqualThan "23") "'profile.enabled' => ${boolToString cfg.globalProfiles}"}
718 ${objectstoreConfig}
669 ${objectstoreConfig}
@@ -860,32 +811,6 @@ in {
861 environment.systemPackages = [ occ ];
812 environment.systemPackages = [ occ ];
863− services.mysql = lib.mkIf cfg.database.createLocally {
865− package = lib.mkDefault pkgs.mariadb;
866− ensureDatabases = [ cfg.config.dbname ];
868− name = cfg.config.dbuser;
869− ensurePermissions = { "${cfg.config.dbname}.*" = "ALL PRIVILEGES"; };
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
876− innodb_read_only_compressed = 0;
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 )}';
889 services.nginx.enable = mkDefault true;
814 services.nginx.enable = mkDefault true;
891 services.nginx.virtualHosts.${cfg.hostName} = {
816 services.nginx.virtualHosts.${cfg.hostName} = {
nixos/modules/services/web-apps/nifi.nixdeleted−318
@@ -1,318 +0,0 @@
1−{ lib, pkgs, config, options, ... }:
4− cfg = config.services.nifi;
5− opt = options.services.nifi;
8− NIFI_OVERRIDE_NIFIENV = "true";
9− NIFI_HOME = "/var/lib/nifi";
10− NIFI_PID_DIR = "/run/nifi";
11− NIFI_LOG_DIR = "/var/log/nifi";
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}\""
21− nifiEnv = pkgs.writeShellScriptBin "nifi-env" ''
30− enable = lib.mkEnableOption "Apache NiFi";
32− package = lib.mkOption {
33− type = lib.types.package;
35− defaultText = lib.literalExpression "pkgs.nifi";
36− description = "Apache NiFi package to use.";
39− user = lib.mkOption {
40− type = lib.types.str;
42− description = "User account where Apache NiFi runs.";
45− group = lib.mkOption {
46− type = lib.types.str;
48− description = "Group account where Apache NiFi runs.";
51− enableHTTPS = lib.mkOption {
52− type = lib.types.bool;
54− description = "Enable HTTPS protocol. Don`t use in production.";
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}
65− description = "Bind to an ip for Apache NiFi web-ui.";
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}
76− description = "Bind to a port for Apache NiFi web-ui.";
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}
87− description = "Allow requests from a specific host.";
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}
98− description = "Allow requests from a specific port.";
101− initUser = lib.mkOption {
102− type = lib.types.nullOr lib.types.str;
104− description = "Initial user account for Apache NiFi. Username must be at least 4 characters.";
107− initPasswordFile = lib.mkOption {
108− type = lib.types.nullOr lib.types.path;
110− example = "/run/keys/nifi/password-nifi";
111− description = "nitial password for Apache NiFi. Password must be at least 12 characters.";
114− initJavaHeapSize = lib.mkOption {
115− type = lib.types.nullOr lib.types.int;
118− description = "Set the initial heap size for the JVM in MB.";
121− maxJavaHeapSize = lib.mkOption {
122− type = lib.types.nullOr lib.types.int;
125− description = "Set the initial heap size for the JVM in MB.";
130− config = lib.mkIf cfg.enable {
132− { assertion = cfg.initUser!=null || cfg.initPasswordFile==null;
134− <option>services.nifi.initUser</option> needs to be set if <option>services.nifi.initPasswordFile</option> enabled.
137− { assertion = cfg.initUser==null || cfg.initPasswordFile!=null;
139− <option>services.nifi.initPasswordFile</option> needs to be set if <option>services.nifi.initUser</option> enabled.
142− { assertion = cfg.proxyHost==null || cfg.proxyPort!=null;
144− <option>services.nifi.proxyPort</option> needs to be set if <option>services.nifi.proxyHost</option> value specified.
147− { assertion = cfg.proxyHost!=null || cfg.proxyPort==null;
149− <option>services.nifi.proxyHost</option> needs to be set if <option>services.nifi.proxyPort</option> value specified.
152− { assertion = cfg.initJavaHeapSize==null || cfg.maxJavaHeapSize!=null;
154− <option>services.nifi.maxJavaHeapSize</option> needs to be set if <option>services.nifi.initJavaHeapSize</option> value specified.
157− { assertion = cfg.initJavaHeapSize!=null || cfg.maxJavaHeapSize==null;
159− <option>services.nifi.initJavaHeapSize</option> needs to be set if <option>services.nifi.maxJavaHeapSize</option> value specified.
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.
168− systemd.tmpfiles.rules = [
169− "d '/var/lib/nifi/conf' 0750 ${cfg.user} ${cfg.group}"
170− "L+ '/var/lib/nifi/lib' - - - - ${cfg.package}/lib"
174− systemd.services.nifi = {
175− description = "Apache NiFi";
176− after = [ "network.target" ];
177− wantedBy = [ "multi-user.target" ];
180− path = [ pkgs.gawk ];
184− PIDFile = "/run/nifi/nifi.pid";
185− ExecStartPre = pkgs.writeScript "nifi-pre-start.sh" ''
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})
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|^|#|'
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|^#\+||'
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'
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'
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'
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'
252− ExecStart = "${cfg.package}/bin/nifi.sh start";
253− ExecStop = "${cfg.package}/bin/nifi.sh stop";
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";
268− ProtectProc = "invisible";
269− # Access write directories
270− ReadWritePaths = [ cfg.initPasswordFile ];
273− CapabilityBoundingSet = "";
275− NoNewPrivileges = true;
277− ProtectSystem = "strict";
280− PrivateDevices = 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;
296− PrivateMounts = true;
297− # System Call Filtering
298− SystemCallArchitectures = "native";
299− SystemCallFilter = [ "~@cpu-emulation @debug @keyring @memlock @mount @obsolete @resources @privileged @setuid" "@chown" ];
303− users.users = lib.mkMerge [
304− (lib.mkIf (cfg.user == "nifi") {
307− isSystemUser = true;
311− (lib.attrsets.setAttrByPath [ cfg.user "packages" ] [ cfg.package nifiEnv ])
314− users.groups = lib.optionalAttrs (cfg.group == "nifi") {
nixos/modules/services/web-servers/hydron.nix+1−1
@@ -161,5 +161,5 @@ in with lib; {
161 (mkRenamedOptionModule [ "services" "hydron" "baseDir" ] [ "services" "hydron" "dataDir" ])
161 (mkRenamedOptionModule [ "services" "hydron" "baseDir" ] [ "services" "hydron" "dataDir" ])
164− meta.maintainers = with maintainers; [ Madouura ];
164+ meta.maintainers = with maintainers; [ chiiruno ];
nixos/modules/services/web-servers/nginx/default.nix+11−18
@@ -255,22 +255,20 @@ let
255 else defaultListen;
255 else defaultListen;
257 listenString = { addr, port, ssl, extraParameters ? [], ... }:
257 listenString = { addr, port, ssl, extraParameters ? [], ... }:
258− (if ssl && vhost.http3 then "
259− # UDP listener for **QUIC+HTTP/3
260− listen ${addr}:${toString port} http3 "
258+ "listen ${addr}:${toString port} "
261− + optionalString vhost.default "default_server "
262− + optionalString vhost.reuseport "reuseport "
263− + optionalString (extraParameters != []) (concatStringsSep " " extraParameters)
267− listen ${addr}:${toString port} "
268− + optionalString (ssl && vhost.http2) "http2 "
269 + optionalString ssl "ssl "
259 + optionalString ssl "ssl "
260+ + optionalString (ssl && vhost.http2) "http2 "
270 + optionalString vhost.default "default_server "
261 + optionalString vhost.default "default_server "
271− + optionalString vhost.reuseport "reuseport "
272 + optionalString (extraParameters != []) (concatStringsSep " " extraParameters)
262 + optionalString (extraParameters != []) (concatStringsSep " " extraParameters)
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;
275 redirectListen = filter (x: !x.ssl) defaultListen;
273 redirectListen = filter (x: !x.ssl) defaultListen;
@@ -323,11 +321,6 @@ let
323 ssl_conf_command Options KTLS;
321 ssl_conf_command Options KTLS;
326− ${optionalString (hasSSL && vhost.http3) ''
327− # Advertise that HTTP/3 is available
328− add_header Alt-Svc 'h3=":443"; ma=86400' always;
331 ${mkBasicAuth vhostName vhost}
324 ${mkBasicAuth vhostName vhost}
333 ${mkLocations vhost.locations}
326 ${mkLocations vhost.locations}
nixos/modules/services/web-servers/nginx/vhost-options.nix+3−12
@@ -20,7 +20,7 @@ with lib;
20 serverAliases = mkOption {
20 serverAliases = mkOption {
21 type = types.listOf types.str;
21 type = types.listOf types.str;
22 default = [];
22 default = [];
23− example = [ "www.example.org" "example.org" ];
23+ example = ["www.example.org" "example.org"];
24 description = ''
24 description = ''
25 Additional names of virtual hosts served by this virtual host configuration.
25 Additional names of virtual hosts served by this virtual host configuration.
@@ -31,11 +31,11 @@ with lib;
31 addr = mkOption { type = str; description = "IP address."; };
31 addr = mkOption { type = str; description = "IP address."; };
32 port = mkOption { type = int; description = "Port number."; default = 80; };
32 port = mkOption { type = int; description = "Port number."; default = 80; };
33 ssl = mkOption { type = bool; description = "Enable SSL."; default = false; };
33 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" ]; };
36 default = [];
36 default = [];
37 example = [
37 example = [
38− { addr = "195.154.1.1"; port = 443; ssl = true; }
38+ { addr = "195.154.1.1"; port = 443; ssl = true;}
39 { addr = "192.154.1.1"; port = 80; }
39 { addr = "192.154.1.1"; port = 80; }
41 description = ''
41 description = ''
@@ -207,15 +207,6 @@ with lib;
210− reuseport = mkOption {
214− Create an individual listening socket .
215− It is required to specify only once on one of the hosts.
219 root = mkOption {
210 root = mkOption {
220 type = types.nullOr types.path;
211 type = types.nullOr types.path;
221 default = null;
212 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, ... }:
@@ -196,7 +196,7 @@ in
196 programs.evince.enable = mkDefault true;
196 programs.evince.enable = mkDefault true;
197 programs.file-roller.enable = mkDefault true;
197 programs.file-roller.enable = mkDefault true;
199− environment.systemPackages = with pkgs // pkgs.gnome // pkgs.cinnamon; utils.removePackagesByName [
199+ environment.systemPackages = (with pkgs // pkgs.gnome // pkgs.cinnamon; pkgs.gnome.removePackagesByName [
200 # cinnamon team apps
200 # cinnamon team apps
202 blueberry
202 blueberry
@@ -212,7 +212,7 @@ in
212 # external apps shipped with linux-mint
212 # external apps shipped with linux-mint
214 gnome-calculator
214 gnome-calculator
215− ] config.environment.cinnamon.excludePackages;
215+ ] config.environment.cinnamon.excludePackages);
nixos/modules/services/x11/desktop-managers/enlightenment.nix−5
@@ -16,10 +16,6 @@ let
20− maintainers = teams.enlightenment.members;
23 imports = [
19 imports = [
24 (mkRenamedOptionModule [ "services" "xserver" "desktopManager" "e19" "enable" ] [ "services" "xserver" "desktopManager" "enlightenment" "enable" ])
20 (mkRenamedOptionModule [ "services" "xserver" "desktopManager" "e19" "enable" ] [ "services" "xserver" "desktopManager" "enlightenment" "enable" ])
@@ -96,7 +92,6 @@ in
97 services.udisks2.enable = true;
93 services.udisks2.enable = true;
98 services.upower.enable = config.powerManagement.enable;
94 services.upower.enable = config.powerManagement.enable;
99− services.xserver.libinput.enable = mkDefault true;
101 services.dbus.packages = [ e.efl ];
96 services.dbus.packages = [ e.efl ];
nixos/modules/services/x11/desktop-managers/gnome.nix+10−33
@@ -1,4 +1,4 @@
1−{ config, lib, pkgs, utils, ... }:
1+{ config, lib, pkgs, ... }:
@@ -22,9 +22,6 @@ let
22 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' ]
22 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' ]
25− nixos-background-ligtht = pkgs.nixos-artwork.wallpapers.simple-blue;
26− nixos-background-dark = pkgs.nixos-artwork.wallpapers.simple-dark-gray;
28 nixos-gsettings-desktop-schemas = let
25 nixos-gsettings-desktop-schemas = let
29 defaultPackages = with pkgs; [ gsettings-desktop-schemas gnome.gnome-shell ];
26 defaultPackages = with pkgs; [ gsettings-desktop-schemas gnome.gnome-shell ];
@@ -45,11 +42,10 @@ let
45 chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
42 chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
46 cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF
43 cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF
47 [org.gnome.desktop.background]
44 [org.gnome.desktop.background]
48− picture-uri='file://${nixos-background-ligtht.gnomeFilePath}'
45+ picture-uri='file://${pkgs.nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}'
49− picture-uri-dark='file://${nixos-background-dark.gnomeFilePath}'
51 [org.gnome.desktop.screensaver]
47 [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}'
54 ${cfg.favoriteAppsOverride}
50 ${cfg.favoriteAppsOverride}
@@ -59,26 +55,6 @@ let
59 ${pkgs.glib.dev}/bin/glib-compile-schemas $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/
55 ${pkgs.glib.dev}/bin/glib-compile-schemas $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/
62− nixos-background-info = pkgs.writeTextFile rec {
63− name = "nixos-background-info";
65− <?xml version="1.0"?>
66− <!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
68− <wallpaper deleted="false">
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>
79− destination = "/share/gnome-background-properties/nixos.xml";
82 flashbackEnabled = cfg.flashback.enableMetacity || length cfg.flashback.customSessions > 0;
58 flashbackEnabled = cfg.flashback.enableMetacity || length cfg.flashback.customSessions > 0;
83 flashbackWms = optional cfg.flashback.enableMetacity {
59 flashbackWms = optional cfg.flashback.enableMetacity {
84 wmName = "metacity";
60 wmName = "metacity";
@@ -454,7 +430,6 @@ in
454 # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-shell.bst
430 # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-shell.bst
455 environment.systemPackages = with pkgs.gnome; [
431 environment.systemPackages = with pkgs.gnome; [
456 adwaita-icon-theme
432 adwaita-icon-theme
457− nixos-background-info
458 gnome-backgrounds
433 gnome-backgrounds
459 gnome-bluetooth
434 gnome-bluetooth
460 gnome-color-manager
435 gnome-color-manager
@@ -463,6 +438,8 @@ in
463 gnome-shell-extensions
438 gnome-shell-extensions
464 gnome-themes-extra
439 gnome-themes-extra
465 pkgs.gnome-tour # GNOME Shell detects the .desktop file on first log-in.
440 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
466 pkgs.gnome-user-docs
443 pkgs.gnome-user-docs
467 pkgs.orca
444 pkgs.orca
468 pkgs.glib # for gsettings
445 pkgs.glib # for gsettings
@@ -478,7 +455,7 @@ in
478 (mkIf serviceCfg.core-utilities.enable {
455 (mkIf serviceCfg.core-utilities.enable {
479 environment.systemPackages =
456 environment.systemPackages =
480 with pkgs.gnome;
457 with pkgs.gnome;
481− utils.removePackagesByName
458+ removePackagesByName
@@ -538,7 +515,7 @@ in
540 (mkIf serviceCfg.games.enable {
517 (mkIf serviceCfg.games.enable {
541− environment.systemPackages = with pkgs.gnome; utils.removePackagesByName [
518+ environment.systemPackages = (with pkgs.gnome; removePackagesByName [
542 aisleriot
519 aisleriot
544 five-or-more
521 five-or-more
@@ -559,12 +536,12 @@ in
559 quadrapassel
536 quadrapassel
560 swell-foop
537 swell-foop
562− ] config.environment.gnome.excludePackages;
539+ ] config.environment.gnome.excludePackages);
565 # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/-/blob/3.38.0/elements/core/meta-gnome-core-developer-tools.bst
542 # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/-/blob/3.38.0/elements/core/meta-gnome-core-developer-tools.bst
566 (mkIf serviceCfg.core-developer-tools.enable {
543 (mkIf serviceCfg.core-developer-tools.enable {
567− environment.systemPackages = with pkgs.gnome; utils.removePackagesByName [
544+ environment.systemPackages = (with pkgs.gnome; removePackagesByName [
568 dconf-editor
545 dconf-editor
570 pkgs.gnome-builder
547 pkgs.gnome-builder
@@ -573,7 +550,7 @@ in
573 # in default configurations.
550 # in default configurations.
574 # https://github.com/NixOS/nixpkgs/issues/60908
551 # https://github.com/NixOS/nixpkgs/issues/60908
575 /* gnome-boxes */
552 /* gnome-boxes */
576− ] config.environment.gnome.excludePackages;
553+ ] config.environment.gnome.excludePackages);
578 services.sysprof.enable = notExcluded pkgs.sysprof;
555 services.sysprof.enable = notExcluded pkgs.sysprof;
nixos/modules/services/x11/desktop-managers/lumina.nix−4
@@ -10,10 +10,6 @@ let
14− maintainers = teams.lumina.members;
17 options = {
13 options = {
19 services.xserver.desktopManager.lumina.enable = mkOption {
15 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, ... }:
@@ -9,10 +9,6 @@ let
13− maintainers = teams.lxqt.members;
16 options = {
12 options = {
18 services.xserver.desktopManager.lxqt.enable = mkOption {
14 services.xserver.desktopManager.lxqt.enable = mkOption {
@@ -55,7 +51,7 @@ in
55 environment.systemPackages =
51 environment.systemPackages =
56 pkgs.lxqt.preRequisitePackages ++
52 pkgs.lxqt.preRequisitePackages ++
57 pkgs.lxqt.corePackages ++
53 pkgs.lxqt.corePackages ++
58− (utils.removePackagesByName
54+ (pkgs.gnome.removePackagesByName
59 pkgs.lxqt.optionalPackages
55 pkgs.lxqt.optionalPackages
60 config.environment.lxqt.excludePackages);
56 config.environment.lxqt.excludePackages);
@@ -66,11 +62,6 @@ in
66 services.gvfs.enable = true;
62 services.gvfs.enable = true;
68 services.upower.enable = config.powerManagement.enable;
64 services.upower.enable = config.powerManagement.enable;
70− services.xserver.libinput.enable = mkDefault true;
72− xdg.portal.enable = true;
73− xdg.portal.extraPortals = [ pkgs.lxqt.xdg-desktop-portal-lxqt ];
nixos/modules/services/x11/desktop-managers/mate.nix+32−5
@@ -1,9 +1,20 @@
1−{ config, lib, pkgs, utils, ... }:
1+{ config, lib, pkgs, ... }:
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}
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
7 xcfg = config.services.xserver;
18 xcfg = config.services.xserver;
8 cfg = xcfg.desktopManager.mate;
19 cfg = xcfg.desktopManager.mate;
@@ -37,8 +48,24 @@ in
37 pkgs.mate.mate-session-manager
48 pkgs.mate.mate-session-manager
51+ services.xserver.displayManager.sessionCommands = ''
52+ if test "$XDG_CURRENT_DESKTOP" = "MATE"; then
53+ export XDG_MENU_PREFIX=mate-
40− # Let caja find extensions
55+ # Let caja find extensions
41− environment.sessionVariables.CAJA_EXTENSION_DIRS = [ "${config.system.path}/lib/caja/extensions-2.0" ];
56+ export CAJA_EXTENSION_DIRS=$CAJA_EXTENSION_DIRS''${CAJA_EXTENSION_DIRS:+:}${config.system.path}/lib/caja/extensions-2.0
58+ # Let caja extensions find gsettings schemas
59+ ${concatMapStrings (p: ''
60+ if [ -d "${p}/lib/caja/extensions-2.0" ]; then
63+ '') config.environment.systemPackages}
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}
43 # Let mate-panel find applets
70 # Let mate-panel find applets
44 environment.sessionVariables."MATE_PANEL_APPLETS_DIR" = "${config.system.path}/share/mate-panel/applets";
71 environment.sessionVariables."MATE_PANEL_APPLETS_DIR" = "${config.system.path}/share/mate-panel/applets";
@@ -47,7 +74,7 @@ in
47 # Debugging
74 # Debugging
48 environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1";
75 environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1";
50− environment.systemPackages = utils.removePackagesByName
77+ environment.systemPackages = pkgs.gnome.removePackagesByName
51 (pkgs.mate.basePackages ++
78 (pkgs.mate.basePackages ++
52 pkgs.mate.extraPackages ++
79 pkgs.mate.extraPackages ++
@@ -56,6 +83,7 @@ in
56 pkgs.gtk3.out
83 pkgs.gtk3.out
57 pkgs.shared-mime-info
84 pkgs.shared-mime-info
58 pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
85 pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
86+ pkgs.mate.mate-settings-daemon
59 pkgs.yelp # for 'Contents' in 'Help' menus
87 pkgs.yelp # for 'Contents' in 'Help' menus
61 config.environment.mate.excludePackages;
89 config.environment.mate.excludePackages;
@@ -73,7 +101,6 @@ in
73 services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
101 services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
74 services.gvfs.enable = true;
102 services.gvfs.enable = true;
75 services.upower.enable = config.powerManagement.enable;
103 services.upower.enable = config.powerManagement.enable;
76− services.xserver.libinput.enable = mkDefault true;
78 security.pam.services.mate-screensaver.unixAuth = true;
105 security.pam.services.mate-screensaver.unixAuth = true;
nixos/modules/services/x11/desktop-managers/none.nix+5−44
@@ -1,46 +1,7 @@
1−{ config, lib, pkgs, ... }:
4− runXdgAutostart = config.services.xserver.desktopManager.runXdgAutostartIfNone;
8− services.xserver.desktopManager.runXdgAutostartIfNone = mkOption {
2+ services.xserver.desktopManager.session =
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.
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.
27− services.xserver.desktopManager.session = [
29− name = "none";
3+ [ { name = "none";
30− start = optionalString runXdgAutostart ''
4+ start = "";
31− /run/current-system/systemd/bin/systemctl --user start xdg-autostart-if-no-desktop-manager.target
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" ];
nixos/modules/services/x11/desktop-managers/pantheon.nix+3−3
@@ -1,4 +1,4 @@
1−{ config, lib, utils, pkgs, ... }:
1+{ config, lib, pkgs, ... }:
@@ -214,7 +214,7 @@ in
214 elementary-settings-daemon
214 elementary-settings-daemon
215 pantheon-agent-geoclue2
215 pantheon-agent-geoclue2
216 pantheon-agent-polkit
216 pantheon-agent-polkit
217− ]) ++ (utils.removePackagesByName [
217+ ]) ++ (gnome.removePackagesByName [
218 gnome.gnome-font-viewer
218 gnome.gnome-font-viewer
219 gnome.gnome-settings-daemon338
219 gnome.gnome-settings-daemon338
220 ] config.environment.pantheon.excludePackages);
220 ] config.environment.pantheon.excludePackages);
@@ -272,7 +272,7 @@ in
274 (mkIf serviceCfg.apps.enable {
274 (mkIf serviceCfg.apps.enable {
275− environment.systemPackages = with pkgs.pantheon; utils.removePackagesByName ([
275+ environment.systemPackages = with pkgs.pantheon; pkgs.gnome.removePackagesByName ([
276 elementary-calculator
276 elementary-calculator
277 elementary-calendar
277 elementary-calendar
278 elementary-camera
278 elementary-camera
nixos/modules/services/x11/desktop-managers/pantheon.xml+3−3
@@ -3,7 +3,7 @@
3 xml:id="chap-pantheon">
3 xml:id="chap-pantheon">
4 <title>Pantheon Desktop</title>
4 <title>Pantheon Desktop</title>
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.
8 <section xml:id="sec-pantheon-enable">
8 <section xml:id="sec-pantheon-enable">
9 <title>Enabling Pantheon</title>
9 <title>Enabling Pantheon</title>
@@ -89,9 +89,9 @@ switchboard-with-plugs.override {
90 </listitem>
90 </listitem>
91 </varlistentry>
91 </varlistentry>
92− <varlistentry xml:id="sec-pantheon-faq-gnome-and-pantheon">
92+ <varlistentry xml:id="sec-pantheon-faq-gnome3-and-pantheon">
94− I cannot enable both GNOME and Pantheon.
94+ I cannot enable both GNOME 3 and Pantheon.
96 <listitem>
96 <listitem>
nixos/modules/services/x11/desktop-managers/xfce.nix+3−8
@@ -66,12 +66,6 @@ in
66 default = true;
66 default = true;
67 description = "Enable the XFWM (default) window manager.";
67 description = "Enable the XFWM (default) window manager.";
70− enableScreensaver = mkOption {
73− description = "Enable the XFCE screensaver.";
@@ -105,6 +99,7 @@ in
105 ristretto
99 ristretto
106 xfce4-appfinder
100 xfce4-appfinder
107 xfce4-notifyd
101 xfce4-notifyd
108 xfce4-screenshooter
103 xfce4-screenshooter
109 xfce4-session
104 xfce4-session
110 xfce4-settings
105 xfce4-settings
@@ -128,7 +123,7 @@ in
128 ] ++ optionals (!cfg.noDesktop) [
123 ] ++ optionals (!cfg.noDesktop) [
129 xfce4-panel
124 xfce4-panel
130 xfdesktop
125 xfdesktop
131− ] ++ optional cfg.enableScreensaver xfce4-screensaver;
126+ ];
133 environment.pathsToLink = [
128 environment.pathsToLink = [
134 "/share/xfce4"
129 "/share/xfce4"
@@ -174,6 +169,6 @@ in
174 xfce4-notifyd
169 xfce4-notifyd
177− security.pam.services.xfce4-screensaver.unixAuth = cfg.enableScreensaver;
172+ security.pam.services.xfce4-screensaver.unixAuth = true;
nixos/modules/services/x11/xserver.nix+3−10
@@ -1,4 +1,4 @@
1−{ config, lib, utils, pkgs, ... }:
1+{ config, lib, pkgs, ... }:
@@ -181,13 +181,6 @@ in
184− excludePackages = mkOption {
186− example = literalExpression "[ pkgs.xterm ]";
187− type = types.listOf types.package;
188− description = "Which X11 packages to exclude from the default environment";
191 exportConfiguration = mkOption {
184 exportConfiguration = mkOption {
192 type = types.bool;
185 type = types.bool;
193 default = false;
186 default = false;
@@ -662,7 +655,7 @@ in
662 ${cfgPath}.source = xorg.xf86inputevdev.out + "/share" + cfgPath;
655 ${cfgPath}.source = xorg.xf86inputevdev.out + "/share" + cfgPath;
665− environment.systemPackages = utils.removePackagesByName
658+ environment.systemPackages =
666 [ xorg.xorgserver.out
659 [ xorg.xorgserver.out
667 xorg.xrandr
660 xorg.xrandr
668 xorg.xrdb
661 xorg.xrdb
@@ -678,7 +671,7 @@ in
678 pkgs.xdg-utils
671 pkgs.xdg-utils
679 xorg.xf86inputevdev.out # get evdev.4 man page
672 xorg.xf86inputevdev.out # get evdev.4 man page
680 pkgs.nixos-icons # needed for gnome and pantheon about dialog, nixos-manual and maybe more
673 pkgs.nixos-icons # needed for gnome and pantheon about dialog, nixos-manual and maybe more
681− ] config.services.xserver.excludePackages
674+ ]
682 ++ optional (elem "virtualbox" cfg.videoDrivers) xorg.xrefresh;
675 ++ optional (elem "virtualbox" cfg.videoDrivers) xorg.xrefresh;
684 environment.pathsToLink = [ "/share/X11" ];
677 environment.pathsToLink = [ "/share/X11" ];
nixos/modules/system/activation/switch-to-configuration.pl−12
@@ -1,17 +1,5 @@
1#! @perl@/bin/perl
1#! @perl@/bin/perl
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
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
12−printf "Perl script erroneously interpreted as shell script,\ndoes target platform match nixpkgs.crossSystem platform?\n" && exit 1
15use strict;
3use strict;
16use warnings;
4use warnings;
17use Config::IniFiles;
5use Config::IniFiles;
nixos/modules/system/activation/top-level.nix+5−12
@@ -55,18 +55,11 @@ let
55 substituteInPlace $out/dry-activate --subst-var out
55 substituteInPlace $out/dry-activate --subst-var out
56 chmod u+x $out/activate $out/dry-activate
56 chmod u+x $out/activate $out/dry-activate
57 unset activationScript dryActivationScript
57 unset activationScript dryActivationScript
58+ ${pkgs.stdenv.shellDryRun} $out/activate
59+ ${pkgs.stdenv.shellDryRun} $out/dry-activate
59− ${if config.boot.initrd.systemd.enable then ''
60− cp ${config.system.build.bootStage2} $out/prepare-root
61+ cp ${config.system.build.bootStage2} $out/init
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
65− cp "$systemd/lib/systemd/systemd" $out/init
67− cp ${config.system.build.bootStage2} $out/init
68− substituteInPlace $out/init --subst-var-by systemConfig $out
62+ substituteInPlace $out/init --subst-var-by systemConfig $out
71 ln -s ${config.system.build.etc}/etc $out/etc
64 ln -s ${config.system.build.etc}/etc $out/etc
72 ln -s ${config.system.path} $out/sw
65 ln -s ${config.system.path} $out/sw
@@ -163,7 +156,7 @@ in
164 specialisation = mkOption {
157 specialisation = mkOption {
165 default = {};
158 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; }; }";
167 description = ''
160 description = ''
168 Additional configurations to build. If
161 Additional configurations to build. If
169 <literal>inheritParentConfig</literal> is true, the system
162 <literal>inheritParentConfig</literal> is true, the system
nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix+1−1
@@ -33,7 +33,7 @@ let
33 netbootxyz = if cfg.netbootxyz.enable then pkgs.netbootxyz-efi else "";
33 netbootxyz = if cfg.netbootxyz.enable then pkgs.netbootxyz-efi else "";
35 copyExtraFiles = pkgs.writeShellScript "copy-extra-files" ''
35 copyExtraFiles = pkgs.writeShellScript "copy-extra-files" ''
36− empty_file=$(${pkgs.coreutils}/bin/mktemp)
36+ empty_file=$(mktemp)
38 ${concatStrings (mapAttrsToList (n: v: ''
38 ${concatStrings (mapAttrsToList (n: v: ''
39 ${pkgs.coreutils}/bin/install -Dp "${v}" "${efi.efiSysMountPoint}/"${escapeShellArg n}
39 ${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, ... }:
6 luks = config.boot.initrd.luks;
6 luks = config.boot.initrd.luks;
7 kernelPackages = config.boot.kernelPackages;
7 kernelPackages = config.boot.kernelPackages;
8− defaultPrio = (mkOptionDefault {}).priority;
10 commonFunctions = ''
9 commonFunctions = ''
@@ -475,16 +474,6 @@ let
475 preLVM = filterAttrs (n: v: v.preLVM) luks.devices;
474 preLVM = filterAttrs (n: v: v.preLVM) luks.devices;
476 postLVM = filterAttrs (n: v: !v.preLVM) luks.devices;
475 postLVM = filterAttrs (n: v: !v.preLVM) luks.devices;
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}"
486− in "${n} ${v.device} ${if v.keyFile == null then "-" else v.keyFile} ${lib.concatStringsSep "," opts}") luks.devices));
490 imports = [
479 imports = [
@@ -813,18 +802,6 @@ in
813 Commands that should be run right after we have mounted our LUKS device.
802 Commands that should be run right after we have mounted our LUKS device.
817− crypttabExtraOpts = mkOption {
818− type = with types; listOf singleLineStr;
820− example = [ "_netdev" ];
823− Only used with systemd stage 1.
825− Extra options to append to the last column of the generated crypttab file.
@@ -876,31 +853,6 @@ in
876 -> versionAtLeast kernelPackages.kernel.version "5.9";
853 -> versionAtLeast kernelPackages.kernel.version "5.9";
877 message = "boot.initrd.luks.devices.<name>.bypassWorkqueues is not supported for kernels older than 5.9";
854 message = "boot.initrd.luks.devices.<name>.bypassWorkqueues is not supported for kernels older than 5.9";
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.";
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.";
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.";
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.";
893− { assertion = config.boot.initrd.systemd.enable -> !luks.gpgSupport;
894− message = "systemd stage 1 does not support GPG smartcards yet.";
897− { assertion = config.boot.initrd.systemd.enable -> !luks.fido2Support;
898− message = "systemd stage 1 does not support FIDO2 yet.";
901− { assertion = config.boot.initrd.systemd.enable -> !luks.yubikeySupport;
902− message = "systemd stage 1 does not support Yubikeys yet.";
906 # actually, sbp2 driver is the one enabling the DMA attack, but this needs to be tested
858 # actually, sbp2 driver is the one enabling the DMA attack, but this needs to be tested
@@ -915,7 +867,7 @@ in
915 ++ (if builtins.elem "xts" luks.cryptoModules then ["ecb"] else []);
867 ++ (if builtins.elem "xts" luks.cryptoModules then ["ecb"] else []);
917 # copy the cryptsetup binary and it's dependencies
869 # copy the cryptsetup binary and it's dependencies
918− boot.initrd.extraUtilsCommands = mkIf (!config.boot.initrd.systemd.enable) ''
870+ boot.initrd.extraUtilsCommands = ''
919 copy_bin_and_libs ${pkgs.cryptsetup}/bin/cryptsetup
871 copy_bin_and_libs ${pkgs.cryptsetup}/bin/cryptsetup
920 copy_bin_and_libs ${askPass}/bin/cryptsetup-askpass
872 copy_bin_and_libs ${askPass}/bin/cryptsetup-askpass
921 sed -i s,/bin/sh,$out/bin/sh, $out/bin/cryptsetup-askpass
873 sed -i s,/bin/sh,$out/bin/sh, $out/bin/cryptsetup-askpass
@@ -963,7 +915,7 @@ in
966− boot.initrd.extraUtilsCommandsTest = mkIf (!config.boot.initrd.systemd.enable) ''
918+ boot.initrd.extraUtilsCommandsTest = ''
967 $out/bin/cryptsetup --version
919 $out/bin/cryptsetup --version
968 ${optionalString luks.yubikeySupport ''
920 ${optionalString luks.yubikeySupport ''
969 $out/bin/ykchalresp -V
921 $out/bin/ykchalresp -V
@@ -980,28 +932,9 @@ in
983− boot.initrd.systemd = {
984− contents."/etc/crypttab".source = stage1Crypttab;
986− extraBin.systemd-cryptsetup = "${config.boot.initrd.systemd.package}/lib/systemd/systemd-cryptsetup";
988− additionalUpstreamUnits = [
989− "cryptsetup-pre.target"
991− "remote-cryptsetup.target"
994− "${config.boot.initrd.systemd.package}/lib/systemd/systemd-cryptsetup"
995− "${config.boot.initrd.systemd.package}/lib/systemd/system-generators/systemd-cryptsetup-generator"
999− # We do this because we need the udev rules from the package
1000− boot.initrd.services.lvm.enable = true;
1002− boot.initrd.preFailCommands = mkIf (!config.boot.initrd.systemd.enable) postCommands;
935+ boot.initrd.preFailCommands = postCommands;
1003− boot.initrd.preLVMCommands = mkIf (!config.boot.initrd.systemd.enable) (commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand preLVM) + postCommands);
936+ boot.initrd.preLVMCommands = commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand preLVM) + postCommands;
1004− boot.initrd.postDeviceCommands = mkIf (!config.boot.initrd.systemd.enable) (commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand postLVM) + postCommands);
937+ boot.initrd.postDeviceCommands = commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand postLVM) + postCommands;
1006 environment.systemPackages = [ pkgs.cryptsetup ];
939 environment.systemPackages = [ pkgs.cryptsetup ];
nixos/modules/system/boot/networkd.nix+1−135
@@ -10,36 +10,6 @@ let
14− sectionNetwork = checkUnitConfig "Network" [
17− "SpeedMeterIntervalSec"
18− "ManageForeignRoutingPolicyRules"
19− "ManageForeignRoutes"
22− (assertValueOneOf "SpeedMeter" boolValues)
23− (assertInt "SpeedMeterIntervalSec")
24− (assertValueOneOf "ManageForeignRoutingPolicyRules" boolValues)
25− (assertValueOneOf "ManageForeignRoutes" boolValues)
28− sectionDHCPv4 = checkUnitConfig "DHCPv4" [
35− sectionDHCPv6 = checkUnitConfig "DHCPv6" [
45 sectionLink = checkUnitConfig "Link" [
15 sectionLink = checkUnitConfig "Link" [
@@ -901,44 +871,6 @@ let
905− networkConfig = mkOption {
907− example = { SpeedMeter = true; ManageForeignRoutingPolicyRules = false; };
908− type = types.addCheck (types.attrsOf unitOption) check.global.sectionNetwork;
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.
917− dhcpV4Config = mkOption {
919− example = { DUIDType = "vendor"; };
920− type = types.addCheck (types.attrsOf unitOption) check.global.sectionDHCPv4;
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.
929− dhcpV6Config = mkOption {
931− example = { DUIDType = "vendor"; };
932− type = types.addCheck (types.attrsOf unitOption) check.global.sectionDHCPv6;
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.
942 linkOptions = commonNetworkOptions // {
874 linkOptions = commonNetworkOptions // {
943 # overwrite enable option from above
875 # overwrite enable option from above
944 enable = mkOption {
876 enable = mkOption {
@@ -1587,39 +1519,6 @@ let
1590− networkdConfig = { config, ... }: {
1592− routeTables = mkOption {
1594− example = { foo = 27; };
1595− type = with types; attrsOf int;
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.
1603− addRouteTablesToIPRoute2 = mkOption {
1608− If true and routeTables are set, then the specified route tables
1609− will also be installed into /etc/iproute2/rt_tables.
1615− networkConfig = optionalAttrs (config.routeTables != { }) {
1616− RouteTable = mapAttrsToList
1617− (name: number: "${name}:${toString number}")
1618− config.routeTables;
1623 commonMatchText = def: optionalString (def.matchConfig != { }) ''
1522 commonMatchText = def: optionalString (def.matchConfig != { }) ''
1625 ${attrsToSection def.matchConfig}
1524 ${attrsToSection def.matchConfig}
@@ -1701,20 +1600,6 @@ let
1701 + def.extraConfig;
1600 + def.extraConfig;
1704− renderConfig = def:
1707− ${attrsToSection def.networkConfig}
1709− + optionalString (def.dhcpV4Config != { }) ''
1711− ${attrsToSection def.dhcpV4Config}
1713− + optionalString (def.dhcpV6Config != { }) ''
1715− ${attrsToSection def.dhcpV6Config}
1718 networkToUnit = name: def:
1603 networkToUnit = name: def:
1719 { inherit (def) enable;
1604 { inherit (def) enable;
1720 text = commonMatchText def
1605 text = commonMatchText def
@@ -1847,12 +1732,6 @@ in
1847 description = "Definition of systemd networks.";
1732 description = "Definition of systemd networks.";
1850− systemd.network.config = mkOption {
1852− type = with types; submodule [ { options = networkdOptions; } networkdConfig ];
1853− description = "Definition of global systemd network config.";
1856 systemd.network.units = mkOption {
1735 systemd.network.units = mkOption {
1857 description = "Definition of networkd units.";
1736 description = "Definition of networkd units.";
1858 default = {};
1737 default = {};
@@ -1944,9 +1823,7 @@ in
1944 systemd.services.systemd-networkd = {
1823 systemd.services.systemd-networkd = {
1945 wantedBy = [ "multi-user.target" ];
1824 wantedBy = [ "multi-user.target" ];
1946 aliases = [ "dbus-org.freedesktop.network1.service" ];
1825 aliases = [ "dbus-org.freedesktop.network1.service" ];
1947− restartTriggers = map (x: x.source) (attrValues unitFiles) ++ [
1826+ restartTriggers = map (x: x.source) (attrValues unitFiles);
1948− config.environment.etc."systemd/networkd.conf".source
1952 systemd.services.systemd-networkd-wait-online = {
1829 systemd.services.systemd-networkd-wait-online = {
@@ -1969,17 +1846,6 @@ in
1972− environment.etc."systemd/networkd.conf" = renderConfig cfg.config;
1974− networking.iproute2 = mkIf (cfg.config.addRouteTablesToIPRoute2 && cfg.config.routeTables != { }) {
1975− enable = mkDefault true;
1976− rttablesExtraConfig = ''
1978− # Extra tables defined in NixOS systemd.networkd.config.routeTables.
1979− ${concatStringsSep "\n" (mapAttrsToList (name: number: "${toString number} ${name}") cfg.config.routeTables)}
1983 services.resolved.enable = mkDefault true;
1849 services.resolved.enable = mkDefault true;
nixos/modules/system/boot/stage-1-init.sh+5−1
@@ -318,7 +318,11 @@ checkFS() {
319 echo "checking $device..."
319 echo "checking $device..."
321− fsck -V -a "$device"
321+ fsckFlags=
322+ if test "$fsType" != "btrfs"; then
325+ fsck $fsckFlags "$device"
322 fsckResult=$?
326 fsckResult=$?
324 if test $(($fsckResult | 2)) = $fsckResult; then
328 if test $(($fsckResult | 2)) = $fsckResult; then
nixos/modules/system/boot/stage-1.nix+12−7
@@ -355,7 +355,7 @@ let
355 [ { object = bootStage1;
355 [ { object = bootStage1;
356 symlink = "/init";
356 symlink = "/init";
358− { object = pkgs.writeText "mdadm.conf" config.boot.initrd.services.swraid.mdadmConf;
358+ { object = pkgs.writeText "mdadm.conf" config.boot.initrd.mdadmConf;
359 symlink = "/etc/mdadm.conf";
359 symlink = "/etc/mdadm.conf";
361 { object = pkgs.runCommand "initrd-kmod-blacklist-ubuntu" {
361 { object = pkgs.runCommand "initrd-kmod-blacklist-ubuntu" {
@@ -420,7 +420,7 @@ let
420 ${lib.optionalString (config.boot.initrd.secrets == {})
420 ${lib.optionalString (config.boot.initrd.secrets == {})
421 "exit 0"}
421 "exit 0"}
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
425 function cleanup {
425 function cleanup {
426 if [ -n "$tmp" -a -d "$tmp" ]; then
426 if [ -n "$tmp" -a -d "$tmp" ]; then
@@ -440,7 +440,7 @@ let
440 ) config.boot.initrd.secrets)
440 ) config.boot.initrd.secrets)
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) | \
444 ${compressorExe} ${lib.escapeShellArgs initialRamdisk.compressorArgs} >> "$1"
444 ${compressorExe} ${lib.escapeShellArgs initialRamdisk.compressorArgs} >> "$1"
@@ -505,6 +505,14 @@ in
508+ boot.initrd.mdadmConf = mkOption {
512+ Contents of <filename>/etc/mdadm.conf</filename> in stage 1.
508 boot.initrd.preLVMCommands = mkOption {
516 boot.initrd.preLVMCommands = mkOption {
509 default = "";
517 default = "";
510 type = types.lines;
518 type = types.lines;
@@ -728,9 +736,6 @@ in
730 boot.initrd.supportedFilesystems = map (fs: fs.fsType) fileSystems;
738 boot.initrd.supportedFilesystems = map (fs: fs.fsType) fileSystems;
734− (mkRenamedOptionModule [ "boot" "initrd" "mdadmConf" ] [ "boot" "initrd" "services" "swraid" "mdadmConf" ])
nixos/modules/system/boot/stage-2-init.sh+45−63
@@ -5,30 +5,28 @@ systemConfig=@systemConfig@
5export HOME=/root PATH="@path@"
5export HOME=/root PATH="@path@"
8−if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" != true ]; then
9− # Process the kernel command line.
8+# Process the kernel command line.
10− for o in $(</proc/cmdline); do
9+for o in $(</proc/cmdline); do
11− case $o in
10+ case $o in
12− boot.debugtrace)
11+ boot.debugtrace)
13− # Show each command.
12+ # Show each command.
20− # Print a greeting.
19+# Print a greeting.
22− echo -e "\e[1;32m<<< NixOS Stage 2 >>>\e[0m"
21+echo -e "\e[1;32m<<< NixOS Stage 2 >>>\e[0m"
26− # Normally, stage 1 mounts the root filesystem read/writable.
25+# Normally, stage 1 mounts the root filesystem read/writable.
27− # However, in some environments, stage 2 is executed directly, and the
26+# However, in some environments, stage 2 is executed directly, and the
28− # root is read-only. So make it writable here.
27+# root is read-only. So make it writable here.
29− if [ -z "$container" ]; then
28+if [ -z "$container" ]; then
30− mount -n -o remount,rw none /
29+ mount -n -o remount,rw none /
@@ -41,12 +39,6 @@ if [ ! -e /proc/1 ]; then
41 local options="$3"
39 local options="$3"
42 local fsType="$4"
40 local fsType="$4"
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
50 install -m 0755 -d "$mountPoint"
42 install -m 0755 -d "$mountPoint"
51 mount -n -t "$fsType" -o "$options" "$device" "$mountPoint"
43 mount -n -t "$fsType" -o "$options" "$device" "$mountPoint"
@@ -54,11 +46,7 @@ if [ ! -e /proc/1 ]; then
57−if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" = true ]; then
58− echo "booting system configuration ${systemConfig}"
60− echo "booting system configuration $systemConfig" > /dev/kmsg
49+echo "booting system configuration $systemConfig" > /dev/kmsg
64# Make /nix/store a read-only bind mount to enforce immutability of
52# Make /nix/store a read-only bind mount to enforce immutability of
@@ -80,26 +68,24 @@ if [ -n "@readOnlyStore@" ]; then
83−if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" != true ]; then
84− # Use /etc/resolv.conf supplied by systemd-nspawn, if applicable.
71+# Use /etc/resolv.conf supplied by systemd-nspawn, if applicable.
85− if [ -n "@useHostResolvConf@" ] && [ -e /etc/resolv.conf ]; then
72+if [ -n "@useHostResolvConf@" ] && [ -e /etc/resolv.conf ]; then
86− resolvconf -m 1000 -a host </etc/resolv.conf
73+ resolvconf -m 1000 -a host </etc/resolv.conf
90− # Log the script output to /dev/kmsg or /run/log/stage-2-init.log.
77+# 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.
78+# Only at this point are all the necessary prerequisites ready for these commands.
92− exec {logOutFd}>&1 {logErrFd}>&2
79+exec {logOutFd}>&1 {logErrFd}>&2
93− if test -w /dev/kmsg; then
80+if test -w /dev/kmsg; then
94− exec > >(tee -i /proc/self/fd/"$logOutFd" | while read -r line; do
81+ exec > >(tee -i /proc/self/fd/"$logOutFd" | while read -r line; do
95− if test -n "$line"; then
82+ if test -n "$line"; then
96− echo "<7>stage-2-init: $line" > /dev/kmsg
83+ echo "<7>stage-2-init: $line" > /dev/kmsg
98− done) 2>&1
85+ done) 2>&1
100− mkdir -p /run/log
87+ mkdir -p /run/log
101− exec > >(tee -i /run/log/stage-2-init.log) 2>&1
88+ exec > >(tee -i /run/log/stage-2-init.log) 2>&1
@@ -130,15 +116,11 @@ ln -sfn "$systemConfig" /run/booted-system
130: >> /etc/machine-id
116: >> /etc/machine-id
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.
119+# Reset the logging file descriptors.
137− exec 1>&$logOutFd 2>&$logErrFd
120+exec 1>&$logOutFd 2>&$logErrFd
138− exec {logOutFd}>&- {logErrFd}>&-
121+exec {logOutFd}>&- {logErrFd}>&-
141− # Start systemd in a clean environment.
124+# Start systemd in a clean environment.
142− echo "starting systemd..."
125+echo "starting systemd..."
143− exec @systemdExecutable@ "$@"
126+exec @systemdExecutable@ "$@"
nixos/modules/system/boot/systemd.nix+8
@@ -573,6 +573,14 @@ in
574 (filterAttrs (name: service: service.enable && service.startAt != []) cfg.services);
574 (filterAttrs (name: service: service.enable && service.startAt != []) cfg.services);
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;
582+ (filterAttrs (name: service: service.startAt != []) cfg.user.services);
576 # Some overrides to upstream units.
584 # Some overrides to upstream units.
577 systemd.services."systemd-backlight@".restartIfChanged = false;
585 systemd.services."systemd-backlight@".restartIfChanged = false;
578 systemd.services."systemd-fsck@".restartIfChanged = false;
586 systemd.services."systemd-fsck@".restartIfChanged = false;
nixos/modules/system/boot/systemd/initrd-secrets.nixdeleted−36
@@ -1,36 +0,0 @@
1−{ config, pkgs, lib, ... }:
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);
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;
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.
22− for secret in $(cd /.initrd-secrets; find . -type f); do
23− mkdir -p "$(dirname "/$secret")"
24− cp "/.initrd-secrets/$secret" "/$secret"
30− RemainAfterExit = true;
33− # The script needs this
34− boot.initrd.systemd.extraBin.find = "${pkgs.findutils}/bin/find";
nixos/modules/system/boot/systemd/initrd.nix+56−108
@@ -34,6 +34,7 @@ let
34 "initrd-switch-root.service"
34 "initrd-switch-root.service"
35 "initrd-switch-root.target"
35 "initrd-switch-root.target"
36 "initrd.target"
36 "initrd.target"
37+ "initrd-udevadm-cleanup-db.service"
37 "kexec.target"
38 "kexec.target"
38 "kmod-static-nodes.service"
39 "kmod-static-nodes.service"
39 "local-fs-pre.target"
40 "local-fs-pre.target"
@@ -65,10 +66,17 @@ let
65 "systemd-kexec.service"
66 "systemd-kexec.service"
66 "systemd-modules-load.service"
67 "systemd-modules-load.service"
67 "systemd-poweroff.service"
68 "systemd-poweroff.service"
69+ "systemd-random-seed.service"
68 "systemd-reboot.service"
70 "systemd-reboot.service"
69 "systemd-sysctl.service"
71 "systemd-sysctl.service"
70 "systemd-tmpfiles-setup-dev.service"
72 "systemd-tmpfiles-setup-dev.service"
71 "systemd-tmpfiles-setup.service"
73 "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"
72 "timers.target"
80 "timers.target"
73 "umount.target"
81 "umount.target"
@@ -105,9 +113,6 @@ let
105 opts = options ++ optional autoFormat "x-systemd.makefs" ++ optional autoResize "x-systemd.growfs";
113 opts = options ++ optional autoFormat "x-systemd.makefs" ++ optional autoResize "x-systemd.growfs";
106 in "${device} /sysroot${mountPoint} ${fsType} ${lib.concatStringsSep "," opts}") fileSystems);
114 in "${device} /sysroot${mountPoint} ${fsType} ${lib.concatStringsSep "," opts}") fileSystems);
108− needMakefs = lib.any (fs: fs.autoFormat) fileSystems;
109− needGrowfs = lib.any (fs: fs.autoResize) fileSystems;
111 kernel-name = config.boot.kernelPackages.kernel.name or "kernel";
116 kernel-name = config.boot.kernelPackages.kernel.name or "kernel";
112 modulesTree = config.system.modulesTree.override { name = kernel-name + "-modules"; };
117 modulesTree = config.system.modulesTree.override { name = kernel-name + "-modules"; };
113 firmware = config.hardware.firmware;
118 firmware = config.hardware.firmware;
@@ -120,16 +125,13 @@ let
122 initrdBinEnv = pkgs.buildEnv {
127 initrdBinEnv = pkgs.buildEnv {
123− name = "initrd-bin-env";
128+ name = "initrd-emergency-env";
124 paths = map getBin cfg.initrdBin;
129 paths = map getBin cfg.initrdBin;
125 pathsToLink = ["/bin" "/sbin"];
130 pathsToLink = ["/bin" "/sbin"];
126 postBuild = concatStringsSep "\n" (mapAttrsToList (n: v: "ln -s '${v}' $out/bin/'${n}'") cfg.extraBin);
131 postBuild = concatStringsSep "\n" (mapAttrsToList (n: v: "ln -s '${v}' $out/bin/'${n}'") cfg.extraBin);
129 initialRamdisk = pkgs.makeInitrdNG {
134 initialRamdisk = pkgs.makeInitrdNG {
130− name = "initrd-${kernel-name}";
131− inherit (config.boot.initrd) compressor compressorArgs prepend;
133 contents = map (path: { object = path; symlink = ""; }) (subtractLists cfg.suppressedStorePaths cfg.storePaths)
135 contents = map (path: { object = path; symlink = ""; }) (subtractLists cfg.suppressedStorePaths cfg.storePaths)
134 ++ mapAttrsToList (_: v: { object = v.source; symlink = v.target; }) (filterAttrs (_: v: v.enable) cfg.contents);
136 ++ mapAttrsToList (_: v: { object = v.source; symlink = v.target; }) (filterAttrs (_: v: v.enable) cfg.contents);
@@ -158,14 +160,44 @@ in {
159 visible = false;
161 visible = false;
160 default = {};
162 default = {};
161− type = utils.systemdUtils.types.initrdContents;
163+ type = types.attrsOf (types.submodule ({ config, options, name, ... }: {
165+ enable = mkEnableOption "copying of this file to initrd and symlinking it" // { default = true; };
170+ Path of the symlink.
177+ type = types.nullOr types.lines;
178+ description = "Text of the file.";
183+ description = "Path of the source file.";
188+ source = mkIf (config.text != null) (
189+ let name' = "initrd-" + baseNameOf name;
190+ in mkDerivedConfig options.text (pkgs.writeText name')
164 storePaths = mkOption {
196 storePaths = mkOption {
165 description = ''
197 description = ''
166 Store paths to copy into the initrd as well.
198 Store paths to copy into the initrd as well.
168− type = with types; listOf (oneOf [ singleLineStr package ]);
200+ type = types.listOf types.singleLineStr;
169 default = [];
201 default = [];
@@ -323,9 +355,8 @@ in {
323 boot.initrd.availableKernelModules = [ "autofs4" ]; # systemd needs this for some features
355 boot.initrd.availableKernelModules = [ "autofs4" ]; # systemd needs this for some features
325 boot.initrd.systemd = {
357 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;
327 extraBin = {
359 extraBin = {
328− less = "${pkgs.less}/bin/less";
329 mount = "${cfg.package.util-linux}/bin/mount";
360 mount = "${cfg.package.util-linux}/bin/mount";
330 umount = "${cfg.package.util-linux}/bin/umount";
361 umount = "${cfg.package.util-linux}/bin/umount";
@@ -336,13 +367,12 @@ in {
337 "/etc/systemd/system.conf".text = ''
368 "/etc/systemd/system.conf".text = ''
338 [Manager]
369 [Manager]
339− DefaultEnvironment=PATH=/bin:/sbin ${optionalString (isBool cfg.emergencyAccess && cfg.emergencyAccess) "SYSTEMD_SULOGIN_FORCE=1"}
370+ DefaultEnvironment=PATH=/bin:/sbin
342 "/etc/fstab".source = fstab;
373 "/etc/fstab".source = fstab;
344 "/lib/modules".source = "${modulesClosure}/lib/modules";
375 "/lib/modules".source = "${modulesClosure}/lib/modules";
345− "/lib/firmware".source = "${modulesClosure}/lib/firmware";
347 "/etc/modules-load.d/nixos.conf".text = concatStringsSep "\n" config.boot.initrd.kernelModules;
377 "/etc/modules-load.d/nixos.conf".text = concatStringsSep "\n" config.boot.initrd.kernelModules;
@@ -354,32 +384,25 @@ in {
355 "/etc/sysctl.d/nixos.conf".text = "kernel.modprobe = /sbin/modprobe";
385 "/etc/sysctl.d/nixos.conf".text = "kernel.modprobe = /sbin/modprobe";
356 "/etc/modprobe.d/systemd.conf".source = "${cfg.package}/lib/modprobe.d/systemd.conf";
386 "/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
360− "/etc/modprobe.d/debian.conf".source = pkgs.kmod-debian-aliases;
364 storePaths = [
389 storePaths = [
365 # systemd tooling
390 # systemd tooling
366 "${cfg.package}/lib/systemd/systemd-fsck"
391 "${cfg.package}/lib/systemd/systemd-fsck"
367− (lib.mkIf needGrowfs "${cfg.package}/lib/systemd/systemd-growfs")
392+ "${cfg.package}/lib/systemd/systemd-growfs"
368 "${cfg.package}/lib/systemd/systemd-hibernate-resume"
393 "${cfg.package}/lib/systemd/systemd-hibernate-resume"
369 "${cfg.package}/lib/systemd/systemd-journald"
394 "${cfg.package}/lib/systemd/systemd-journald"
370− (lib.mkIf needMakefs "${cfg.package}/lib/systemd/systemd-makefs")
395+ "${cfg.package}/lib/systemd/systemd-makefs"
371 "${cfg.package}/lib/systemd/systemd-modules-load"
396 "${cfg.package}/lib/systemd/systemd-modules-load"
372 "${cfg.package}/lib/systemd/systemd-remount-fs"
397 "${cfg.package}/lib/systemd/systemd-remount-fs"
373− "${cfg.package}/lib/systemd/systemd-shutdown"
374 "${cfg.package}/lib/systemd/systemd-sulogin-shell"
398 "${cfg.package}/lib/systemd/systemd-sulogin-shell"
375 "${cfg.package}/lib/systemd/systemd-sysctl"
399 "${cfg.package}/lib/systemd/systemd-sysctl"
400+ "${cfg.package}/lib/systemd/systemd-udevd"
401+ "${cfg.package}/lib/systemd/systemd-vconsole-setup"
377− # generators
403+ # additional systemd directories
378− "${cfg.package}/lib/systemd/system-generators/systemd-debug-generator"
379− "${cfg.package}/lib/systemd/system-generators/systemd-fstab-generator"
404+ "${cfg.package}/lib/systemd/system-generators"
380− "${cfg.package}/lib/systemd/system-generators/systemd-gpt-auto-generator"
405+ "${cfg.package}/lib/udev"
381− "${cfg.package}/lib/systemd/system-generators/systemd-hibernate-resume-generator"
382− "${cfg.package}/lib/systemd/system-generators/systemd-run-generator"
384 # utilities needed by systemd
407 # utilities needed by systemd
385 "${cfg.package.util-linux}/bin/mount"
408 "${cfg.package.util-linux}/bin/mount"
@@ -387,7 +410,7 @@ in {
387 "${cfg.package.util-linux}/bin/sulogin"
410 "${cfg.package.util-linux}/bin/sulogin"
389 # so NSS can look up usernames
412 # so NSS can look up usernames
390− "${pkgs.glibc}/lib/libnss_files.so.2"
413+ "${pkgs.glibc}/lib/libnss_files.so"
391 ] ++ jobScripts;
414 ] ++ jobScripts;
393 targets.initrd.aliases = ["default.target"];
416 targets.initrd.aliases = ["default.target"];
@@ -405,6 +428,9 @@ in {
405 (v: let n = escapeSystemdPath v.where;
428 (v: let n = escapeSystemdPath v.where;
406 in nameValuePair "${n}.automount" (automountToUnit n v)) cfg.automounts);
429 in nameValuePair "${n}.automount" (automountToUnit n v)) cfg.automounts);
431+ services.emergency = mkIf (isBool cfg.emergencyAccess && cfg.emergencyAccess) {
432+ environment.SYSTEMD_SULOGIN_FORCE = "1";
408 # The unit in /run/systemd/generator shadows the unit in
434 # The unit in /run/systemd/generator shadows the unit in
409 # /etc/systemd/system, but will still apply drop-ins from
435 # /etc/systemd/system, but will still apply drop-ins from
410 # /etc/systemd/system/foo.service.d/
436 # /etc/systemd/system/foo.service.d/
@@ -417,86 +443,8 @@ in {
417 mkdir -p $out/etc/systemd/system
443 mkdir -p $out/etc/systemd/system
418 touch $out/etc/systemd/system/systemd-{makefs,growfs}@.service
444 touch $out/etc/systemd/system/systemd-{makefs,growfs}@.service
420− services."systemd-makefs@" = lib.mkIf needMakefs { unitConfig.IgnoreOnIsolate = true; };
446+ services."systemd-makefs@".unitConfig.IgnoreOnIsolate = true;
421− services."systemd-growfs@" = lib.mkIf needGrowfs { unitConfig.IgnoreOnIsolate = true; };
447+ services."systemd-growfs@".unitConfig.IgnoreOnIsolate = true;
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";
430− script = /* bash */ ''
432− export PATH="/bin:${cfg.package.util-linux}/bin"
434− # Figure out what closure to boot
436− for o in $(< /proc/cmdline); do
439− IFS== read -r -a initParam <<< "$o"
440− closure="$(dirname "''${initParam[1]}")"
446− if [ -z "''${closure:-}" ]; then
447− echo 'No init= parameter on the kernel command line' >&2
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"
458− echo 'NEW_INIT=' > /etc/switch-root.conf
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
466− # Initialize the system
467− export IN_NIXOS_SYSTEMD_STAGE1=true
468− exec chroot /sysroot $closure/prepare-root
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";
480− ''systemctl --no-block switch-root /sysroot "''${NEW_INIT}"''
484− services.panic-on-fail = {
485− wantedBy = ["emergency.target"];
487− DefaultDependencies = false;
488− ConditionKernelCommandLine = [
489− "|boot.panic_on_fail"
494− echo c > /proc/sysrq-trigger
496− serviceConfig.Type = "oneshot";
500− boot.kernelParams = lib.mkIf (config.boot.resumeDevice != "") [ "resume=${config.boot.resumeDevice}" ];
nixos/modules/system/boot/systemd/shutdown.nixdeleted−58
@@ -1,58 +0,0 @@
1−{ config, lib, utils, pkgs, ... }: let
3− cfg = config.systemd.shutdownRamfs;
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));
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 ''
17− "/lib/systemd/system-shutdown/zpool-sync-shutdown".source = writeShellScript "zpool" "exec ''${zfs}/bin/zpool sync"
20− type = utils.systemdUtils.types.initrdContents;
23− storePaths = lib.mkOption {
25− Store paths to copy into the shutdown ramfs as well.
27− type = lib.types.listOf lib.types.singleLineStr;
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"];
36− systemd.services.generate-shutdown-ramfs = {
37− description = "Generate shutdown ramfs";
38− wantedBy = [ "shutdown.target" ];
39− before = [ "shutdown.target" ];
41− DefaultDependencies = false;
42− ConditionFileIsExecutable = [
43− "!/run/initramfs/shutdown"
47− path = [pkgs.util-linux pkgs.makeInitrdNGTool];
48− serviceConfig.Type = "oneshot";
50− mkdir -p /run/initramfs
51− if ! mountpoint -q /run/initramfs; then
52− mount -t tmpfs tmpfs /run/initramfs
54− make-initrd-ng ${ramfsContents} /run/initramfs
nixos/modules/tasks/auto-upgrade.nix+7−32
@@ -63,16 +63,13 @@ in {
65 dates = mkOption {
65 dates = mkOption {
67 default = "04:40";
66 default = "04:40";
68− example = "daily";
67+ type = types.str;
69 description = ''
68 description = ''
70− How often or when upgrade occurs. For most desktop and server systems
71− a sufficient upgrade frequency is once a day.
73− The format is described in
69+ Specification (in the format described by
74 <citerefentry><refentrytitle>systemd.time</refentrytitle>
70 <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.
@@ -126,22 +123,6 @@ in {
129− persistent = mkOption {
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.
@@ -236,17 +217,11 @@ in {
238 startAt = cfg.dates;
219 startAt = cfg.dates;
240− after = [ "network-online.target" ];
241− wants = [ "network-online.target" ];
244− systemd.timers.nixos-upgrade = {
222+ systemd.timers.nixos-upgrade.timerConfig.RandomizedDelaySec =
246− RandomizedDelaySec = cfg.randomizedDelaySec;
223+ cfg.randomizedDelaySec;
247− Persistent = cfg.persistent;
224+
nixos/modules/tasks/bcache.nix+6−16
@@ -1,23 +1,13 @@
1−{ config, lib, pkgs, ... }:
1+{ pkgs, ... }:
4− options.boot.initrd.services.bcache.enable = (lib.mkEnableOption "bcache support in the initrd") // {
5− visible = false; # only works with systemd stage 1
8− config = {
5+ environment.systemPackages = [ pkgs.bcache-tools ];
10− environment.systemPackages = [ pkgs.bcache-tools ];
7+ services.udev.packages = [ pkgs.bcache-tools ];
9+ boot.initrd.extraUdevRulesCommands = ''
12− services.udev.packages = [ pkgs.bcache-tools ];
10+ cp -v ${pkgs.bcache-tools}/lib/udev/rules.d/*.rules $out/
14− boot.initrd.extraUdevRulesCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ''
15− cp -v ${pkgs.bcache-tools}/lib/udev/rules.d/*.rules $out/
18− boot.initrd.services.udev = lib.mkIf config.boot.initrd.services.bcache.enable {
19− packages = [ pkgs.bcache-tools ];
20− binPackages = [ pkgs.bcache-tools ];
nixos/modules/tasks/filesystems/btrfs.nix+3−3
@@ -66,19 +66,19 @@ in
69− boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
69+ boot.initrd.extraUtilsCommands = mkIf inInitrd
71 copy_bin_and_libs ${pkgs.btrfs-progs}/bin/btrfs
71 copy_bin_and_libs ${pkgs.btrfs-progs}/bin/btrfs
72 ln -sv btrfs $out/bin/btrfsck
72 ln -sv btrfs $out/bin/btrfsck
73 ln -sv btrfsck $out/bin/fsck.btrfs
73 ln -sv btrfsck $out/bin/fsck.btrfs
76− boot.initrd.extraUtilsCommandsTest = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
76+ boot.initrd.extraUtilsCommandsTest = mkIf inInitrd
78 $out/bin/btrfs --version
78 $out/bin/btrfs --version
81− boot.initrd.postDeviceCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
81+ boot.initrd.postDeviceCommands = mkIf inInitrd
83 btrfs device scan
83 btrfs device scan
nixos/modules/tasks/filesystems/cifs.nix+1−1
@@ -16,7 +16,7 @@ in
16 boot.initrd.availableKernelModules = mkIf inInitrd
16 boot.initrd.availableKernelModules = mkIf inInitrd
17 [ "cifs" "nls_utf8" "hmac" "md4" "ecb" "des_generic" "sha256" ];
17 [ "cifs" "nls_utf8" "hmac" "md4" "ecb" "des_generic" "sha256" ];
19− boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
19+ boot.initrd.extraUtilsCommands = mkIf inInitrd
21 copy_bin_and_libs ${pkgs.cifs-utils}/sbin/mount.cifs
21 copy_bin_and_libs ${pkgs.cifs-utils}/sbin/mount.cifs
nixos/modules/tasks/filesystems/ext.nix+4−10
@@ -1,20 +1,14 @@
1−{ config, lib, pkgs, ... }:
1+{ pkgs, ... }:
5− inInitrd = lib.any (fs: fs == "ext2" || fs == "ext3" || fs == "ext4") config.boot.initrd.supportedFilesystems;
10 config = {
4 config = {
12− system.fsPackages = lib.mkIf (config.boot.initrd.systemd.enable -> inInitrd) [ pkgs.e2fsprogs ];
6+ system.fsPackages = [ pkgs.e2fsprogs ];
14 # As of kernel 4.3, there is no separate ext3 driver (they're also handled by ext4.ko)
8 # 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" ];
17− boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable)
11+ boot.initrd.extraUtilsCommands =
19 # Copy e2fsck and friends.
13 # Copy e2fsck and friends.
20 copy_bin_and_libs ${pkgs.e2fsprogs}/sbin/e2fsck
14 copy_bin_and_libs ${pkgs.e2fsprogs}/sbin/e2fsck
nixos/modules/tasks/filesystems/f2fs.nix+1−1
@@ -13,7 +13,7 @@ in
14 boot.initrd.availableKernelModules = mkIf inInitrd [ "f2fs" "crc32" ];
14 boot.initrd.availableKernelModules = mkIf inInitrd [ "f2fs" "crc32" ];
16− boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable) ''
16+ boot.initrd.extraUtilsCommands = mkIf inInitrd ''
17 copy_bin_and_libs ${pkgs.f2fs-tools}/sbin/fsck.f2fs
17 copy_bin_and_libs ${pkgs.f2fs-tools}/sbin/fsck.f2fs
18 ${optionalString (any (fs: fs.autoResize) fileSystems) ''
18 ${optionalString (any (fs: fs.autoResize) fileSystems) ''
19 # We need f2fs-tools' tools to resize filesystems
19 # We need f2fs-tools' tools to resize filesystems
nixos/modules/tasks/filesystems/jfs.nix+1−1
@@ -12,7 +12,7 @@ in
13 boot.initrd.kernelModules = mkIf inInitrd [ "jfs" ];
13 boot.initrd.kernelModules = mkIf inInitrd [ "jfs" ];
15− boot.initrd.extraUtilsCommands = mkIf (inInitrd && !boot.initrd.systemd.enable) ''
15+ boot.initrd.extraUtilsCommands = mkIf inInitrd ''
16 copy_bin_and_libs ${pkgs.jfsutils}/sbin/fsck.jfs
16 copy_bin_and_libs ${pkgs.jfsutils}/sbin/fsck.jfs
nixos/modules/tasks/filesystems/reiserfs.nix+1−1
@@ -15,7 +15,7 @@ in
16 boot.initrd.kernelModules = mkIf inInitrd [ "reiserfs" ];
16 boot.initrd.kernelModules = mkIf inInitrd [ "reiserfs" ];
18− boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
18+ boot.initrd.extraUtilsCommands = mkIf inInitrd
20 copy_bin_and_libs ${pkgs.reiserfsprogs}/sbin/reiserfsck
20 copy_bin_and_libs ${pkgs.reiserfsprogs}/sbin/reiserfsck
21 ln -s reiserfsck $out/bin/fsck.reiserfs
21 ln -s reiserfsck $out/bin/fsck.reiserfs
nixos/modules/tasks/filesystems/unionfs-fuse.nix+2−13
@@ -6,7 +6,7 @@
6 (lib.mkIf (lib.any (fs: fs == "unionfs-fuse") config.boot.initrd.supportedFilesystems) {
6 (lib.mkIf (lib.any (fs: fs == "unionfs-fuse") config.boot.initrd.supportedFilesystems) {
7 boot.initrd.kernelModules = [ "fuse" ];
7 boot.initrd.kernelModules = [ "fuse" ];
9− boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ''
9+ boot.initrd.extraUtilsCommands = ''
10 copy_bin_and_libs ${pkgs.fuse}/sbin/mount.fuse
10 copy_bin_and_libs ${pkgs.fuse}/sbin/mount.fuse
11 copy_bin_and_libs ${pkgs.unionfs-fuse}/bin/unionfs
11 copy_bin_and_libs ${pkgs.unionfs-fuse}/bin/unionfs
12 substitute ${pkgs.unionfs-fuse}/sbin/mount.unionfs-fuse $out/bin/mount.unionfs-fuse \
12 substitute ${pkgs.unionfs-fuse}/sbin/mount.unionfs-fuse $out/bin/mount.unionfs-fuse \
@@ -16,23 +16,12 @@
16 chmod +x $out/bin/mount.unionfs-fuse
16 chmod +x $out/bin/mount.unionfs-fuse
19− boot.initrd.postDeviceCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ''
19+ boot.initrd.postDeviceCommands = ''
20 # Hacky!!! fuse hard-codes the path to mount
20 # Hacky!!! fuse hard-codes the path to mount
21 mkdir -p /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
21 mkdir -p /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
22 ln -s $(which mount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
22 ln -s $(which mount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
23 ln -s $(which umount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
23 ln -s $(which umount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
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
38 (lib.mkIf (lib.any (fs: fs == "unionfs-fuse") config.boot.supportedFilesystems) {
27 (lib.mkIf (lib.any (fs: fs == "unionfs-fuse") config.boot.supportedFilesystems) {
nixos/modules/tasks/filesystems/vfat.nix+1−1
@@ -15,7 +15,7 @@ in
16 boot.initrd.kernelModules = mkIf inInitrd [ "vfat" "nls_cp437" "nls_iso8859-1" ];
16 boot.initrd.kernelModules = mkIf inInitrd [ "vfat" "nls_cp437" "nls_iso8859-1" ];
18− boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
18+ boot.initrd.extraUtilsCommands = mkIf inInitrd
20 copy_bin_and_libs ${pkgs.dosfstools}/sbin/dosfsck
20 copy_bin_and_libs ${pkgs.dosfstools}/sbin/dosfsck
21 ln -sv dosfsck $out/bin/fsck.vfat
21 ln -sv dosfsck $out/bin/fsck.vfat
nixos/modules/tasks/filesystems/xfs.nix+2−2
@@ -15,14 +15,14 @@ in
16 boot.initrd.availableKernelModules = mkIf inInitrd [ "xfs" "crc32c" ];
16 boot.initrd.availableKernelModules = mkIf inInitrd [ "xfs" "crc32c" ];
18− boot.initrd.extraUtilsCommands = mkIf (inInitrd && !config.boot.initrd.systemd.enable)
18+ boot.initrd.extraUtilsCommands = mkIf inInitrd
20 copy_bin_and_libs ${pkgs.xfsprogs.bin}/bin/fsck.xfs
20 copy_bin_and_libs ${pkgs.xfsprogs.bin}/bin/fsck.xfs
21 copy_bin_and_libs ${pkgs.xfsprogs.bin}/bin/xfs_repair
21 copy_bin_and_libs ${pkgs.xfsprogs.bin}/bin/xfs_repair
24 # Trick just to set 'sh' after the extraUtils nuke-refs.
24 # 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
27 sed -i -e 's,^#!.*,#!'$out/bin/sh, $out/bin/fsck.xfs
27 sed -i -e 's,^#!.*,#!'$out/bin/sh, $out/bin/fsck.xfs
nixos/modules/tasks/filesystems/zfs.nix−5
@@ -466,11 +466,6 @@ in
466 '') rootPools));
466 '') rootPools));
469− systemd.shutdownRamfs.contents."/etc/systemd/system-shutdown/zpool".source = pkgs.writeShellScript "zpool-sync-shutdown" ''
470− exec ${cfgZfs.package}/bin/zpool sync
472− systemd.shutdownRamfs.storePaths = ["${cfgZfs.package}/bin/zpool"];
474 # 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.
469 # 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.
475 boot.loader.grub = mkIf (inInitrd || inSystem) {
470 boot.loader.grub = mkIf (inInitrd || inSystem) {
476 zfsSupport = true;
471 zfsSupport = true;
nixos/modules/tasks/lvm.nix+6−27
@@ -21,10 +21,6 @@ in {
21 boot.vdo.enable = mkEnableOption "support for booting from VDOLVs";
21 boot.vdo.enable = mkEnableOption "support for booting from VDOLVs";
24− options.boot.initrd.services.lvm.enable = (mkEnableOption "enable booting from LVM2 in the initrd") // {
28 config = mkMerge [
24 config = mkMerge [
30 # minimal configuration file to make lvmconfig/lvm2-activation-generator happy
26 # minimal configuration file to make lvmconfig/lvm2-activation-generator happy
@@ -35,13 +31,8 @@ in {
35 environment.systemPackages = [ cfg.package ];
31 environment.systemPackages = [ cfg.package ];
36 systemd.packages = [ cfg.package ];
32 systemd.packages = [ cfg.package ];
34+ # TODO: update once https://github.com/NixOS/nixpkgs/pull/93006 was merged
38 services.udev.packages = [ cfg.package.out ];
35 services.udev.packages = [ cfg.package.out ];
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 ];
46 (mkIf cfg.dmeventd.enable {
37 (mkIf cfg.dmeventd.enable {
47 systemd.sockets."dm-event".wantedBy = [ "sockets.target" ];
38 systemd.sockets."dm-event".wantedBy = [ "sockets.target" ];
@@ -56,15 +47,13 @@ in {
56 boot.initrd = {
47 boot.initrd = {
57 kernelModules = [ "dm-snapshot" "dm-thin-pool" ];
48 kernelModules = [ "dm-snapshot" "dm-thin-pool" ];
59− systemd.initrdBin = lib.mkIf config.boot.initrd.services.lvm.enable [ pkgs.thin-provisioning-tools ];
61− extraUtilsCommands = mkIf (!config.boot.initrd.systemd.enable) ''
50+ extraUtilsCommands = ''
62 for BIN in ${pkgs.thin-provisioning-tools}/bin/*; do
51 for BIN in ${pkgs.thin-provisioning-tools}/bin/*; do
63 copy_bin_and_libs $BIN
52 copy_bin_and_libs $BIN
67− extraUtilsCommandsTest = mkIf (!config.boot.initrd.systemd.enable) ''
56+ extraUtilsCommandsTest = ''
68 ls ${pkgs.thin-provisioning-tools}/bin/ | grep -v pdata_tools | while read BIN; do
57 ls ${pkgs.thin-provisioning-tools}/bin/ | grep -v pdata_tools | while read BIN; do
69 $out/bin/$(basename $BIN) --help > /dev/null
58 $out/bin/$(basename $BIN) --help > /dev/null
@@ -82,15 +71,13 @@ in {
82 initrd = {
71 initrd = {
83 kernelModules = [ "kvdo" ];
72 kernelModules = [ "kvdo" ];
85− systemd.initrdBin = lib.mkIf config.boot.initrd.services.lvm.enable [ pkgs.vdo ];
87− extraUtilsCommands = mkIf (!config.boot.initrd.systemd.enable)''
74+ extraUtilsCommands = ''
88 ls ${pkgs.vdo}/bin/ | grep -v adaptLVMVDO | while read BIN; do
75 ls ${pkgs.vdo}/bin/ | grep -v adaptLVMVDO | while read BIN; do
89 copy_bin_and_libs ${pkgs.vdo}/bin/$BIN
76 copy_bin_and_libs ${pkgs.vdo}/bin/$BIN
93− extraUtilsCommandsTest = mkIf (!config.boot.initrd.systemd.enable)''
80+ extraUtilsCommandsTest = ''
94 ls ${pkgs.vdo}/bin/ | grep -v adaptLVMVDO | while read BIN; do
81 ls ${pkgs.vdo}/bin/ | grep -v adaptLVMVDO | while read BIN; do
95 $out/bin/$(basename $BIN) --help > /dev/null
82 $out/bin/$(basename $BIN) --help > /dev/null
@@ -104,15 +91,7 @@ in {
104 environment.systemPackages = [ pkgs.vdo ];
91 environment.systemPackages = [ pkgs.vdo ];
106 (mkIf (cfg.dmeventd.enable || cfg.boot.thin.enable) {
93 (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"
94+ boot.initrd.preLVMCommands = ''
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
115− boot.initrd.preLVMCommands = mkIf (!config.boot.initrd.systemd.enable) ''
116 mkdir -p /etc/lvm
95 mkdir -p /etc/lvm
117 cat << EOF >> /etc/lvm/lvm.conf
96 cat << EOF >> /etc/lvm/lvm.conf
118 ${optionalString cfg.boot.thin.enable (
97 ${optionalString cfg.boot.thin.enable (
nixos/modules/tasks/network-interfaces.nix+10−11
@@ -403,15 +403,6 @@ let
403 </itemizedlist>
403 </itemizedlist>
406− hostidFile = pkgs.runCommand "gen-hostid" { preferLocalBuild = true; } ''
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
411− echo -ne "\x''${hi:6:2}\x''${hi:4:2}\x''${hi:2:2}\x''${hi:0:2}" > $out
@@ -1392,8 +1383,16 @@ in
1392 domainname "${cfg.domain}"
1383 domainname "${cfg.domain}"
1395− environment.etc.hostid = mkIf (cfg.hostId != null) { source = hostidFile; };
1386+ environment.etc.hostid = mkIf (cfg.hostId != null)
1396− boot.initrd.systemd.contents."/etc/hostid" = mkIf (cfg.hostId != null) { source = hostidFile; };
1387+ { source = pkgs.runCommand "gen-hostid" { preferLocalBuild = true; } ''
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
1392+ echo -ne "\x''${hi:6:2}\x''${hi:4:2}\x''${hi:2:2}\x''${hi:0:2}" > $out
1398 # static hostname configuration needed for hostnamectl and the
1397 # static hostname configuration needed for hostnamectl and the
1399 # org.freedesktop.hostname1 dbus service (both provided by systemd)
1398 # 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, ... }:
3− cfg = config.boot.initrd.services.swraid;
3+{
5−in {
5+ environment.systemPackages = [ pkgs.mdadm ];
7− options.boot.initrd.services.swraid = {
7+ services.udev.packages = [ pkgs.mdadm ];
8− enable = (lib.mkEnableOption "swraid support using mdadm") // {
9− visible = false; # only has effect when the new stage 1 is in place
12− mdadmConf = lib.mkOption {
9+ systemd.packages = [ pkgs.mdadm ];
13− description = "Contents of <filename>/etc/mdadm.conf</filename> in initrd.";
14− type = lib.types.lines;
19− config = {
11+ boot.initrd.availableKernelModules = [ "md_mod" "raid0" "raid1" "raid10" "raid456" ];
20− environment.systemPackages = [ pkgs.mdadm ];
22− services.udev.packages = [ pkgs.mdadm ];
13+ boot.initrd.extraUdevRulesCommands = ''
14+ cp -v ${pkgs.mdadm}/lib/udev/rules.d/*.rules $out/
24− systemd.packages = [ pkgs.mdadm ];
26− boot.initrd.availableKernelModules = lib.mkIf (config.boot.initrd.systemd.enable -> cfg.enable) [ "md_mod" "raid0" "raid1" "raid10" "raid456" ];
28− boot.initrd.extraUdevRulesCommands = lib.mkIf (!config.boot.initrd.systemd.enable) ''
29− cp -v ${pkgs.mdadm}/lib/udev/rules.d/*.rules $out/
32− boot.initrd.systemd = lib.mkIf cfg.enable {
33− contents."/etc/mdadm.conf" = lib.mkIf (cfg.mdadmConf != "") {
34− text = cfg.mdadmConf;
37− packages = [ pkgs.mdadm ];
38− initrdBin = [ pkgs.mdadm ];
41− boot.initrd.services.udev.packages = lib.mkIf cfg.enable [ pkgs.mdadm ];
nixos/modules/testing/test-instrumentation.nix+26−19
@@ -65,26 +65,33 @@ in
68− boot.kernel.sysctl = {
68+ boot.initrd.preDeviceCommands =
69− "kernel.hung_task_timeout_secs" = 600;
69+ ''
70− # Panic on out-of-memory conditions rather than letting the
70+ echo 600 > /proc/sys/kernel/hung_task_timeout_secs
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;
76− boot.kernelParams = [
73+ boot.initrd.postDeviceCommands =
77− "console=${qemu-common.qemuSerialDevice}"
74+ ''
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
75+ # Using acpi_pm as a clock source causes the guest clock to
82− # slow down under high host load. This is usually a bad
76+ # slow down under high host load. This is usually a bad
83− # thing, but for VM tests it should provide a bit more
77+ # thing, but for VM tests it should provide a bit more
84− # determinism (e.g. if the VM runs at lower speed, then
78+ # determinism (e.g. if the VM runs at lower speed, then
85− # timeouts in the VM should also be delayed).
79+ # timeouts in the VM should also be delayed).
86− "clock=acpi_pm"
80+ echo acpi_pm > /sys/devices/system/clocksource/clocksource0/current_clocksource
83+ boot.postBootCommands =
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
91+ # Panic if an error occurs in stage 1 (rather than waiting for
92+ # user intervention).
94+ [ "console=${qemu-common.qemuSerialDevice}" "panic=1" "boot.panic_on_fail" ];
89 # `xwininfo' is used by the test driver to query open windows.
96 # `xwininfo' is used by the test driver to query open windows.
90 environment.systemPackages = [ pkgs.xorg.xwininfo ];
97 environment.systemPackages = [ pkgs.xorg.xwininfo ];
nixos/modules/virtualisation/azure-common.nix+1−5
@@ -21,11 +21,7 @@ with lib;
21 # way to select them anyway.
21 # way to select them anyway.
22 boot.loader.grub.configurationLimit = 0;
22 boot.loader.grub.configurationLimit = 0;
25− device = "/dev/disk/by-label/nixos";
24+ fileSystems."/".device = "/dev/disk/by-label/nixos";
30 # Allow root logins only using the SSH key that the user specified
26 # Allow root logins only using the SSH key that the user specified
31 # at instance creation time, ping client connections to avoid timeouts
27 # at instance creation time, ping client connections to avoid timeouts
nixos/modules/virtualisation/nixos-containers.nix+11−26
@@ -4,11 +4,6 @@ with lib;
7− configurationPrefix = optionalString (versionAtLeast config.system.stateVersion "22.05") "nixos-";
8− configurationDirectoryName = "${configurationPrefix}containers";
9− configurationDirectory = "/etc/${configurationDirectoryName}";
10− stateDirectory = "/var/lib/${configurationPrefix}containers";
12 # The container's init script, a small wrapper around the regular
7 # The container's init script, a small wrapper around the regular
13 # NixOS stage-2 init script.
8 # NixOS stage-2 init script.
14 containerInit = (cfg:
9 containerInit = (cfg:
@@ -82,7 +77,7 @@ let
82 startScript = cfg:
77 startScript = cfg:
84 mkdir -p -m 0755 "$root/etc" "$root/var/lib"
79 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
86 if ! [ -e "$root/etc/os-release" ]; then
81 if ! [ -e "$root/etc/os-release" ]; then
87 touch "$root/etc/os-release"
82 touch "$root/etc/os-release"
@@ -254,11 +249,11 @@ let
255 SyslogIdentifier = "container %i";
250 SyslogIdentifier = "container %i";
257− EnvironmentFile = "-${configurationDirectory}/%i.conf";
252+ EnvironmentFile = "-/etc/containers/%i.conf";
259 Type = "notify";
254 Type = "notify";
261− RuntimeDirectory = lib.optional cfg.ephemeral "${configurationDirectoryName}/%i";
256+ RuntimeDirectory = lib.optional cfg.ephemeral "containers/%i";
263 # Note that on reboot, systemd-nspawn returns 133, so this
258 # Note that on reboot, systemd-nspawn returns 133, so this
264 # unit will be restarted. On poweroff, it returns 0, so the
259 # unit will be restarted. On poweroff, it returns 0, so the
@@ -742,21 +737,15 @@ in
743 config = mkIf (config.boot.enableContainers) (let
738 config = mkIf (config.boot.enableContainers) (let
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.
752 description = "Container '%i'";
741 description = "Container '%i'";
754− unitConfig.RequiresMountsFor = "${stateDirectory}/%i";
743+ unitConfig.RequiresMountsFor = "/var/lib/containers/%i";
756 path = [ pkgs.iproute2 ];
745 path = [ pkgs.iproute2 ];
758 environment = {
747 environment = {
759− root = "${stateDirectory}/%i";
748+ root = "/var/lib/containers/%i";
760 INSTANCE = "%i";
749 INSTANCE = "%i";
@@ -793,8 +782,8 @@ in
793 script = startScript containerConfig;
782 script = startScript containerConfig;
794 postStart = postStartScript containerConfig;
783 postStart = postStartScript containerConfig;
795 serviceConfig = serviceDirectives containerConfig;
784 serviceConfig = serviceDirectives containerConfig;
796− unitConfig.RequiresMountsFor = lib.optional (!containerConfig.ephemeral) "${stateDirectory}/%i";
785+ unitConfig.RequiresMountsFor = lib.optional (!containerConfig.ephemeral) "/var/lib/containers/%i";
797− environment.root = if containerConfig.ephemeral then "/run/nixos-containers/%i" else "${stateDirectory}/%i";
786+ environment.root = if containerConfig.ephemeral then "/run/containers/%i" else "/var/lib/containers/%i";
799 if containerConfig.autoStart then
788 if containerConfig.autoStart then
@@ -803,7 +792,7 @@ in
803 after = [ "network.target" ];
792 after = [ "network.target" ];
804 restartTriggers = [
793 restartTriggers = [
805 containerConfig.path
794 containerConfig.path
806− config.environment.etc."${configurationDirectoryName}/${name}.conf".source
795+ config.environment.etc."containers/${name}.conf".source
808 restartIfChanged = true;
797 restartIfChanged = true;
@@ -811,12 +800,12 @@ in
811 )) config.containers)
800 )) config.containers)
814− # Generate a configuration file in /etc/nixos-containers for each
803+ # Generate a configuration file in /etc/containers for each
815 # container so that container@.target can get the container
804 # container so that container@.target can get the container
816 # configuration.
805 # configuration.
817 environment.etc =
806 environment.etc =
818 let mkPortStr = p: p.protocol + ":" + (toString p.hostPort) + ":" + (if p.containerPort == null then toString p.hostPort else toString p.containerPort);
807 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"
822 SYSTEM_PATH=${cfg.path}
811 SYSTEM_PATH=${cfg.path}
@@ -865,11 +854,7 @@ in
865 ENV{INTERFACE}=="v[eb]-*", ENV{NM_UNMANAGED}="1"
854 ENV{INTERFACE}=="v[eb]-*", ENV{NM_UNMANAGED}="1"
868− environment.systemPackages = [
857+ environment.systemPackages = [ pkgs.nixos-container ];
869− (pkgs.nixos-container.override {
870− inherit stateDirectory configurationDirectory;
874 boot.kernelModules = [
859 boot.kernelModules = [
nixos/modules/virtualisation/oci-containers.nix+5−1
@@ -338,7 +338,11 @@ in {
339 backend = mkOption {
339 backend = mkOption {
340 type = types.enum [ "podman" "docker" ];
340 type = types.enum [ "podman" "docker" ];
342+ # TODO: Once https://github.com/NixOS/nixpkgs/issues/77925 is resolved default to podman
341− default = if versionAtLeast config.system.stateVersion "22.05" then "podman" else "docker";
343+ # if versionAtLeast config.system.stateVersion "20.09" then "podman"
342 description = "The underlying Docker implementation to use.";
346 description = "The underlying Docker implementation to use.";
nixos/modules/virtualisation/openstack-config.nix+7−39
@@ -1,11 +1,8 @@
1−{ config, pkgs, lib, ... }:
1+{ pkgs, lib, ... }:
3−# image metadata:
3+with lib;
4−# hw_firmware_type=uefi
7− inherit (lib) mkIf mkDefault;
8− cfg = config.openstack;
9 metadataFetcher = import ./openstack-metadata-fetcher.nix {
6 metadataFetcher = import ./openstack-metadata-fetcher.nix {
10 targetRoot = "/";
7 targetRoot = "/";
11 wgetExtraOptions = "--retry-connrefused";
8 wgetExtraOptions = "--retry-connrefused";
@@ -14,47 +11,23 @@ in
15 imports = [
12 imports = [
16 ../profiles/qemu-guest.nix
13 ../profiles/qemu-guest.nix
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.
23 ../profiles/headless.nix
14 ../profiles/headless.nix
25 # The Openstack Metadata service exposes data on an EC2 API also.
15 # The Openstack Metadata service exposes data on an EC2 API also.
26 ./ec2-data.nix
16 ./ec2-data.nix
27 ./amazon-init.nix
17 ./amazon-init.nix
30 config = {
20 config = {
31− fileSystems."/" = mkIf (!cfg.zfs.enable) {
21+ fileSystems."/" = {
32 device = "/dev/disk/by-label/nixos";
22 device = "/dev/disk/by-label/nixos";
33 fsType = "ext4";
23 fsType = "ext4";
34 autoResize = true;
24 autoResize = true;
37− fileSystems."/boot" = mkIf (cfg.efi || cfg.zfs.enable) {
38− # The ZFS image uses a partition labeled ESP whether or not we're
40− device = "/dev/disk/by-label/ESP";
44 boot.growPartition = true;
27 boot.growPartition = true;
45− boot.kernelParams = [ "console=tty1" ];
28+ boot.kernelParams = [ "console=ttyS0" ];
46− boot.loader.grub.device = if (!cfg.efi) then "/dev/vda" else "nodev";
29+ boot.loader.grub.device = "/dev/vda";
47− boot.loader.grub.efiSupport = cfg.efi;
48− boot.loader.grub.efiInstallAsRemovable = cfg.efi;
49− boot.loader.timeout = 1;
30+ boot.loader.timeout = 0;
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
56− services.zfs.expandOnBoot = mkIf cfg.zfs.enable (lib.mkDefault "all");
57− boot.zfs.devNodes = mkIf cfg.zfs.enable "/dev/";
59 # Allow root logins
32 # Allow root logins
60 services.openssh = {
33 services.openssh = {
@@ -63,11 +36,6 @@ in
63 passwordAuthentication = mkDefault false;
36 passwordAuthentication = mkDefault false;
66− users.users.root.initialPassword = "foobar";
68− # Enable the serial console on tty1
69− systemd.services."serial-getty@tty1".enable = true;
71 # Force getting the hostname from Openstack metadata.
39 # Force getting the hostname from Openstack metadata.
72 networking.hostName = mkDefault "";
40 networking.hostName = mkDefault "";
@@ -75,7 +43,7 @@ in
75 path = [ pkgs.wget ];
43 path = [ pkgs.wget ];
76 description = "Fetch Metadata on startup";
44 description = "Fetch Metadata on startup";
77 wantedBy = [ "multi-user.target" ];
45 wantedBy = [ "multi-user.target" ];
78− before = [ "apply-ec2-data.service" "amazon-init.service" ];
46+ before = [ "apply-ec2-data.service" "amazon-init.service"];
79 wants = [ "network-online.target" ];
47 wants = [ "network-online.target" ];
80 after = [ "network-online.target" ];
48 after = [ "network-online.target" ];
81 script = metadataFetcher;
49 script = metadataFetcher;
nixos/modules/virtualisation/openstack-metadata-fetcher.nix+3−3
@@ -14,9 +14,9 @@
14 wget ${wgetExtraOptions} "$@"
14 wget ${wgetExtraOptions} "$@"
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
18 # When no user-data is provided, the OpenStack metadata server doesn't expose the user-data route.
18 # When no user-data is provided, the OpenStack metadata server doesn't expose the user-data route.
19 (umask 077 && wget_imds -O "$metaDir/user-data" http://169.254.169.254/1.0/user-data || rm -f "$metaDir/user-data")
19 (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
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 || 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
nixos/modules/virtualisation/openstack-options.nixdeleted−71
@@ -1,71 +0,0 @@
1−{ config, lib, pkgs, ... }:
3− inherit (lib) literalExpression types;
9− enable = lib.mkOption {
13− Whether the OpenStack instance uses a ZFS root.
17− datasets = lib.mkOption {
19− Datasets to create under the `tank` and `boot` zpools.
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.
28− type = types.attrsOf (types.submodule {
30− mount = lib.mkOption {
31− description = "Where to mount this dataset.";
32− type = types.nullOr types.string;
36− properties = lib.mkOption {
37− description = "Properties to set on this dataset.";
38− type = types.attrsOf types.string;
47− default = pkgs.stdenv.hostPlatform.isAarch64;
48− defaultText = literalExpression "pkgs.stdenv.hostPlatform.isAarch64";
51− Whether the instance is using EFI.
57− config = lib.mkIf config.openstack.zfs.enable {
58− networking.hostId = lib.mkDefault "00000000";
62− mountable = lib.filterAttrs (_: value: ((value.mount or null) != null)) config.openstack.zfs.datasets;
65− (dataset: opts: lib.nameValuePair opts.mount {
nixos/modules/virtualisation/qemu-vm.nix+5−14
@@ -754,13 +754,13 @@ in
755 boot.loader.grub.gfxmodeBios = with cfg.resolution; "${toString x}x${toString y}";
755 boot.loader.grub.gfxmodeBios = with cfg.resolution; "${toString x}x${toString y}";
757− boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable)
757+ boot.initrd.extraUtilsCommands =
759 # We need mke2fs in the initrd.
759 # We need mke2fs in the initrd.
760 copy_bin_and_libs ${pkgs.e2fsprogs}/bin/mke2fs
760 copy_bin_and_libs ${pkgs.e2fsprogs}/bin/mke2fs
763− boot.initrd.postDeviceCommands = lib.mkIf (!config.boot.initrd.systemd.enable)
763+ boot.initrd.postDeviceCommands =
765 # If the disk image appears to be empty, run mke2fs to
765 # If the disk image appears to be empty, run mke2fs to
766 # initialise.
766 # initialise.
@@ -770,7 +770,7 @@ in
773− boot.initrd.postMountCommands = lib.mkIf (!config.boot.initrd.systemd.enable)
773+ boot.initrd.postMountCommands =
775 # Mark this as a NixOS machine.
775 # Mark this as a NixOS machine.
776 mkdir -p $targetRoot/etc
776 mkdir -p $targetRoot/etc
@@ -789,11 +789,6 @@ in
792− systemd.tmpfiles.rules = lib.mkIf config.boot.initrd.systemd.enable [
793− "f /etc/NIXOS 0644 root root -"
794− "d /boot 0644 root root -"
797 # After booting, register the closure of the paths in
792 # After booting, register the closure of the paths in
798 # `virtualisation.additionalPaths' in the Nix database in the VM. This
793 # `virtualisation.additionalPaths' in the Nix database in the VM. This
799 # allows Nix operations to work in the VM. The path to the
794 # allows Nix operations to work in the VM. The path to the
@@ -858,12 +853,8 @@ in
858 (mkIf (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [
853 (mkIf (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [
859 "-device virtio-gpu-pci" "-device usb-ehci,id=usb0" "-device usb-kbd" "-device usb-tablet"
854 "-device virtio-gpu-pci" "-device usb-ehci,id=usb0" "-device usb-kbd" "-device usb-tablet"
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) [
856+ (mkIf (!cfg.useBootLoader) [
866− "-kernel \${NIXPKGS_QEMU_KERNEL_${sanitizeShellIdent config.system.name}:-${config.system.build.toplevel}/kernel}"
857+ "-kernel \${NIXPKGS_QEMU_KERNEL_${config.system.name}:-${config.system.build.toplevel}/kernel}"
867 "-initrd ${config.system.build.toplevel}/initrd"
858 "-initrd ${config.system.build.toplevel}/initrd"
868 ''-append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${consoles} $QEMU_KERNEL_PARAMS"''
859 ''-append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${consoles} $QEMU_KERNEL_PARAMS"''
nixos/modules/virtualisation/vmware-host.nixdeleted−166
@@ -1,166 +0,0 @@
1−{ config, pkgs, lib, ... }:
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
11− ln -s "${config.security.wrapperDir}/${program}" $wrapperDir/${program}
15− (mkVmwareSymlink "pkexec")
16− (mkVmwareSymlink "mount")
17− (mkVmwareSymlink "umount")
21− options = with lib; {
22− virtualisation.vmware.host = {
23− enable = mkEnableOption "VMware" // {
25− This enables VMware host virtualisation for running VMs.
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.
35− If that didn't work disable <literal>TRANSPARENT_HUGEPAGE</literal>,
36− <literal>COMPACTION</literal> configs and recompile kernel.
41− type = types.package;
42− default = pkgs.vmware-workstation;
43− defaultText = literalExpression "pkgs.vmware-workstation";
44− description = "VMware host virtualisation package to use";
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 ]";
52− extraConfig = mkOption {
55− description = "Add extra config to /etc/vmware/config";
57− # Allow unsupported device's OpenGL and Vulkan acceleration for guest vGPU
58− mks.gl.allowUnsupportedDrivers = "TRUE"
59− mks.vk.allowUnsupportedDevices = "TRUE"
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" ];
70− environment.systemPackages = [ cfg.package ] ++ cfg.extraPackages;
71− services.printing.drivers = [ cfg.package ];
73− environment.etc."vmware/config".text = ''
74− ${builtins.readFile "${cfg.package}/etc/vmware/config"}
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";
84− security.wrappers = {
89− source = "${cfg.package}/lib/vmware/bin/.vmware-vmx-wrapped";
93− ###### wrappers activation script
95− system.activationScripts.vmwareWrappers =
96− lib.stringAfter [ "specialfs" "users" ]
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"
111− ln --symbolic --force --no-dereference "$wrapperDir" "${wrapperDir}-tmp"
112− mv --no-target-directory "${wrapperDir}-tmp" "${wrapperDir}"
113− rm --force --recursive "$old"
116− ln --symbolic "$wrapperDir" "${wrapperDir}"
122− systemd.services."vmware-authdlauncher" = {
123− description = "VMware Authentification Daemon";
126− ExecStart = [ "${cfg.package}/bin/vmware-authdlauncher" ];
128− wantedBy = [ "multi-user.target" ];
131− systemd.services."vmware-networks-configuration" = {
132− description = "VMware Networks Configuration Generation";
133− unitConfig.ConditionPathExists = "!/etc/vmware/networking";
137− "${cfg.package}/bin/vmware-networks --postinstall vmware-player,0,1"
140− RemainAfterExit = "yes";
142− wantedBy = [ "multi-user.target" ];
145− systemd.services."vmware-networks" = {
146− description = "VMware Networks";
147− after = [ "vmware-networks-configuration.service" ];
148− requires = [ "vmware-networks-configuration.service" ];
151− ExecCondition = [ "${pkgs.kmod}/bin/modprobe vmnet" ];
152− ExecStart = [ "${cfg.package}/bin/vmware-networks --start" ];
153− ExecStop = [ "${cfg.package}/bin/vmware-networks --stop" ];
155− wantedBy = [ "multi-user.target" ];
158− systemd.services."vmware-usbarbitrator" = {
159− description = "VMware USB Arbitrator";
161− ExecStart = [ "${cfg.package}/bin/vmware-usbarbitrator -f" ];
163− wantedBy = [ "multi-user.target" ];
nixos/release-combined.nix−2
@@ -132,14 +132,12 @@ in rec {
132 # fails with kernel >= 5.15 https://github.com/NixOS/nixpkgs/pull/152505#issuecomment-1005049314
132 # fails with kernel >= 5.15 https://github.com/NixOS/nixpkgs/pull/152505#issuecomment-1005049314
133 #(onFullSupported "nixos.tests.nfs3.simple")
133 #(onFullSupported "nixos.tests.nfs3.simple")
134 (onFullSupported "nixos.tests.nfs4.simple")
134 (onFullSupported "nixos.tests.nfs4.simple")
135− (onSystems ["x86_64-linux"] "nixos.tests.oci-containers.podman")
136 (onFullSupported "nixos.tests.openssh")
135 (onFullSupported "nixos.tests.openssh")
137 (onFullSupported "nixos.tests.pantheon")
136 (onFullSupported "nixos.tests.pantheon")
138 (onFullSupported "nixos.tests.php.fpm")
137 (onFullSupported "nixos.tests.php.fpm")
139 (onFullSupported "nixos.tests.php.httpd")
138 (onFullSupported "nixos.tests.php.httpd")
140 (onFullSupported "nixos.tests.php.pcre")
139 (onFullSupported "nixos.tests.php.pcre")
141 (onFullSupported "nixos.tests.plasma5")
140 (onFullSupported "nixos.tests.plasma5")
142− (onSystems ["x86_64-linux"] "nixos.tests.podman")
143 (onFullSupported "nixos.tests.predictable-interface-names.predictableNetworkd")
141 (onFullSupported "nixos.tests.predictable-interface-names.predictableNetworkd")
144 (onFullSupported "nixos.tests.predictable-interface-names.predictable")
142 (onFullSupported "nixos.tests.predictable-interface-names.predictable")
145 (onFullSupported "nixos.tests.predictable-interface-names.unpredictableNetworkd")
143 (onFullSupported "nixos.tests.predictable-interface-names.unpredictableNetworkd")
@@ -150,13 +150,13 @@ in rec {
152 iso_plasma5 = forMatchingSystems [ "x86_64-linux" ] (system: makeIso {
152 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;
154 type = "plasma5";
154 type = "plasma5";
155 inherit system;
155 inherit system;
158 iso_gnome = forMatchingSystems [ "x86_64-linux" ] (system: makeIso {
158 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;
160 type = "gnome";
160 type = "gnome";
161 inherit system;
161 inherit system;
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 ];
7− nodes.machine = { pkgs, config, lib, ... }:
9− infoFilter = name: drv:
11− o = builtins.tryEval drv;
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;
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);
28− machine.fail("grep . /etc/terminfo-missing >&2")
29− machine.fail("grep . /etc/terminfo-extra-outs >&2")
nixos/tests/all-tests.nix+3−18
@@ -35,7 +35,6 @@ in
35 agate = handleTest ./web-servers/agate.nix {};
35 agate = handleTest ./web-servers/agate.nix {};
36 agda = handleTest ./agda.nix {};
36 agda = handleTest ./agda.nix {};
37 airsonic = handleTest ./airsonic.nix {};
37 airsonic = handleTest ./airsonic.nix {};
38− allTerminfo = handleTest ./all-terminfo.nix {};
39 amazon-init-shell = handleTest ./amazon-init-shell.nix {};
38 amazon-init-shell = handleTest ./amazon-init-shell.nix {};
40 apfs = handleTest ./apfs.nix {};
39 apfs = handleTest ./apfs.nix {};
41 apparmor = handleTest ./apparmor.nix {};
40 apparmor = handleTest ./apparmor.nix {};
@@ -196,12 +195,8 @@ in
196 hadoop_3_2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop_3_2; };
195 hadoop_3_2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop_3_2; };
197 hadoop2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop2; };
196 hadoop2 = import ./hadoop { inherit handleTestOn; package=pkgs.hadoop2; };
198 haka = handleTest ./haka.nix {};
197 haka = handleTest ./haka.nix {};
199− haste-server = handleTest ./haste-server.nix {};
200 haproxy = handleTest ./haproxy.nix {};
198 haproxy = handleTest ./haproxy.nix {};
201 hardened = handleTest ./hardened.nix {};
199 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; };
205 hedgedoc = handleTest ./hedgedoc.nix {};
200 hedgedoc = handleTest ./hedgedoc.nix {};
206 herbstluftwm = handleTest ./herbstluftwm.nix {};
201 herbstluftwm = handleTest ./herbstluftwm.nix {};
207 installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {});
202 installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {});
@@ -212,7 +207,6 @@ in
212 # hibernation. This test happens to work on x86_64-linux but
207 # hibernation. This test happens to work on x86_64-linux but
213 # not on other platforms.
208 # not on other platforms.
214 hibernate = handleTestOn ["x86_64-linux"] ./hibernate.nix {};
209 hibernate = handleTestOn ["x86_64-linux"] ./hibernate.nix {};
215− hibernate-systemd-stage-1 = handleTestOn ["x86_64-linux"] ./hibernate.nix { systemdStage1 = true; };
216 hitch = handleTest ./hitch {};
210 hitch = handleTest ./hitch {};
217 hledger-web = handleTest ./hledger-web.nix {};
211 hledger-web = handleTest ./hledger-web.nix {};
218 hocker-fetchdocker = handleTest ./hocker-fetchdocker {};
212 hocker-fetchdocker = handleTest ./hocker-fetchdocker {};
@@ -235,7 +229,6 @@ in
235 input-remapper = handleTest ./input-remapper.nix {};
229 input-remapper = handleTest ./input-remapper.nix {};
236 inspircd = handleTest ./inspircd.nix {};
230 inspircd = handleTest ./inspircd.nix {};
237 installer = handleTest ./installer.nix {};
231 installer = handleTest ./installer.nix {};
238− installer-systemd-stage-1 = handleTest ./installer-systemd-stage-1.nix {};
239 invoiceplane = handleTest ./invoiceplane.nix {};
232 invoiceplane = handleTest ./invoiceplane.nix {};
240 iodine = handleTest ./iodine.nix {};
233 iodine = handleTest ./iodine.nix {};
241 ipfs = handleTest ./ipfs.nix {};
234 ipfs = handleTest ./ipfs.nix {};
@@ -284,6 +277,7 @@ in
284 loki = handleTest ./loki.nix {};
277 loki = handleTest ./loki.nix {};
285 lvm2 = handleTest ./lvm2 {};
278 lvm2 = handleTest ./lvm2 {};
286 lxd = handleTest ./lxd.nix {};
279 lxd = handleTest ./lxd.nix {};
280+ lxd-image = handleTest ./lxd-image.nix {};
287 lxd-nftables = handleTest ./lxd-nftables.nix {};
281 lxd-nftables = handleTest ./lxd-nftables.nix {};
288 lxd-image-server = handleTest ./lxd-image-server.nix {};
282 lxd-image-server = handleTest ./lxd-image-server.nix {};
289 #logstash = handleTest ./logstash.nix {};
283 #logstash = handleTest ./logstash.nix {};
@@ -368,9 +362,8 @@ in
368 nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
362 nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
369 nginx-sso = handleTest ./nginx-sso.nix {};
363 nginx-sso = handleTest ./nginx-sso.nix {};
370 nginx-variants = handleTest ./nginx-variants.nix {};
364 nginx-variants = handleTest ./nginx-variants.nix {};
371− nifi = handleTestOn ["x86_64-linux"] ./web-apps/nifi.nix {};
372 nitter = handleTest ./nitter.nix {};
365 nitter = handleTest ./nitter.nix {};
373− nix-ld = handleTest ./nix-ld.nix {};
366+ nix-ld = handleTest ./nix-ld {};
374 nix-serve = handleTest ./nix-serve.nix {};
367 nix-serve = handleTest ./nix-serve.nix {};
375 nix-serve-ssh = handleTest ./nix-serve-ssh.nix {};
368 nix-serve-ssh = handleTest ./nix-serve-ssh.nix {};
376 nixops = handleTest ./nixops/default.nix {};
369 nixops = handleTest ./nixops/default.nix {};
@@ -405,10 +398,9 @@ in
405 pam-file-contents = handleTest ./pam/pam-file-contents.nix {};
398 pam-file-contents = handleTest ./pam/pam-file-contents.nix {};
406 pam-oath-login = handleTest ./pam/pam-oath-login.nix {};
399 pam-oath-login = handleTest ./pam/pam-oath-login.nix {};
407 pam-u2f = handleTest ./pam/pam-u2f.nix {};
400 pam-u2f = handleTest ./pam/pam-u2f.nix {};
408− pam-ussh = handleTest ./pam/pam-ussh.nix {};
409 pantalaimon = handleTest ./matrix/pantalaimon.nix {};
401 pantalaimon = handleTest ./matrix/pantalaimon.nix {};
410 pantheon = handleTest ./pantheon.nix {};
402 pantheon = handleTest ./pantheon.nix {};
411− paperless = handleTest ./paperless.nix {};
403+ paperless-ng = handleTest ./paperless-ng.nix {};
412 parsedmarc = handleTest ./parsedmarc {};
404 parsedmarc = handleTest ./parsedmarc {};
413 pdns-recursor = handleTest ./pdns-recursor.nix {};
405 pdns-recursor = handleTest ./pdns-recursor.nix {};
414 peerflix = handleTest ./peerflix.nix {};
406 peerflix = handleTest ./peerflix.nix {};
@@ -524,12 +516,7 @@ in
524 systemd-confinement = handleTest ./systemd-confinement.nix {};
516 systemd-confinement = handleTest ./systemd-confinement.nix {};
525 systemd-cryptenroll = handleTest ./systemd-cryptenroll.nix {};
517 systemd-cryptenroll = handleTest ./systemd-cryptenroll.nix {};
526 systemd-escaping = handleTest ./systemd-escaping.nix {};
518 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; };
531 systemd-initrd-simple = handleTest ./systemd-initrd-simple.nix {};
519 systemd-initrd-simple = handleTest ./systemd-initrd-simple.nix {};
532− systemd-initrd-swraid = handleTest ./systemd-initrd-swraid.nix {};
533 systemd-journal = handleTest ./systemd-journal.nix {};
520 systemd-journal = handleTest ./systemd-journal.nix {};
534 systemd-machinectl = handleTest ./systemd-machinectl.nix {};
521 systemd-machinectl = handleTest ./systemd-machinectl.nix {};
535 systemd-networkd = handleTest ./systemd-networkd.nix {};
522 systemd-networkd = handleTest ./systemd-networkd.nix {};
@@ -538,7 +525,6 @@ in
538 systemd-networkd-ipv6-prefix-delegation = handleTest ./systemd-networkd-ipv6-prefix-delegation.nix {};
525 systemd-networkd-ipv6-prefix-delegation = handleTest ./systemd-networkd-ipv6-prefix-delegation.nix {};
539 systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {};
526 systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {};
540 systemd-nspawn = handleTest ./systemd-nspawn.nix {};
527 systemd-nspawn = handleTest ./systemd-nspawn.nix {};
541− systemd-shutdown = handleTest ./systemd-shutdown.nix {};
542 systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
528 systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
543 systemd-misc = handleTest ./systemd-misc.nix {};
529 systemd-misc = handleTest ./systemd-misc.nix {};
544 taskserver = handleTest ./taskserver.nix {};
530 taskserver = handleTest ./taskserver.nix {};
@@ -599,7 +585,6 @@ in
599 xautolock = handleTest ./xautolock.nix {};
585 xautolock = handleTest ./xautolock.nix {};
600 xfce = handleTest ./xfce.nix {};
586 xfce = handleTest ./xfce.nix {};
601 xmonad = handleTest ./xmonad.nix {};
587 xmonad = handleTest ./xmonad.nix {};
602− xmonad-xdg-autostart = handleTest ./xmonad-xdg-autostart.nix {};
603 xrdp = handleTest ./xrdp.nix {};
588 xrdp = handleTest ./xrdp.nix {};
604 xss-lock = handleTest ./xss-lock.nix {};
589 xss-lock = handleTest ./xss-lock.nix {};
605 xterm = handleTest ./xterm.nix {};
590 xterm = handleTest ./xterm.nix {};
nixos/tests/bcachefs.nix+1−1
@@ -1,6 +1,6 @@
1import ./make-test-python.nix ({ pkgs, ... }: {
1import ./make-test-python.nix ({ pkgs, ... }: {
2 name = "bcachefs";
2 name = "bcachefs";
3− meta.maintainers = with pkgs.lib.maintainers; [ Madouura ];
3+ meta.maintainers = with pkgs.lib.maintainers; [ chiiruno ];
5 nodes.machine = { pkgs, ... }: {
5 nodes.machine = { pkgs, ... }: {
6 virtualisation.emptyDiskImages = [ 4096 ];
6 virtualisation.emptyDiskImages = [ 4096 ];
nixos/tests/common/lxd/config.yamldeleted−24
nixos/tests/containers-ephemeral.nix+3−3
@@ -33,10 +33,10 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
33 machine.succeed("nixos-container start webserver")
33 machine.succeed("nixos-container start webserver")
35 with subtest("Container got its own root folder"):
35 with subtest("Container got its own root folder"):
36− machine.succeed("ls /run/nixos-containers/webserver")
36+ machine.succeed("ls /run/containers/webserver")
38 with subtest("Container persistent directory is not created"):
38 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")
41 # Since "start" returns after the container has reached
41 # Since "start" returns after the container has reached
42 # multi-user.target, we should now be able to access it.
42 # multi-user.target, we should now be able to access it.
@@ -49,6 +49,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
49 machine.fail(f"curl --fail --connect-timeout 2 http://{ip}/ > /dev/null")
49 machine.fail(f"curl --fail --connect-timeout 2 http://{ip}/ > /dev/null")
51 with subtest("Container's root folder was removed"):
51 with subtest("Container's root folder was removed"):
52− machine.fail("ls /run/nixos-containers/webserver")
52+ machine.fail("ls /run/containers/webserver")
nixos/tests/containers-imperative.nix+6−6
@@ -69,8 +69,8 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
70 with subtest(f"Put the root of {id2} into a bind mount"):
70 with subtest(f"Put the root of {id2} into a bind mount"):
71 machine.succeed(
71 machine.succeed(
72− f"mv /var/lib/nixos-containers/{id2} /id2-bindmount",
72+ f"mv /var/lib/containers/{id2} /id2-bindmount",
73− f"mount --bind /id2-bindmount /var/lib/nixos-containers/{id1}",
73+ f"mount --bind /id2-bindmount /var/lib/containers/{id1}",
76 ip1 = machine.succeed(f"nixos-container show-ip {id1}").rstrip()
76 ip1 = machine.succeed(f"nixos-container show-ip {id1}").rstrip()
@@ -88,7 +88,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
88 "Create a directory with a dummy file and bind-mount it into both containers."
88 "Create a directory with a dummy file and bind-mount it into both containers."
90 for id in id1, id2:
90 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"
92 machine.succeed(
92 machine.succeed(
93 f"mkdir -p {important_path}",
93 f"mkdir -p {important_path}",
94 f"mount --bind /nested-bindmount {important_path}",
94 f"mount --bind /nested-bindmount {important_path}",
@@ -154,13 +154,13 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
154 machine.succeed("grep -qF 'important data' /nested-bindmount/dummy")
154 machine.succeed("grep -qF 'important data' /nested-bindmount/dummy")
156 with subtest("Ensure that the container path is gone"):
156 with subtest("Ensure that the container path is gone"):
157− print(machine.succeed("ls -lsa /var/lib/nixos-containers"))
157+ print(machine.succeed("ls -lsa /var/lib/containers"))
158− machine.succeed(f"test ! -e /var/lib/nixos-containers/{id1}")
158+ machine.succeed(f"test ! -e /var/lib/containers/{id1}")
160 with subtest("Ensure that a failed container creation doesn'leave any state"):
160 with subtest("Ensure that a failed container creation doesn'leave any state"):
161 machine.fail(
161 machine.fail(
162 "nixos-container create b0rk --config-file ${brokenCfg}"
162 "nixos-container create b0rk --config-file ${brokenCfg}"
164− machine.succeed("test ! -e /var/lib/nixos-containers/b0rk")
164+ machine.succeed("test ! -e /var/lib/containers/b0rk")
nixos/tests/containers-tmpfs.nix+5−5
@@ -62,7 +62,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
62 machine.succeed(
62 machine.succeed(
63 tmpfs_cmd("touch /root/test.file"),
63 tmpfs_cmd("touch /root/test.file"),
64 tmpfs_cmd("ls -l /root | grep -q test.file"),
64 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",
68 with subtest(
68 with subtest(
@@ -73,7 +73,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
73 tmpfs_cmd("touch /some/random/path/test.file"),
73 tmpfs_cmd("touch /some/random/path/test.file"),
74 tmpfs_cmd("test -e /some/random/path/test.file"),
74 tmpfs_cmd("test -e /some/random/path/test.file"),
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")
78 with subtest(
78 with subtest(
79 "files created in the hosts container dir in a path where a tmpfs "
79 "files created in the hosts container dir in a path where a tmpfs "
@@ -81,9 +81,9 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
81 + "the do not exist in the tmpfs"
81 + "the do not exist in the tmpfs"
83 machine.succeed(
83 machine.succeed(
84− "touch /var/lib/nixos-containers/tmpfs/var/test.file",
84+ "touch /var/lib/containers/tmpfs/var/test.file",
85− "test -e /var/lib/nixos-containers/tmpfs/var/test.file",
85+ "test -e /var/lib/containers/tmpfs/var/test.file",
86− "ls -l /var/lib/nixos-containers/tmpfs/var/ | grep -q test.file 2>/dev/null",
86+ "ls -l /var/lib/containers/tmpfs/var/ | grep -q test.file 2>/dev/null",
88 machine.fail(tmpfs_cmd("ls -l /var | grep -q test.file"))
88 machine.fail(tmpfs_cmd("ls -l /var | grep -q test.file"))
nixos/tests/custom-ca.nix+90−104
@@ -1,14 +1,9 @@
1# Checks that `security.pki` options are working in curl and the main browser
1# Checks that `security.pki` options are working in curl and the main browser
2−# engines: Gecko (via Firefox), Chromium, QtWebEngine (via qutebrowser) and
2+# engines: Gecko (via Firefox), Chromium, QtWebEngine (Falkon) and WebKitGTK
3−# WebKitGTK (via Midori). The test checks that certificates issued by a custom
3+# (via Midori). The test checks that certificates issued by a custom trusted
4−# trusted CA are accepted but those from an unknown CA are rejected.
4+# CA are accepted but those from an unknown CA are rejected.
6−{ system ? builtins.currentSystem,
6+import ./make-test-python.nix ({ pkgs, lib, ... }:
8− pkgs ? import ../.. { inherit system config; }
11−with import ../lib/testing-python.nix { inherit system pkgs; };
14 makeCert = { caName, domain }: pkgs.runCommand "example-cert"
9 makeCert = { caName, domain }: pkgs.runCommand "example-cert"
@@ -73,8 +68,24 @@ let
73 domain = "bad.example.com";
68 domain = "bad.example.com";
76− webserverConfig =
71+in
75+ meta.maintainers = with lib.maintainers; [ rnhmjoj ];
79+ nodes.machine = { pkgs, ... }:
80+ { imports = [ ./common/user-account.nix ./common/x11.nix ];
82+ # chromium-based browsers refuse to run as root
83+ test-support.displayManager.auto.user = "alice";
85+ # browsers may hang with the default memory
86+ virtualisation.memorySize = 600;
77− { networking.hosts."127.0.0.1" = [ "good.example.com" "bad.example.com" ];
88+ networking.hosts."127.0.0.1" = [ "good.example.com" "bad.example.com" ];
78 security.pki.certificateFiles = [ "${example-good-cert}/ca.crt" ];
89 security.pki.certificateFiles = [ "${example-good-cert}/ca.crt" ];
80 services.nginx.enable = true;
91 services.nginx.enable = true;
@@ -96,98 +107,73 @@ let
96 return 200 'It does not work!';
107 return 200 'It does not work!';
101− curlTest = makeTest {
102− name = "custom-ca-curl";
103− meta.maintainers = with lib.maintainers; [ rnhmjoj ];
104− nodes.machine = { ... }: webserverConfig;
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")
111− with subtest("Unknown CA is untrusted in curl"):
112− machine.fail("curl -fv https://bad.example.com")
116− mkBrowserTest = browser: testParams: makeTest {
117− name = "custom-ca-${browser}";
118− meta.maintainers = with lib.maintainers; [ rnhmjoj ];
122− nodes.machine = { pkgs, ... }:
124− [ ./common/user-account.nix
129− # chromium-based browsers refuse to run as root
130− test-support.displayManager.auto.user = "alice";
132− # browsers may hang with the default memory
133− virtualisation.memorySize = 600;
135− environment.systemPackages = [ pkgs.xdotool pkgs.${browser} ];
111+ environment.systemPackages = with pkgs; [
138− testScript = ''
114+ chromium
139− from typing import Tuple
115+ qutebrowser
140− def execute_as(user: str, cmd: str) -> Tuple[int, str]:
116+ midori
142− Run a shell command as a specific user.
144− return machine.execute(f"sudo -u {user} {cmd}")
147− def wait_for_window_as(user: str, cls: str) -> None:
149− Wait until a X11 window of a given user appears.
152− def window_is_visible(last_try: bool) -> bool:
153− ret, stdout = execute_as(user, f"xdotool search --onlyvisible --class {cls}")
155− machine.log(f"Last chance to match {cls} on the window list")
158− with machine.nested("Waiting for a window to appear"):
159− retry(window_is_visible)
163− machine.wait_for_x()
165− command = "${browser} ${testParams.args or ""}"
166− with subtest("Good certificate is trusted in ${browser}"):
168− "alice", f"{command} https://good.example.com >&2 &"
170− wait_for_window_as("alice", "${browser}")
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
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}")
186−{
120+ testScript = ''
187− curl = curlTest;
121+ from typing import Tuple
188−} // pkgs.lib.mapAttrs mkBrowserTest {
122+ def execute_as(user: str, cmd: str) -> Tuple[int, str]:
124+ Run a shell command as a specific user.
126+ return machine.execute(f"sudo -u {user} {cmd}")
129+ def wait_for_window_as(user: str, cls: str) -> None:
131+ Wait until a X11 window of a given user appears.
134+ def window_is_visible(last_try: bool) -> bool:
135+ ret, stdout = execute_as(user, f"xdotool search --onlyvisible --class {cls}")
137+ machine.log(f"Last chance to match {cls} on the window list")
140+ with machine.nested("Waiting for a window to appear"):
141+ retry(window_is_visible)
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")
151+ with subtest("Unknown CA is untrusted in curl"):
152+ machine.fail("curl -fv https://bad.example.com")
189− firefox = { error = "Security Risk"; };
155+ "firefox": "Security Risk",
190− chromium = { error = "not private"; };
156+ "chromium": "not private",
191− qutebrowser = { args = "-T"; error = "Certificate error"; };
157+ "qutebrowser -T": "Certificate error",
192− midori = { error = "Security"; };
158+ "midori": "Security"
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):
166+ "alice", f"{command} https://good.example.com >&2 &"
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
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)
nixos/tests/emacs-daemon.nix+1−1
@@ -33,7 +33,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
35 # connects to the daemon
35 # 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 &")
38 # checks that Emacs shows the edited filename
38 # checks that Emacs shows the edited filename
39 machine.wait_for_text("emacseditor")
39 machine.wait_for_text("emacseditor")
nixos/tests/fenics.nix+1−1
@@ -44,6 +44,6 @@ in
44 { nodes, ... }:
44 { nodes, ... }:
46 start_all()
46 start_all()
47− fenicsnode.succeed("${fenicsScript}")
47+ node1.succeed("${fenicsScript}")
nixos/tests/gitlab.nix+25−298
@@ -1,31 +1,9 @@
1−# This test runs gitlab and performs the following tests:
1+# This test runs gitlab and checks if it works
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, ... }:
14− inherit (import ./ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey;
15 initialRootPassword = "notproduction";
4 initialRootPassword = "notproduction";
18− aliceUsername = "alice";
20− alicePassword = "alicepassword";
21− aliceProjectId = "2";
22− aliceProjectName = "test-alice";
26− bobPassword = "bobpassword";
6+import ./make-test-python.nix ({ pkgs, lib, ...} : with lib; {
29 name = "gitlab";
7 name = "gitlab";
30 meta = with pkgs.lib.maintainers; {
8 meta = with pkgs.lib.maintainers; {
31 maintainers = [ globin yayayayaka ];
9 maintainers = [ globin yayayayaka ];
@@ -53,8 +31,6 @@ in {
56− services.openssh.enable = true;
58 services.dovecot2 = {
34 services.dovecot2 = {
59 enable = true;
35 enable = true;
60 enableImap = true;
36 enableImap = true;
@@ -101,43 +77,8 @@ in {
101 password = initialRootPassword;
77 password = initialRootPassword;
104− createUserAlice = pkgs.writeText "create-user-alice.json" (builtins.toJSON rec {
105− username = aliceUsername;
107− email = "alice@localhost";
108− password = alicePassword;
109− skip_confirmation = true;
112− createUserBob = pkgs.writeText "create-user-bob.json" (builtins.toJSON rec {
113− username = bobUsername;
115− email = "bob@localhost";
116− password = bobPassword;
117− skip_confirmation = true;
120− aliceAuth = pkgs.writeText "alice-auth.json" (builtins.toJSON {
121− grant_type = "password";
122− username = aliceUsername;
123− password = alicePassword;
126− bobAuth = pkgs.writeText "bob-auth.json" (builtins.toJSON {
127− grant_type = "password";
128− username = bobUsername;
129− password = bobPassword;
132− aliceAddSSHKey = pkgs.writeText "alice-add-ssh-key.json" (builtins.toJSON {
134− title = "snakeoil@nixos";
135− key = snakeOilPublicKey;
138− createProjectAlice = pkgs.writeText "create-project-alice.json" (builtins.toJSON {
80+ createProject = pkgs.writeText "create-project.json" (builtins.toJSON {
139− name = aliceProjectName;
81+ name = "test";
140− visibility = "public";
143 putFile = pkgs.writeText "put-file.json" (builtins.toJSON {
84 putFile = pkgs.writeText "put-file.json" (builtins.toJSON {
@@ -148,23 +89,6 @@ in {
148 commit_message = "create a new file";
89 commit_message = "create a new file";
151− mergeRequest = pkgs.writeText "merge-request.json" (builtins.toJSON {
153− target_project_id = aliceProjectId;
154− source_branch = "master";
155− target_branch = "master";
156− title = "Add some other file";
159− newIssue = pkgs.writeText "new-issue.json" (builtins.toJSON {
160− title = "useful issue title";
163− closeIssue = pkgs.writeText "close-issue.json" (builtins.toJSON {
165− state_event = "close";
168 # Wait for all GitLab services to be fully started.
92 # Wait for all GitLab services to be fully started.
169 waitForServices = ''
93 waitForServices = ''
170 gitlab.wait_for_unit("gitaly.service")
94 gitlab.wait_for_unit("gitaly.service")
@@ -181,8 +105,6 @@ in {
181 # The actual test of GitLab. Only push data to GitLab if
105 # The actual test of GitLab. Only push data to GitLab if
182 # `doSetup` is is true.
106 # `doSetup` is is true.
183 test = doSetup: ''
107 test = doSetup: ''
184− GIT_SSH_COMMAND = "ssh -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile=/dev/null"
186 gitlab.succeed(
108 gitlab.succeed(
187 "curl -isSf http://gitlab | grep -i location | grep http://gitlab/users/sign_in"
109 "curl -isSf http://gitlab | grep -i location | grep http://gitlab/users/sign_in"
@@ -193,222 +115,27 @@ in {
193 "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"
115 "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"
195 '' + optionalString doSetup ''
117 '' + optionalString doSetup ''
196− with subtest("Create user Alice"):
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" ]"""
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"
204− with subtest("Create user Bob"):
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" ]"""
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"
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")
224− -H 'Content-Type: application/json' \
225− -H @/tmp/headers-alice -d @${aliceAddSSHKey} \
226− http://gitlab/api/v4/user/keys)" = "201" ]
230− with subtest("Create a new repository"):
231− # Alice creates a new repository
238− -H 'Content-Type: application/json' \
239− -H @/tmp/headers-alice \
240− -d @${createProjectAlice} \
241− http://gitlab/api/v4/projects)" = "201" ]
245− # Alice commits an initial commit
252− -H 'Content-Type: application/json' \
253− -H @/tmp/headers-alice \
255− http://gitlab/api/v4/projects/${aliceProjectId}/repository/files/some-file.txt)" = "201" ]"""
258− with subtest("git clone over HTTP"):
260− """git clone http://gitlab/alice/${aliceProjectName}.git clone-via-http""",
264− with subtest("Push a commit via SSH"):
266− f"""GIT_SSH_COMMAND="{GIT_SSH_COMMAND}" git clone gitlab@gitlab:alice/${aliceProjectName}.git""",
270− """echo "a commit sent over ssh" > ${aliceProjectName}/ssh.txt"""
274− cd ${aliceProjectName} || exit 1
280− cd ${aliceProjectName} || exit 1
281− git commit -m "Add a commit to be sent over ssh"
286− cd ${aliceProjectName} || exit 1
287− GIT_SSH_COMMAND="{GIT_SSH_COMMAND}" git push --set-upstream origin master
292− with subtest("Fork a project"):
293− # Bob forks Alice's project
300− -H 'Content-Type: application/json' \
301− -H @/tmp/headers-bob \
302− http://gitlab/api/v4/projects/${aliceProjectId}/fork)" = "201" ]
306− # Bob creates a commit
307− gitlab.wait_until_succeeds(
313− -H 'Content-Type: application/json' \
314− -H @/tmp/headers-bob \
316− http://gitlab/api/v4/projects/${bobProjectId}/repository/files/some-other-file.txt)" = "201" ]
320− with subtest("Create a Merge Request"):
321− # Bob opens a merge request against Alice's repository
322− gitlab.wait_until_succeeds(
328− -H 'Content-Type: application/json' \
329− -H @/tmp/headers-bob \
330− -d @${mergeRequest} \
331− http://gitlab/api/v4/projects/${bobProjectId}/merge_requests)" = "201" ]
335− # Alice merges the MR
336− gitlab.wait_until_succeeds(
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" ]
349− with subtest("Create an Issue"):
350− # Bob opens an issue on Alice's repository
351− gitlab.succeed(
118+ gitlab.succeed(
356− -H 'Content-Type: application/json' \
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" ]"""
357− -H @/tmp/headers-bob \
359− http://gitlab/api/v4/projects/${aliceProjectId}/issues)" = "201" ]
363− # Alice closes the issue
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" ]"""
364− gitlab.wait_until_succeeds(
370− -H 'Content-Type: application/json' \
371− -H @/tmp/headers-alice -d @${closeIssue} http://gitlab/api/v4/projects/${aliceProjectId}/issues/1)" = "200" ]
375− with subtest("Download archive.tar.gz"):
376− gitlab.succeed(
125+ gitlab.succeed(
381− -H @/tmp/headers-alice \
382− http://gitlab/api/v4/projects/${aliceProjectId}/repository/archive.tar.gz)" = "200" ]
126+ """[ "$(curl -o /dev/null -w '%{http_code}' -H @/tmp/headers http://gitlab/api/v4/projects/2/repository/archive.tar.gz)" = "200" ]"""
385− gitlab.succeed(
128+ gitlab.succeed(
388− -H @/tmp/headers-alice \
389− http://gitlab/api/v4/projects/${aliceProjectId}/repository/archive.tar.gz > /tmp/archive.tar.gz
129+ """curl -H @/tmp/headers http://gitlab/api/v4/projects/2/repository/archive.tar.gz > /tmp/archive.tar.gz"""
392− gitlab.succeed("test -s /tmp/archive.tar.gz")
394− with subtest("Download archive.tar.bz2"):
395− gitlab.succeed(
131+ gitlab.succeed(
400− -H @/tmp/headers-alice \
401− http://gitlab/api/v4/projects/${aliceProjectId}/repository/archive.tar.bz2)" = "200" ]
132+ """[ "$(curl -o /dev/null -w '%{http_code}' -H @/tmp/headers http://gitlab/api/v4/projects/2/repository/archive.tar.bz2)" = "200" ]"""
404− gitlab.succeed(
134+ gitlab.succeed(
407− -H @/tmp/headers-alice \
408− http://gitlab/api/v4/projects/${aliceProjectId}/repository/archive.tar.bz2 > /tmp/archive.tar.bz2
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"""
137+ gitlab.succeed("test -s /tmp/archive.tar.gz")
411− gitlab.succeed("test -s /tmp/archive.tar.bz2")
138+ gitlab.succeed("test -s /tmp/archive.tar.bz2")
nixos/tests/haste-server.nixdeleted−23
@@ -1,23 +0,0 @@
1−import ./make-test-python.nix ({ pkgs, lib, ... }:
3− name = "haste-server";
4− meta.maintainers = with lib.maintainers; [ mkg20001 ];
6− nodes.machine = { pkgs, ... }: {
7− environment.systemPackages = with pkgs; [
12− services.haste-server = {
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"')
nixos/tests/hbase.nixdeleted−30
@@ -1,30 +0,0 @@
1−import ./make-test-python.nix ({ pkgs, lib, package ? pkgs.hbase, ... }:
5− meta = with lib.maintainers; {
6− maintainers = [ illustris ];
10− hbase = { pkgs, ... }: {
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";
18− environment.systemPackages = with pkgs; [
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")
nixos/tests/hibernate.nix−6
@@ -3,7 +3,6 @@
3{ system ? builtins.currentSystem
3{ system ? builtins.currentSystem
4, config ? {}
4, config ? {}
5, pkgs ? import ../.. { inherit system config; }
5, pkgs ? import ../.. { inherit system config; }
6−, systemdStage1 ? false
9with import ../lib/testing-python.nix { inherit system pkgs; };
8with import ../lib/testing-python.nix { inherit system pkgs; };
@@ -30,11 +29,6 @@ let
30 "/".device = "/dev/vda2";
29 "/".device = "/dev/vda2";
32 swapDevices = mkOverride 0 [ { device = "/dev/vda1"; } ];
31 swapDevices = mkOverride 0 [ { device = "/dev/vda1"; } ];
33− boot.resumeDevice = mkIf systemdStage1 "/dev/vda1";
34− boot.initrd.systemd = mkIf systemdStage1 {
36− emergencyAccess = true;
39 installedSystem = (import ../lib/eval-config.nix {
33 installedSystem = (import ../lib/eval-config.nix {
40 inherit system;
34 inherit system;
nixos/tests/installer-systemd-stage-1.nixdeleted−33
@@ -1,33 +0,0 @@
1−{ system ? builtins.currentSystem
3−, pkgs ? import ../.. { inherit system config; }
7− # Some of these tests don't work with systemd stage 1 yet. Uncomment
9− inherit (import ./installer.nix { inherit system config pkgs; systemdStage1 = true; })
14− # encryptedFSWithKeyfile
27− simpleUefiGrubSpecialisation
28− simpleUefiSystemdBoot
nixos/tests/installer.nix+1−14
@@ -1,7 +1,6 @@
1{ system ? builtins.currentSystem,
1{ system ? builtins.currentSystem,
2 config ? {},
2 config ? {},
3− pkgs ? import ../.. { inherit system config; },
3+ pkgs ? import ../.. { inherit system config; }
7with import ../lib/testing-python.nix { inherit system pkgs; };
6with import ../lib/testing-python.nix { inherit system pkgs; };
@@ -24,8 +23,6 @@ let
24 # To ensure that we can rebuild the grub configuration on the nixos-rebuild
23 # To ensure that we can rebuild the grub configuration on the nixos-rebuild
25 system.extraDependencies = with pkgs; [ stdenvNoCC ];
24 system.extraDependencies = with pkgs; [ stdenvNoCC ];
27− ${optionalString systemdStage1 "boot.initrd.systemd.enable = true;"}
29 ${optionalString (bootLoader == "grub") ''
26 ${optionalString (bootLoader == "grub") ''
30 boot.loader.grub.version = ${toString grubVersion};
27 boot.loader.grub.version = ${toString grubVersion};
31 ${optionalString (grubVersion == 1) ''
28 ${optionalString (grubVersion == 1) ''
@@ -293,8 +290,6 @@ let
293 virtualisation.cores = 8;
290 virtualisation.cores = 8;
294 virtualisation.memorySize = 1536;
291 virtualisation.memorySize = 1536;
296− boot.initrd.systemd.enable = systemdStage1;
298 # Use a small /dev/vdb as the root disk for the
293 # Use a small /dev/vdb as the root disk for the
299 # installer. This ensures the target disk (/dev/vda) is
294 # installer. This ensures the target disk (/dev/vda) is
300 # the same during and after installation.
295 # the same during and after installation.
@@ -304,13 +299,6 @@ let
304 virtualisation.qemu.diskInterface =
299 virtualisation.qemu.diskInterface =
305 if grubVersion == 1 then "scsi" else "virtio";
300 if grubVersion == 1 then "scsi" else "virtio";
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 = [];
314 boot.loader.systemd-boot.enable = mkIf (bootLoader == "systemd-boot") true;
302 boot.loader.systemd-boot.enable = mkIf (bootLoader == "systemd-boot") true;
316 hardware.enableAllFirmware = mkForce false;
304 hardware.enableAllFirmware = mkForce false;
@@ -325,7 +313,6 @@ let
326 docbook_xsl_ns
314 docbook_xsl_ns
329 libxml2.bin
316 libxml2.bin
330 libxslt.bin
317 libxslt.bin
331 nixos-artwork.wallpapers.simple-dark-gray-bottom
318 nixos-artwork.wallpapers.simple-dark-gray-bottom
nixos/tests/kexec.nix+16−44
@@ -1,50 +1,22 @@
1+# Test whether fast reboots via kexec work.
1−import ./make-test-python.nix ({ pkgs, lib, ... }: {
3+import ./make-test-python.nix ({ pkgs, lib, ...} : {
2 name = "kexec";
4 name = "kexec";
3 meta = with lib.maintainers; {
5 meta = with lib.maintainers; {
4− maintainers = [ flokli lassulus ];
6+ maintainers = [ eelco ];
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;
17− node2 = { modulesPath, ... }: {
18− virtualisation.vlans = [ ];
19− environment.systemPackages = [ pkgs.hello ];
21− "${modulesPath}/installer/kexec/kexec-boot.nix"
22− "${modulesPath}/profiles/minimal.nix"
27− testScript = { nodes, ... }: ''
9+ nodes.machine = { ... }:
28− # Test whether reboot via kexec works.
10+ { virtualisation.vlans = [ ]; };
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
34− node1.wait_for_unit("multi-user.target")
36− # Check if the machine with kexec-boot.nix profile boots up
37− node2.wait_for_unit("multi-user.target")
40− # Kexec node1 to the toplevel of node2 via the kexec-boot script
41− node1.succeed('touch /run/foo')
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" ]')
48− node1.shutdown()
12+ testScript =
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
19+ machine.wait_for_unit("multi-user.target")
nixos/tests/keycloak.nix+9−13
@@ -4,7 +4,7 @@
6 certs = import ./common/acme/server/snakeoil-certs.nix;
6 certs = import ./common/acme/server/snakeoil-certs.nix;
7− frontendUrl = "https://${certs.domain}";
7+ frontendUrl = "https://${certs.domain}/auth";
8 initialAdminPassword = "h4IhoJFnt2iQIR9";
8 initialAdminPassword = "h4IhoJFnt2iQIR9";
10 keycloakTest = import ./make-test-python.nix (
10 keycloakTest = import ./make-test-python.nix (
@@ -27,23 +27,20 @@ let
28 services.keycloak = {
28 services.keycloak = {
29 enable = true;
29 enable = true;
31− hostname = certs.domain;
33− inherit initialAdminPassword;
30+ inherit frontendUrl initialAdminPassword;
34− sslCertificate = "${certs.${certs.domain}.cert}";
31+ sslCertificate = certs.${certs.domain}.cert;
35− sslCertificateKey = "${certs.${certs.domain}.key}";
32+ sslCertificateKey = certs.${certs.domain}.key;
36 database = {
33 database = {
37 type = databaseType;
34 type = databaseType;
38 username = "bogus";
35 username = "bogus";
40− passwordFile = "${pkgs.writeText "dbPassword" "wzf6vOCbPp6cqTH"}";
36+ passwordFile = pkgs.writeText "dbPassword" "wzf6vOCbPp6cqTH";
42 plugins = with config.services.keycloak.package.plugins; [
38 plugins = with config.services.keycloak.package.plugins; [
43 keycloak-discord
39 keycloak-discord
44 keycloak-metrics-spi
40 keycloak-metrics-spi
47 environment.systemPackages = with pkgs; [
44 environment.systemPackages = with pkgs; [
48 xmlstarlet
45 xmlstarlet
@@ -102,9 +99,9 @@ let
103 keycloak.start()
100 keycloak.start()
104 keycloak.wait_for_unit("keycloak.service")
101 keycloak.wait_for_unit("keycloak.service")
105− keycloak.wait_for_open_port(443)
106 keycloak.wait_until_succeeds("curl -sSf ${frontendUrl}")
102 keycloak.wait_until_succeeds("curl -sSf ${frontendUrl}")
108 ### Realm Setup ###
105 ### Realm Setup ###
110 # Get an admin interface access token
107 # Get an admin interface access token
@@ -120,8 +117,8 @@ let
120 # Register the metrics SPI
117 # Register the metrics SPI
121 keycloak.succeed(
118 keycloak.succeed(
122 "${pkgs.jre}/bin/keytool -import -alias snakeoil -file ${certs.ca.cert} -storepass aaaaaa -keystore cacert.jks -noprompt",
119 "${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}'",
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}'",
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'",
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'",
125 "curl -sSf '${frontendUrl}/realms/master/metrics' | grep '^keycloak_admin_event_UPDATE'"
122 "curl -sSf '${frontendUrl}/realms/master/metrics' | grep '^keycloak_admin_event_UPDATE'"
@@ -175,6 +172,5 @@ let
177 postgres = keycloakTest { databaseType = "postgresql"; };
174 postgres = keycloakTest { databaseType = "postgresql"; };
178− mariadb = keycloakTest { databaseType = "mariadb"; };
179 mysql = keycloakTest { databaseType = "mysql"; };
175 mysql = keycloakTest { databaseType = "mysql"; };
nixos/tests/lvm2/default.nix+1−19
@@ -11,24 +11,6 @@ let
11 thinpool = { test = callTest ./thinpool.nix; kernelFilter = lib.id; };
11 thinpool = { test = callTest ./thinpool.nix; kernelFilter = lib.id; };
12 # we would like to test all versions, but the kernel module currently does not compile against the other versions
12 # we would like to test all versions, but the kernel module currently does not compile against the other versions
13 vdo = { test = callTest ./vdo.nix; kernelFilter = lib.filter (v: v == "5.15"); };
13 vdo = { test = callTest ./vdo.nix; kernelFilter = lib.filter (v: v == "5.15"); };
18− test = callTest ./systemd-stage-1.nix;
19− kernelFilter = lib.id;
22− thinpool-sd-stage-1 = {
23− test = callTest ./systemd-stage-1.nix;
24− kernelFilter = lib.id;
25− flavour = "thinpool";
28− test = callTest ./systemd-stage-1.nix;
29− kernelFilter = lib.filter (v: v == "5.15");
34lib.listToAttrs (
16lib.listToAttrs (
@@ -38,7 +20,7 @@ lib.listToAttrs (
38 v' = lib.replaceStrings [ "." ] [ "_" ] version;
20 v' = lib.replaceStrings [ "." ] [ "_" ] version;
40 lib.flip lib.mapAttrsToList tests (name: t:
22 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'}"; }))
nixos/tests/lvm2/systemd-stage-1.nixdeleted−104
@@ -1,104 +0,0 @@
1−{ kernelPackages ? null, flavour }: let
4− machine.succeed("vgcreate test_vg /dev/vdc /dev/vdd")
5− machine.succeed("lvcreate -L 512M --type raid0 test_vg -n test_lv")
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")
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")
22− boot.initrd.kernelModules = [
30− boot.thin.enable = true;
31− dmeventd.enable = true;
37− boot.vdo.enable = true;
38− dmeventd.enable = true;
45− "test_lv" in machine.succeed("lvs --select segtype=raid0")
49− "test_lv" in machine.succeed("lvs --select segtype=thin-pool")
53− "test_lv" in machine.succeed("lvs --select segtype=vdo")
57−in import ../make-test-python.nix ({ pkgs, ... }: {
58− name = "lvm2-${flavour}-systemd-stage-1";
59− meta.maintainers = with pkgs.lib.maintainers; [ das_j ];
61− nodes.machine = { pkgs, lib, ... }: {
62− imports = [ extraConfig ];
65− emptyDiskImages = [ 8192 8192 ];
66− useBootLoader = true;
69− boot.loader.systemd-boot.enable = true;
70− boot.loader.efi.canTouchEfiVariables = true;
72− environment.systemPackages = with pkgs; [ e2fsprogs ]; # for mkfs.ext4
76− emergencyAccess = true;
78− initrd.services.lvm.enable = true;
79− kernelPackages = lib.mkIf (kernelPackages != null) kernelPackages;
82− specialisation.boot-lvm.configuration.virtualisation.bootDevice = "/dev/test_vg/test_lv";
86− machine.wait_for_unit("multi-user.target")
87− # Create a VG for the root
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")
93− machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-lvm.conf")
94− machine.succeed("sync")
96− machine.wait_for_unit("multi-user.target")
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")
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, ...} :
4− lxd-image = import ../release.nix {
4+ # Since we don't have access to the internet during the tests, we have to
5− configuration = {
5+ # pre-fetch lxd containers beforehand.
6− # Building documentation makes the test unnecessarily take a longer time:
6+ #
7− documentation.enable = lib.mkForce false;
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=";
14+ alpine-rootfs = pkgs.fetchurl {
15+ url = "https://tarballs.nixos.org/alpine/3.12/rootfs.tar.xz";
16+ hash = "sha256-Tba9sSoaiMtQLY45u7p5DMqXTSDgs/763L/SQp0bkCA=";
11− lxd-image-metadata = lxd-image.lxdMeta.${pkgs.system};
19+ lxd-config = pkgs.writeText "config.yaml" ''
12− lxd-image-rootfs = lxd-image.lxdImage.${pkgs.system};
20+ storage_pools:
24+ source: /var/lxd-pool
15 name = "lxd-image-server";
48 name = "lxd-image-server";
17 meta = with pkgs.lib.maintainers; {
50 meta = with pkgs.lib.maintainers; {
18− maintainers = [ mkg20001 patryk27 ];
51+ maintainers = [ mkg20001 ];
21 nodes.machine = { lib, ... }: {
54 nodes.machine = { lib, ... }: {
@@ -67,20 +100,20 @@ in {
67 # lxd expects the pool's directory to already exist
100 # lxd expects the pool's directory to already exist
68 machine.succeed("mkdir /var/lxd-pool")
101 machine.succeed("mkdir /var/lxd-pool")
70 machine.succeed(
104 machine.succeed(
71− "cat ${./common/lxd/config.yaml} | lxd init --preseed"
105+ "cat ${lxd-config} | lxd init --preseed"
74 machine.succeed(
108 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"
78− loc = "/var/www/simplestreams/images/iats/nixos/amd64/default/v1"
112+ loc = "/var/www/simplestreams/images/iats/alpine/amd64/default/v1"
80 with subtest("push image to server"):
114 with subtest("push image to server"):
81− machine.succeed("lxc launch nixos test")
115+ machine.succeed("lxc launch alpine test")
83− machine.succeed("lxc stop -f test")
116+ machine.succeed("lxc stop test")
84 machine.succeed("lxc publish --public test --alias=testimg")
117 machine.succeed("lxc publish --public test --alias=testimg")
85 machine.succeed("lxc image export testimg")
118 machine.succeed("lxc image export testimg")
86 machine.succeed("ls >&2")
119 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
4+import ./make-test-python.nix ({ pkgs, ...} : let
5+ release = import ../release.nix {
7+ environment.systemPackages = with pkgs; [ stdenv ]; # inject stdenv so rebuild test works
11+ metadata = release.lxdMeta.${pkgs.system};
12+ image = release.lxdImage.${pkgs.system};
14+ lxd-config = pkgs.writeText "config.yaml" ''
19+ source: /var/lxd-pool
43+ meta = with pkgs.lib.maintainers; {
44+ maintainers = [ mkg20001 ];
47+ nodes.machine = { lib, ... }: {
49+ # disk full otherwise
52+ lxc.lxcfs.enable = true;
58+ machine.wait_for_unit("sockets.target")
59+ machine.wait_for_unit("lxd.service")
60+ machine.wait_for_file("/var/lib/lxd/unix.socket")
62+ # It takes additional second for lxd to settle
65+ # lxd expects the pool's directory to already exist
66+ machine.succeed("mkdir /var/lxd-pool")
69+ "cat ${lxd-config} | lxd init --preseed"
72+ # TODO: test custom built container aswell
74+ with subtest("importing container works"):
75+ machine.succeed("lxc image import ${metadata}/*/*.tar.xz ${image}/*/*.tar.xz --alias nixos")
77+ with subtest("launching container works"):
78+ machine.succeed("lxc launch nixos machine -c security.nesting=true")
79+ # make sure machine boots up properly
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")
86+ # with subtest("rebuilding works"):
87+ # machine.succeed("lxc exec machine /run/current-system/sw/bin/nixos-rebuild switch")
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, ...} :
4− lxd-image = import ../release.nix {
4+ # Since we don't have access to the internet during the tests, we have to
5− configuration = {
5+ # pre-fetch lxd containers beforehand.
6− # Building documentation makes the test unnecessarily take a longer time:
6+ #
7− documentation.enable = lib.mkForce false;
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=";
9− # Our tests require `grep` & friends:
14+ alpine-rootfs = pkgs.fetchurl {
10− environment.systemPackages = with pkgs; [ busybox ];
15+ url = "https://tarballs.nixos.org/alpine/3.12/rootfs.tar.xz";
11− };
16+ hash = "sha256-Tba9sSoaiMtQLY45u7p5DMqXTSDgs/763L/SQp0bkCA=";
14− lxd-image-metadata = lxd-image.lxdMeta.${pkgs.system};
19+ lxd-config = pkgs.writeText "config.yaml" ''
15− lxd-image-rootfs = lxd-image.lxdImage.${pkgs.system};
20+ storage_pools:
24+ source: /var/lxd-pool
18 name = "lxd";
48 name = "lxd";
@@ -23,8 +53,6 @@ in {
24 nodes.machine = { lib, ... }: {
54 nodes.machine = { lib, ... }: {
25 virtualisation = {
55 virtualisation = {
28 # Since we're testing `limits.cpu`, we've gotta have a known number of
56 # Since we're testing `limits.cpu`, we've gotta have a known number of
29 # cores to lean on
57 # cores to lean on
30 cores = 2;
58 cores = 2;
@@ -49,66 +77,61 @@ in {
49 machine.succeed("mkdir /var/lxd-pool")
77 machine.succeed("mkdir /var/lxd-pool")
51 machine.succeed(
79 machine.succeed(
52− "cat ${./common/lxd/config.yaml} | lxd init --preseed"
80+ "cat ${lxd-config} | lxd init --preseed"
55 machine.succeed(
83 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"
59− with subtest("Container can be managed"):
87+ with subtest("Containers can be launched and destroyed"):
60− machine.succeed("lxc launch nixos container")
88+ machine.succeed("lxc launch alpine test")
62− machine.succeed("echo true | lxc exec container /run/current-system/sw/bin/bash -")
63− machine.succeed("lxc exec container true")
89+ machine.succeed("lxc exec test true")
64− machine.succeed("lxc delete -f container")
90+ machine.succeed("lxc delete -f test")
66− with subtest("Container is mounted with lxcfs inside"):
92+ with subtest("Containers are being mounted with lxcfs inside"):
67− machine.succeed("lxc launch nixos container")
93+ machine.succeed("lxc launch alpine test")
70 ## ---------- ##
95 ## ---------- ##
71 ## limits.cpu ##
96 ## limits.cpu ##
73− machine.succeed("lxc config set container limits.cpu 1")
98+ machine.succeed("lxc config set test limits.cpu 1")
74− machine.succeed("lxc restart container")
99+ machine.succeed("lxc restart test")
101+ # Since Alpine doesn't have `nproc` pre-installed, we've gotta resort
102+ # to the primal methods
79− == machine.succeed("lxc exec container grep -- -c ^processor /proc/cpuinfo").strip()
105+ == machine.succeed("lxc exec test grep -- -c ^processor /proc/cpuinfo").strip()
82− machine.succeed("lxc config set container limits.cpu 2")
108+ machine.succeed("lxc config set test limits.cpu 2")
83− machine.succeed("lxc restart container")
109+ machine.succeed("lxc restart test")
88− == machine.succeed("lxc exec container grep -- -c ^processor /proc/cpuinfo").strip()
113+ == machine.succeed("lxc exec test grep -- -c ^processor /proc/cpuinfo").strip()
91 ## ------------- ##
116 ## ------------- ##
92 ## limits.memory ##
117 ## limits.memory ##
94− machine.succeed("lxc config set container limits.memory 64MB")
119+ machine.succeed("lxc config set test limits.memory 64MB")
95− machine.succeed("lxc restart container")
120+ machine.succeed("lxc restart test")
99 "MemTotal: 62500 kB"
123 "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()
103− machine.succeed("lxc config set container limits.memory 128MB")
127+ machine.succeed("lxc config set test limits.memory 128MB")
104− machine.succeed("lxc restart container")
128+ machine.succeed("lxc restart test")
108 "MemTotal: 125000 kB"
131 "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()
112− machine.succeed("lxc delete -f container")
135+ machine.succeed("lxc delete -f test")
nixos/tests/mailcatcher.nix+2−7
@@ -9,13 +9,8 @@ import ./make-test-python.nix ({ lib, ... }:
10 services.mailcatcher.enable = true;
10 services.mailcatcher.enable = true;
13− enable = true;
12+ services.ssmtp.enable = true;
14− accounts.default = {
13+ services.ssmtp.hostName = "localhost:1025";
20 environment.systemPackages = [ pkgs.mailutils ];
15 environment.systemPackages = [ pkgs.mailutils ];
nixos/tests/matrix-appservice-irc.nix−3
@@ -20,9 +20,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
21 enable_registration = true;
21 enable_registration = true;
23− # don't use this in production, always use some form of verification
24− enable_registration_without_verification = true;
26 listeners = [ {
23 listeners = [ {
27 # The default but tls=false
24 # The default but tls=false
28 bind_addresses = [
25 bind_addresses = [
nixos/tests/mongodb.nix−4
@@ -37,8 +37,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
37 mongodb-3_6
37 mongodb-3_6
38 mongodb-4_0
38 mongodb-4_0
39 mongodb-4_2
39 mongodb-4_2
@@ -50,8 +48,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
50 + runMongoDBTest pkgs.mongodb-3_6
48 + runMongoDBTest pkgs.mongodb-3_6
51 + runMongoDBTest pkgs.mongodb-4_0
49 + runMongoDBTest pkgs.mongodb-4_0
52 + runMongoDBTest pkgs.mongodb-4_2
50 + runMongoDBTest pkgs.mongodb-4_2
53− + runMongoDBTest pkgs.mongodb-4_4
54− + runMongoDBTest pkgs.mongodb-5_0
56 node.shutdown()
52 node.shutdown()
nixos/tests/nar-serve.nix+1−1
@@ -31,7 +31,7 @@ import ./make-test-python.nix (
32 # Create a fake cache with Nginx service the static files
32 # Create a fake cache with Nginx service the static files
33 server.succeed(
33 server.succeed(
34− "nix --experimental-features nix-command copy --to file:///var/www ${pkgs.hello}"
34+ "nix copy --to file:///var/www ${pkgs.hello}"
36 server.wait_for_unit("nginx.service")
36 server.wait_for_unit("nginx.service")
37 server.wait_for_open_port(80)
37 server.wait_for_open_port(80)
@@ -28,11 +28,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
28 ## It's also a loopback device to test exporting /dev/...
28 ## It's also a loopback device to test exporting /dev/...
29 systemd.services.create-priv-file =
29 systemd.services.create-priv-file =
30 mkCreateSmallFileService { path = "/vault-priv.disk"; loop = true; };
30 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"; };
37 # Needed only for nbd-client used in the tests.
32 # Needed only for nbd-client used in the tests.
38 environment.systemPackages = [ pkgs.nbd ];
33 environment.systemPackages = [ pkgs.nbd ];
@@ -44,9 +39,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
44 services.nbd.server = {
39 services.nbd.server = {
45 enable = true;
40 enable = true;
46 exports = {
41 exports = {
50 vault-pub = {
42 vault-pub = {
51 path = "/vault-pub.disk";
43 path = "/vault-pub.disk";
@@ -91,13 +83,5 @@ import ./make-test-python.nix ({ pkgs, ... }:
91 if foundString != testString:
83 if foundString != testString:
92 raise Exception(f"Read the wrong string from nbd disk. Expected: '{testString}'. Found: '{foundString}'")
84 raise Exception(f"Read the wrong string from nbd disk. Expected: '{testString}'. Found: '{foundString}'")
93 server.succeed("nbd-client -d /dev/nbd0")
85 server.succeed("nbd-client -d /dev/nbd0")
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")
nixos/tests/ncdns.nix+9−6
@@ -29,10 +29,10 @@ in
31 nodes.server = { ... }: {
31 nodes.server = { ... }: {
32− networking.nameservers = [ "::1" ];
32+ networking.nameservers = [ "127.0.0.1" ];
34 services.namecoind.rpc = {
34 services.namecoind.rpc = {
35− address = "::1";
35+ address = "127.0.0.1";
36 user = "namecoin";
36 user = "namecoin";
37 password = "secret";
37 password = "secret";
38 port = 8332;
38 port = 8332;
@@ -45,7 +45,7 @@ in
45 script = ''
45 script = ''
46 while true; do
46 while true; do
47 echo -e "HTTP/1.1 200 OK\n\n $(<${fakeReply})\n" \
47 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
@@ -58,10 +58,14 @@ in
58 identity.address = "1.0.0.1";
58 identity.address = "1.0.0.1";
61− services.pdns-recursor.enable = true;
61+ services.pdns-recursor = {
63+ dns.allowFrom = [ "127.0.0.0/8" ];
62− services.pdns-recursor.resolveNamecoin = true;
64+ resolveNamecoin = true;
64 environment.systemPackages = [ pkgs.dnsutils ];
67 environment.systemPackages = [ pkgs.dnsutils ];
67 testScript =
71 testScript =
@@ -87,7 +91,6 @@ in
87 assert "example.com" in server.succeed("dig SOA @localhost -p 5333 bit")
91 assert "example.com" in server.succeed("dig SOA @localhost -p 5333 bit")
89 with subtest("bit. zone forwarding works"):
93 with subtest("bit. zone forwarding works"):
90− server.wait_for_unit("pdns-recursor")
91 assert "1.2.3.4" in server.succeed("host test.bit")
94 assert "1.2.3.4" in server.succeed("host test.bit")
nixos/tests/networking.nix+1−1
@@ -878,7 +878,7 @@ let
878 linkConfig.Name = "custom_name";
878 linkConfig.Name = "custom_name";
881− else { boot.initrd.services.udev.rules = ''
881+ else { services.udev.initrdRules = ''
882 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:12:01:01", KERNEL=="eth*", NAME="custom_name"
882 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:12:01:01", KERNEL=="eth*", NAME="custom_name"
nixos/tests/nextcloud/with-mysql-and-memcached.nix+22−1
@@ -26,7 +26,6 @@ in {
26 redis = false;
26 redis = false;
27 memcached = true;
27 memcached = true;
29− database.createLocally = true;
30 config = {
29 config = {
31 dbtype = "mysql";
30 dbtype = "mysql";
32 dbname = "nextcloud";
31 dbname = "nextcloud";
@@ -39,6 +38,28 @@ in {
44+ bind-address = "127.0.0.1";
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;
51+ package = pkgs.mariadb;
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';
42 systemd.services.nextcloud-setup= {
63 systemd.services.nextcloud-setup= {
43 requires = ["mysql.service"];
64 requires = ["mysql.service"];
44 after = ["mysql.service"];
65 after = ["mysql.service"];
nixos/tests/openssh.nix+6−12
@@ -80,21 +80,17 @@ in {
81 client.wait_for_unit("network.target")
81 client.wait_for_unit("network.target")
82 client.succeed(
82 client.succeed(
83− "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'echo hello world' >&2",
83+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'echo hello world' >&2"
86 client.succeed(
85 client.succeed(
87− "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'ulimit -l' | grep 1024",
86+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'ulimit -l' | grep 1024"
91 client.succeed(
89 client.succeed(
92− "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'echo hello world' >&2",
90+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'echo hello world' >&2"
95 client.succeed(
92 client.succeed(
96− "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'ulimit -l' | grep 1024",
93+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'ulimit -l' | grep 1024"
100 with subtest("configured-authkey"):
96 with subtest("configured-authkey"):
@@ -103,12 +99,10 @@ in {
104 client.succeed("chmod 600 privkey.snakeoil")
100 client.succeed("chmod 600 privkey.snakeoil")
105 client.succeed(
101 client.succeed(
106− "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil server true",
102+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil server true"
109 client.succeed(
104 client.succeed(
110− "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil server_lazy true",
105+ "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil server_lazy true"
114 with subtest("localhost-only"):
108 with subtest("localhost-only"):
nixos/tests/pam/pam-oath-login.nix+1−1
@@ -7,7 +7,7 @@ let
7 # how many passwords have been made. In this env, we'll always be on
7 # how many passwords have been made. In this env, we'll always be on
8 # the 0th counter, so the password is static.
8 # the 0th counter, so the password is static.
10− # Generated in nix-shell -p oath-toolkit
10+ # Generated in nix-shell -p oathToolkit
11 # via: oathtool -v -d6 -w10 cdd4083ef8ff1fa9178c6d46bfb1a3
11 # via: oathtool -v -d6 -w10 cdd4083ef8ff1fa9178c6d46bfb1a3
12 # and picking a the first 4:
12 # and picking a the first 4:
13 oathSnakeOilPassword1 = "143349";
13 oathSnakeOilPassword1 = "143349";
nixos/tests/pam/pam-ussh.nixdeleted−70
@@ -1,70 +0,0 @@
1−import ../make-test-python.nix ({ pkgs, lib, ... }:
4− testOnlySSHCredentials = pkgs.runCommand "pam-ussh-test-ca" {
5− nativeBuildInputs = [ pkgs.openssh ];
8− ssh-keygen -t ed25519 -N "" -f $out/ca
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
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
16− makeTestScript = user: pkgs.writeShellScript "pam-ussh-${user}-test-script" ''
19− eval $(${pkgs.openssh}/bin/ssh-agent)
23− cp ${testOnlySSHCredentials}/${user}{,.pub,-cert.pub} $HOME/.ssh
24− chmod 600 $HOME/.ssh/${user}
25− chmod 644 $HOME/.ssh/${user}{,-cert}.pub
29− ${pkgs.openssh}/bin/ssh-add $HOME/.ssh/${user}
30− ${pkgs.openssh}/bin/ssh-add -l &>2
36− meta.maintainers = with lib.maintainers; [ lukegb ];
41− users.users.alice = { isNormalUser = true; extraGroups = [ "wheel" ]; };
42− users.users.bob = { isNormalUser = true; extraGroups = [ "wheel" ]; };
44− security.pam.ussh = {
46− authorizedPrincipals = "root";
47− caFile = "${testOnlySSHCredentials}/ca.pub";
53− Defaults lecture="never"
60− with subtest("alice should be allowed to escalate to root"):
62− 'su -c "${makeTestScript "alice"}" -l alice | grep root'
65− with subtest("bob should not be allowed to escalate to root"):
67− 'su -c "${makeTestScript "bob"}" -l bob | grep root'
nixos/tests/paperless.nix → nixos/tests/paperless-ng.nixrenamed+12−11
@@ -1,32 +1,30 @@
1import ./make-test-python.nix ({ lib, ... }: {
1import ./make-test-python.nix ({ lib, ... }: {
2− name = "paperless";
2+ name = "paperless-ng";
3 meta.maintainers = with lib.maintainers; [ earvstedt Flakebi ];
3 meta.maintainers = with lib.maintainers; [ earvstedt Flakebi ];
5 nodes.machine = { pkgs, ... }: {
5 nodes.machine = { pkgs, ... }: {
6 environment.systemPackages = with pkgs; [ imagemagick jq ];
6 environment.systemPackages = with pkgs; [ imagemagick jq ];
7− services.paperless = {
7+ services.paperless-ng = {
8 enable = true;
8 enable = true;
9 passwordFile = builtins.toFile "password" "admin";
9 passwordFile = builtins.toFile "password" "admin";
13 testScript = ''
13 testScript = ''
14− import json
14+ machine.wait_for_unit("paperless-ng-consumer.service")
16− machine.wait_for_unit("paperless-consumer.service")
16+ with subtest("Create test doc"):
18− with subtest("Add a document via the file system"):
19 machine.succeed(
17 machine.succeed(
20 "convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "
18 "convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "
21 "-annotate +5+20 'hello world 16-10-2005' /var/lib/paperless/consume/doc.png"
19 "-annotate +5+20 'hello world 16-10-2005' /var/lib/paperless/consume/doc.png"
24 with subtest("Web interface gets ready"):
22 with subtest("Web interface gets ready"):
25− machine.wait_for_unit("paperless-web.service")
23+ machine.wait_for_unit("paperless-ng-web.service")
26 # Wait until server accepts connections
24 # Wait until server accepts connections
27 machine.wait_until_succeeds("curl -fs localhost:28981")
25 machine.wait_until_succeeds("curl -fs localhost:28981")
29− with subtest("Add a document via the web interface"):
27+ with subtest("Create web test doc"):
30 machine.succeed(
28 machine.succeed(
31 "convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "
29 "convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "
32 "-annotate +5+20 'hello web 16-10-2005' /tmp/webdoc.png"
30 "-annotate +5+20 'hello web 16-10-2005' /tmp/webdoc.png"
@@ -37,8 +35,11 @@ import ./make-test-python.nix ({ lib, ... }: {
37 machine.wait_until_succeeds(
35 machine.wait_until_succeeds(
38 "(($(curl -u admin:admin -fs localhost:28981/api/documents/ | jq .count) == 2))"
36 "(($(curl -u admin:admin -fs localhost:28981/api/documents/ | jq .count) == 2))"
38+ assert "2005-10-16" in machine.succeed(
40− docs = json.loads(machine.succeed("curl -u admin:admin -fs localhost:28981/api/documents/"))['results']
39+ "curl -u admin:admin -fs localhost:28981/api/documents/ | jq '.results | .[0] | .created'"
41− assert "2005-10-16" in docs[0]['created']
40+ )
42− assert "2005-10-16" in docs[1]['created']
41+ assert "2005-10-16" in machine.succeed(
42+ "curl -u admin:admin -fs localhost:28981/api/documents/ | jq '.results | .[1] | .created'"
nixos/tests/pdns-recursor.nix+1−4
@@ -1,15 +1,12 @@
1import ./make-test-python.nix ({ pkgs, ... }: {
1import ./make-test-python.nix ({ pkgs, ... }: {
2− name = "powerdns-recursor";
2+ name = "powerdns";
4 nodes.server = { ... }: {
4 nodes.server = { ... }: {
5 services.pdns-recursor.enable = true;
5 services.pdns-recursor.enable = true;
6− services.pdns-recursor.exportHosts= true;
7− networking.hosts."192.0.2.1" = [ "example.com" ];
10 testScript = ''
8 testScript = ''
11 server.wait_for_unit("pdns-recursor")
9 server.wait_for_unit("pdns-recursor")
12 server.wait_for_open_port("53")
10 server.wait_for_open_port("53")
13− assert "192.0.2.1" in server.succeed("host example.com localhost")
nixos/tests/pgadmin4.nix+48−37
@@ -1,27 +1,53 @@
1−import ./make-test-python.nix ({ pkgs, lib, buildDeps ? [ ], pythonEnv ? [ ], ... }:
1+import ./make-test-python.nix ({ pkgs, lib, ... }:
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.
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.
12− Unfortunately, there doesn't seem to be an easy way to otherwise include
13− the needed packages here.
15− Due the the needed parameters a direct call to "nixosTests.pgadmin4" fails
16− and needs to be called as "pgadmin4.tests"
21 pgadmin4SrcDir = "/pgadmin";
4 pgadmin4SrcDir = "/pgadmin";
22 pgadmin4Dir = "/var/lib/pgadmin";
5 pgadmin4Dir = "/var/lib/pgadmin";
23 pgadmin4LogDir = "/var/log/pgadmin";
6 pgadmin4LogDir = "/var/log/pgadmin";
8+ python-with-needed-packages = pkgs.python3.withPackages (ps: with ps; [
27 name = "pgadmin4";
53 name = "pgadmin4";
@@ -29,27 +55,12 @@ import ./make-test-python.nix ({ pkgs, lib, buildDeps ? [ ], pythonEnv ? [ ], ..
30 nodes.machine = { pkgs, ... }: {
56 nodes.machine = { pkgs, ... }: {
31 imports = [ ./common/x11.nix ];
57 imports = [ ./common/x11.nix ];
32− # needed because pgadmin 6.8 will fail, if those dependencies get updated
35− pythonPackages = pythonEnv;
39 environment.systemPackages = with pkgs; [
58 environment.systemPackages = with pkgs; [
41 postgresql
60 postgresql
61+ python-with-needed-packages
42 chromedriver
62 chromedriver
44− # include the same packages as in pgadmin minus speaklater3
45− (python3.withPackages
48− # test suite package requirements
49− pythonPackages.testscenarios
50− pythonPackages.selenium
54 services.postgresql = {
65 services.postgresql = {
55 enable = true;
66 enable = true;
@@ -110,7 +121,7 @@ import ./make-test-python.nix ({ pkgs, lib, buildDeps ? [ ], pythonEnv ? [ ], ..
110 with subtest("run browser test"):
121 with subtest("run browser test"):
111 machine.succeed(
122 machine.succeed(
112 'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \
123 '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 \
114 browser.tests.test_ldap_login.LDAPLoginTestCase,browser.tests.test_ldap_login'
125 browser.tests.test_ldap_login.LDAPLoginTestCase,browser.tests.test_ldap_login'
@@ -120,13 +131,13 @@ import ./make-test-python.nix ({ pkgs, lib, buildDeps ? [ ], pythonEnv ? [ ], ..
120 machine.succeed(
131 machine.succeed(
121 'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \
132 'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \
122 && export FONTCONFIG_FILE=${pkgs.makeFontsConf { fontDirectories = [];}} \
133 && 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'
126 with subtest("run resql test"):
137 with subtest("run resql test"):
127 machine.succeed(
138 machine.succeed(
128 'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web \
139 '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'
nixos/tests/snapcast.nix−1
@@ -19,7 +19,6 @@ in {
19 port = port;
19 port = port;
20 tcp.port = tcpPort;
20 tcp.port = tcpPort;
21 http.port = httpPort;
21 http.port = httpPort;
23 buffer = bufferSize;
22 buffer = bufferSize;
24 streams = {
23 streams = {
nixos/tests/step-ca.nix−1
@@ -9,7 +9,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
15 caserver =
14 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";
4− nodes.machine = { pkgs, ... }: {
7− emptyDiskImages = [ 512 512 ];
11− boot.loader.systemd-boot.enable = true;
12− boot.loader.efi.canTouchEfiVariables = true;
14− environment.systemPackages = with pkgs; [ btrfs-progs ];
15− boot.initrd.systemd = {
17− emergencyAccess = true;
20− specialisation.boot-btrfs-raid.configuration = {
21− fileSystems = lib.mkVMOverride {
22− "/".fsType = lib.mkForce "btrfs";
24− virtualisation.bootDevice = "/dev/vdc";
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")
34− machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-btrfs-raid.conf")
35− machine.succeed("sync")
37− machine.wait_for_unit("multi-user.target")
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")
nixos/tests/systemd-initrd-luks-keyfile.nixdeleted−53
@@ -1,53 +0,0 @@
1−import ./make-test-python.nix ({ lib, pkgs, ... }: let
3− keyfile = pkgs.writeText "luks-keyfile" ''
4− MIGHAoGBAJ4rGTSo/ldyjQypd0kuS7k2OSsmQYzMH6TNj3nQ/vIUjDn7fqa3slt2
5− gV6EK3TmTbGc4tzC1v4SWx2m+2Bjdtn4Fs4wiBwn1lbRdC6i5ZYCqasTWIntWn+6
6− FllUkMD5oqjOR/YcboxG8Z3B5sJuvTP9llsF+gnuveWih9dpbBr7AgEC
10− name = "systemd-initrd-luks-keyfile";
12− nodes.machine = { pkgs, ... }: {
15− emptyDiskImages = [ 512 ];
16− useBootLoader = true;
19− boot.loader.systemd-boot.enable = true;
21− environment.systemPackages = with pkgs; [ cryptsetup ];
22− boot.initrd.systemd = {
24− emergencyAccess = true;
27− specialisation.boot-luks.configuration = {
28− boot.initrd.luks.devices = lib.mkVMOverride {
31− keyFile = "/etc/cryptroot.key";
34− virtualisation.bootDevice = "/dev/mapper/cryptroot";
35− boot.initrd.secrets."/etc/cryptroot.key" = keyfile;
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")
44− # Boot from the encrypted disk
45− machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks.conf")
46− machine.succeed("sync")
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")
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";
4− nodes.machine = { pkgs, ... }: {
7− emptyDiskImages = [ 512 512 ];
11− boot.loader.systemd-boot.enable = true;
13− environment.systemPackages = with pkgs; [ cryptsetup ];
14− boot.initrd.systemd = {
16− emergencyAccess = true;
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";
25− virtualisation.bootDevice = "/dev/mapper/cryptroot";
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 -")
35− # Boot from the encrypted disk
36− machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks.conf")
37− machine.succeed("sync")
40− # Boot and decrypt the disk
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")
46− assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
nixos/tests/systemd-initrd-simple.nix+7−24
@@ -1,7 +1,7 @@
1import ./make-test-python.nix ({ lib, pkgs, ... }: {
1import ./make-test-python.nix ({ lib, pkgs, ... }: {
2 name = "systemd-initrd-simple";
2 name = "systemd-initrd-simple";
4− nodes.machine = { pkgs, ... }: {
4+ machine = { pkgs, ... }: {
5 boot.initrd.systemd = {
5 boot.initrd.systemd = {
6 enable = true;
6 enable = true;
7 emergencyAccess = true;
7 emergencyAccess = true;
@@ -14,31 +14,14 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
14 testScript = ''
14 testScript = ''
15 import subprocess
15 import subprocess
17− with subtest("handover to stage-2 systemd works"):
17+ oldAvail = machine.succeed("df --output=avail / | sed 1d")
18− machine.wait_for_unit("multi-user.target")
18+ machine.shutdown()
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
20+ subprocess.check_call(["qemu-img", "resize", "vm-state-machine/machine.qcow2", "+1G"])
33− with subtest("growfs works"):
22+ machine.start()
34− oldAvail = machine.succeed("df --output=avail / | sed 1d")
23+ newAvail = machine.succeed("df --output=avail / | sed 1d")
37− subprocess.check_call(["qemu-img", "resize", "vm-state-machine/machine.qcow2", "+1G"])
40− newAvail = machine.succeed("df --output=avail / | sed 1d")
42− assert int(oldAvail) < int(newAvail), "File system did not grow"
25+ assert int(oldAvail) < int(newAvail), "File system did not grow"
nixos/tests/systemd-initrd-swraid.nixdeleted−50
@@ -1,50 +0,0 @@
1−import ./make-test-python.nix ({ lib, pkgs, ... }: {
2− name = "systemd-initrd-swraid";
4− nodes.machine = { pkgs, ... }: {
7− emptyDiskImages = [ 512 512 ];
11− boot.loader.systemd-boot.enable = true;
12− boot.loader.efi.canTouchEfiVariables = true;
14− environment.systemPackages = with pkgs; [ mdadm e2fsprogs ]; # for mdadm and mkfs.ext4
18− emergencyAccess = true;
23− ARRAY /dev/md0 devices=/dev/vdc,/dev/vdd
26− kernelModules = [ "raid0" ];
29− specialisation.boot-swraid.configuration.virtualisation.bootDevice = "/dev/disk/by-label/testraid";
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")
39− machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-swraid.conf")
40− machine.succeed("sync")
42− machine.wait_for_unit("multi-user.target")
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")
nixos/tests/systemd-networkd.nix−10
@@ -8,9 +8,6 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
8 environment.systemPackages = with pkgs; [ wireguard-tools ];
8 environment.systemPackages = with pkgs; [ wireguard-tools ];
9 systemd.network = {
9 systemd.network = {
10 enable = true;
10 enable = true;
12− routeTables.custom = 23;
14 netdevs = {
11 netdevs = {
15 "90-wg0" = {
12 "90-wg0" = {
16 netdevConfig = { Kind = "wireguard"; Name = "wg0"; };
13 netdevConfig = { Kind = "wireguard"; Name = "wg0"; };
@@ -42,7 +39,6 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
42 address = [ "10.0.0.${nodeId}/32" ];
39 address = [ "10.0.0.${nodeId}/32" ];
43 routes = [
40 routes = [
44 { routeConfig = { Gateway = "10.0.0.${nodeId}"; Destination = "10.0.0.0/24"; }; }
41 { 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"; }; }
48 "30-eth1" = {
44 "30-eth1" = {
@@ -91,12 +87,6 @@ testScript = ''
91 node1.wait_for_unit("systemd-networkd-wait-online.service")
87 node1.wait_for_unit("systemd-networkd-wait-online.service")
92 node2.wait_for_unit("systemd-networkd-wait-online.service")
88 node2.wait_for_unit("systemd-networkd-wait-online.service")
94− # ================================
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'")
100 # ================================
90 # ================================
101 # Wireguard
91 # Wireguard
102 # ================================
92 # ================================
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";
4− name = "systemd-shutdown";
5− meta = with pkgs.lib.maintainers; {
6− maintainers = [ das_j ];
10− imports = [ ../modules/profiles/minimal.nix ];
11− systemd.shutdownRamfs.contents."/etc/systemd/system-shutdown/shutdown-message".source = pkgs.writeShellScript "shutdown-message" ''
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
nixos/tests/taskserver.nix−1
@@ -63,7 +63,6 @@ in {
63 server = {
63 server = {
64 services.taskserver.enable = true;
64 services.taskserver.enable = true;
65 services.taskserver.listenHost = "::";
65 services.taskserver.listenHost = "::";
66− services.taskserver.openFirewall = true;
67 services.taskserver.fqdn = "server";
66 services.taskserver.fqdn = "server";
68 services.taskserver.organisations = {
67 services.taskserver.organisations = {
69 testOrganisation.users = [ "alice" "foo" ];
68 testOrganisation.users = [ "alice" "foo" ];
nixos/tests/web-apps/netbox.nix+1−1
@@ -5,7 +5,7 @@ import ../make-test-python.nix ({ lib, pkgs, ... }: {
5 maintainers = [ n0emis ];
5 maintainers = [ n0emis ];
8− nodes.machine = { ... }: {
8+ machine = { ... }: {
9 services.netbox = {
9 services.netbox = {
10 enable = true;
10 enable = true;
11 secretKeyFile = pkgs.writeText "secret" ''
11 secretKeyFile = pkgs.writeText "secret" ''
nixos/tests/web-apps/nifi.nixdeleted−30
@@ -1,30 +0,0 @@
1−import ../make-test-python.nix ({pkgs, ...}:
4− meta.maintainers = with pkgs.lib.maintainers; [ izorkin ];
7− nifi = { pkgs, ... }: {
22− nifi.wait_for_unit("nifi.service")
23− nifi.wait_for_open_port(8080)
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'")
nixos/tests/web-apps/peertube.nix+2−3
@@ -30,11 +30,10 @@ import ../make-test-python.nix ({pkgs, ...}:
33− services.redis.servers.peertube = {
33+ services.redis = {
34 enable = true;
34 enable = true;
35 bind = "0.0.0.0";
35 bind = "0.0.0.0";
36 requirePass = "turrQfaQwnanGbcsdhxy";
36 requirePass = "turrQfaQwnanGbcsdhxy";
@@ -110,7 +109,7 @@ import ../make-test-python.nix ({pkgs, ...}:
110 start_all()
109 start_all()
112 database.wait_for_unit("postgresql.service")
111 database.wait_for_unit("postgresql.service")
113− database.wait_for_unit("redis-peertube.service")
112+ database.wait_for_unit("redis.service")
115 database.wait_for_open_port(5432)
114 database.wait_for_open_port(5432)
116 database.wait_for_open_port(6379)
115 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 ];
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;
12− environment.systemPackages = [
13− (pkgs.writeTextFile {
14− name = "test-xdg-autostart";
15− destination = "/etc/xdg/autostart/test-xdg-autostart.desktop";
18− Name=test-xdg-autoatart
21− Exec=${pkgs.coreutils}/bin/touch ${config.users.users.alice.home}/xdg-autostart-executed
27− testScript = { nodes, ... }:
29− user = nodes.machine.config.users.users.alice;
33− machine.wait_for_file("${user.home}/xdg-autostart-executed")
nixos/tests/xmpp/xmpp-sendmessage.nix+4−1
@@ -51,8 +51,11 @@ class CthonTest(ClientXMPP):
51 log.info('Message sent')
51 log.info('Message sent')
53 # Test http upload (XEP_0363)
53 # Test http upload (XEP_0363)
54+ def timeout_callback(arg):
55+ log.error("ERROR: Cannot upload file. XEP_0363 seems broken")
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)
57 log.error("ERROR: Cannot run upload command. XEP_0363 seems broken")
60 log.error("ERROR: Cannot run upload command. XEP_0363 seems broken")
58 sys.exit(1)
61 sys.exit(1)
pkgs/applications/accessibility/espeakup/default.nixdeleted−46
@@ -1,46 +0,0 @@
13−stdenv.mkDerivation rec {
17− src = fetchFromGitHub {
18− owner = "linux-speakup";
21− sha256 = "0lmjwafvfxy07zn18v3dzjwwpnid2xffgvy2dzlwkbns8gb60ds2";
24− nativeBuildInputs = [
37− PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMUNITDIR = "${placeholder "out"}/lib/systemd/system";
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;
pkgs/applications/accessibility/wvkbd/default.nixdeleted−36
@@ -1,36 +0,0 @@
14−stdenv.mkDerivation rec {
18− src = fetchFromGitHub {
19− owner = "jjsullivan5196";
22− sha256 = "sha256-5UV2PMrLXtF3AxjfPxxwFRkgVef+Ap8nG1v795o0bWE=";
25− nativeBuildInputs = [ pkg-config ];
26− buildInputs = [ wayland-scanner wayland pango glib harfbuzz cairo libxkbcommon ];
27− installFlags = [ "PREFIX=$(out)" ];
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;
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 }:
7−stdenv.mkDerivation rec {
11− src = fetchFromGitHub {
12− owner = "jatinchowdhury18";
15− fetchSubmodules = true;
16− sha256 = "sha256-9wo7ZFMruG3QNvlpILSvrFh/Sx6J1qnlWc8+aQyS4tQ=";
19− nativeBuildInputs = [ pkg-config cmake ];
52− "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
53− "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
54− "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
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
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;
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}:
5−stdenv.mkDerivation rec {
9− src = fetchFromGitLab {
13− hash = "sha256-jCUT/sflO9L57xRTqNR90RbwJ0uZ+xJVXnB3n+FhWBo=";
14− fetchSubmodules = true;
17− nativeBuildInputs = [ cmake pkg-config ];
34− "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
35− "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
36− "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
40− mkdir -p $out/lib/vst3
41− cd LibreArp_artefacts/Release
42− cp -r VST3/LibreArp.vst3 $out/lib/vst3
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 ];
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}:
5−stdenv.mkDerivation rec {
6− pname = "LibreArp-lv2";
9− src = fetchFromGitLab {
12− rev = "${version}-lv2";
13− hash = "sha256-j5SksuhC4ZXXILfOpwXNqIu5fO07a/6tiZ5qUo+p0Ug=";
14− fetchSubmodules = true;
17− nativeBuildInputs = [ cmake pkg-config ];
34− "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
35− "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
36− "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
40− mkdir -p $out/lib/lv2
41− cd LibreArp_artefacts/Release
42− cp -r LV2/LibreArp.lv2 $out/lib/lv2
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 ];
pkgs/applications/audio/amberol/default.nixdeleted−75
@@ -1,75 +0,0 @@
19−stdenv.mkDerivation rec {
23− src = fetchFromGitLab {
24− domain = "gitlab.gnome.org";
28− sha256 = "sha256-4yW7rVlP9Zskyt4l/VQoX+9q3TUdEuLZrNQuQvziIf4=";
31− cargoDeps = rustPlatform.fetchCargoTarball {
33− name = "${pname}-${version}";
34− sha256 = "sha256-1ahEWLBmkT+B8qD0Qd1skXqk1wvP6yuFNAQBRdispC4=";
38− patchShebangs build-aux
41− nativeBuildInputs = [
49− ] ++ (with rustPlatform; [
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
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;
pkgs/applications/audio/audio-recorder/default.nix+1−1
@@ -2,7 +2,7 @@
2, pkg-config, intltool
2, pkg-config, intltool
3, glib, dbus, gtk3, libappindicator-gtk3, gst_all_1
3, glib, dbus, gtk3, libappindicator-gtk3, gst_all_1
4, librsvg, wrapGAppsHook
4, librsvg, wrapGAppsHook
5−, pulseaudioSupport ? true, libpulseaudio }:
5+, pulseaudioSupport ? true, libpulseaudio ? null }:
7stdenv.mkDerivation rec {
7stdenv.mkDerivation rec {
8 pname = "audio-recorder";
8 pname = "audio-recorder";
pkgs/applications/audio/bespokesynth/default.nix−1
@@ -142,7 +142,6 @@ stdenv.mkDerivation rec {
143 ] ++ lib.optional enableVST2 unfree;
143 ] ++ lib.optional enableVST2 unfree;
144 maintainers = with maintainers; [ astro tobiasBora OPNA2608 ];
144 maintainers = with maintainers; [ astro tobiasBora OPNA2608 ];
145− mainProgram = "BespokeSynth";
146 platforms = platforms.all;
145 platforms = platforms.all;
pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix+2−2
@@ -6,11 +6,11 @@
7stdenv.mkDerivation rec {
7stdenv.mkDerivation rec {
8 pname = "bitwig-studio";
8 pname = "bitwig-studio";
9− version = "4.2.3";
9+ version = "4.2.2";
11 src = fetchurl {
11 src = fetchurl {
12 url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
12 url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
13− sha256 = "sha256-UCafrjrEwwHkhPum7sTOjtXzy7PNeK5/aeKg+b3CGJU=";
13+ sha256 = "sha256-cpEV0EWW9vd2ZE+RaqN9fhyy7axgPlx4PmlOeX3TSfY=";
16 nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
16 nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
pkgs/applications/audio/blanket/default.nix+7−7
@@ -9,21 +9,21 @@
9, appstream-glib
9, appstream-glib
10, python3Packages
10, python3Packages
13−, libadwaita
13+, libhandy
14, gobject-introspection
14, gobject-introspection
15, gst_all_1
15, gst_all_1
18python3Packages.buildPythonApplication rec {
18python3Packages.buildPythonApplication rec {
19 pname = "blanket";
19 pname = "blanket";
20− version = "0.6.0";
20+ version = "0.5.0";
22 src = fetchFromGitHub {
22 src = fetchFromGitHub {
23 owner = "rafaelmardojai";
23 owner = "rafaelmardojai";
24 repo = "blanket";
24 repo = "blanket";
25− rev = "refs/tags/${version}";
25+ rev = version;
26− sha256 = "sha256-4gthT1x76IfXWkLaLMPtFS4TRlRGk5Enbu/k1jAHzwE=";
26+ sha256 = "00i821zqfbigxmc709322r16z75qsw4rg23yhv35gza9sl65bzkg";
29 nativeBuildInputs = [
29 nativeBuildInputs = [
@@ -37,8 +37,8 @@ python3Packages.buildPythonApplication rec {
38 buildInputs = [
38 buildInputs = [
41− libadwaita
41+ libhandy
42 gobject-introspection
42 gobject-introspection
43 gst_all_1.gstreamer
43 gst_all_1.gstreamer
44 gst_all_1.gst-plugins-base
44 gst_all_1.gst-plugins-base
pkgs/applications/audio/cardinal/default.nix+11−2
@@ -23,14 +23,23 @@
24stdenv.mkDerivation rec {
24stdenv.mkDerivation rec {
25 pname = "cardinal";
25 pname = "cardinal";
26− version = "22.04";
26+ version = "22.02";
28 src = fetchurl {
28 src = fetchurl {
30 "https://github.com/DISTRHO/Cardinal/releases/download/${version}/cardinal-${version}.tar.xz";
30 "https://github.com/DISTRHO/Cardinal/releases/download/${version}/cardinal-${version}.tar.xz";
31− sha256 = "sha256-7As4CckwByrTynOOpwAXa1R9Bpp/ft537f+PvAgz/BE=";
31+ sha256 = "sha256-IVlAROFGFffTEU00NCmv74w1DRb7dNMp20FeBVoDrdM=";
35+ # see https://github.com/DISTRHO/Cardinal/issues/151#issuecomment-1041886260
38+ "https://github.com/DISTRHO/Cardinal/commit/13e9ef37c5dd35d77a54b1cb006767be7a72ac69.patch";
39+ sha256 = "sha256-NYUYLbLeBX1WEzjPi0s/T1N+EXQKyi0ifbPxgBYDjRs=";
34 prePatch = ''
43 prePatch = ''
35 patchShebangs ./dpf/utils/generate-ttl.sh
44 patchShebangs ./dpf/utils/generate-ttl.sh
pkgs/applications/audio/carla/default.nix+2−2
@@ -15,13 +15,13 @@ assert withGtk3 -> gtk3 != null;
16stdenv.mkDerivation rec {
16stdenv.mkDerivation rec {
17 pname = "carla";
17 pname = "carla";
18− version = "2.4.3";
18+ version = "2.4.2";
20 src = fetchFromGitHub {
20 src = fetchFromGitHub {
21 owner = "falkTX";
21 owner = "falkTX";
22 repo = pname;
22 repo = pname;
23 rev = "v${version}";
23 rev = "v${version}";
24− sha256 = "sha256-FAQTIM5NpcOhLNMf62qiKaxg6QtK5uIJF/XT6KJVnUc=";
24+ sha256 = "sha256-A0QmyphjsNU06kh2f9rXrR+GkDEI5HqXRA9J82E6qJU=";
27 nativeBuildInputs = [
27 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 }:
3stdenv.mkDerivation rec {
3stdenv.mkDerivation rec {
4 pname = "caudec";
4 pname = "caudec";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
13 patchShebangs ./install.sh
13 patchShebangs ./install.sh
16− nativeBuildInputs = [ makeWrapper ];
16+ nativeBuildInputs = [ bash makeWrapper ];
18 installPhase = ''
18 installPhase = ''
19 ./install.sh --prefix=$out/bin
19 ./install.sh --prefix=$out/bin
pkgs/applications/audio/cider/default.nix+3−3
@@ -2,11 +2,11 @@
3appimageTools.wrapType2 rec {
3appimageTools.wrapType2 rec {
4 pname = "cider";
4 pname = "cider";
5− version = "1.4.1.1680";
5+ version = "1.3.1308";
7 src = fetchurl {
7 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";
8+ url = "https://1308-429851205-gh.circle-artifacts.com/0/%7E/Cider/dist/artifacts/Cider-${version}.AppImage";
9− sha256 = "sha256-hEv+vfMMH+Trwa1UF5R8EtyYeyiRVLP0BrXOK2+1q8M=";
9+ sha256 = "1lbyvn1c8155p039qfzx7jwad7km073phkmrzjm0w3ahdpwz3wgi";
12 extraInstallCommands =
12 extraInstallCommands =
pkgs/applications/audio/clementine/default.nix+10−3
@@ -51,17 +51,24 @@ let
51 withCD = config.clementine.cd or true;
51 withCD = config.clementine.cd or true;
52 withCloud = config.clementine.cloud or true;
52 withCloud = config.clementine.cloud or true;
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";
56 src = fetchFromGitHub {
57 src = fetchFromGitHub {
57 owner = "clementine-player";
58 owner = "clementine-player";
58 repo = "Clementine";
59 repo = "Clementine";
59− rev = "250024e117fbe5fae7c62b9c8e655d66412a6ed7";
60+ rev = version;
60− sha256 = "06fcbs3wig3mh711iypyj49qm5246f7qhvgvv8brqfrd8cqyh6qf";
61+ sha256 = "1rqk0hrsn8f8bjk0j0vq1af0ygy6xx7qi9fw0jjw2cmj6kzckyi2";
63 patches = [
64 patches = [
64 ./clementine-spotify-blob.patch
65 ./clementine-spotify-blob.patch
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";
67 nativeBuildInputs = [
74 nativeBuildInputs = [
pkgs/applications/audio/cmus/default.nix+2−2
@@ -1,5 +1,5 @@
1{ config, lib, stdenv, fetchFromGitHub, runCommand, ncurses, pkg-config
1{ config, lib, stdenv, fetchFromGitHub, runCommand, ncurses, pkg-config
2−, libiconv, CoreAudio, AudioUnit, VideoToolbox
2+, libiconv, CoreAudio, AudioUnit
4, alsaSupport ? stdenv.isLinux, alsa-lib ? null
4, alsaSupport ? stdenv.isLinux, alsa-lib ? null
5# simple fallback for everyone else
5# simple fallback for everyone else
@@ -121,7 +121,7 @@ stdenv.mkDerivation rec {
121 nativeBuildInputs = [ pkg-config ];
121 nativeBuildInputs = [ pkg-config ];
122 buildInputs = [ ncurses ]
122 buildInputs = [ ncurses ]
123 ++ lib.optional stdenv.cc.isClang clangGCC
123 ++ lib.optional stdenv.cc.isClang clangGCC
124− ++ lib.optionals stdenv.isDarwin [ libiconv CoreAudio AudioUnit VideoToolbox ]
124+ ++ lib.optionals stdenv.isDarwin [ libiconv CoreAudio AudioUnit ]
125 ++ flatten (concatMap (a: a.deps) opts);
125 ++ flatten (concatMap (a: a.deps) opts);
127 makeFlags = [ "LD=$(CC)" ];
127 makeFlags = [ "LD=$(CC)" ];
pkgs/applications/audio/denemo/default.nix+2−2
@@ -6,11 +6,11 @@
7stdenv.mkDerivation rec {
7stdenv.mkDerivation rec {
8 pname = "denemo";
8 pname = "denemo";
9− version = "2.6.0";
9+ version = "2.5.0";
11 src = fetchurl {
11 src = fetchurl {
12 url = "https://ftp.gnu.org/gnu/denemo/denemo-${version}.tar.gz";
12 url = "https://ftp.gnu.org/gnu/denemo/denemo-${version}.tar.gz";
13− sha256 = "sha256-S+WXDGmEf5fx+HYnXJdE5QNOfJg7EqEEX7IMI2SUtV0=";
13+ sha256 = "sha256-B6GbBL/o/z0emT+Iw6XvWmAsJCmIwSGCyV1DkhDyfBY=";
16 buildInputs = [
16 buildInputs = [
pkgs/applications/audio/faust/faust2.nix+2−2
@@ -20,13 +20,13 @@ with lib.strings;
23− version = "2.40.0";
23+ version = "2.37.3";
25 src = fetchFromGitHub {
25 src = fetchFromGitHub {
26 owner = "grame-cncm";
26 owner = "grame-cncm";
27 repo = "faust";
27 repo = "faust";
28 rev = version;
28 rev = version;
29− sha256 = "sha256-IsrLaoMDwrDPxtqCXIy/7tZCdogTUkJ00obSco9SR/A=";
29+ sha256 = "sha256-Jzauw8+vBjtbK73Bh4huhX1ql1cWmh80EzEET3x03rc=";
30 fetchSubmodules = true;
30 fetchSubmodules = true;
pkgs/applications/audio/faust/faustlive.nix+12−9
@@ -1,34 +1,37 @@
1{ lib, stdenv, fetchFromGitHub
1{ lib, stdenv, fetchFromGitHub
2, llvm_10, qt5, qrencode, libmicrohttpd, libjack2, alsa-lib, faust, curl
2, 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
6stdenv.mkDerivation rec {
6stdenv.mkDerivation rec {
7 pname = "faustlive";
7 pname = "faustlive";
8− version = "2.5.8";
8+ version = "2.5.5";
9 src = fetchFromGitHub {
9 src = fetchFromGitHub {
10 owner = "grame-cncm";
10 owner = "grame-cncm";
11 repo = "faustlive";
11 repo = "faustlive";
12 rev = version;
12 rev = version;
13− sha256 = "sha256-dt5YlvaCZ6JiNGPwVXPrKzVGWxnhdyP4lnKgck7ZSF8=";
13+ sha256 = "0qbn05nq170ckycwalkk5fppklc4g457mapr7p7ryrhc1hwzffm9";
14 fetchSubmodules = true;
14 fetchSubmodules = true;
17− nativeBuildInputs = [ pkg-config qt5.wrapQtAppsHook cmake ];
17+ nativeBuildInputs = [ pkg-config qt5.wrapQtAppsHook ];
19 buildInputs = [
19 buildInputs = [
20 llvm_10 qt5.qtbase qrencode libmicrohttpd libjack2 alsa-lib faust curl
20 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
24 makeFlags = [ "PREFIX=$(out)" ];
24 makeFlags = [ "PREFIX=$(out)" ];
27− wrapProgram $out/bin/FaustLive --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libmicrohttpd libsndfile faust llvm_10 ]}"
30 postPatch = "cd Build";
26 postPatch = "cd Build";
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"
32 meta = with lib; {
35 meta = with lib; {
33 description = "A standalone just-in-time Faust compiler";
36 description = "A standalone just-in-time Faust compiler";
34 longDescription = ''
37 longDescription = ''
pkgs/applications/audio/faustPhysicalModeling/default.nix+2−2
@@ -1,13 +1,13 @@
1{ stdenv, lib, fetchFromGitHub, faust2jaqt, faust2lv2 }:
1{ stdenv, lib, fetchFromGitHub, faust2jaqt, faust2lv2 }:
2stdenv.mkDerivation rec {
2stdenv.mkDerivation rec {
3 pname = "faustPhysicalModeling";
3 pname = "faustPhysicalModeling";
4− version = "2.40.0";
4+ version = "2.37.3";
6 src = fetchFromGitHub {
6 src = fetchFromGitHub {
7 owner = "grame-cncm";
7 owner = "grame-cncm";
8 repo = "faust";
8 repo = "faust";
9 rev = version;
9 rev = version;
10− sha256 = "sha256-t3I3j5s2ACHfub+fxxaTwu+5ptEwH0JQpVdmHYOzbCA=";
10+ sha256 = "sha256-h6L+qRkN2chnI4821WrjD3uRFw3J0sUYVLL8w57vR1U=";
13 buildInputs = [ faust2jaqt faust2lv2 ];
13 buildInputs = [ faust2jaqt faust2lv2 ];
pkgs/applications/audio/fluidsynth/default.nix+2−2
@@ -5,13 +5,13 @@
6stdenv.mkDerivation rec {
6stdenv.mkDerivation rec {
7 pname = "fluidsynth";
7 pname = "fluidsynth";
8− version = "2.2.5";
8+ version = "2.2.3";
10 src = fetchFromGitHub {
10 src = fetchFromGitHub {
11 owner = "FluidSynth";
11 owner = "FluidSynth";
12 repo = "fluidsynth";
12 repo = "fluidsynth";
13 rev = "v${version}";
13 rev = "v${version}";
14− sha256 = "sha256-aR8TLxl6OziP+DMSNro0DB/UtvzXDeDYQ3o/iy70XD4=";
14+ sha256 = "0x5808d03ym23np17nl8gfbkx3c4y3d7jyyr2222wn2prswbb6x3";
17 nativeBuildInputs = [ buildPackages.stdenv.cc pkg-config cmake ];
17 nativeBuildInputs = [ buildPackages.stdenv.cc pkg-config cmake ];
pkgs/applications/audio/ft2-clone/default.nix+2−2
@@ -13,13 +13,13 @@
14stdenv.mkDerivation rec {
14stdenv.mkDerivation rec {
15 pname = "ft2-clone";
15 pname = "ft2-clone";
16− version = "1.54";
16+ version = "1.52";
18 src = fetchFromGitHub {
18 src = fetchFromGitHub {
19 owner = "8bitbubsy";
19 owner = "8bitbubsy";
20 repo = "ft2-clone";
20 repo = "ft2-clone";
21 rev = "v${version}";
21 rev = "v${version}";
22− sha256 = "sha256-lNiQ0X2vvPGubb4Pde+eh0Z6ClCQgigIUM+PddaiVUg=";
22+ sha256 = "sha256-RyZ3PV7jaTN3DEYMT0BqKDHbb+7/IgiRaCra1xA0h1A=";
25 # Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
25 # 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 @@
3, gitUpdater
3, gitUpdater
4−, testers
4+, testVersion
6, fetchFromGitHub
6, fetchFromGitHub
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
83 inherit pname version;
83 inherit pname version;
84 rev-prefix = "v";
84 rev-prefix = "v";
86− tests.version = testers.testVersion {
86+ tests.version = testVersion {
87 package = furnace;
87 package = furnace;
88 # The command always exits with code 1
88 # The command always exits with code 1
89 command = "(furnace --version || [ $? -eq 1 ])";
89 command = "(furnace --version || [ $? -eq 1 ])";
pkgs/applications/audio/greg/default.nix+3−3
@@ -2,15 +2,15 @@
3with pythonPackages; buildPythonApplication rec {
3with pythonPackages; buildPythonApplication rec {
4 pname = "greg";
4 pname = "greg";
5− version = "0.4.8";
5+ version = "0.4.7";
7 disabled = !isPy3k;
7 disabled = !isPy3k;
9 src = fetchFromGitHub {
9 src = fetchFromGitHub {
10 owner = "manolomartinez";
10 owner = "manolomartinez";
11 repo = pname;
11 repo = pname;
12− rev = "refs/tags/v${version}";
12+ rev = "v" + version;
13− sha256 = "sha256-o4+tXVJTgT52JyJOC+Glr2cvZjbTaZL8TIsmz+A4vE4=";
13+ sha256 = "0bdzgh2k1ppgcvqiasxwp3w89q44s4jgwjidlips3ixx1bzm822v";
16 propagatedBuildInputs = [ setuptools feedparser ];
16 propagatedBuildInputs = [ setuptools feedparser ];
pkgs/applications/audio/gspeech/default.nix+2−2
@@ -20,13 +20,13 @@
21python3.pkgs.buildPythonApplication rec {
21python3.pkgs.buildPythonApplication rec {
22 pname = "gSpeech";
22 pname = "gSpeech";
23− version = "0.11.0";
23+ version = "0.10.1";
25 src = fetchFromGitHub {
25 src = fetchFromGitHub {
26 owner = "mothsart";
26 owner = "mothsart";
27 repo = pname;
27 repo = pname;
28 rev = version;
28 rev = version;
29− sha256 = "0z11yxvgi8m2xjmmf56zla91jpmf0a4imwi9qqz6bp51pw4sk8gp";
29+ sha256 = "1i0jwgxcn94nsi7c0ad0w77y04g04ka2szijzfqzqfnacdmdyrfc";
32 nativeBuildInputs = [
32 nativeBuildInputs = [
pkgs/applications/audio/guitarix/default.nix−2
@@ -108,8 +108,6 @@ stdenv.mkDerivation rec {
108 "--install-roboto-font"
108 "--install-roboto-font"
109 ] ++ optional optimizationSupport "--optimization";
109 ] ++ optional optimizationSupport "--optimization";
111− NIX_CFLAGS_COMPILE = [ "-fpermissive" ];
113 meta = with lib; {
111 meta = with lib; {
114 description = "A virtual guitar amplifier for Linux running with JACK";
112 description = "A virtual guitar amplifier for Linux running with JACK";
115 longDescription = ''
113 longDescription = ''
pkgs/applications/audio/helio-workstation/default.nix+2−2
@@ -5,14 +5,14 @@
6stdenv.mkDerivation rec {
6stdenv.mkDerivation rec {
7 pname = "helio-workstation";
7 pname = "helio-workstation";
8− version = "3.9";
8+ version = "3.8";
10 src = fetchFromGitHub {
10 src = fetchFromGitHub {
11 owner = "helio-fm";
11 owner = "helio-fm";
12 repo = pname;
12 repo = pname;
13 rev = version;
13 rev = version;
14 fetchSubmodules = true;
14 fetchSubmodules = true;
15− sha256 = "sha256-AtgKgw+F5lc0Ma3zOxmk3iaZQp2KZb2FP5F8QvvYTT4=";
15+ sha256 = "sha256-uwRSOJ5WvDH4mfL9pCTCGzuSRT8SIBrI+Wsbumzejv0=";
18 buildInputs = [
18 buildInputs = [
pkgs/applications/audio/hivelytracker/default.nix+1−1
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
60 # files passed as arguments anyway, so this works well enough until the
60 # files passed as arguments anyway, so this works well enough until the
61 # issue is fixed.
61 # issue is fixed.
62 wrapProgram $out/bin/hivelytracker \
62 wrapProgram $out/bin/hivelytracker \
63− --chdir "$out/share/hivelytracker"
63+ --run "cd $out/share/hivelytracker"
65 # Also install the hvl2wav tool
65 # Also install the hvl2wav tool
66 install -Dm755 hvl2wav/hvl2wav $out/bin/hvl2wav
66 install -Dm755 hvl2wav/hvl2wav $out/bin/hvl2wav
pkgs/applications/audio/hqplayer-desktop/default.nix−1
@@ -86,7 +86,6 @@ mkDerivation rec {
86 homepage = "https://www.signalyst.com/custom.html";
86 homepage = "https://www.signalyst.com/custom.html";
87 description = "High-end upsampling multichannel software HD-audio player";
87 description = "High-end upsampling multichannel software HD-audio player";
88 license = licenses.unfree;
88 license = licenses.unfree;
89− platforms = [ "x86_64-linux" ];
90 maintainers = with maintainers; [ lovesegfault ];
89 maintainers = with maintainers; [ lovesegfault ];
pkgs/applications/audio/jamesdsp/default.nix+5−40
@@ -2,31 +2,18 @@
2, mkDerivation
2, mkDerivation
3, fetchFromGitHub
3, fetchFromGitHub
12, makeDesktopItem
7, makeDesktopItem
13, pkg-config
8, pkg-config
14, libarchive
9, libarchive
15, fetchpatch
10, fetchpatch
18−, usePulseaudio ? false
21−assert lib.asserts.assertMsg (usePipewire != usePulseaudio) "You need to enable one and only one of pulseaudio or pipewire support";
24− pluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good ]);
26− mkDerivation rec {
13+mkDerivation rec{
27 pname = "jamesdsp";
14 pname = "jamesdsp";
28 version = "2.3";
15 version = "2.3";
29− src = fetchFromGitHub rec {
16+ src = fetchFromGitHub rec{
30 owner = "Audio4Linux";
17 owner = "Audio4Linux";
31 repo = "JDSP4Linux";
18 repo = "JDSP4Linux";
32 fetchSubmodules = true;
19 fetchSubmodules = true;
@@ -40,37 +27,15 @@ in
40 url = "https://github.com/Audio4Linux/JDSP4Linux/commit/003c9e9fc426f83e269aed6e05be3ed55273931a.patch";
27 url = "https://github.com/Audio4Linux/JDSP4Linux/commit/003c9e9fc426f83e269aed6e05be3ed55273931a.patch";
41 hash = "sha256-crll/a7C9pUq9eL5diq8/YgC5bNC6SrdijZEBxZpJ8E=";
28 hash = "sha256-crll/a7C9pUq9eL5diq8/YgC5bNC6SrdijZEBxZpJ8E=";
43− # compatibility fix for PipeWire 0.3.44+, remove on version bump
45− url = "https://github.com/Audio4Linux/JDSP4Linux/commit/e04c55735cc20fc3c3ce042c5681ec80f7df3c96.patch";
46− hash = "sha256-o6AUtQzugykALSdkM3i3lYqRmzJX3FzmALSi0TrWuRA=";
50− nativeBuildInputs = [
32+ nativeBuildInputs = [ qmake pkg-config ];
57 buildInputs = [
33 buildInputs = [
59 libarchive
35 libarchive
62− ] ++ lib.optional usePipewire pipewire
36+ pipewire
63− ++ lib.optionals usePulseaudio [
65− gst_all_1.gst-plugins-base
66− gst_all_1.gst-plugins-good
70− qtWrapperArgs = lib.optionals usePulseaudio [ "--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : ${pluginPath}" ];
72− qmakeFlags = lib.optionals usePulseaudio [ "CONFIG+=USE_PULSEAUDIO" ];
74 desktopItems = [
39 desktopItems = [
75 (makeDesktopItem {
40 (makeDesktopItem {
76 name = "jamesdsp";
41 name = "jamesdsp";
@@ -89,7 +54,7 @@ in
89 description = "An audio effect processor for PipeWire clients";
54 description = "An audio effect processor for PipeWire clients";
90 homepage = "https://github.com/Audio4Linux/JDSP4Linux";
55 homepage = "https://github.com/Audio4Linux/JDSP4Linux";
91 license = licenses.gpl3Only;
56 license = licenses.gpl3Only;
92− maintainers = with maintainers; [ pasqui23 rewine ];
57+ maintainers = with maintainers;[ pasqui23 ];
93 platforms = platforms.linux;
58 platforms = platforms.linux;
pkgs/applications/audio/jmusicbot/default.nix+2−2
@@ -2,11 +2,11 @@
3stdenv.mkDerivation rec {
3stdenv.mkDerivation rec {
4 pname = "JMusicBot";
4 pname = "JMusicBot";
5− version = "0.3.8";
5+ version = "0.3.6";
7 src = fetchurl {
7 src = fetchurl {
8 url = "https://github.com/jagrosh/MusicBot/releases/download/${version}/JMusicBot-${version}.jar";
8 url = "https://github.com/jagrosh/MusicBot/releases/download/${version}/JMusicBot-${version}.jar";
9− sha256 = "sha256-wzmrh9moY6oo3RqOy9Zl1X70BZlvbJkQmz8BaBIFtIM=";
9+ sha256 = "sha256-Hc3dsOADC+jVZScY19OYDkHimntMjdw/BoB3EUS/d0k=";
12 dontUnpack = true;
12 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 }:
4+stdenv.mkDerivation rec {
8+ outputs = [ "out" "lib" "dev" ];
11+ url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
12+ sha256 = "1c54lldr2imjzhlhq5lvwhj7d5794xm97cby9pznr5wdjjay0sa4";
16+ # Fix pending upstream inclusion for gcc-12 include headers:
17+ # https://github.com/OpenMPT/openmpt/pull/8
19+ name = "gcc-12.patch";
20+ url = "https://github.com/OpenMPT/openmpt/commit/6e7a43190ef2f9ba0b3efc19b9527261b69ec8f7.patch";
21+ sha256 = "081m1rf09bbrlg52aihaajmld5dcnwbp6y7zpyik92mm332r330h";
25+ enableParallelBuilding = true;
27+ nativeBuildInputs = [ pkg-config ];
28+ buildInputs = [ zlib mpg123 libogg libvorbis portaudio libsndfile flac ]
29+ ++ lib.optional usePulseAudio libpulseaudio;
31+ configureFlags = lib.optional (!usePulseAudio) "--without-pulseaudio";
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;
pkgs/applications/audio/lollypop/default.nix+2−2
@@ -25,7 +25,7 @@
26python3.pkgs.buildPythonApplication rec {
26python3.pkgs.buildPythonApplication rec {
27 pname = "lollypop";
27 pname = "lollypop";
28− version = "1.4.31";
28+ version = "1.4.26";
30 format = "other";
30 format = "other";
31 doCheck = false;
31 doCheck = false;
@@ -34,7 +34,7 @@ python3.pkgs.buildPythonApplication rec {
34 url = "https://gitlab.gnome.org/World/lollypop";
34 url = "https://gitlab.gnome.org/World/lollypop";
35 rev = "refs/tags/${version}";
35 rev = "refs/tags/${version}";
36 fetchSubmodules = true;
36 fetchSubmodules = true;
37− sha256 = "sha256-kWqTDhk7QDmN0yr6x8ER5oHkUAkP3i5yOabnNXSHSqA=";
37+ sha256 = "sha256-Q/z9oET06DimMRZl03TgjEeheoVHtIkH+Z69qWZetcI=";
40 nativeBuildInputs = [
40 nativeBuildInputs = [
pkgs/applications/audio/losslessaudiochecker/default.nix+1−1
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
23 description = "Utility to check whether audio is truly lossless or not";
23 description = "Utility to check whether audio is truly lossless or not";
24 homepage = "https://losslessaudiochecker.com";
24 homepage = "https://losslessaudiochecker.com";
25 license = lib.licenses.unfree;
25 license = lib.licenses.unfree;
26− platforms = [ "x86_64-linux" ];
26+ platforms = lib.platforms.x86_64;
27 maintainers = with lib.maintainers; [ p-h ];
27 maintainers = with lib.maintainers; [ p-h ];
pkgs/applications/audio/lyrebird/default.nix+1−1
@@ -42,7 +42,7 @@ python3Packages.buildPythonApplication rec {
42 makeWrapperArgs = [
42 makeWrapperArgs = [
43 "--prefix 'PATH' ':' '${lib.makeBinPath [ sox pulseaudio ]}'"
43 "--prefix 'PATH' ':' '${lib.makeBinPath [ sox pulseaudio ]}'"
44 "--prefix 'PYTHONPATH' ':' '${placeholder "out"}/share/lyrebird'"
44 "--prefix 'PYTHONPATH' ':' '${placeholder "out"}/share/lyrebird'"
45− "--chdir '${placeholder "out"}/share/lyrebird'"
45+ "--run 'cd ${placeholder "out"}/share/lyrebird'"
46 ''"''${gappsWrapperArgs[@]}"''
46 ''"''${gappsWrapperArgs[@]}"''
pkgs/applications/audio/moc/default.nix+3−5
@@ -1,8 +1,7 @@
1{ lib, stdenv, fetchurl, pkg-config
1{ lib, stdenv, fetchurl, pkg-config
2, ncurses, db , popt, libtool
2, ncurses, db , popt, libtool
3−, libiconv, CoreServices
4# Sound sub-systems
3# Sound sub-systems
5−, alsaSupport ? (!stdenv.isDarwin), alsa-lib
4+, alsaSupport ? true, alsa-lib
6, pulseSupport ? true, libpulseaudio, autoreconfHook
5, pulseSupport ? true, libpulseaudio, autoreconfHook
7, jackSupport ? true, libjack2
6, jackSupport ? true, libjack2
8, ossSupport ? true
7, ossSupport ? true
@@ -65,8 +64,7 @@ in stdenv.mkDerivation rec {
65 ++ opt wavpackSupport wavpack
64 ++ opt wavpackSupport wavpack
67 ++ opt curlSupport curl
66 ++ opt curlSupport curl
68− ++ opt samplerateSupport libsamplerate
67+ ++ opt samplerateSupport libsamplerate;
69− ++ lib.optionals stdenv.isDarwin [ libiconv CoreServices ];
71 configureFlags = [
69 configureFlags = [
72 # Sound sub-systems
70 # Sound sub-systems
@@ -99,6 +97,6 @@ in stdenv.mkDerivation rec {
99 homepage = "http://moc.daper.net/";
97 homepage = "http://moc.daper.net/";
100 license = licenses.gpl2;
98 license = licenses.gpl2;
101 maintainers = with maintainers; [ aethelz pSub jagajaga ];
99 maintainers = with maintainers; [ aethelz pSub jagajaga ];
102− platforms = platforms.unix;
100+ platforms = platforms.linux;
pkgs/applications/audio/mopidy/mopidy.nix+3−3
@@ -4,13 +4,13 @@
5pythonPackages.buildPythonApplication rec {
5pythonPackages.buildPythonApplication rec {
6 pname = "mopidy";
6 pname = "mopidy";
7− version = "3.3.0";
7+ version = "3.2.0";
9 src = fetchFromGitHub {
9 src = fetchFromGitHub {
10 owner = "mopidy";
10 owner = "mopidy";
11 repo = "mopidy";
11 repo = "mopidy";
12− rev = "refs/tags/v${version}";
12+ rev = "v${version}";
13− sha256 = "sha256-F0fIl9DrludZZdzsrl/xsp7TLMgTPbVGtGvMHyD52Yw=";
13+ sha256 = "1l1rya48ykiq156spm8pfsm6li8apz66ppz7gs4s91fv7g7l5x2f";
16 nativeBuildInputs = [ wrapGAppsHook ];
16 nativeBuildInputs = [ wrapGAppsHook ];
pkgs/applications/audio/musikcube/default.nix+3−5
@@ -6,7 +6,6 @@
6, fetchFromGitHub
6, fetchFromGitHub
7, fetchpatch
7, fetchpatch
12, libmicrohttpd
11, libmicrohttpd
@@ -21,17 +20,17 @@
22stdenv.mkDerivation rec {
21stdenv.mkDerivation rec {
23 pname = "musikcube";
22 pname = "musikcube";
24− version = "0.97.0";
23+ version = "0.96.10";
26 src = fetchFromGitHub {
25 src = fetchFromGitHub {
27 owner = "clangen";
26 owner = "clangen";
28 repo = pname;
27 repo = pname;
29 rev = version;
28 rev = version;
30− sha256 = "sha256-W9Ng1kqai5qhaDs5KWg/1sOTIAalBXLng1MG8sl/ZOg=";
29+ sha256 = "sha256-Aa52pRGq99Pt++aEVZdmVNhhQuBajgfZp39L1AfKvho=";
33 patches = [
32 patches = [
34− # Fix pending upstream inclusion for ncurses-6.3 support:
33+ # Fix pending upstream inclusion for ncuurses-6.3 support:
35 # https://github.com/clangen/musikcube/pull/474
34 # https://github.com/clangen/musikcube/pull/474
36 (fetchpatch {
35 (fetchpatch {
37 name = "ncurses-6.3.patch";
36 name = "ncurses-6.3.patch";
@@ -49,7 +48,6 @@ stdenv.mkDerivation rec {
55 libmicrohttpd
53 libmicrohttpd
pkgs/applications/audio/ncspot/default.nix+7−3
@@ -7,16 +7,20 @@
8rustPlatform.buildRustPackage rec {
8rustPlatform.buildRustPackage rec {
9 pname = "ncspot";
9 pname = "ncspot";
10− version = "0.9.8";
10+ version = "0.9.5";
12 src = fetchFromGitHub {
12 src = fetchFromGitHub {
13 owner = "hrkfdn";
13 owner = "hrkfdn";
14 repo = "ncspot";
14 repo = "ncspot";
15 rev = "v${version}";
15 rev = "v${version}";
16− sha256 = "sha256-lrEIFPi55aP9utAaMIFtqocpkbDXRJqS/jlGUtE26kE=";
16+ sha256 = "sha256-HnP0dXKkMssDAhrsA99bTCVGdov9t5+1y8fJ+BWTM80=";
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 ];
23+ cargoSha256 = "sha256-g6UMwirsSV+/NtFIfEZrz5h/OitPQcDeSawh7wq4TLI=";
21 nativeBuildInputs = [ pkg-config ];
25 nativeBuildInputs = [ pkg-config ];
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> {
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);
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> {
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()
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 }:
3stdenv.mkDerivation rec {
3stdenv.mkDerivation rec {
4 pname = "noise-repellent";
4 pname = "noise-repellent";
5− version = "0.2.1";
5+ version = "0.1.5";
7 src = fetchFromGitHub {
7 src = fetchFromGitHub {
8 owner = "lucianodato";
8 owner = "lucianodato";
9 repo = pname;
9 repo = pname;
10− rev = "v${version}";
10+ rev = version;
11− sha256 = "sha256-hMNVzhJZFGFeu5aygLkfq495O0zpaIk41ddzejvDITE=";
11+ sha256 = "0hb89x9i2knzan46q4nwscf5zmnb2nwf4w13xl2c0y1mx1ls1mwl";
12+ fetchSubmodules = true;
15− "--prefix=${placeholder "out"}/lib/lv2"
15+ mesonFlags = ("--prefix=${placeholder "out"}/lib/lv2");
16− "--buildtype=release"
19− nativeBuildInputs = [ meson ninja pkg-config cmake ];
17+ nativeBuildInputs = [ meson ninja pkg-config ];
20 buildInputs = [
18 buildInputs = [
21− libspecbleach lv2
19+ fftwFloat lv2
24 meta = with lib; {
22 meta = with lib; {
@@ -26,6 +24,6 @@ stdenv.mkDerivation rec {
26 homepage = "https://github.com/lucianodato/noise-repellent";
24 homepage = "https://github.com/lucianodato/noise-repellent";
27 license = licenses.gpl3;
25 license = licenses.gpl3;
28 maintainers = [ maintainers.magnetophon ];
26 maintainers = [ maintainers.magnetophon ];
29− platforms = platforms.unix;
27+ platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "i686-darwin" ];
pkgs/applications/audio/ocenaudio/default.nix+2−2
@@ -11,11 +11,11 @@
12stdenv.mkDerivation rec {
12stdenv.mkDerivation rec {
13 pname = "ocenaudio";
13 pname = "ocenaudio";
14− version = "3.11.10";
14+ version = "3.11.7";
16 src = fetchurl {
16 src = fetchurl {
17 url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}";
17 url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}";
18− sha256 = "sha256-Ah6Ni5EbFdIQ/wN7uGeMrSP5ybQfI4iy9gI1VT5LztU=";
18+ sha256 = "sha256-fTeDRo7gCM1jXTQGm9MsmKu4KvTGDUogF3VSZWk91RM=";
21 nativeBuildInputs = [
21 nativeBuildInputs = [
pkgs/applications/audio/odin2/default.nixdeleted−79
@@ -1,79 +0,0 @@
19−stdenv.mkDerivation rec {
21− version = "unstable-2022-02-23";
23− src = fetchFromGitHub {
26− rev = "ed02d06cfb5db8a118d291c00bd2e4cd6e262cde";
27− fetchSubmodules = true;
28− sha256 = "sha256-VkZ+mqCmqWQafdN0nQxJdPxbiaZ37/0jOhLvVbnGLvQ=";
31− nativeBuildInputs = [
49− # JUCE dlopen's these at runtime, crashes without them
50− NIX_LDFLAGS = (toString [
59− "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
60− "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
61− "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
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
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 ];
pkgs/applications/audio/osdlyrics/default.nixdeleted−87
@@ -1,87 +0,0 @@
12−, libappindicator-gtk2
18−stdenv.mkDerivation rec {
22− src = fetchFromGitHub {
26− sha256 = "sha256-x9gIT1JkfPIc4RmmQJLv9rOG2WqAftoTK5uiRlS65zU=";
29− nativeBuildInputs = [
41− python3.pkgs.wrapPython
42− (python3.withPackages (pp: with pp; [
56− execLine=$(grep --only-matching --perl-regexp 'Exec=\K(.+)' "$serviceFile")
57− echo "#!${runtimeShell}" > "$program"
58− echo "exec $execLine" >> "$program"
61− substituteInPlace "$serviceFile" \
62− --replace "Exec=$execLine" "Exec=$program"
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"
74− for p in "$out/bin/osdlyrics-create-lyricsource" "$out/bin/osdlyrics-daemon" "$out/libexec/osdlyrics"/*; do
76− --prefix PYTHONPATH : "$out/${python3.sitePackages}"
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;
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 }:
3+stdenv.mkDerivation rec {
7+ src = fetchFromGitHub {
11+ sha256 = "1k53q0kbwpnbgyr0lmfzf5sm4f93d8nbjrzdz9pdhzpxgihndg25";
14+ nativeBuildInputs = [
21+ gobject-introspection
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
39+ gsettings-desktop-schemas
44+ chmod +x data/meson_post_install.py
45+ patchShebangs data/meson_post_install.py
51+ export GST_PLUGIN_SYSTEM_PATH_1_0="$out/lib/gstreamer-1.0/:$GST_PLUGIN_SYSTEM_PATH_1_0"
55+ description = "GNOME audio player for transcription";
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.
61+ homepage = "https://gkarsay.github.io/parlatype/";
62+ license = licenses.gpl3Plus;
63+ maintainers = [ maintainers.melchips ];
64+ platforms = platforms.linux;
pkgs/applications/audio/pianobar/default.nix+2−2
@@ -2,11 +2,11 @@
3stdenv.mkDerivation rec {
3stdenv.mkDerivation rec {
4 pname = "pianobar";
4 pname = "pianobar";
5− version = "2022.04.01";
5+ version = "2020.11.28";
7 src = fetchurl {
7 src = fetchurl {
8 url = "https://6xq.net/projects/pianobar/${pname}-${version}.tar.bz2";
8 url = "https://6xq.net/projects/pianobar/${pname}-${version}.tar.bz2";
9− sha256 = "sha256-FnCyiGWouCpXu23+p/FuL6QUXS81SRC7FzgLMsm5R2M=";
9+ sha256 = "1znlwybfpxsjqr1jmr8j0ci8wzmpzmk2yxb0qcx9w9a8nnbgnfv5";
12 nativeBuildInputs = [ pkg-config ];
12 nativeBuildInputs = [ pkg-config ];
pkgs/applications/audio/pipecontrol/default.nixdeleted−50
@@ -1,50 +0,0 @@
17−stdenv.mkDerivation rec {
18− pname = "pipecontrol";
21− src = fetchFromGitHub {
22− owner = "portaloffreedom";
25− sha256 = "sha256-BeubRDx82MQX1gB7GnGJlQ2FyYX1S83C3gqPZgIjgoM=";
28− nativeBuildInputs = [
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 ];
pkgs/applications/audio/plexamp/default.nix+3−3
@@ -2,12 +2,12 @@
4 pname = "plexamp";
4 pname = "plexamp";
5− version = "4.2.1";
5+ version = "4.1.0";
7 src = fetchurl {
7 src = fetchurl {
8 url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
8 url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
9 name="${pname}-${version}.AppImage";
9 name="${pname}-${version}.AppImage";
10− sha512 = "S2/T+T24X6D0oTbGPMp2BVfWTvzsUCWS1xsigLT/vFr12PlZgPfOWgo987W3YE30WJJDdybLqnkTl+uhNndC+A==";
10+ sha512 = "N+WkH6n7MWfRd2rsk/2b/rABL6pcjpKa1iBZSHslIOEc5fYWjGAxjwwTU0RgSaqptS1DyPeCUeWuphWPZJsQgw==";
13 appimageContents = appimageTools.extractType2 {
13 appimageContents = appimageTools.extractType2 {
@@ -33,7 +33,7 @@ in appimageTools.wrapType2 {
33 meta = with lib; {
33 meta = with lib; {
34 description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
34 description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
35 homepage = "https://plexamp.com/";
35 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";
37 license = licenses.unfree;
37 license = licenses.unfree;
38 maintainers = with maintainers; [ killercup synthetica ];
38 maintainers = with maintainers; [ killercup synthetica ];
39 platforms = [ "x86_64-linux" ];
39 platforms = [ "x86_64-linux" ];
pkgs/applications/audio/pt2-clone/default.nix+2−2
@@ -8,13 +8,13 @@
9stdenv.mkDerivation rec {
9stdenv.mkDerivation rec {
10 pname = "pt2-clone";
10 pname = "pt2-clone";
11− version = "1.46";
11+ version = "1.43";
13 src = fetchFromGitHub {
13 src = fetchFromGitHub {
14 owner = "8bitbubsy";
14 owner = "8bitbubsy";
15 repo = "pt2-clone";
15 repo = "pt2-clone";
16 rev = "v${version}";
16 rev = "v${version}";
17− sha256 = "sha256-xRq37hjuMiGxsWRnZ/ryXYLvQpjbfQEjQkMjjuqL7r8=";
17+ sha256 = "sha256-+sHGjgDqizv/9n0dDj8knsl+4MBfO3/pMkmD+MPsuNM=";
20 nativeBuildInputs = [ cmake ];
20 nativeBuildInputs = [ cmake ];
pkgs/applications/audio/puddletag/default.nix−1
@@ -17,7 +17,6 @@
18 # NOTE: check if we can drop any of these overrides when bumping the version
18 # NOTE: check if we can drop any of these overrides when bumping the version
19 overrideVersions = [
19 overrideVersions = [
21 "pyparsing"
20 "pyparsing"
pkgs/applications/audio/pulseaudio-modules-bt/default.nixnew file+91
@@ -0,0 +1,91 @@
19+ pulseSources = runCommand "pulseaudio-sources" {} ''
21+ if [ -d ${pulseaudio.src} ]; then
22+ ln -s ${pulseaudio.src}/* $out/
24+ tar -xf ${pulseaudio.src}
25+ mv pulseaudio*/* $out/
29+in stdenv.mkDerivation rec {
30+ pname = "pulseaudio-modules-bt";
33+ src = fetchFromGitHub {
35+ repo = "pulseaudio-modules-bt";
37+ sha256 = "0bzg6x405j39axnkvc6n6vkl1hv1frk94y1i9sl170081bk23asd";
41+ ./fix-install-path.patch
44+ nativeBuildInputs = [
62+ # Upstream bundles pulseaudio as a submodule
64+ ln -s ${pulseSources} pa
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}
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;"
76+ for so in $out/lib/pulse-${pulseaudio.version}/modules/*.so; do
77+ orig_rpath=$(patchelf --print-rpath "$so")
79+ --set-rpath "${ldacbt}/lib:${lib.getLib ffmpeg}/lib:$out/${pulseaudio.pulseDir}/modules:$orig_rpath" \
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 ];
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
5+@@ -213,5 +213,4 @@ INSTALL(TARGETS
7+ module-bluetooth-discover
8+ module-bluetooth-policy
9+- LIBRARY DESTINATION ${PulseAudio_modlibexecdir})
11++ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${PULSE_DIR}/modules/)
pkgs/applications/audio/pyradio/default.nix+3−3
@@ -2,7 +2,7 @@
3python3Packages.buildPythonApplication rec {
3python3Packages.buildPythonApplication rec {
4 pname = "pyradio";
4 pname = "pyradio";
5− version = "0.8.9.17";
5+ version = "0.8.9.16";
7 propagatedBuildInputs = with python3Packages; [
7 propagatedBuildInputs = with python3Packages; [
@@ -13,8 +13,8 @@ python3Packages.buildPythonApplication rec {
13 src = fetchFromGitHub {
13 src = fetchFromGitHub {
14 owner = "coderholic";
14 owner = "coderholic";
15 repo = pname;
15 repo = pname;
16− rev = "refs/tags/${version}";
16+ rev = version;
17− sha256 = "sha256-lfDSD1+xbA6tAKeHKciq/n6YHWS4JTOvjIqOn+FQ2yA=";
17+ sha256 = "sha256-uerQfyGHWhLbO6UkLSMA1tdfW/8fDQkcm6hYIdwwC7I=";
20 checkPhase = ''
20 checkPhase = ''
pkgs/applications/audio/qpwgraph/default.nix+3−3
@@ -5,14 +5,14 @@
6mkDerivation rec {
6mkDerivation rec {
7 pname = "qpwgraph";
7 pname = "qpwgraph";
8− version = "0.2.5";
8+ version = "0.2.2";
10 src = fetchFromGitLab {
10 src = fetchFromGitLab {
11 domain = "gitlab.freedesktop.org";
11 domain = "gitlab.freedesktop.org";
12 owner = "rncbc";
12 owner = "rncbc";
13 repo = "qpwgraph";
13 repo = "qpwgraph";
14 rev = "v${version}";
14 rev = "v${version}";
15− sha256 = "sha256-OYIBlTO1vXmmY4/ZacvsEQ5EnOfetBvnG2v5xL44czY=";
15+ sha256 = "sha256-BBvF1L3IqkYqSghHxcbwOBizdu6GtxaWof3Q/bc+aTY=";
18 nativeBuildInputs = [ cmake pkg-config ];
18 nativeBuildInputs = [ cmake pkg-config ];
@@ -29,6 +29,6 @@ mkDerivation rec {
29 homepage = "https://gitlab.freedesktop.org/rncbc/qpwgraph";
29 homepage = "https://gitlab.freedesktop.org/rncbc/qpwgraph";
30 license = licenses.gpl2Plus;
30 license = licenses.gpl2Plus;
31 platforms = platforms.linux;
31 platforms = platforms.linux;
32− maintainers = with maintainers; [ kanashimia exi ];
32+ maintainers = with maintainers; [ kanashimia ];
pkgs/applications/audio/shortwave/default.nix+12−9
@@ -14,29 +14,28 @@
16, pkg-config
16, pkg-config
17, rustPlatform
18, rustPlatform
19−, wrapGAppsHook4
20+, wrapGAppsHook
24stdenv.mkDerivation rec {
23stdenv.mkDerivation rec {
25 pname = "shortwave";
24 pname = "shortwave";
26− version = "3.0.0";
25+ version = "2.0.1";
28 src = fetchFromGitLab {
27 src = fetchFromGitLab {
29 domain = "gitlab.gnome.org";
28 domain = "gitlab.gnome.org";
30 owner = "World";
29 owner = "World";
31 repo = "Shortwave";
30 repo = "Shortwave";
32 rev = version;
31 rev = version;
33− sha256 = "sha256-qwk63o9pfqpAm6l9ioj3RccacemQU8R6LF6El4yHkjQ";
32+ sha256 = "sha256-25qPb7qlqCwYJzl4qZxAZYx5asxSlXBlc/0dGyBdk1o=";
36 cargoDeps = rustPlatform.fetchCargoTarball {
35 cargoDeps = rustPlatform.fetchCargoTarball {
37 inherit src;
36 inherit src;
38 name = "${pname}-${version}";
37 name = "${pname}-${version}";
39− hash = "sha256-YrB322nv9CgZqt5//VMvVwjWA51ePlX2PI6raRJGBxA=";
38+ hash = "sha256-00dQXcSNmdZb2nSLG3q7jm4sugF9XR4LbH0OmcuHVxA=";
42 nativeBuildInputs = [
41 nativeBuildInputs = [
@@ -47,11 +46,11 @@ stdenv.mkDerivation rec {
49 pkg-config
48 pkg-config
50 rustPlatform.rust.cargo
50 rustPlatform.rust.cargo
51 rustPlatform.cargoSetupHook
51 rustPlatform.cargoSetupHook
52 rustPlatform.rust.rustc
52 rustPlatform.rust.rustc
53− wrapGAppsHook4
53+ wrapGAppsHook
57 buildInputs = [
56 buildInputs = [
@@ -62,7 +61,6 @@ stdenv.mkDerivation rec {
62 libadwaita
61 libadwaita
66 ] ++ (with gst_all_1; [
64 ] ++ (with gst_all_1; [
68 gst-plugins-base
66 gst-plugins-base
@@ -70,6 +68,10 @@ stdenv.mkDerivation rec {
70 gst-plugins-bad
68 gst-plugins-bad
72+ patchShebangs build-aux/meson/postinstall.py
73 meta = with lib; {
75 meta = with lib; {
74 homepage = "https://gitlab.gnome.org/World/Shortwave";
76 homepage = "https://gitlab.gnome.org/World/Shortwave";
75 description = "Find and listen to internet radio stations";
77 description = "Find and listen to internet radio stations";
@@ -78,6 +80,7 @@ stdenv.mkDerivation rec {
78 desktop. It is the successor to the older Gradio application.
80 desktop. It is the successor to the older Gradio application.
80 maintainers = with maintainers; [ lasandell ];
82 maintainers = with maintainers; [ lasandell ];
83+ broken = true; # incompatible with latest libadwaita
81 license = licenses.gpl3Plus;
84 license = licenses.gpl3Plus;
82 platforms = platforms.linux;
85 platforms = platforms.linux;
pkgs/applications/audio/sonixd/default.nixdeleted−27
@@ -1,27 +0,0 @@
6−appimageTools.wrapType2 rec {
11− url = "https://github.com/jeffvli/sonixd/releases/download/v${version}/Sonixd-${version}-linux-x86_64.AppImage";
12− sha256 = "sha256-23WU1nwvrzyw0J+Pplm3JbsScjJxu+RhmwVoe/PjozY=";
15− extraInstallCommands = ''
16− mv $out/bin/sonixd-${version} $out/bin/sonixd
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" ];
pkgs/applications/audio/soundwireserver/default.nix−1
@@ -34,7 +34,6 @@ qt5.mkDerivation {
34 description = "Turn your Android device into wireless headphones / wireless speaker";
34 description = "Turn your Android device into wireless headphones / wireless speaker";
35 homepage = "https://georgielabs.net/";
35 homepage = "https://georgielabs.net/";
36 maintainers = with maintainers; [ mkg20001 ];
36 maintainers = with maintainers; [ mkg20001 ];
37− platforms = [ "x86_64-linux" ];
38 license = licenses.unfree;
37 license = licenses.unfree;
pkgs/applications/audio/spot/default.nix+3−3
@@ -21,19 +21,19 @@
22stdenv.mkDerivation rec {
22stdenv.mkDerivation rec {
23 pname = "spot";
23 pname = "spot";
24− version = "0.3.3";
24+ version = "0.3.1";
26 src = fetchFromGitHub {
26 src = fetchFromGitHub {
27 owner = "xou816";
27 owner = "xou816";
28 repo = "spot";
28 repo = "spot";
29 rev = version;
29 rev = version;
30− hash = "sha256-0iuLZq9FSxaOchxx6LzGwpY8qnOq2APl/qkBYzEV2uw=";
30+ hash = "sha256-uZzylK9imEazwC/ogsDO8ZBvByE5/SNSV+mIlp7Z9Ww=";
33 cargoDeps = rustPlatform.fetchCargoTarball {
33 cargoDeps = rustPlatform.fetchCargoTarball {
34 inherit src;
34 inherit src;
35 name = "${pname}-${version}";
35 name = "${pname}-${version}";
36− hash = "sha256-g46BkrTv6tdrGe/p245O4cBoPjbvyRP7U6hH1Hp4ja0=";
36+ hash = "sha256-v5xdlsI6OlEpCYOTFePTyI8BkIrAwT6FR2JwiRTGgOA=";
39 nativeBuildInputs = [
39 nativeBuildInputs = [
pkgs/applications/audio/spotify-tui/default.nix−1
@@ -31,6 +31,5 @@ rustPlatform.buildRustPackage rec {
31 changelog = "https://github.com/Rigellute/spotify-tui/blob/v${version}/CHANGELOG.md";
31 changelog = "https://github.com/Rigellute/spotify-tui/blob/v${version}/CHANGELOG.md";
32 license = licenses.mit;
32 license = licenses.mit;
33 maintainers = with maintainers; [ jwijenbergh ];
33 maintainers = with maintainers; [ jwijenbergh ];
pkgs/applications/audio/spotify/default.nix+3−3
@@ -10,14 +10,14 @@ let
10 # If an update breaks things, one of those might have valuable info:
10 # If an update breaks things, one of those might have valuable info:
11 # https://aur.archlinux.org/packages/spotify/
11 # https://aur.archlinux.org/packages/spotify/
12 # https://community.spotify.com/t5/Desktop-Linux
12 # https://community.spotify.com/t5/Desktop-Linux
13− version = "1.1.84.716.gc5f8b819";
13+ version = "1.1.80.699.gc3dac750";
14 # To get the latest stable revision:
14 # To get the latest stable revision:
15 # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
15 # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
16 # To get general information:
16 # To get general information:
17 # curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
17 # curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
18 # More examples of api usage:
18 # More examples of api usage:
19 # https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
19 # https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
20− rev = "60";
20+ rev = "58";
@@ -80,7 +80,7 @@ stdenv.mkDerivation {
80 # https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
80 # https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
81 src = fetchurl {
81 src = fetchurl {
82 url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
82 url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
83− sha512 = "1209b956822d8bb661daa2c88616bed403ec26dc22c6b866cecff59235c56112284c2f99aa06352fc0df6fcd15225a6ad60afd3b4ff4d7b948ab83e70ab31a71";
83+ sha512 = "91385a5a8de31d6e9f1945d23108447fd369c1cdc2e4d95cbb7cec5d403c3be14a1b0fabe3fb01aef809a39b033d289add1bcb307ab19c7fcb63689dbae57c53";
86 nativeBuildInputs = [ makeWrapper wrapGAppsHook squashfsTools ];
86 nativeBuildInputs = [ makeWrapper wrapGAppsHook squashfsTools ];
pkgs/applications/audio/strawberry/default.nix−1
@@ -72,7 +72,6 @@ mkDerivation rec {
72 ] ++ lib.optionals withGstreamer (with gst_all_1; [
72 ] ++ lib.optionals withGstreamer (with gst_all_1; [
73 glib-networking
73 glib-networking
76 gst-plugins-base
75 gst-plugins-base
77 gst-plugins-good
76 gst-plugins-good
78 gst-plugins-bad
77 gst-plugins-bad
pkgs/applications/audio/viper4linux-gui/default.nixdeleted−82
@@ -1,82 +0,0 @@
17− gstPluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" (with gst_all_1; [ gstreamer gst-plugins-viperfx gst-plugins-base gst-plugins-good ]);
19−stdenv.mkDerivation rec {
20− pname = "viper4linux-gui";
21− version = "unstable-2022-04-23";
23− src = fetchFromGitHub {
24− owner = "Audio4Linux";
25− repo = "Viper4Linux-GUI";
26− rev = "2d0c84d7dda76c59e31c850e38120002eb779b7a";
27− sha256 = "sha256-5YlLCF598i/sldczPEgCB+1KJDA7jqM964QDSNjgTKM=";
35− desktopName = "viper4linux";
36− genericName = "Equalizer";
37− comment = meta.description;
38− categories = [ "AudioVideo" "Audio" ];
39− startupNotify = false;
43− nativeBuildInputs = [
55− gst_all_1.gst-plugins-bad
56− gst_all_1.gst-plugins-viperfx
61− qmakeFlags = [ "V4L_Frontend.pro" ];
64− "--prefix PATH : ${lib.makeBinPath [ viper4linux gst_all_1.gstreamer ]}"
65− "--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : ${gstPluginPath}"
70− install -D V4L_Frontend $out/bin/viper-gui
71− install -D icons/viper.png $out/share/icons/viper.png
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 ];
pkgs/applications/audio/viper4linux/default.nixdeleted−61
@@ -1,61 +0,0 @@
10− gstPluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" (with gst_all_1; [ gstreamer gst-plugins-viperfx gst-plugins-base gst-plugins-good ]);
12−stdenv.mkDerivation rec {
13− pname = "viper4linux";
14− version = "unstable-2022-03-13";
16− src = fetchFromGitHub {
17− owner = "Audio4Linux";
18− repo = "Viper4Linux";
19− rev = "5da25644824f88cf0db24378d2c84770ba4f6816";
20− sha256 = "sha256-CJNVr/1ehJzX45mxunXcRAypBBGEBdswOzAVG2H+ayg=";
23− nativeBuildInputs = [ makeWrapper ];
27− gst_all_1.gst-plugins-base
28− gst_all_1.gst-plugins-good
29− gst_all_1.gst-plugins-viperfx
36− substituteInPlace viper --replace "/etc/viper4linux" "$out/etc/viper4linux"
41− install -D viper -t $out/bin
42− mkdir -p $out/etc/viper4linux
43− cp -r viper4linux/* $out/etc/viper4linux
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 ]}
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 ];
pkgs/applications/audio/whipper/default.nix−8
@@ -8,8 +8,6 @@
10, util-linux
10, util-linux
@@ -47,7 +45,6 @@ in python3.pkgs.buildPythonApplication rec {
47 ruamel-yaml
45 ruamel-yaml
53 buildInputs = [ libsndfile ];
50 buildInputs = [ libsndfile ];
@@ -74,11 +71,6 @@ in python3.pkgs.buildPythonApplication rec {
74 runHook postCheck
71 runHook postCheck
77− passthru.tests.version = testers.testVersion {
79− command = "HOME=$TMPDIR whipper --version";
82 meta = with lib; {
74 meta = with lib; {
83 homepage = "https://github.com/whipper-team/whipper";
75 homepage = "https://github.com/whipper-team/whipper";
84 description = "A CD ripper aiming for accuracy over speed";
76 description = "A CD ripper aiming for accuracy over speed";
pkgs/applications/audio/x42-plugins/default.nix+2−2
@@ -3,12 +3,12 @@
3, libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
3, libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
5stdenv.mkDerivation rec {
5stdenv.mkDerivation rec {
6− version = "20220327";
6+ version = "20220107";
7 pname = "x42-plugins";
7 pname = "x42-plugins";
9 src = fetchurl {
9 src = fetchurl {
10 url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
10 url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
11− sha256 = "sha256-IhuPqTlCbCxExT5B9Au42RQQl4sDEvz6+HhsuT02KVs=";
11+ sha256 = "sha256-+lzgkRQHe6moid3h6az/iqt2XL5vbyM0BjSTwMBvd3I=";
14 nativeBuildInputs = [ pkg-config ];
14 nativeBuildInputs = [ pkg-config ];
pkgs/applications/blockchains/alfis/default.nix+3−3
@@ -14,16 +14,16 @@
15rustPlatform.buildRustPackage rec {
15rustPlatform.buildRustPackage rec {
16 pname = "alfis";
16 pname = "alfis";
17− version = "0.7.0";
17+ version = "0.6.11";
19 src = fetchFromGitHub {
19 src = fetchFromGitHub {
20 owner = "Revertron";
20 owner = "Revertron";
21 repo = "Alfis";
21 repo = "Alfis";
22 rev = "v${version}";
22 rev = "v${version}";
23− sha256 = "sha256-lamobXaDY+v8NpoI+TuuBO5Cdol9+7VPhdmLEH6sZIo=";
23+ sha256 = "sha256-vm/JBJh58UaSem18RpJuPUzM2GCy4RfCb6Hr1B7KWQA=";
26− cargoSha256 = "sha256-C5MCT4EG/lI4s2rVGSm9DgBu43FKpp3iTBbCf7N1jOA=";
26+ cargoSha256 = "sha256-8ijGO8up0qVQ/kVX5/DveKyovYLh7jm+d7vooS1waAA=";
28 checkFlags = [
28 checkFlags = [
29 # these want internet access, disable them
29 # these want internet access, disable them
pkgs/applications/blockchains/bisq-desktop/default.nix+2−1
@@ -10,6 +10,7 @@
10, writeScript
10, writeScript
@@ -41,7 +42,7 @@ stdenv.mkDerivation rec {
41 sha256 = "09bpkmn22kal3cxg8sil02wy2f2gplsbdkp4viagn0jppma02jid";
42 sha256 = "09bpkmn22kal3cxg8sil02wy2f2gplsbdkp4viagn0jppma02jid";
44− nativeBuildInputs = [ makeWrapper copyDesktopItems imagemagick dpkg zip xz ];
45+ nativeBuildInputs = [ makeWrapper copyDesktopItems imagemagick dpkg gnutar zip xz ];
46 desktopItems = [
47 desktopItems = [
47 (makeDesktopItem {
48 (makeDesktopItem {
pkgs/applications/blockchains/bitcoin/default.nix+2−2
@@ -25,7 +25,7 @@
28− version = "23.0";
28+ version = "22.0";
29 majorVersion = versions.major version;
29 majorVersion = versions.major version;
30 desktop = fetchurl {
30 desktop = fetchurl {
31 url = "https://raw.githubusercontent.com/bitcoin-core/packaging/${majorVersion}.x/debian/bitcoin-qt.desktop";
31 url = "https://raw.githubusercontent.com/bitcoin-core/packaging/${majorVersion}.x/debian/bitcoin-qt.desktop";
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
41 "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
41 "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
42 "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
42 "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
44− sha256 = "26748bf49d6d6b4014d0fedccac46bf2bcca42e9d34b3acfd9e3467c415acc05";
44+ sha256 = "d0e9d089b57048b1555efa7cd5a63a7ed042482045f6f33402b1df425bf9613b";
47 nativeBuildInputs =
47 nativeBuildInputs =
pkgs/applications/blockchains/btcpayserver/default.nix+2−2
@@ -3,13 +3,13 @@
4buildDotnetModule rec {
4buildDotnetModule rec {
5 pname = "btcpayserver";
5 pname = "btcpayserver";
6− version = "1.5.1";
6+ version = "1.4.7";
8 src = fetchFromGitHub {
8 src = fetchFromGitHub {
9 owner = pname;
9 owner = pname;
10 repo = pname;
10 repo = pname;
11 rev = "v${version}";
11 rev = "v${version}";
12− sha256 = "sha256-DcxRrVUen+JxMpiLDPfknpwCe962ifaekBeBnxJ0y88=";
12+ sha256 = "sha256-Qz4BNrhK+NPnKBgjXGYl4P2R878LCuMGZxLECawA12E=";
15 projectFile = "BTCPayServer/BTCPayServer.csproj";
15 projectFile = "BTCPayServer/BTCPayServer.csproj";
pkgs/applications/blockchains/btcpayserver/deps.nix+29−29
@@ -31,18 +31,18 @@
32 (fetchNuGet {
32 (fetchNuGet {
33 pname = "BTCPayServer.Lightning.All";
33 pname = "BTCPayServer.Lightning.All";
34− version = "1.3.6";
34+ version = "1.3.2";
35− sha256 = "0jdpqy6kxg0lyh4n88wsvrcqc0kk7s7zn5lw7ivwys716m69qrdl";
35+ sha256 = "0xcfba8n9zf5m1nb48ilggp03kpki4nv4kx7k7a5w1gxgm6k6j9z";
37 (fetchNuGet {
37 (fetchNuGet {
38 pname = "BTCPayServer.Lightning.Charge";
38 pname = "BTCPayServer.Lightning.Charge";
39− version = "1.3.2";
39+ version = "1.3.1";
40− sha256 = "0v5rss6dg7297kq1frhn2pj9gd0rd8g1p5d316x5wkd4w7pmrm2w";
40+ sha256 = "1xakwnb839dl0qnhqprsnfq8png31iyb0fsngljis5jc8yvb4353";
42 (fetchNuGet {
42 (fetchNuGet {
43 pname = "BTCPayServer.Lightning.CLightning";
43 pname = "BTCPayServer.Lightning.CLightning";
44− version = "1.3.2";
44+ version = "1.3.1";
45− sha256 = "0qs5p6pm54il23j8yysw0pzvrki37y6z8cd2gdknpz2f3wg7slm9";
45+ sha256 = "0a79p6i3xiq6svv08c4hhihkvqa2ac7fphi3g9i0cwh47ak0k5h2";
47 (fetchNuGet {
47 (fetchNuGet {
48 pname = "BTCPayServer.Lightning.Common";
48 pname = "BTCPayServer.Lightning.Common";
@@ -51,23 +51,23 @@
52 (fetchNuGet {
52 (fetchNuGet {
53 pname = "BTCPayServer.Lightning.Common";
53 pname = "BTCPayServer.Lightning.Common";
54− version = "1.3.2";
54+ version = "1.3.1";
55− sha256 = "119zplkc7iy9wc95iz1qnyi42fr99ar4hp8a11p708a22w941yi0";
55+ sha256 = "165p1246fn628hlwdrx7sanlxa6qqpn480rq1asn5r1602w21844";
57 (fetchNuGet {
57 (fetchNuGet {
58 pname = "BTCPayServer.Lightning.Eclair";
58 pname = "BTCPayServer.Lightning.Eclair";
59− version = "1.3.2";
59+ version = "1.3.1";
60− sha256 = "08gw1gqng1khxzvvhlwsg6lw1w56ylilg738wi6cbcwy7vl7f6bb";
60+ sha256 = "1vlwm5mw8wffp00xhkx19yavk59b5x540sg81vis3q7hjvvgca5c";
62 (fetchNuGet {
62 (fetchNuGet {
63 pname = "BTCPayServer.Lightning.LNBank";
63 pname = "BTCPayServer.Lightning.LNBank";
64− version = "1.3.4";
64+ version = "1.3.1";
65− sha256 = "1vyz63pi5j31y8pz0b4hp9c4j249rszzfcymk3z3b2clwq32s4i4";
65+ sha256 = "0qga34vi4fzfr0g4qk0ad8xkqdig2ishmdj9i32s5yrrjrkx7c8d";
67 (fetchNuGet {
67 (fetchNuGet {
68 pname = "BTCPayServer.Lightning.LND";
68 pname = "BTCPayServer.Lightning.LND";
69− version = "1.3.3";
69+ version = "1.3.1";
70− sha256 = "137azpxxmp2q69bp07ky1jsgnfy9lf0dg5ba8l654flvvrgxaq6y";
70+ sha256 = "1b70jlyzy9xjvfywzi6i3l3sd4mkknxpni9akdi0phsfqysmy0wl";
72 (fetchNuGet {
72 (fetchNuGet {
73 pname = "BuildBundlerMinifier";
73 pname = "BuildBundlerMinifier";
@@ -89,11 +89,6 @@
89 version = "15.0.5";
89 version = "15.0.5";
90 sha256 = "01y8bhsnxghn3flz0pr11vj6wjrpmia8rpdrsp7kjfc1zmhqlgma";
90 sha256 = "01y8bhsnxghn3flz0pr11vj6wjrpmia8rpdrsp7kjfc1zmhqlgma";
95− sha256 = "15hxrchfgiqnmgf8fqhrf4pb4c8l9igg5qnkw9yk3rkagcqfkk91";
97 (fetchNuGet {
92 (fetchNuGet {
98 pname = "DigitalRuby.ExchangeSharp";
93 pname = "DigitalRuby.ExchangeSharp";
99 version = "0.6.3";
94 version = "0.6.3";
@@ -379,6 +374,11 @@
379 version = "3.1.6";
374 version = "3.1.6";
380 sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5";
375 sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5";
378+ pname = "Microsoft.EntityFrameworkCore.Abstractions";
380+ sha256 = "1aw13qjkpglc1mm3cv7s73s8fschy8lzdnigsp346b7mycpg7v92";
382 (fetchNuGet {
382 (fetchNuGet {
383 pname = "Microsoft.EntityFrameworkCore.Abstractions";
383 pname = "Microsoft.EntityFrameworkCore.Abstractions";
384 version = "6.0.1";
384 version = "6.0.1";
@@ -831,8 +831,8 @@
832 (fetchNuGet {
832 (fetchNuGet {
833 pname = "NBitcoin";
833 pname = "NBitcoin";
834− version = "6.0.18";
834+ version = "6.0.15";
835− sha256 = "1dr669h68cx6yfzr3n97yzzwbgnsv5g2008diyxngdjm55nh3q9s";
835+ sha256 = "038dcl2k88w4cijws3pdnjflgy4lmqx70z0l7yqz355kmxjz8ain";
837 (fetchNuGet {
837 (fetchNuGet {
838 pname = "NBitcoin";
838 pname = "NBitcoin";
@@ -856,8 +856,8 @@
857 (fetchNuGet {
857 (fetchNuGet {
858 pname = "NBXplorer.Client";
858 pname = "NBXplorer.Client";
859− version = "4.2.0";
859+ version = "4.1.3";
860− sha256 = "1adbn5cbr42cjfvijaf1lffhcrcn0ws1arfi7mrg3kjshbzfgims";
860+ sha256 = "1nh4jj7yg81825hr7cc99qlnfmdm6jibap81qqi8a968b61z4251";
862 (fetchNuGet {
862 (fetchNuGet {
863 pname = "NETStandard.Library";
863 pname = "NETStandard.Library";
@@ -931,13 +931,13 @@
932 (fetchNuGet {
932 (fetchNuGet {
933 pname = "Npgsql.EntityFrameworkCore.PostgreSQL";
933 pname = "Npgsql.EntityFrameworkCore.PostgreSQL";
934− version = "6.0.3";
934+ version = "6.0.1";
935− sha256 = "0mgwm9psxvrq6vs2cy7m72wnknydgrs71hir2jqal5wbdh8g01np";
935+ sha256 = "108sc62dqdb6ym2ck651kamcv6qf93cmaqzygfblmiglwzi6frnx";
937 (fetchNuGet {
937 (fetchNuGet {
938 pname = "Npgsql";
938 pname = "Npgsql";
939− version = "6.0.3";
939+ version = "6.0.1";
940− sha256 = "1crzgi4dfbn8r381m9rvkma5xi2q7gqdzgxhc36hy3r0y63v1l8q";
940+ sha256 = "150paiwqxp6zsy5v7vl2a9h3ikzfv3pd04whxifmamq0h1ghw0ld";
942 (fetchNuGet {
942 (fetchNuGet {
943 pname = "NSec.Cryptography";
943 pname = "NSec.Cryptography";
@@ -1086,8 +1086,8 @@
1087 (fetchNuGet {
1087 (fetchNuGet {
1088 pname = "Selenium.WebDriver.ChromeDriver";
1088 pname = "Selenium.WebDriver.ChromeDriver";
1089− version = "100.0.4896.6000";
1089+ version = "98.0.4758.10200";
1090− sha256 = "1pfdvxjy4xiw1j7787lf07w9nr0dmj589vf6p4aqmk2cfz8j35c6";
1090+ sha256 = "10mc50gm78zbxrwvxlygzmj2a29liiacv8haax0534c26vj9dwkl";
1092 (fetchNuGet {
1092 (fetchNuGet {
1093 pname = "Selenium.WebDriver";
1093 pname = "Selenium.WebDriver";
pkgs/applications/blockchains/chia-plotter/default.nix+6−13
@@ -9,13 +9,13 @@
10stdenv.mkDerivation {
10stdenv.mkDerivation {
11 pname = "chia-plotter";
11 pname = "chia-plotter";
12− version = "1.1.8";
12+ version = "1.1.7";
14 src = fetchFromGitHub {
14 src = fetchFromGitHub {
15 owner = "madMAx43v3r";
15 owner = "madMAx43v3r";
16 repo = "chia-plotter";
16 repo = "chia-plotter";
17− rev = "9d7fd929919d1adde6404cb4718a665a81bcef6d";
17+ rev = "18cad340858f0dbcc8dafd0bda1ce1af0fe58c65";
18− sha256 = "sha256-TMAly+Qof2DHPRHqE1nZuHQaCeMo0jEd8MWy4OlXrcs=";
18+ sha256 = "sha256-lXjeqcjn3+LtnVYngdM1T3on7V7wez4oOAZ0RpKJXMM=";
19 fetchSubmodules = true;
19 fetchSubmodules = true;
@@ -25,17 +25,10 @@ stdenv.mkDerivation {
25 src = ./dont_fetch_dependencies.patch;
25 src = ./dont_fetch_dependencies.patch;
26 pybind11_src = python3Packages.pybind11.src;
26 pybind11_src = python3Packages.pybind11.src;
27 relic_src = fetchFromGitHub {
27 relic_src = fetchFromGitHub {
28− owner = "Chia-Network";
28+ owner = "relic-toolkit";
29 repo = "relic";
29 repo = "relic";
30− rev = "1d98e5abf3ca5b14fd729bd5bcced88ea70ecfd7";
30+ rev = "1885ae3b681c423c72b65ce1fe70910142cf941c";
31− hash = "sha256-IfTD8DvTEXeLUoKe4Ejafb+PEJW5DV/VXRYuutwGQHU=";
31+ hash = "sha256-tsSZTcssl8t7Nqdex4BesgQ+ACPgTdtHnJFvS9josN0=";
33− sodium_src = fetchFromGitHub {
34− owner = "AmineKhaldi";
35− repo = "libsodium-cmake";
36− rev = "f73a3fe1afdc4e37ac5fe0ddd401bf521f6bba65"; # pinned by upstream
37− sha256 = "sha256-lGz7o6DQVAuEc7yTp8bYS2kwjzHwGaNjugDi1ruRJOA=";
38− fetchSubmodules = true;
pkgs/applications/blockchains/chia-plotter/dont_fetch_dependencies.patch+11−24
@@ -11,43 +11,30 @@ index 255e3bb..5f99c3a 100644
11+ SOURCE_DIR @pybind11_src@
11+ SOURCE_DIR @pybind11_src@
13 FetchContent_MakeAvailable(pybind11 relic)
13 FetchContent_MakeAvailable(pybind11 relic)
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)
22− FetchContent_Declare(Sodium
15+diff --git a/lib/bls-signatures/src/CMakeLists.txt b/lib/bls-signatures/src/CMakeLists.txt
23−- GIT_REPOSITORY https://github.com/AmineKhaldi/libsodium-cmake.git
16+index b762b5d..e06073b 100644
24−- # Latest commit at the moment this was added here
17+--- a/lib/bls-signatures/src/CMakeLists.txt
25−- # Anchored to libsodium v1.0.18
18++++ b/lib/bls-signatures/src/CMakeLists.txt
26−- GIT_TAG f73a3fe1afdc4e37ac5fe0ddd401bf521f6bba65
19+@@ -4,18 +4,11 @@ set (CMAKE_CXX_STANDARD 17)
27−+ URL @sodium_src@
20+ # CMake 3.14+
28− )
21+ include(FetchContent)
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)
34-if (DEFINED ENV{RELIC_MAIN})
23-if (DEFINED ENV{RELIC_MAIN})
35- set(RELIC_GIT_TAG "origin/main")
24- set(RELIC_GIT_TAG "origin/main")
37−- # This is currently anchored to upstream aecdcae7956f542fbee2392c1f0feb0a8ac41dc5
26+- set(RELIC_GIT_TAG "1885ae3b681c423c72b65ce1fe70910142cf941c")
38−- set(RELIC_GIT_TAG "1d98e5abf3ca5b14fd729bd5bcced88ea70ecfd7")
41 message(STATUS "Relic will be built from: ${RELIC_GIT_TAG}")
29 message(STATUS "Relic will be built from: ${RELIC_GIT_TAG}")
43 FetchContent_Declare(
31 FetchContent_Declare(
45−- GIT_REPOSITORY https://github.com/Chia-Network/relic.git
33+- GIT_REPOSITORY https://github.com/relic-toolkit/relic.git
46−- GIT_TAG ${RELIC_GIT_TAG}
34+- GIT_TAG ${RELIC_GIT_TAG}
47+ SOURCE_DIR @relic_src@
35+ SOURCE_DIR @relic_src@
49−
37+ FetchContent_MakeAvailable(relic)
50− # Relic related options
52diff --git a/CMakeLists.txt b/CMakeLists.txt
39diff --git a/CMakeLists.txt b/CMakeLists.txt
53index 970ec74..948441a 100644
40index 970ec74..948441a 100644
pkgs/applications/blockchains/clightning/default.nix+2−2
@@ -21,11 +21,11 @@ let
22stdenv.mkDerivation rec {
22stdenv.mkDerivation rec {
23 pname = "clightning";
23 pname = "clightning";
24− version = "0.11.0.1";
24+ version = "0.10.2";
26 src = fetchurl {
26 src = fetchurl {
27 url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
27 url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
28− sha256 = "e2ad6eead19a0cd8869e291c27d318cf553bb015339c1f0e8d8b30e7bc0910d8";
28+ sha256 = "3c9dcb686217b2efe0e988e90b95777c4591e3335e259e01a94af87e0bf01809";
31 # when building on darwin we need dawin.cctools to provide the correct libtool
31 # 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
13rustPlatform.buildRustPackage rec {
13rustPlatform.buildRustPackage rec {
14 pname = "electrs";
14 pname = "electrs";
15− version = "0.9.7";
15+ version = "0.9.6";
17 src = fetchFromGitHub {
17 src = fetchFromGitHub {
18 owner = "romanz";
18 owner = "romanz";
19 repo = pname;
19 repo = pname;
20 rev = "v${version}";
20 rev = "v${version}";
21− hash = "sha256-hdXc64gj7QtCnTq3f5mpQDEKLM6qaDBLkQE07xxNaDE=";
21+ hash = "sha256-BI7hxlpg2sggD1ag73n+tRre+Ja2ZFhDPzy1DV8aEHw=";
24− cargoHash = "sha256-xMATO+H3bGkM/tLRimmLGYtrOAX8hzkw5Hb0c6iVAXY=";
24+ cargoHash = "sha256-Oy2mOulSB2a9LaT47G+BzjidcjPjHeaoesQ7g6M8M1Q=";
26 # needed for librocksdb-sys
26 # needed for librocksdb-sys
27 nativeBuildInputs = [ llvmPackages.clang ];
27 nativeBuildInputs = [ llvmPackages.clang ];
pkgs/applications/blockchains/ledger-live-desktop/default.nix+2−2
@@ -2,12 +2,12 @@
4 pname = "ledger-live-desktop";
4 pname = "ledger-live-desktop";
5− version = "2.40.4";
5+ version = "2.40.2";
6 name = "${pname}-${version}";
6 name = "${pname}-${version}";
8 src = fetchurl {
8 src = fetchurl {
9 url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
9 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=";
13 appimageContents = appimageTools.extractType2 {
13 appimageContents = appimageTools.extractType2 {
pkgs/applications/blockchains/lightning-loop/default.nix+3−3
@@ -5,16 +5,16 @@
6buildGoModule rec {
6buildGoModule rec {
7 pname = "lightning-loop";
7 pname = "lightning-loop";
8− version = "0.18.0-beta";
8+ version = "0.17.0-beta";
10 src = fetchFromGitHub {
10 src = fetchFromGitHub {
11 owner = "lightninglabs";
11 owner = "lightninglabs";
12 repo = "loop";
12 repo = "loop";
13 rev = "v${version}";
13 rev = "v${version}";
14− sha256 = "1kg5nlvb4lb3cjn84wcylhq0l73d2n6rg4n1srnxmgs96v41y78f";
14+ sha256 = "0hjawagn1dfgj67i52bvf3phvm9f9708z3jqs6cvyz0w7vp107py";
17− vendorSha256 = "0q3wbjfaqdj29sjlhx6fhc0p4d12aa31s6ia36jalcvf659ybb0l";
17+ vendorSha256 = "1fpc73hwdn3baz5ykrykvqdr5861gj9p6liy8qll5525kdv560f6";
19 subPackages = [ "cmd/loop" "cmd/loopd" ];
19 subPackages = [ "cmd/loop" "cmd/loopd" ];
pkgs/applications/blockchains/lnd/default.nix+2−2
@@ -6,13 +6,13 @@
7buildGoModule rec {
7buildGoModule rec {
8 pname = "lnd";
8 pname = "lnd";
9− version = "0.14.3-beta";
9+ version = "0.14.2-beta";
11 src = fetchFromGitHub {
11 src = fetchFromGitHub {
12 owner = "lightningnetwork";
12 owner = "lightningnetwork";
13 repo = "lnd";
13 repo = "lnd";
14 rev = "v${version}";
14 rev = "v${version}";
15− sha256 = "sha256-ZTvGFmjhQBIWqMGatMAlX59uVyl1oUKo7L5jiz571Gc";
15+ sha256 = "sha256-JOKitxxWcTlGlxYR1XpySZlI2fT9jgBrOxNUwT/sqdQ=";
18 vendorSha256 = "sha256-shDmJcEyobY7Ih1MHMEY2GQnzAffsH/y4J1bme/bT7I=";
18 vendorSha256 = "sha256-shDmJcEyobY7Ih1MHMEY2GQnzAffsH/y4J1bme/bT7I=";
pkgs/applications/blockchains/monero-cli/default.nix+2−2
@@ -9,13 +9,13 @@
10stdenv.mkDerivation rec {
10stdenv.mkDerivation rec {
11 pname = "monero-cli";
11 pname = "monero-cli";
12− version = "0.17.3.2";
12+ version = "0.17.3.0";
14 src = fetchFromGitHub {
14 src = fetchFromGitHub {
15 owner = "monero-project";
15 owner = "monero-project";
16 repo = "monero";
16 repo = "monero";
17 rev = "v${version}";
17 rev = "v${version}";
18− sha256 = "19sgcbli7fc1l6ms7ma6hcz1mmpbnd296lc8a19rl410acpv45zy";
18+ sha256 = "1spsf7m3x4psp9s7mivr6x4886jnbq4i8ll2dl8bv5bsdhcd3pjm";
19 fetchSubmodules = true;
19 fetchSubmodules = true;
pkgs/applications/blockchains/monero-gui/default.nix+2−2
@@ -14,13 +14,13 @@
15stdenv.mkDerivation rec {
15stdenv.mkDerivation rec {
16 pname = "monero-gui";
16 pname = "monero-gui";
17− version = "0.17.3.2";
17+ version = "0.17.3.1";
19 src = fetchFromGitHub {
19 src = fetchFromGitHub {
20 owner = "monero-project";
20 owner = "monero-project";
21 repo = "monero-gui";
21 repo = "monero-gui";
22 rev = "v${version}";
22 rev = "v${version}";
23− sha256 = "10gincmgc0qpsgm94m1fqfy9j8jn9g1gjk12lcqnf77kvcnz37hq";
23+ sha256 = "sha256-RrchaqFmL4W9F8DhZfvxm7mHMkx/OX8K9e8uNFXWubo=";
26 nativeBuildInputs = [
26 nativeBuildInputs = [
pkgs/applications/blockchains/namecoin/default.nix+6−5
@@ -1,14 +1,15 @@
1{ lib, stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkg-config, qt4, protobuf, qrencode, hexdump
1{ lib, stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkg-config, qt4, protobuf, qrencode, hexdump
2, withGui }:
2, withGui }:
4stdenv.mkDerivation rec {
5stdenv.mkDerivation rec {
5− pname = "namecoin" + lib.optionalString (!withGui) "d";
6+ pname = "namecoin" + optionalString (!withGui) "d";
6− version = "22.0";
7+ version = "nc22.0";
8 src = fetchFromGitHub {
9 src = fetchFromGitHub {
9 owner = "namecoin";
10 owner = "namecoin";
10 repo = "namecoin-core";
11 repo = "namecoin-core";
11− rev = "nc${version}";
12+ rev = version;
12 sha256 = "sha256-Z3CLDe0c4IpFPPTie8yoh0kcuvGmiegSgl4ITNSDkgY=";
13 sha256 = "sha256-Z3CLDe0c4IpFPPTie8yoh0kcuvGmiegSgl4ITNSDkgY=";
@@ -25,7 +26,7 @@ stdenv.mkDerivation rec {
28− ] ++ lib.optionals withGui [
29+ ] ++ optionals withGui [
@@ -37,7 +38,7 @@ stdenv.mkDerivation rec {
37 "--with-boost-libdir=${boost.out}/lib"
38 "--with-boost-libdir=${boost.out}/lib"
40− meta = with lib; {
41+ meta = {
41 description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency";
42 description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency";
42 homepage = "https://namecoin.org";
43 homepage = "https://namecoin.org";
43 license = licenses.mit;
44 license = licenses.mit;
pkgs/applications/blockchains/nbxplorer/default.nix+2−2
@@ -2,13 +2,13 @@
3buildDotnetModule rec {
3buildDotnetModule rec {
4 pname = "nbxplorer";
4 pname = "nbxplorer";
5− version = "2.3.20";
5+ version = "2.2.20";
7 src = fetchFromGitHub {
7 src = fetchFromGitHub {
8 owner = "dgarage";
8 owner = "dgarage";
9 repo = "NBXplorer";
9 repo = "NBXplorer";
10 rev = "v${version}";
10 rev = "v${version}";
11− sha256 = "sha256-cAko5s1bFSI7HOcXg/tZtdMMe0S9zkRBeZ6bispxgwc=";
11+ sha256 = "sha256-C3REnfecNwf3dtk6aLYAEsedHRlIrQZAokXtf6KI8U0=";
14 projectFile = "NBXplorer/NBXplorer.csproj";
14 projectFile = "NBXplorer/NBXplorer.csproj";
pkgs/applications/blockchains/nbxplorer/deps.nix−15
@@ -1,9 +1,4 @@
1{ fetchNuGet }: [
1{ fetchNuGet }: [
5− sha256 = "15hxrchfgiqnmgf8fqhrf4pb4c8l9igg5qnkw9yk3rkagcqfkk91";
7 (fetchNuGet {
2 (fetchNuGet {
8 pname = "DBTrie";
3 pname = "DBTrie";
9 version = "1.0.39";
4 version = "1.0.39";
@@ -254,11 +249,6 @@
254 version = "1.0.0.18";
249 version = "1.0.0.18";
255 sha256 = "0lgssxafv6cqlw21fb79fm0fcln0clgsk6zadcwrnjv9vampfw7b";
250 sha256 = "0lgssxafv6cqlw21fb79fm0fcln0clgsk6zadcwrnjv9vampfw7b";
260− sha256 = "1crzgi4dfbn8r381m9rvkma5xi2q7gqdzgxhc36hy3r0y63v1l8q";
262 (fetchNuGet {
252 (fetchNuGet {
263 pname = "NuGet.Frameworks";
253 pname = "NuGet.Frameworks";
264 version = "5.0.0";
254 version = "5.0.0";
@@ -764,11 +754,6 @@
764 version = "4.5.0";
754 version = "4.5.0";
765 sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43";
755 sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43";
768− pname = "System.Runtime.CompilerServices.Unsafe";
770− sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc";
772 (fetchNuGet {
757 (fetchNuGet {
773 pname = "System.Runtime.Extensions";
758 pname = "System.Runtime.Extensions";
774 version = "4.1.0";
759 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
5−rustPlatform.buildRustPackage rec {
6− #https://github.com/near/nearcore
9− src = fetchFromGitHub {
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=";
17− cargoSha256 = "sha256-EGv4CibSHL9oTAdWK7d/SOzZWPcEB16hTWlWHjKU4wc=";
19− # don't build SDK samples that require wasm-enabled rust
20− cargoBuildFlags = [ "-p" "neard" ];
21− doCheck = false; # needs network
23− buildInputs = [ zlib elfutils openssl ];
24− nativeBuildInputs = [
32− LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
33− BINDGEN_EXTRA_CLANG_ARGS = "-isystem ${llvmPackages.libclang.lib}/lib/clang/${lib.getVersion llvmPackages.clang}/include";
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;
pkgs/applications/blockchains/openethereum/default.nix+3−3
@@ -12,16 +12,16 @@
13rustPlatform.buildRustPackage rec {
13rustPlatform.buildRustPackage rec {
14 pname = "openethereum";
14 pname = "openethereum";
15− version = "3.3.5";
15+ version = "3.2.6";
17 src = fetchFromGitHub {
17 src = fetchFromGitHub {
18 owner = "openethereum";
18 owner = "openethereum";
19 repo = "openethereum";
19 repo = "openethereum";
20 rev = "v${version}";
20 rev = "v${version}";
21− sha256 = "sha256-PpRRoufuZ9fXbLonMAo6qaA/jtJZXW98uM0BEXdJ2oU=";
21+ sha256 = "0lxps3cyg8dzb9qr1kg91s9jc3mnm6hxybwcbhva38pcq4yc40xc";
24− cargoSha256 = "sha256-xXUNXQvVq6XqW/hmCfJ2/mHKkZu0amRZ77vX+Jib0iM=";
24+ cargoSha256 = "08yrpls3szmw6vy2c4d6b1k907ga0809ylvyx0zb6f8mp8z7ahl2";
26 nativeBuildInputs = [ cmake pkg-config ];
26 nativeBuildInputs = [ cmake pkg-config ];
pkgs/applications/blockchains/solana/default.nix+4−9
@@ -10,23 +10,19 @@
14− pinData = lib.importJSON ./pin.json;
15− version = pinData.version;
16− sha256 = pinData.sha256;
17− cargoSha256 = pinData.cargoSha256;
19rustPlatform.buildRustPackage rec {
13rustPlatform.buildRustPackage rec {
20 pname = "solana-testnet-cli";
14 pname = "solana-testnet-cli";
21− inherit version cargoSha256;
15+ version = "1.9.2";
23 src = fetchFromGitHub {
17 src = fetchFromGitHub {
24 owner = "solana-labs";
18 owner = "solana-labs";
25 repo = "solana";
19 repo = "solana";
26 rev = "v${version}";
20 rev = "v${version}";
27− inherit sha256;
21+ sha256 = "sha256-wrv35vBohLztMZPb6gfZdCaXcjj/Y7vnQqINaI6dBM4=";
24+ cargoSha256 = "sha256-A5uVa+cRmrkVyw7MFH4QAr0VIFi18wcc2VPFvQyT9EM=";
30 buildAndTestSubdir = "cli";
26 buildAndTestSubdir = "cli";
32 nativeBuildInputs = lib.optionals stdenv.isLinux [ protobuf pkg-config ];
28 nativeBuildInputs = lib.optionals stdenv.isLinux [ protobuf pkg-config ];
@@ -57,5 +53,4 @@ rustPlatform.buildRustPackage rec {
57 maintainers = with maintainers; [ happysalada ];
53 maintainers = with maintainers; [ happysalada ];
58 platforms = platforms.unix;
54 platforms = platforms.unix;
60− passthru.updateScript = ./update.sh;
pkgs/applications/blockchains/solana/pin.jsondeleted−5
@@ -1,5 +0,0 @@
3− "sha256": "sha256-y7+ogMJ5E9E/+ZaTCHWOQWG7iR+BGuVqvlNUDT++Ghc=",
4− "cargoSha256": "sha256-7EULmmztt+INvSdluvvX5xbE2hWKAmHiW0MEYIPNPw4="
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
4−# TODO set to `verbose` or `extdebug` once implemented in oil
6−# we need failures inside of command subs to get the correct cargoSha256
7−shopt --unset inherit_errexit
9−const directory = $(dirname $0 | xargs realpath)
10−const owner = "solana-labs"
12−const latest_rev = $(curl -q https://api.github.com/repos/${owner}/${repo}/releases/latest | \
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"
20− const tarball_meta = $(nix-prefetch-github $owner $repo --rev "$latest_rev")
21− const tarball_hash = "sha256-$(echo $tarball_meta | jq -r '.sha256')"
23− jq ".version = \"$latest_version\" | \
24− .\"sha256\" = \"$tarball_hash\" | \
25− .\"cargoSha256\" = \"\"" $directory/pin.json | sponge $directory/pin.json
27− const new_cargo_sha256 = $(nix-build -A solana-testnet 2>&1 | \
32− jq ".cargoSha256 = \"$new_cargo_sha256\"" $directory/pin.json | sponge $directory/pin.json
pkgs/applications/blockchains/wasabibackend/default.nix+1−1
@@ -32,7 +32,7 @@ buildDotnetModule rec {
33 preConfigure = ''
33 preConfigure = ''
34 makeWrapperArgs+=(
34 makeWrapperArgs+=(
35− --chdir "$out/lib/${pname}"
35+ --run "cd $out/lib/${pname}"
pkgs/applications/blockchains/zcash/default.nix+6−6
@@ -1,24 +1,24 @@
1{ rust, rustPlatform, stdenv, lib, fetchFromGitHub, autoreconfHook, makeWrapper
1{ 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
3, libevent, utf8cpp, util-linux, withDaemon ? true, withMining ? true
3, libevent, utf8cpp, util-linux, withDaemon ? true, withMining ? true
4, withUtils ? true, withWallet ? true, withZmq ? true, zeromq
4, withUtils ? true, withWallet ? true, withZmq ? true, zeromq
7rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
7rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
8 pname = "zcash";
8 pname = "zcash";
9− version = "4.6.0-2";
9+ version = "4.6.0-1";
11 src = fetchFromGitHub {
11 src = fetchFromGitHub {
12 owner = "zcash";
12 owner = "zcash";
13 repo = "zcash";
13 repo = "zcash";
14 rev = "v${version}";
14 rev = "v${version}";
15− sha256 = "sha256-RvUa8CKPBFfsqzrJkPHePZMqpCfyVafrUbftMdTviHA=";
15+ sha256 = "sha256-YJ5ufo+LYbOTr9SyiEzzp1pcSx6+cHSvDLBOIcx9X+4=";
18− cargoSha256 = "sha256-qWimataBZ/rLDOLgetNfFAzi/psXcJV54b3WGm9k+b4=";
18+ cargoSha256 = "sha256-m/SBHv3BNYKkSXxHnCdVng3blbHrTc/HxX/nEIa1DnM=";
20 nativeBuildInputs = [ autoreconfHook cargo hexdump makeWrapper pkg-config ];
20 nativeBuildInputs = [ autoreconfHook cargo hexdump makeWrapper pkg-config ];
21− buildInputs = [ boost177 libevent libsodium utf8cpp ]
21+ buildInputs = [ boost175 libevent libsodium utf8cpp ]
22 ++ lib.optional withWallet db62
22 ++ lib.optional withWallet db62
23 ++ lib.optional withZmq zeromq;
23 ++ lib.optional withZmq zeromq;
@@ -37,7 +37,7 @@ rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
38 configureFlags = [
38 configureFlags = [
39 "--disable-tests"
39 "--disable-tests"
40− "--with-boost-libdir=${lib.getLib boost177}/lib"
40+ "--with-boost-libdir=${lib.getLib boost175}/lib"
41 "CXXFLAGS=-I${lib.getDev utf8cpp}/include/utf8cpp"
41 "CXXFLAGS=-I${lib.getDev utf8cpp}/include/utf8cpp"
42 "RUST_TARGET=${rust.toRustTargetSpec stdenv.hostPlatform}"
42 "RUST_TARGET=${rust.toRustTargetSpec stdenv.hostPlatform}"
43 ] ++ lib.optional (!withWallet) "--disable-wallet"
43 ] ++ lib.optional (!withWallet) "--disable-wallet"
pkgs/applications/editors/android-studio/common.nix+3−5
@@ -52,7 +52,6 @@
52, xkeyboard_config
52, xkeyboard_config
54, makeDesktopItem
54, makeDesktopItem
55−, tiling_wm # if we are using a tiling wm, need to set _JAVA_AWT_WM_NONREPARENTING in wrapper
@@ -81,7 +80,6 @@ let
81 --set-default JAVA_HOME "$out/jre" \
80 --set-default JAVA_HOME "$out/jre" \
82 --set ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \
81 --set ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \
83 --set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb" \
82 --set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb" \
84− ${lib.optionalString tiling_wm "--set _JAVA_AWT_WM_NONREPARENTING 1"} \
85 --set FONTCONFIG_FILE ${fontsConf} \
83 --set FONTCONFIG_FILE ${fontsConf} \
86 --prefix PATH : "${lib.makeBinPath [
84 --prefix PATH : "${lib.makeBinPath [
@@ -218,9 +216,9 @@ in runCommand
218 # source-code itself).
216 # source-code itself).
219 platforms = [ "x86_64-linux" ];
217 platforms = [ "x86_64-linux" ];
220 maintainers = with maintainers; rec {
218 maintainers = with maintainers; rec {
221− stable = [ ];
219+ stable = [ fabianhjr ];
222− beta = [ ];
220+ beta = [ fabianhjr ];
223− canary = [ ];
221+ canary = [ fabianhjr ];
224 dev = canary;
222 dev = canary;
225 }."${channel}";
223 }."${channel}";
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 }:
4 mkStudio = opts: callPackage (import ./common.nix opts) {
4 mkStudio = opts: callPackage (import ./common.nix opts) {
@@ -7,19 +7,18 @@ let
8 inherit (gnome2) GConf gnome_vfs;
8 inherit (gnome2) GConf gnome_vfs;
9 inherit buildFHSUserEnv;
9 inherit buildFHSUserEnv;
12 stableVersion = {
11 stableVersion = {
13− version = "2021.1.1.23"; # "Android Studio Bumblebee (2021.1.1 Patch 3)"
12+ version = "2021.1.1.21"; # "Android Studio Bumblebee (2021.1.1 Patch 1)"
14− sha256Hash = "1kxb19qf7bs5lyfgr8vamakp1nf2wlxlwwni1kihza67ib6hcxdk";
13+ sha256Hash = "PeMJIILfaunTlpR4EV76qQlTlZDcWoKes61qe9W9oqQ=";
16 betaVersion = {
15 betaVersion = {
17− version = "2021.2.1.11"; # "Android Studio Chipmunk (2021.2.1) Beta 4"
16+ version = "2021.2.1.8"; # "Android Studio Chipmunk (2021.2.1) Beta 1"
18− sha256Hash = "0in8x6v957y9hsnz5ak845pdpvgvnvlm0s6r9y8f27zkm947vbjd";
17+ sha256Hash = "bPfs4kw7czG9CbEgrzn0bQXdT03jyqPVqtaIuVBFSmc=";
20 latestVersion = { # canary & dev
19 latestVersion = { # canary & dev
21− version = "2021.3.1.7"; # "Android Studio Dolphin (2021.3.1) Canary 7"
20+ version = "2021.3.1.1"; # "Android Studio Dolphin (2021.3.1) Canary 1"
22− sha256Hash = "02jwy3q2ccs7l3snm8w40znzk54v2h1sljdr3d0yh7sy0qyn32k1";
21+ sha256Hash = "W3pNQBM7WdDScQo5b8q5Va5NTgl73uZu0ks/zDMb4aA=";
25 # Attributes are named by their corresponding release channels
24 # 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 }:
3stdenv.mkDerivation rec {
3stdenv.mkDerivation rec {
4 pname = "bluej";
4 pname = "bluej";
5 version = "5.0.3";
5 version = "5.0.3";
7 src = fetchurl {
6 src = fetchurl {
8 # We use the deb here. First instinct might be to go for the "generic" JAR
7 # We use the deb here. First instinct might be to go for the "generic" JAR
9 # download, but that is actually a graphical installer that is much harder
8 # download, but that is actually a graphical installer that is much harder
@@ -12,44 +11,18 @@ stdenv.mkDerivation rec {
12 sha256 = "sha256-OarqmptxZc7xEEYeoCVqHXkAvfzfSYx5nUp/iWPyoqw=";
11 sha256 = "sha256-OarqmptxZc7xEEYeoCVqHXkAvfzfSYx5nUp/iWPyoqw=";
15− nativeBuildInputs = [ wrapGAppsHook ];
14+ nativeBuildInputs = [ makeWrapper ];
16− buildInputs = [ glib ];
18− sourceRoot = ".";
16+ unpackPhase = ''
20− unpackCmdHooks+=(_tryDebData)
22− if ! [[ "$1" =~ \.deb$ ]]; then return 1; fi
23− ar xf "$1"
17+ ar xf $src
24− if ! [[ -e data.tar.xz ]]; then return 1; fi
25− unpackFile data.tar.xz
18+ tar xf data.tar.xz
29 installPhase = ''
21 installPhase = ''
32− if [ -n "$prefix" ]; then
33− mkdir -p "$prefix"
22+ mkdir -p $out
34− fi
23+ cp -r usr/* $out
38− if shopt -q dotglob; then dotglobOpt=$?; else dotglobOpt=$?; fi
40− for file in usr/*; do
43− if (( !dotglobOpt )); then shopt -u dotglob; fi
48− dontWrapGApps = true;
51 makeWrapper ${jdk}/bin/java $out/bin/bluej \
25 makeWrapper ${jdk}/bin/java $out/bin/bluej \
52− "''${gappsWrapperArgs[@]}" \
53 --add-flags "-Djavafx.embed.singleThread=true -Dawt.useSystemAAFontSettings=on -Xmx512M -cp \"$out/share/bluej/bluej.jar\" bluej.Boot"
26 --add-flags "-Djavafx.embed.singleThread=true -Dawt.useSystemAAFontSettings=on -Xmx512M -cp \"$out/share/bluej/bluej.jar\" bluej.Boot"
@@ -57,7 +30,7 @@ stdenv.mkDerivation rec {
57 description = "A simple integrated development environment for Java";
30 description = "A simple integrated development environment for Java";
58 homepage = "https://www.bluej.org/";
31 homepage = "https://www.bluej.org/";
59 license = licenses.gpl2ClasspathPlus;
32 license = licenses.gpl2ClasspathPlus;
60− maintainers = with maintainers; [ chvp ];
33+ maintainers = [ maintainers.chvp ];
61 platforms = platforms.unix;
34 platforms = platforms.unix;
pkgs/applications/editors/cudatext/default.nix+2−2
@@ -38,13 +38,13 @@ let
39stdenv.mkDerivation rec {
39stdenv.mkDerivation rec {
40 pname = "cudatext";
40 pname = "cudatext";
41− version = "1.163.0";
41+ version = "1.160.0";
43 src = fetchFromGitHub {
43 src = fetchFromGitHub {
44 owner = "Alexey-T";
44 owner = "Alexey-T";
45 repo = "CudaText";
45 repo = "CudaText";
46 rev = version;
46 rev = version;
47− sha256 = "sha256-4jGLyAE202GAjaypubKGW1edyKqOti/yTwstC/R94iE=";
47+ sha256 = "sha256-42V6RFa+mAXyaUuKeDQa9Voi1MjnzcVl+cOA65VabxM=";
50 postPatch = ''
50 postPatch = ''
pkgs/applications/editors/cudatext/deps.json+12−12
@@ -1,23 +1,23 @@
2 "EncConv": {
2 "EncConv": {
3 "owner": "Alexey-T",
3 "owner": "Alexey-T",
4− "rev": "2022.04.18",
4+ "rev": "2022.03.02",
5− "sha256": "sha256-UV07a9qNzd0JQWCq/eD0K9fA7kxAKj5OP7dOpECo8xw="
5+ "sha256": "sha256-fBN6Ix5CqhzMbNrWGn6nw6+JRDmEfqe6o8JGHERkiPE="
7 "ATBinHex-Lazarus": {
7 "ATBinHex-Lazarus": {
8 "owner": "Alexey-T",
8 "owner": "Alexey-T",
9− "rev": "2022.04.16",
9+ "rev": "2021.11.17",
10− "sha256": "sha256-7ye73KSpoPvvxBNwBC3uloufFE+448RDyNScumk1ViE="
10+ "sha256": "sha256-wdYH0sISFNx42zt07gLn9ANxcyrq3WrbRhWfTFgPQWw="
12 "ATFlatControls": {
12 "ATFlatControls": {
13 "owner": "Alexey-T",
13 "owner": "Alexey-T",
14− "rev": "2022.04.18",
14+ "rev": "2022.03.17",
15− "sha256": "sha256-Bp/pkbTPLiVaDSstzTaNjKb+msPw8Tuny75n/aYBpUc="
15+ "sha256": "sha256-zpirFZcqIT53tZhgxQGdwVB6pA98SQLr1o3f+Lhq2QY="
17 "ATSynEdit": {
17 "ATSynEdit": {
18 "owner": "Alexey-T",
18 "owner": "Alexey-T",
19− "rev": "2022.04.26",
19+ "rev": "2022.04.06",
20− "sha256": "sha256-aItWkjnFqxeyEywELEBkuvMH1zfI4jJFL10CexSktxU="
20+ "sha256": "sha256-EnPOAl1qsdcYzmUgT5rSYqY/xOLSfDcMNCXIG8LC4H0="
22 "ATSynEdit_Cmp": {
22 "ATSynEdit_Cmp": {
23 "owner": "Alexey-T",
23 "owner": "Alexey-T",
@@ -26,13 +26,13 @@
27 "EControl": {
27 "EControl": {
28 "owner": "Alexey-T",
28 "owner": "Alexey-T",
29− "rev": "2022.04.21",
29+ "rev": "2022.03.28",
30− "sha256": "sha256-le6ulGFUNjeipYQKzVFezFb9u/0IcQcu5BMxFaIZdyw="
30+ "sha256": "sha256-jh3lqisiPNMxCapP6O5oJdUL3PLQ3JyomtgWix+bML0="
32 "ATSynEdit_Ex": {
32 "ATSynEdit_Ex": {
33 "owner": "Alexey-T",
33 "owner": "Alexey-T",
34− "rev": "2022.04.11",
34+ "rev": "2022.03.28",
35− "sha256": "sha256-wzE6lNhrXsBOP+Zx+qAcj6Hhf87qqDaqKf9up7I3ZUo="
35+ "sha256": "sha256-TpAaL7/bhnrQgAq1mUTdEWXecSmznWy/iAw+TMMrQGo="
37 "Python-for-Lazarus": {
37 "Python-for-Lazarus": {
38 "owner": "Alexey-T",
38 "owner": "Alexey-T",
pkgs/applications/editors/emacs/27.nixnew file+16
@@ -0,0 +1,16 @@
1+import ./generic.nix (rec {
3+ sha256 = "sha256-tKfMTnjmPzeGJOCRkhW5EK9bsqCvyBn60pgnLp9Awbk=";
4+ patches = 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=";
12+ url = "https://src.fedoraproject.org/rpms/emacs/raw/181aafcdb7ee2fded9fce4cfc448f27edccc927f/f/emacs-glibc-2.34.patch";
13+ sha256 = "sha256-2o3C/jhZPl2OW/LmVPt/fhdwbS9NOdF9lVEF1Kn9aEk=";
pkgs/applications/editors/emacs/28.nixdeleted−5
@@ -1,5 +0,0 @@
1−import ./generic.nix (rec {
3− sha256 = "sha256-D33wnlxhx0LyG9WZaQDj2II3tG0HcJdZTC4dSA3lrgY=";
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
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 }:
3+stdenv.mkDerivation rec {
8+ url = "mirror://sourceforge/cedet/cedet-${version}.tar.gz";
9+ sha256 = "0p2bwlpwwa019axvgj09xkxbr53j0pq23d46s4la9jfhl47nbh22";
12+ buildInputs = [ emacs python ];
15+ checkPhase = "make utest";
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/"*
22+ mkdir -p "$out/share/info"
23+ cp -v */*.info* */*/*.info* "$out/share/info"
27+ description = "CEDET, a Collection of Emacs Development Environment Tools";
30+ CEDET is a collection of tools written with the end goal of
31+ creating an advanced development environment in Emacs.
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.
40+ CEDET includes EIEIO (Enhanced Implementation of Emacs
41+ Interpreted Objects), Semantic, SRecode, Speedbar, EDE (Emacs
42+ Development Environment), and COGRE (COnnected GRaph Editor).
45+ license = lib.licenses.gpl2Plus;
47+ homepage = "http://cedet.sourceforge.net/";
49+ # Fails with `semantic-idle.el:42:1:Error: Invalid function: class-p`
pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix+45−124
@@ -234,10 +234,10 @@
234 elpaBuild {
234 elpaBuild {
235 pname = "auctex";
235 pname = "auctex";
236 ename = "auctex";
236 ename = "auctex";
237− version = "13.1.2";
237+ version = "13.1.1";
238 src = fetchurl {
238 src = fetchurl {
239− url = "https://elpa.gnu.org/packages/auctex-13.1.2.tar";
239+ url = "https://elpa.gnu.org/packages/auctex-13.1.1.tar";
240− sha256 = "0j79y7iz0g3i36w5l91l2dljs8b4sx42f7q25z2963mvhfvrbp10";
240+ sha256 = "193sqq2wiq3lg99m8hifl9rjxdazpy638r99sqvmxmkfm98cr34r";
242 packageRequires = [ emacs ];
242 packageRequires = [ emacs ];
@@ -309,10 +309,10 @@
309 elpaBuild {
309 elpaBuild {
310 pname = "bbdb";
310 pname = "bbdb";
311 ename = "bbdb";
311 ename = "bbdb";
312− version = "3.2.2.1";
312+ version = "3.2.1";
313 src = fetchurl {
313 src = fetchurl {
314− url = "https://elpa.gnu.org/packages/bbdb-3.2.2.1.tar";
314+ url = "https://elpa.gnu.org/packages/bbdb-3.2.1.tar";
315− sha256 = "060nd6vhwwh56jc1mvmyj6mn6kx7zgmbhrkfv9sqdx7h96bcrsbh";
315+ sha256 = "01vsnifs47krq1srgdkk9agbv3p2fykl9nydr4nrfjxbqpnyh3ij";
317 packageRequires = [ cl-lib emacs ];
317 packageRequires = [ cl-lib emacs ];
@@ -384,10 +384,10 @@
384 elpaBuild {
384 elpaBuild {
385 pname = "boxy";
385 pname = "boxy";
386 ename = "boxy";
386 ename = "boxy";
387− version = "1.0.5";
387+ version = "1.0.4";
388 src = fetchurl {
388 src = fetchurl {
389− url = "https://elpa.gnu.org/packages/boxy-1.0.5.tar";
389+ url = "https://elpa.gnu.org/packages/boxy-1.0.4.tar";
390− sha256 = "0g608nhg160p9gflw52h3247x35r0g6bl89yq35jbsc7fnw6m5ry";
390+ sha256 = "0cwzjyj8yjg13b63va6pnj01m6kc5g3zx69c9w2ysl2wk24zn6dz";
392 packageRequires = [ emacs ];
392 packageRequires = [ emacs ];
@@ -654,21 +654,6 @@
654 license = lib.licenses.free;
654 license = lib.licenses.free;
657− comint-mime = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
659− pname = "comint-mime";
660− ename = "comint-mime";
663− url = "https://elpa.gnu.org/packages/comint-mime-0.1.tar";
664− sha256 = "1ak0ylqdslsb6a64dkpvappdbqnl1i8lc17jla9pqqs7r16sh3n0";
666− packageRequires = [ emacs ];
668− homepage = "https://elpa.gnu.org/packages/comint-mime.html";
669− license = lib.licenses.free;
672 compact-docstrings = callPackage ({ elpaBuild, fetchurl, lib }:
657 compact-docstrings = callPackage ({ elpaBuild, fetchurl, lib }:
673 elpaBuild {
658 elpaBuild {
674 pname = "compact-docstrings";
659 pname = "compact-docstrings";
@@ -752,21 +737,6 @@
752 license = lib.licenses.free;
737 license = lib.licenses.free;
755− compat = callPackage ({ elpaBuild, emacs, fetchurl, lib, nadvice }:
759− version = "28.1.0.3";
761− url = "https://elpa.gnu.org/packages/compat-28.1.0.3.tar";
762− sha256 = "12h06ab57hhjq434cf39g69ain6dpqq8a0h9xc91kvjsiz9chqhd";
764− packageRequires = [ emacs nadvice ];
766− homepage = "https://elpa.gnu.org/packages/compat.html";
767− license = lib.licenses.free;
770 consult = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
740 consult = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
771 elpaBuild {
741 elpaBuild {
772 pname = "consult";
742 pname = "consult";
@@ -801,10 +771,10 @@
801 elpaBuild {
771 elpaBuild {
802 pname = "corfu";
772 pname = "corfu";
803 ename = "corfu";
773 ename = "corfu";
804− version = "0.21";
774+ version = "0.20";
805 src = fetchurl {
775 src = fetchurl {
806− url = "https://elpa.gnu.org/packages/corfu-0.21.tar";
776+ url = "https://elpa.gnu.org/packages/corfu-0.20.tar";
807− sha256 = "1jabx61ajiysd3yqkraanlx9gnkz1qs6d94wjc5a2ran58iyknyr";
777+ sha256 = "03yycimbqs4ixz7lxp7f1b4fipq6kl2bbjnl87r0n9x8mzfslbdl";
809 packageRequires = [ emacs ];
779 packageRequires = [ emacs ];
@@ -906,10 +876,10 @@
906 elpaBuild {
876 elpaBuild {
907 pname = "csv-mode";
877 pname = "csv-mode";
908 ename = "csv-mode";
878 ename = "csv-mode";
909− version = "1.19";
879+ version = "1.18";
910 src = fetchurl {
880 src = fetchurl {
911− url = "https://elpa.gnu.org/packages/csv-mode-1.19.tar";
881+ url = "https://elpa.gnu.org/packages/csv-mode-1.18.tar";
912− sha256 = "0sslxlnw10ba6m711p4ps4zsfjz56dsp2945ga5z0y8d860pliqh";
882+ sha256 = "0fv7hvsfbc9n4hsgg3ywk8qf4ig5a986zfq0lwnjj8pcz1bpmrxj";
914 packageRequires = [ cl-lib emacs ];
884 packageRequires = [ cl-lib emacs ];
@@ -981,10 +951,10 @@
981 elpaBuild {
951 elpaBuild {
982 pname = "debbugs";
952 pname = "debbugs";
983 ename = "debbugs";
953 ename = "debbugs";
984− version = "0.32";
954+ version = "0.31";
985 src = fetchurl {
955 src = fetchurl {
986− url = "https://elpa.gnu.org/packages/debbugs-0.32.tar";
956+ url = "https://elpa.gnu.org/packages/debbugs-0.31.tar";
987− sha256 = "1xp3mj3ndaljma0g7x9abziphgi2a6j8k1v52sb8xwgn4p5gdvby";
957+ sha256 = "11vdjrn5m5g6pirw8jv0602fbwwgdhazfrrwxxplii8x02gqk0sr";
989 packageRequires = [ emacs soap-client ];
959 packageRequires = [ emacs soap-client ];
@@ -2303,10 +2273,10 @@
2303 elpaBuild {
2273 elpaBuild {
2304 pname = "kind-icon";
2274 pname = "kind-icon";
2305 ename = "kind-icon";
2275 ename = "kind-icon";
2306− version = "0.1.5";
2276+ version = "0.1.4";
2307 src = fetchurl {
2277 src = fetchurl {
2308− url = "https://elpa.gnu.org/packages/kind-icon-0.1.5.tar";
2278+ url = "https://elpa.gnu.org/packages/kind-icon-0.1.4.tar";
2309− sha256 = "0qajj89vkgc9gbgff6akzll53jy0kgkv6c9jvwpl32rbg8v0wp63";
2279+ sha256 = "00pyvnq4dx51l2wbhvm6k6cx5xmy32j4h1lkr5kr8s3j5w83ip25";
2311 packageRequires = [ emacs svg-lib ];
2281 packageRequires = [ emacs svg-lib ];
2312 meta = {
2282 meta = {
@@ -2404,21 +2374,6 @@
2404 license = lib.licenses.free;
2374 license = lib.licenses.free;
2407− lin = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
2413− url = "https://elpa.gnu.org/packages/lin-0.3.0.tar";
2414− sha256 = "08h7rh8gidn9mn031mg8lvhxswv1hxn4i0ffk2vxygfbp9jxfi61";
2416− packageRequires = [ emacs ];
2418− homepage = "https://elpa.gnu.org/packages/lin.html";
2419− license = lib.licenses.free;
2422 lmc = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
2377 lmc = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
2423 elpaBuild {
2378 elpaBuild {
2424 pname = "lmc";
2379 pname = "lmc";
@@ -2498,10 +2453,10 @@
2498 elpaBuild {
2453 elpaBuild {
2499 pname = "logos";
2454 pname = "logos";
2500 ename = "logos";
2455 ename = "logos";
2501− version = "0.3.1";
2456+ version = "0.2.0";
2502 src = fetchurl {
2457 src = fetchurl {
2503− url = "https://elpa.gnu.org/packages/logos-0.3.1.tar";
2458+ url = "https://elpa.gnu.org/packages/logos-0.2.0.tar";
2504− sha256 = "0wwvp47bmc7w3jvh480vc31agf0s39mvgk0h550z6a1wzlrfzyh9";
2459+ sha256 = "0cqmgvgyyn656rg60bbnxr2flmnw9h4z5i2w98bsf4krlp3s4i6x";
2506 packageRequires = [ emacs ];
2461 packageRequires = [ emacs ];
2507 meta = {
2462 meta = {
@@ -2712,10 +2667,10 @@
2712 elpaBuild {
2667 elpaBuild {
2713 pname = "modus-themes";
2668 pname = "modus-themes";
2714 ename = "modus-themes";
2669 ename = "modus-themes";
2715− version = "2.3.0";
2670+ version = "2.2.0";
2716 src = fetchurl {
2671 src = fetchurl {
2717− url = "https://elpa.gnu.org/packages/modus-themes-2.3.0.tar";
2672+ url = "https://elpa.gnu.org/packages/modus-themes-2.2.0.tar";
2718− sha256 = "028c1z4p1bbgf34fml4i0prihxn44x288iyprz9gxrp7x3gl05n8";
2673+ sha256 = "1vgwr9q16d3hjwmqljmmzlpn177gvwbk3wg4l1fmgc5bpb7k78ky";
2720 packageRequires = [ emacs ];
2675 packageRequires = [ emacs ];
2721 meta = {
2676 meta = {
@@ -2871,10 +2826,10 @@
2871 elpaBuild {
2826 elpaBuild {
2872 pname = "nano-modeline";
2827 pname = "nano-modeline";
2873 ename = "nano-modeline";
2828 ename = "nano-modeline";
2874− version = "0.6";
2829+ version = "0.5";
2875 src = fetchurl {
2830 src = fetchurl {
2876− url = "https://elpa.gnu.org/packages/nano-modeline-0.6.tar";
2831+ url = "https://elpa.gnu.org/packages/nano-modeline-0.5.tar";
2877− sha256 = "1cxycfx4ic2hzfvp3d2z0a5xjg97p49yla3a1qxw1dldcjg9lfg0";
2832+ sha256 = "0f6xgrxykd5jmlzf9xmywh0jc2jfq698m4nqk60h40dm6pi0gfi2";
2879 packageRequires = [ emacs ];
2834 packageRequires = [ emacs ];
2880 meta = {
2835 meta = {
@@ -3445,10 +3400,10 @@
3445 elpaBuild {
3400 elpaBuild {
3446 pname = "pulsar";
3401 pname = "pulsar";
3447 ename = "pulsar";
3402 ename = "pulsar";
3448− version = "0.3.0";
3403+ version = "0.2.0";
3449 src = fetchurl {
3404 src = fetchurl {
3450− url = "https://elpa.gnu.org/packages/pulsar-0.3.0.tar";
3405+ url = "https://elpa.gnu.org/packages/pulsar-0.2.0.tar";
3451− sha256 = "0dbfj7789qp4l25y8qazmx5kqgjgqjsnk24rwcf6qann4cq6wgnq";
3406+ sha256 = "0vil6gv7w6d77hksc2pbrwjdd8dp3ka4kf5kihx04r95032pky62";
3453 packageRequires = [ emacs ];
3408 packageRequires = [ emacs ];
3454 meta = {
3409 meta = {
@@ -3740,10 +3695,10 @@
3740 elpaBuild {
3695 elpaBuild {
3741 pname = "rec-mode";
3696 pname = "rec-mode";
3742 ename = "rec-mode";
3697 ename = "rec-mode";
3743− version = "1.8.3";
3698+ version = "1.8.2";
3744 src = fetchurl {
3699 src = fetchurl {
3745− url = "https://elpa.gnu.org/packages/rec-mode-1.8.3.tar";
3700+ url = "https://elpa.gnu.org/packages/rec-mode-1.8.2.tar";
3746− sha256 = "0lkmvvdj4xx3qhxqggizrcdawav0accyrza2wmhfdq88g2zh5575";
3701+ sha256 = "06mjj1la2v8zdhsflj3mwcp7qnkj7gxzm8wbk2pli1h8vnq2zvd0";
3748 packageRequires = [ emacs ];
3703 packageRequires = [ emacs ];
3749 meta = {
3704 meta = {
@@ -4350,10 +4305,10 @@
4350 elpaBuild {
4305 elpaBuild {
4351 pname = "taxy";
4306 pname = "taxy";
4352 ename = "taxy";
4307 ename = "taxy";
4353− version = "0.9";
4308+ version = "0.8";
4354 src = fetchurl {
4309 src = fetchurl {
4355− url = "https://elpa.gnu.org/packages/taxy-0.9.tar";
4310+ url = "https://elpa.gnu.org/packages/taxy-0.8.tar";
4356− sha256 = "1nzafs3yvcnmg07zi345n2yvjsw9wixlybzibnhf5k6jnd0vvpjh";
4311+ sha256 = "00pc6lh35gj8vzcsn17fyazb9jsc4m6nr7cvb32w02isadv8qd3m";
4358 packageRequires = [ emacs ];
4313 packageRequires = [ emacs ];
4359 meta = {
4314 meta = {
@@ -4361,25 +4316,6 @@
4361 license = lib.licenses.free;
4316 license = lib.licenses.free;
4364− taxy-magit-section = callPackage ({ elpaBuild
4370− pname = "taxy-magit-section";
4371− ename = "taxy-magit-section";
4374− url = "https://elpa.gnu.org/packages/taxy-magit-section-0.9.1.tar";
4375− sha256 = "0ybkz5nqjdrg2z9bfd07xg4k49hrl26vsrwz2vqpfbsqqg5vr4pr";
4377− packageRequires = [ emacs magit-section ];
4379− homepage = "https://elpa.gnu.org/packages/taxy-magit-section.html";
4380− license = lib.licenses.free;
4383 temp-buffer-browse = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
4319 temp-buffer-browse = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
4384 elpaBuild {
4320 elpaBuild {
4385 pname = "temp-buffer-browse";
4321 pname = "temp-buffer-browse";
@@ -4463,10 +4399,10 @@
4463 elpaBuild {
4399 elpaBuild {
4464 pname = "tramp";
4400 pname = "tramp";
4465 ename = "tramp";
4401 ename = "tramp";
4466− version = "2.5.2.3";
4402+ version = "2.5.2.2";
4467 src = fetchurl {
4403 src = fetchurl {
4468− url = "https://elpa.gnu.org/packages/tramp-2.5.2.3.tar";
4404+ url = "https://elpa.gnu.org/packages/tramp-2.5.2.2.tar";
4469− sha256 = "1nv603jrvql03z2pfg74yq0hp7963gagg27fksc456mpmz4p7ajq";
4405+ sha256 = "104nn6xdmcviqqv4cx5llhwj1sh4q04w3h9s8gimmi2kg0z8s36r";
4471 packageRequires = [ emacs ];
4407 packageRequires = [ emacs ];
4472 meta = {
4408 meta = {
@@ -4534,21 +4470,6 @@
4534 license = lib.licenses.free;
4470 license = lib.licenses.free;
4537− transient-cycles = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
4539− pname = "transient-cycles";
4540− ename = "transient-cycles";
4543− url = "https://elpa.gnu.org/packages/transient-cycles-1.0.tar";
4544− sha256 = "1gad71kqdw6rm9dy5rxm85l4a5qibs20ijl8bpaxbbq37j44lvjb";
4546− packageRequires = [ emacs ];
4548− homepage = "https://elpa.gnu.org/packages/transient-cycles.html";
4549− license = lib.licenses.free;
4552 trie = callPackage ({ elpaBuild, fetchurl, heap, lib, tNFA }:
4473 trie = callPackage ({ elpaBuild, fetchurl, heap, lib, tNFA }:
4553 elpaBuild {
4474 elpaBuild {
4554 pname = "trie";
4475 pname = "trie";
@@ -4774,10 +4695,10 @@
4774 elpaBuild {
4695 elpaBuild {
4775 pname = "vertico";
4696 pname = "vertico";
4776 ename = "vertico";
4697 ename = "vertico";
4777− version = "0.22";
4698+ version = "0.21";
4778 src = fetchurl {
4699 src = fetchurl {
4779− url = "https://elpa.gnu.org/packages/vertico-0.22.tar";
4700+ url = "https://elpa.gnu.org/packages/vertico-0.21.tar";
4780− sha256 = "1m8r2iqyyvym7a47awh00aq7hld54dklrx4ibwvnmhpxl0fzh7g8";
4701+ sha256 = "0aw3hkr46zghvyp7s2b6ziqavsf1zpml4bbxcvs4kvm05qa0y1hv";
4782 packageRequires = [ emacs ];
4703 packageRequires = [ emacs ];
4783 meta = {
4704 meta = {
pkgs/applications/editors/emacs/elisp-packages/ement/default.nix+3−11
@@ -5,31 +5,23 @@
14trivialBuild {
10trivialBuild {
15 pname = "ement";
11 pname = "ement";
16− version = "unstable-2022-04-22";
12+ version = "unstable-2021-10-08";
18 src = fetchFromGitHub {
14 src = fetchFromGitHub {
19 owner = "alphapapa";
15 owner = "alphapapa";
20 repo = "ement.el";
16 repo = "ement.el";
21− rev = "70da19e4c9210d362b1d6d9c17ab2c034a03250d";
17+ rev = "c951737dc855604aba389166bb0e7366afadc533";
22− sha256 = "sha256-Pxul0WrtyH2XZzF0fOOitLc3x/kc+Qc11RDH0n+Hm04=";
18+ sha256 = "00iwwz4hzg4g59wrb5df6snqz3ppvrsadhfp61w1pa8gvg2z9bvy";
25 packageRequires = [
21 packageRequires = [
35 patches = [
27 patches = [
pkgs/applications/editors/emacs/elisp-packages/header-file-mode/default.nixdeleted−30
@@ -1,30 +0,0 @@
7− pname = "header-file-mode";
8− version = "unstable-2022-04-19";
10− src = fetchFromGitHub {
12− repo = "header-file-mode";
13− rev = "fdf1930730e1b0c3f82490099a1325805491eff5";
14− sha256 = "sha256-FJgRI6RLQk9osh7d+YRfrV5CoGCDx2cZvsjAWlm969c=";
18− sourceRoot="$sourceRoot/lisp"
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.
26− license = lib.licenses.gpl3Plus;
27− platforms = lib.platforms.all;
28− maintainers = with lib.maintainers; [ aidalgol ];
pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix+1−5
@@ -178,8 +178,6 @@
179 git-undo = callPackage ./git-undo { };
179 git-undo = callPackage ./git-undo { };
181− header-file-mode = callPackage ./header-file-mode { };
183 helm-words = callPackage ./helm-words { };
181 helm-words = callPackage ./helm-words { };
185 isearch-plus = callPackage ./isearch-plus { };
183 isearch-plus = callPackage ./isearch-plus { };
@@ -233,12 +231,10 @@
234 sv-kalender = callPackage ./sv-kalender { };
232 sv-kalender = callPackage ./sv-kalender { };
236− tree-sitter-langs = callPackage ./tree-sitter-langs { final = self; };
237− tsc = callPackage ./tsc { };
239 youtube-dl = callPackage ./youtube-dl { };
234 youtube-dl = callPackage ./youtube-dl { };
241 # From old emacsPackages (pre emacsPackagesNg)
236 # From old emacsPackages (pre emacsPackagesNg)
237+ cedet = callPackage ./cedet { };
242 cedille = callPackage ./cedille { cedille = pkgs.cedille; };
238 cedille = callPackage ./cedille { cedille = pkgs.cedille; };
243 color-theme-solarized = callPackage ./color-theme-solarized { };
239 color-theme-solarized = callPackage ./color-theme-solarized { };
244 session-management-for-emacs = callPackage ./session-management-for-emacs { };
240 session-management-for-emacs = callPackage ./session-management-for-emacs { };
pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix+32−26
@@ -49,10 +49,10 @@
49 elpaBuild {
49 elpaBuild {
50 pname = "annotate";
50 pname = "annotate";
51 ename = "annotate";
51 ename = "annotate";
52− version = "1.5.3";
52+ version = "1.5.1";
53 src = fetchurl {
53 src = fetchurl {
54− url = "https://elpa.nongnu.org/nongnu/annotate-1.5.3.tar";
54+ url = "https://elpa.nongnu.org/nongnu/annotate-1.5.1.tar";
55− sha256 = "0d5lqaj1bqckvjpwxqglzrhk8fm03n19lxwm74jxfl1lkxq4dw3x";
55+ sha256 = "13xf8izl99y1aqwk9k9hgiwggibjycjh2lhwg0wk5hm7zp6gm8mx";
57 packageRequires = [];
57 packageRequires = [];
@@ -219,10 +219,10 @@
219 elpaBuild {
219 elpaBuild {
220 pname = "buttercup";
220 pname = "buttercup";
221 ename = "buttercup";
221 ename = "buttercup";
222− version = "1.25";
222+ version = "1.24";
223 src = fetchurl {
223 src = fetchurl {
224− url = "https://elpa.nongnu.org/nongnu/buttercup-1.25.tar";
224+ url = "https://elpa.nongnu.org/nongnu/buttercup-1.24.tar";
225− sha256 = "1iadgn56sfakv927g9bk7fq7yjg0f3r10ygrmjpy46vgvfz0fqs6";
225+ sha256 = "1ch949xf03gw9r5v32akx7hqnq7zrp3qr3gcic5b52yl5nmy8mhn";
227 packageRequires = [ emacs ];
227 packageRequires = [ emacs ];
@@ -469,10 +469,10 @@
469 elpaBuild {
469 elpaBuild {
470 pname = "elpher";
470 pname = "elpher";
471 ename = "elpher";
471 ename = "elpher";
472− version = "3.3.3";
472+ version = "3.3.2";
473 src = fetchurl {
473 src = fetchurl {
474− url = "https://elpa.nongnu.org/nongnu/elpher-3.3.3.tar";
474+ url = "https://elpa.nongnu.org/nongnu/elpher-3.3.2.tar";
475− sha256 = "0yaf6g424g6dngg0acbhlhd24k77bl5h82wiw98f3731xdad174r";
475+ sha256 = "1w34agw5qfgbpk6s2bllvgkj4wm1rlcyn33yfgj2xr4a5gfcs30a";
477 packageRequires = [ emacs ];
477 packageRequires = [ emacs ];
@@ -602,10 +602,10 @@
602 elpaBuild {
602 elpaBuild {
603 pname = "evil-matchit";
603 pname = "evil-matchit";
604 ename = "evil-matchit";
604 ename = "evil-matchit";
605− version = "2.4.3";
605+ version = "2.4.1";
606 src = fetchurl {
606 src = fetchurl {
607− url = "https://elpa.nongnu.org/nongnu/evil-matchit-2.4.3.tar";
607+ url = "https://elpa.nongnu.org/nongnu/evil-matchit-2.4.1.tar";
608− sha256 = "079qbx6f4clh5ngnrga016h0q2vf7afx9irsa06pishfs94pl4qn";
608+ sha256 = "0ybw0jfjkwiz4ln3z5pizbw5d9d612crpk410czcyi8adyj018nc";
610 packageRequires = [ emacs evil ];
610 packageRequires = [ emacs evil ];
@@ -617,10 +617,10 @@
617 elpaBuild {
617 elpaBuild {
618 pname = "evil-nerd-commenter";
618 pname = "evil-nerd-commenter";
619 ename = "evil-nerd-commenter";
619 ename = "evil-nerd-commenter";
620− version = "3.5.7";
620+ version = "3.5.6";
621 src = fetchurl {
621 src = fetchurl {
622− url = "https://elpa.nongnu.org/nongnu/evil-nerd-commenter-3.5.7.tar";
622+ url = "https://elpa.nongnu.org/nongnu/evil-nerd-commenter-3.5.6.tar";
623− sha256 = "1lar8hy9n29gv4cijalyy2ba23y0kyh9ycnsi5dzjs68pk3y4hca";
623+ sha256 = "0bv7s2jcgi3ma3dspczy7jrb55vqkhsz0rq0nz14qiay5j9dwghd";
625 packageRequires = [ emacs ];
625 packageRequires = [ emacs ];
@@ -1096,10 +1096,10 @@
1096 elpaBuild {
1096 elpaBuild {
1097 pname = "highlight-parentheses";
1097 pname = "highlight-parentheses";
1098 ename = "highlight-parentheses";
1098 ename = "highlight-parentheses";
1099− version = "2.1.1";
1099+ version = "2.1.0";
1100 src = fetchurl {
1100 src = fetchurl {
1101− url = "https://elpa.nongnu.org/nongnu/highlight-parentheses-2.1.1.tar";
1101+ url = "https://elpa.nongnu.org/nongnu/highlight-parentheses-2.1.0.tar";
1102− sha256 = "1r0sk4da3apgbik8d84vknwna45k1ks3n0s1fspj5c88b4r7xnsx";
1102+ sha256 = "1rsixbvglar0k0x24xkxw80sx9i85q48jdzx6wbyjz2clz974ja5";
1104 packageRequires = [ emacs ];
1104 packageRequires = [ emacs ];
1105 meta = {
1105 meta = {
@@ -1635,16 +1635,22 @@
1635 license = lib.licenses.free;
1635 license = lib.licenses.free;
1638− pacmacs = callPackage ({ dash, elpaBuild, emacs, fetchurl, lib }:
1638+ pacmacs = callPackage ({ cl-lib ? null
1639 elpaBuild {
1645 elpaBuild {
1640 pname = "pacmacs";
1646 pname = "pacmacs";
1641 ename = "pacmacs";
1647 ename = "pacmacs";
1642− version = "0.1.1";
1648+ version = "0.1";
1643 src = fetchurl {
1649 src = fetchurl {
1644− url = "https://elpa.nongnu.org/nongnu/pacmacs-0.1.1.tar";
1650+ url = "https://elpa.nongnu.org/nongnu/pacmacs-0.1.tar";
1645− sha256 = "0ni4jmvkdqiiw2xync6raxvq4gr2hc7b65cbil66z7g7vlw5y56y";
1651+ sha256 = "0vhxxnk8n4h2klvr4xahsm845dwds895fxxgcs7dz2262g9myd93";
1647− packageRequires = [ dash emacs ];
1653+ packageRequires = [ cl-lib dash emacs f ];
1648 meta = {
1654 meta = {
1649 homepage = "https://elpa.gnu.org/packages/pacmacs.html";
1655 homepage = "https://elpa.gnu.org/packages/pacmacs.html";
1650 license = lib.licenses.free;
1656 license = lib.licenses.free;
@@ -1903,10 +1909,10 @@
1903 elpaBuild {
1909 elpaBuild {
1904 pname = "shellcop";
1910 pname = "shellcop";
1905 ename = "shellcop";
1911 ename = "shellcop";
1906− version = "0.0.8";
1912+ version = "0.0.7";
1907 src = fetchurl {
1913 src = fetchurl {
1908− url = "https://elpa.nongnu.org/nongnu/shellcop-0.0.8.tar";
1914+ url = "https://elpa.nongnu.org/nongnu/shellcop-0.0.7.tar";
1909− sha256 = "00kj1zadrqnikvwrxd6ma0c8r1jf70c1zaqr03s0g49h4lz6m2da";
1915+ sha256 = "1zwj22bf37ffdbz5iqkwz5mzzsxffhj521dmwkgp5sh4r1fwip8a";
1911 packageRequires = [ emacs ];
1917 packageRequires = [ emacs ];
1912 meta = {
1918 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/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/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/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+5−16
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
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+3−3
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/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/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/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/giac/default.nix+16−12
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-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+2−2
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/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+2−2
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-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−20
This diff is too big to show here.
pkgs/desktops/gnome/extensions/extensionRenames.nix+3−6
This diff is too big to show here.
pkgs/desktops/gnome/extensions/extensions.json+156−171
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/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/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/granite/7/default.nixdeleted−73
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/versions.toml+3−5
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+1−1
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−1
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/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/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+3−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/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/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+151
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/extension.nix+2−6
This diff is too big to show here.
pkgs/development/libraries/science/math/cudnn/generic.nix+32−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/magma/default.nix+19−2
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/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+6−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/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/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/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+1−1
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+2−2
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/av/default.nix+2−8
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+2−2
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/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-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/default.nix+2−4
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/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/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/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/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/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+2−6
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+4−4
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/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/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/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/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+3−3
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/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/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.
pkgs/development/tools/metals/default.nix+11−6
This diff is too big to show here.
pkgs/development/tools/minizinc/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/misc/acr/default.nix−33
This diff is too big to show here.
pkgs/development/tools/misc/binutils/0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch−137
This diff is too big to show here.
pkgs/development/tools/misc/binutils/0001-libtool.m4-update-macos-version-detection-block.patch−47
This diff is too big to show here.
pkgs/development/tools/misc/binutils/CVE-2020-35448.patch+77
This diff is too big to show here.
pkgs/development/tools/misc/binutils/CVE-2021-3487.patch+73
This diff is too big to show here.
pkgs/development/tools/misc/binutils/CVE-2021-45078.patch+239
This diff is too big to show here.
pkgs/development/tools/misc/binutils/bfd-elf-Dont-read-non-existing-secondary-relocs.patch+26
This diff is too big to show here.
pkgs/development/tools/misc/binutils/build-components-separately.patch+38−29
This diff is too big to show here.
pkgs/development/tools/misc/binutils/default.nix+101−117
This diff is too big to show here.
pkgs/development/tools/misc/binutils/disambiguate-arm-targets.patch+23
This diff is too big to show here.
pkgs/development/tools/misc/binutils/gold-Update-GNU_PROPERTY_X86_XXX-macros.patch+292
This diff is too big to show here.
pkgs/development/tools/misc/binutils/mips64-default-n64.patch−82
This diff is too big to show here.
pkgs/development/tools/misc/blackfire/default.nix+27−67
This diff is too big to show here.
pkgs/development/tools/misc/blackfire/php-probe.nix+16−158
This diff is too big to show here.
pkgs/development/tools/misc/circleci-cli/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/misc/clojure-lsp/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/misc/d-feet/default.nix+1−1
This diff is too big to show here.
pkgs/development/tools/misc/devspace/default.nix−37
This diff is too big to show here.
pkgs/development/tools/misc/go-license-detector/default.nix+7−8
This diff is too big to show here.
pkgs/development/tools/misc/libtool/libtool2-macos11.patch+32
This diff is too big to show here.
pkgs/development/tools/misc/libtool/libtool2.nix+9−17
This diff is too big to show here.
pkgs/development/tools/misc/mkcert/default.nix+3−3
This diff is too big to show here.
pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix−1
This diff is too big to show here.
pkgs/development/tools/misc/patchelf/0.13.nix−23
This diff is too big to show here.
pkgs/development/tools/misc/patchelf/default.nix+1−1
This diff is too big to show here.
pkgs/development/tools/misc/pkgconf/default.nix+16−29
This diff is too big to show here.
pkgs/development/tools/misc/saleae-logic-2/default.nix+2−2
This diff is too big to show here.
pkgs/development/tools/misc/sccache/default.nix+1−2
This diff is too big to show here.
pkgs/development/tools/misc/semver-tool/default.nix−1
This diff is too big to show here.
pkgs/development/tools/misc/universal-ctags/default.nix+1−1
This diff is too big to show here.
pkgs/development/tools/mockgen/default.nix+3−8
This diff is too big to show here.
pkgs/development/tools/mold/default.nix+3−5
This diff is too big to show here.
pkgs/development/tools/mustache-go/default.nix+6−9
This diff is too big to show here.
pkgs/development/tools/mysql-shell/default.nix−154
This diff is too big to show here.
pkgs/development/tools/mysql-shell/fido2.cmake.patch−25
This diff is too big to show here.
pkgs/development/tools/nsis/default.nix−1
This diff is too big to show here.
pkgs/development/tools/ocaml/cppo/ocamlbuild.nix+1−1
This diff is too big to show here.
pkgs/development/tools/ocaml/dune/1.nix+1−1
This diff is too big to show here.
pkgs/development/tools/ocaml/dune/3.nix+2−2
This diff is too big to show here.
pkgs/development/tools/ocaml/merlin/4.x.nix+1−1
This diff is too big to show here.
pkgs/development/tools/omnisharp-roslyn/create-deps.sh+3−11
This diff is too big to show here.
pkgs/development/tools/omnisharp-roslyn/default.nix+2−8
This diff is too big to show here.
pkgs/development/tools/omnisharp-roslyn/deps.nix+129−249
This diff is too big to show here.
pkgs/development/tools/packet-sd/default.nix−1
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/default.nix−3
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-clojure.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-comment.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-devicetree.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gomod.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-janet-simple.json−11
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ledger.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-llvm.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-org-nvim.json+4−4
This diff is too big to show here.
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pgn.json−11
This diff is too big to show here.
1053 more files changed are not listed.