Merge staging-next into staging
This commit is contained in:
commit
0eb369d907
|
@ -540,6 +540,7 @@
|
|||
./services/monitoring/do-agent.nix
|
||||
./services/monitoring/fusion-inventory.nix
|
||||
./services/monitoring/grafana.nix
|
||||
./services/monitoring/grafana-image-renderer.nix
|
||||
./services/monitoring/grafana-reporter.nix
|
||||
./services/monitoring/graphite.nix
|
||||
./services/monitoring/hdaps.nix
|
||||
|
|
150
nixos/modules/services/monitoring/grafana-image-renderer.nix
Normal file
150
nixos/modules/services/monitoring/grafana-image-renderer.nix
Normal file
|
@ -0,0 +1,150 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.grafana-image-renderer;
|
||||
|
||||
format = pkgs.formats.json { };
|
||||
|
||||
configFile = format.generate "grafana-image-renderer-config.json" cfg.settings;
|
||||
in {
|
||||
options.services.grafana-image-renderer = {
|
||||
enable = mkEnableOption "grafana-image-renderer";
|
||||
|
||||
chromium = mkOption {
|
||||
type = types.package;
|
||||
description = ''
|
||||
The chromium to use for image rendering.
|
||||
'';
|
||||
};
|
||||
|
||||
verbose = mkEnableOption "verbosity for the service";
|
||||
|
||||
provisionGrafana = mkEnableOption "Grafana configuration for grafana-image-renderer";
|
||||
|
||||
settings = mkOption {
|
||||
type = types.submodule {
|
||||
freeformType = format.type;
|
||||
|
||||
options = {
|
||||
service = {
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 8081;
|
||||
description = ''
|
||||
The TCP port to use for the rendering server.
|
||||
'';
|
||||
};
|
||||
logging.level = mkOption {
|
||||
type = types.enum [ "error" "warning" "info" "debug" ];
|
||||
default = "info";
|
||||
description = ''
|
||||
The log-level of the <filename>grafana-image-renderer.service</filename>-unit.
|
||||
'';
|
||||
};
|
||||
};
|
||||
rendering = {
|
||||
width = mkOption {
|
||||
default = 1000;
|
||||
type = types.ints.positive;
|
||||
description = ''
|
||||
Width of the PNG used to display the alerting graph.
|
||||
'';
|
||||
};
|
||||
height = mkOption {
|
||||
default = 500;
|
||||
type = types.ints.positive;
|
||||
description = ''
|
||||
Height of the PNG used to display the alerting graph.
|
||||
'';
|
||||
};
|
||||
mode = mkOption {
|
||||
default = "default";
|
||||
type = types.enum [ "default" "reusable" "clustered" ];
|
||||
description = ''
|
||||
Rendering mode of <package>grafana-image-renderer</package>:
|
||||
<itemizedlist>
|
||||
<listitem><para><literal>default:</literal> Creates on browser-instance
|
||||
per rendering request.</para></listitem>
|
||||
<listitem><para><literal>reusable:</literal> One browser instance
|
||||
will be started and reused for each rendering request.</para></listitem>
|
||||
<listitem><para><literal>clustered:</literal> allows to precisely
|
||||
configure how many browser-instances are supposed to be used. The values
|
||||
for that mode can be declared in <literal>rendering.clustering</literal>.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
'';
|
||||
};
|
||||
args = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ "--no-sandbox" ];
|
||||
description = ''
|
||||
List of CLI flags passed to <package>chromium</package>.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
default = {};
|
||||
|
||||
description = ''
|
||||
Configuration attributes for <package>grafana-image-renderer</package>.
|
||||
|
||||
See <link xlink:href="https://github.com/grafana/grafana-image-renderer/blob/ce1f81438e5f69c7fd7c73ce08bab624c4c92e25/default.json" />
|
||||
for supported values.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
{ assertion = cfg.provisionGrafana -> config.services.grafana.enable;
|
||||
message = ''
|
||||
To provision a Grafana instance to use grafana-image-renderer,
|
||||
`services.grafana.enable` must be set to `true`!
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
services.grafana.extraOptions = mkIf cfg.provisionGrafana {
|
||||
RENDERING_SERVER_URL = "http://localhost:${toString cfg.settings.service.port}/render";
|
||||
RENDERING_CALLBACK_URL = "http://localhost:${toString config.services.grafana.port}";
|
||||
};
|
||||
|
||||
services.grafana-image-renderer.chromium = mkDefault pkgs.chromium;
|
||||
|
||||
services.grafana-image-renderer.settings = {
|
||||
rendering = mapAttrs (const mkDefault) {
|
||||
chromeBin = "${cfg.chromium}/bin/chromium";
|
||||
verboseLogging = cfg.verbose;
|
||||
timezone = config.time.timeZone;
|
||||
};
|
||||
|
||||
services = {
|
||||
logging.level = mkIf cfg.verbose (mkDefault "debug");
|
||||
metrics.enabled = mkDefault false;
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.grafana-image-renderer = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
description = " A Grafana backend plugin that handles rendering of panels & dashboards to PNGs using headless browser (Chromium/Chrome)";
|
||||
|
||||
environment = {
|
||||
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = "true";
|
||||
};
|
||||
|
||||
serviceConfig = {
|
||||
DynamicUser = true;
|
||||
PrivateTmp = true;
|
||||
ExecStart = "${pkgs.grafana-image-renderer}/bin/grafana-image-renderer server --config=${configFile}";
|
||||
Restart = "always";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with maintainers; [ ma27 ];
|
||||
}
|
|
@ -5,10 +5,11 @@ with lib;
|
|||
let
|
||||
cfg = config.services.grafana;
|
||||
opt = options.services.grafana;
|
||||
declarativePlugins = pkgs.linkFarm "grafana-plugins" (builtins.map (pkg: { name = pkg.pname; path = pkg; }) cfg.declarativePlugins);
|
||||
|
||||
envOptions = {
|
||||
PATHS_DATA = cfg.dataDir;
|
||||
PATHS_PLUGINS = "${cfg.dataDir}/plugins";
|
||||
PATHS_PLUGINS = if builtins.isNull cfg.declarativePlugins then "${cfg.dataDir}/plugins" else declarativePlugins;
|
||||
PATHS_LOGS = "${cfg.dataDir}/log";
|
||||
|
||||
SERVER_PROTOCOL = cfg.protocol;
|
||||
|
@ -260,6 +261,12 @@ in {
|
|||
defaultText = "pkgs.grafana";
|
||||
type = types.package;
|
||||
};
|
||||
declarativePlugins = mkOption {
|
||||
type = with types; nullOr (listOf path);
|
||||
default = null;
|
||||
description = "If non-null, then a list of packages containing Grafana plugins to install. If set, plugins cannot be manually installed.";
|
||||
example = literalExample "with pkgs.grafanaPlugins; [ grafana-piechart-panel ]";
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
description = "Data directory.";
|
||||
|
|
|
@ -112,17 +112,21 @@ let
|
|||
http://tools.ietf.org/html/rfc4366#section-3.1
|
||||
'';
|
||||
};
|
||||
remote_timeout = mkDefOpt types.str "30s" ''
|
||||
Timeout for requests to the remote write endpoint.
|
||||
'';
|
||||
relabel_configs = mkOpt (types.listOf promTypes.relabel_config) ''
|
||||
List of remote write relabel configurations.
|
||||
List of relabel configurations.
|
||||
'';
|
||||
name = mkOpt types.string ''
|
||||
Name of the remote write config, which if specified must be unique among remote write configs.
|
||||
Name of the remote read config, which if specified must be unique among remote read configs.
|
||||
The name will be used in metrics and logging in place of a generated value to help users distinguish between
|
||||
remote write configs.
|
||||
remote read configs.
|
||||
'';
|
||||
required_matchers = mkOpt (types.attrsOf types.str) ''
|
||||
An optional list of equality matchers which have to be
|
||||
present in a selector to query the remote read endpoint.
|
||||
'';
|
||||
remote_timeout = mkOpt types.str ''
|
||||
Timeout for requests to the remote read endpoint.
|
||||
'';
|
||||
read_recent = mkOpt types.bool ''
|
||||
Whether reads should be made for queries for time ranges that
|
||||
the local storage should have complete data for.
|
||||
'';
|
||||
basic_auth = mkOpt (types.submodule {
|
||||
options = {
|
||||
|
@ -136,30 +140,22 @@ let
|
|||
password_file = mkOpt types.str "HTTP password file";
|
||||
};
|
||||
}) ''
|
||||
Sets the `Authorization` header on every remote write request with the
|
||||
Sets the `Authorization` header on every remote read request with the
|
||||
configured username and password.
|
||||
password and password_file are mutually exclusive.
|
||||
'';
|
||||
bearer_token = mkOpt types.str ''
|
||||
Sets the `Authorization` header on every remote write request with
|
||||
Sets the `Authorization` header on every remote read request with
|
||||
the configured bearer token. It is mutually exclusive with `bearer_token_file`.
|
||||
'';
|
||||
bearer_token_file = mkOpt types.str ''
|
||||
Sets the `Authorization` header on every remote write request with the bearer token
|
||||
Sets the `Authorization` header on every remote read request with the bearer token
|
||||
read from the configured file. It is mutually exclusive with `bearer_token`.
|
||||
'';
|
||||
tls_config = mkOpt promTypes.tls_config ''
|
||||
Configures the remote write request's TLS settings.
|
||||
Configures the remote read request's TLS settings.
|
||||
'';
|
||||
proxy_url = mkOpt types.str "Optional Proxy URL.";
|
||||
metadata_config = {
|
||||
send = mkDefOpt types.bool "true" ''
|
||||
Whether metric metadata is sent to remote storage or not.
|
||||
'';
|
||||
send_interval = mkDefOpt types.str "1m" ''
|
||||
How frequently metric metadata is sent to remote storage.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -172,13 +168,12 @@ let
|
|||
http://tools.ietf.org/html/rfc4366#section-3.1
|
||||
'';
|
||||
};
|
||||
remote_timeout = mkDefOpt types.str "30s" ''
|
||||
remote_timeout = mkOpt types.str ''
|
||||
Timeout for requests to the remote write endpoint.
|
||||
'';
|
||||
relabel_configs = mkOpt (types.listOf promTypes.relabel_config) ''
|
||||
List of remote write relabel configurations.
|
||||
List of relabel configurations.
|
||||
'';
|
||||
write_relabel_configs = mkOpt (types.listOf promTypes.relabel_config) ''
|
||||
List of remote write relabel configurations.
|
||||
'';
|
||||
name = mkOpt types.string ''
|
||||
Name of the remote write config, which if specified must be unique among remote write configs.
|
||||
The name will be used in metrics and logging in place of a generated value to help users distinguish between
|
||||
|
@ -212,14 +207,50 @@ let
|
|||
Configures the remote write request's TLS settings.
|
||||
'';
|
||||
proxy_url = mkOpt types.str "Optional Proxy URL.";
|
||||
metadata_config = {
|
||||
send = mkDefOpt types.bool "true" ''
|
||||
Whether metric metadata is sent to remote storage or not.
|
||||
'';
|
||||
send_interval = mkDefOpt types.str "1m" ''
|
||||
How frequently metric metadata is sent to remote storage.
|
||||
'';
|
||||
};
|
||||
queue_config = mkOpt (types.submodule {
|
||||
options = {
|
||||
capacity = mkOpt types.int ''
|
||||
Number of samples to buffer per shard before we block reading of more
|
||||
samples from the WAL. It is recommended to have enough capacity in each
|
||||
shard to buffer several requests to keep throughput up while processing
|
||||
occasional slow remote requests.
|
||||
'';
|
||||
max_shards = mkOpt types.int ''
|
||||
Maximum number of shards, i.e. amount of concurrency.
|
||||
'';
|
||||
min_shards = mkOpt types.int ''
|
||||
Minimum number of shards, i.e. amount of concurrency.
|
||||
'';
|
||||
max_samples_per_send = mkOpt types.int ''
|
||||
Maximum number of samples per send.
|
||||
'';
|
||||
batch_send_deadline = mkOpt types.str ''
|
||||
Maximum time a sample will wait in buffer.
|
||||
'';
|
||||
min_backoff = mkOpt types.str ''
|
||||
Initial retry delay. Gets doubled for every retry.
|
||||
'';
|
||||
max_backoff = mkOpt types.str ''
|
||||
Maximum retry delay.
|
||||
'';
|
||||
};
|
||||
}) ''
|
||||
Configures the queue used to write to remote storage.
|
||||
'';
|
||||
metadata_config = mkOpt (types.submodule {
|
||||
options = {
|
||||
send = mkOpt types.bool ''
|
||||
Whether metric metadata is sent to remote storage or not.
|
||||
'';
|
||||
send_interval = mkOpt types.str ''
|
||||
How frequently metric metadata is sent to remote storage.
|
||||
'';
|
||||
};
|
||||
}) ''
|
||||
Configures the sending of series metadata to remote storage.
|
||||
Metadata configuration is subject to change at any point
|
||||
or be removed in future releases.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@ let
|
|||
exporterOpts = genAttrs [
|
||||
"apcupsd"
|
||||
"bind"
|
||||
"bird"
|
||||
"blackbox"
|
||||
"collectd"
|
||||
"dnsmasq"
|
||||
|
@ -47,6 +48,7 @@ let
|
|||
"rspamd"
|
||||
"rtl_433"
|
||||
"snmp"
|
||||
"smokeping"
|
||||
"sql"
|
||||
"surfboard"
|
||||
"tor"
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
{ config, lib, pkgs, options }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.prometheus.exporters.bird;
|
||||
in
|
||||
{
|
||||
port = 9324;
|
||||
extraOpts = {
|
||||
birdVersion = mkOption {
|
||||
type = types.enum [ 1 2 ];
|
||||
default = 2;
|
||||
description = ''
|
||||
Specifies whether BIRD1 or BIRD2 is in use.
|
||||
'';
|
||||
};
|
||||
birdSocket = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/run/bird.ctl";
|
||||
description = ''
|
||||
Path to BIRD2 (or BIRD1 v4) socket.
|
||||
'';
|
||||
};
|
||||
newMetricFormat = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Enable the new more-generic metric format.
|
||||
'';
|
||||
};
|
||||
};
|
||||
serviceOpts = {
|
||||
serviceConfig = {
|
||||
SupplementaryGroups = singleton (if cfg.birdVersion == 1 then "bird" else "bird2");
|
||||
ExecStart = ''
|
||||
${pkgs.prometheus-bird-exporter}/bin/bird_exporter \
|
||||
-web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
|
||||
-bird.socket ${cfg.birdSocket} \
|
||||
-bird.v2=${if cfg.birdVersion == 2 then "true" else "false"} \
|
||||
-format.new=${if cfg.newMetricFormat then "true" else "false"} \
|
||||
${concatStringsSep " \\\n " cfg.extraFlags}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
{ config, lib, pkgs, options }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.prometheus.exporters.smokeping;
|
||||
goDuration = types.mkOptionType {
|
||||
name = "goDuration";
|
||||
description = "Go duration (https://golang.org/pkg/time/#ParseDuration)";
|
||||
check = x: types.str.check x && builtins.match "(-?[0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+" x != null;
|
||||
inherit (types.str) merge;
|
||||
};
|
||||
in
|
||||
{
|
||||
port = 9374;
|
||||
extraOpts = {
|
||||
telemetryPath = mkOption {
|
||||
type = types.str;
|
||||
default = "/metrics";
|
||||
description = ''
|
||||
Path under which to expose metrics.
|
||||
'';
|
||||
};
|
||||
pingInterval = mkOption {
|
||||
type = goDuration;
|
||||
default = "1s";
|
||||
description = ''
|
||||
Interval between pings.
|
||||
'';
|
||||
};
|
||||
buckets = mkOption {
|
||||
type = types.commas;
|
||||
default = "5e-05,0.0001,0.0002,0.0004,0.0008,0.0016,0.0032,0.0064,0.0128,0.0256,0.0512,0.1024,0.2048,0.4096,0.8192,1.6384,3.2768,6.5536,13.1072,26.2144";
|
||||
description = ''
|
||||
List of buckets to use for the response duration histogram.
|
||||
'';
|
||||
};
|
||||
hosts = mkOption {
|
||||
type = with types; listOf str;
|
||||
description = ''
|
||||
List of endpoints to probe.
|
||||
'';
|
||||
};
|
||||
};
|
||||
serviceOpts = {
|
||||
serviceConfig = {
|
||||
AmbientCapabilities = [ "CAP_NET_RAW" ];
|
||||
ExecStart = ''
|
||||
${pkgs.prometheus-smokeping-prober}/bin/smokeping_prober \
|
||||
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
|
||||
--web.telemetry-path ${cfg.telemetryPath} \
|
||||
--buckets ${cfg.buckets} \
|
||||
--ping.interval ${cfg.pingInterval} \
|
||||
--privileged \
|
||||
${concatStringsSep " \\\n " cfg.extraFlags} \
|
||||
${concatStringsSep " " cfg.hosts}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -17,6 +17,10 @@ let
|
|||
};
|
||||
|
||||
extraNodeConfs = {
|
||||
declarativePlugins = {
|
||||
services.grafana.declarativePlugins = [ pkgs.grafanaPlugins.grafana-clock-panel ];
|
||||
};
|
||||
|
||||
postgresql = {
|
||||
services.grafana.database = {
|
||||
host = "127.0.0.1:5432";
|
||||
|
@ -52,7 +56,7 @@ let
|
|||
nameValuePair dbName (mkMerge [
|
||||
baseGrafanaConf
|
||||
(extraNodeConfs.${dbName} or {})
|
||||
])) [ "sqlite" "postgresql" "mysql" ]);
|
||||
])) [ "sqlite" "declarativePlugins" "postgresql" "mysql" ]);
|
||||
|
||||
in {
|
||||
name = "grafana";
|
||||
|
@ -66,6 +70,14 @@ in {
|
|||
testScript = ''
|
||||
start_all()
|
||||
|
||||
with subtest("Declarative plugins installed"):
|
||||
declarativePlugins.wait_for_unit("grafana.service")
|
||||
declarativePlugins.wait_for_open_port(3000)
|
||||
declarativePlugins.succeed(
|
||||
"curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/plugins | grep -q grafana-clock-panel"
|
||||
)
|
||||
declarativePlugins.shutdown()
|
||||
|
||||
with subtest("Successful API query as admin user with sqlite db"):
|
||||
sqlite.wait_for_unit("grafana.service")
|
||||
sqlite.wait_for_open_port(3000)
|
||||
|
|
|
@ -96,6 +96,31 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
bird = {
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
};
|
||||
metricProvider = {
|
||||
services.bird2.enable = true;
|
||||
services.bird2.config = ''
|
||||
protocol kernel MyObviousTestString {
|
||||
ipv4 {
|
||||
import all;
|
||||
export none;
|
||||
};
|
||||
}
|
||||
|
||||
protocol device {
|
||||
}
|
||||
'';
|
||||
};
|
||||
exporterTest = ''
|
||||
wait_for_unit("prometheus-bird-exporter.service")
|
||||
wait_for_open_port(9324)
|
||||
succeed("curl -sSf http://localhost:9324/metrics | grep -q 'MyObviousTestString'")
|
||||
'';
|
||||
};
|
||||
|
||||
blackbox = {
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
|
@ -670,6 +695,27 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
smokeping = {
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
hosts = ["127.0.0.1"];
|
||||
};
|
||||
exporterTest = ''
|
||||
wait_for_unit("prometheus-smokeping-exporter.service")
|
||||
wait_for_open_port(9374)
|
||||
wait_until_succeeds(
|
||||
"curl -sSf localhost:9374/metrics | grep '{}' | grep -qv ' 0$'".format(
|
||||
'smokeping_requests_total{host="127.0.0.1",ip="127.0.0.1"} '
|
||||
)
|
||||
)
|
||||
wait_until_succeeds(
|
||||
"curl -sSf localhost:9374/metrics | grep -q '{}'".format(
|
||||
'smokeping_response_ttl{host="127.0.0.1",ip="127.0.0.1"}'
|
||||
)
|
||||
)
|
||||
'';
|
||||
};
|
||||
|
||||
snmp = {
|
||||
exporterConfig = {
|
||||
enable = true;
|
||||
|
|
85
pkgs/applications/graphics/emulsion/default.nix
Normal file
85
pkgs/applications/graphics/emulsion/default.nix
Normal file
|
@ -0,0 +1,85 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, rustPlatform
|
||||
, installShellFiles
|
||||
, makeWrapper
|
||||
, pkg-config
|
||||
, python3
|
||||
, libGL
|
||||
, libX11
|
||||
, libXcursor
|
||||
, libXi
|
||||
, libXrandr
|
||||
, libXxf86vm
|
||||
, libxcb
|
||||
, libxkbcommon
|
||||
, wayland
|
||||
, xdg_utils
|
||||
, AppKit
|
||||
, CoreGraphics
|
||||
, CoreServices
|
||||
, Foundation
|
||||
, OpenGL
|
||||
}:
|
||||
let
|
||||
rpathLibs = [
|
||||
libGL
|
||||
libX11
|
||||
libXcursor
|
||||
libXi
|
||||
libXrandr
|
||||
libXxf86vm
|
||||
libxcb
|
||||
] ++ lib.optionals stdenv.isLinux [
|
||||
libxkbcommon
|
||||
wayland
|
||||
];
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "emulsion";
|
||||
version = "7.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ArturKovacs";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1king04p5j4gsvprrfppwaxa5jn4ga4nc0v63wl6fvq2ngwnkg4g";
|
||||
};
|
||||
|
||||
cargoSha256 = "19vb2q5w3063l7349p1b8q40n97a4hxdvc7h7qsx1iiwp75knbd0";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
makeWrapper
|
||||
pkg-config
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = rpathLibs ++ lib.optionals stdenv.isDarwin [
|
||||
AppKit
|
||||
CoreGraphics
|
||||
CoreServices
|
||||
Foundation
|
||||
OpenGL
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -D $releaseDir/emulsion $out/bin/emulsion
|
||||
'' + lib.optionalString stdenv.isLinux ''
|
||||
patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/emulsion
|
||||
'' + ''
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
dontPatchELF = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A fast and minimalistic image viewer";
|
||||
homepage = "https://arturkovacs.github.io/emulsion-website/";
|
||||
maintainers = [ maintainers.magnetophon ];
|
||||
platforms = platforms.unix;
|
||||
license = licenses.mit;
|
||||
};
|
||||
}
|
|
@ -98,6 +98,7 @@ stdenv.mkDerivation rec {
|
|||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
dontPatchELF = true;
|
||||
doInstallCheck = true;
|
||||
|
||||
nativeBuildInputs = [ dpkg wrapGAppsHook ];
|
||||
|
||||
|
@ -147,6 +148,11 @@ stdenv.mkDerivation rec {
|
|||
ln -sf ${xdg_utils}/bin/xdg-mime $out/opt/brave.com/brave/xdg-mime
|
||||
'';
|
||||
|
||||
installCheckPhase = ''
|
||||
# Bypass upstream wrapper which suppresses errors
|
||||
$out/opt/brave.com/brave/brave --version
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
|
|
@ -1,19 +1,20 @@
|
|||
{ stdenv, lib, fetchurl, makeWrapper, cmake, gl2ps, gsl, libX11, libXpm, libXft
|
||||
, libXext, libGLU, libGL, libxml2, lz4, lzma, pcre, pkgconfig, python, xxHash
|
||||
, zlib
|
||||
{ stdenv, lib, fetchurl, makeWrapper, cmake, ftgl, gl2ps, glew, gsl, llvm_5
|
||||
, libX11, libXpm, libXft, libXext, libGLU, libGL, libxml2, lz4, lzma, pcre
|
||||
, pkgconfig, python, xxHash, zlib, zstd
|
||||
, libAfterImage, giflib, libjpeg, libtiff, libpng
|
||||
, Cocoa, OpenGL, noSplash ? false }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "root";
|
||||
version = "6.18.04";
|
||||
version = "6.22.06";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
|
||||
sha256 = "196ghma6g5a7sqz52wyjkgvmh4hj4vqwppm0zwdypy33hgy8anii";
|
||||
sha256 = "0mqvj42nax0bmz8h83jjlwjm3xxjy1n0n10inc8csip9ly28fs64";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper cmake pkgconfig ];
|
||||
buildInputs = [ gl2ps pcre zlib libxml2 lz4 lzma gsl xxHash python.pkgs.numpy ]
|
||||
buildInputs = [ ftgl gl2ps glew pcre zlib zstd llvm_5 libxml2 lz4 lzma gsl xxHash libAfterImage giflib libjpeg libtiff libpng python.pkgs.numpy ]
|
||||
++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
|
||||
++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
|
||||
;
|
||||
|
@ -38,6 +39,7 @@ stdenv.mkDerivation rec {
|
|||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
"-Dalien=OFF"
|
||||
"-Dbonjour=OFF"
|
||||
"-Dbuiltin_llvm=OFF"
|
||||
"-Dcastor=OFF"
|
||||
"-Dchirp=OFF"
|
||||
"-Dclad=OFF"
|
||||
|
@ -69,7 +71,14 @@ stdenv.mkDerivation rec {
|
|||
"-Dxrootd=OFF"
|
||||
]
|
||||
++ stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.lib.getDev stdenv.cc.libc}/include"
|
||||
++ stdenv.lib.optional stdenv.isDarwin "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks";
|
||||
++ stdenv.lib.optionals stdenv.isDarwin [
|
||||
"-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks"
|
||||
"-DCMAKE_DISABLE_FIND_PACKAGE_Python2=TRUE"
|
||||
|
||||
# fatal error: module map file '/nix/store/<hash>-Libsystem-osx-10.12.6/include/module.modulemap' not found
|
||||
# fatal error: could not build module '_Builtin_intrinsics'
|
||||
"-Druntime_cxxmodules=OFF"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
|
|
@ -1,19 +1,7 @@
|
|||
diff a/build/unix/compiledata.sh b/build/unix/compiledata.sh
|
||||
--- a/build/unix/compiledata.sh
|
||||
+++ b/build/unix/compiledata.sh
|
||||
@@ -47,7 +47,7 @@ fi
|
||||
|
||||
if [ "$ARCH" = "macosx" ] || [ "$ARCH" = "macosx64" ] || \
|
||||
[ "$ARCH" = "macosxicc" ]; then
|
||||
- macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
|
||||
+ macosx_minor=12
|
||||
SOEXT="so"
|
||||
if [ $macosx_minor -ge 5 ]; then
|
||||
if [ "x`echo $SOFLAGS | grep -- '-install_name'`" != "x" ]; then
|
||||
diff a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
|
||||
--- a/cmake/modules/SetUpMacOS.cmake
|
||||
+++ b/cmake/modules/SetUpMacOS.cmake
|
||||
@@ -2,17 +2,8 @@ set(ROOT_ARCHITECTURE macosx)
|
||||
@@ -8,17 +8,10 @@ set(ROOT_ARCHITECTURE macosx)
|
||||
set(ROOT_PLATFORM macosx)
|
||||
|
||||
if (CMAKE_SYSTEM_NAME MATCHES Darwin)
|
||||
|
@ -21,8 +9,8 @@ diff a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
|
|||
- COMMAND cut -d . -f 1-2
|
||||
- OUTPUT_VARIABLE MACOSX_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
-
|
||||
- MESSAGE(STATUS "Found a Mac OS X System ${MACOSX_VERSION}")
|
||||
-
|
||||
MESSAGE(STATUS "Found a macOS system ${MACOSX_VERSION}")
|
||||
|
||||
- if(MACOSX_VERSION VERSION_GREATER 10.7 AND ${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
|
||||
set(libcxx ON CACHE BOOL "Build using libc++" FORCE)
|
||||
- endif()
|
||||
|
@ -31,7 +19,7 @@ diff a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
|
|||
#TODO: check haveconfig and rpath -> set rpath true
|
||||
#TODO: check Thread, define link command
|
||||
#TODO: more stuff check configure script
|
||||
@@ -25,23 +16,7 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
|
||||
@@ -37,23 +30,7 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
|
||||
SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -m64")
|
||||
|
@ -56,7 +44,7 @@ diff a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
|
|||
|
||||
if (CMAKE_COMPILER_IS_GNUCXX)
|
||||
message(STATUS "Found GNU compiler collection")
|
||||
@@ -104,7 +79,6 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
|
||||
@@ -115,7 +92,6 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
|
||||
endif()
|
||||
|
||||
#---Set Linker flags----------------------------------------------------------------------
|
||||
|
@ -67,33 +55,33 @@ diff a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
|
|||
diff a/config/root-config.in b/config/root-config.in
|
||||
--- a/config/root-config.in
|
||||
+++ b/config/root-config.in
|
||||
@@ -306,12 +306,6 @@ macosxicc)
|
||||
auxlibs="-lm -ldl"
|
||||
@@ -312,12 +312,6 @@ macosxicc)
|
||||
;;
|
||||
macosx64)
|
||||
- # MacOS X with gcc (GNU cc v4.x) in 64 bit mode
|
||||
macosx64|macosxarm64)
|
||||
# MacOS X with gcc (GNU cc v4.x) in 64 bit mode
|
||||
- macosx_major=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 1 | sed -e 's/^[[:space:]]*//'`
|
||||
- macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
|
||||
- # cannot find the one linked to libGraf if relocated after built
|
||||
- if [ $macosx_minor -le 4 ]; then
|
||||
- if [ $macosx_major -eq 10 -a $macosx_minor -le 4 ]; then
|
||||
- rootlibs="$rootlibs -lfreetype"
|
||||
- fi
|
||||
auxcflags="${cxxversionflag} -m64"
|
||||
auxldflags="-m64"
|
||||
auxlibs="-lm -ldl"
|
||||
@@ -375,18 +369,11 @@ freebsd* | openbsd* | linux*)
|
||||
@@ -378,18 +372,11 @@ freebsd* | openbsd* | linux*)
|
||||
done
|
||||
;;
|
||||
macosx*)
|
||||
- if [ \( $macosx_major -eq 10 -a $macosx_minor -ge 5 \) -o $macosx_major -gt 10 ]; then
|
||||
auxcflags="-pthread $auxcflags"
|
||||
auxlibs="-lpthread $auxlibs"
|
||||
- else
|
||||
- auxcflags="-D_REENTRANT $auxcflags"
|
||||
- auxlibs="-lpthread $auxlibs"
|
||||
- fi
|
||||
for f in $features ; do
|
||||
if test "x$f" = "xthread" ; then
|
||||
- if [ $macosx_minor -ge 5 ]; then
|
||||
auxcflags="-pthread $auxcflags"
|
||||
auxlibs="-lpthread $auxlibs"
|
||||
- else
|
||||
- auxcflags="-D_REENTRANT $auxcflags"
|
||||
- auxlibs="-lpthread $auxlibs"
|
||||
- fi
|
||||
fi
|
||||
if test "x$f" = "xrpath" ; then
|
||||
- if [ $macosx_minor -ge 5 ]; then
|
||||
- if [ \( $macosx_major -eq 10 -a $macosx_minor -ge 5 \) -o $macosx_major -gt 10 ]; then
|
||||
auxlibs="-Wl,-rpath,$libdir $auxlibs"
|
||||
- fi
|
||||
fi
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ stdenv, fetchurl, libGLU, xlibsWrapper, libXmu, libXi
|
||||
, AGL ? null
|
||||
, AGL, OpenGL
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
|
@ -12,9 +12,8 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "01zki46dr5khzlyywr3cg615bcal32dazfazkf360s1znqh17i4r";
|
||||
};
|
||||
|
||||
buildInputs = [ xlibsWrapper libXmu libXi ]
|
||||
++ optionals stdenv.isDarwin [ AGL ];
|
||||
propagatedBuildInputs = [ libGLU ]; # GL/glew.h includes GL/glu.h
|
||||
buildInputs = if stdenv.isDarwin then [ AGL ] else [ xlibsWrapper libXmu libXi ];
|
||||
propagatedBuildInputs = if stdenv.isDarwin then [ OpenGL ] else [ libGLU ]; # GL/glew.h includes GL/glu.h
|
||||
|
||||
patchPhase = ''
|
||||
sed -i 's|lib64|lib|' config/Makefile.linux
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{ stdenv, fetchurl, libGLU, xlibsWrapper, libXmu, libXi
|
||||
, OpenGL
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
|
@ -13,8 +14,8 @@ stdenv.mkDerivation rec {
|
|||
|
||||
outputs = [ "bin" "out" "dev" "doc" ];
|
||||
|
||||
buildInputs = [ xlibsWrapper libXmu libXi ];
|
||||
propagatedBuildInputs = [ libGLU ]; # GL/glew.h includes GL/glu.h
|
||||
buildInputs = optionals (!stdenv.isDarwin) [ xlibsWrapper libXmu libXi ];
|
||||
propagatedBuildInputs = if stdenv.isDarwin then [ OpenGL ] else [ libGLU ]; # GL/glew.h includes GL/glu.h
|
||||
|
||||
patchPhase = ''
|
||||
sed -i 's|lib64|lib|' config/Makefile.linux
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "itk";
|
||||
version = "5.1.1";
|
||||
version = "5.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "InsightSoftwareConsortium";
|
||||
repo = "ITK";
|
||||
rev = "v${version}";
|
||||
sha256 = "1z7rmqrhgl7hfb3d0077kvp8vpi05r2zk3qyqzmv7bzbal5sqqhv";
|
||||
sha256 = "0db91pm1zy40h4qr5zsdfl94znk16w9ysddz5cxbl198iyyqii8f";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
25
pkgs/development/libraries/libAfterImage/default.nix
Normal file
25
pkgs/development/libraries/libAfterImage/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ stdenv, fetchurl, zlib }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "libAfterImage";
|
||||
version = "1.20";
|
||||
|
||||
src = fetchurl {
|
||||
name = "libAfterImage-1.20.tar.bz2";
|
||||
urls = [
|
||||
"https://sourceforge.net/projects/afterstep/files/libAfterImage/1.20/libAfterImage-1.20.tar.bz2/download"
|
||||
"ftp://ftp.afterstep.org/stable/libAfterImage/libAfterImage-1.20.tar.bz2"
|
||||
];
|
||||
sha256 = "0n74rxidwig3yhr6fzxsk7y19n1nq1f296lzrvgj5pfiyi9k48vf";
|
||||
};
|
||||
|
||||
buildInputs = [ zlib ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.afterstep.org/afterimage/";
|
||||
description = "A generic image manipulation library";
|
||||
platforms = platforms.unix;
|
||||
maintainers = [ maintainers.veprbl ];
|
||||
license = licenses.lgpl21;
|
||||
};
|
||||
}
|
|
@ -39,5 +39,7 @@ stdenv.mkDerivation rec {
|
|||
homepage = "https://yoda.hepforge.org";
|
||||
platforms = stdenv.lib.platforms.unix;
|
||||
maintainers = with stdenv.lib.maintainers; [ veprbl ];
|
||||
# https://gitlab.com/hepcedar/yoda/-/issues/24
|
||||
broken = withRootSupport;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "abodepy";
|
||||
version = "1.2.0";
|
||||
version = "1.2.1";
|
||||
|
||||
disabled = !isPy3k;
|
||||
|
||||
|
@ -11,7 +11,7 @@ buildPythonPackage rec {
|
|||
owner = "MisterWil";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0m2cm90yy7fq7yrjyd999m48gqri65ifi7f6hc0s3pv2hfj89yj0";
|
||||
sha256 = "0n8gczsml6y6anin1zi8j33sjk1bv9ka02zxpksn2fi1v1h0smap";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ colorlog lomond requests ];
|
||||
|
|
|
@ -1,51 +1,42 @@
|
|||
{ stdenv, buildPythonPackage, fetchPypi, pythonOlder
|
||||
, redis, channels, msgpack, aioredis, hiredis, asgiref
|
||||
# , fetchFromGitHub, async_generator, async-timeout, cryptography, pytest, pytest-asyncio
|
||||
{ stdenv
|
||||
, aioredis
|
||||
, asgiref
|
||||
, buildPythonPackage
|
||||
, channels
|
||||
, fetchPypi
|
||||
, hiredis
|
||||
, msgpack
|
||||
, pythonOlder
|
||||
, redis
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "channels-redis";
|
||||
version = "2.4.0";
|
||||
version = "3.2.0";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "channels_redis";
|
||||
sha256 = "1g4izdf8237pwxn85bv5igc2bajrvck1p2a7q448qmjfznrbrk5p";
|
||||
sha256 = "1rjs9irnq59yr6zwc9k6nnw6xrmr48dakrm25m0gcwskn1iimcrg";
|
||||
};
|
||||
|
||||
buildInputs = [ redis hiredis ];
|
||||
|
||||
propagatedBuildInputs = [ channels msgpack aioredis asgiref ];
|
||||
|
||||
# Fetch from github (no tests files on pypi)
|
||||
# src = fetchFromGitHub {
|
||||
# rev = version;
|
||||
# owner = "django";
|
||||
# repo = "channels_redis";
|
||||
# sha256 = "05niaqjv790mnrvca26kbnvb50fgnk2zh0k4np60cn6ilp4nl0kc";
|
||||
# };
|
||||
#
|
||||
# checkInputs = [
|
||||
# async_generator
|
||||
# async-timeout
|
||||
# cryptography
|
||||
# pytest
|
||||
# pytest-asyncio
|
||||
# ];
|
||||
#
|
||||
# # Fails with : ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 6379)
|
||||
# # (even with a local redis instance running)
|
||||
# checkPhase = ''
|
||||
# pytest -p no:django tests/
|
||||
# '';
|
||||
# Fails with : ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 6379)
|
||||
# (even with a local Redis instance running)
|
||||
doCheck = false;
|
||||
|
||||
postPatch = ''
|
||||
sed -i "s/msgpack~=0.6.0/msgpack/" setup.py
|
||||
sed -i "s/aioredis~=1.0/aioredis/" setup.py
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "channels_redis" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://github.com/django/channels_redis/";
|
||||
description = "Redis-backed ASGI channel layer implementation";
|
||||
|
|
|
@ -1,9 +1,21 @@
|
|||
{ lib, mkDerivation, fetchgit
|
||||
, cmake, ffmpeg, libevdev, libopus, udev, qtbase, qtmacextras, qtmultimedia
|
||||
, qtsvg , pkg-config, protobuf , python3Packages, SDL2, stdenv }:
|
||||
{ stdenv
|
||||
, fetchgit
|
||||
, cmake
|
||||
, pkg-config
|
||||
, protobuf
|
||||
, python3Packages
|
||||
, ffmpeg
|
||||
, libopus
|
||||
, qtbase
|
||||
, qtmultimedia
|
||||
, qtsvg
|
||||
, SDL2
|
||||
, libevdev
|
||||
, udev
|
||||
, qtmacextras
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
mkDerivation rec {
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "chiaki";
|
||||
version = "2.0.1";
|
||||
|
||||
|
@ -15,18 +27,35 @@ mkDerivation rec {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake pkg-config protobuf python3Packages.python python3Packages.protobuf
|
||||
cmake
|
||||
pkg-config
|
||||
protobuf
|
||||
python3Packages.protobuf
|
||||
python3Packages.python
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
ffmpeg
|
||||
libopus
|
||||
qtbase
|
||||
qtmultimedia
|
||||
qtsvg
|
||||
protobuf
|
||||
SDL2
|
||||
] ++ stdenv.lib.optionals stdenv.isLinux [
|
||||
libevdev
|
||||
udev
|
||||
] ++ stdenv.lib.optionals stdenv.isDarwin [
|
||||
qtmacextras
|
||||
];
|
||||
buildInputs = [ ffmpeg libopus qtbase qtmultimedia qtsvg protobuf SDL2 ]
|
||||
++ optionals stdenv.hostPlatform.isLinux [ libevdev udev]
|
||||
++ optionals (stdenv.isDarwin) [ qtmacextras ];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
installCheckPhase = "$out/bin/chiaki --help";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/thestr4ng3r/chiaki";
|
||||
description = "Free and Open Source PS4 Remote Play Client";
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://git.sr.ht/~thestr4ng3r/chiaki";
|
||||
description = "Free and Open Source PlayStation Remote Play Client";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ delroth ];
|
||||
platforms = platforms.all;
|
||||
|
|
|
@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
|
|||
# Allow multiple colon-separated authorized keys files to be
|
||||
# specified in the file= option.
|
||||
./multiple-key-files.patch
|
||||
./edcsa-crash-fix.patch
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
commit 1b0d9bcc5f5cd78b0bb1357d6a11da5d616ad26f
|
||||
Author: Wout Mertens <Wout.Mertens@gmail.com>
|
||||
Date: Thu Jun 11 18:08:13 2020 +0200
|
||||
|
||||
fix segfault when using ECDSA keys.
|
||||
|
||||
Author: Marc Deslauriers <marc.deslauriers@canonical.com>
|
||||
Bug-Ubuntu: https://bugs.launchpad.net/bugs/1869512
|
||||
|
||||
diff --git a/ssh-ecdsa.c b/ssh-ecdsa.c
|
||||
index 5b13b30..5bf29cc 100644
|
||||
--- a/ssh-ecdsa.c
|
||||
+++ b/ssh-ecdsa.c
|
||||
@@ -46,7 +46,7 @@ ssh_ecdsa_sign(const Key *key, u_char **sigp, u_int *lenp,
|
||||
u_int len, dlen;
|
||||
Buffer b, bb;
|
||||
#if OPENSSL_VERSION_NUMBER >= 0x10100005L
|
||||
- BIGNUM *r, *s;
|
||||
+ BIGNUM *r = NULL, *s = NULL;
|
||||
#endif
|
||||
|
||||
if (key == NULL || key->type != KEY_ECDSA || key->ecdsa == NULL) {
|
||||
@@ -137,20 +137,27 @@ ssh_ecdsa_verify(const Key *key, const u_char *signature, u_int signaturelen,
|
||||
|
||||
/* parse signature */
|
||||
if ((sig = ECDSA_SIG_new()) == NULL)
|
||||
- pamsshagentauth_fatal("ssh_ecdsa_verify: DSA_SIG_new failed");
|
||||
+ pamsshagentauth_fatal("ssh_ecdsa_verify: ECDSA_SIG_new failed");
|
||||
|
||||
pamsshagentauth_buffer_init(&b);
|
||||
pamsshagentauth_buffer_append(&b, sigblob, len);
|
||||
#if OPENSSL_VERSION_NUMBER < 0x10100005L
|
||||
if ((pamsshagentauth_buffer_get_bignum2_ret(&b, sig->r) == -1) ||
|
||||
(pamsshagentauth_buffer_get_bignum2_ret(&b, sig->s) == -1))
|
||||
+ pamsshagentauth_fatal("ssh_ecdsa_verify:"
|
||||
+ "pamsshagentauth_buffer_get_bignum2_ret failed");
|
||||
#else
|
||||
- DSA_SIG_get0(sig, &r, &s);
|
||||
+ if ((r = BN_new()) == NULL)
|
||||
+ pamsshagentauth_fatal("ssh_ecdsa_verify: BN_new failed");
|
||||
+ if ((s = BN_new()) == NULL)
|
||||
+ pamsshagentauth_fatal("ssh_ecdsa_verify: BN_new failed");
|
||||
if ((pamsshagentauth_buffer_get_bignum2_ret(&b, r) == -1) ||
|
||||
(pamsshagentauth_buffer_get_bignum2_ret(&b, s) == -1))
|
||||
-#endif
|
||||
pamsshagentauth_fatal("ssh_ecdsa_verify:"
|
||||
"pamsshagentauth_buffer_get_bignum2_ret failed");
|
||||
+ if (ECDSA_SIG_set0(sig, r, s) != 1)
|
||||
+ pamsshagentauth_fatal("ssh_ecdsa_verify: ECDSA_SIG_set0 failed");
|
||||
+#endif
|
||||
|
||||
/* clean up */
|
||||
memset(sigblob, 0, len);
|
67
pkgs/servers/monitoring/grafana-image-renderer/default.nix
Normal file
67
pkgs/servers/monitoring/grafana-image-renderer/default.nix
Normal file
|
@ -0,0 +1,67 @@
|
|||
{ lib, mkYarnPackage, fetchFromGitHub, nodejs, runtimeShell }:
|
||||
|
||||
# Notes for the upgrade:
|
||||
# * Download the tarball of the new version to use.
|
||||
# * Remove the `resolutions`-section from upstream `package.json`
|
||||
# as this breaks with `yarn2nix`.
|
||||
# * Regenerate `yarn.lock` and `yarn2nix`.
|
||||
# * Replace new `package.json`, `yarn.nix`, `yarn.lock` here.
|
||||
# * Update `version`+`hash` and rebuild.
|
||||
|
||||
mkYarnPackage rec {
|
||||
name = "grafana-image-renderer-unstable";
|
||||
version = "2020-12-01";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "grafana";
|
||||
repo = "grafana-image-renderer";
|
||||
rev = "ce1f81438e5f69c7fd7c73ce08bab624c4c92e25";
|
||||
sha256 = "sha256-1Ke1KLLNZ1dkLH0BWB60r2c45RBbndd0eepjc0nlHVk=";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
pushd deps/renderer
|
||||
npm run build
|
||||
popd
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
dontInstall = true;
|
||||
|
||||
packageJSON = ./package.json;
|
||||
yarnNix = ./yarn.nix;
|
||||
yarnLock = ./yarn.lock;
|
||||
|
||||
distPhase = ''
|
||||
runHook preDist
|
||||
|
||||
shopt -s extglob
|
||||
|
||||
pushd deps/renderer
|
||||
install_path="$out/libexec/grafana-image-renderer"
|
||||
mkdir -p $install_path
|
||||
cp -R ../../node_modules $install_path
|
||||
cp -R ./!(node_modules) $install_path
|
||||
popd
|
||||
|
||||
mkdir -p $out/bin
|
||||
cat >$out/bin/grafana-image-renderer <<EOF
|
||||
#! ${runtimeShell}
|
||||
${nodejs}/bin/node $install_path/build/app.js \$@
|
||||
EOF
|
||||
chmod +x $out/bin/grafana-image-renderer
|
||||
|
||||
runHook postDist
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/grafana/grafana-image-renderer";
|
||||
description = "A Grafana backend plugin that handles rendering of panels & dashboards to PNGs using headless browser (Chromium/Chrome)";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ ma27 ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
69
pkgs/servers/monitoring/grafana-image-renderer/package.json
Normal file
69
pkgs/servers/monitoring/grafana-image-renderer/package.json
Normal file
|
@ -0,0 +1,69 @@
|
|||
{
|
||||
"name": "renderer",
|
||||
"version": "1.0.0",
|
||||
"author": "Grafana Labs",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "http://github.com/grafana/grafana-image-renderer.git"
|
||||
},
|
||||
"scripts": {
|
||||
"tslint": "tslint -c tslint.json --project tsconfig.json",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"prettier:check": "prettier --list-different \"**/*.ts\"",
|
||||
"prettier:write": "prettier --list-different \"**/*.ts\" --write",
|
||||
"precommit": "npm run tslint & npm run typecheck",
|
||||
"watch": "tsc-watch --onSuccess \"node build/app.js server --config=dev.json\"",
|
||||
"build": "tsc",
|
||||
"start": "node build/app.js --config=dev.json"
|
||||
},
|
||||
"dependencies": {
|
||||
"@grpc/grpc-js": "^1.0",
|
||||
"@grpc/proto-loader": "^0.5.4",
|
||||
"@hapi/boom": "^9.1.0",
|
||||
"express": "^4.16.3",
|
||||
"express-prom-bundle": "^5.1.5",
|
||||
"google-protobuf": "3.5.0",
|
||||
"lodash": "^4.17.19",
|
||||
"minimist": "^1.2.0",
|
||||
"morgan": "^1.9.0",
|
||||
"mz": "^2.7.0",
|
||||
"prom-client": "^11.5.3",
|
||||
"puppeteer": "^2.0.0",
|
||||
"puppeteer-cluster": "^0.18.0",
|
||||
"unique-filename": "^1.1.0",
|
||||
"winston": "^3.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/express": "^4.11.1",
|
||||
"@types/node": "^10.0.9",
|
||||
"husky": "^3.1.0",
|
||||
"lint-staged": "^9.5.0",
|
||||
"pkg": "4.4.8",
|
||||
"prettier": "^1.19.1",
|
||||
"tsc-watch": "^4.2.3",
|
||||
"tslint": "^6.1.1",
|
||||
"typescript": "^3.8.3"
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged && npm run precommit"
|
||||
}
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.ts": [
|
||||
"prettier --write",
|
||||
"git add"
|
||||
]
|
||||
},
|
||||
"pkg": {
|
||||
"assets": "proto/*"
|
||||
},
|
||||
"bin": "build/app.js",
|
||||
"engines": {
|
||||
"node": ">=12 <13"
|
||||
},
|
||||
"volta": {
|
||||
"node": "12.19.0"
|
||||
}
|
||||
}
|
3017
pkgs/servers/monitoring/grafana-image-renderer/yarn.lock
Normal file
3017
pkgs/servers/monitoring/grafana-image-renderer/yarn.lock
Normal file
File diff suppressed because it is too large
Load diff
3549
pkgs/servers/monitoring/grafana-image-renderer/yarn.nix
Normal file
3549
pkgs/servers/monitoring/grafana-image-renderer/yarn.nix
Normal file
File diff suppressed because it is too large
Load diff
7
pkgs/servers/monitoring/grafana/plugins/default.nix
Normal file
7
pkgs/servers/monitoring/grafana/plugins/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ newScope, pkgs }:
|
||||
|
||||
let
|
||||
callPackage = newScope (pkgs // plugins);
|
||||
plugins = import ./plugins.nix { inherit callPackage; };
|
||||
in
|
||||
plugins
|
|
@ -0,0 +1,13 @@
|
|||
{ grafanaPlugin, lib }:
|
||||
|
||||
grafanaPlugin rec {
|
||||
pname = "grafana-clock-panel";
|
||||
version = "1.1.1";
|
||||
zipHash = "sha256-SvZyg7r+XG6i7jqYwxpPn6ZzJc7qmtfPtyphYppURDk=";
|
||||
meta = with lib; {
|
||||
description = "Clock panel for Grafana";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ lukegb ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{ grafanaPlugin, lib }:
|
||||
|
||||
grafanaPlugin rec {
|
||||
pname = "grafana-piechart-panel";
|
||||
version = "1.6.1";
|
||||
zipHash = "sha256-64K/efoBKuBFp8Jw79hTdMyTurTZsL0qfgPDcUWz2jg=";
|
||||
meta = with lib; {
|
||||
description = "Pie chart panel for Grafana";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ lukegb ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
28
pkgs/servers/monitoring/grafana/plugins/grafana-plugin.nix
Normal file
28
pkgs/servers/monitoring/grafana/plugins/grafana-plugin.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{ stdenvNoCC, fetchurl, unzip }:
|
||||
|
||||
{ pname, version, zipHash, meta ? {}, passthru ? {}, ... }@args:
|
||||
stdenvNoCC.mkDerivation ({
|
||||
inherit pname version;
|
||||
|
||||
src = fetchurl {
|
||||
name = "${pname}-${version}.zip";
|
||||
url = "https://grafana.com/api/plugins/${pname}/versions/${version}/download";
|
||||
hash = zipHash;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
|
||||
installPhase = ''
|
||||
cp -R "." "$out"
|
||||
chmod -R a-w "$out"
|
||||
chmod u+w "$out"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = [ ./update-grafana-plugin.sh pname ];
|
||||
} // passthru;
|
||||
|
||||
meta = {
|
||||
homepage = "https://grafana.com/grafana/plugins/${pname}";
|
||||
} // meta;
|
||||
} // (builtins.removeAttrs args [ "pname" "version" "sha256" "meta" ]))
|
|
@ -0,0 +1,13 @@
|
|||
{ grafanaPlugin, lib }:
|
||||
|
||||
grafanaPlugin rec {
|
||||
pname = "grafana-polystat-panel";
|
||||
version = "1.2.2";
|
||||
zipHash = "sha256-HWQdhstnrDuXPithZ8kOG2ZtSeAT215MJ1ftMCt6/tc=";
|
||||
meta = with lib; {
|
||||
description = "Hexagonal multi-stat panel for Grafana";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ lukegb ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{ grafanaPlugin, lib }:
|
||||
|
||||
grafanaPlugin rec {
|
||||
pname = "grafana-worldmap-panel";
|
||||
version = "0.3.2";
|
||||
zipHash = "sha256-MGAJzS9X91x6wt305jH1chLoW3zd7pIYDwRnPg9qrgE=";
|
||||
meta = with lib; {
|
||||
description = "World Map panel for Grafana";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ lukegb ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
11
pkgs/servers/monitoring/grafana/plugins/plugins.nix
Normal file
11
pkgs/servers/monitoring/grafana/plugins/plugins.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ callPackage }:
|
||||
{
|
||||
inherit callPackage;
|
||||
|
||||
grafanaPlugin = callPackage ./grafana-plugin.nix { };
|
||||
|
||||
grafana-clock-panel = callPackage ./grafana-clock-panel { };
|
||||
grafana-piechart-panel = callPackage ./grafana-piechart-panel { };
|
||||
grafana-polystat-panel = callPackage ./grafana-polystat-panel { };
|
||||
grafana-worldmap-panel = callPackage ./grafana-worldmap-panel { };
|
||||
}
|
8
pkgs/servers/monitoring/grafana/plugins/update-grafana-plugin.sh
Executable file
8
pkgs/servers/monitoring/grafana/plugins/update-grafana-plugin.sh
Executable file
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl jq common-updater-scripts
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
readonly plugin_name="$1"
|
||||
readonly latest_version="$(curl "https://grafana.com/api/plugins/${plugin_name}" | jq -r .version)"
|
||||
update-source-version "grafanaPlugins.${plugin_name}" "$latest_version"
|
24
pkgs/servers/monitoring/prometheus/bird-exporter.nix
Normal file
24
pkgs/servers/monitoring/prometheus/bird-exporter.nix
Normal file
|
@ -0,0 +1,24 @@
|
|||
{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "bird-exporter";
|
||||
version = "1.3.5-git";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "czerwonk";
|
||||
repo = "bird_exporter";
|
||||
rev = "019fc09804625658d452a8e043cc16559c3b5b84";
|
||||
sha256 = "1iym46368k8zzy4djx511m926dg8x5mg3xi91f65sknqv26zfggb";
|
||||
};
|
||||
|
||||
vendorSha256 = null;
|
||||
|
||||
passthru.tests = { inherit (nixosTests.prometheus-exporters) bird; };
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Prometheus exporter for the bird routing daemon";
|
||||
homepage = "https://github.com/czerwonk/bird_exporter";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ lukegb ];
|
||||
};
|
||||
}
|
43
pkgs/servers/monitoring/prometheus/smokeping-prober.nix
Normal file
43
pkgs/servers/monitoring/prometheus/smokeping-prober.nix
Normal file
|
@ -0,0 +1,43 @@
|
|||
{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
|
||||
|
||||
let
|
||||
inherit (stdenv) lib;
|
||||
baseVersion = "0.3.1";
|
||||
commit = "9ba85274dcc21bf8132cbe3b3dccfcb4aab57d9f";
|
||||
in
|
||||
buildGoModule rec {
|
||||
pname = "smokeping_prober";
|
||||
version = "${baseVersion}-g${commit}";
|
||||
|
||||
buildFlagsArray = let
|
||||
setVars = {
|
||||
Version = baseVersion;
|
||||
Revision = commit;
|
||||
Branch = commit;
|
||||
BuildUser = "nix";
|
||||
};
|
||||
varFlags = lib.concatStringsSep " " (lib.mapAttrsToList (name: value: "-X github.com/prometheus/common/version.${name}=${value}") setVars);
|
||||
in [
|
||||
"-ldflags=${varFlags} -s -w"
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
rev = commit;
|
||||
owner = "SuperQ";
|
||||
repo = "smokeping_prober";
|
||||
sha256 = "sha256:19596di2gzcvlcwiypsncq4zwbyb6d1r6wxsfi59wax3423i7ndg";
|
||||
};
|
||||
vendorSha256 = "sha256:1b2v3v3kn0m7dvjxbs8q0gw6zingksdqhm5g1frx0mymqk0lg889";
|
||||
|
||||
doCheck = true;
|
||||
|
||||
passthru.tests = { inherit (nixosTests.prometheus-exporters) smokeping; };
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Prometheus exporter for sending continual ICMP/UDP pings";
|
||||
homepage = "https://github.com/SuperQ/smokeping_prober";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ lukegb ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
88
pkgs/tools/audio/kaldi/default.nix
Normal file
88
pkgs/tools/audio/kaldi/default.nix
Normal file
|
@ -0,0 +1,88 @@
|
|||
{ stdenv
|
||||
, openblas
|
||||
, blas
|
||||
, lapack
|
||||
, openfst
|
||||
, icu
|
||||
, cmake
|
||||
, pkg-config
|
||||
, fetchFromGitHub
|
||||
, git
|
||||
, python3
|
||||
}:
|
||||
|
||||
assert blas.implementation == "openblas" && lapack.implementation == "openblas";
|
||||
let
|
||||
# rev from https://github.com/kaldi-asr/kaldi/blob/master/cmake/third_party/openfst.cmake
|
||||
openfst = fetchFromGitHub {
|
||||
owner = "kkm000";
|
||||
repo = "openfst";
|
||||
rev = "0bca6e76d24647427356dc242b0adbf3b5f1a8d9";
|
||||
sha256 = "1802rr14a03zl1wa5a0x1fa412kcvbgprgkadfj5s6s3agnn11rx";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "kaldi";
|
||||
version = "2020-12-26";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kaldi-asr";
|
||||
repo = "kaldi";
|
||||
rev = "813b73185a18725e4f6021981d17221d6ee23a19";
|
||||
sha256 = "sha256-lTqXTG5ZTPmhCgt+BVzOwjKEIj+bLGUa+IxJq+XtHUg=";
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
"-DKALDI_BUILD_TEST=off"
|
||||
"-DBUILD_SHARED_LIBS=on"
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
mkdir bin
|
||||
cat > bin/git <<'EOF'
|
||||
#!${stdenv.shell}
|
||||
if [[ "$1" == "--version" ]]; then
|
||||
# cmake checks this
|
||||
${git}/bin/git --version
|
||||
elif [[ "$1" == "clone" ]]; then
|
||||
# mock this call:
|
||||
|
||||
# https://github.com/kaldi-asr/kaldi/blob/c9d8b9ad3fef89237ba5517617d977b7d70a7ed5/cmake/third_party/openfst.cmake#L5
|
||||
cp -r ${openfst} ''${@: -1}
|
||||
chmod -R +w ''${@: -1}
|
||||
elif [[ "$1" == "rev-list" ]]; then
|
||||
# fix up this call:
|
||||
# https://github.com/kaldi-asr/kaldi/blob/c9d8b9ad3fef89237ba5517617d977b7d70a7ed5/cmake/VersionHelper.cmake#L8
|
||||
echo 0
|
||||
fi
|
||||
true
|
||||
EOF
|
||||
chmod +x bin/git
|
||||
export PATH=$(pwd)/bin:$PATH
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
openblas
|
||||
openfst
|
||||
icu
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
python3
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/kaldi
|
||||
cp -r ../egs $out/share/kaldi
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Speech Recognition Toolkit";
|
||||
homepage = "https://kaldi-asr.org";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ mic92 ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -2,36 +2,29 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "direnv";
|
||||
version = "2.25.1";
|
||||
|
||||
vendorSha256 = null;
|
||||
version = "2.27.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "direnv";
|
||||
repo = "direnv";
|
||||
rev = "v${version}";
|
||||
sha256 = "0bwr7zdzjm5p6bjyzafc2n57y83f0pv2bmj99rhi8f94hhfydlsf";
|
||||
sha256 = "05vvn59xd2q4yjizh5fprjib5xqq58by80d5avsm8nb1qxf383b1";
|
||||
};
|
||||
|
||||
vendorSha256 = "084x7d7sshcsyim76d6pl6127nlqacgwwnm965srl9y5w5nqzba6";
|
||||
|
||||
# we have no bash at the moment for windows
|
||||
BASH_PATH =
|
||||
stdenv.lib.optionalString (!stdenv.hostPlatform.isWindows)
|
||||
"${bash}/bin/bash";
|
||||
|
||||
# fix hardcoded GOFLAGS in makefile. remove once https://github.com/direnv/direnv/issues/718 is closed.
|
||||
postPatch = ''
|
||||
substituteInPlace GNUmakefile --replace "export GOFLAGS=-mod=vendor" ""
|
||||
'';
|
||||
|
||||
# replace the build phase to use the GNUMakefile instead
|
||||
buildPhase = ''
|
||||
make BASH_PATH=$BASH_PATH
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
make install DESTDIR=$out
|
||||
mkdir -p $out/share/fish/vendor_conf.d
|
||||
echo "eval ($out/bin/direnv hook fish)" > $out/share/fish/vendor_conf.d/direnv.fish
|
||||
make install PREFIX=$out
|
||||
'';
|
||||
|
||||
checkInputs = [ fish zsh ];
|
||||
|
|
|
@ -2374,6 +2374,8 @@ in
|
|||
|
||||
kapacitor = callPackage ../servers/monitoring/kapacitor { };
|
||||
|
||||
kaldi = callPackage ../tools/audio/kaldi { };
|
||||
|
||||
kisslicer = callPackage ../tools/misc/kisslicer { };
|
||||
|
||||
klaus = with python3Packages; toPythonApplication klaus;
|
||||
|
@ -3777,6 +3779,10 @@ in
|
|||
|
||||
emem = callPackage ../applications/misc/emem { };
|
||||
|
||||
emulsion = callPackage ../applications/graphics/emulsion {
|
||||
inherit (darwin.apple_sdk.frameworks) AppKit CoreGraphics CoreServices Foundation OpenGL;
|
||||
};
|
||||
|
||||
emv = callPackage ../tools/misc/emv { };
|
||||
|
||||
enblend-enfuse = callPackage ../tools/graphics/enblend-enfuse { };
|
||||
|
@ -13199,9 +13205,11 @@ in
|
|||
|
||||
gle = callPackage ../development/libraries/gle { };
|
||||
|
||||
glew = callPackage ../development/libraries/glew { };
|
||||
glew = callPackage ../development/libraries/glew {
|
||||
inherit (darwin.apple_sdk.frameworks) OpenGL;
|
||||
};
|
||||
glew110 = callPackage ../development/libraries/glew/1.10.nix {
|
||||
inherit (darwin.apple_sdk.frameworks) AGL;
|
||||
inherit (darwin.apple_sdk.frameworks) AGL OpenGL;
|
||||
};
|
||||
|
||||
glfw = glfw3;
|
||||
|
@ -13871,6 +13879,8 @@ in
|
|||
|
||||
lib3mf = callPackage ../development/libraries/lib3mf { };
|
||||
|
||||
libAfterImage = callPackage ../development/libraries/libAfterImage { };
|
||||
|
||||
libaacs = callPackage ../development/libraries/libaacs { };
|
||||
|
||||
libaal = callPackage ../development/libraries/libaal { };
|
||||
|
@ -17254,11 +17264,14 @@ in
|
|||
gofish = callPackage ../servers/gopher/gofish { };
|
||||
|
||||
grafana = callPackage ../servers/monitoring/grafana { };
|
||||
grafanaPlugins = dontRecurseIntoAttrs (callPackage ../servers/monitoring/grafana/plugins { });
|
||||
|
||||
grafana-loki = callPackage ../servers/monitoring/loki { };
|
||||
|
||||
grafana_reporter = callPackage ../servers/monitoring/grafana-reporter { };
|
||||
|
||||
grafana-image-renderer = callPackage ../servers/monitoring/grafana-image-renderer { };
|
||||
|
||||
gerbera = callPackage ../servers/gerbera {};
|
||||
|
||||
gobetween = callPackage ../servers/gobetween { };
|
||||
|
@ -17731,6 +17744,7 @@ in
|
|||
prometheus-apcupsd-exporter = callPackage ../servers/monitoring/prometheus/apcupsd-exporter.nix { };
|
||||
prometheus-aws-s3-exporter = callPackage ../servers/monitoring/prometheus/aws-s3-exporter.nix { };
|
||||
prometheus-bind-exporter = callPackage ../servers/monitoring/prometheus/bind-exporter.nix { };
|
||||
prometheus-bird-exporter = callPackage ../servers/monitoring/prometheus/bird-exporter.nix { };
|
||||
prometheus-blackbox-exporter = callPackage ../servers/monitoring/prometheus/blackbox-exporter.nix { };
|
||||
prometheus-collectd-exporter = callPackage ../servers/monitoring/prometheus/collectd-exporter.nix { };
|
||||
prometheus-cups-exporter = callPackage ../servers/monitoring/prometheus/cups-exporter.nix { };
|
||||
|
@ -17761,6 +17775,7 @@ in
|
|||
prometheus-redis-exporter = callPackage ../servers/monitoring/prometheus/redis-exporter.nix { };
|
||||
prometheus-rabbitmq-exporter = callPackage ../servers/monitoring/prometheus/rabbitmq-exporter.nix { };
|
||||
prometheus-rtl_433-exporter = callPackage ../servers/monitoring/prometheus/rtl_433-exporter.nix { };
|
||||
prometheus-smokeping-prober = callPackage ../servers/monitoring/prometheus/smokeping-prober.nix { };
|
||||
prometheus-snmp-exporter = callPackage ../servers/monitoring/prometheus/snmp-exporter.nix { };
|
||||
prometheus-sql-exporter = callPackage ../servers/monitoring/prometheus/sql-exporter.nix { };
|
||||
prometheus-tor-exporter = callPackage ../servers/monitoring/prometheus/tor-exporter.nix { };
|
||||
|
|
Loading…
Reference in a new issue