Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2024-02-16 00:12:20 +00:00 committed by GitHub
commit 02be936be3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1068 changed files with 8289 additions and 2763 deletions

View File

@ -6,7 +6,7 @@ Docker itself is not used to perform any of the operations done by these functio
## buildImage {#ssec-pkgs-dockerTools-buildImage} ## buildImage {#ssec-pkgs-dockerTools-buildImage}
This function builds a Docker-compatible repository tarball containing a single image. This function builds a Docker-compatible repository tarball containing a single image.
As such, the result is suitable for being loaded in Docker with `docker load` (see [](#ex-dockerTools-buildImage) for how to do this). As such, the result is suitable for being loaded in Docker with `docker image load` (see [](#ex-dockerTools-buildImage) for how to do this).
This function will create a single layer for all files (and dependencies) that are specified in its argument. This function will create a single layer for all files (and dependencies) that are specified in its argument.
Only new dependencies that are not already in the existing layers will be copied. Only new dependencies that are not already in the existing layers will be copied.
@ -43,7 +43,7 @@ Similarly, if you encounter errors similar to `Error_Protocol ("certificate has
`fromImage` (Path or Null; _optional_) `fromImage` (Path or Null; _optional_)
: The repository tarball of an image to be used as the base for the generated image. : The repository tarball of an image to be used as the base for the generated image.
It must be a valid Docker image, such as one exported by `docker save`, or another image built with the `dockerTools` utility functions. It must be a valid Docker image, such as one exported by `docker image save`, or another image built with the `dockerTools` utility functions.
This can be seen as an equivalent of `FROM fromImage` in a `Dockerfile`. This can be seen as an equivalent of `FROM fromImage` in a `Dockerfile`.
A value of `null` can be seen as an equivalent of `FROM scratch`. A value of `null` can be seen as an equivalent of `FROM scratch`.
@ -123,7 +123,7 @@ Similarly, if you encounter errors similar to `Error_Protocol ("certificate has
_Default value:_ `""`. _Default value:_ `""`.
`config` (Attribute Set; _optional_) `config` (Attribute Set or Null; _optional_)
: Used to specify the configuration of the containers that will be started off the generated image. : Used to specify the configuration of the containers that will be started off the generated image.
Must be an attribute set, with each attribute as listed in the [Docker Image Specification v1.3.0](https://github.com/moby/moby/blob/46f7ab808b9504d735d600e259ca0723f76fb164/image/spec/spec.md#image-json-field-descriptions). Must be an attribute set, with each attribute as listed in the [Docker Image Specification v1.3.0](https://github.com/moby/moby/blob/46f7ab808b9504d735d600e259ca0723f76fb164/image/spec/spec.md#image-json-field-descriptions).
@ -247,7 +247,7 @@ Cooking the image...
Finished. Finished.
/nix/store/p4dsg62inh9d2ksy3c7bv58xa851dasr-docker-image-redis.tar.gz /nix/store/p4dsg62inh9d2ksy3c7bv58xa851dasr-docker-image-redis.tar.gz
$ docker load -i /nix/store/p4dsg62inh9d2ksy3c7bv58xa851dasr-docker-image-redis.tar.gz $ docker image load -i /nix/store/p4dsg62inh9d2ksy3c7bv58xa851dasr-docker-image-redis.tar.gz
(some output removed for clarity) (some output removed for clarity)
Loaded image: redis:latest Loaded image: redis:latest
``` ```
@ -345,8 +345,8 @@ dockerTools.buildImage {
After importing the generated repository tarball with Docker, its CLI will display a reasonable date and sort the images as expected: After importing the generated repository tarball with Docker, its CLI will display a reasonable date and sort the images as expected:
```ShellSession ```shell
$ docker images $ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE REPOSITORY TAG IMAGE ID CREATED SIZE
hello latest de2bf4786de6 About a minute ago 25.2MB hello latest de2bf4786de6 About a minute ago 25.2MB
``` ```
@ -364,7 +364,7 @@ Despite the similar name, [`buildImage`](#ssec-pkgs-dockerTools-buildImage) work
Even though some of the arguments may seem related, they cannot be interchanged. Even though some of the arguments may seem related, they cannot be interchanged.
::: :::
You can use this function to load an image in Docker with `docker load`. You can load the result of this function in Docker with `docker image load`.
See [](#ex-dockerTools-buildLayeredImage-hello) to see how to do that. See [](#ex-dockerTools-buildLayeredImage-hello) to see how to do that.
### Examples {#ssec-pkgs-dockerTools-buildLayeredImage-examples} ### Examples {#ssec-pkgs-dockerTools-buildLayeredImage-examples}
@ -404,7 +404,7 @@ Adding manifests...
Done. Done.
/nix/store/hxcz7snvw7f8rzhbh6mv8jq39d992905-hello.tar.gz /nix/store/hxcz7snvw7f8rzhbh6mv8jq39d992905-hello.tar.gz
$ docker load -i /nix/store/hxcz7snvw7f8rzhbh6mv8jq39d992905-hello.tar.gz $ docker image load -i /nix/store/hxcz7snvw7f8rzhbh6mv8jq39d992905-hello.tar.gz
(some output removed for clarity) (some output removed for clarity)
Loaded image: hello:latest Loaded image: hello:latest
``` ```
@ -415,7 +415,7 @@ Loaded image: hello:latest
`streamLayeredImage` builds a **script** which, when run, will stream to stdout a Docker-compatible repository tarball containing a single image, using multiple layers to improve sharing between images. `streamLayeredImage` builds a **script** which, when run, will stream to stdout a Docker-compatible repository tarball containing a single image, using multiple layers to improve sharing between images.
This means that `streamLayeredImage` does not output an image into the Nix store, but only a script that builds the image, saving on IO and disk/cache space, particularly with large images. This means that `streamLayeredImage` does not output an image into the Nix store, but only a script that builds the image, saving on IO and disk/cache space, particularly with large images.
You can use this function to load an image in Docker with `docker load`. You can load the result of this function in Docker with `docker image load`.
See [](#ex-dockerTools-streamLayeredImage-hello) to see how to do that. See [](#ex-dockerTools-streamLayeredImage-hello) to see how to do that.
For this function, you specify a [store path](https://nixos.org/manual/nix/stable/store/store-path) or a list of store paths to be added to the image, and the functions will automatically include any dependencies of those paths in the image. For this function, you specify a [store path](https://nixos.org/manual/nix/stable/store/store-path) or a list of store paths to be added to the image, and the functions will automatically include any dependencies of those paths in the image.
@ -440,7 +440,7 @@ This allows the function to produce reproducible images.
: The name of the generated image. : The name of the generated image.
`tag` (String; _optional_) `tag` (String or Null; _optional_)
: Tag of the generated image. : Tag of the generated image.
If `null`, the hash of the nix derivation will be used as the tag. If `null`, the hash of the nix derivation will be used as the tag.
@ -450,7 +450,7 @@ This allows the function to produce reproducible images.
`fromImage`(Path or Null; _optional_) `fromImage`(Path or Null; _optional_)
: The repository tarball of an image to be used as the base for the generated image. : The repository tarball of an image to be used as the base for the generated image.
It must be a valid Docker image, such as one exported by `docker save`, or another image built with the `dockerTools` utility functions. It must be a valid Docker image, such as one exported by `docker image save`, or another image built with the `dockerTools` utility functions.
This can be seen as an equivalent of `FROM fromImage` in a `Dockerfile`. This can be seen as an equivalent of `FROM fromImage` in a `Dockerfile`.
A value of `null` can be seen as an equivalent of `FROM scratch`. A value of `null` can be seen as an equivalent of `FROM scratch`.
@ -470,7 +470,7 @@ This allows the function to produce reproducible images.
_Default value:_ `[]` _Default value:_ `[]`
`config` (Attribute Set; _optional_) []{#dockerTools-buildLayeredImage-arg-config} `config` (Attribute Set or Null; _optional_) []{#dockerTools-buildLayeredImage-arg-config}
: Used to specify the configuration of the containers that will be started off the generated image. : Used to specify the configuration of the containers that will be started off the generated image.
Must be an attribute set, with each attribute as listed in the [Docker Image Specification v1.3.0](https://github.com/moby/moby/blob/46f7ab808b9504d735d600e259ca0723f76fb164/image/spec/spec.md#image-json-field-descriptions). Must be an attribute set, with each attribute as listed in the [Docker Image Specification v1.3.0](https://github.com/moby/moby/blob/46f7ab808b9504d735d600e259ca0723f76fb164/image/spec/spec.md#image-json-field-descriptions).
@ -594,7 +594,7 @@ dockerTools.streamLayeredImage {
``` ```
The result of building this package is a script. The result of building this package is a script.
Running this script and piping it into `docker load` gives you the same image that was built in [](#ex-dockerTools-buildLayeredImage-hello). Running this script and piping it into `docker image load` gives you the same image that was built in [](#ex-dockerTools-buildLayeredImage-hello).
Note that in this case, the image is never added to the Nix store, but instead streamed directly into Docker. Note that in this case, the image is never added to the Nix store, but instead streamed directly into Docker.
```shell ```shell
@ -602,7 +602,7 @@ $ nix-build
(output removed for clarity) (output removed for clarity)
/nix/store/wsz2xl8ckxnlb769irvq6jv1280dfvxd-stream-hello /nix/store/wsz2xl8ckxnlb769irvq6jv1280dfvxd-stream-hello
$ /nix/store/wsz2xl8ckxnlb769irvq6jv1280dfvxd-stream-hello | docker load $ /nix/store/wsz2xl8ckxnlb769irvq6jv1280dfvxd-stream-hello | docker image load
No 'fromImage' provided No 'fromImage' provided
Creating layer 1 from paths: ['/nix/store/i93s7xxblavsacpy82zdbn4kplsyq48l-libunistring-1.1'] Creating layer 1 from paths: ['/nix/store/i93s7xxblavsacpy82zdbn4kplsyq48l-libunistring-1.1']
Creating layer 2 from paths: ['/nix/store/ji01n9vinnj22nbrb86nx8a1ssgpilx8-libidn2-2.3.4'] Creating layer 2 from paths: ['/nix/store/ji01n9vinnj22nbrb86nx8a1ssgpilx8-libidn2-2.3.4']
@ -718,7 +718,7 @@ dockerTools.streamLayeredImage {
[]{#ssec-pkgs-dockerTools-fetchFromRegistry} []{#ssec-pkgs-dockerTools-fetchFromRegistry}
## pullImage {#ssec-pkgs-dockerTools-pullImage} ## pullImage {#ssec-pkgs-dockerTools-pullImage}
This function is similar to the `docker pull` command, which means it can be used to pull a Docker image from a registry that implements the [Docker Registry HTTP API V2](https://distribution.github.io/distribution/spec/api/). This function is similar to the `docker image pull` command, which means it can be used to pull a Docker image from a registry that implements the [Docker Registry HTTP API V2](https://distribution.github.io/distribution/spec/api/).
By default, the `docker.io` registry is used. By default, the `docker.io` registry is used.
The image will be downloaded as an uncompressed Docker-compatible repository tarball, which is suitable for use with other `dockerTools` functions such as [`buildImage`](#ssec-pkgs-dockerTools-buildImage), [`buildLayeredImage`](#ssec-pkgs-dockerTools-buildLayeredImage), and [`streamLayeredImage`](#ssec-pkgs-dockerTools-streamLayeredImage). The image will be downloaded as an uncompressed Docker-compatible repository tarball, which is suitable for use with other `dockerTools` functions such as [`buildImage`](#ssec-pkgs-dockerTools-buildImage), [`buildLayeredImage`](#ssec-pkgs-dockerTools-buildLayeredImage), and [`streamLayeredImage`](#ssec-pkgs-dockerTools-streamLayeredImage).
@ -1105,7 +1105,7 @@ This is currently implemented by linking to the `env` binary from the `coreutils
### binSh {#sssec-pkgs-dockerTools-helpers-binSh} ### binSh {#sssec-pkgs-dockerTools-helpers-binSh}
This provides a `/bin/sh` link to the `bash` binary from the `bashInteractive` package. This provides a `/bin/sh` link to the `bash` binary from the `bashInteractive` package.
Because of this, it supports cases such as running a command interactively in a container (for example by running `docker run -it <image_name>`). Because of this, it supports cases such as running a command interactively in a container (for example by running `docker container run -it <image_name>`).
### caCertificates {#sssec-pkgs-dockerTools-helpers-caCertificates} ### caCertificates {#sssec-pkgs-dockerTools-helpers-caCertificates}
@ -1169,9 +1169,9 @@ This is made possible by `binSh`.
$ nix-build $ nix-build
(some output removed for clarity) (some output removed for clarity)
/nix/store/2p0i3i04cgjlk71hsn7ll4kxaxxiv4qg-docker-image-env-helpers.tar.gz /nix/store/2p0i3i04cgjlk71hsn7ll4kxaxxiv4qg-docker-image-env-helpers.tar.gz
$ docker load -i /nix/store/2p0i3i04cgjlk71hsn7ll4kxaxxiv4qg-docker-image-env-helpers.tar.gz $ docker image load -i /nix/store/2p0i3i04cgjlk71hsn7ll4kxaxxiv4qg-docker-image-env-helpers.tar.gz
(output removed for clarity) (output removed for clarity)
$ docker run --rm -it env-helpers:latest /bin/sh $ docker container run --rm -it env-helpers:latest /bin/sh
sh-5.2# help sh-5.2# help
GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu) GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
(rest of output removed for clarity) (rest of output removed for clarity)
@ -1209,9 +1209,9 @@ This is made possible by `binSh`.
$ nix-build $ nix-build
(some output removed for clarity) (some output removed for clarity)
/nix/store/rpf47f4z5b9qr4db4ach9yr4b85hjhxq-env-helpers.tar.gz /nix/store/rpf47f4z5b9qr4db4ach9yr4b85hjhxq-env-helpers.tar.gz
$ docker load -i /nix/store/rpf47f4z5b9qr4db4ach9yr4b85hjhxq-env-helpers.tar.gz $ docker image load -i /nix/store/rpf47f4z5b9qr4db4ach9yr4b85hjhxq-env-helpers.tar.gz
(output removed for clarity) (output removed for clarity)
$ docker run --rm -it env-helpers:latest /bin/sh $ docker container run --rm -it env-helpers:latest /bin/sh
sh-5.2# help sh-5.2# help
GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu) GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
(rest of output removed for clarity) (rest of output removed for clarity)
@ -1315,7 +1315,7 @@ $ nix-build
(some output removed for clarity) (some output removed for clarity)
/nix/store/pkj1sgzaz31wl0pbvbg3yp5b3kxndqms-hello-2.12.1-env.tar.gz /nix/store/pkj1sgzaz31wl0pbvbg3yp5b3kxndqms-hello-2.12.1-env.tar.gz
$ docker load -i /nix/store/pkj1sgzaz31wl0pbvbg3yp5b3kxndqms-hello-2.12.1-env.tar.gz $ docker image load -i /nix/store/pkj1sgzaz31wl0pbvbg3yp5b3kxndqms-hello-2.12.1-env.tar.gz
(some output removed for clarity) (some output removed for clarity)
Loaded image: hello-2.12.1-env:latest Loaded image: hello-2.12.1-env:latest
``` ```
@ -1323,7 +1323,7 @@ Loaded image: hello-2.12.1-env:latest
After starting an interactive container, the derivation can be built by running `buildDerivation`, and the output can be executed as expected: After starting an interactive container, the derivation can be built by running `buildDerivation`, and the output can be executed as expected:
```shell ```shell
$ docker run -it hello-2.12.1-env:latest $ docker container run -it hello-2.12.1-env:latest
[nix-shell:~]$ buildDerivation [nix-shell:~]$ buildDerivation
Running phase: unpackPhase Running phase: unpackPhase
unpacking source archive /nix/store/pa10z4ngm0g83kx9mssrqzz30s84vq7k-hello-2.12.1.tar.gz unpacking source archive /nix/store/pa10z4ngm0g83kx9mssrqzz30s84vq7k-hello-2.12.1.tar.gz
@ -1443,14 +1443,14 @@ dockerTools.streamNixShellImage {
``` ```
The result of building this package is a script. The result of building this package is a script.
Running this script and piping it into `docker load` gives you the same image that was built in [](#ex-dockerTools-buildNixShellImage-hello). Running this script and piping it into `docker image load` gives you the same image that was built in [](#ex-dockerTools-buildNixShellImage-hello).
```shell ```shell
$ nix-build $ nix-build
(some output removed for clarity) (some output removed for clarity)
/nix/store/8vhznpz2frqazxnd8pgdvf38jscdypax-stream-hello-2.12.1-env /nix/store/8vhznpz2frqazxnd8pgdvf38jscdypax-stream-hello-2.12.1-env
$ /nix/store/8vhznpz2frqazxnd8pgdvf38jscdypax-stream-hello-2.12.1-env | docker load $ /nix/store/8vhznpz2frqazxnd8pgdvf38jscdypax-stream-hello-2.12.1-env | docker image load
(some output removed for clarity) (some output removed for clarity)
Loaded image: hello-2.12.1-env:latest Loaded image: hello-2.12.1-env:latest
``` ```
@ -1458,7 +1458,7 @@ Loaded image: hello-2.12.1-env:latest
After starting an interactive container, the derivation can be built by running `buildDerivation`, and the output can be executed as expected: After starting an interactive container, the derivation can be built by running `buildDerivation`, and the output can be executed as expected:
```shell ```shell
$ docker run -it hello-2.12.1-env:latest $ docker container run -it hello-2.12.1-env:latest
[nix-shell:~]$ buildDerivation [nix-shell:~]$ buildDerivation
Running phase: unpackPhase Running phase: unpackPhase
unpacking source archive /nix/store/pa10z4ngm0g83kx9mssrqzz30s84vq7k-hello-2.12.1.tar.gz unpacking source archive /nix/store/pa10z4ngm0g83kx9mssrqzz30s84vq7k-hello-2.12.1.tar.gz
@ -1497,14 +1497,14 @@ dockerTools.streamNixShellImage {
} }
``` ```
The result of building this package is a script which can be run and piped into `docker load` to load the generated image. The result of building this package is a script which can be run and piped into `docker image load` to load the generated image.
```shell ```shell
$ nix-build $ nix-build
(some output removed for clarity) (some output removed for clarity)
/nix/store/h5abh0vljgzg381lna922gqknx6yc0v7-stream-hello-2.12.1-env /nix/store/h5abh0vljgzg381lna922gqknx6yc0v7-stream-hello-2.12.1-env
$ /nix/store/h5abh0vljgzg381lna922gqknx6yc0v7-stream-hello-2.12.1-env | docker load $ /nix/store/h5abh0vljgzg381lna922gqknx6yc0v7-stream-hello-2.12.1-env | docker image load
(some output removed for clarity) (some output removed for clarity)
Loaded image: hello-2.12.1-env:latest Loaded image: hello-2.12.1-env:latest
``` ```
@ -1512,7 +1512,7 @@ Loaded image: hello-2.12.1-env:latest
After starting an interactive container, we can verify the extra package is available by running `cowsay`: After starting an interactive container, we can verify the extra package is available by running `cowsay`:
```shell ```shell
$ docker run -it hello-2.12.1-env:latest $ docker container run -it hello-2.12.1-env:latest
[nix-shell:~]$ cowsay "Hello, world!" [nix-shell:~]$ cowsay "Hello, world!"
_______________ _______________
< Hello, world! > < Hello, world! >
@ -1546,14 +1546,14 @@ dockerTools.streamNixShellImage {
} }
``` ```
The result of building this package is a script which can be run and piped into `docker load` to load the generated image. The result of building this package is a script which can be run and piped into `docker image load` to load the generated image.
```shell ```shell
$ nix-build $ nix-build
(some output removed for clarity) (some output removed for clarity)
/nix/store/iz4dhdvgzazl5vrgyz719iwjzjy6xlx1-stream-hello-2.12.1-env /nix/store/iz4dhdvgzazl5vrgyz719iwjzjy6xlx1-stream-hello-2.12.1-env
$ /nix/store/iz4dhdvgzazl5vrgyz719iwjzjy6xlx1-stream-hello-2.12.1-env | docker load $ /nix/store/iz4dhdvgzazl5vrgyz719iwjzjy6xlx1-stream-hello-2.12.1-env | docker image load
(some output removed for clarity) (some output removed for clarity)
Loaded image: hello-2.12.1-env:latest Loaded image: hello-2.12.1-env:latest
``` ```
@ -1561,7 +1561,7 @@ Loaded image: hello-2.12.1-env:latest
After starting an interactive container, we can see the result of the `shellHook`: After starting an interactive container, we can see the result of the `shellHook`:
```shell ```shell
$ docker run -it hello-2.12.1-env:latest $ docker container run -it hello-2.12.1-env:latest
Hello, world! Hello, world!
[nix-shell:~]$ [nix-shell:~]$

View File

@ -44,11 +44,11 @@ rustPlatform.buildRustPackage rec {
} }
``` ```
`buildRustPackage` requires either the `cargoHash` or the `cargoSha256` `buildRustPackage` requires either a `cargoHash` (preferred) or a
attribute which is computed over all crate sources of this package. `cargoSha256` attribute, computed over all crate sources of this package.
`cargoSha256` is used for traditional Nix SHA-256 hashes. `cargoHash` should `cargoHash` supports [SRI](https://www.w3.org/TR/SRI/) hashes and should be
instead be used for [SRI](https://www.w3.org/TR/SRI/) hashes and should be preferred over `cargoSha256` which was used for traditional Nix SHA-256 hashes.
preferred. For example: For example:
```nix ```nix
cargoHash = "sha256-l1vL2ZdtDRxSGvP0X/l3nMw8+6WF67KPutJEzUROjg8="; cargoHash = "sha256-l1vL2ZdtDRxSGvP0X/l3nMw8+6WF67KPutJEzUROjg8=";
@ -64,18 +64,18 @@ Both types of hashes are permitted when contributing to nixpkgs. The
Cargo hash is obtained by inserting a fake checksum into the Cargo hash is obtained by inserting a fake checksum into the
expression and building the package once. The correct checksum can expression and building the package once. The correct checksum can
then be taken from the failed build. A fake hash can be used for then be taken from the failed build. A fake hash can be used for
`cargoSha256` as follows: `cargoHash` as follows:
```nix
cargoSha256 = lib.fakeSha256;
```
For `cargoHash` you can use:
```nix ```nix
cargoHash = lib.fakeHash; cargoHash = lib.fakeHash;
``` ```
For `cargoSha256` you can use:
```nix
cargoSha256 = lib.fakeSha256;
```
Per the instructions in the [Cargo Book](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html) Per the instructions in the [Cargo Book](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html)
best practices guide, Rust applications should always commit the `Cargo.lock` best practices guide, Rust applications should always commit the `Cargo.lock`
file in git to ensure a reproducible build. However, a few packages do not, and file in git to ensure a reproducible build. However, a few packages do not, and
@ -90,7 +90,7 @@ directory into a tar.gz archive.
The tarball with vendored dependencies contains a directory with the The tarball with vendored dependencies contains a directory with the
package's `name`, which is normally composed of `pname` and package's `name`, which is normally composed of `pname` and
`version`. This means that the vendored dependencies hash `version`. This means that the vendored dependencies hash
(`cargoSha256`/`cargoHash`) is dependent on the package name and (`cargoHash`/`cargoSha256`) is dependent on the package name and
version. The `cargoDepsName` attribute can be used to use another name version. The `cargoDepsName` attribute can be used to use another name
for the directory of vendored dependencies. For example, the hash can for the directory of vendored dependencies. For example, the hash can
be made invariant to the version by setting `cargoDepsName` to be made invariant to the version by setting `cargoDepsName` to
@ -115,7 +115,7 @@ rustPlatform.buildRustPackage rec {
### Importing a `Cargo.lock` file {#importing-a-cargo.lock-file} ### Importing a `Cargo.lock` file {#importing-a-cargo.lock-file}
Using `cargoSha256` or `cargoHash` is tedious when using Using a vendored hash (`cargoHash`/`cargoSha256`) is tedious when using
`buildRustPackage` within a project, since it requires that the hash `buildRustPackage` within a project, since it requires that the hash
is updated after every change to `Cargo.lock`. Therefore, is updated after every change to `Cargo.lock`. Therefore,
`buildRustPackage` also supports vendoring dependencies directly from `buildRustPackage` also supports vendoring dependencies directly from

View File

@ -98,7 +98,7 @@ $ sudo launchctl kickstart -k system/org.nixos.nix-daemon
host.pkgs = pkgs; host.pkgs = pkgs;
darwin-builder.workingDirectory = "/var/lib/darwin-builder"; darwin-builder.workingDirectory = "/var/lib/darwin-builder";
}; };
}; }
]; ];
}; };
in { in {

View File

@ -2250,6 +2250,12 @@
githubId = 24027; githubId = 24027;
name = "Bruno Bigras"; name = "Bruno Bigras";
}; };
bbjubjub = {
name = "Julie B.";
email = "julie+nixpkgs@bbjubjub.fr";
github = "bbjubjub2494";
githubId = 15657735;
};
bburdette = { bburdette = {
email = "bburdette@protonmail.com"; email = "bburdette@protonmail.com";
github = "bburdette"; github = "bburdette";
@ -3216,6 +3222,13 @@
github = "cdmistman"; github = "cdmistman";
githubId = 23486351; githubId = 23486351;
}; };
cdombroski = {
name = "Chris Dombroski";
email = "cdombroski@gmail.com";
matrix = "@cdombroski:kow.is";
github = "cdombroski";
githubId = 244909;
};
ceedubs = { ceedubs = {
email = "ceedubs@gmail.com"; email = "ceedubs@gmail.com";
github = "ceedubs"; github = "ceedubs";
@ -4289,6 +4302,15 @@
githubId = 34766150; githubId = 34766150;
name = "datafoo"; name = "datafoo";
}; };
DataHearth = {
email = "dev@antoine-langlois.net";
github = "DataHearth";
githubId = 28595242;
name = "DataHearth";
keys = [{
fingerprint = "A129 2547 0298 BFEE 7EE0 92B3 946E 2D0C 410C 7B3D";
}];
};
davegallant = { davegallant = {
name = "Dave Gallant"; name = "Dave Gallant";
email = "davegallant@gmail.com"; email = "davegallant@gmail.com";
@ -4782,6 +4804,12 @@
githubId = 8404455; githubId = 8404455;
name = "Diego Lelis"; name = "Diego Lelis";
}; };
diegs = {
email = "dpontor@gmail.com";
github = "diegs";
githubId = 74719;
name = "Diego Pontoriero";
};
DieracDelta = { DieracDelta = {
email = "justin@restivo.me"; email = "justin@restivo.me";
github = "DieracDelta"; github = "DieracDelta";
@ -5304,6 +5332,12 @@
githubId = 7875; githubId = 7875;
name = "Rommel Martinez"; name = "Rommel Martinez";
}; };
ecklf = {
email = "ecklf@icloud.com";
github = "ecklf";
githubId = 8146736;
name = "Florentin Eckl";
};
eclairevoyant = { eclairevoyant = {
github = "eclairevoyant"; github = "eclairevoyant";
githubId = 848000; githubId = 848000;
@ -11067,15 +11101,6 @@
githubId = 4969294; githubId = 4969294;
name = "Louis Tim Larsen"; name = "Louis Tim Larsen";
}; };
lourkeur = {
name = "Louis Bettens";
email = "louis@bettens.info";
github = "lourkeur";
githubId = 15657735;
keys = [{
fingerprint = "5B93 9CFA E8FC 4D8F E07A 3AEA DFE1 D4A0 1733 7E2A";
}];
};
loveisgrief = { loveisgrief = {
name = "LoveIsGrief"; name = "LoveIsGrief";
email = "loveisgrief@tuta.io"; email = "loveisgrief@tuta.io";
@ -17450,6 +17475,12 @@
github = "shymega"; github = "shymega";
githubId = 1334592; githubId = 1334592;
}; };
siddarthkay = {
email = "siddarthkay@gmail.com";
github = "siddarthkay";
githubId = 64726664;
name = "Siddarth Kumar";
};
siddharthdhakane = { siddharthdhakane = {
email = "siddharthdhakane@gmail.com"; email = "siddharthdhakane@gmail.com";
github = "siddharthdhakane"; github = "siddharthdhakane";
@ -18320,6 +18351,13 @@
githubId = 2666479; githubId = 2666479;
name = "Y Nguyen"; name = "Y Nguyen";
}; };
superherointj = {
email = "sergiomarcelo@yandex.com";
github = "superherointj";
githubId = 5861043;
matrix = "@superherointj:matrix.org";
name = "Sérgio Marcelo";
};
SuperSandro2000 = { SuperSandro2000 = {
email = "sandro.jaeckel@gmail.com"; email = "sandro.jaeckel@gmail.com";
matrix = "@sandro:supersandro.de"; matrix = "@sandro:supersandro.de";

View File

@ -176,7 +176,7 @@ with lib.maintainers; {
cosmopolitan = { cosmopolitan = {
members = [ members = [
lourkeur bbjubjub
tomberek tomberek
]; ];
scope = "Maintain the Cosmopolitan LibC and related programs."; scope = "Maintain the Cosmopolitan LibC and related programs.";
@ -821,12 +821,18 @@ with lib.maintainers; {
qt-kde = { qt-kde = {
members = [ members = [
ilya-fedin
k900
LunNova
mjm
nickcao
SuperSandro2000
ttuegel ttuegel
]; ];
githubTeams = [ githubTeams = [
"qt-kde" "qt-kde"
]; ];
scope = "Maintain the KDE desktop environment and Qt."; scope = "Maintain the Qt framework, KDE application suite, Plasma desktop environment and related projects.";
shortName = "Qt / KDE"; shortName = "Qt / KDE";
enableFeatureFreezePing = true; enableFeatureFreezePing = true;
}; };

View File

@ -20,8 +20,7 @@
}; };
in '' in ''
if [ ! -e /etc/nixos/configuration.nix ]; then if [ ! -e /etc/nixos/configuration.nix ]; then
mkdir -p /etc/nixos install -m 644 -D ${config} /etc/nixos/configuration.nix
cp ${config} /etc/nixos/configuration.nix
fi fi
''; '';

View File

@ -6,9 +6,9 @@ let
libDir = pkgs.stdenv.hostPlatform.libDir; libDir = pkgs.stdenv.hostPlatform.libDir;
ldsoBasename = builtins.unsafeDiscardStringContext (last (splitString "/" pkgs.stdenv.cc.bintools.dynamicLinker)); ldsoBasename = builtins.unsafeDiscardStringContext (last (splitString "/" pkgs.stdenv.cc.bintools.dynamicLinker));
pkgs32 = pkgs.pkgsi686Linux; # Hard-code to avoid creating another instance of nixpkgs. Also avoids eval errors in some cases.
libDir32 = pkgs32.stdenv.hostPlatform.libDir; libDir32 = "lib"; # pkgs.pkgsi686Linux.stdenv.hostPlatform.libDir
ldsoBasename32 = builtins.unsafeDiscardStringContext (last (splitString "/" pkgs32.stdenv.cc.bintools.dynamicLinker)); ldsoBasename32 = "ld-linux.so.2"; # last (splitString "/" pkgs.pkgsi686Linux.stdenv.cc.bintools.dynamicLinker)
in { in {
options = { options = {
environment.ldso = mkOption { environment.ldso = mkOption {

View File

@ -192,7 +192,8 @@ in
mkdir -p "$(dirname "${certmgrAPITokenPath}")" mkdir -p "$(dirname "${certmgrAPITokenPath}")"
if [ -f "${cfsslAPITokenPath}" ]; then if [ -f "${cfsslAPITokenPath}" ]; then
ln -fs "${cfsslAPITokenPath}" "${certmgrAPITokenPath}" ln -fs "${cfsslAPITokenPath}" "${certmgrAPITokenPath}"
else elif [ ! -f "${certmgrAPITokenPath}" ]; then
# Don't remove the token if it already exists
install -m 600 /dev/null "${certmgrAPITokenPath}" install -m 600 /dev/null "${certmgrAPITokenPath}"
fi fi
'' ''

View File

@ -17,14 +17,11 @@ let
lib.mapAttrs (_: toString) cfg.extraConfig lib.mapAttrs (_: toString) cfg.extraConfig
); );
manage = manage = pkgs.writeShellScript "manage" ''
let set -o allexport # Export the following env vars
setupEnv = lib.concatStringsSep "\n" (mapAttrsToList (name: val: "export ${name}=\"${val}\"") env); ${lib.toShellVars env}
in exec ${pkg}/bin/tandoor-recipes "$@"
pkgs.writeShellScript "manage" '' '';
${setupEnv}
exec ${pkg}/bin/tandoor-recipes "$@"
'';
in in
{ {
meta.maintainers = with maintainers; [ ambroisie ]; meta.maintainers = with maintainers; [ ambroisie ];

View File

@ -1,8 +1,36 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, utils, ... }:
with lib;
let let
inherit (lib)
attrNames
concatMapStrings
concatMapStringsSep
concatStrings
concatStringsSep
elem
filter
flip
hasAttr
hasPrefix
isAttrs
isBool
isDerivation
isList
mapAttrsToList
mkChangedOptionModule
mkEnableOption
mkIf
mkOption
mkPackageOption
optionals
types
;
inherit (utils)
escapeSystemdExecArgs
;
cfg = config.services.knot; cfg = config.services.knot;
yamlConfig = let yamlConfig = let
@ -113,8 +141,7 @@ let
mkConfigFile = configString: pkgs.writeTextFile { mkConfigFile = configString: pkgs.writeTextFile {
name = "knot.conf"; name = "knot.conf";
text = (concatMapStringsSep "\n" (file: "include: ${file}") cfg.keyFiles) + "\n" + configString; text = (concatMapStringsSep "\n" (file: "include: ${file}") cfg.keyFiles) + "\n" + configString;
# TODO: maybe we could do some checks even when private keys complicate this? checkPhase = lib.optionalString cfg.checkConfig ''
checkPhase = lib.optionalString (cfg.keyFiles == []) ''
${cfg.package}/bin/knotc --config=$out conf-check ${cfg.package}/bin/knotc --config=$out conf-check
''; '';
}; };
@ -142,12 +169,45 @@ let
in { in {
options = { options = {
services.knot = { services.knot = {
enable = mkEnableOption (lib.mdDoc "Knot authoritative-only DNS server"); enable = mkEnableOption "Knot authoritative-only DNS server";
enableXDP = mkOption {
type = types.bool;
default = lib.hasAttrByPath [ "xdp" "listen" ] cfg.settings;
defaultText = ''
Enabled when the `xdp.listen` setting is configured through `settings`.
'';
example = true;
description = ''
Extends the systemd unit with permissions to allow for the use of
the eXpress Data Path (XDP).
::: {.note}
Make sure to read up on functional [limitations](https://www.knot-dns.cz/docs/latest/singlehtml/index.html#mode-xdp-limitations)
when running in XDP mode.
:::
'';
};
checkConfig = mkOption {
type = types.bool;
# TODO: maybe we could do some checks even when private keys complicate this?
# conf-check fails hard on missing IPs/devices with XDP
default = cfg.keyFiles == [] && !cfg.enableXDP;
defaultText = ''
Disabled when the config uses `keyFiles` or `enableXDP`.
'';
example = false;
description = ''
Toggles the configuration test at build time. It runs in a
sandbox, and therefore cannot be used in all scenarios.
'';
};
extraArgs = mkOption { extraArgs = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = []; default = [];
description = lib.mdDoc '' description = ''
List of additional command line parameters for knotd List of additional command line parameters for knotd
''; '';
}; };
@ -155,7 +215,7 @@ in {
keyFiles = mkOption { keyFiles = mkOption {
type = types.listOf types.path; type = types.listOf types.path;
default = []; default = [];
description = lib.mdDoc '' description = ''
A list of files containing additional configuration A list of files containing additional configuration
to be included using the include directive. This option to be included using the include directive. This option
allows to include configuration like TSIG keys without allows to include configuration like TSIG keys without
@ -168,7 +228,7 @@ in {
settings = mkOption { settings = mkOption {
type = types.attrs; type = types.attrs;
default = {}; default = {};
description = lib.mdDoc '' description = ''
Extra configuration as nix values. Extra configuration as nix values.
''; '';
}; };
@ -176,7 +236,7 @@ in {
settingsFile = mkOption { settingsFile = mkOption {
type = types.nullOr types.path; type = types.nullOr types.path;
default = null; default = null;
description = lib.mdDoc '' description = ''
As alternative to ``settings``, you can provide whole configuration As alternative to ``settings``, you can provide whole configuration
directly in the almost-YAML format of Knot DNS. directly in the almost-YAML format of Knot DNS.
You might want to utilize ``pkgs.writeText "knot.conf" "longConfigString"`` for this. You might want to utilize ``pkgs.writeText "knot.conf" "longConfigString"`` for this.
@ -210,19 +270,35 @@ in {
wants = [ "network.target" ]; wants = [ "network.target" ];
after = ["network.target" ]; after = ["network.target" ];
serviceConfig = { serviceConfig = let
# https://www.knot-dns.cz/docs/3.3/singlehtml/index.html#pre-requisites
xdpCapabilities = lib.optionals (cfg.enableXDP) [
"CAP_NET_ADMIN"
"CAP_NET_RAW"
"CAP_SYS_ADMIN"
"CAP_IPC_LOCK"
] ++ lib.optionals (lib.versionOlder config.boot.kernelPackages.kernel.version "5.11") [
"CAP_SYS_RESOURCE"
];
in {
Type = "notify"; Type = "notify";
ExecStart = "${cfg.package}/bin/knotd --config=${configFile} --socket=${socketFile} ${concatStringsSep " " cfg.extraArgs}"; ExecStart = escapeSystemdExecArgs ([
ExecReload = "${knot-cli-wrappers}/bin/knotc reload"; (lib.getExe cfg.package)
"--config=${configFile}"
"--socket=${socketFile}"
] ++ cfg.extraArgs);
ExecReload = escapeSystemdExecArgs [
"${knot-cli-wrappers}/bin/knotc" "reload"
];
User = "knot"; User = "knot";
Group = "knot"; Group = "knot";
AmbientCapabilities = [ AmbientCapabilities = [
"CAP_NET_BIND_SERVICE" "CAP_NET_BIND_SERVICE"
]; ] ++ xdpCapabilities;
CapabilityBoundingSet = [ CapabilityBoundingSet = [
"CAP_NET_BIND_SERVICE" "CAP_NET_BIND_SERVICE"
]; ] ++ xdpCapabilities;
DeviceAllow = ""; DeviceAllow = "";
DevicePolicy = "closed"; DevicePolicy = "closed";
LockPersonality = true; LockPersonality = true;
@ -247,6 +323,9 @@ in {
"AF_INET" "AF_INET"
"AF_INET6" "AF_INET6"
"AF_UNIX" "AF_UNIX"
] ++ optionals (cfg.enableXDP) [
"AF_NETLINK"
"AF_XDP"
]; ];
RestrictNamespaces = true; RestrictNamespaces = true;
RestrictRealtime =true; RestrictRealtime =true;
@ -258,6 +337,8 @@ in {
SystemCallFilter = [ SystemCallFilter = [
"@system-service" "@system-service"
"~@privileged" "~@privileged"
] ++ optionals (cfg.enableXDP) [
"bpf"
]; ];
UMask = "0077"; UMask = "0077";
}; };

View File

@ -12,17 +12,14 @@ let
lib.mapAttrs (_: toString) cfg.settings lib.mapAttrs (_: toString) cfg.settings
); );
manage = manage = pkgs.writeShellScript "manage" ''
let set -o allexport # Export the following env vars
setupEnv = lib.concatStringsSep "\n" (lib.mapAttrsToList (name: val: "export ${name}=${lib.escapeShellArg val}") env); ${lib.toShellVars env}
in eval "$(${config.systemd.package}/bin/systemctl show -pUID,MainPID photoprism.service | ${pkgs.gnused}/bin/sed "s/UID/ServiceUID/")"
pkgs.writeShellScript "manage" '' exec ${pkgs.util-linux}/bin/nsenter \
${setupEnv} -t $MainPID -m -S $ServiceUID -G $ServiceUID --wdns=${cfg.storagePath} \
eval "$(${config.systemd.package}/bin/systemctl show -pUID,MainPID photoprism.service | ${pkgs.gnused}/bin/sed "s/UID/ServiceUID/")" ${cfg.package}/bin/photoprism "$@"
exec ${pkgs.util-linux}/bin/nsenter \ '';
-t $MainPID -m -S $ServiceUID -G $ServiceUID --wdns=${cfg.storagePath} \
${cfg.package}/bin/photoprism "$@"
'';
in in
{ {
meta.maintainers = with lib.maintainers; [ stunkymonkey ]; meta.maintainers = with lib.maintainers; [ stunkymonkey ];

View File

@ -114,13 +114,16 @@ in {
services.knot.extraArgs = [ "-v" ]; services.knot.extraArgs = [ "-v" ];
services.knot.settings = { services.knot.settings = {
server = { server = {
listen = [
"0.0.0.0@53"
"::@53"
];
automatic-acl = true; automatic-acl = true;
}; };
xdp = {
listen = [
"eth1"
];
tcp = true;
};
remote.primary = { remote.primary = {
address = "192.168.0.1@53"; address = "192.168.0.1@53";
key = "xfr_key"; key = "xfr_key";
@ -140,7 +143,7 @@ in {
"sub.example.com".file = "sub.example.com.zone"; "sub.example.com".file = "sub.example.com.zone";
}; };
log.syslog.any = "info"; log.syslog.any = "debug";
}; };
}; };
client = { lib, nodes, ... }: { client = { lib, nodes, ... }: {

View File

@ -45,7 +45,7 @@ let
''; '';
in pkgs.runCommand "mpitest" {} '' in pkgs.runCommand "mpitest" {} ''
mkdir -p $out/bin mkdir -p $out/bin
${pkgs.openmpi}/bin/mpicc ${mpitestC} -o $out/bin/mpitest ${lib.getDev pkgs.mpi}/bin/mpicc ${mpitestC} -o $out/bin/mpitest
''; '';
in { in {
name = "slurm"; name = "slurm";

View File

@ -127,5 +127,6 @@ stdenv.mkDerivation rec {
# error: 'vvtanh' was not declared in this scope; did you mean 'tanh'? # error: 'vvtanh' was not declared in this scope; did you mean 'tanh'?
# error: no matching function for call to 'juce::dsp::SIMDRegister<double>::SIMDRegister(xsimd::simd_batch_traits<xsimd::batch<double, 2> >::batch_bool_type)' # error: no matching function for call to 'juce::dsp::SIMDRegister<double>::SIMDRegister(xsimd::simd_batch_traits<xsimd::batch<double, 2> >::batch_bool_type)'
broken = stdenv.isAarch64; # since 2021-12-27 on hydra (update to 2.10): https://hydra.nixos.org/build/162558991 broken = stdenv.isAarch64; # since 2021-12-27 on hydra (update to 2.10): https://hydra.nixos.org/build/162558991
mainProgram = "CHOWTapeModel";
}; };
} }

View File

@ -102,5 +102,6 @@ stdenv.mkDerivation rec {
license = with licenses; [ bsd3 ]; license = with licenses; [ bsd3 ];
maintainers = with maintainers; [ magnetophon ]; maintainers = with maintainers; [ magnetophon ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "ChowKick";
}; };
} }

View File

@ -34,5 +34,6 @@ stdenv.mkDerivation {
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = [ maintainers.robbinch ]; maintainers = [ maintainers.robbinch ];
mainProgram = "aacgain";
}; };
} }

View File

@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl3; license = licenses.lgpl3;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ nico202 orivej ]; maintainers = with maintainers; [ nico202 orivej ];
mainProgram = "aeolus";
}; };
} }

View File

@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
maintainers = [ maintainers.mrVanDalo ]; maintainers = [ maintainers.mrVanDalo ];
platforms = platforms.all; platforms = platforms.all;
mainProgram = "aj-snapshot";
}; };
} }

View File

@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
maintainers = [ maintainers.tcbravo ]; maintainers = [ maintainers.tcbravo ];
platforms = platforms.unix; platforms = platforms.unix;
license = licenses.mit; license = licenses.mit;
mainProgram = "ashuffle";
}; };
} }

View File

@ -32,5 +32,6 @@ stdenv.mkDerivation (finalAttrs: {
license = licenses.isc; license = licenses.isc;
maintainers = with maintainers; [ sna ]; maintainers = with maintainers; [ sna ];
platforms = platforms.unix; platforms = platforms.unix;
mainProgram = "aucatctl";
}; };
}) })

View File

@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
maintainers = [ maintainers.magnetophon ]; maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "bitmeter";
}; };
} }

View File

@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Only; license = licenses.gpl2Only;
maintainers = with maintainers; [ auchter ]; maintainers = with maintainers; [ auchter ];
platforms = [ "x86_64-linux" "i686-linux" ]; platforms = [ "x86_64-linux" "i686-linux" ];
mainProgram = "brutefir";
}; };
} }

View File

@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl2; license = licenses.lgpl2;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "calfjackhost";
}; };
} }

View File

@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
description = "A tool and library for reading digital audio from CDs"; description = "A tool and library for reading digital audio from CDs";
license = with licenses; [ gpl2Plus lgpl21Plus ]; license = with licenses; [ gpl2Plus lgpl21Plus ];
platforms = platforms.unix; platforms = platforms.unix;
mainProgram = "cdparanoia";
}; };
} }

View File

@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ ftrvxmtrx ]; maintainers = with maintainers; [ ftrvxmtrx ];
mainProgram = "chuck";
}; };
} }

View File

@ -26,5 +26,6 @@ appimageTools.wrapType2 rec {
license = licenses.agpl3; license = licenses.agpl3;
maintainers = [ maintainers.cigrainger ]; maintainers = [ maintainers.cigrainger ];
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
mainProgram = "cider";
}; };
} }

View File

@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
maintainers = with lib.maintainers; [ CharlesHD mudri ]; maintainers = with lib.maintainers; [ CharlesHD mudri ];
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = platforms.linux ++ platforms.darwin; platforms = platforms.linux ++ platforms.darwin;
mainProgram = "cmusfm";
}; };
} }

View File

@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Only; license = licenses.gpl3Only;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = teams.c3d2.members; maintainers = teams.c3d2.members;
mainProgram = "codecserver";
}; };
} }

View File

@ -35,5 +35,6 @@ stdenv.mkDerivation {
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ anderspapitto ]; maintainers = with maintainers; [ anderspapitto ];
platforms = with platforms; linux; platforms = with platforms; linux;
mainProgram = "dirt";
}; };
} }

View File

@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
# I asked upstream to assign a license, so maybe this can be free # I asked upstream to assign a license, so maybe this can be free
# in the future, but for now let's play it safe and make it unfree. # in the future, but for now let's play it safe and make it unfree.
license = lib.licenses.unfree; license = lib.licenses.unfree;
mainProgram = "DolbyBi64";
}; };
} }

View File

@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
maintainers = with maintainers; [ artemist ]; maintainers = with maintainers; [ artemist ];
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
mainProgram = "dsf2flac";
}; };
} }

View File

@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl2; license = lib.licenses.gpl2;
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ jhhuh ]; maintainers = with lib.maintainers; [ jhhuh ];
mainProgram = "eflite";
}; };
} }

View File

@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
maintainers = with maintainers; [ OPNA2608 ]; maintainers = with maintainers; [ OPNA2608 ];
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
mainProgram = "famistudio";
}; };
} }

View File

@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
description = "A command-line program for playing FLAC audio files"; description = "A command-line program for playing FLAC audio files";
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
platforms = platforms.all; platforms = platforms.all;
mainProgram = "flac123";
}; };
} }

View File

@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl21Plus; license = licenses.lgpl21Plus;
maintainers = with maintainers; [ goibhniu lovek323 ]; maintainers = with maintainers; [ goibhniu lovek323 ];
platforms = platforms.unix; platforms = platforms.unix;
mainProgram = "fluidsynth";
}; };
} }

View File

@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl2; license = lib.licenses.gpl2;
maintainers = [ lib.maintainers.sepi ]; maintainers = [ lib.maintainers.sepi ];
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
mainProgram = "fweelin";
}; };
} }

View File

@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
maintainers = [ maintainers.magnetophon ]; maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
mainProgram = "freqtweak";
}; };
} }

View File

@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
# From HOW-TO-COMPILE.txt: # From HOW-TO-COMPILE.txt:
# > This code is NOT big-endian compatible # > This code is NOT big-endian compatible
platforms = platforms.littleEndian; platforms = platforms.littleEndian;
mainProgram = "ft2-clone";
}; };
} }

View File

@ -116,5 +116,6 @@ stdenv.mkDerivation rec {
license = with licenses; [ gpl2Plus ]; license = with licenses; [ gpl2Plus ];
maintainers = with maintainers; [ OPNA2608 ]; maintainers = with maintainers; [ OPNA2608 ];
platforms = platforms.all; platforms = platforms.all;
mainProgram = "furnace";
}; };
} }

View File

@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.magnetophon ]; maintainers = [ maintainers.magnetophon ];
mainProgram = "geonkick";
}; };
} }

View File

@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "gigedit";
}; };
} }

View File

@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = with maintainers; [ pSub ]; maintainers = with maintainers; [ pSub ];
platforms = with platforms; linux; platforms = with platforms; linux;
mainProgram = "gjay";
}; };
} }

View File

@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
homepage = "https://gnaural.sourceforge.net/"; homepage = "https://gnaural.sourceforge.net/";
maintainers = with maintainers; [ ehmry ]; maintainers = with maintainers; [ ehmry ];
license = with licenses; [ gpl2Only ]; license = with licenses; [ gpl2Only ];
mainProgram = "gnaural";
}; };
} }

View File

@ -18,13 +18,13 @@
buildGoModule rec { buildGoModule rec {
pname = "gtkcord4"; pname = "gtkcord4";
version = "0.0.18"; version = "0.0.19";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "diamondburned"; owner = "diamondburned";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-J76MkbXtlrRIyQEbNlHFNpAW9+mXcOcrx9ahMQ61NL4="; hash = "sha256-TOrAUTYS4J4W1wZvP1TxZf5Nel29YCPoWPN7GYNomkc=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -56,7 +56,7 @@ buildGoModule rec {
install -D -m 444 internal/icons/hicolor/scalable/apps/logo.svg $out/share/icons/hicolor/scalable/apps/gtkcord4.svg install -D -m 444 internal/icons/hicolor/scalable/apps/logo.svg $out/share/icons/hicolor/scalable/apps/gtkcord4.svg
''; '';
vendorHash = "sha256-BDR67P4Gxveg2FpxijT0eWjUciGDO+l02QmBUxVb99c="; vendorHash = "sha256-dJm+v7/2+TQWoU7G1uOpie6KN5W0JqfLU4mF8mghV4A=";
meta = with lib; { meta = with lib; {
description = "GTK4 Discord client in Go, attempt #4"; description = "GTK4 Discord client in Go, attempt #4";

View File

@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
license = licenses.mit; license = licenses.mit;
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ muscaln ]; maintainers = with maintainers; [ muscaln ];
mainProgram = "headset";
}; };
} }

View File

@ -70,5 +70,6 @@
license = lib.licenses.gpl3Plus; license = lib.licenses.gpl3Plus;
maintainers = [ maintainers.magnetophon ]; maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "helm";
}; };
} }

View File

@ -83,5 +83,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = [ maintainers.magnetophon ]; maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "HybridReverb2";
}; };
} }

View File

@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
homepage = "https://id3v2.sourceforge.net/"; homepage = "https://id3v2.sourceforge.net/";
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
platforms = with platforms; unix; platforms = with platforms; unix;
mainProgram = "id3v2";
}; };
} }

View File

@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl2Plus; license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.magnetophon ]; maintainers = [ lib.maintainers.magnetophon ];
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
mainProgram = "psindustrializer";
}; };
} }

View File

@ -47,5 +47,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
maintainers = [ maintainers.magnetophon ]; maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "infamous-rule";
}; };
} }

View File

@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
maintainers = [ maintainers.magnetophon ]; maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "convert4chan";
}; };
} }

View File

@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
maintainers = [ maintainers.magnetophon ]; maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "jaaa";
}; };
} }

View File

@ -35,5 +35,6 @@ stdenv.mkDerivation (finalAttrs: {
license = licenses.unfree; license = licenses.unfree;
maintainers = [ maintainers.PowerUser64 ]; maintainers = [ maintainers.PowerUser64 ];
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
mainProgram = "jack-passthru";
}; };
}) })

View File

@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl2; license = lib.licenses.gpl2;
maintainers = [ lib.maintainers.marcweber ]; maintainers = [ lib.maintainers.marcweber ];
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
mainProgram = "jack_meter";
}; };
} }

View File

@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl2; license = lib.licenses.gpl2;
maintainers = [ lib.maintainers.magnetophon ]; maintainers = [ lib.maintainers.magnetophon ];
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
mainProgram = "japa";
}; };
} }

View File

@ -30,5 +30,6 @@ buildGoModule rec {
homepage = "https://github.com/tryffel/jellycli"; homepage = "https://github.com/tryffel/jellycli";
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = with maintainers; [ oxzi ]; maintainers = with maintainers; [ oxzi ];
mainProgram = "jellycli";
}; };
} }

View File

@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ ]; maintainers = with maintainers; [ ];
inherit (jre_headless.meta) platforms; inherit (jre_headless.meta) platforms;
mainProgram = "JMusicBot";
}; };
} }

View File

@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
''; '';
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "keyfinder-cli";
}; };
} }

View File

@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
description = "Advanced command-line metronome for JACK"; description = "Advanced command-line metronome for JACK";
license = lib.licenses.gpl2Plus; license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
mainProgram = "klick";
}; };
} }

View File

@ -54,5 +54,6 @@ stdenv.mkDerivation rec {
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ suhr ]; maintainers = with maintainers; [ suhr ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "klystrack";
}; };
} }

View File

@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = with maintainers; [ orivej ]; maintainers = with maintainers; [ orivej ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "kmetronome";
}; };
} }

View File

@ -59,5 +59,6 @@ rustPlatform.buildRustPackage rec {
description = "ListenBrainz submission client for MPD"; description = "ListenBrainz submission client for MPD";
license = licenses.agpl3Only; license = licenses.agpl3Only;
maintainers = with maintainers; [ DeeUnderscore ]; maintainers = with maintainers; [ DeeUnderscore ];
mainProgram = "listenbrainz-mpd";
}; };
} }

View File

@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
platforms = platforms.all; platforms = platforms.all;
# https://github.com/NixOS/nixpkgs/pull/91766#issuecomment-688751821 # https://github.com/NixOS/nixpkgs/pull/91766#issuecomment-688751821
broken = stdenv.isDarwin; broken = stdenv.isDarwin;
mainProgram = "lgpt";
}; };
} }

View File

@ -26,5 +26,6 @@ stdenv.mkDerivation {
license = lib.licenses.unfree; license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [ p-h ]; maintainers = with lib.maintainers; [ p-h ];
mainProgram = "LAC";
}; };
} }

View File

@ -43,5 +43,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = with maintainers; [ prusnak ]; maintainers = with maintainers; [ prusnak ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "luppp";
}; };
} }

View File

@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3; license = licenses.gpl3;
maintainers = [ maintainers.magnetophon ]; maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "lv2bm";
}; };
} }

View File

@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
license = licenses.artistic2; license = licenses.artistic2;
maintainers = [ maintainers.magnetophon ]; maintainers = [ maintainers.magnetophon ];
platforms = platforms.all; platforms = platforms.all;
mainProgram = "lv2lint";
}; };
} }

View File

@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
license = with licenses; [ bsdOriginal zlib ]; license = with licenses; [ bsdOriginal zlib ];
maintainers = [ maintainers.chkno ]; maintainers = [ maintainers.chkno ];
platforms = platforms.all; platforms = platforms.all;
mainProgram = "m4acut";
}; };
} }

View File

@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
platforms = platforms.all; platforms = platforms.all;
broken = stdenv.isDarwin; # error: no type or protocol named 'NSPasteboardType' broken = stdenv.isDarwin; # error: no type or protocol named 'NSPasteboardType'
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
mainProgram = "master_me";
}; };
} }

View File

@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.nico202 ]; maintainers = [ maintainers.nico202 ];
mainProgram = "meterbridge";
}; };
} }

View File

@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ raskin ]; maintainers = with maintainers; [ raskin ];
platforms = platforms.linux; platforms = platforms.linux;
homepage = "https://www.nongnu.org/mi2ly/"; homepage = "https://www.nongnu.org/mi2ly/";
mainProgram = "mi2ly";
}; };
} }

View File

@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3; license = licenses.gpl3;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "mid2key";
}; };
} }

View File

@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl2Plus; license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ ]; maintainers = with lib.maintainers; [ ];
platforms = with lib.platforms; linux; platforms = with lib.platforms; linux;
mainProgram = "mikmod";
}; };
} }

View File

@ -81,5 +81,6 @@ stdenv.mkDerivation (finalAttrs: {
# ibtool -> real Xcode -> I can't get that, and Ofborg can't test that # ibtool -> real Xcode -> I can't get that, and Ofborg can't test that
broken = stdenv.hostPlatform.isDarwin; broken = stdenv.hostPlatform.isDarwin;
maintainers = with maintainers; [ OPNA2608 ]; maintainers = with maintainers; [ OPNA2608 ];
mainProgram = "milkytracker";
}; };
}) })

View File

@ -95,5 +95,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Only; license = licenses.gpl2Only;
maintainers = with maintainers; [ OPNA2608 ]; maintainers = with maintainers; [ OPNA2608 ];
platforms = platforms.all; platforms = platforms.all;
mainProgram = "mmlgui";
}; };
} }

View File

@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
changelog = "https://github.com/figsoda/mmtc/blob/v${version}/CHANGELOG.md"; changelog = "https://github.com/figsoda/mmtc/blob/v${version}/CHANGELOG.md";
license = licenses.mpl20; license = licenses.mpl20;
maintainers = with maintainers; [ figsoda ]; maintainers = with maintainers; [ figsoda ];
mainProgram = "mmtc";
}; };
} }

View File

@ -96,5 +96,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2; license = licenses.gpl2;
maintainers = with maintainers; [ aethelz pSub jagajaga ]; maintainers = with maintainers; [ aethelz pSub jagajaga ];
platforms = platforms.unix; platforms = platforms.unix;
mainProgram = "mocp";
}; };
} }

View File

@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl21; license = licenses.lgpl21;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ devhell ]; maintainers = with maintainers; [ devhell ];
mainProgram = "mp3gain";
}; };
} }

View File

@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl2; license = lib.licenses.gpl2;
platforms = lib.platforms.unix; platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.devhell ]; maintainers = [ lib.maintainers.devhell ];
mainProgram = "mp3val";
}; };
} }

View File

@ -34,5 +34,6 @@ appimageTools.wrapType2 {
license = licenses.mit; license = licenses.mit;
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ zendo ]; maintainers = with maintainers; [ zendo ];
mainProgram = "museeks";
}; };
} }

View File

@ -40,5 +40,6 @@ rustPlatform.buildRustPackage rec {
changelog = "https://github.com/tsirysndr/music-player/releases/tag/v${version}"; changelog = "https://github.com/tsirysndr/music-player/releases/tag/v${version}";
license = licenses.mit; license = licenses.mit;
maintainers = [ maintainers.marsam ]; maintainers = [ maintainers.marsam ];
mainProgram = "music-player";
}; };
} }

View File

@ -29,5 +29,6 @@ stdenv.mkDerivation {
license = licenses.mpl20; license = licenses.mpl20;
maintainers = with maintainers; [ ggpeti ]; maintainers = with maintainers; [ ggpeti ];
platforms = with platforms; darwin ++ linux; platforms = with platforms; darwin ++ linux;
mainProgram = "musly";
}; };
} }

View File

@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
platforms = platforms.all; platforms = platforms.all;
maintainers = with maintainers; [ fpletz ]; maintainers = with maintainers; [ fpletz ];
mainProgram = "ncmpc";
}; };
} }

View File

@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
license = licenses.mit; license = licenses.mit;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = teams.c3d2.members; maintainers = teams.c3d2.members;
mainProgram = "ncpamixer";
}; };
} }

View File

@ -59,5 +59,6 @@ rustPlatform.buildRustPackage rec {
changelog = "https://github.com/hrkfdn/ncspot/releases/tag/v${version}"; changelog = "https://github.com/hrkfdn/ncspot/releases/tag/v${version}";
license = licenses.bsd2; license = licenses.bsd2;
maintainers = [ maintainers.marsam ]; maintainers = [ maintainers.marsam ];
mainProgram = "ncspot";
}; };
} }

View File

@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
license = with licenses; [ gpl3 ]; license = with licenses; [ gpl3 ];
maintainers = [ maintainers.magnetophon ]; maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "ninjas2";
}; };
} }

View File

@ -82,5 +82,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3; license = licenses.gpl3;
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ magnetophon ]; maintainers = with maintainers; [ magnetophon ];
mainProgram = "Odin2";
}; };
} }

View File

@ -90,5 +90,6 @@ buildNpmPackage rec {
license = licenses.gpl3Only; license = licenses.gpl3Only;
maintainers = with maintainers; [ lilyinstarlight ]; maintainers = with maintainers; [ lilyinstarlight ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "open-stage-control";
}; };
} }

View File

@ -85,5 +85,6 @@ buildDotnetModule rec {
]; ];
maintainers = with maintainers; [ lilyinstarlight ]; maintainers = with maintainers; [ lilyinstarlight ];
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
mainProgram = "OpenUtau";
}; };
} }

View File

@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
broken = stdenv.isDarwin; broken = stdenv.isDarwin;
maintainers = with maintainers; [ kmein ]; maintainers = with maintainers; [ kmein ];
license = licenses.bsd3; license = licenses.bsd3;
mainProgram = "opustags";
}; };
} }

View File

@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
license = licenses.mit; license = licenses.mit;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ ericsagnes ]; maintainers = with maintainers; [ ericsagnes ];
mainProgram = "pamix";
}; };
} }

View File

@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.lgpl3; license = lib.licenses.lgpl3;
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.nico202 ]; maintainers = [ lib.maintainers.nico202 ];
mainProgram = "patchage";
}; };
} }

View File

@ -56,5 +56,6 @@ stdenv.mkDerivation {
homepage = "https://hypermammut.sourceforge.net/paulstretch/"; homepage = "https://hypermammut.sourceforge.net/paulstretch/";
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.gpl2; license = licenses.gpl2;
mainProgram = "paulstretch";
}; };
} }

View File

@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
license = with licenses; [ asl20 mit ]; license = with licenses; [ asl20 mit ];
maintainers = [ maintainers.vanilla ]; maintainers = [ maintainers.vanilla ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "pbpctrl";
}; };
} }

View File

@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.goibhniu ]; maintainers = [ maintainers.goibhniu ];
mainProgram = "petri-foo";
}; };
} }

View File

@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
homepage = "https://6xq.net/pianobar/"; homepage = "https://6xq.net/pianobar/";
platforms = platforms.unix; platforms = platforms.unix;
license = licenses.mit; # expat version license = licenses.mit; # expat version
mainProgram = "pianobar";
}; };
} }

View File

@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/yoyz/picoloop"; homepage = "https://github.com/yoyz/picoloop";
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.bsd3; license = licenses.bsd3;
mainProgram = "picoloop";
}; };
} }

View File

@ -18,5 +18,6 @@ stdenv.mkDerivation {
description = "A straightforward command line program to play midi files through the ALSA sequencer"; description = "A straightforward command line program to play midi files through the ALSA sequencer";
maintainers = with maintainers; [ lheckemann ]; maintainers = with maintainers; [ lheckemann ];
license = licenses.gpl2; license = licenses.gpl2;
mainProgram = "pmidi";
}; };
} }

View File

@ -18,5 +18,6 @@ buildGoModule {
homepage = "https://ambientsound.github.io/pms/"; homepage = "https://ambientsound.github.io/pms/";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ deejayem ]; maintainers = with maintainers; [ deejayem ];
mainProgram = "pms";
}; };
} }

View File

@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
license = licenses.gpl3; license = licenses.gpl3;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ orivej ]; maintainers = with maintainers; [ orivej ];
mainProgram = "Proteus";
}; };
} }

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