Merge master into staging-next
This commit is contained in:
commit
0373476c4a
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -20,7 +20,7 @@ Reviewing guidelines: https://nixos.org/manual/nixpkgs/unstable/#chap-reviewing-
|
|||||||
- [ ] aarch64-linux
|
- [ ] aarch64-linux
|
||||||
- [ ] x86_64-darwin
|
- [ ] x86_64-darwin
|
||||||
- [ ] aarch64-darwin
|
- [ ] aarch64-darwin
|
||||||
- [ ] For non-Linux: Is `sandbox = true` set in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/#sec-conf-file))
|
- [ ] For non-Linux: Is `sandbox = true` set in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/command-ref/conf-file.html))
|
||||||
- [ ] Tested, as applicable:
|
- [ ] Tested, as applicable:
|
||||||
- [NixOS test(s)](https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests) (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
|
- [NixOS test(s)](https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests) (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
|
||||||
- and/or [package tests](https://nixos.org/manual/nixpkgs/unstable/#sec-package-tests)
|
- and/or [package tests](https://nixos.org/manual/nixpkgs/unstable/#sec-package-tests)
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
This file is for options that NixOS and nix-darwin have in common.
|
This file is for options that NixOS and nix-darwin have in common.
|
||||||
|
|
||||||
Platform-specific code is in the respective default.nix files.
|
Platform-specific code is in the respective default.nix files.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
{ config, lib, options, pkgs, ... }:
|
{ config, lib, options, pkgs, ... }:
|
||||||
let
|
let
|
||||||
@ -27,6 +27,16 @@ let
|
|||||||
settingsModule = { config, ... }: {
|
settingsModule = { config, ... }: {
|
||||||
freeformType = format.type;
|
freeformType = format.type;
|
||||||
options = {
|
options = {
|
||||||
|
apiBaseUrl = mkOption {
|
||||||
|
description = ''
|
||||||
|
API base URL that the agent will connect to.
|
||||||
|
|
||||||
|
When using Hercules CI Enterprise, set this to the URL where your
|
||||||
|
Hercules CI server is reachable.
|
||||||
|
'';
|
||||||
|
type = types.str;
|
||||||
|
default = "https://hercules-ci.com";
|
||||||
|
};
|
||||||
baseDirectory = mkOption {
|
baseDirectory = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/hercules-ci-agent";
|
default = "/var/lib/hercules-ci-agent";
|
||||||
@ -55,6 +65,25 @@ let
|
|||||||
type = types.either types.ints.positive (types.enum [ "auto" ]);
|
type = types.either types.ints.positive (types.enum [ "auto" ]);
|
||||||
default = "auto";
|
default = "auto";
|
||||||
};
|
};
|
||||||
|
labels = mkOption {
|
||||||
|
description = ''
|
||||||
|
A key-value map of user data.
|
||||||
|
|
||||||
|
This data will be available to organization members in the dashboard and API.
|
||||||
|
|
||||||
|
The values can be of any TOML type that corresponds to a JSON type, but arrays
|
||||||
|
can not contain tables/objects due to limitations of the TOML library. Values
|
||||||
|
involving arrays of non-primitive types may not be representable currently.
|
||||||
|
'';
|
||||||
|
type = format.type;
|
||||||
|
defaultText = literalExpression ''
|
||||||
|
{
|
||||||
|
agent.source = "..."; # One of "nixpkgs", "flake", "override"
|
||||||
|
lib.version = "...";
|
||||||
|
pkgs.version = "...";
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
workDirectory = mkOption {
|
workDirectory = mkOption {
|
||||||
description = ''
|
description = ''
|
||||||
The directory in which temporary subdirectories are created for task state. This includes sources for Nix evaluation.
|
The directory in which temporary subdirectories are created for task state. This includes sources for Nix evaluation.
|
||||||
@ -66,6 +95,8 @@ let
|
|||||||
staticSecretsDirectory = mkOption {
|
staticSecretsDirectory = mkOption {
|
||||||
description = ''
|
description = ''
|
||||||
This is the default directory to look for statically configured secrets like <literal>cluster-join-token.key</literal>.
|
This is the default directory to look for statically configured secrets like <literal>cluster-join-token.key</literal>.
|
||||||
|
|
||||||
|
See also <literal>clusterJoinTokenPath</literal> and <literal>binaryCachesPath</literal> for fine-grained configuration.
|
||||||
'';
|
'';
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = config.baseDirectory + "/secrets";
|
default = config.baseDirectory + "/secrets";
|
||||||
@ -74,24 +105,48 @@ let
|
|||||||
clusterJoinTokenPath = mkOption {
|
clusterJoinTokenPath = mkOption {
|
||||||
description = ''
|
description = ''
|
||||||
Location of the cluster-join-token.key file.
|
Location of the cluster-join-token.key file.
|
||||||
|
|
||||||
|
You can retrieve the contents of the file when creating a new agent via
|
||||||
|
<link xlink:href="https://hercules-ci.com/dashboard">https://hercules-ci.com/dashboard</link>.
|
||||||
|
|
||||||
|
As this value is confidential, it should not be in the store, but
|
||||||
|
installed using other means, such as agenix, NixOps
|
||||||
|
<literal>deployment.keys</literal>, or manual installation.
|
||||||
|
|
||||||
|
The contents of the file are used for authentication between the agent and the API.
|
||||||
'';
|
'';
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = config.staticSecretsDirectory + "/cluster-join-token.key";
|
default = config.staticSecretsDirectory + "/cluster-join-token.key";
|
||||||
defaultText = literalExpression ''staticSecretsDirectory + "/cluster-join-token.key"'';
|
defaultText = literalExpression ''staticSecretsDirectory + "/cluster-join-token.key"'';
|
||||||
# internal: It's a bit too detailed to show by default in the docs,
|
|
||||||
# but useful to define explicitly to allow reuse by other modules.
|
|
||||||
internal = true;
|
|
||||||
};
|
};
|
||||||
binaryCachesPath = mkOption {
|
binaryCachesPath = mkOption {
|
||||||
description = ''
|
description = ''
|
||||||
Location of the binary-caches.json file.
|
Path to a JSON file containing binary cache secret keys.
|
||||||
|
|
||||||
|
As these values are confidential, they should not be in the store, but
|
||||||
|
copied over using other means, such as agenix, NixOps
|
||||||
|
<literal>deployment.keys</literal>, or manual installation.
|
||||||
|
|
||||||
|
The format is described on <link xlink:href="https://docs.hercules-ci.com/hercules-ci-agent/binary-caches-json/">https://docs.hercules-ci.com/hercules-ci-agent/binary-caches-json/</link>.
|
||||||
'';
|
'';
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = config.staticSecretsDirectory + "/binary-caches.json";
|
default = config.staticSecretsDirectory + "/binary-caches.json";
|
||||||
defaultText = literalExpression ''staticSecretsDirectory + "/binary-caches.json"'';
|
defaultText = literalExpression ''staticSecretsDirectory + "/binary-caches.json"'';
|
||||||
# internal: It's a bit too detailed to show by default in the docs,
|
};
|
||||||
# but useful to define explicitly to allow reuse by other modules.
|
secretsJsonPath = mkOption {
|
||||||
internal = true;
|
description = ''
|
||||||
|
Path to a JSON file containing secrets for effects.
|
||||||
|
|
||||||
|
As these values are confidential, they should not be in the store, but
|
||||||
|
copied over using other means, such as agenix, NixOps
|
||||||
|
<literal>deployment.keys</literal>, or manual installation.
|
||||||
|
|
||||||
|
The format is described on <link xlink:href="https://docs.hercules-ci.com/hercules-ci-agent/secrets-json/">https://docs.hercules-ci.com/hercules-ci-agent/secrets-json/</link>.
|
||||||
|
|
||||||
|
'';
|
||||||
|
type = types.path;
|
||||||
|
default = config.staticSecretsDirectory + "/secrets.json";
|
||||||
|
defaultText = literalExpression ''staticSecretsDirectory + "/secrets.json"'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -177,7 +232,7 @@ in
|
|||||||
|
|
||||||
These are written as options instead of let binding to allow sharing with
|
These are written as options instead of let binding to allow sharing with
|
||||||
default.nix on both NixOS and nix-darwin.
|
default.nix on both NixOS and nix-darwin.
|
||||||
*/
|
*/
|
||||||
tomlFile = mkOption {
|
tomlFile = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
internal = true;
|
internal = true;
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
This file is for NixOS-specific options and configs.
|
This file is for NixOS-specific options and configs.
|
||||||
|
|
||||||
Code that is shared with nix-darwin goes in common.nix.
|
Code that is shared with nix-darwin goes in common.nix.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
{ pkgs, config, lib, ... }:
|
{ pkgs, config, lib, ... }:
|
||||||
let
|
let
|
||||||
|
@ -1,20 +1,17 @@
|
|||||||
{ fetchFromGitHub, lib, rustPlatform, stdenv, SystemConfiguration }:
|
{ lib, rustPlatform, fetchFromGitHub, stdenv, SystemConfiguration }:
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "joshuto";
|
pname = "joshuto";
|
||||||
version = "0.9.1";
|
version = "0.9.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "kamiyaa";
|
owner = "kamiyaa";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-+qKOvFoEF/gZL4ijL8lIRWE9ZWJM2eBlk29Lk46jAfQ=";
|
sha256 = "sha256-9TGHSGYCzU6uAIO4zZ/6+B4oVPE6SD9Phl4dShylW5o=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# upstream includes an outdated Cargo.lock that stops cargo from compiling
|
cargoSha256 = "sha256-g8YYOk2RW4GPdkWlvAxd5KFdV4S1l5yKEzNm9OAc8RI=";
|
||||||
cargoPatches = [ ./fix-cargo-lock.patch ];
|
|
||||||
|
|
||||||
cargoSha256 = "sha256-JlekxU9pMkHNsIcH3+7b2I6MYUlxRqNX+0wwyVrQMAE=";
|
|
||||||
|
|
||||||
buildInputs = lib.optional stdenv.isDarwin SystemConfiguration;
|
buildInputs = lib.optional stdenv.isDarwin SystemConfiguration;
|
||||||
|
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
--- a/Cargo.lock
|
|
||||||
+++ b/Cargo.lock
|
|
||||||
@@ -512,7 +512,7 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "joshuto"
|
|
||||||
-version = "0.9.0"
|
|
||||||
+version = "0.9.1"
|
|
||||||
dependencies = [
|
|
||||||
"alphanumeric-sort",
|
|
||||||
"chrono",
|
|
@ -3,6 +3,7 @@
|
|||||||
, lib
|
, lib
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, ncurses
|
, ncurses
|
||||||
|
, perl
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, python3
|
, python3
|
||||||
, fontconfig
|
, fontconfig
|
||||||
@ -48,7 +49,7 @@ rustPlatform.buildRustPackage rec {
|
|||||||
pkg-config
|
pkg-config
|
||||||
python3
|
python3
|
||||||
ncurses # tic for terminfo
|
ncurses # tic for terminfo
|
||||||
];
|
] ++ lib.optional stdenv.isDarwin perl;
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
fontconfig
|
fontconfig
|
||||||
@ -102,5 +103,7 @@ rustPlatform.buildRustPackage rec {
|
|||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [ SuperSandro2000 ];
|
maintainers = with maintainers; [ SuperSandro2000 ];
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
|
# Fails on missing UserNotifications framework while linking
|
||||||
|
broken = stdenv.isDarwin;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,24 +1,44 @@
|
|||||||
{ lib, stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, gdk-pixbuf
|
||||||
|
, gnome-themes-extra
|
||||||
|
, gtk-engine-murrine
|
||||||
|
, librsvg
|
||||||
|
, sassc
|
||||||
|
, which
|
||||||
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "qogir-theme";
|
pname = "qogir-theme";
|
||||||
version = "2021-08-02";
|
version = "2021-11-17";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "vinceliuice";
|
owner = "vinceliuice";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-U048qNBfxjx/5iHIXcqAwXfIwmux+sw4hVQkN3TDLzk=";
|
sha256 = "1ri2dh34vw2pfv0lxzk9f4755v0d4ilnr6fzj3raw9b5fp5zzi91";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ gdk-pixbuf librsvg ];
|
nativeBuildInputs = [
|
||||||
|
sassc
|
||||||
|
which
|
||||||
|
];
|
||||||
|
|
||||||
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
|
buildInputs = [
|
||||||
|
gdk-pixbuf # pixbuf engine for Gtk2
|
||||||
|
gnome-themes-extra # adwaita engine for Gtk2
|
||||||
|
librsvg # pixbuf loader for svg
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedUserEnvPkgs = [
|
||||||
|
gtk-engine-murrine # murrine engine for Gtk2
|
||||||
|
];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
patchShebangs .
|
patchShebangs .
|
||||||
mkdir -p $out/share/themes
|
mkdir -p $out/share/themes
|
||||||
name= ./install.sh -d $out/share/themes
|
name= ./install.sh -t all -d $out/share/themes
|
||||||
mkdir -p $out/share/doc/${pname}
|
mkdir -p $out/share/doc/${pname}
|
||||||
cp -a src/firefox $out/share/doc/${pname}
|
cp -a src/firefox $out/share/doc/${pname}
|
||||||
rm $out/share/themes/*/{AUTHORS,COPYING}
|
rm $out/share/themes/*/{AUTHORS,COPYING}
|
||||||
|
44
pkgs/data/themes/rose-pine-gtk/default.nix
Normal file
44
pkgs/data/themes/rose-pine-gtk/default.nix
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{ stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, lib
|
||||||
|
, gnome-themes-extra
|
||||||
|
, gtk-engine-murrine
|
||||||
|
, gtk_engines
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "rose-pine-gtk-theme";
|
||||||
|
version = "unstable-2021-02-22";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "rose-pine";
|
||||||
|
repo = "gtk";
|
||||||
|
rev = "9cd2dd449f911973ec549231a57a070d256da9fd";
|
||||||
|
sha256 = "0lqx8dmv754ix3xbg7h440x964n0bg4lb06vbzvsydnbx79h7lvy";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
gnome-themes-extra # adwaita engine for Gtk2
|
||||||
|
gtk_engines # pixmap engine for Gtk2
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedUserEnvPkgs = [
|
||||||
|
gtk-engine-murrine # murrine engine for Gtk2
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
mkdir -p $out/share/themes
|
||||||
|
cp -a Rose-Pine $out/share/themes
|
||||||
|
rm $out/share/themes/*/LICENSE
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Rosé Pine theme for GTK";
|
||||||
|
homepage = "https://github.com/rose-pine/gtk";
|
||||||
|
license = licenses.gpl3Only;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = [ maintainers.romildo ];
|
||||||
|
};
|
||||||
|
}
|
@ -88,4 +88,6 @@ self: super: {
|
|||||||
executableHaskellDepends = drv.executableToolDepends or [] ++ [ self.repline ];
|
executableHaskellDepends = drv.executableToolDepends or [] ++ [ self.repline ];
|
||||||
}) super.hnix);
|
}) super.hnix);
|
||||||
|
|
||||||
|
mime-string = disableOptimization super.mime-string;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -106,4 +106,6 @@ self: super: {
|
|||||||
# https://github.com/haskellari/time-compat/issues/23
|
# https://github.com/haskellari/time-compat/issues/23
|
||||||
time-compat = dontCheck super.time-compat;
|
time-compat = dontCheck super.time-compat;
|
||||||
|
|
||||||
|
mime-string = disableOptimization super.mime-string;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -129,4 +129,6 @@ self: super: {
|
|||||||
vector = dontCheck super.vector;
|
vector = dontCheck super.vector;
|
||||||
|
|
||||||
ghc-api-compat = doDistribute super.ghc-api-compat_8_6;
|
ghc-api-compat = doDistribute super.ghc-api-compat_8_6;
|
||||||
|
|
||||||
|
mime-string = disableOptimization super.mime-string;
|
||||||
}
|
}
|
||||||
|
@ -128820,8 +128820,8 @@ self: {
|
|||||||
}:
|
}:
|
||||||
mkDerivation {
|
mkDerivation {
|
||||||
pname = "hercules-ci-agent";
|
pname = "hercules-ci-agent";
|
||||||
version = "0.8.3";
|
version = "0.8.4";
|
||||||
sha256 = "0gwbks6yrjjrys39043wdyx1v0fg8ailv3149b2xi4d49p4jin40";
|
sha256 = "1w93027i5kddn1rj5dgnmvgsadfv3s6ziyga4k3mp094wx2g6syy";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
libraryHaskellDepends = [
|
libraryHaskellDepends = [
|
||||||
@ -128959,8 +128959,8 @@ self: {
|
|||||||
}:
|
}:
|
||||||
mkDerivation {
|
mkDerivation {
|
||||||
pname = "hercules-ci-cli";
|
pname = "hercules-ci-cli";
|
||||||
version = "0.2.3";
|
version = "0.2.4";
|
||||||
sha256 = "10scykaf8kadvgvc5pxjdyn8zvxqmp5gkdy0n82p4mmf2chmdzqz";
|
sha256 = "0imx1srpi518616jif62l542qpw2wcfiq5a622rg5w76k2vz0hpl";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
libraryHaskellDepends = [
|
libraryHaskellDepends = [
|
||||||
@ -129016,8 +129016,8 @@ self: {
|
|||||||
}:
|
}:
|
||||||
mkDerivation {
|
mkDerivation {
|
||||||
pname = "hercules-ci-cnix-store";
|
pname = "hercules-ci-cnix-store";
|
||||||
version = "0.2.1.0";
|
version = "0.2.1.1";
|
||||||
sha256 = "18165kwcklp6hg9sh5rmqprnc0ixiq8l9w4y87c9m54dbpwdp4na";
|
sha256 = "0cxir973y3hkm34ci7hc5zsp94s31nnrlkgspwwdd2rakyf4525i";
|
||||||
libraryHaskellDepends = [
|
libraryHaskellDepends = [
|
||||||
base bytestring conduit containers inline-c inline-c-cpp protolude
|
base bytestring conduit containers inline-c inline-c-cpp protolude
|
||||||
template-haskell unix unliftio-core vector
|
template-haskell unix unliftio-core vector
|
||||||
|
@ -5,10 +5,11 @@
|
|||||||
, meson
|
, meson
|
||||||
, ninja
|
, ninja
|
||||||
, wayland-scanner
|
, wayland-scanner
|
||||||
|
, libGL
|
||||||
, libX11
|
, libX11
|
||||||
, mesa
|
, mesa
|
||||||
, libGL
|
|
||||||
, wayland
|
, wayland
|
||||||
|
, wayland-protocols
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -41,7 +42,7 @@ let
|
|||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "egl-wayland";
|
pname = "egl-wayland";
|
||||||
version = "1.1.7";
|
version = "1.1.9";
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
@ -49,7 +50,7 @@ in stdenv.mkDerivation rec {
|
|||||||
owner = "Nvidia";
|
owner = "Nvidia";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-pqpJ6Uo50BouBU0wGaL21VH5rDiVHKAvJtfzL0YInXU=";
|
sha256 = "sha256-rcmGVEcOtKTR8sVkHV7Xb+8NuKWUapYn+/Fswi4z6Mc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
depsBuildBuild = [
|
depsBuildBuild = [
|
||||||
@ -65,10 +66,11 @@ in stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
eglexternalplatform
|
eglexternalplatform
|
||||||
|
libGL
|
||||||
libX11
|
libX11
|
||||||
mesa
|
mesa
|
||||||
libGL
|
|
||||||
wayland
|
wayland
|
||||||
|
wayland-protocols
|
||||||
];
|
];
|
||||||
|
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
|
@ -13,13 +13,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "notcurses";
|
pname = "notcurses";
|
||||||
version = "2.4.8";
|
version = "2.4.9";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "dankamongmen";
|
owner = "dankamongmen";
|
||||||
repo = "notcurses";
|
repo = "notcurses";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-mVSToryo7+zW1mow8eJT8GrXYlGe/BeSheJtJDKAgzo=";
|
sha256 = "sha256-J7yTNMvmcm69B+yF0PYLXFG8kkcnffWyUx3kEFU0ToI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
@ -9,19 +9,18 @@
|
|||||||
, importlib-resources
|
, importlib-resources
|
||||||
, pytest-xdist
|
, pytest-xdist
|
||||||
, pytestCheckHook
|
, pytestCheckHook
|
||||||
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "alembic";
|
pname = "alembic";
|
||||||
version = "1.7.4";
|
version = "1.7.5";
|
||||||
format = "setuptools";
|
format = "setuptools";
|
||||||
|
|
||||||
disabled = pythonOlder "3.6";
|
disabled = pythonOlder "3.6";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "9d33f3ff1488c4bfab1e1a6dfebbf085e8a8e1a3e047a43ad29ad1f67f012a1d";
|
sha256 = "sha256-fDKGlKLmjwPulx5jw72IWEZHA3OltTLPLJ8WAcQTsVM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
@ -44,7 +43,7 @@ buildPythonPackage rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
pytestFlagsArray = [
|
pytestFlagsArray = [
|
||||||
"--numprocesses" "auto"
|
"--numprocesses" "$NIX_BUILD_CORES"
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "graphql-subscription-manager";
|
pname = "graphql-subscription-manager";
|
||||||
version = "0.4.0";
|
version = "0.4.3";
|
||||||
|
|
||||||
disabled = pythonOlder "3.7";
|
disabled = pythonOlder "3.7";
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ buildPythonPackage rec {
|
|||||||
owner = "Danielhiversen";
|
owner = "Danielhiversen";
|
||||||
repo = "PyGraphqlWebsocketManager";
|
repo = "PyGraphqlWebsocketManager";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1176xzr9fa7gl5cm0pcv5lb45d2ms5awi601rjcr3a0a14a1i8fz";
|
sha256 = "sha256-+LP+MDeHo0svoN/o0in6xtIqrfxs+UCBQRtBe4lZt+4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "python-igraph";
|
pname = "igraph";
|
||||||
version = "0.9.8";
|
version = "0.9.8";
|
||||||
|
|
||||||
disabled = pythonOlder "3.6";
|
disabled = pythonOlder "3.6";
|
||||||
|
42
pkgs/development/python-modules/lc7001/default.nix
Normal file
42
pkgs/development/python-modules/lc7001/default.nix
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, cryptography
|
||||||
|
, fetchPypi
|
||||||
|
, pythonOlder
|
||||||
|
, poetry-core
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "lc7001";
|
||||||
|
version = "1.0.3";
|
||||||
|
format = "pyproject";
|
||||||
|
|
||||||
|
disabled = pythonOlder "3.8";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "NgnszlgmeUnfWs9onnboFRz3c4OibsNaZHjDINvoMPc=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
poetry-core
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
cryptography
|
||||||
|
];
|
||||||
|
|
||||||
|
# Project has no tests
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"lc7001"
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Python module for interacting with Legrand LC7001";
|
||||||
|
homepage = "https://github.com/rtyle/lc7001";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ fab ];
|
||||||
|
};
|
||||||
|
}
|
@ -5,7 +5,7 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
version = "5.0.2";
|
version = "5.1.1";
|
||||||
pname = "xdg";
|
pname = "xdg";
|
||||||
disabled = isPy27;
|
disabled = isPy27;
|
||||||
format = "pyproject";
|
format = "pyproject";
|
||||||
@ -14,7 +14,7 @@ buildPythonPackage rec {
|
|||||||
owner = "srstevenson";
|
owner = "srstevenson";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-wZfihMrq83Bye5CE5p7bTlI9Z7CsCkSd8Art5ws4vsY=";
|
sha256 = "sha256-z/Zvo2WGw9qA+M3Pt9r35DuxtuhL7/I75LlFEdDOJcc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ poetry-core ];
|
nativeBuildInputs = [ poetry-core ];
|
||||||
|
@ -12,51 +12,61 @@
|
|||||||
, zlib
|
, zlib
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenvNoCC.mkDerivation rec {
|
let
|
||||||
pname = "coreboot-toolchain";
|
common = arch: stdenvNoCC.mkDerivation rec {
|
||||||
version = "4.15";
|
pname = "coreboot-toolchain-${arch}";
|
||||||
|
version = "4.15";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://review.coreboot.org/coreboot";
|
url = "https://review.coreboot.org/coreboot";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1qsb2ca22h5f0iwc254qsfm7qcn8967ir8aybdxa1pakgmnfsyp9";
|
sha256 = "1qsb2ca22h5f0iwc254qsfm7qcn8967ir8aybdxa1pakgmnfsyp9";
|
||||||
fetchSubmodules = false;
|
fetchSubmodules = false;
|
||||||
leaveDotGit = true;
|
leaveDotGit = true;
|
||||||
postFetch = ''
|
postFetch = ''
|
||||||
patchShebangs $out/util/crossgcc/buildgcc
|
patchShebangs $out/util/crossgcc/buildgcc
|
||||||
PATH=${lib.makeBinPath [ getopt ]}:$PATH $out/util/crossgcc/buildgcc -W > $out/.crossgcc_version
|
PATH=${lib.makeBinPath [ getopt ]}:$PATH $out/util/crossgcc/buildgcc -W > $out/.crossgcc_version
|
||||||
rm -rf $out/.git
|
rm -rf $out/.git
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ bison curl git perl ];
|
||||||
|
buildInputs = [ flex gnat11 zlib ];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
dontConfigure = true;
|
||||||
|
dontInstall = true;
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
mkdir -p util/crossgcc/tarballs
|
||||||
|
|
||||||
|
${lib.concatMapStringsSep "\n" (
|
||||||
|
file: "ln -s ${file.archive} util/crossgcc/tarballs/${file.name}"
|
||||||
|
) (callPackage ./stable.nix { })
|
||||||
|
}
|
||||||
|
|
||||||
|
patchShebangs util/genbuild_h/genbuild_h.sh
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
export CROSSGCC_VERSION=$(cat .crossgcc_version)
|
||||||
|
make crossgcc-${arch} CPUS=$NIX_BUILD_CORES DEST=$out
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://www.coreboot.org";
|
||||||
|
description = "coreboot toolchain for ${arch} targets";
|
||||||
|
license = with licenses; [ bsd2 bsd3 gpl2 lgpl2Plus gpl3Plus ];
|
||||||
|
maintainers = with maintainers; [ felixsinger ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
in {
|
||||||
nativeBuildInputs = [ bison curl git perl ];
|
i386 = common "i386";
|
||||||
buildInputs = [ flex gnat11 zlib ];
|
x86_64 = common "x64";
|
||||||
|
arm = common "arm";
|
||||||
enableParallelBuilding = true;
|
aarch64 = common "aarch64";
|
||||||
dontConfigure = true;
|
riscv = common "riscv";
|
||||||
dontInstall = true;
|
ppc64 = common "ppc64";
|
||||||
|
nds32le = common "nds32le";
|
||||||
postPatch = ''
|
|
||||||
mkdir -p util/crossgcc/tarballs
|
|
||||||
|
|
||||||
${lib.concatMapStringsSep "\n" (
|
|
||||||
file: "ln -s ${file.archive} util/crossgcc/tarballs/${file.name}"
|
|
||||||
) (callPackage ./stable.nix { })
|
|
||||||
}
|
|
||||||
|
|
||||||
patchShebangs util/genbuild_h/genbuild_h.sh
|
|
||||||
'';
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
export CROSSGCC_VERSION=$(cat .crossgcc_version)
|
|
||||||
make crossgcc-i386 CPUS=$NIX_BUILD_CORES DEST=$out
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
homepage = "https://www.coreboot.org";
|
|
||||||
description = "coreboot toolchain";
|
|
||||||
license = with licenses; [ bsd2 bsd3 gpl2 lgpl2Plus gpl3Plus ];
|
|
||||||
maintainers = with maintainers; [ felixsinger ];
|
|
||||||
platforms = platforms.linux;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
@ -1,53 +1,104 @@
|
|||||||
{ lib, stdenv, fetchFromGitHub, which, pkg-config, makeWrapper
|
{ lib
|
||||||
, ffmpeg, libGLU, libGL, freetype, libxml2, python3
|
, stdenv
|
||||||
, libobjc, AppKit, Foundation
|
, enableNvidiaCgToolkit ? false
|
||||||
, alsa-lib ? null
|
, withVulkan ? stdenv.isLinux
|
||||||
, libdrm ? null
|
, alsa-lib
|
||||||
, libpulseaudio ? null
|
, AppKit
|
||||||
, libv4l ? null
|
, fetchFromGitHub
|
||||||
, libX11 ? null
|
, ffmpeg
|
||||||
, libXdmcp ? null
|
, Foundation
|
||||||
, libXext ? null
|
, freetype
|
||||||
, libXxf86vm ? null
|
, libdrm
|
||||||
, mesa ? null
|
, libGL
|
||||||
, SDL2 ? null
|
, libGLU
|
||||||
, udev ? null
|
, libobjc
|
||||||
, enableNvidiaCgToolkit ? false, nvidia_cg_toolkit ? null
|
, libpulseaudio
|
||||||
, withVulkan ? stdenv.isLinux, vulkan-loader ? null
|
, libv4l
|
||||||
, wayland
|
, libX11
|
||||||
|
, libXdmcp
|
||||||
|
, libXext
|
||||||
, libxkbcommon
|
, libxkbcommon
|
||||||
|
, libxml2
|
||||||
|
, libXxf86vm
|
||||||
|
, makeWrapper
|
||||||
|
, mesa
|
||||||
|
, nvidia_cg_toolkit
|
||||||
|
, pkg-config
|
||||||
|
, python3
|
||||||
|
, SDL2
|
||||||
|
, substituteAll
|
||||||
|
, udev
|
||||||
|
, vulkan-loader
|
||||||
|
, wayland
|
||||||
|
, which
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
libretroSuperSrc = fetchFromGitHub {
|
||||||
|
owner = "libretro";
|
||||||
|
repo = "libretro-super";
|
||||||
|
sha256 = "sha256-4WB6/1DDec+smhMJKLCxWb4+LQlZN8v2ik69saKixkE=";
|
||||||
|
rev = "fa70d9843838df719623094965bd447e4db0d1b4";
|
||||||
|
};
|
||||||
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "retroarch-bare";
|
pname = "retroarch-bare";
|
||||||
# FIXME: retroarch >=1.9.3 doesn't load the cores
|
version = "1.9.13.2";
|
||||||
version = "1.9.2";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "libretro";
|
owner = "libretro";
|
||||||
repo = "RetroArch";
|
repo = "RetroArch";
|
||||||
sha256 = "sha256-Dwv0hl+d99FbVMG4KnkjO1aYfAw0m4x+zvrbyb/wOX8=";
|
sha256 = "sha256-fehHchn+o9QM2wIK6zYamnbFvQda32Gw0rJk8Orx00U=";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config wayland ]
|
patches = [
|
||||||
++ optional withVulkan makeWrapper;
|
# FIXME: The `retroarch.cfg` file is created once in the first run and only
|
||||||
|
# updated when needed. However, the file may have out-of-date paths
|
||||||
|
# In case of issues (e.g.: cores are not loading), please delete the
|
||||||
|
# `$XDG_CONFIG_HOME/retroarch/retroarch.cfg` file
|
||||||
|
# See: https://github.com/libretro/RetroArch/issues/13251
|
||||||
|
./fix-config.patch
|
||||||
|
];
|
||||||
|
|
||||||
buildInputs = [ ffmpeg freetype libxml2 libGLU libGL python3 SDL2 which ]
|
postPatch = ''
|
||||||
++ optional enableNvidiaCgToolkit nvidia_cg_toolkit
|
substituteInPlace retroarch.cfg \
|
||||||
++ optional withVulkan vulkan-loader
|
--replace "@libretro_directory@" "$out/lib" \
|
||||||
++ optionals stdenv.isDarwin [ libobjc AppKit Foundation ]
|
--replace "@libretro_info_path@" "$out/share/libretro/info" \
|
||||||
++ optionals stdenv.isLinux [ alsa-lib libdrm libpulseaudio libv4l libX11
|
'';
|
||||||
libXdmcp libXext libXxf86vm mesa udev
|
|
||||||
wayland libxkbcommon ];
|
nativeBuildInputs = [ pkg-config wayland ] ++
|
||||||
|
optional withVulkan makeWrapper;
|
||||||
|
|
||||||
|
buildInputs = [ ffmpeg freetype libxml2 libGLU libGL python3 SDL2 which ] ++
|
||||||
|
optional enableNvidiaCgToolkit nvidia_cg_toolkit ++
|
||||||
|
optional withVulkan vulkan-loader ++
|
||||||
|
optionals stdenv.isDarwin [ libobjc AppKit Foundation ] ++
|
||||||
|
optionals stdenv.isLinux [
|
||||||
|
alsa-lib
|
||||||
|
libdrm
|
||||||
|
libpulseaudio
|
||||||
|
libv4l
|
||||||
|
libX11
|
||||||
|
libXdmcp
|
||||||
|
libXext
|
||||||
|
libXxf86vm
|
||||||
|
mesa
|
||||||
|
udev
|
||||||
|
wayland
|
||||||
|
libxkbcommon
|
||||||
|
];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
configureFlags = lib.optionals stdenv.isLinux [ "--enable-kms" "--enable-egl" ];
|
configureFlags = lib.optionals stdenv.isLinux [ "--enable-kms" "--enable-egl" ];
|
||||||
|
|
||||||
postInstall = optionalString withVulkan ''
|
postInstall = optionalString withVulkan ''
|
||||||
|
mkdir -p $out/share/libretro/info
|
||||||
|
# TODO: ideally each core should have its own core information
|
||||||
|
cp -r ${libretroSuperSrc}/dist/info/* $out/share/libretro/info
|
||||||
wrapProgram $out/bin/retroarch --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib
|
wrapProgram $out/bin/retroarch --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
26
pkgs/misc/emulators/retroarch/fix-config.patch
Normal file
26
pkgs/misc/emulators/retroarch/fix-config.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
diff --git a/retroarch.cfg b/retroarch.cfg
|
||||||
|
index cdcb199c9f..08b9b1cf10 100644
|
||||||
|
--- a/retroarch.cfg
|
||||||
|
+++ b/retroarch.cfg
|
||||||
|
@@ -681,7 +681,7 @@
|
||||||
|
# menu_show_online_updater = true
|
||||||
|
|
||||||
|
# If disabled, will hide the ability to update cores (and core info files) inside the menu.
|
||||||
|
-# menu_show_core_updater = true
|
||||||
|
+menu_show_core_updater = false
|
||||||
|
|
||||||
|
# If disabled, the libretro core will keep running in the background when we
|
||||||
|
# are in the menu.
|
||||||
|
@@ -823,10 +823,10 @@
|
||||||
|
# rgui_browser_directory =
|
||||||
|
|
||||||
|
# Core directory for libretro core implementations.
|
||||||
|
-# libretro_directory =
|
||||||
|
+libretro_directory = @libretro_directory@
|
||||||
|
|
||||||
|
# Core info directory for libretro core information.
|
||||||
|
-# libretro_info_path =
|
||||||
|
+libretro_info_path = @libretro_info_path@
|
||||||
|
|
||||||
|
# Path to content database directory.
|
||||||
|
# content_database_path =
|
@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "g933-utils";
|
pname = "g933-utils";
|
||||||
version = "unstable-2019-08-04";
|
version = "unstable-2021-11-19";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ashkitten";
|
owner = "ashkitten";
|
||||||
repo = "g933-utils";
|
repo = "g933-utils";
|
||||||
rev = "b80cfd59fc41ae5d577c147311376dd7f7882493";
|
rev = "1fc8cec375ed0d6f72191eadec788a49f51032d1";
|
||||||
sha256 = "06napzpk3nayzixb4l4fzdiwpgmcrsbc5j9m4qip1yn6dfkin3p0";
|
sha256 = "sha256-kGLMRqZHzRuXQNTjIuLz8JPC1c/ZK38msfkTIVnaomg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "00gzfbxr5qzb9w7xkqd9jgfagb4c7p657m21b467pygzvaabbb8d";
|
cargoSha256 = "sha256-FBX5hrS8tNWN83XX+x+s/mYyvO1h6V63bXCx7y0R8bY=";
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
buildInputs = [ udev ];
|
buildInputs = [ udev ];
|
||||||
|
@ -12068,7 +12068,7 @@ with pkgs;
|
|||||||
|
|
||||||
pscid = nodePackages.pscid;
|
pscid = nodePackages.pscid;
|
||||||
|
|
||||||
coreboot-toolchain = callPackage ../development/tools/misc/coreboot-toolchain { };
|
coreboot-toolchain = callPackages ../development/tools/misc/coreboot-toolchain { };
|
||||||
|
|
||||||
remarkable-toolchain = callPackage ../development/tools/misc/remarkable/remarkable-toolchain { };
|
remarkable-toolchain = callPackage ../development/tools/misc/remarkable/remarkable-toolchain { };
|
||||||
|
|
||||||
@ -23554,6 +23554,8 @@ with pkgs;
|
|||||||
|
|
||||||
rime-data = callPackage ../data/misc/rime-data { };
|
rime-data = callPackage ../data/misc/rime-data { };
|
||||||
|
|
||||||
|
rose-pine-gtk-theme = callPackage ../data/themes/rose-pine-gtk { };
|
||||||
|
|
||||||
route159 = callPackage ../data/fonts/route159 { };
|
route159 = callPackage ../data/fonts/route159 { };
|
||||||
|
|
||||||
sampradaya = callPackage ../data/fonts/sampradaya { };
|
sampradaya = callPackage ../data/fonts/sampradaya { };
|
||||||
|
@ -4248,6 +4248,8 @@ in {
|
|||||||
|
|
||||||
lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { };
|
lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { };
|
||||||
|
|
||||||
|
lc7001 = callPackage ../development/python-modules/lc7001 { };
|
||||||
|
|
||||||
ldap = callPackage ../development/python-modules/ldap {
|
ldap = callPackage ../development/python-modules/ldap {
|
||||||
inherit (pkgs) openldap cyrus_sasl;
|
inherit (pkgs) openldap cyrus_sasl;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user