Merge branch 'staging-next' into staging
This commit is contained in:
commit
70babe5bcf
|
@ -3,7 +3,7 @@
|
||||||
## How to use Agda
|
## How to use Agda
|
||||||
|
|
||||||
Agda can be installed from `agda`:
|
Agda can be installed from `agda`:
|
||||||
```
|
```ShellSession
|
||||||
$ nix-env -iA agda
|
$ nix-env -iA agda
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -15,13 +15,13 @@ To use Agda with libraries, the `agda.withPackages` function can be used. This f
|
||||||
|
|
||||||
For example, suppose we wanted a version of Agda which has access to the standard library. This can be obtained with the expressions:
|
For example, suppose we wanted a version of Agda which has access to the standard library. This can be obtained with the expressions:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
agda.withPackages [ agdaPackages.standard-library ]
|
agda.withPackages [ agdaPackages.standard-library ]
|
||||||
```
|
```
|
||||||
|
|
||||||
or
|
or
|
||||||
|
|
||||||
```
|
```nix
|
||||||
agda.withPackages (p: [ p.standard-library ])
|
agda.withPackages (p: [ p.standard-library ])
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ If you want to use a library in your home directory (for instance if it is a dev
|
||||||
Agda will not by default use these libraries. To tell Agda to use the library we have some options:
|
Agda will not by default use these libraries. To tell Agda to use the library we have some options:
|
||||||
|
|
||||||
* Call `agda` with the library flag:
|
* Call `agda` with the library flag:
|
||||||
```
|
```ShellSession
|
||||||
$ agda -l standard-library -i . MyFile.agda
|
$ agda -l standard-library -i . MyFile.agda
|
||||||
```
|
```
|
||||||
* Write a `my-library.agda-lib` file for the project you are working on which may look like:
|
* Write a `my-library.agda-lib` file for the project you are working on which may look like:
|
||||||
|
@ -49,7 +49,7 @@ More information can be found in the [official Agda documentation on library man
|
||||||
Agda modules can be compiled with the `--compile` flag. A version of `ghc` with `ieee754` is made available to the Agda program via the `--with-compiler` flag.
|
Agda modules can be compiled with the `--compile` flag. A version of `ghc` with `ieee754` is made available to the Agda program via the `--with-compiler` flag.
|
||||||
This can be overridden by a different version of `ghc` as follows:
|
This can be overridden by a different version of `ghc` as follows:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
agda.withPackages {
|
agda.withPackages {
|
||||||
pkgs = [ ... ];
|
pkgs = [ ... ];
|
||||||
ghc = haskell.compiler.ghcHEAD;
|
ghc = haskell.compiler.ghcHEAD;
|
||||||
|
@ -80,12 +80,12 @@ By default, Agda sources are files ending on `.agda`, or literate Agda files end
|
||||||
## Adding Agda packages to Nixpkgs
|
## Adding Agda packages to Nixpkgs
|
||||||
|
|
||||||
To add an Agda package to `nixpkgs`, the derivation should be written to `pkgs/development/libraries/agda/${library-name}/` and an entry should be added to `pkgs/top-level/agda-packages.nix`. Here it is called in a scope with access to all other Agda libraries, so the top line of the `default.nix` can look like:
|
To add an Agda package to `nixpkgs`, the derivation should be written to `pkgs/development/libraries/agda/${library-name}/` and an entry should be added to `pkgs/top-level/agda-packages.nix`. Here it is called in a scope with access to all other Agda libraries, so the top line of the `default.nix` can look like:
|
||||||
```
|
```nix
|
||||||
{ mkDerivation, standard-library, fetchFromGitHub }:
|
{ mkDerivation, standard-library, fetchFromGitHub }:
|
||||||
```
|
```
|
||||||
and `mkDerivation` should be called instead of `agdaPackages.mkDerivation`. Here is an example skeleton derivation for iowa-stdlib:
|
and `mkDerivation` should be called instead of `agdaPackages.mkDerivation`. Here is an example skeleton derivation for iowa-stdlib:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
mkDerivation {
|
mkDerivation {
|
||||||
version = "1.5.0";
|
version = "1.5.0";
|
||||||
pname = "iowa-stdlib";
|
pname = "iowa-stdlib";
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
For local development, it's recommended to use nix-shell to create a dotnet environment:
|
For local development, it's recommended to use nix-shell to create a dotnet environment:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
# shell.nix
|
# shell.nix
|
||||||
with import <nixpkgs> {};
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ mkShell {
|
||||||
|
|
||||||
It's very likely that more than one sdk will be needed on a given project. Dotnet provides several different frameworks (E.g dotnetcore, aspnetcore, etc.) as well as many versions for a given framework. Normally, dotnet is able to fetch a framework and install it relative to the executable. However, this would mean writing to the nix store in nixpkgs, which is read-only. To support the many-sdk use case, one can compose an environment using `dotnetCorePackages.combinePackages`:
|
It's very likely that more than one sdk will be needed on a given project. Dotnet provides several different frameworks (E.g dotnetcore, aspnetcore, etc.) as well as many versions for a given framework. Normally, dotnet is able to fetch a framework and install it relative to the executable. However, this would mean writing to the nix store in nixpkgs, which is read-only. To support the many-sdk use case, one can compose an environment using `dotnetCorePackages.combinePackages`:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
with import <nixpkgs> {};
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
mkShell {
|
mkShell {
|
||||||
|
@ -37,7 +37,7 @@ mkShell {
|
||||||
|
|
||||||
This will produce a dotnet installation that has the dotnet 3.1, 3.0, and 2.1 sdk. The first sdk listed will have it's cli utility present in the resulting environment. Example info output:
|
This will produce a dotnet installation that has the dotnet 3.1, 3.0, and 2.1 sdk. The first sdk listed will have it's cli utility present in the resulting environment. Example info output:
|
||||||
|
|
||||||
```
|
```ShellSesssion
|
||||||
$ dotnet --info
|
$ dotnet --info
|
||||||
.NET Core SDK (reflecting any global.json):
|
.NET Core SDK (reflecting any global.json):
|
||||||
Version: 3.1.101
|
Version: 3.1.101
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
The easiest way to get a working idris version is to install the `idris` attribute:
|
The easiest way to get a working idris version is to install the `idris` attribute:
|
||||||
|
|
||||||
```
|
```ShellSesssion
|
||||||
$ # On NixOS
|
$ # On NixOS
|
||||||
$ nix-env -i nixos.idris
|
$ nix-env -i nixos.idris
|
||||||
$ # On non-NixOS
|
$ # On non-NixOS
|
||||||
|
@ -21,7 +21,7 @@ self: super: {
|
||||||
|
|
||||||
And then:
|
And then:
|
||||||
|
|
||||||
```
|
```ShellSesssion
|
||||||
$ # On NixOS
|
$ # On NixOS
|
||||||
$ nix-env -iA nixos.myIdris
|
$ nix-env -iA nixos.myIdris
|
||||||
$ # On non-NixOS
|
$ # On non-NixOS
|
||||||
|
@ -29,7 +29,7 @@ $ nix-env -iA nixpkgs.myIdris
|
||||||
```
|
```
|
||||||
|
|
||||||
To see all available Idris packages:
|
To see all available Idris packages:
|
||||||
```
|
```ShellSesssion
|
||||||
$ # On NixOS
|
$ # On NixOS
|
||||||
$ nix-env -qaPA nixos.idrisPackages
|
$ nix-env -qaPA nixos.idrisPackages
|
||||||
$ # On non-NixOS
|
$ # On non-NixOS
|
||||||
|
@ -37,7 +37,7 @@ $ nix-env -qaPA nixpkgs.idrisPackages
|
||||||
```
|
```
|
||||||
|
|
||||||
Similarly, entering a `nix-shell`:
|
Similarly, entering a `nix-shell`:
|
||||||
```
|
```ShellSesssion
|
||||||
$ nix-shell -p 'idrisPackages.with-packages (with idrisPackages; [ contrib pruviloj ])'
|
$ nix-shell -p 'idrisPackages.with-packages (with idrisPackages; [ contrib pruviloj ])'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -45,14 +45,14 @@ $ nix-shell -p 'idrisPackages.with-packages (with idrisPackages; [ contrib pruvi
|
||||||
|
|
||||||
To have access to these libraries in idris, call it with an argument `-p <library name>` for each library:
|
To have access to these libraries in idris, call it with an argument `-p <library name>` for each library:
|
||||||
|
|
||||||
```
|
```ShellSesssion
|
||||||
$ nix-shell -p 'idrisPackages.with-packages (with idrisPackages; [ contrib pruviloj ])'
|
$ nix-shell -p 'idrisPackages.with-packages (with idrisPackages; [ contrib pruviloj ])'
|
||||||
[nix-shell:~]$ idris -p contrib -p pruviloj
|
[nix-shell:~]$ idris -p contrib -p pruviloj
|
||||||
```
|
```
|
||||||
|
|
||||||
A listing of all available packages the Idris binary has access to is available via `--listlibs`:
|
A listing of all available packages the Idris binary has access to is available via `--listlibs`:
|
||||||
|
|
||||||
```
|
```ShellSesssion
|
||||||
$ idris --listlibs
|
$ idris --listlibs
|
||||||
00prelude-idx.ibc
|
00prelude-idx.ibc
|
||||||
pruviloj
|
pruviloj
|
||||||
|
@ -105,7 +105,7 @@ build-idris-package {
|
||||||
|
|
||||||
Assuming this file is saved as `yaml.nix`, it's buildable using
|
Assuming this file is saved as `yaml.nix`, it's buildable using
|
||||||
|
|
||||||
```
|
```ShellSesssion
|
||||||
$ nix-build -E '(import <nixpkgs> {}).idrisPackages.callPackage ./yaml.nix {}'
|
$ nix-build -E '(import <nixpkgs> {}).idrisPackages.callPackage ./yaml.nix {}'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@ with import <nixpkgs> {};
|
||||||
|
|
||||||
in another file (say `default.nix`) to be able to build it with
|
in another file (say `default.nix`) to be able to build it with
|
||||||
|
|
||||||
```
|
```ShellSesssion
|
||||||
$ nix-build -A yaml
|
$ nix-build -A yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ Specifically, you can set `idrisBuildOptions`, `idrisTestOptions`, `idrisInstall
|
||||||
|
|
||||||
For example you could set
|
For example you could set
|
||||||
|
|
||||||
```
|
```nix
|
||||||
build-idris-package {
|
build-idris-package {
|
||||||
idrisBuildOptions = [ "--log" "1" "--verbose" ]
|
idrisBuildOptions = [ "--log" "1" "--verbose" ]
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ $ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy toolz ])'
|
||||||
By default `nix-shell` will start a `bash` session with this interpreter in our
|
By default `nix-shell` will start a `bash` session with this interpreter in our
|
||||||
`PATH`, so if we then run:
|
`PATH`, so if we then run:
|
||||||
|
|
||||||
```
|
```Python console
|
||||||
[nix-shell:~/src/nixpkgs]$ python3
|
[nix-shell:~/src/nixpkgs]$ python3
|
||||||
Python 3.8.1 (default, Dec 18 2019, 19:06:26)
|
Python 3.8.1 (default, Dec 18 2019, 19:06:26)
|
||||||
[GCC 9.2.0] on linux
|
[GCC 9.2.0] on linux
|
||||||
|
@ -90,7 +90,7 @@ Type "help", "copyright", "credits" or "license" for more information.
|
||||||
Note that no other modules are in scope, even if they were imperatively
|
Note that no other modules are in scope, even if they were imperatively
|
||||||
installed into our user environment as a dependency of a Python application:
|
installed into our user environment as a dependency of a Python application:
|
||||||
|
|
||||||
```
|
```Python console
|
||||||
>>> import requests
|
>>> import requests
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
File "<stdin>", line 1, in <module>
|
File "<stdin>", line 1, in <module>
|
||||||
|
@ -146,8 +146,8 @@ print(f"The dot product of {a} and {b} is: {np.dot(a, b)}")
|
||||||
Executing this script requires a `python3` that has `numpy`. Using what we learned
|
Executing this script requires a `python3` that has `numpy`. Using what we learned
|
||||||
in the previous section, we could startup a shell and just run it like so:
|
in the previous section, we could startup a shell and just run it like so:
|
||||||
|
|
||||||
```
|
```ShellSesssion
|
||||||
nix-shell -p 'python38.withPackages(ps: with ps; [ numpy ])' --run 'python3 foo.py'
|
$ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy ])' --run 'python3 foo.py'
|
||||||
The dot product of [1 2] and [3 4] is: 11
|
The dot product of [1 2] and [3 4] is: 11
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -103,7 +103,7 @@ supported Qt version.
|
||||||
### Example adding a Qt library {#qt-library-all-packages-nix}
|
### Example adding a Qt library {#qt-library-all-packages-nix}
|
||||||
|
|
||||||
The following represents the contents of `qt5-packages.nix`.
|
The following represents the contents of `qt5-packages.nix`.
|
||||||
```
|
```nix
|
||||||
{
|
{
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ to select the Qt 5 version used for the application.
|
||||||
### Example adding a Qt application {#qt-application-all-packages-nix}
|
### Example adding a Qt application {#qt-application-all-packages-nix}
|
||||||
|
|
||||||
The following represents the contents of `qt5-packages.nix`.
|
The following represents the contents of `qt5-packages.nix`.
|
||||||
```
|
```nix
|
||||||
{
|
{
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ The following represents the contents of `qt5-packages.nix`.
|
||||||
```
|
```
|
||||||
|
|
||||||
The following represents the contents of `all-packages.nix`.
|
The following represents the contents of `all-packages.nix`.
|
||||||
```
|
```nix
|
||||||
{
|
{
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
|
|
|
@ -2,13 +2,14 @@
|
||||||
|
|
||||||
To install the rust compiler and cargo put
|
To install the rust compiler and cargo put
|
||||||
|
|
||||||
```
|
```nix
|
||||||
rustc
|
environment.systemPackages = [
|
||||||
cargo
|
rustc
|
||||||
|
cargo
|
||||||
|
];
|
||||||
```
|
```
|
||||||
|
|
||||||
into the `environment.systemPackages` or bring them into
|
into your `configuration.nix` or bring them into scope with `nix-shell -p rustc cargo`.
|
||||||
scope with `nix-shell -p rustc cargo`.
|
|
||||||
|
|
||||||
For other versions such as daily builds (beta and nightly),
|
For other versions such as daily builds (beta and nightly),
|
||||||
use either `rustup` from nixpkgs (which will manage the rust installation in your home directory),
|
use either `rustup` from nixpkgs (which will manage the rust installation in your home directory),
|
||||||
|
@ -18,7 +19,7 @@ or use Mozilla's [Rust nightlies overlay](#using-the-rust-nightlies-overlay).
|
||||||
|
|
||||||
Rust applications are packaged by using the `buildRustPackage` helper from `rustPlatform`:
|
Rust applications are packaged by using the `buildRustPackage` helper from `rustPlatform`:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
{ lib, rustPlatform }:
|
{ lib, rustPlatform }:
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
|
@ -49,7 +50,7 @@ package. `cargoHash256` is used for traditional Nix SHA-256 hashes,
|
||||||
such as the one in the example above. `cargoHash` should instead be
|
such as the one in the example above. `cargoHash` should instead be
|
||||||
used for [SRI](https://www.w3.org/TR/SRI/) hashes. For example:
|
used for [SRI](https://www.w3.org/TR/SRI/) hashes. For example:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
cargoHash = "sha256-l1vL2ZdtDRxSGvP0X/l3nMw8+6WF67KPutJEzUROjg8=";
|
cargoHash = "sha256-l1vL2ZdtDRxSGvP0X/l3nMw8+6WF67KPutJEzUROjg8=";
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -59,13 +60,13 @@ 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:
|
`cargoSha256` as follows:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
cargoSha256 = lib.fakeSha256;
|
cargoSha256 = lib.fakeSha256;
|
||||||
```
|
```
|
||||||
|
|
||||||
For `cargoHash` you can use:
|
For `cargoHash` you can use:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
cargoHash = lib.fakeHash;
|
cargoHash = lib.fakeHash;
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -262,7 +263,7 @@ Otherwise, some steps may fail because of the modified directory structure of `t
|
||||||
source code in a reproducible way. If it is missing or out-of-date one can use
|
source code in a reproducible way. If it is missing or out-of-date one can use
|
||||||
the `cargoPatches` attribute to update or add it.
|
the `cargoPatches` attribute to update or add it.
|
||||||
|
|
||||||
```
|
```nix
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
(...)
|
(...)
|
||||||
cargoPatches = [
|
cargoPatches = [
|
||||||
|
@ -489,7 +490,7 @@ an example for a minimal `hello` crate:
|
||||||
|
|
||||||
Now, the file produced by the call to `carnix`, called `hello.nix`, looks like:
|
Now, the file produced by the call to `carnix`, called `hello.nix`, looks like:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
# Generated by carnix 0.6.5: carnix -o hello.nix --src ./. Cargo.lock --standalone
|
# Generated by carnix 0.6.5: carnix -o hello.nix --src ./. Cargo.lock --standalone
|
||||||
{ stdenv, buildRustCrate, fetchgit }:
|
{ stdenv, buildRustCrate, fetchgit }:
|
||||||
let kernel = stdenv.buildPlatform.parsed.kernel.name;
|
let kernel = stdenv.buildPlatform.parsed.kernel.name;
|
||||||
|
@ -518,7 +519,7 @@ dependencies, for instance by adding a single line `libc="*"` to our
|
||||||
`Cargo.lock`. Then, `carnix` needs to be run again, and produces the
|
`Cargo.lock`. Then, `carnix` needs to be run again, and produces the
|
||||||
following nix file:
|
following nix file:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
# Generated by carnix 0.6.5: carnix -o hello.nix --src ./. Cargo.lock --standalone
|
# Generated by carnix 0.6.5: carnix -o hello.nix --src ./. Cargo.lock --standalone
|
||||||
{ stdenv, buildRustCrate, fetchgit }:
|
{ stdenv, buildRustCrate, fetchgit }:
|
||||||
let kernel = stdenv.buildPlatform.parsed.kernel.name;
|
let kernel = stdenv.buildPlatform.parsed.kernel.name;
|
||||||
|
@ -573,7 +574,7 @@ Some crates require external libraries. For crates from
|
||||||
Starting from that file, one can add more overrides, to add features
|
Starting from that file, one can add more overrides, to add features
|
||||||
or build inputs by overriding the hello crate in a seperate file.
|
or build inputs by overriding the hello crate in a seperate file.
|
||||||
|
|
||||||
```
|
```nix
|
||||||
with import <nixpkgs> {};
|
with import <nixpkgs> {};
|
||||||
((import ./hello.nix).hello {}).override {
|
((import ./hello.nix).hello {}).override {
|
||||||
crateOverrides = defaultCrateOverrides // {
|
crateOverrides = defaultCrateOverrides // {
|
||||||
|
@ -593,7 +594,7 @@ derivation depend on the crate's version, the `attrs` argument of
|
||||||
the override above can be read, as in the following example, which
|
the override above can be read, as in the following example, which
|
||||||
patches the derivation:
|
patches the derivation:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
with import <nixpkgs> {};
|
with import <nixpkgs> {};
|
||||||
((import ./hello.nix).hello {}).override {
|
((import ./hello.nix).hello {}).override {
|
||||||
crateOverrides = defaultCrateOverrides // {
|
crateOverrides = defaultCrateOverrides // {
|
||||||
|
@ -614,7 +615,7 @@ dependencies. For instance, to override the build inputs for crate
|
||||||
`libc` in the example above, where `libc` is a dependency of the main
|
`libc` in the example above, where `libc` is a dependency of the main
|
||||||
crate, we could do:
|
crate, we could do:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
with import <nixpkgs> {};
|
with import <nixpkgs> {};
|
||||||
((import hello.nix).hello {}).override {
|
((import hello.nix).hello {}).override {
|
||||||
crateOverrides = defaultCrateOverrides // {
|
crateOverrides = defaultCrateOverrides // {
|
||||||
|
@ -630,27 +631,27 @@ general. A number of other parameters can be overridden:
|
||||||
|
|
||||||
- The version of rustc used to compile the crate:
|
- The version of rustc used to compile the crate:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
(hello {}).override { rust = pkgs.rust; };
|
(hello {}).override { rust = pkgs.rust; };
|
||||||
```
|
```
|
||||||
|
|
||||||
- Whether to build in release mode or debug mode (release mode by
|
- Whether to build in release mode or debug mode (release mode by
|
||||||
default):
|
default):
|
||||||
|
|
||||||
```
|
```nix
|
||||||
(hello {}).override { release = false; };
|
(hello {}).override { release = false; };
|
||||||
```
|
```
|
||||||
|
|
||||||
- Whether to print the commands sent to rustc when building
|
- Whether to print the commands sent to rustc when building
|
||||||
(equivalent to `--verbose` in cargo:
|
(equivalent to `--verbose` in cargo:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
(hello {}).override { verbose = false; };
|
(hello {}).override { verbose = false; };
|
||||||
```
|
```
|
||||||
|
|
||||||
- Extra arguments to be passed to `rustc`:
|
- Extra arguments to be passed to `rustc`:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
(hello {}).override { extraRustcOpts = "-Z debuginfo=2"; };
|
(hello {}).override { extraRustcOpts = "-Z debuginfo=2"; };
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -662,7 +663,7 @@ general. A number of other parameters can be overridden:
|
||||||
`postInstall`. As an example, here is how to create a new module
|
`postInstall`. As an example, here is how to create a new module
|
||||||
before running the build script:
|
before running the build script:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
(hello {}).override {
|
(hello {}).override {
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
echo "pub const PATH=\"${hi.out}\";" >> src/path.rs"
|
echo "pub const PATH=\"${hi.out}\";" >> src/path.rs"
|
||||||
|
@ -676,7 +677,7 @@ One can also supply features switches. For example, if we want to
|
||||||
compile `diesel_cli` only with the `postgres` feature, and no default
|
compile `diesel_cli` only with the `postgres` feature, and no default
|
||||||
features, we would write:
|
features, we would write:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
(callPackage ./diesel.nix {}).diesel {
|
(callPackage ./diesel.nix {}).diesel {
|
||||||
default = false;
|
default = false;
|
||||||
postgres = true;
|
postgres = true;
|
||||||
|
@ -699,7 +700,7 @@ Using the example `hello` project above, we want to do the following:
|
||||||
|
|
||||||
A typical `shell.nix` might look like:
|
A typical `shell.nix` might look like:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
with import <nixpkgs> {};
|
with import <nixpkgs> {};
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
|
@ -721,7 +722,7 @@ stdenv.mkDerivation {
|
||||||
```
|
```
|
||||||
|
|
||||||
You should now be able to run the following:
|
You should now be able to run the following:
|
||||||
```
|
```ShellSesssion
|
||||||
$ nix-shell --pure
|
$ nix-shell --pure
|
||||||
$ cargo build
|
$ cargo build
|
||||||
$ cargo test
|
$ cargo test
|
||||||
|
@ -731,7 +732,7 @@ $ cargo test
|
||||||
To control your rust version (i.e. use nightly) from within `shell.nix` (or
|
To control your rust version (i.e. use nightly) from within `shell.nix` (or
|
||||||
other nix expressions) you can use the following `shell.nix`
|
other nix expressions) you can use the following `shell.nix`
|
||||||
|
|
||||||
```
|
```nix
|
||||||
# Latest Nightly
|
# Latest Nightly
|
||||||
with import <nixpkgs> {};
|
with import <nixpkgs> {};
|
||||||
let src = fetchFromGitHub {
|
let src = fetchFromGitHub {
|
||||||
|
@ -759,7 +760,7 @@ stdenv.mkDerivation {
|
||||||
```
|
```
|
||||||
|
|
||||||
Now run:
|
Now run:
|
||||||
```
|
```ShellSession
|
||||||
$ rustc --version
|
$ rustc --version
|
||||||
rustc 1.26.0-nightly (188e693b3 2018-03-26)
|
rustc 1.26.0-nightly (188e693b3 2018-03-26)
|
||||||
```
|
```
|
||||||
|
@ -794,7 +795,7 @@ in the `~/.config/nixpkgs/overlays` directory.
|
||||||
|
|
||||||
Add the following to your `configuration.nix`, `home-configuration.nix`, `shell.nix`, or similar:
|
Add the following to your `configuration.nix`, `home-configuration.nix`, `shell.nix`, or similar:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
{ pkgs ? import <nixpkgs> {
|
{ pkgs ? import <nixpkgs> {
|
||||||
overlays = [
|
overlays = [
|
||||||
(import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz))
|
(import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz))
|
||||||
|
|
|
@ -156,7 +156,7 @@ assuming that "using latest version" is ok most of the time.
|
||||||
|
|
||||||
First create a vim-scripts file having one plugin name per line. Example:
|
First create a vim-scripts file having one plugin name per line. Example:
|
||||||
|
|
||||||
```
|
```vim
|
||||||
"tlib"
|
"tlib"
|
||||||
{'name': 'vim-addon-sql'}
|
{'name': 'vim-addon-sql'}
|
||||||
{'filetype_regex': '\%(vim)$', 'names': ['reload', 'vim-dev-plugin']}
|
{'filetype_regex': '\%(vim)$', 'names': ['reload', 'vim-dev-plugin']}
|
||||||
|
@ -197,7 +197,7 @@ nix-shell -p vimUtils.vim_with_vim2nix --command "vim -c 'source generate.vim'"
|
||||||
You should get a Vim buffer with the nix derivations (output1) and vam.pluginDictionaries (output2).
|
You should get a Vim buffer with the nix derivations (output1) and vam.pluginDictionaries (output2).
|
||||||
You can add your Vim to your system's configuration file like this and start it by "vim-my":
|
You can add your Vim to your system's configuration file like this and start it by "vim-my":
|
||||||
|
|
||||||
```
|
```nix
|
||||||
my-vim =
|
my-vim =
|
||||||
let plugins = let inherit (vimUtils) buildVimPluginFrom2Nix; in {
|
let plugins = let inherit (vimUtils) buildVimPluginFrom2Nix; in {
|
||||||
copy paste output1 here
|
copy paste output1 here
|
||||||
|
@ -217,7 +217,7 @@ my-vim =
|
||||||
|
|
||||||
Sample output1:
|
Sample output1:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
"reload" = buildVimPluginFrom2Nix { # created by nix#NixDerivation
|
"reload" = buildVimPluginFrom2Nix { # created by nix#NixDerivation
|
||||||
name = "reload";
|
name = "reload";
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
|
@ -248,7 +248,7 @@ Nix expressions for Vim plugins are stored in [pkgs/misc/vim-plugins](/pkgs/misc
|
||||||
|
|
||||||
Some plugins require overrides in order to function properly. Overrides are placed in [overrides.nix](/pkgs/misc/vim-plugins/overrides.nix). Overrides are most often required when a plugin requires some dependencies, or extra steps are required during the build process. For example `deoplete-fish` requires both `deoplete-nvim` and `vim-fish`, and so the following override was added:
|
Some plugins require overrides in order to function properly. Overrides are placed in [overrides.nix](/pkgs/misc/vim-plugins/overrides.nix). Overrides are most often required when a plugin requires some dependencies, or extra steps are required during the build process. For example `deoplete-fish` requires both `deoplete-nvim` and `vim-fish`, and so the following override was added:
|
||||||
|
|
||||||
```
|
```nix
|
||||||
deoplete-fish = super.deoplete-fish.overrideAttrs(old: {
|
deoplete-fish = super.deoplete-fish.overrideAttrs(old: {
|
||||||
dependencies = with super; [ deoplete-nvim vim-fish ];
|
dependencies = with super; [ deoplete-nvim vim-fish ];
|
||||||
});
|
});
|
||||||
|
|
|
@ -158,7 +158,7 @@ rec {
|
||||||
seq deepSeq genericClosure;
|
seq deepSeq genericClosure;
|
||||||
|
|
||||||
|
|
||||||
## nixpks version strings
|
## nixpkgs version strings
|
||||||
|
|
||||||
/* Returns the current full nixpkgs version number. */
|
/* Returns the current full nixpkgs version number. */
|
||||||
version = release + versionSuffix;
|
version = release + versionSuffix;
|
||||||
|
|
|
@ -698,6 +698,16 @@
|
||||||
githubId = 1078530;
|
githubId = 1078530;
|
||||||
name = "Alexandre Peyroux";
|
name = "Alexandre Peyroux";
|
||||||
};
|
};
|
||||||
|
applePrincess = {
|
||||||
|
email = "appleprincess@appleprincess.io";
|
||||||
|
github = "applePrincess";
|
||||||
|
githubId = 17154507;
|
||||||
|
name = "Lein Matsumaru";
|
||||||
|
keys = [{
|
||||||
|
longkeyid = "rsa4096/0xAAA50652F0479205";
|
||||||
|
fingerprint = "BF8B F725 DA30 E53E 7F11 4ED8 AAA5 0652 F047 9205";
|
||||||
|
}];
|
||||||
|
};
|
||||||
ar1a = {
|
ar1a = {
|
||||||
email = "aria@ar1as.space";
|
email = "aria@ar1as.space";
|
||||||
github = "ar1a";
|
github = "ar1a";
|
||||||
|
@ -1300,6 +1310,12 @@
|
||||||
githubId = 50839;
|
githubId = 50839;
|
||||||
name = "Brian Jones";
|
name = "Brian Jones";
|
||||||
};
|
};
|
||||||
|
bootstrap-prime = {
|
||||||
|
email = "bootstrap.prime@gmail.com";
|
||||||
|
github = "bootstrap-prime";
|
||||||
|
githubId = 68566724;
|
||||||
|
name = "bootstrap-prime";
|
||||||
|
};
|
||||||
commandodev = {
|
commandodev = {
|
||||||
email = "ben@perurbis.com";
|
email = "ben@perurbis.com";
|
||||||
github = "commandodev";
|
github = "commandodev";
|
||||||
|
@ -2413,6 +2429,12 @@
|
||||||
githubId = 10913120;
|
githubId = 10913120;
|
||||||
name = "Dje4321";
|
name = "Dje4321";
|
||||||
};
|
};
|
||||||
|
djwf = {
|
||||||
|
email = "dave@weller-fahy.com";
|
||||||
|
github = "djwf";
|
||||||
|
githubId = 73162;
|
||||||
|
name = "David J. Weller-Fahy";
|
||||||
|
};
|
||||||
dkabot = {
|
dkabot = {
|
||||||
email = "dkabot@dkabot.com";
|
email = "dkabot@dkabot.com";
|
||||||
github = "dkabot";
|
github = "dkabot";
|
||||||
|
@ -2769,6 +2791,12 @@
|
||||||
githubId = 1753498;
|
githubId = 1753498;
|
||||||
name = "Dejan Lukan";
|
name = "Dejan Lukan";
|
||||||
};
|
};
|
||||||
|
electrified = {
|
||||||
|
email = "ed@maidavale.org";
|
||||||
|
github = "electrified";
|
||||||
|
githubId = 103082;
|
||||||
|
name = "Ed Brindley";
|
||||||
|
};
|
||||||
elliottvillars = {
|
elliottvillars = {
|
||||||
email = "elliottvillars@gmail.com";
|
email = "elliottvillars@gmail.com";
|
||||||
github = "elliottvillars";
|
github = "elliottvillars";
|
||||||
|
@ -3677,6 +3705,12 @@
|
||||||
githubId = 343415;
|
githubId = 343415;
|
||||||
name = "Greg Roodt";
|
name = "Greg Roodt";
|
||||||
};
|
};
|
||||||
|
gschwartz = {
|
||||||
|
email = "gsch@pennmedicine.upenn.edu";
|
||||||
|
github = "GregorySchwartz";
|
||||||
|
githubId = 2490088;
|
||||||
|
name = "Gregory Schwartz";
|
||||||
|
};
|
||||||
gtrunsec = {
|
gtrunsec = {
|
||||||
email = "gtrunsec@hardenedlinux.org";
|
email = "gtrunsec@hardenedlinux.org";
|
||||||
github = "GTrunSec";
|
github = "GTrunSec";
|
||||||
|
@ -5006,6 +5040,12 @@
|
||||||
githubId = 16481032;
|
githubId = 16481032;
|
||||||
name = "Kiba Fox";
|
name = "Kiba Fox";
|
||||||
};
|
};
|
||||||
|
kidd = {
|
||||||
|
email = "raimonster@gmail.com";
|
||||||
|
github = "kidd";
|
||||||
|
githubId = 25607;
|
||||||
|
name = "Raimon Grau";
|
||||||
|
};
|
||||||
kierdavis = {
|
kierdavis = {
|
||||||
email = "kierdavis@gmail.com";
|
email = "kierdavis@gmail.com";
|
||||||
github = "kierdavis";
|
github = "kierdavis";
|
||||||
|
@ -8675,6 +8715,12 @@
|
||||||
githubId = 19472270;
|
githubId = 19472270;
|
||||||
name = "Sebastian";
|
name = "Sebastian";
|
||||||
};
|
};
|
||||||
|
sebbadk = {
|
||||||
|
email = "sebastian@sebba.dk";
|
||||||
|
github = "SEbbaDK";
|
||||||
|
githubId = 1567527;
|
||||||
|
name = "Sebastian Hyberts";
|
||||||
|
};
|
||||||
sellout = {
|
sellout = {
|
||||||
email = "greg@technomadic.org";
|
email = "greg@technomadic.org";
|
||||||
github = "sellout";
|
github = "sellout";
|
||||||
|
|
|
@ -591,8 +591,8 @@ in {
|
||||||
# password or an SSH authorized key. Privileged accounts are
|
# password or an SSH authorized key. Privileged accounts are
|
||||||
# root and users in the wheel group.
|
# root and users in the wheel group.
|
||||||
assertion = !cfg.mutableUsers ->
|
assertion = !cfg.mutableUsers ->
|
||||||
any id ((mapAttrsToList (name: cfg:
|
any id ((mapAttrsToList (_: cfg:
|
||||||
(name == "root"
|
(cfg.name == "root"
|
||||||
|| cfg.group == "wheel"
|
|| cfg.group == "wheel"
|
||||||
|| elem "wheel" cfg.extraGroups)
|
|| elem "wheel" cfg.extraGroups)
|
||||||
&&
|
&&
|
||||||
|
@ -613,16 +613,16 @@ in {
|
||||||
assertion = (user.hashedPassword != null)
|
assertion = (user.hashedPassword != null)
|
||||||
-> (builtins.match ".*:.*" user.hashedPassword == null);
|
-> (builtins.match ".*:.*" user.hashedPassword == null);
|
||||||
message = ''
|
message = ''
|
||||||
The password hash of user "${name}" contains a ":" character.
|
The password hash of user "${user.name}" contains a ":" character.
|
||||||
This is invalid and would break the login system because the fields
|
This is invalid and would break the login system because the fields
|
||||||
of /etc/shadow (file where hashes are stored) are colon-separated.
|
of /etc/shadow (file where hashes are stored) are colon-separated.
|
||||||
Please check the value of option `users.users."${name}".hashedPassword`.'';
|
Please check the value of option `users.users."${user.name}".hashedPassword`.'';
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
warnings =
|
warnings =
|
||||||
builtins.filter (x: x != null) (
|
builtins.filter (x: x != null) (
|
||||||
flip mapAttrsToList cfg.users (name: user:
|
flip mapAttrsToList cfg.users (_: user:
|
||||||
# This regex matches a subset of the Modular Crypto Format (MCF)[1]
|
# This regex matches a subset of the Modular Crypto Format (MCF)[1]
|
||||||
# informal standard. Since this depends largely on the OS or the
|
# informal standard. Since this depends largely on the OS or the
|
||||||
# specific implementation of crypt(3) we only support the (sane)
|
# specific implementation of crypt(3) we only support the (sane)
|
||||||
|
@ -645,9 +645,9 @@ in {
|
||||||
&& user.hashedPassword != "" # login without password
|
&& user.hashedPassword != "" # login without password
|
||||||
&& builtins.match mcf user.hashedPassword == null)
|
&& builtins.match mcf user.hashedPassword == null)
|
||||||
then ''
|
then ''
|
||||||
The password hash of user "${name}" may be invalid. You must set a
|
The password hash of user "${user.name}" may be invalid. You must set a
|
||||||
valid hash or the user will be locked out of their account. Please
|
valid hash or the user will be locked out of their account. Please
|
||||||
check the value of option `users.users."${name}".hashedPassword`.''
|
check the value of option `users.users."${user.name}".hashedPassword`.''
|
||||||
else null
|
else null
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
|
@ -126,6 +126,7 @@
|
||||||
./programs/dconf.nix
|
./programs/dconf.nix
|
||||||
./programs/digitalbitbox/default.nix
|
./programs/digitalbitbox/default.nix
|
||||||
./programs/dmrconfig.nix
|
./programs/dmrconfig.nix
|
||||||
|
./programs/droidcam.nix
|
||||||
./programs/environment.nix
|
./programs/environment.nix
|
||||||
./programs/evince.nix
|
./programs/evince.nix
|
||||||
./programs/file-roller.nix
|
./programs/file-roller.nix
|
||||||
|
@ -233,6 +234,7 @@
|
||||||
./services/audio/alsa.nix
|
./services/audio/alsa.nix
|
||||||
./services/audio/jack.nix
|
./services/audio/jack.nix
|
||||||
./services/audio/icecast.nix
|
./services/audio/icecast.nix
|
||||||
|
./services/audio/jmusicbot.nix
|
||||||
./services/audio/liquidsoap.nix
|
./services/audio/liquidsoap.nix
|
||||||
./services/audio/mpd.nix
|
./services/audio/mpd.nix
|
||||||
./services/audio/mpdscribble.nix
|
./services/audio/mpdscribble.nix
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
{ lib, pkgs, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
{
|
||||||
|
options.programs.droidcam = {
|
||||||
|
enable = mkEnableOption "DroidCam client";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.programs.droidcam.enable {
|
||||||
|
environment.systemPackages = [ pkgs.droidcam ];
|
||||||
|
|
||||||
|
boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
|
||||||
|
boot.kernelModules = [ "v4l2loopback" "snd-aloop" ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -8,7 +8,7 @@ let
|
||||||
cfg = config.programs.mininet;
|
cfg = config.programs.mininet;
|
||||||
|
|
||||||
generatedPath = with pkgs; makeSearchPath "bin" [
|
generatedPath = with pkgs; makeSearchPath "bin" [
|
||||||
iperf ethtool iproute socat
|
iperf ethtool iproute2 socat
|
||||||
];
|
];
|
||||||
|
|
||||||
pyEnv = pkgs.python.withPackages(ps: [ ps.mininet-python ]);
|
pyEnv = pkgs.python.withPackages(ps: [ ps.mininet-python ]);
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.services.jmusicbot;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
services.jmusicbot = {
|
||||||
|
enable = mkEnableOption "jmusicbot, a Discord music bot that's easy to set up and run yourself";
|
||||||
|
|
||||||
|
stateDir = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
description = ''
|
||||||
|
The directory where config.txt and serversettings.json is saved.
|
||||||
|
If left as the default value this directory will automatically be created before JMusicBot starts, otherwise the sysadmin is responsible for ensuring the directory exists with appropriate ownership and permissions.
|
||||||
|
Untouched by the value of this option config.txt needs to be placed manually into this directory.
|
||||||
|
'';
|
||||||
|
default = "/var/lib/jmusicbot/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
systemd.services.jmusicbot = {
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network-online.target" ];
|
||||||
|
description = "Discord music bot that's easy to set up and run yourself!";
|
||||||
|
serviceConfig = mkMerge [{
|
||||||
|
ExecStart = "${pkgs.jmusicbot}/bin/JMusicBot";
|
||||||
|
WorkingDirectory = cfg.stateDir;
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = 20;
|
||||||
|
DynamicUser = true;
|
||||||
|
}
|
||||||
|
(mkIf (cfg.stateDir == "/var/lib/jmusicbot") { StateDirectory = "jmusicbot"; })];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta.maintainers = with maintainers; [ SuperSandro2000 ];
|
||||||
|
}
|
|
@ -30,7 +30,7 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
backends = [ pkg netConf ] ++ optional config.services.saned.enable sanedConf ++ config.hardware.sane.extraBackends;
|
backends = [ pkg netConf ] ++ optional config.services.saned.enable sanedConf ++ config.hardware.sane.extraBackends;
|
||||||
saneConfig = pkgs.mkSaneConfig { paths = backends; };
|
saneConfig = pkgs.mkSaneConfig { paths = backends; inherit (config.hardware.sane) disabledDefaultBackends; };
|
||||||
|
|
||||||
enabled = config.hardware.sane.enable || config.services.saned.enable;
|
enabled = config.hardware.sane.enable || config.services.saned.enable;
|
||||||
|
|
||||||
|
@ -73,6 +73,16 @@ in
|
||||||
example = literalExample "[ pkgs.hplipWithPlugin ]";
|
example = literalExample "[ pkgs.hplipWithPlugin ]";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hardware.sane.disabledDefaultBackends = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [];
|
||||||
|
example = [ "v4l" ];
|
||||||
|
description = ''
|
||||||
|
Names of backends which are enabled by default but should be disabled.
|
||||||
|
See <literal>$SANE_CONFIG_DIR/dll.conf</literal> for the list of possible names.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
hardware.sane.configDir = mkOption {
|
hardware.sane.configDir = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
internal = true;
|
internal = true;
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
with lib;
|
with lib;
|
||||||
let cfg = config.services.vector;
|
let cfg = config.services.vector;
|
||||||
|
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
options.services.vector = {
|
options.services.vector = {
|
||||||
enable = mkEnableOption "Vector";
|
enable = mkEnableOption "Vector";
|
||||||
|
|
||||||
|
@ -37,25 +38,27 @@ in {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network-online.target" ];
|
after = [ "network-online.target" ];
|
||||||
requires = [ "network-online.target" ];
|
requires = [ "network-online.target" ];
|
||||||
serviceConfig = let
|
serviceConfig =
|
||||||
format = pkgs.formats.toml { };
|
let
|
||||||
conf = format.generate "vector.toml" cfg.settings;
|
format = pkgs.formats.toml { };
|
||||||
validateConfig = file:
|
conf = format.generate "vector.toml" cfg.settings;
|
||||||
pkgs.runCommand "validate-vector-conf" { } ''
|
validateConfig = file:
|
||||||
${pkgs.vector}/bin/vector validate --no-topology --no-environment "${file}"
|
pkgs.runCommand "validate-vector-conf" { } ''
|
||||||
ln -s "${file}" "$out"
|
${pkgs.vector}/bin/vector validate --no-environment "${file}"
|
||||||
'';
|
ln -s "${file}" "$out"
|
||||||
in {
|
'';
|
||||||
ExecStart = "${pkgs.vector}/bin/vector --config ${validateConfig conf}";
|
in
|
||||||
User = "vector";
|
{
|
||||||
Group = "vector";
|
ExecStart = "${pkgs.vector}/bin/vector --config ${validateConfig conf}";
|
||||||
Restart = "no";
|
User = "vector";
|
||||||
StateDirectory = "vector";
|
Group = "vector";
|
||||||
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
Restart = "no";
|
||||||
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
|
StateDirectory = "vector";
|
||||||
# This group is required for accessing journald.
|
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||||
SupplementaryGroups = mkIf cfg.journaldAccess "systemd-journal";
|
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
|
||||||
};
|
# This group is required for accessing journald.
|
||||||
|
SupplementaryGroups = mkIf cfg.journaldAccess "systemd-journal";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
in {
|
in {
|
||||||
meta.maintainers = with maintainers; [ dotlambda ];
|
meta.maintainers = with maintainers; [ ];
|
||||||
|
|
||||||
options.services.home-assistant = {
|
options.services.home-assistant = {
|
||||||
enable = mkEnableOption "Home Assistant";
|
enable = mkEnableOption "Home Assistant";
|
||||||
|
|
|
@ -53,7 +53,7 @@ in
|
||||||
description = "MAME TUN/TAP Ethernet interface";
|
description = "MAME TUN/TAP Ethernet interface";
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
path = [ pkgs.iproute ];
|
path = [ pkgs.iproute2 ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
RemainAfterExit = true;
|
RemainAfterExit = true;
|
||||||
|
|
|
@ -1,55 +1,60 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
cfg = config.services.packagekit;
|
cfg = config.services.packagekit;
|
||||||
|
|
||||||
packagekitConf = ''
|
inherit (lib)
|
||||||
[Daemon]
|
mkEnableOption mkOption mkIf mkRemovedOptionModule types
|
||||||
DefaultBackend=${cfg.backend}
|
listToAttrs recursiveUpdate;
|
||||||
KeepCache=false
|
|
||||||
'';
|
|
||||||
|
|
||||||
vendorConf = ''
|
iniFmt = pkgs.formats.ini { };
|
||||||
[PackagesNotFound]
|
|
||||||
DefaultUrl=https://github.com/NixOS/nixpkgs
|
confFiles = [
|
||||||
CodecUrl=https://github.com/NixOS/nixpkgs
|
(iniFmt.generate "PackageKit.conf" (recursiveUpdate
|
||||||
HardwareUrl=https://github.com/NixOS/nixpkgs
|
{
|
||||||
FontUrl=https://github.com/NixOS/nixpkgs
|
Daemon = {
|
||||||
MimeUrl=https://github.com/NixOS/nixpkgs
|
DefaultBackend = "test_nop";
|
||||||
'';
|
KeepCache = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
cfg.settings))
|
||||||
|
|
||||||
|
(iniFmt.generate "Vendor.conf" (recursiveUpdate
|
||||||
|
{
|
||||||
|
PackagesNotFound = rec {
|
||||||
|
DefaultUrl = "https://github.com/NixOS/nixpkgs";
|
||||||
|
CodecUrl = DefaultUrl;
|
||||||
|
HardwareUrl = DefaultUrl;
|
||||||
|
FontUrl = DefaultUrl;
|
||||||
|
MimeUrl = DefaultUrl;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
cfg.vendorSettings))
|
||||||
|
];
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
imports = [
|
||||||
|
(mkRemovedOptionModule [ "services" "packagekit" "backend" ] "The only backend that doesn't blow up is `test_nop`.")
|
||||||
|
];
|
||||||
|
|
||||||
options = {
|
options.services.packagekit = {
|
||||||
|
enable = mkEnableOption ''
|
||||||
|
PackageKit provides a cross-platform D-Bus abstraction layer for
|
||||||
|
installing software. Software utilizing PackageKit can install
|
||||||
|
software regardless of the package manager.
|
||||||
|
'';
|
||||||
|
|
||||||
services.packagekit = {
|
settings = mkOption {
|
||||||
enable = mkEnableOption
|
type = iniFmt.type;
|
||||||
''
|
default = { };
|
||||||
PackageKit provides a cross-platform D-Bus abstraction layer for
|
description = "Additional settings passed straight through to PackageKit.conf";
|
||||||
installing software. Software utilizing PackageKit can install
|
};
|
||||||
software regardless of the package manager.
|
|
||||||
'';
|
|
||||||
|
|
||||||
# TODO: integrate with PolicyKit if the nix backend matures to the point
|
vendorSettings = mkOption {
|
||||||
# where it will require elevated permissions
|
type = iniFmt.type;
|
||||||
backend = mkOption {
|
default = { };
|
||||||
type = types.enum [ "test_nop" ];
|
description = "Additional settings passed straight through to Vendor.conf";
|
||||||
default = "test_nop";
|
|
||||||
description = ''
|
|
||||||
PackageKit supports multiple different backends and <literal>auto</literal> which
|
|
||||||
should do the right thing.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
On NixOS however, we do not have a backend compatible with nix 2.0
|
|
||||||
(refer to <link xlink:href="https://github.com/NixOS/nix/issues/233">this issue</link> so we have to force
|
|
||||||
it to <literal>test_nop</literal> for now.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -59,7 +64,9 @@ in
|
||||||
|
|
||||||
systemd.packages = with pkgs; [ packagekit ];
|
systemd.packages = with pkgs; [ packagekit ];
|
||||||
|
|
||||||
environment.etc."PackageKit/PackageKit.conf".text = packagekitConf;
|
environment.etc = listToAttrs (map
|
||||||
environment.etc."PackageKit/Vendor.conf".text = vendorConf;
|
(e:
|
||||||
|
lib.nameValuePair "PackageKit/${e.name}" { source = e; })
|
||||||
|
confFiles);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -225,7 +225,7 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
environment.systemPackages = [ datadogPkg pkgs.sysstat pkgs.procps pkgs.iproute ];
|
environment.systemPackages = [ datadogPkg pkgs.sysstat pkgs.procps pkgs.iproute2 ];
|
||||||
|
|
||||||
users.users.datadog = {
|
users.users.datadog = {
|
||||||
description = "Datadog Agent User";
|
description = "Datadog Agent User";
|
||||||
|
@ -239,7 +239,7 @@ in {
|
||||||
|
|
||||||
systemd.services = let
|
systemd.services = let
|
||||||
makeService = attrs: recursiveUpdate {
|
makeService = attrs: recursiveUpdate {
|
||||||
path = [ datadogPkg pkgs.python pkgs.sysstat pkgs.procps pkgs.iproute ];
|
path = [ datadogPkg pkgs.python pkgs.sysstat pkgs.procps pkgs.iproute2 ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
User = "datadog";
|
User = "datadog";
|
||||||
|
|
|
@ -25,6 +25,7 @@ let
|
||||||
"artifactory"
|
"artifactory"
|
||||||
"bind"
|
"bind"
|
||||||
"bird"
|
"bird"
|
||||||
|
"bitcoin"
|
||||||
"blackbox"
|
"blackbox"
|
||||||
"collectd"
|
"collectd"
|
||||||
"dnsmasq"
|
"dnsmasq"
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
{ config, lib, pkgs, options }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.prometheus.exporters.bitcoin;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
port = 9332;
|
||||||
|
extraOpts = {
|
||||||
|
rpcUser = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "bitcoinrpc";
|
||||||
|
description = ''
|
||||||
|
RPC user name.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
rpcPasswordFile = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
description = ''
|
||||||
|
File containing RPC password.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
rpcScheme = mkOption {
|
||||||
|
type = types.enum [ "http" "https" ];
|
||||||
|
default = "http";
|
||||||
|
description = ''
|
||||||
|
Whether to connect to bitcoind over http or https.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
rpcHost = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "localhost";
|
||||||
|
description = ''
|
||||||
|
RPC host.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
rpcPort = mkOption {
|
||||||
|
type = types.port;
|
||||||
|
default = 8332;
|
||||||
|
description = ''
|
||||||
|
RPC port number.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
refreshSeconds = mkOption {
|
||||||
|
type = types.ints.unsigned;
|
||||||
|
default = 300;
|
||||||
|
description = ''
|
||||||
|
How often to ask bitcoind for metrics.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
extraEnv = mkOption {
|
||||||
|
type = types.attrsOf types.str;
|
||||||
|
default = {};
|
||||||
|
description = ''
|
||||||
|
Extra environment variables for the exporter.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
serviceOpts = {
|
||||||
|
script = ''
|
||||||
|
export BITCOIN_RPC_PASSWORD=$(cat ${cfg.rpcPasswordFile})
|
||||||
|
exec ${pkgs.prometheus-bitcoin-exporter}/bin/bitcoind-monitor.py
|
||||||
|
'';
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
BITCOIN_RPC_USER = cfg.rpcUser;
|
||||||
|
BITCOIN_RPC_SCHEME = cfg.rpcScheme;
|
||||||
|
BITCOIN_RPC_HOST = cfg.rpcHost;
|
||||||
|
BITCOIN_RPC_PORT = toString cfg.rpcPort;
|
||||||
|
METRICS_ADDR = cfg.listenAddress;
|
||||||
|
METRICS_PORT = toString cfg.port;
|
||||||
|
REFRESH_SECONDS = toString cfg.refreshSeconds;
|
||||||
|
} // cfg.extraEnv;
|
||||||
|
};
|
||||||
|
}
|
|
@ -113,7 +113,7 @@ in {
|
||||||
description = "scollector metrics collector (part of Bosun)";
|
description = "scollector metrics collector (part of Bosun)";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
path = [ pkgs.coreutils pkgs.iproute ];
|
path = [ pkgs.coreutils pkgs.iproute2 ];
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
User = cfg.user;
|
User = cfg.user;
|
||||||
|
|
|
@ -191,7 +191,7 @@ in
|
||||||
ExecStop = "${cfg.package}/bin/consul leave";
|
ExecStop = "${cfg.package}/bin/consul leave";
|
||||||
});
|
});
|
||||||
|
|
||||||
path = with pkgs; [ iproute gnugrep gawk consul ];
|
path = with pkgs; [ iproute2 gnugrep gawk consul ];
|
||||||
preStart = ''
|
preStart = ''
|
||||||
mkdir -m 0700 -p ${dataDir}
|
mkdir -m 0700 -p ${dataDir}
|
||||||
chown -R consul ${dataDir}
|
chown -R consul ${dataDir}
|
||||||
|
|
|
@ -10,7 +10,7 @@ let
|
||||||
name = "ircd-hybrid-service";
|
name = "ircd-hybrid-service";
|
||||||
scripts = [ "=>/bin" ./control.in ];
|
scripts = [ "=>/bin" ./control.in ];
|
||||||
substFiles = [ "=>/conf" ./ircd.conf ];
|
substFiles = [ "=>/conf" ./ircd.conf ];
|
||||||
inherit (pkgs) ircdHybrid coreutils su iproute gnugrep procps;
|
inherit (pkgs) ircdHybrid coreutils su iproute2 gnugrep procps;
|
||||||
|
|
||||||
ipv6Enabled = boolToString config.networking.enableIPv6;
|
ipv6Enabled = boolToString config.networking.enableIPv6;
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ in
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.libreswan pkgs.iproute ];
|
environment.systemPackages = [ pkgs.libreswan pkgs.iproute2 ];
|
||||||
|
|
||||||
systemd.services.ipsec = {
|
systemd.services.ipsec = {
|
||||||
description = "Internet Key Exchange (IKE) Protocol Daemon for IPsec";
|
description = "Internet Key Exchange (IKE) Protocol Daemon for IPsec";
|
||||||
|
|
|
@ -465,7 +465,7 @@ in {
|
||||||
restartTriggers = [ configFile overrideNameserversScript ];
|
restartTriggers = [ configFile overrideNameserversScript ];
|
||||||
|
|
||||||
# useful binaries for user-specified hooks
|
# useful binaries for user-specified hooks
|
||||||
path = [ pkgs.iproute pkgs.util-linux pkgs.coreutils ];
|
path = [ pkgs.iproute2 pkgs.util-linux pkgs.coreutils ];
|
||||||
aliases = [ "dbus-org.freedesktop.nm-dispatcher.service" ];
|
aliases = [ "dbus-org.freedesktop.nm-dispatcher.service" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ let
|
||||||
wantedBy = optional cfg.autoStart "multi-user.target";
|
wantedBy = optional cfg.autoStart "multi-user.target";
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
|
|
||||||
path = [ pkgs.iptables pkgs.iproute pkgs.nettools ];
|
path = [ pkgs.iptables pkgs.iproute2 pkgs.nettools ];
|
||||||
|
|
||||||
serviceConfig.ExecStart = "@${openvpn}/sbin/openvpn openvpn --suppress-timestamps --config ${configFile}";
|
serviceConfig.ExecStart = "@${openvpn}/sbin/openvpn openvpn --suppress-timestamps --config ${configFile}";
|
||||||
serviceConfig.Restart = "always";
|
serviceConfig.Restart = "always";
|
||||||
|
|
|
@ -132,7 +132,7 @@ in
|
||||||
{ table = "mangle"; command = "OUTPUT ! -o lo -p tcp -m connmark --mark 0x02/0x0f -j CONNMARK --restore-mark --mask 0x0f"; }
|
{ table = "mangle"; command = "OUTPUT ! -o lo -p tcp -m connmark --mark 0x02/0x0f -j CONNMARK --restore-mark --mask 0x0f"; }
|
||||||
];
|
];
|
||||||
in {
|
in {
|
||||||
path = [ pkgs.iptables pkgs.iproute pkgs.procps ];
|
path = [ pkgs.iptables pkgs.iproute2 pkgs.procps ];
|
||||||
|
|
||||||
preStart = ''
|
preStart = ''
|
||||||
# Cleanup old iptables entries which might be still there
|
# Cleanup old iptables entries which might be still there
|
||||||
|
|
|
@ -63,7 +63,7 @@ in {
|
||||||
description = "strongSwan IPsec IKEv1/IKEv2 daemon using swanctl";
|
description = "strongSwan IPsec IKEv1/IKEv2 daemon using swanctl";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network-online.target" ];
|
after = [ "network-online.target" ];
|
||||||
path = with pkgs; [ kmod iproute iptables util-linux ];
|
path = with pkgs; [ kmod iproute2 iptables util-linux ];
|
||||||
environment = {
|
environment = {
|
||||||
STRONGSWAN_CONF = pkgs.writeTextFile {
|
STRONGSWAN_CONF = pkgs.writeTextFile {
|
||||||
name = "strongswan.conf";
|
name = "strongswan.conf";
|
||||||
|
|
|
@ -152,7 +152,7 @@ in
|
||||||
systemd.services.strongswan = {
|
systemd.services.strongswan = {
|
||||||
description = "strongSwan IPSec Service";
|
description = "strongSwan IPSec Service";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
path = with pkgs; [ kmod iproute iptables util-linux ]; # XXX Linux
|
path = with pkgs; [ kmod iproute2 iptables util-linux ]; # XXX Linux
|
||||||
after = [ "network-online.target" ];
|
after = [ "network-online.target" ];
|
||||||
environment = {
|
environment = {
|
||||||
STRONGSWAN_CONF = strongswanConf { inherit setup connections ca secretsFile managePlugins enabledPlugins; };
|
STRONGSWAN_CONF = strongswanConf { inherit setup connections ca secretsFile managePlugins enabledPlugins; };
|
||||||
|
|
|
@ -63,7 +63,7 @@ let
|
||||||
|
|
||||||
preSetup = mkOption {
|
preSetup = mkOption {
|
||||||
example = literalExample ''
|
example = literalExample ''
|
||||||
${pkgs.iproute}/bin/ip netns add foo
|
${pkgs.iproute2}/bin/ip netns add foo
|
||||||
'';
|
'';
|
||||||
default = "";
|
default = "";
|
||||||
type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
|
type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
|
||||||
|
@ -278,7 +278,7 @@ let
|
||||||
wantedBy = [ "multi-user.target" "wireguard-${interfaceName}.service" ];
|
wantedBy = [ "multi-user.target" "wireguard-${interfaceName}.service" ];
|
||||||
environment.DEVICE = interfaceName;
|
environment.DEVICE = interfaceName;
|
||||||
environment.WG_ENDPOINT_RESOLUTION_RETRIES = "infinity";
|
environment.WG_ENDPOINT_RESOLUTION_RETRIES = "infinity";
|
||||||
path = with pkgs; [ iproute wireguard-tools ];
|
path = with pkgs; [ iproute2 wireguard-tools ];
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
|
@ -333,7 +333,7 @@ let
|
||||||
after = [ "network.target" "network-online.target" ];
|
after = [ "network.target" "network-online.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
environment.DEVICE = name;
|
environment.DEVICE = name;
|
||||||
path = with pkgs; [ kmod iproute wireguard-tools ];
|
path = with pkgs; [ kmod iproute2 wireguard-tools ];
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
|
|
|
@ -243,7 +243,7 @@ in
|
||||||
restartTriggers = [ fail2banConf jailConf pathsConf ];
|
restartTriggers = [ fail2banConf jailConf pathsConf ];
|
||||||
reloadIfChanged = true;
|
reloadIfChanged = true;
|
||||||
|
|
||||||
path = [ cfg.package cfg.packageFirewall pkgs.iproute ];
|
path = [ cfg.package cfg.packageFirewall pkgs.iproute2 ];
|
||||||
|
|
||||||
unitConfig.Documentation = "man:fail2ban(1)";
|
unitConfig.Documentation = "man:fail2ban(1)";
|
||||||
|
|
||||||
|
|
|
@ -108,8 +108,8 @@ in {
|
||||||
partOf = optional config.networking.firewall.enable "firewall.service";
|
partOf = optional config.networking.firewall.enable "firewall.service";
|
||||||
|
|
||||||
path = with pkgs; if config.networking.nftables.enable
|
path = with pkgs; if config.networking.nftables.enable
|
||||||
then [ nftables iproute systemd ]
|
then [ nftables iproute2 systemd ]
|
||||||
else [ iptables ipset iproute systemd ];
|
else [ iptables ipset iproute2 systemd ];
|
||||||
|
|
||||||
# The sshguard ipsets must exist before we invoke
|
# The sshguard ipsets must exist before we invoke
|
||||||
# iptables. sshguard creates the ipsets after startup if
|
# iptables. sshguard creates the ipsets after startup if
|
||||||
|
|
|
@ -1188,9 +1188,12 @@ in
|
||||||
systemd.services.systemd-remount-fs.unitConfig.ConditionVirtualization = "!container";
|
systemd.services.systemd-remount-fs.unitConfig.ConditionVirtualization = "!container";
|
||||||
systemd.services.systemd-random-seed.unitConfig.ConditionVirtualization = "!container";
|
systemd.services.systemd-random-seed.unitConfig.ConditionVirtualization = "!container";
|
||||||
|
|
||||||
boot.kernel.sysctl = mkIf (!cfg.coredump.enable) {
|
boot.kernel.sysctl."kernel.core_pattern" = mkIf (!cfg.coredump.enable) "core";
|
||||||
"kernel.core_pattern" = "core";
|
|
||||||
};
|
# Increase numeric PID range (set directly instead of copying a one-line file from systemd)
|
||||||
|
# https://github.com/systemd/systemd/pull/12226
|
||||||
|
boot.kernel.sysctl."kernel.pid_max" = mkIf pkgs.stdenv.is64bit (lib.mkDefault 4194304);
|
||||||
|
|
||||||
boot.kernelParams = optional (!cfg.enableUnifiedCgroupHierarchy) "systemd.unified_cgroup_hierarchy=0";
|
boot.kernelParams = optional (!cfg.enableUnifiedCgroupHierarchy) "systemd.unified_cgroup_hierarchy=0";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -101,7 +101,7 @@ let
|
||||||
|
|
||||||
unitConfig.ConditionCapability = "CAP_NET_ADMIN";
|
unitConfig.ConditionCapability = "CAP_NET_ADMIN";
|
||||||
|
|
||||||
path = [ pkgs.iproute ];
|
path = [ pkgs.iproute2 ];
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
|
@ -185,7 +185,7 @@ let
|
||||||
# Restart rather than stop+start this unit to prevent the
|
# Restart rather than stop+start this unit to prevent the
|
||||||
# network from dying during switch-to-configuration.
|
# network from dying during switch-to-configuration.
|
||||||
stopIfChanged = false;
|
stopIfChanged = false;
|
||||||
path = [ pkgs.iproute ];
|
path = [ pkgs.iproute2 ];
|
||||||
script =
|
script =
|
||||||
''
|
''
|
||||||
state="/run/nixos/network/addresses/${i.name}"
|
state="/run/nixos/network/addresses/${i.name}"
|
||||||
|
@ -258,7 +258,7 @@ let
|
||||||
wantedBy = [ "network-setup.service" (subsystemDevice i.name) ];
|
wantedBy = [ "network-setup.service" (subsystemDevice i.name) ];
|
||||||
partOf = [ "network-setup.service" ];
|
partOf = [ "network-setup.service" ];
|
||||||
before = [ "network-setup.service" ];
|
before = [ "network-setup.service" ];
|
||||||
path = [ pkgs.iproute ];
|
path = [ pkgs.iproute2 ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
RemainAfterExit = true;
|
RemainAfterExit = true;
|
||||||
|
@ -284,7 +284,7 @@ let
|
||||||
before = [ "network-setup.service" ];
|
before = [ "network-setup.service" ];
|
||||||
serviceConfig.Type = "oneshot";
|
serviceConfig.Type = "oneshot";
|
||||||
serviceConfig.RemainAfterExit = true;
|
serviceConfig.RemainAfterExit = true;
|
||||||
path = [ pkgs.iproute ];
|
path = [ pkgs.iproute2 ];
|
||||||
script = ''
|
script = ''
|
||||||
# Remove Dead Interfaces
|
# Remove Dead Interfaces
|
||||||
echo "Removing old bridge ${n}..."
|
echo "Removing old bridge ${n}..."
|
||||||
|
@ -372,7 +372,7 @@ let
|
||||||
wants = deps; # if one or more interface fails, the switch should continue to run
|
wants = deps; # if one or more interface fails, the switch should continue to run
|
||||||
serviceConfig.Type = "oneshot";
|
serviceConfig.Type = "oneshot";
|
||||||
serviceConfig.RemainAfterExit = true;
|
serviceConfig.RemainAfterExit = true;
|
||||||
path = [ pkgs.iproute config.virtualisation.vswitch.package ];
|
path = [ pkgs.iproute2 config.virtualisation.vswitch.package ];
|
||||||
preStart = ''
|
preStart = ''
|
||||||
echo "Resetting Open vSwitch ${n}..."
|
echo "Resetting Open vSwitch ${n}..."
|
||||||
ovs-vsctl --if-exists del-br ${n} -- add-br ${n} \
|
ovs-vsctl --if-exists del-br ${n} -- add-br ${n} \
|
||||||
|
@ -413,7 +413,7 @@ let
|
||||||
before = [ "network-setup.service" ];
|
before = [ "network-setup.service" ];
|
||||||
serviceConfig.Type = "oneshot";
|
serviceConfig.Type = "oneshot";
|
||||||
serviceConfig.RemainAfterExit = true;
|
serviceConfig.RemainAfterExit = true;
|
||||||
path = [ pkgs.iproute pkgs.gawk ];
|
path = [ pkgs.iproute2 pkgs.gawk ];
|
||||||
script = ''
|
script = ''
|
||||||
echo "Destroying old bond ${n}..."
|
echo "Destroying old bond ${n}..."
|
||||||
${destroyBond n}
|
${destroyBond n}
|
||||||
|
@ -451,7 +451,7 @@ let
|
||||||
before = [ "network-setup.service" ];
|
before = [ "network-setup.service" ];
|
||||||
serviceConfig.Type = "oneshot";
|
serviceConfig.Type = "oneshot";
|
||||||
serviceConfig.RemainAfterExit = true;
|
serviceConfig.RemainAfterExit = true;
|
||||||
path = [ pkgs.iproute ];
|
path = [ pkgs.iproute2 ];
|
||||||
script = ''
|
script = ''
|
||||||
# Remove Dead Interfaces
|
# Remove Dead Interfaces
|
||||||
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
|
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
|
||||||
|
@ -476,7 +476,7 @@ let
|
||||||
before = [ "network-setup.service" ];
|
before = [ "network-setup.service" ];
|
||||||
serviceConfig.Type = "oneshot";
|
serviceConfig.Type = "oneshot";
|
||||||
serviceConfig.RemainAfterExit = true;
|
serviceConfig.RemainAfterExit = true;
|
||||||
path = [ pkgs.iproute ];
|
path = [ pkgs.iproute2 ];
|
||||||
script = ''
|
script = ''
|
||||||
# Remove Dead Interfaces
|
# Remove Dead Interfaces
|
||||||
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
|
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
|
||||||
|
@ -504,7 +504,7 @@ let
|
||||||
before = [ "network-setup.service" ];
|
before = [ "network-setup.service" ];
|
||||||
serviceConfig.Type = "oneshot";
|
serviceConfig.Type = "oneshot";
|
||||||
serviceConfig.RemainAfterExit = true;
|
serviceConfig.RemainAfterExit = true;
|
||||||
path = [ pkgs.iproute ];
|
path = [ pkgs.iproute2 ];
|
||||||
script = ''
|
script = ''
|
||||||
# Remove Dead Interfaces
|
# Remove Dead Interfaces
|
||||||
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
|
ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
|
||||||
|
|
|
@ -259,7 +259,7 @@ in
|
||||||
wants = deps; # if one or more interface fails, the switch should continue to run
|
wants = deps; # if one or more interface fails, the switch should continue to run
|
||||||
serviceConfig.Type = "oneshot";
|
serviceConfig.Type = "oneshot";
|
||||||
serviceConfig.RemainAfterExit = true;
|
serviceConfig.RemainAfterExit = true;
|
||||||
path = [ pkgs.iproute config.virtualisation.vswitch.package ];
|
path = [ pkgs.iproute2 config.virtualisation.vswitch.package ];
|
||||||
preStart = ''
|
preStart = ''
|
||||||
echo "Resetting Open vSwitch ${n}..."
|
echo "Resetting Open vSwitch ${n}..."
|
||||||
ovs-vsctl --if-exists del-br ${n} -- add-br ${n} \
|
ovs-vsctl --if-exists del-br ${n} -- add-br ${n} \
|
||||||
|
|
|
@ -1171,7 +1171,7 @@ in
|
||||||
wantedBy = [ "network.target" ];
|
wantedBy = [ "network.target" ];
|
||||||
after = [ "network-pre.target" ];
|
after = [ "network-pre.target" ];
|
||||||
unitConfig.ConditionCapability = "CAP_NET_ADMIN";
|
unitConfig.ConditionCapability = "CAP_NET_ADMIN";
|
||||||
path = [ pkgs.iproute ];
|
path = [ pkgs.iproute2 ];
|
||||||
serviceConfig.Type = "oneshot";
|
serviceConfig.Type = "oneshot";
|
||||||
serviceConfig.RemainAfterExit = true;
|
serviceConfig.RemainAfterExit = true;
|
||||||
script = ''
|
script = ''
|
||||||
|
@ -1249,7 +1249,7 @@ in
|
||||||
${optionalString (current.type == "mesh" && current.meshID!=null) "${pkgs.iw}/bin/iw dev ${device} set meshid ${current.meshID}"}
|
${optionalString (current.type == "mesh" && current.meshID!=null) "${pkgs.iw}/bin/iw dev ${device} set meshid ${current.meshID}"}
|
||||||
${optionalString (current.type == "monitor" && current.flags!=null) "${pkgs.iw}/bin/iw dev ${device} set monitor ${current.flags}"}
|
${optionalString (current.type == "monitor" && current.flags!=null) "${pkgs.iw}/bin/iw dev ${device} set monitor ${current.flags}"}
|
||||||
${optionalString (current.type == "managed" && current.fourAddr!=null) "${pkgs.iw}/bin/iw dev ${device} set 4addr ${if current.fourAddr then "on" else "off"}"}
|
${optionalString (current.type == "managed" && current.fourAddr!=null) "${pkgs.iw}/bin/iw dev ${device} set 4addr ${if current.fourAddr then "on" else "off"}"}
|
||||||
${optionalString (current.mac != null) "${pkgs.iproute}/bin/ip link set dev ${device} address ${current.mac}"}
|
${optionalString (current.mac != null) "${pkgs.iproute2}/bin/ip link set dev ${device} address ${current.mac}"}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Udev script to execute for a new WLAN interface. The script configures the new WLAN interface.
|
# Udev script to execute for a new WLAN interface. The script configures the new WLAN interface.
|
||||||
|
@ -1260,7 +1260,7 @@ in
|
||||||
${optionalString (new.type == "mesh" && new.meshID!=null) "${pkgs.iw}/bin/iw dev ${device} set meshid ${new.meshID}"}
|
${optionalString (new.type == "mesh" && new.meshID!=null) "${pkgs.iw}/bin/iw dev ${device} set meshid ${new.meshID}"}
|
||||||
${optionalString (new.type == "monitor" && new.flags!=null) "${pkgs.iw}/bin/iw dev ${device} set monitor ${new.flags}"}
|
${optionalString (new.type == "monitor" && new.flags!=null) "${pkgs.iw}/bin/iw dev ${device} set monitor ${new.flags}"}
|
||||||
${optionalString (new.type == "managed" && new.fourAddr!=null) "${pkgs.iw}/bin/iw dev ${device} set 4addr ${if new.fourAddr then "on" else "off"}"}
|
${optionalString (new.type == "managed" && new.fourAddr!=null) "${pkgs.iw}/bin/iw dev ${device} set 4addr ${if new.fourAddr then "on" else "off"}"}
|
||||||
${optionalString (new.mac != null) "${pkgs.iproute}/bin/ip link set dev ${device} address ${new.mac}"}
|
${optionalString (new.mac != null) "${pkgs.iproute2}/bin/ip link set dev ${device} address ${new.mac}"}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Udev attributes for systemd to name the device and to create a .device target.
|
# Udev attributes for systemd to name the device and to create a .device target.
|
||||||
|
|
|
@ -119,7 +119,7 @@ in
|
||||||
wants = [ "network-online.target" ];
|
wants = [ "network-online.target" ];
|
||||||
after = [ "network-online.target" ];
|
after = [ "network-online.target" ];
|
||||||
|
|
||||||
path = [ pkgs.wget pkgs.iproute ];
|
path = [ pkgs.wget pkgs.iproute2 ];
|
||||||
|
|
||||||
script =
|
script =
|
||||||
''
|
''
|
||||||
|
|
|
@ -19,7 +19,7 @@ with lib;
|
||||||
wantedBy = [ "multi-user.target" "sshd.service" ];
|
wantedBy = [ "multi-user.target" "sshd.service" ];
|
||||||
before = [ "sshd.service" ];
|
before = [ "sshd.service" ];
|
||||||
|
|
||||||
path = [ pkgs.iproute ];
|
path = [ pkgs.iproute2 ];
|
||||||
|
|
||||||
script =
|
script =
|
||||||
''
|
''
|
||||||
|
|
|
@ -110,7 +110,7 @@ in
|
||||||
systemd.services.google-network-daemon = {
|
systemd.services.google-network-daemon = {
|
||||||
description = "Google Compute Engine Network Daemon";
|
description = "Google Compute Engine Network Daemon";
|
||||||
after = [ "network-online.target" "network.target" "google-instance-setup.service" ];
|
after = [ "network-online.target" "network.target" "google-instance-setup.service" ];
|
||||||
path = with pkgs; [ iproute ];
|
path = with pkgs; [ iproute2 ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${gce}/bin/google_network_daemon";
|
ExecStart = "${gce}/bin/google_network_daemon";
|
||||||
StandardOutput="journal+console";
|
StandardOutput="journal+console";
|
||||||
|
|
|
@ -739,7 +739,7 @@ in
|
||||||
|
|
||||||
unitConfig.RequiresMountsFor = "/var/lib/containers/%i";
|
unitConfig.RequiresMountsFor = "/var/lib/containers/%i";
|
||||||
|
|
||||||
path = [ pkgs.iproute ];
|
path = [ pkgs.iproute2 ];
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
root = "/var/lib/containers/%i";
|
root = "/var/lib/containers/%i";
|
||||||
|
|
|
@ -17,7 +17,7 @@ in {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "xe-linux-distribution.service" ];
|
after = [ "xe-linux-distribution.service" ];
|
||||||
requires = [ "proc-xen.mount" ];
|
requires = [ "proc-xen.mount" ];
|
||||||
path = [ pkgs.coreutils pkgs.iproute ];
|
path = [ pkgs.coreutils pkgs.iproute2 ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
PIDFile = "/run/xe-daemon.pid";
|
PIDFile = "/run/xe-daemon.pid";
|
||||||
ExecStart = "${pkgs.xe-guest-utilities}/bin/xe-daemon -p /run/xe-daemon.pid";
|
ExecStart = "${pkgs.xe-guest-utilities}/bin/xe-daemon -p /run/xe-daemon.pid";
|
||||||
|
|
|
@ -245,7 +245,7 @@ in
|
||||||
# Xen provides udev rules.
|
# Xen provides udev rules.
|
||||||
services.udev.packages = [ cfg.package ];
|
services.udev.packages = [ cfg.package ];
|
||||||
|
|
||||||
services.udev.path = [ pkgs.bridge-utils pkgs.iproute ];
|
services.udev.path = [ pkgs.bridge-utils pkgs.iproute2 ];
|
||||||
|
|
||||||
systemd.services.xen-store = {
|
systemd.services.xen-store = {
|
||||||
description = "Xen Store Daemon";
|
description = "Xen Store Daemon";
|
||||||
|
|
|
@ -2,7 +2,7 @@ import ./../make-test-python.nix ({ pkgs, ...} :
|
||||||
|
|
||||||
let
|
let
|
||||||
mysqlenv-common = pkgs.buildEnv { name = "mysql-path-env-common"; pathsToLink = [ "/bin" ]; paths = with pkgs; [ bash gawk gnutar inetutils which ]; };
|
mysqlenv-common = pkgs.buildEnv { name = "mysql-path-env-common"; pathsToLink = [ "/bin" ]; paths = with pkgs; [ bash gawk gnutar inetutils which ]; };
|
||||||
mysqlenv-mariabackup = pkgs.buildEnv { name = "mysql-path-env-mariabackup"; pathsToLink = [ "/bin" ]; paths = with pkgs; [ gzip iproute netcat procps pv socat ]; };
|
mysqlenv-mariabackup = pkgs.buildEnv { name = "mysql-path-env-mariabackup"; pathsToLink = [ "/bin" ]; paths = with pkgs; [ gzip iproute2 netcat procps pv socat ]; };
|
||||||
|
|
||||||
in {
|
in {
|
||||||
name = "mariadb-galera-mariabackup";
|
name = "mariadb-galera-mariabackup";
|
||||||
|
|
|
@ -136,6 +136,24 @@ let
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bitcoin = {
|
||||||
|
exporterConfig = {
|
||||||
|
enable = true;
|
||||||
|
rpcUser = "bitcoinrpc";
|
||||||
|
rpcPasswordFile = pkgs.writeText "password" "hunter2";
|
||||||
|
};
|
||||||
|
metricProvider = {
|
||||||
|
services.bitcoind.default.enable = true;
|
||||||
|
services.bitcoind.default.rpc.users.bitcoinrpc.passwordHMAC = "e8fe33f797e698ac258c16c8d7aadfbe$872bdb8f4d787367c26bcfd75e6c23c4f19d44a69f5d1ad329e5adf3f82710f7";
|
||||||
|
};
|
||||||
|
exporterTest = ''
|
||||||
|
wait_for_unit("prometheus-bitcoin-exporter.service")
|
||||||
|
wait_for_unit("bitcoind-default.service")
|
||||||
|
wait_for_open_port(9332)
|
||||||
|
succeed("curl -sSf http://localhost:9332/metrics | grep -q '^bitcoin_blocks '")
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
blackbox = {
|
blackbox = {
|
||||||
exporterConfig = {
|
exporterConfig = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -52,9 +52,9 @@ import ../make-test-python.nix ({ pkgs, lib, ...} :
|
||||||
inherit (wg-snakeoil-keys.peer0) publicKey;
|
inherit (wg-snakeoil-keys.peer0) publicKey;
|
||||||
};
|
};
|
||||||
|
|
||||||
postSetup = let inherit (pkgs) iproute; in ''
|
postSetup = let inherit (pkgs) iproute2; in ''
|
||||||
${iproute}/bin/ip route replace 10.23.42.1/32 dev wg0
|
${iproute2}/bin/ip route replace 10.23.42.1/32 dev wg0
|
||||||
${iproute}/bin/ip route replace fc00::1/128 dev wg0
|
${iproute2}/bin/ip route replace fc00::1/128 dev wg0
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, stdenv, fetchurl, alsaLib, jack2Full, minixml, pkg-config }:
|
{ lib, stdenv, fetchurl, alsaLib, jack2, minixml, pkg-config }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = packageName + "-" + version ;
|
name = packageName + "-" + version ;
|
||||||
|
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
buildInputs = [ alsaLib minixml jack2Full ];
|
buildInputs = [ alsaLib minixml jack2 ];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Tool for storing/restoring JACK and/or ALSA connections to/from cml files";
|
description = "Tool for storing/restoring JACK and/or ALSA connections to/from cml files";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ faust
|
{ faust
|
||||||
, gtk2
|
, gtk2
|
||||||
, jack2Full
|
, jack2
|
||||||
, alsaLib
|
, alsaLib
|
||||||
, opencv
|
, opencv
|
||||||
, libsndfile
|
, libsndfile
|
||||||
|
@ -18,7 +18,7 @@ faust.wrapWithBuildEnv {
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
gtk2
|
gtk2
|
||||||
jack2Full
|
jack2
|
||||||
alsaLib
|
alsaLib
|
||||||
opencv
|
opencv
|
||||||
libsndfile
|
libsndfile
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ faust
|
{ faust
|
||||||
, jack2Full
|
, jack2
|
||||||
, qt4
|
, qt4
|
||||||
, libsndfile
|
, libsndfile
|
||||||
, alsaLib
|
, alsaLib
|
||||||
|
@ -16,7 +16,7 @@ faust.wrapWithBuildEnv {
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
jack2Full
|
jack2
|
||||||
qt4
|
qt4
|
||||||
libsndfile
|
libsndfile
|
||||||
alsaLib
|
alsaLib
|
||||||
|
|
|
@ -13,13 +13,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "ft2-clone";
|
pname = "ft2-clone";
|
||||||
version = "1.44_fix";
|
version = "1.46";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "8bitbubsy";
|
owner = "8bitbubsy";
|
||||||
repo = "ft2-clone";
|
repo = "ft2-clone";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-2HhG2cDzAvpSm655M1KQnjbfVvqqOZDz2ty7xnttskA=";
|
sha256 = "sha256-Y6FgIbNCsxnM/B2bEB7oufBjU1BnBYaz7/oysWttIOc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
|
# Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
{ stdenv, lib, fetchurl, makeWrapper, jre }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "JMusicBot";
|
||||||
|
version = "0.3.4";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/jagrosh/MusicBot/releases/download/${version}/JMusicBot-${version}.jar";
|
||||||
|
sha256 = "sha256-++/ot9k74pkN9Wl7IEjiMIv/q5zklIEdU6uFjam0tmU=";
|
||||||
|
};
|
||||||
|
|
||||||
|
dontUnpack = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/lib
|
||||||
|
cp $src $out/lib/JMusicBot
|
||||||
|
|
||||||
|
makeWrapper ${jre}/bin/java $out/bin/JMusicBot \
|
||||||
|
--add-flags "-Xmx1G -Dnogui=true -jar $out/lib/JMusicBot"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Discord music bot that's easy to set up and run yourself";
|
||||||
|
homepage = "https://github.com/jagrosh/MusicBot";
|
||||||
|
license = licenses.asl20;
|
||||||
|
maintainers = with maintainers; [ SuperSandro2000 ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
{ lib, stdenv, fetchFromGitHub, pkg-config, makeWrapper
|
{ lib, stdenv, fetchFromGitHub, pkg-config, makeWrapper
|
||||||
, libsndfile, jack2Full
|
, libsndfile, jack2
|
||||||
, libGLU, libGL, lv2, cairo
|
, libGLU, libGL, lv2, cairo
|
||||||
, ladspaH, php }:
|
, ladspaH, php }:
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config php makeWrapper ];
|
nativeBuildInputs = [ pkg-config php makeWrapper ];
|
||||||
buildInputs = [ jack2Full libsndfile libGLU libGL lv2 cairo ladspaH ];
|
buildInputs = [ jack2 libsndfile libGLU libGL lv2 cairo ladspaH ];
|
||||||
|
|
||||||
makeFlags = [
|
makeFlags = [
|
||||||
"PREFIX=${placeholder "out"}"
|
"PREFIX=${placeholder "out"}"
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "netease-music-tui";
|
pname = "netease-music-tui";
|
||||||
version = "v0.1.2";
|
version = "0.1.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "betta-cyber";
|
owner = "betta-cyber";
|
||||||
repo = "netease-music-tui";
|
repo = "netease-music-tui";
|
||||||
rev = version;
|
rev = "v${version}";
|
||||||
sha256 = "0m5b3q493d32kxznm4apn56216l07b1c49km236i03mpfvdw7m1f";
|
sha256 = "09355a6d197ckayh9833y39dsarklgpgrq3raapiv25z59di30qq";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoPatches = [ ./cargo-lock.patch ];
|
cargoPatches = [ ./cargo-lock.patch ];
|
||||||
|
@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
buildInputs = [ alsaLib openssl ];
|
buildInputs = [ alsaLib openssl ];
|
||||||
|
|
||||||
cargoSha256 = "1kfbnwy3lkbhz0ggxwr5n6qd1plipkr1ycr3z2r7c0amrzzbkc7l";
|
cargoSha256 = "0f06wc7h2zjipifvxsskxvihjf6mykrjrm7yk0zf98ra079bc9g9";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/betta-cyber/netease-music-tui";
|
homepage = "https://github.com/betta-cyber/netease-music-tui";
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
#!nix-shell
|
||||||
|
#!nix-shell -i bash -p coreutils gnugrep git cargo
|
||||||
|
|
||||||
|
# This updates cargo-lock.patch for the netease-music-tui version listed in
|
||||||
|
# default.nix.
|
||||||
|
|
||||||
|
set -eu -o verbose
|
||||||
|
|
||||||
|
here=$PWD
|
||||||
|
version=$(cat default.nix | grep '^ version = "' | cut -d '"' -f 2)
|
||||||
|
checkout=$(mktemp -d)
|
||||||
|
git clone -b "$version" --depth=1 https://github.com/betta-cyber/netease-music-tui "$checkout"
|
||||||
|
cd "$checkout"
|
||||||
|
|
||||||
|
cargo generate-lockfile
|
||||||
|
git add -f Cargo.lock
|
||||||
|
git diff HEAD -- Cargo.lock > "$here"/cargo-lock.patch
|
||||||
|
|
||||||
|
cd "$here"
|
||||||
|
rm -rf "$checkout"
|
|
@ -9,7 +9,7 @@
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, boost
|
, boost
|
||||||
, bash
|
, bash
|
||||||
, jack2Full
|
, jack2
|
||||||
, supercollider
|
, supercollider
|
||||||
, qwt
|
, qwt
|
||||||
, osmid
|
, osmid
|
||||||
|
@ -102,7 +102,7 @@ mkDerivation rec {
|
||||||
dontWrapQtApps = true;
|
dontWrapQtApps = true;
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
wrapQtApp "$out/bin/sonic-pi" \
|
wrapQtApp "$out/bin/sonic-pi" \
|
||||||
--prefix PATH : ${ruby}/bin:${bash}/bin:${supercollider}/bin:${jack2Full}/bin \
|
--prefix PATH : ${ruby}/bin:${bash}/bin:${supercollider}/bin:${jack2}/bin \
|
||||||
--set AUBIO_LIB "${aubio}/lib/libaubio.so"
|
--set AUBIO_LIB "${aubio}/lib/libaubio.so"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ lib, stdenv, fetchurl, makeWrapper
|
{ lib, stdenv, fetchurl, makeWrapper
|
||||||
, expat, fftwFloat, fontconfig, freetype, libjack2, jack2Full, libclthreads, libclxclient
|
, expat, fftwFloat, fontconfig, freetype, libjack2, jack2, libclthreads, libclxclient
|
||||||
, libsndfile, libxcb, xorg
|
, libsndfile, libxcb, xorg
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
# Make sure Jack is avalable in $PATH for tetraproc
|
# Make sure Jack is avalable in $PATH for tetraproc
|
||||||
wrapProgram $out/bin/tetraproc --prefix PATH : "${jack2Full}/bin"
|
wrapProgram $out/bin/tetraproc --prefix PATH : "${jack2}/bin"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import ./generic.nix (rec {
|
import ./generic.nix (rec {
|
||||||
version = "27.1";
|
version = "27.2";
|
||||||
sha256 = "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a";
|
sha256 = "sha256-tKfMTnjmPzeGJOCRkhW5EK9bsqCvyBn60pgnLp9Awbk=";
|
||||||
patches = [
|
patches = [
|
||||||
./tramp-detect-wrapped-gvfsd.patch
|
./tramp-detect-wrapped-gvfsd.patch
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
|
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
|
||||||
index 34a234c..b5a471c 100644
|
index 9e26c8fd6d..fa220e513c 100644
|
||||||
--- a/lisp/net/tramp-gvfs.el
|
--- a/lisp/net/tramp-gvfs.el
|
||||||
+++ b/lisp/net/tramp-gvfs.el
|
+++ b/lisp/net/tramp-gvfs.el
|
||||||
@@ -122,6 +122,7 @@
|
@@ -125,5 +125,6 @@
|
||||||
(tramp-compat-funcall 'dbus-get-unique-name :system)
|
;; for some processes. Better we don't check.
|
||||||
(tramp-compat-funcall 'dbus-get-unique-name :session)
|
(<= emacs-major-version 25)
|
||||||
(or (tramp-compat-process-running-p "gvfs-fuse-daemon")
|
(tramp-compat-process-running-p "gvfs-fuse-daemon")
|
||||||
+ (tramp-compat-process-running-p ".gvfsd-fuse-wrapped")
|
+ (tramp-compat-process-running-p ".gvfsd-fuse-wrapped")
|
||||||
(tramp-compat-process-running-p "gvfsd-fuse"))))
|
(tramp-compat-process-running-p "gvfsd-fuse"))))
|
||||||
"Non-nil when GVFS is available.")
|
"Non-nil when GVFS is available.")
|
||||||
|
|
||||||
|
|
|
@ -6,13 +6,13 @@
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "sigil";
|
pname = "sigil";
|
||||||
version = "1.4.3";
|
version = "1.5.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
repo = "Sigil";
|
repo = "Sigil";
|
||||||
owner = "Sigil-Ebook";
|
owner = "Sigil-Ebook";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1hk8kmhvkwfimbxzhwbnb8qdpf4n36cdzl9wfvi574i9pps36hnz";
|
sha256 = "sha256-BqNaIsUJE0KmFcmTjJERbclzaRe1dMjareWxUye2se0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
pythonPath = with python3Packages; [ lxml ];
|
pythonPath = with python3Packages; [ lxml ];
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
, dxflib
|
, dxflib
|
||||||
, curl
|
, curl
|
||||||
, libiodbc
|
, libiodbc
|
||||||
, lzma
|
, xz
|
||||||
, libharu
|
, libharu
|
||||||
, opencv
|
, opencv
|
||||||
, vigra
|
, vigra
|
||||||
|
@ -64,7 +64,7 @@ mkDerivation rec {
|
||||||
vigra
|
vigra
|
||||||
postgresql
|
postgresql
|
||||||
libiodbc
|
libiodbc
|
||||||
lzma
|
xz
|
||||||
qhull
|
qhull
|
||||||
giflib
|
giflib
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ lib
|
{ lib
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, lzma
|
, xz
|
||||||
, qt5
|
, qt5
|
||||||
, wrapQtAppsHook
|
, wrapQtAppsHook
|
||||||
, miniupnpc_2
|
, miniupnpc_2
|
||||||
|
@ -39,7 +39,7 @@ pythonPackages.buildPythonPackage rec {
|
||||||
service-identity
|
service-identity
|
||||||
twisted
|
twisted
|
||||||
lz4
|
lz4
|
||||||
lzma
|
xz
|
||||||
pysocks
|
pysocks
|
||||||
matplotlib
|
matplotlib
|
||||||
qtpy
|
qtpy
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ boost, cmake, fetchFromGitHub, freeglut, freetype, glew, libjpeg, libmypaint
|
{ boost, cmake, fetchFromGitHub, freeglut, freetype, glew, libjpeg, libmypaint
|
||||||
, libpng, libtiff, libusb1, lz4, lzma, lzo, openblas, pkg-config, qtbase
|
, libpng, libtiff, libusb1, lz4, xz, lzo, openblas, pkg-config, qtbase
|
||||||
, qtmultimedia, qtscript, lib, stdenv, superlu, wrapQtAppsHook, }:
|
, qtmultimedia, qtscript, lib, stdenv, superlu, wrapQtAppsHook, }:
|
||||||
let source = import ./source.nix { inherit fetchFromGitHub; };
|
let source = import ./source.nix { inherit fetchFromGitHub; };
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
|
@ -21,7 +21,7 @@ in stdenv.mkDerivation rec {
|
||||||
libtiff
|
libtiff
|
||||||
libusb1
|
libusb1
|
||||||
lz4
|
lz4
|
||||||
lzma
|
xz
|
||||||
lzo
|
lzo
|
||||||
openblas
|
openblas
|
||||||
qtbase
|
qtbase
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
{ lib, stdenv }:
|
{ lib, stdenv }:
|
||||||
|
|
||||||
{ paths }:
|
{ paths, disabledDefaultBackends ? [] }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
let installSanePath = path: ''
|
let
|
||||||
|
installSanePath = path: ''
|
||||||
if [ -e "${path}/lib/sane" ]; then
|
if [ -e "${path}/lib/sane" ]; then
|
||||||
find "${path}/lib/sane" -maxdepth 1 -not -type d | while read backend; do
|
find "${path}/lib/sane" -maxdepth 1 -not -type d | while read backend; do
|
||||||
symlink "$backend" "$out/lib/sane/$(basename "$backend")"
|
symlink "$backend" "$out/lib/sane/$(basename "$backend")"
|
||||||
|
@ -27,6 +28,10 @@ let installSanePath = path: ''
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
disableBackend = backend: ''
|
||||||
|
grep -q '${backend}' $out/etc/sane.d/dll.conf || { echo '${backend} is not a default plugin in $SANE_CONFIG_DIR/dll.conf'; exit 1; }
|
||||||
|
substituteInPlace $out/etc/sane.d/dll.conf --replace '${backend}' '# ${backend} disabled in nixos config'
|
||||||
|
'';
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "sane-config";
|
name = "sane-config";
|
||||||
|
@ -42,5 +47,7 @@ stdenv.mkDerivation {
|
||||||
}
|
}
|
||||||
|
|
||||||
mkdir -p $out/etc/sane.d $out/etc/sane.d/dll.d $out/lib/sane
|
mkdir -p $out/etc/sane.d $out/etc/sane.d/dll.d $out/lib/sane
|
||||||
'' + concatMapStrings installSanePath paths;
|
''
|
||||||
|
+ (concatMapStrings installSanePath paths)
|
||||||
|
+ (concatMapStrings disableBackend disabledDefaultBackends);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
mkDerivation, lib, kdepimTeam,
|
mkDerivation, lib, kdepimTeam,
|
||||||
extra-cmake-modules, shared-mime-info, qtbase, accounts-qt,
|
extra-cmake-modules, shared-mime-info, qtbase, accounts-qt,
|
||||||
boost, kaccounts-integration, kcompletion, kconfigwidgets, kcrash, kdbusaddons,
|
boost, kaccounts-integration, kcompletion, kconfigwidgets, kcrash, kdbusaddons,
|
||||||
kdesignerplugin, ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mysql, qttools,
|
kdesignerplugin, ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mariadb, qttools,
|
||||||
signond, lzma,
|
signond, xz,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
mkDerivation {
|
mkDerivation {
|
||||||
|
@ -21,15 +21,15 @@ mkDerivation {
|
||||||
nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
|
nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
kaccounts-integration kcompletion kconfigwidgets kcrash kdbusaddons kdesignerplugin
|
kaccounts-integration kcompletion kconfigwidgets kcrash kdbusaddons kdesignerplugin
|
||||||
ki18n kiconthemes kio kwindowsystem lzma accounts-qt qttools signond
|
ki18n kiconthemes kio kwindowsystem xz accounts-qt qttools signond
|
||||||
];
|
];
|
||||||
propagatedBuildInputs = [ boost kitemmodels ];
|
propagatedBuildInputs = [ boost kitemmodels ];
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
CXXFLAGS = [
|
CXXFLAGS = [
|
||||||
''-DNIXPKGS_MYSQL_MYSQLD=\"${lib.getBin mysql}/bin/mysqld\"''
|
''-DNIXPKGS_MYSQL_MYSQLD=\"${lib.getBin mariadb}/bin/mysqld\"''
|
||||||
''-DNIXPKGS_MYSQL_MYSQLADMIN=\"${lib.getBin mysql}/bin/mysqladmin\"''
|
''-DNIXPKGS_MYSQL_MYSQLADMIN=\"${lib.getBin mariadb}/bin/mysqladmin\"''
|
||||||
''-DNIXPKGS_MYSQL_MYSQL_INSTALL_DB=\"${lib.getBin mysql}/bin/mysql_install_db\"''
|
''-DNIXPKGS_MYSQL_MYSQL_INSTALL_DB=\"${lib.getBin mariadb}/bin/mysql_install_db\"''
|
||||||
''-DNIXPKGS_MYSQL_MYSQLCHECK=\"${lib.getBin mysql}/bin/mysqlcheck\"''
|
''-DNIXPKGS_MYSQL_MYSQLCHECK=\"${lib.getBin mariadb}/bin/mysqlcheck\"''
|
||||||
''-DNIXPKGS_POSTGRES_PG_CTL=\"\"''
|
''-DNIXPKGS_POSTGRES_PG_CTL=\"\"''
|
||||||
''-DNIXPKGS_POSTGRES_PG_UPGRADE=\"\"''
|
''-DNIXPKGS_POSTGRES_PG_UPGRADE=\"\"''
|
||||||
''-DNIXPKGS_POSTGRES_INITDB=\"\"''
|
''-DNIXPKGS_POSTGRES_INITDB=\"\"''
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
, at-spi2-atk
|
, at-spi2-atk
|
||||||
, gnutar
|
, gnutar
|
||||||
, atomEnv
|
, atomEnv
|
||||||
, kerberos
|
, libkrb5
|
||||||
}:
|
}:
|
||||||
|
|
||||||
# from justinwoo/azuredatastudio-nix
|
# from justinwoo/azuredatastudio-nix
|
||||||
|
@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
|
||||||
at-spi2-core
|
at-spi2-core
|
||||||
at-spi2-atk
|
at-spi2-atk
|
||||||
stdenv.cc.cc.lib
|
stdenv.cc.cc.lib
|
||||||
kerberos
|
libkrb5
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
targetPath
|
targetPath
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ stdenv, lib, fetchFromGitHub, makeWrapper
|
{ stdenv, lib, fetchFromGitHub, makeWrapper
|
||||||
, curl, python3, bind, iproute, bc, gitMinimal }:
|
, curl, python3, bind, iproute2, bc, gitMinimal }:
|
||||||
let
|
let
|
||||||
version = "1.23.0";
|
version = "1.23.0";
|
||||||
deps = lib.makeBinPath [
|
deps = lib.makeBinPath [
|
||||||
curl
|
curl
|
||||||
python3
|
python3
|
||||||
bind.dnsutils
|
bind.dnsutils
|
||||||
iproute
|
iproute2
|
||||||
bc
|
bc
|
||||||
gitMinimal
|
gitMinimal
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, stdenv, fetchFromGitHub, fetchpatch, python3Packages }:
|
{ lib, stdenv, fetchFromGitHub, fetchpatch, python3Packages, libspnav }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
|
@ -6,13 +6,13 @@ let
|
||||||
|
|
||||||
octoprint = stdenv.mkDerivation rec {
|
octoprint = stdenv.mkDerivation rec {
|
||||||
pname = "Cura-OctoPrintPlugin";
|
pname = "Cura-OctoPrintPlugin";
|
||||||
version = "3.5.16";
|
version = "3.5.18";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "fieldOfView";
|
owner = "fieldOfView";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "8affa8aa9796cb37129d3b7222fff03f86c936cd";
|
rev = "7bd73946fbf22d18337dc900a81a011ece26bee0";
|
||||||
sha256 = "0l4qfcashkdmpdm8nm3klz6hmi1f0bmbpb9b1yn4mvg0fam6c5xi";
|
sha256 = "057b2f5f49p96lkh2wsr9w6yh2003x4a85irqsgbzp6igmk8imdn";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [
|
propagatedBuildInputs = with python3Packages; [
|
||||||
|
@ -32,6 +32,35 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
rawmouse = stdenv.mkDerivation rec {
|
||||||
|
pname = "RawMouse";
|
||||||
|
version = "1.0.13";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "smartavionics";
|
||||||
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
sha256 = "1cj40pgsfcwliz47mkiqjbslkwcm34qb1pajc2mcljgflcnickly";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
substituteInPlace RawMouse/config.json --replace \
|
||||||
|
/usr/local/lib/libspnav.so ${libspnav}/lib/libspnav.so
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/lib/cura/plugins/RawMouse
|
||||||
|
cp -rv . $out/lib/cura/plugins/RawMouse/
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Cura plugin for HID mice such as 3Dconnexion spacemouse";
|
||||||
|
homepage = "https://github.com/smartavionics/RawMouse";
|
||||||
|
license = licenses.agpl3Plus;
|
||||||
|
maintainers = with maintainers; [ gebner ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
in self
|
in self
|
||||||
|
|
|
@ -18,13 +18,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "dbeaver-ce";
|
pname = "dbeaver-ce";
|
||||||
version = "21.0.1"; # When updating also update fetchedMavenDeps.sha256
|
version = "21.0.2"; # When updating also update fetchedMavenDeps.sha256
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "dbeaver";
|
owner = "dbeaver";
|
||||||
repo = "dbeaver";
|
repo = "dbeaver";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-9l8604STqmdoUjD+EJCp4aDk4juKsPCmFnD/WYpajxo=";
|
sha256 = "sha256-3EMSiEq1wdg4dxBU90RVVv0Hrf5dXPc1MPI0+WMk48k=";
|
||||||
};
|
};
|
||||||
|
|
||||||
fetchedMavenDeps = stdenv.mkDerivation {
|
fetchedMavenDeps = stdenv.mkDerivation {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, fetchFromGitHub, fetchpatch, mkDerivation
|
{ lib, fetchFromGitHub, fetchpatch, mkDerivation
|
||||||
, qtbase, qtsvg, qtserialport, qtwebengine, qtmultimedia, qttools
|
, qtbase, qtsvg, qtserialport, qtwebengine, qtmultimedia, qttools
|
||||||
, qtconnectivity, qtcharts, libusb-compat-0_1
|
, qtconnectivity, qtcharts, libusb-compat-0_1
|
||||||
, yacc, flex, zlib, qmake, makeDesktopItem, makeWrapper
|
, bison, flex, zlib, qmake, makeDesktopItem, makeWrapper
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
@ -29,7 +29,7 @@ in mkDerivation rec {
|
||||||
qtbase qtsvg qtserialport qtwebengine qtmultimedia qttools zlib
|
qtbase qtsvg qtserialport qtwebengine qtmultimedia qttools zlib
|
||||||
qtconnectivity qtcharts libusb-compat-0_1
|
qtconnectivity qtcharts libusb-compat-0_1
|
||||||
];
|
];
|
||||||
nativeBuildInputs = [ flex makeWrapper qmake yacc ];
|
nativeBuildInputs = [ flex makeWrapper qmake bison ];
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
# allow building with bison 3.7
|
# allow building with bison 3.7
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, libmediainfo, zlib }:
|
{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, libmediainfo, zlib }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "20.09";
|
version = "21.03";
|
||||||
pname = "mediainfo";
|
pname = "mediainfo";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
|
url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
|
||||||
sha256 = "0rqg9z7s5bk7vlvjrs4gackzg7ib05a0dffi2ihsjf5a7kw7wcir";
|
sha256 = "07h2a1lbw5ak6c9bcn8qydchl0wpgk945rf9sfcqjyv05h5wll6y";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||||
|
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
pname = "mob";
|
pname = "mob";
|
||||||
version = "1.3.0";
|
version = "1.4.0";
|
||||||
goPackagePath = "github.com/remotemobprogramming/mob";
|
goPackagePath = "github.com/remotemobprogramming/mob";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
owner = "remotemobprogramming";
|
owner = "remotemobprogramming";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
sha256 = "sha256-uzWr6wWO6niocJ8yLc1Uu9Wt/FXlCuQrC0RJkgVlphM=";
|
sha256 = "sha256-JiTRTH8ai27H1xySyKTWiu/MG0C61Tz+hVI6tkSRp+k=";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
|
|
@ -1,11 +1,27 @@
|
||||||
{ stdenv, lib, fetchurl, fetchpatch, pkg-config, freetype, harfbuzz, openjpeg
|
{ stdenv
|
||||||
, jbig2dec, libjpeg , darwin
|
, lib
|
||||||
|
, fetchurl
|
||||||
|
, fetchpatch
|
||||||
|
, pkg-config
|
||||||
|
, freetype
|
||||||
|
, harfbuzz
|
||||||
|
, openjpeg
|
||||||
|
, jbig2dec
|
||||||
|
, libjpeg
|
||||||
|
, darwin
|
||||||
, gumbo
|
, gumbo
|
||||||
, enableX11 ? true, libX11, libXext, libXi, libXrandr
|
, enableX11 ? true
|
||||||
, enableCurl ? true, curl, openssl
|
, libX11
|
||||||
, enableGL ? true, freeglut, libGLU
|
, libXext
|
||||||
|
, libXi
|
||||||
|
, libXrandr
|
||||||
|
, enableCurl ? true
|
||||||
|
, curl
|
||||||
|
, openssl
|
||||||
|
, enableGL ? true
|
||||||
|
, freeglut
|
||||||
|
, libGLU
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
# OpenJPEG version is hardcoded in package source
|
# OpenJPEG version is hardcoded in package source
|
||||||
|
@ -13,7 +29,8 @@ let
|
||||||
lib.versions.majorMinor (lib.getVersion openjpeg);
|
lib.versions.majorMinor (lib.getVersion openjpeg);
|
||||||
|
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
version = "1.18.0";
|
version = "1.18.0";
|
||||||
pname = "mupdf";
|
pname = "mupdf";
|
||||||
|
|
||||||
|
@ -52,17 +69,21 @@ in stdenv.mkDerivation rec {
|
||||||
# Use shared libraries to decrease size
|
# Use shared libraries to decrease size
|
||||||
buildFlags = [ "shared" ];
|
buildFlags = [ "shared" ];
|
||||||
|
|
||||||
makeFlags = [ "prefix=$(out) USE_SYSTEM_LIBS=yes" ];
|
makeFlags = [ "prefix=$(out)" "USE_SYSTEM_LIBS=yes" ]
|
||||||
|
++ lib.optionals (!enableX11) [ "HAVE_X11=no" ]
|
||||||
|
++ lib.optionals (!enableGL) [ "HAVE_GLUT=no" ];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut libGLU gumbo ]
|
buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg gumbo ]
|
||||||
++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
|
++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
|
||||||
++ lib.optionals enableCurl [ curl openssl ]
|
++ lib.optionals enableCurl [ curl openssl ]
|
||||||
++ lib.optionals enableGL (
|
++ lib.optionals enableGL (
|
||||||
if stdenv.isDarwin then
|
if stdenv.isDarwin then
|
||||||
with darwin.apple_sdk.frameworks; [ GLUT OpenGL ]
|
with darwin.apple_sdk.frameworks; [ GLUT OpenGL ]
|
||||||
else
|
else
|
||||||
[ freeglut libGLU ])
|
[ freeglut libGLU ]
|
||||||
;
|
)
|
||||||
|
;
|
||||||
outputs = [ "bin" "dev" "out" "man" "doc" ];
|
outputs = [ "bin" "dev" "out" "man" "doc" ];
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
|
@ -85,6 +106,7 @@ in stdenv.mkDerivation rec {
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
moveToOutput "bin" "$bin"
|
moveToOutput "bin" "$bin"
|
||||||
|
'' + lib.optionalString enableX11 ''
|
||||||
ln -s "$bin/bin/mupdf-x11" "$bin/bin/mupdf"
|
ln -s "$bin/bin/mupdf-x11" "$bin/bin/mupdf"
|
||||||
mkdir -p $bin/share/applications
|
mkdir -p $bin/share/applications
|
||||||
cat > $bin/share/applications/mupdf.desktop <<EOF
|
cat > $bin/share/applications/mupdf.desktop <<EOF
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
# This file contains all runtime glue: Bindings to optional runtime dependencies
|
||||||
|
# for pdfSupport, presentationSupport, and media playback.
|
||||||
|
{ lib, mkDerivation, wrapGAppsHook, python3Packages
|
||||||
|
|
||||||
|
# qt deps
|
||||||
|
, qtbase, qtmultimedia
|
||||||
|
|
||||||
|
# optional deps
|
||||||
|
, pdfSupport ? false, mupdf # alternatively could use ghostscript
|
||||||
|
, presentationSupport ? false, libreoffice-unwrapped
|
||||||
|
, vlcSupport ? false
|
||||||
|
, gstreamerSupport ? false, gst_all_1, gstPlugins ? (gst: [
|
||||||
|
gst.gst-plugins-base
|
||||||
|
gst.gst-plugins-good
|
||||||
|
gst.gst-plugins-bad
|
||||||
|
gst.gst-plugins-ugly
|
||||||
|
])
|
||||||
|
|
||||||
|
#, enableMySql ? false # Untested. If interested, contact maintainer.
|
||||||
|
#, enablePostgreSql ? false # Untested. If interested, contact maintainer.
|
||||||
|
#, enableJenkinsApi ? false # Untested. If interested, contact maintainer.
|
||||||
|
}:
|
||||||
|
|
||||||
|
let p = gstPlugins gst_all_1;
|
||||||
|
# If gstreamer is activated but no plugins are given, it will at runtime
|
||||||
|
# create the false illusion of being usable.
|
||||||
|
in assert gstreamerSupport -> (builtins.isList p && builtins.length p > 0);
|
||||||
|
|
||||||
|
let
|
||||||
|
# optional packages
|
||||||
|
libreofficePath = "${libreoffice-unwrapped}/lib/libreoffice/program";
|
||||||
|
|
||||||
|
# lib functions
|
||||||
|
inherit (lib.lists) optional optionals;
|
||||||
|
wrapSetVar = var: ''--set ${var} "''$${var}"'';
|
||||||
|
|
||||||
|
# base pkg/lib
|
||||||
|
baseLib = python3Packages.callPackage ./lib.nix { };
|
||||||
|
in mkDerivation {
|
||||||
|
inherit (baseLib) pname version src;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ python3Packages.wrapPython wrapGAppsHook ];
|
||||||
|
buildInputs = [ qtbase ] ++ optionals gstreamerSupport
|
||||||
|
([ qtmultimedia.bin gst_all_1.gstreamer ] ++ gstPlugins gst_all_1);
|
||||||
|
propagatedBuildInputs = optional pdfSupport mupdf
|
||||||
|
++ optional presentationSupport libreoffice-unwrapped;
|
||||||
|
pythonPath = [ baseLib ] ++ optional vlcSupport python3Packages.python-vlc;
|
||||||
|
# ++ optional enableMySql mysql-connector # Untested. If interested, contact maintainer.
|
||||||
|
# ++ optional enablePostgreSql psycopg2 # Untested. If interested, contact maintainer.
|
||||||
|
# ++ optional enableJenkinsApi jenkinsapi # Untested. If interested, contact maintainer.
|
||||||
|
|
||||||
|
PYTHONPATH = libreofficePath;
|
||||||
|
URE_BOOTSTRAP = "vnd.sun.star.pathname:${libreofficePath}/fundamentalrc";
|
||||||
|
UNO_PATH = libreofficePath;
|
||||||
|
LD_LIBRARY_PATH = libreofficePath;
|
||||||
|
JAVA_HOME = "${libreoffice-unwrapped.jdk.home}";
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
dontWrapGApps = true;
|
||||||
|
|
||||||
|
# defined in gappsWrapperHook
|
||||||
|
wrapPrefixVariables = optionals presentationSupport
|
||||||
|
[ "PYTHONPATH" "LD_LIBRARY_PATH" "JAVA_HOME" ];
|
||||||
|
makeWrapperArgs = [
|
||||||
|
"\${gappsWrapperArgs[@]}"
|
||||||
|
"\${qtWrapperArgs[@]}"
|
||||||
|
] ++ optionals presentationSupport
|
||||||
|
([ "--prefix PATH : ${libreoffice-unwrapped}/bin" ]
|
||||||
|
++ map wrapSetVar [ "URE_BOOTSTRAP" "UNO_PATH" ]);
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
install -D openlp.py $out/bin/openlp
|
||||||
|
'';
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
wrapPythonPrograms
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = baseLib.meta // {
|
||||||
|
hydraPlatforms = [ ]; # this is only the wrapper; baseLib gets built
|
||||||
|
};
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
inherit baseLib;
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,103 @@
|
||||||
|
# This file contains the base package, some of which is compiled.
|
||||||
|
# Runtime glue to optinal runtime dependencies is in 'default.nix'.
|
||||||
|
{ fetchurl, lib, qt5
|
||||||
|
|
||||||
|
# python deps
|
||||||
|
, python, buildPythonPackage
|
||||||
|
, alembic, beautifulsoup4, chardet, lxml, Mako, pyenchant
|
||||||
|
, pyqt5_with_qtwebkit, pyxdg, sip, sqlalchemy, sqlalchemy_migrate
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "openlp";
|
||||||
|
version = "2.4.6";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://get.openlp.org/${version}/OpenLP-${version}.tar.gz";
|
||||||
|
sha256 = "f63dcf5f1f8a8199bf55e806b44066ad920d26c9cf67ae432eb8cdd1e761fc30";
|
||||||
|
};
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
# FIXME: checks must be disabled because they are lacking the qt env.
|
||||||
|
# They fail like this, even if built and wrapped with all Qt and
|
||||||
|
# runtime dependencies:
|
||||||
|
#
|
||||||
|
# running install tests
|
||||||
|
# qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
|
||||||
|
# This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
|
||||||
|
#
|
||||||
|
# Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.
|
||||||
|
#
|
||||||
|
# See also https://discourse.nixos.org/t/qt-plugin-path-unset-in-test-phase/
|
||||||
|
|
||||||
|
#checkInputs = [ mock nose ];
|
||||||
|
nativeBuildInputs = [ qt5.qttools ];
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
alembic
|
||||||
|
beautifulsoup4
|
||||||
|
chardet
|
||||||
|
lxml
|
||||||
|
Mako
|
||||||
|
pyenchant
|
||||||
|
pyqt5_with_qtwebkit
|
||||||
|
pyxdg
|
||||||
|
sip
|
||||||
|
sqlalchemy
|
||||||
|
sqlalchemy_migrate
|
||||||
|
];
|
||||||
|
|
||||||
|
prePatch = ''
|
||||||
|
echo 'from vlc import *' > openlp/core/ui/media/vendor/vlc.py
|
||||||
|
'';
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
dontWrapGApps = true;
|
||||||
|
postInstall = ''
|
||||||
|
( # use subshell because of cd
|
||||||
|
tdestdir="$out/i18n"
|
||||||
|
mkdir -p "$tdestdir"
|
||||||
|
cd ./resources/i18n
|
||||||
|
for file in *.ts; do
|
||||||
|
lconvert -i "$file" -o "$tdestdir/''${file%%ts}qm"
|
||||||
|
done
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
rm -r $out/${python.sitePackages}/tests
|
||||||
|
rm -r $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Free church presentation software";
|
||||||
|
homepage = "https://openlp.org/";
|
||||||
|
downloadPage = "https://openlp.org/#downloads";
|
||||||
|
platforms = platforms.unix;
|
||||||
|
license = licenses.gpl2Only;
|
||||||
|
maintainers = [ maintainers.jorsn ];
|
||||||
|
|
||||||
|
longDescription = ''
|
||||||
|
OpenLP is a free church presentation software.
|
||||||
|
|
||||||
|
Features:
|
||||||
|
|
||||||
|
* Cross platform between Linux, Windows, OS X and FreeBSD
|
||||||
|
* Display songs, Bible verses, presentations, images, audio and video
|
||||||
|
* Control OpenLP remotely via the Android remote, iOS remote or mobile web browser
|
||||||
|
* Quickly and easily import songs from other popular presentation packages
|
||||||
|
* Easy enough to use to get up and running in less than 10 minutes
|
||||||
|
|
||||||
|
Remark: This pkg only supports sqlite dbs. If you wish to have support for
|
||||||
|
mysql or postgresql dbs, or Jenkins, please contact the maintainer.
|
||||||
|
|
||||||
|
Bugs which affect this software packaged in Nixpkgs:
|
||||||
|
|
||||||
|
1. The package must disable checks, because they are lacking the qt env.
|
||||||
|
(see pkg source and https://discourse.nixos.org/t/qt-plugin-path-unset-in-test-phase/)
|
||||||
|
2. There is a segfault on exit. Not a real problem, according to debug log, everything
|
||||||
|
shuts down correctly. Maybe related to https://forums.openlp.org/discussion/3620/crash-on-exit.
|
||||||
|
Plan: Wait for OpenLP-3, since it is already in beta 1
|
||||||
|
(2021-02-09; news: https://openlp.org/blog/).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
{ buildGoModule, fetchFromSourcehut, lib }:
|
||||||
|
|
||||||
|
buildGoModule rec {
|
||||||
|
pname = "openring";
|
||||||
|
version = "unstable-2021-04-03";
|
||||||
|
|
||||||
|
src = fetchFromSourcehut {
|
||||||
|
owner = "~sircmpwn";
|
||||||
|
repo = pname;
|
||||||
|
rev = "f13edb5dfd882ce608d61cf6b6740650ce9d84a3";
|
||||||
|
sha256 = "sha256-Z65V77JZ9jCzBg7T2+d5Agxxd+MV2R7nYcLedYP5eOE=";
|
||||||
|
};
|
||||||
|
|
||||||
|
vendorSha256 = "sha256-BbBTmkGyLrIWphXC+dBaHaVzHuXRZ+4N/Jt2k3nF7Z4=";
|
||||||
|
|
||||||
|
# The package has no tests.
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A webring for static site generators";
|
||||||
|
homepage = "https://git.sr.ht/~sircmpwn/openring";
|
||||||
|
license = licenses.gpl3Only;
|
||||||
|
maintainers = with maintainers; [ sumnerevans ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -4,7 +4,7 @@
|
||||||
, makeWrapper
|
, makeWrapper
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, which
|
, which
|
||||||
, yacc
|
, bison
|
||||||
, gnuplot
|
, gnuplot
|
||||||
, libxls
|
, libxls
|
||||||
, libxml2
|
, libxml2
|
||||||
|
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
||||||
makeWrapper
|
makeWrapper
|
||||||
pkg-config
|
pkg-config
|
||||||
which
|
which
|
||||||
yacc
|
bison
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
|
|
@ -1,29 +1,30 @@
|
||||||
{ lib
|
{ lib
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, mkDerivation
|
, mkDerivation
|
||||||
, libkcddb
|
|
||||||
, kinit
|
|
||||||
, kdelibs4support
|
|
||||||
, solid
|
|
||||||
, kxmlgui
|
|
||||||
, karchive
|
|
||||||
, kfilemetadata
|
|
||||||
, khtml
|
|
||||||
, knewstuff
|
|
||||||
, libksane
|
|
||||||
, cmake
|
, cmake
|
||||||
, exempi
|
, exempi
|
||||||
, extra-cmake-modules
|
, extra-cmake-modules
|
||||||
, libcdio
|
, karchive
|
||||||
, poppler
|
|
||||||
, makeWrapper
|
|
||||||
, kdoctools
|
, kdoctools
|
||||||
|
, kfilemetadata
|
||||||
|
, khtml
|
||||||
|
, kitemmodels
|
||||||
|
, knewstuff
|
||||||
|
, kxmlgui
|
||||||
|
, libcdio
|
||||||
|
, libkcddb
|
||||||
|
, libksane
|
||||||
|
, makeWrapper
|
||||||
|
, poppler
|
||||||
|
, qtcharts
|
||||||
|
, qtwebengine
|
||||||
|
, solid
|
||||||
, taglib
|
, taglib
|
||||||
}:
|
}:
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
name = "tellico";
|
pname = "tellico";
|
||||||
version = "3.3.3";
|
version = "3.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
# version 3.3.0 just uses 3.3 in its name
|
# version 3.3.0 just uses 3.3 in its name
|
||||||
|
@ -31,7 +32,7 @@ mkDerivation rec {
|
||||||
"https://tellico-project.org/files/tellico-${version}.tar.xz"
|
"https://tellico-project.org/files/tellico-${version}.tar.xz"
|
||||||
"https://tellico-project.org/files/tellico-${lib.versions.majorMinor version}.tar.xz"
|
"https://tellico-project.org/files/tellico-${lib.versions.majorMinor version}.tar.xz"
|
||||||
];
|
];
|
||||||
sha256 = "sha256-9cdbUTa2Mt3/yNylOSdGjgDETD74sR0dU4C58uW0Y6o=";
|
sha256 = "sha256-YXMJrAkfehe3ox4WZ19igyFbXwtjO5wxN3bmgP01jPs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -43,17 +44,18 @@ mkDerivation rec {
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
exempi
|
exempi
|
||||||
extra-cmake-modules
|
|
||||||
karchive
|
karchive
|
||||||
libkcddb
|
|
||||||
kdelibs4support
|
|
||||||
kfilemetadata
|
kfilemetadata
|
||||||
khtml
|
khtml
|
||||||
|
kitemmodels
|
||||||
knewstuff
|
knewstuff
|
||||||
kxmlgui
|
kxmlgui
|
||||||
libcdio
|
libcdio
|
||||||
|
libkcddb
|
||||||
libksane
|
libksane
|
||||||
poppler
|
poppler
|
||||||
|
qtcharts
|
||||||
|
qtwebengine
|
||||||
solid
|
solid
|
||||||
taglib
|
taglib
|
||||||
];
|
];
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
, glib
|
, glib
|
||||||
, gtk3
|
, gtk3
|
||||||
, icu
|
, icu
|
||||||
, iproute
|
, iproute2
|
||||||
, krb5
|
, krb5
|
||||||
, lib
|
, lib
|
||||||
, mesa
|
, mesa
|
||||||
|
@ -169,7 +169,7 @@ stdenv.mkDerivation rec {
|
||||||
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "$ORIGIN:$out/opt/appgate/service/:$out/opt/appgate/:${rpath}" $binary
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "$ORIGIN:$out/opt/appgate/service/:$out/opt/appgate/:${rpath}" $binary
|
||||||
done
|
done
|
||||||
|
|
||||||
wrapProgram $out/opt/appgate/appgate-driver --prefix PATH : ${lib.makeBinPath [ iproute networkmanager dnsmasq ]}
|
wrapProgram $out/opt/appgate/appgate-driver --prefix PATH : ${lib.makeBinPath [ iproute2 networkmanager dnsmasq ]}
|
||||||
wrapProgram $out/opt/appgate/linux/set_dns --set PYTHONPATH $PYTHONPATH
|
wrapProgram $out/opt/appgate/linux/set_dns --set PYTHONPATH $PYTHONPATH
|
||||||
'';
|
'';
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
, libusb1, pciutils, nss, re2
|
, libusb1, pciutils, nss, re2
|
||||||
|
|
||||||
, python2Packages, perl, pkg-config
|
, python2Packages, perl, pkg-config
|
||||||
, nspr, systemd, kerberos
|
, nspr, systemd, libkrb5
|
||||||
, util-linux, alsaLib
|
, util-linux, alsaLib
|
||||||
, bison, gperf
|
, bison, gperf
|
||||||
, glib, gtk3, dbus-glib
|
, glib, gtk3, dbus-glib
|
||||||
|
@ -135,7 +135,7 @@ let
|
||||||
buildInputs = defaultDependencies ++ [
|
buildInputs = defaultDependencies ++ [
|
||||||
nspr nss systemd
|
nspr nss systemd
|
||||||
util-linux alsaLib
|
util-linux alsaLib
|
||||||
bison gperf kerberos
|
bison gperf libkrb5
|
||||||
glib gtk3 dbus-glib
|
glib gtk3 dbus-glib
|
||||||
libXScrnSaver libXcursor libXtst libxshmfence libGLU libGL
|
libXScrnSaver libXcursor libXtst libxshmfence libGLU libGL
|
||||||
pciutils protobuf speechd libXdamage at-spi2-core
|
pciutils protobuf speechd libXdamage at-spi2-core
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses, xlibsWrapper, bzip2, zlib
|
{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses, xlibsWrapper, bzip2, zlib
|
||||||
, brotli, zstd, lzma, openssl, autoreconfHook, gettext, pkg-config, libev
|
, brotli, zstd, xz, openssl, autoreconfHook, gettext, pkg-config, libev
|
||||||
, gpm, libidn, tre, expat
|
, gpm, libidn, tre, expat
|
||||||
, # Incompatible licenses, LGPLv3 - GPLv2
|
, # Incompatible licenses, LGPLv3 - GPLv2
|
||||||
enableGuile ? false, guile ? null
|
enableGuile ? false, guile ? null
|
||||||
|
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
ncurses xlibsWrapper bzip2 zlib brotli zstd lzma
|
ncurses xlibsWrapper bzip2 zlib brotli zstd xz
|
||||||
openssl libidn tre expat libev
|
openssl libidn tre expat libev
|
||||||
]
|
]
|
||||||
++ lib.optional stdenv.isLinux gpm
|
++ lib.optional stdenv.isLinux gpm
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
, glibc
|
, glibc
|
||||||
, gtk2
|
, gtk2
|
||||||
, gtk3
|
, gtk3
|
||||||
, kerberos
|
, libkrb5
|
||||||
, libX11
|
, libX11
|
||||||
, libXScrnSaver
|
, libXScrnSaver
|
||||||
, libxcb
|
, libxcb
|
||||||
|
@ -106,7 +106,7 @@ stdenv.mkDerivation {
|
||||||
glibc
|
glibc
|
||||||
gtk2
|
gtk2
|
||||||
gtk3
|
gtk3
|
||||||
kerberos
|
libkrb5
|
||||||
mesa
|
mesa
|
||||||
libX11
|
libX11
|
||||||
libXScrnSaver
|
libXScrnSaver
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
, gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
|
, gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
|
||||||
, waylandSupport ? true, libxkbcommon
|
, waylandSupport ? true, libxkbcommon
|
||||||
, ltoSupport ? (stdenv.isLinux && stdenv.is64bit), overrideCC, buildPackages
|
, ltoSupport ? (stdenv.isLinux && stdenv.is64bit), overrideCC, buildPackages
|
||||||
, gssSupport ? true, kerberos
|
, gssSupport ? true, libkrb5
|
||||||
, pipewireSupport ? waylandSupport && webrtcSupport, pipewire
|
, pipewireSupport ? waylandSupport && webrtcSupport, pipewire
|
||||||
|
|
||||||
## privacy-related options
|
## privacy-related options
|
||||||
|
@ -174,7 +174,7 @@ buildStdenv.mkDerivation ({
|
||||||
++ lib.optional alsaSupport alsaLib
|
++ lib.optional alsaSupport alsaLib
|
||||||
++ lib.optional pulseaudioSupport libpulseaudio # only headers are needed
|
++ lib.optional pulseaudioSupport libpulseaudio # only headers are needed
|
||||||
++ lib.optional gtk3Support gtk3
|
++ lib.optional gtk3Support gtk3
|
||||||
++ lib.optional gssSupport kerberos
|
++ lib.optional gssSupport libkrb5
|
||||||
++ lib.optional waylandSupport libxkbcommon
|
++ lib.optional waylandSupport libxkbcommon
|
||||||
++ lib.optional pipewireSupport pipewire
|
++ lib.optional pipewireSupport pipewire
|
||||||
++ lib.optional (lib.versionAtLeast ffversion "82") gnum4
|
++ lib.optional (lib.versionAtLeast ffversion "82") gnum4
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
, tridactyl-native
|
, tridactyl-native
|
||||||
, fx_cast_bridge
|
, fx_cast_bridge
|
||||||
, udev
|
, udev
|
||||||
, kerberos
|
, libkrb5
|
||||||
, libva
|
, libva
|
||||||
, mesa # firefox wants gbm for drm+dmabuf
|
, mesa # firefox wants gbm for drm+dmabuf
|
||||||
}:
|
}:
|
||||||
|
@ -65,7 +65,7 @@ let
|
||||||
libs = lib.optionals stdenv.isLinux [ udev libva mesa libnotify xorg.libXScrnSaver ]
|
libs = lib.optionals stdenv.isLinux [ udev libva mesa libnotify xorg.libXScrnSaver ]
|
||||||
++ lib.optional (pipewireSupport && lib.versionAtLeast version "83") pipewire
|
++ lib.optional (pipewireSupport && lib.versionAtLeast version "83") pipewire
|
||||||
++ lib.optional ffmpegSupport ffmpeg
|
++ lib.optional ffmpegSupport ffmpeg
|
||||||
++ lib.optional gssSupport kerberos
|
++ lib.optional gssSupport libkrb5
|
||||||
++ lib.optional useGlvnd libglvnd
|
++ lib.optional useGlvnd libglvnd
|
||||||
++ lib.optionals (cfg.enableQuakeLive or false)
|
++ lib.optionals (cfg.enableQuakeLive or false)
|
||||||
(with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ])
|
(with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ])
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
, libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite, libxcb
|
, libXcursor, libXext, libXfixes, libXrender, libXScrnSaver, libXcomposite, libxcb
|
||||||
, alsaLib, libXdamage, libXtst, libXrandr, libxshmfence, expat, cups
|
, alsaLib, libXdamage, libXtst, libXrandr, libxshmfence, expat, cups
|
||||||
, dbus, gtk3, gdk-pixbuf, gcc-unwrapped, at-spi2-atk, at-spi2-core
|
, dbus, gtk3, gdk-pixbuf, gcc-unwrapped, at-spi2-atk, at-spi2-core
|
||||||
, kerberos, libdrm, mesa
|
, libkrb5, libdrm, mesa
|
||||||
, libxkbcommon, wayland # ozone/wayland
|
, libxkbcommon, wayland # ozone/wayland
|
||||||
|
|
||||||
# Command line programs
|
# Command line programs
|
||||||
|
@ -66,7 +66,7 @@ let
|
||||||
liberation_ttf curl util-linux xdg-utils wget
|
liberation_ttf curl util-linux xdg-utils wget
|
||||||
flac harfbuzz icu libpng opusWithCustomModes snappy speechd
|
flac harfbuzz icu libpng opusWithCustomModes snappy speechd
|
||||||
bzip2 libcap at-spi2-atk at-spi2-core
|
bzip2 libcap at-spi2-atk at-spi2-core
|
||||||
kerberos libdrm mesa coreutils
|
libkrb5 libdrm mesa coreutils
|
||||||
libxkbcommon wayland
|
libxkbcommon wayland
|
||||||
] ++ optional pulseSupport libpulseaudio
|
] ++ optional pulseSupport libpulseaudio
|
||||||
++ optional libvaSupport libva
|
++ optional libvaSupport libva
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
, makeWrapper
|
, makeWrapper
|
||||||
, socat
|
, socat
|
||||||
, iptables
|
, iptables
|
||||||
, iproute
|
, iproute2
|
||||||
, bridge-utils
|
, bridge-utils
|
||||||
, conntrack-tools
|
, conntrack-tools
|
||||||
, buildGoPackage
|
, buildGoPackage
|
||||||
|
@ -240,7 +240,7 @@ stdenv.mkDerivation rec {
|
||||||
kmod
|
kmod
|
||||||
socat
|
socat
|
||||||
iptables
|
iptables
|
||||||
iproute
|
iproute2
|
||||||
bridge-utils
|
bridge-utils
|
||||||
ethtool
|
ethtool
|
||||||
util-linux
|
util-linux
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ lib, fetchFromGitHub, buildGoPackage, which, go-bindata, rsync, util-linux
|
{ lib, fetchFromGitHub, buildGoPackage, which, go-bindata, rsync, util-linux
|
||||||
, coreutils, kerberos, ncurses, clang, installShellFiles
|
, coreutils, libkrb5, ncurses, clang, installShellFiles
|
||||||
, components ? [
|
, components ? [
|
||||||
"cmd/oc"
|
"cmd/oc"
|
||||||
"cmd/openshift"
|
"cmd/openshift"
|
||||||
|
@ -33,7 +33,7 @@ in buildGoPackage rec {
|
||||||
|
|
||||||
goPackagePath = "github.com/openshift/origin";
|
goPackagePath = "github.com/openshift/origin";
|
||||||
|
|
||||||
buildInputs = [ kerberos ncurses ];
|
buildInputs = [ libkrb5 ncurses ];
|
||||||
|
|
||||||
nativeBuildInputs = [ which rsync go-bindata clang installShellFiles ];
|
nativeBuildInputs = [ which rsync go-bindata clang installShellFiles ];
|
||||||
|
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "qbec";
|
pname = "qbec";
|
||||||
version = "0.14.1";
|
version = "0.14.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "splunk";
|
owner = "splunk";
|
||||||
repo = "qbec";
|
repo = "qbec";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-+CzY/ifH+U3I36uHXyO2FSkPCz+SWRpSPnxfd2LHHhY=";
|
sha256 = "sha256-F5xnW9069Xrl6isvmeYtfTZUZSiSq47HLs5/p3HCf6E=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "sha256-wtpXqIixjRYYSIPe43Q5627g6mu05WdvwCi9cXVgCBs=";
|
vendorSha256 = "sha256-wtpXqIixjRYYSIPe43Q5627g6mu05WdvwCi9cXVgCBs=";
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "velero";
|
pname = "velero";
|
||||||
version = "1.5.3";
|
version = "1.5.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
owner = "vmware-tanzu";
|
owner = "vmware-tanzu";
|
||||||
repo = "velero";
|
repo = "velero";
|
||||||
sha256 = "sha256-DZ6phJxc8n9LCSsER09K3j+pUJxkYrBZQaI4h+bcV94=";
|
sha256 = "sha256-YHBqIM3NV2L13w9WCzldUWmdBMec7ZndzYgGHblS8Dg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildFlagsArray = ''
|
buildFlagsArray = ''
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ autoconf, automake, boost, cbor-diag, cddl, fetchFromGitHub, file, libctemplate, libmaxminddb
|
{ autoconf, automake, boost, cbor-diag, cddl, fetchFromGitHub, file, libctemplate, libmaxminddb
|
||||||
, libpcap, libtins, libtool, lzma, openssl, pkg-config, lib, stdenv, tcpdump, wireshark-cli
|
, libpcap, libtins, libtool, xz, openssl, pkg-config, lib, stdenv, tcpdump, wireshark-cli
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
||||||
libpcap
|
libpcap
|
||||||
openssl
|
openssl
|
||||||
libtins
|
libtins
|
||||||
lzma
|
xz
|
||||||
libctemplate
|
libctemplate
|
||||||
libmaxminddb
|
libmaxminddb
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ stdenv, lib, fetchFromGitHub, pkgs
|
{ stdenv, lib, fetchFromGitHub, pkgs
|
||||||
, autoconf, automake, curl, iprange, iproute, ipset, iptables, iputils
|
, autoconf, automake, curl, iprange, iproute2, ipset, iptables, iputils
|
||||||
, kmod, nettools, procps, tcpdump, traceroute, util-linux, whois
|
, kmod, nettools, procps, tcpdump, traceroute, util-linux, whois
|
||||||
|
|
||||||
# If true, just install FireQOS without FireHOL
|
# If true, just install FireQOS without FireHOL
|
||||||
|
@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
nativeBuildInputs = [ autoconf automake ];
|
nativeBuildInputs = [ autoconf automake ];
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
curl iprange iproute ipset iptables iputils kmod
|
curl iprange iproute2 ipset iptables iputils kmod
|
||||||
nettools procps tcpdump traceroute util-linux whois
|
nettools procps tcpdump traceroute util-linux whois
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ lib, stdenv, fetchurl, fetchpatch, cmake, openssl, libedit, flex, bison, qt4, makeWrapper
|
{ lib, stdenv, fetchurl, fetchpatch, cmake, openssl, libedit, flex, bison, qt4, makeWrapper
|
||||||
, gcc, nettools, iproute, linuxHeaders }:
|
, gcc, nettools, iproute2, linuxHeaders }:
|
||||||
|
|
||||||
# NOTE: use $out/etc/iked.conf as sample configuration and also set: dhcp_file "/etc/iked.dhcp";
|
# NOTE: use $out/etc/iked.conf as sample configuration and also set: dhcp_file "/etc/iked.dhcp";
|
||||||
# launch with "iked -f /etc/iked.conf"
|
# launch with "iked -f /etc/iked.conf"
|
||||||
|
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake flex bison makeWrapper ];
|
nativeBuildInputs = [ cmake flex bison makeWrapper ];
|
||||||
buildInputs = [ openssl libedit qt4 nettools iproute ];
|
buildInputs = [ openssl libedit qt4 nettools iproute2 ];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
# fix build with bison3
|
# fix build with bison3
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ mkDerivation, lib, fetchFromGitHub, pkg-config, python3, cmake, ninja
|
{ mkDerivation, lib, fetchFromGitHub, pkg-config, python3, cmake, ninja
|
||||||
, qtbase, qtimageformats, libdbusmenu, hunspell, xdg-utils, ffmpeg_3, openalSoft
|
, qtbase, qtimageformats, libdbusmenu, hunspell, xdg-utils, ffmpeg_3, openalSoft
|
||||||
, lzma, lz4, xxHash, zlib, minizip, openssl, libtgvoip, microsoft_gsl, tl-expected
|
, xz, lz4, xxHash, zlib, minizip, openssl, libtgvoip, microsoft_gsl, tl-expected
|
||||||
, range-v3
|
, range-v3
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ mkDerivation rec {
|
||||||
nativeBuildInputs = [ pkg-config python3 cmake ninja ];
|
nativeBuildInputs = [ pkg-config python3 cmake ninja ];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
qtbase qtimageformats ffmpeg_3 openalSoft lzma lz4 xxHash libdbusmenu
|
qtbase qtimageformats ffmpeg_3 openalSoft xz lz4 xxHash libdbusmenu
|
||||||
zlib minizip openssl hunspell libtgvoip microsoft_gsl tl-expected range-v3
|
zlib minizip openssl hunspell libtgvoip microsoft_gsl tl-expected range-v3
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -29,11 +29,11 @@
|
||||||
assert pulseaudioSupport -> libpulseaudio != null;
|
assert pulseaudioSupport -> libpulseaudio != null;
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "5.5.7938.0228";
|
version = "5.6.13632.0328";
|
||||||
srcs = {
|
srcs = {
|
||||||
x86_64-linux = fetchurl {
|
x86_64-linux = fetchurl {
|
||||||
url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
|
url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
|
||||||
sha256 = "KM8o2tgIn0lecOM4gKdTOdk/zsohlFqtNX+ca/S6FGY=";
|
sha256 = "0nskpg3rbv40jcbih95sfdr0kfv5hjv50z9jdz1cddl8v7hbqg71";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{lib, stdenv, fetchurl, ncurses, tcl, openssl, pam, kerberos
|
{lib, stdenv, fetchurl, ncurses, tcl, openssl, pam, libkrb5
|
||||||
, openldap
|
, openldap
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
ncurses tcl openssl pam kerberos openldap
|
ncurses tcl openssl pam libkrb5 openldap
|
||||||
];
|
];
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
hardeningDisable = [ "format" ];
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
, cyrus_sasl ? null
|
, cyrus_sasl ? null
|
||||||
, gnupg ? null
|
, gnupg ? null
|
||||||
, gpgme ? null
|
, gpgme ? null
|
||||||
, kerberos ? null
|
, libkrb5 ? null
|
||||||
, headerCache ? true
|
, headerCache ? true
|
||||||
, sslSupport ? true
|
, sslSupport ? true
|
||||||
, saslSupport ? true
|
, saslSupport ? true
|
||||||
|
@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
|
||||||
[ ncurses which perl ]
|
[ ncurses which perl ]
|
||||||
++ optional headerCache gdbm
|
++ optional headerCache gdbm
|
||||||
++ optional sslSupport openssl
|
++ optional sslSupport openssl
|
||||||
++ optional gssSupport kerberos
|
++ optional gssSupport libkrb5
|
||||||
++ optional saslSupport cyrus_sasl
|
++ optional saslSupport cyrus_sasl
|
||||||
++ optional gpgmeSupport gpgme;
|
++ optional gpgmeSupport gpgme;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which
|
{ lib, stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which
|
||||||
, ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl
|
, ncurses, perl , cyrus_sasl, gss, gpgme, libkrb5, libidn, libxml2, notmuch, openssl
|
||||||
, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib
|
, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, w3m, mailcap, sqlite, zlib
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
cyrus_sasl gss gpgme kerberos libidn ncurses
|
cyrus_sasl gss gpgme libkrb5 libidn ncurses
|
||||||
notmuch openssl perl lmdb
|
notmuch openssl perl lmdb
|
||||||
mailcap sqlite
|
mailcap sqlite
|
||||||
];
|
];
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
, glibc
|
, glibc
|
||||||
, gtk2
|
, gtk2
|
||||||
, gtk3
|
, gtk3
|
||||||
, kerberos
|
, libkrb5
|
||||||
, libX11
|
, libX11
|
||||||
, libXScrnSaver
|
, libXScrnSaver
|
||||||
, libXcomposite
|
, libXcomposite
|
||||||
|
@ -94,7 +94,7 @@ stdenv.mkDerivation {
|
||||||
glibc
|
glibc
|
||||||
gtk2
|
gtk2
|
||||||
gtk3
|
gtk3
|
||||||
kerberos
|
libkrb5
|
||||||
libX11
|
libX11
|
||||||
libXScrnSaver
|
libXScrnSaver
|
||||||
libXcomposite
|
libXcomposite
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
, gpgme
|
, gpgme
|
||||||
, gtk2
|
, gtk2
|
||||||
, gtk3
|
, gtk3
|
||||||
, kerberos
|
, libkrb5
|
||||||
, libcanberra
|
, libcanberra
|
||||||
, libGL
|
, libGL
|
||||||
, libGLU
|
, libGLU
|
||||||
|
@ -93,7 +93,7 @@ stdenv.mkDerivation {
|
||||||
glibc
|
glibc
|
||||||
gtk2
|
gtk2
|
||||||
gtk3
|
gtk3
|
||||||
kerberos
|
libkrb5
|
||||||
libX11
|
libX11
|
||||||
libXScrnSaver
|
libXScrnSaver
|
||||||
libXcomposite
|
libXcomposite
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue