Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-01-01 18:39:09 +00:00 committed by GitHub
commit c0a9361687
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
40 changed files with 7653 additions and 138 deletions

View file

@ -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

View 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 ];
}

View file

@ -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.";

View file

@ -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.
'';
};
};

View file

@ -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"

View file

@ -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}
'';
};
};
}

View file

@ -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}
'';
};
};
}

View file

@ -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)

View file

@ -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;

View 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;
};
}

View file

@ -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; {

View file

@ -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;

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 = ''

View 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;
};
}

View file

@ -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;
};
}

View file

@ -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 ];

View file

@ -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";

View file

@ -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;

View file

@ -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 = [

View file

@ -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);

View 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;
};
}

View 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"
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,7 @@
{ newScope, pkgs }:
let
callPackage = newScope (pkgs // plugins);
plugins = import ./plugins.nix { inherit callPackage; };
in
plugins

View file

@ -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;
};
}

View file

@ -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;
};
}

View 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" ]))

View file

@ -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;
};
}

View file

@ -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;
};
}

View 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 { };
}

View 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"

View 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 ];
};
}

View 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;
};
}

View 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;
};
}

View file

@ -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 ];

View file

@ -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 { };