Merge staging-next into staging

authored by

github-actions[bot] and committed by
GitHub
54e69b71 1e556b43

+527 -226
+1
nixos/modules/services/monitoring/prometheus/exporters.nix
··· 59 59 "surfboard" 60 60 "systemd" 61 61 "tor" 62 + "unbound" 62 63 "unifi" 63 64 "unifi-poller" 64 65 "varnish"
+59
nixos/modules/services/monitoring/prometheus/exporters/unbound.nix
··· 1 + { config, lib, pkgs, options }: 2 + 3 + with lib; 4 + 5 + let 6 + cfg = config.services.prometheus.exporters.unbound; 7 + in 8 + { 9 + port = 9167; 10 + extraOpts = { 11 + fetchType = mkOption { 12 + # TODO: add shm when upstream implemented it 13 + type = types.enum [ "tcp" "uds" ]; 14 + default = "uds"; 15 + description = '' 16 + Which methods the exporter uses to get the information from unbound. 17 + ''; 18 + }; 19 + 20 + telemetryPath = mkOption { 21 + type = types.str; 22 + default = "/metrics"; 23 + description = '' 24 + Path under which to expose metrics. 25 + ''; 26 + }; 27 + 28 + controlInterface = mkOption { 29 + type = types.nullOr types.str; 30 + default = null; 31 + example = "/run/unbound/unbound.socket"; 32 + description = '' 33 + Path to the unbound socket for uds mode or the control interface port for tcp mode. 34 + 35 + Example: 36 + uds-mode: /run/unbound/unbound.socket 37 + tcp-mode: 127.0.0.1:8953 38 + ''; 39 + }; 40 + }; 41 + 42 + serviceOpts = mkMerge ([{ 43 + serviceConfig = { 44 + ExecStart = '' 45 + ${pkgs.prometheus-unbound-exporter}/bin/unbound-telemetry \ 46 + ${cfg.fetchType} \ 47 + --bind ${cfg.listenAddress}:${toString cfg.port} \ 48 + --path ${cfg.telemetryPath} \ 49 + ${optionalString (cfg.controlInterface != null) "--control-interface ${cfg.controlInterface}"} \ 50 + ${toString cfg.extraFlags} 51 + ''; 52 + }; 53 + }] ++ [ 54 + (mkIf config.services.unbound.enable { 55 + after = [ "unbound.service" ]; 56 + requires = [ "unbound.service" ]; 57 + }) 58 + ]); 59 + }
+12 -5
nixos/modules/services/networking/kresd.nix
··· 29 29 + concatMapStrings (mkListen "doh2") cfg.listenDoH 30 30 + cfg.extraConfig 31 31 ); 32 - 33 - package = pkgs.knot-resolver; 34 32 in { 35 33 meta.maintainers = [ maintainers.vcunat /* upstream developer */ ]; 36 34 ··· 57 55 You can run <literal>sudo nc -U /run/knot-resolver/control/1</literal> 58 56 and give commands interactively to kresd@1.service. 59 57 ''; 58 + }; 59 + package = mkOption { 60 + type = types.package; 61 + description = " 62 + knot-resolver package to use. 63 + "; 64 + default = pkgs.knot-resolver; 65 + defaultText = "pkgs.knot-resolver"; 66 + example = literalExample "pkgs.knot-resolver.override { extraFeatures = true; }"; 60 67 }; 61 68 extraConfig = mkOption { 62 69 type = types.lines; ··· 115 122 }; 116 123 users.groups.knot-resolver.gid = null; 117 124 118 - systemd.packages = [ package ]; # the units are patched inside the package a bit 125 + systemd.packages = [ cfg.package ]; # the units are patched inside the package a bit 119 126 120 127 systemd.targets.kresd = { # configure units started by default 121 128 wantedBy = [ "multi-user.target" ]; ··· 123 130 ++ map (i: "kresd@${toString i}.service") (range 1 cfg.instances); 124 131 }; 125 132 systemd.services."kresd@".serviceConfig = { 126 - ExecStart = "${package}/bin/kresd --noninteractive " 127 - + "-c ${package}/lib/knot-resolver/distro-preconfig.lua -c ${configFile}"; 133 + ExecStart = "${cfg.package}/bin/kresd --noninteractive " 134 + + "-c ${cfg.package}/lib/knot-resolver/distro-preconfig.lua -c ${configFile}"; 128 135 # Ensure /run/knot-resolver exists 129 136 RuntimeDirectory = "knot-resolver"; 130 137 RuntimeDirectoryMode = "0770";
+183 -148
nixos/tests/prometheus-exporters.nix
··· 1 1 { system ? builtins.currentSystem 2 - , config ? {} 2 + , config ? { } 3 3 , pkgs ? import ../.. { inherit system config; } 4 4 }: 5 5 6 6 let 7 7 inherit (import ../lib/testing-python.nix { inherit system pkgs; }) makeTest; 8 8 inherit (pkgs.lib) concatStringsSep maintainers mapAttrs mkMerge 9 - removeSuffix replaceChars singleton splitString; 9 + removeSuffix replaceChars singleton splitString; 10 10 11 - /* 12 - * The attrset `exporterTests` contains one attribute 13 - * for each exporter test. Each of these attributes 14 - * is expected to be an attrset containing: 15 - * 16 - * `exporterConfig`: 17 - * this attribute set contains config for the exporter itself 18 - * 19 - * `exporterTest` 20 - * this attribute set contains test instructions 21 - * 22 - * `metricProvider` (optional) 23 - * this attribute contains additional machine config 24 - * 25 - * `nodeName` (optional) 26 - * override an incompatible testnode name 27 - * 28 - * Example: 29 - * exporterTests.<exporterName> = { 30 - * exporterConfig = { 31 - * enable = true; 32 - * }; 33 - * metricProvider = { 34 - * services.<metricProvider>.enable = true; 35 - * }; 36 - * exporterTest = '' 37 - * wait_for_unit("prometheus-<exporterName>-exporter.service") 38 - * wait_for_open_port("1234") 39 - * succeed("curl -sSf 'localhost:1234/metrics'") 40 - * ''; 41 - * }; 42 - * 43 - * # this would generate the following test config: 44 - * 45 - * nodes.<exporterName> = { 46 - * services.prometheus.<exporterName> = { 47 - * enable = true; 48 - * }; 49 - * services.<metricProvider>.enable = true; 50 - * }; 51 - * 52 - * testScript = '' 53 - * <exporterName>.start() 54 - * <exporterName>.wait_for_unit("prometheus-<exporterName>-exporter.service") 55 - * <exporterName>.wait_for_open_port("1234") 56 - * <exporterName>.succeed("curl -sSf 'localhost:1234/metrics'") 57 - * <exporterName>.shutdown() 58 - * ''; 59 - */ 11 + /* 12 + * The attrset `exporterTests` contains one attribute 13 + * for each exporter test. Each of these attributes 14 + * is expected to be an attrset containing: 15 + * 16 + * `exporterConfig`: 17 + * this attribute set contains config for the exporter itself 18 + * 19 + * `exporterTest` 20 + * this attribute set contains test instructions 21 + * 22 + * `metricProvider` (optional) 23 + * this attribute contains additional machine config 24 + * 25 + * `nodeName` (optional) 26 + * override an incompatible testnode name 27 + * 28 + * Example: 29 + * exporterTests.<exporterName> = { 30 + * exporterConfig = { 31 + * enable = true; 32 + * }; 33 + * metricProvider = { 34 + * services.<metricProvider>.enable = true; 35 + * }; 36 + * exporterTest = '' 37 + * wait_for_unit("prometheus-<exporterName>-exporter.service") 38 + * wait_for_open_port("1234") 39 + * succeed("curl -sSf 'localhost:1234/metrics'") 40 + * ''; 41 + * }; 42 + * 43 + * # this would generate the following test config: 44 + * 45 + * nodes.<exporterName> = { 46 + * services.prometheus.<exporterName> = { 47 + * enable = true; 48 + * }; 49 + * services.<metricProvider>.enable = true; 50 + * }; 51 + * 52 + * testScript = '' 53 + * <exporterName>.start() 54 + * <exporterName>.wait_for_unit("prometheus-<exporterName>-exporter.service") 55 + * <exporterName>.wait_for_open_port("1234") 56 + * <exporterName>.succeed("curl -sSf 'localhost:1234/metrics'") 57 + * <exporterName>.shutdown() 58 + * ''; 59 + */ 60 60 61 61 exporterTests = { 62 - apcupsd = { 62 + apcupsd = { 63 63 exporterConfig = { 64 64 enable = true; 65 65 }; ··· 192 192 "plugin":"testplugin", 193 193 "time":DATE 194 194 }] 195 - ''; in '' 196 - wait_for_unit("prometheus-collectd-exporter.service") 197 - wait_for_open_port(9103) 198 - succeed( 199 - 'echo \'${postData}\'> /tmp/data.json' 200 - ) 201 - succeed('sed -ie "s DATE $(date +%s) " /tmp/data.json') 202 - succeed( 203 - "curl -sSfH 'Content-Type: application/json' -X POST --data @/tmp/data.json localhost:9103/collectd" 204 - ) 205 - succeed( 206 - "curl -sSf localhost:9103/metrics | grep -q 'collectd_testplugin_gauge{instance=\"testhost\"} 23'" 207 - ) 208 - ''; 195 + ''; in 196 + '' 197 + wait_for_unit("prometheus-collectd-exporter.service") 198 + wait_for_open_port(9103) 199 + succeed( 200 + 'echo \'${postData}\'> /tmp/data.json' 201 + ) 202 + succeed('sed -ie "s DATE $(date +%s) " /tmp/data.json') 203 + succeed( 204 + "curl -sSfH 'Content-Type: application/json' -X POST --data @/tmp/data.json localhost:9103/collectd" 205 + ) 206 + succeed( 207 + "curl -sSf localhost:9103/metrics | grep -q 'collectd_testplugin_gauge{instance=\"testhost\"} 23'" 208 + ) 209 + ''; 209 210 }; 210 211 211 212 dnsmasq = { ··· 258 259 ''; 259 260 }; 260 261 261 - fritzbox = { # TODO add proper test case 262 + fritzbox = { 263 + # TODO add proper test case 262 264 exporterConfig = { 263 265 enable = true; 264 266 }; ··· 377 379 ''; 378 380 systemd.services.lnd = { 379 381 serviceConfig.ExecStart = '' 380 - ${pkgs.lnd}/bin/lnd \ 381 - --datadir=/var/lib/lnd \ 382 - --tlscertpath=/var/lib/lnd/tls.cert \ 383 - --tlskeypath=/var/lib/lnd/tls.key \ 384 - --logdir=/var/log/lnd \ 385 - --bitcoin.active \ 386 - --bitcoin.mainnet \ 387 - --bitcoin.node=bitcoind \ 388 - --bitcoind.rpcuser=bitcoinrpc \ 389 - --bitcoind.rpcpass=hunter2 \ 390 - --bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332 \ 391 - --bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333 \ 392 - --readonlymacaroonpath=/var/lib/lnd/readonly.macaroon 382 + ${pkgs.lnd}/bin/lnd \ 383 + --datadir=/var/lib/lnd \ 384 + --tlscertpath=/var/lib/lnd/tls.cert \ 385 + --tlskeypath=/var/lib/lnd/tls.key \ 386 + --logdir=/var/log/lnd \ 387 + --bitcoin.active \ 388 + --bitcoin.mainnet \ 389 + --bitcoin.node=bitcoind \ 390 + --bitcoind.rpcuser=bitcoinrpc \ 391 + --bitcoind.rpcpass=hunter2 \ 392 + --bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332 \ 393 + --bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333 \ 394 + --readonlymacaroonpath=/var/lib/lnd/readonly.macaroon 393 395 ''; 394 396 serviceConfig.StateDirectory = "lnd"; 395 397 wantedBy = [ "multi-user.target" ]; ··· 411 413 configuration = { 412 414 monitoringInterval = "2s"; 413 415 mailCheckTimeout = "10s"; 414 - servers = [ { 416 + servers = [{ 415 417 name = "testserver"; 416 418 server = "localhost"; 417 419 port = 25; 418 420 from = "mail-exporter@localhost"; 419 421 to = "mail-exporter@localhost"; 420 422 detectionDir = "/var/spool/mail/mail-exporter/new"; 421 - } ]; 423 + }]; 422 424 }; 423 425 }; 424 426 metricProvider = { ··· 520 522 url = "http://localhost"; 521 523 }; 522 524 metricProvider = { 523 - systemd.services.nc-pwfile = let 524 - passfile = (pkgs.writeText "pwfile" "snakeoilpw"); 525 - in { 526 - requiredBy = [ "prometheus-nextcloud-exporter.service" ]; 527 - before = [ "prometheus-nextcloud-exporter.service" ]; 528 - serviceConfig.ExecStart = '' 529 - ${pkgs.coreutils}/bin/install -o nextcloud-exporter -m 0400 ${passfile} /var/nextcloud-pwfile 530 - ''; 531 - }; 525 + systemd.services.nc-pwfile = 526 + let 527 + passfile = (pkgs.writeText "pwfile" "snakeoilpw"); 528 + in 529 + { 530 + requiredBy = [ "prometheus-nextcloud-exporter.service" ]; 531 + before = [ "prometheus-nextcloud-exporter.service" ]; 532 + serviceConfig.ExecStart = '' 533 + ${pkgs.coreutils}/bin/install -o nextcloud-exporter -m 0400 ${passfile} /var/nextcloud-pwfile 534 + ''; 535 + }; 532 536 services.nginx = { 533 537 enable = true; 534 538 virtualHosts."localhost" = { ··· 585 589 syslog = { 586 590 listen_address = "udp://127.0.0.1:10000"; 587 591 format = "rfc3164"; 588 - tags = ["nginx"]; 592 + tags = [ "nginx" ]; 589 593 }; 590 594 }; 591 595 } ··· 705 709 exporterConfig = { 706 710 enable = true; 707 711 group = "openvpn"; 708 - statusPaths = ["/run/openvpn-test"]; 712 + statusPaths = [ "/run/openvpn-test" ]; 709 713 }; 710 714 metricProvider = { 711 - users.groups.openvpn = {}; 715 + users.groups.openvpn = { }; 712 716 services.openvpn.servers.test = { 713 717 config = '' 714 718 dev tun ··· 828 832 }; 829 833 metricProvider = { 830 834 # Mock rtl_433 binary to return a dummy metric stream. 831 - nixpkgs.overlays = [ (self: super: { 832 - rtl_433 = self.runCommand "rtl_433" {} '' 833 - mkdir -p "$out/bin" 834 - cat <<EOF > "$out/bin/rtl_433" 835 - #!/bin/sh 836 - while true; do 837 - printf '{"time" : "2020-04-26 13:37:42", "model" : "zopieux", "id" : 55, "channel" : 3, "temperature_C" : 18.000}\n' 838 - sleep 4 839 - done 840 - EOF 841 - chmod +x "$out/bin/rtl_433" 842 - ''; 843 - }) ]; 835 + nixpkgs.overlays = [ 836 + (self: super: { 837 + rtl_433 = self.runCommand "rtl_433" { } '' 838 + mkdir -p "$out/bin" 839 + cat <<EOF > "$out/bin/rtl_433" 840 + #!/bin/sh 841 + while true; do 842 + printf '{"time" : "2020-04-26 13:37:42", "model" : "zopieux", "id" : 55, "channel" : 3, "temperature_C" : 18.000}\n' 843 + sleep 4 844 + done 845 + EOF 846 + chmod +x "$out/bin/rtl_433" 847 + ''; 848 + }) 849 + ]; 844 850 }; 845 851 exporterTest = '' 846 852 wait_for_unit("prometheus-rtl_433-exporter.service") ··· 856 862 smokeping = { 857 863 exporterConfig = { 858 864 enable = true; 859 - hosts = ["127.0.0.1"]; 865 + hosts = [ "127.0.0.1" ]; 860 866 }; 861 867 exporterTest = '' 862 868 wait_for_unit("prometheus-smokeping-exporter.service") ··· 994 1000 unifi-poller = { 995 1001 nodeName = "unifi_poller"; 996 1002 exporterConfig.enable = true; 997 - exporterConfig.controllers = [ { } ]; 1003 + exporterConfig.controllers = [{ }]; 998 1004 exporterTest = '' 999 1005 wait_for_unit("prometheus-unifi-poller-exporter.service") 1000 1006 wait_for_open_port(9130) 1001 1007 succeed( 1002 1008 "curl -sSf localhost:9130/metrics | grep -q 'unifipoller_build_info{.\\+} 1'" 1003 1009 ) 1010 + ''; 1011 + }; 1012 + 1013 + unbound = { 1014 + exporterConfig = { 1015 + enable = true; 1016 + fetchType = "uds"; 1017 + controlInterface = "/run/unbound/unbound.ctl"; 1018 + }; 1019 + metricProvider = { 1020 + services.unbound = { 1021 + enable = true; 1022 + localControlSocketPath = "/run/unbound/unbound.ctl"; 1023 + }; 1024 + systemd.services.prometheus-unbound-exporter.serviceConfig = { 1025 + SupplementaryGroups = [ "unbound" ]; 1026 + }; 1027 + }; 1028 + exporterTest = '' 1029 + wait_for_unit("unbound.service") 1030 + wait_for_unit("prometheus-unbound-exporter.service") 1031 + wait_for_open_port(9167) 1032 + succeed("curl -sSf localhost:9167/metrics | grep -q 'unbound_up 1'") 1004 1033 ''; 1005 1034 }; 1006 1035 ··· 1033 1062 ''; 1034 1063 }; 1035 1064 1036 - wireguard = let snakeoil = import ./wireguard/snakeoil-keys.nix; in { 1037 - exporterConfig.enable = true; 1038 - metricProvider = { 1039 - networking.wireguard.interfaces.wg0 = { 1040 - ips = [ "10.23.42.1/32" "fc00::1/128" ]; 1041 - listenPort = 23542; 1065 + wireguard = let snakeoil = import ./wireguard/snakeoil-keys.nix; in 1066 + { 1067 + exporterConfig.enable = true; 1068 + metricProvider = { 1069 + networking.wireguard.interfaces.wg0 = { 1070 + ips = [ "10.23.42.1/32" "fc00::1/128" ]; 1071 + listenPort = 23542; 1042 1072 1043 - inherit (snakeoil.peer0) privateKey; 1073 + inherit (snakeoil.peer0) privateKey; 1044 1074 1045 - peers = singleton { 1046 - allowedIPs = [ "10.23.42.2/32" "fc00::2/128" ]; 1075 + peers = singleton { 1076 + allowedIPs = [ "10.23.42.2/32" "fc00::2/128" ]; 1047 1077 1048 - inherit (snakeoil.peer1) publicKey; 1078 + inherit (snakeoil.peer1) publicKey; 1079 + }; 1049 1080 }; 1081 + systemd.services.prometheus-wireguard-exporter.after = [ "wireguard-wg0.service" ]; 1050 1082 }; 1051 - systemd.services.prometheus-wireguard-exporter.after = [ "wireguard-wg0.service" ]; 1083 + exporterTest = '' 1084 + wait_for_unit("prometheus-wireguard-exporter.service") 1085 + wait_for_open_port(9586) 1086 + wait_until_succeeds( 1087 + "curl -sSf http://localhost:9586/metrics | grep '${snakeoil.peer1.publicKey}'" 1088 + ) 1089 + ''; 1052 1090 }; 1053 - exporterTest = '' 1054 - wait_for_unit("prometheus-wireguard-exporter.service") 1055 - wait_for_open_port(9586) 1056 - wait_until_succeeds( 1057 - "curl -sSf http://localhost:9586/metrics | grep '${snakeoil.peer1.publicKey}'" 1058 - ) 1059 - ''; 1060 - }; 1061 1091 }; 1062 1092 in 1063 - mapAttrs (exporter: testConfig: (makeTest (let 1064 - nodeName = testConfig.nodeName or exporter; 1093 + mapAttrs 1094 + (exporter: testConfig: (makeTest ( 1095 + let 1096 + nodeName = testConfig.nodeName or exporter; 1065 1097 1066 - in { 1067 - name = "prometheus-${exporter}-exporter"; 1098 + in 1099 + { 1100 + name = "prometheus-${exporter}-exporter"; 1068 1101 1069 - nodes.${nodeName} = mkMerge [{ 1070 - services.prometheus.exporters.${exporter} = testConfig.exporterConfig; 1071 - } testConfig.metricProvider or {}]; 1102 + nodes.${nodeName} = mkMerge [{ 1103 + services.prometheus.exporters.${exporter} = testConfig.exporterConfig; 1104 + } testConfig.metricProvider or { }]; 1072 1105 1073 - testScript = '' 1074 - ${nodeName}.start() 1075 - ${concatStringsSep "\n" (map (line: 1076 - if (builtins.substring 0 1 line == " " || builtins.substring 0 1 line == ")") 1077 - then line 1078 - else "${nodeName}.${line}" 1079 - ) (splitString "\n" (removeSuffix "\n" testConfig.exporterTest)))} 1080 - ${nodeName}.shutdown() 1081 - ''; 1106 + testScript = '' 1107 + ${nodeName}.start() 1108 + ${concatStringsSep "\n" (map (line: 1109 + if (builtins.substring 0 1 line == " " || builtins.substring 0 1 line == ")") 1110 + then line 1111 + else "${nodeName}.${line}" 1112 + ) (splitString "\n" (removeSuffix "\n" testConfig.exporterTest)))} 1113 + ${nodeName}.shutdown() 1114 + ''; 1082 1115 1083 - meta = with maintainers; { 1084 - maintainers = [ willibutz elseym ]; 1085 - }; 1086 - }))) exporterTests 1116 + meta = with maintainers; { 1117 + maintainers = [ willibutz elseym ]; 1118 + }; 1119 + } 1120 + ))) 1121 + exporterTests
+4 -4
pkgs/applications/misc/get_iplayer/default.nix
··· 1 - { lib, fetchFromGitHub, atomicparsley, flvstreamer, ffmpeg_3, makeWrapper, perl, perlPackages, rtmpdump}: 1 + { lib, fetchFromGitHub, atomicparsley, flvstreamer, ffmpeg, makeWrapper, perl, perlPackages, rtmpdump}: 2 2 3 3 with lib; 4 4 5 5 perlPackages.buildPerlPackage rec { 6 6 pname = "get_iplayer"; 7 - version = "3.24"; 7 + version = "3.27"; 8 8 9 9 src = fetchFromGitHub { 10 10 owner = "get-iplayer"; 11 11 repo = "get_iplayer"; 12 12 rev = "v${version}"; 13 - sha256 = "0yd84ncb6cjrk4v4kz3zrddkl7iwkm3zlfbjyswd9hanp8fvd4q3"; 13 + sha256 = "077y31gg020wjpx5pcivqgkqawcjxh5kjnvq97x2gd7i3wwc30qi"; 14 14 }; 15 15 16 16 nativeBuildInputs = [ makeWrapper ]; ··· 26 26 installPhase = '' 27 27 mkdir -p $out/bin $out/share/man/man1 28 28 cp get_iplayer $out/bin 29 - wrapProgram $out/bin/get_iplayer --suffix PATH : ${makeBinPath [ atomicparsley ffmpeg_3 flvstreamer rtmpdump ]} --prefix PERL5LIB : $PERL5LIB 29 + wrapProgram $out/bin/get_iplayer --suffix PATH : ${makeBinPath [ atomicparsley ffmpeg flvstreamer rtmpdump ]} --prefix PERL5LIB : $PERL5LIB 30 30 cp get_iplayer.1 $out/share/man/man1 31 31 ''; 32 32
+2 -2
pkgs/applications/misc/kanboard/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "kanboard"; 5 - version = "1.2.18"; 5 + version = "1.2.19"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "kanboard"; 9 9 repo = "kanboard"; 10 10 rev = "v${version}"; 11 - sha256 = "sha256-raXPRoydd3CfciF7S0cZiuY7EPFKfE8IU3qj2dOztHU="; 11 + sha256 = "sha256-48U3eRg6obRjgK06SKN2g1+0wocqm2aGyXO2yZw5fs8="; 12 12 }; 13 13 14 14 dontBuild = true;
+3 -3
pkgs/applications/misc/xplr/default.nix
··· 2 2 3 3 rustPlatform.buildRustPackage rec { 4 4 name = "xplr"; 5 - version = "0.5.7"; 5 + version = "0.5.10"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "sayanarijit"; 9 9 repo = name; 10 10 rev = "v${version}"; 11 - sha256 = "1j417g0isy3cpxdb2wrvrvypnx99qffi83s4a98791wyi8yqiw6b"; 11 + sha256 = "1gy0iv39arq2ri57iqsycp1sfnn1yafnhblr7p1my2wnmqwmd4qw"; 12 12 }; 13 13 14 - cargoSha256 = "0kpwhk2f4czhilcnfqkw5hw2vxvldxqg491xkkgxjkph3w4qv3ji"; 14 + cargoSha256 = "01b4dlbakkdn3pfyyphabzrmqyp7fjy6n1nfk38z3zap5zvx8ipl"; 15 15 16 16 meta = with lib; { 17 17 description = "A hackable, minimal, fast TUI file explorer";
+3 -3
pkgs/applications/networking/browsers/chromium/upstream-info.json
··· 18 18 } 19 19 }, 20 20 "beta": { 21 - "version": "91.0.4472.19", 22 - "sha256": "0p51cxz0dm9ss9k7b91c0nd560mgi2x4qdcpg12vdf8x24agai5x", 23 - "sha256bin64": "0pf0sw8sskv4x057w7l6jh86q5mdvm800iikzy6fvambhh7bvd1i", 21 + "version": "91.0.4472.27", 22 + "sha256": "09mhrzfza9a2zfsnxskbdbk9cwxnswgprhnyv3pj0f215cva20sq", 23 + "sha256bin64": "1iwjf993pmhm9r92h4hskfxqc9fhky3aabvmdsqys44251j3hvwg", 24 24 "deps": { 25 25 "gn": { 26 26 "version": "2021-04-06",
+8 -8
pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
··· 2 2 , pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook, removeReferencesTo 3 3 , qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash 4 4 , dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3 5 - , tl-expected, hunspell, glibmm 5 + , tl-expected, hunspell, glibmm, webkitgtk 6 6 # Transitive dependencies: 7 7 , pcre, xorg, util-linux, libselinux, libsepol, epoxy 8 8 , at-spi2-core, libXtst, libthai, libdatrie ··· 20 20 21 21 let 22 22 tg_owt = callPackage ./tg_owt.nix {}; 23 - tgcalls-gcc10-fix = fetchpatch { # "Fix build on GCC 10, second attempt." 24 - url = "https://github.com/TelegramMessenger/tgcalls/commit/eded7cc540123eaf26361958b9a61c65cb2f7cfc.patch"; 25 - sha256 = "19n1hvn44pp01zc90g93vq2bcr2gdnscaj5il9f82klgh4llvjli"; 23 + webviewPatch = fetchpatch { 24 + url = "https://raw.githubusercontent.com/archlinux/svntogit-community/013eff77a13b6c2629a04e07a4d09dbe60c8ca48/trunk/fix-webview-includes.patch"; 25 + sha256 = "0112zaysf3f02dd4bgqc5hwg66h1bfj8r4yjzb06sfi0pl9vl96l"; 26 26 }; 27 27 28 28 in mkDerivation rec { 29 29 pname = "telegram-desktop"; 30 - version = "2.7.1"; 30 + version = "2.7.4"; 31 31 32 32 # Telegram-Desktop with submodules 33 33 src = fetchurl { 34 34 url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz"; 35 - sha256 = "01fxzcfz3xankmdar55ja55pb9hkvlf1plgpgjpsda9xwqgbxgs1"; 35 + sha256 = "1cigqvxa8lp79y7sp2w2izmmikxaxzrq9bh5ns3cy16z985nyllp"; 36 36 }; 37 37 38 38 postPatch = '' ··· 40 40 --replace '"libenchant-2.so.2"' '"${enchant2}/lib/libenchant-2.so.2"' 41 41 substituteInPlace Telegram/CMakeLists.txt \ 42 42 --replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"' 43 - patch -d Telegram/ThirdParty/tgcalls/ -p1 < "${tgcalls-gcc10-fix}" 43 + patch -d Telegram/lib_webview -p1 < "${webviewPatch}" 44 44 ''; 45 45 46 46 # We want to run wrapProgram manually (with additional parameters) ··· 52 52 buildInputs = [ 53 53 qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu enchant2 lz4 xxHash 54 54 dee ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3 55 - tl-expected hunspell glibmm 55 + tl-expected hunspell glibmm webkitgtk 56 56 tg_owt 57 57 # Transitive dependencies: 58 58 pcre xorg.libpthreadstubs xorg.libXdmcp util-linux libselinux libsepol epoxy
+1
pkgs/applications/networking/mailreaders/mailspring/default.nix
··· 39 39 libsecret 40 40 nss 41 41 xorg.libxkbfile 42 + xorg.libXdamage 42 43 xorg.libXScrnSaver 43 44 xorg.libXtst 44 45 ];
+3 -3
pkgs/applications/window-managers/wayfire/default.nix
··· 5 5 6 6 stdenv.mkDerivation rec { 7 7 pname = "wayfire"; 8 - version = "0.7.0"; 8 + version = "0.7.1"; 9 9 10 10 src = fetchurl { 11 11 url = "https://github.com/WayfireWM/wayfire/releases/download/v${version}/wayfire-${version}.tar.xz"; 12 - sha256 = "19k9nk5whql03ik66i06r4xgxk5v7mpdphjpv13hdw8ba48w73hd"; 12 + sha256 = "0wgvwbmdhn7gkdr2jl9jndgvl6w4x7ys8gmpj55gqh9b57wqhyaq"; 13 13 }; 14 14 15 15 nativeBuildInputs = [ meson ninja pkg-config wayland ]; ··· 22 22 23 23 meta = with lib; { 24 24 homepage = "https://wayfire.org/"; 25 - description = "3D wayland compositor"; 25 + description = "3D Wayland compositor"; 26 26 license = licenses.mit; 27 27 maintainers = with maintainers; [ qyliss wucke13 ]; 28 28 platforms = platforms.unix;
+12 -5
pkgs/applications/window-managers/wayfire/wf-config.nix
··· 1 - { stdenv, lib, fetchurl, meson, ninja, pkg-config, glm, libevdev, libxml2 }: 1 + { stdenv, lib, fetchurl, cmake, meson, ninja, pkg-config 2 + , doctest, glm, libevdev, libxml2 3 + }: 2 4 3 5 stdenv.mkDerivation rec { 4 6 pname = "wf-config"; 5 - version = "0.7.0"; 7 + version = "0.7.1"; 6 8 7 9 src = fetchurl { 8 10 url = "https://github.com/WayfireWM/wf-config/releases/download/v${version}/wf-config-${version}.tar.xz"; 9 - sha256 = "1bas5gsbnf8jxkkxd95992chz8yk5ckgg7r09gfnmm7xi8w0pyy7"; 11 + sha256 = "1w75yxhz0nvw4mlv38sxp8k8wb5h99b51x3fdvizc3yaxanqa8kx"; 10 12 }; 11 13 12 - nativeBuildInputs = [ meson ninja pkg-config ]; 13 - buildInputs = [ libevdev libxml2 ]; 14 + nativeBuildInputs = [ cmake meson ninja pkg-config ]; 15 + buildInputs = [ doctest libevdev libxml2 ]; 14 16 propagatedBuildInputs = [ glm ]; 17 + 18 + # CMake is just used for finding doctest. 19 + dontUseCmakeConfigure = true; 20 + 21 + doCheck = true; 15 22 16 23 meta = with lib; { 17 24 homepage = "https://github.com/WayfireWM/wf-config";
+5
pkgs/development/compilers/openjdk/jre.nix
··· 1 1 { stdenv 2 2 , jdk 3 3 , lib 4 + , callPackage 4 5 , modules ? [ "java.base" ] 5 6 }: 6 7 ··· 29 30 30 31 passthru = { 31 32 home = "${jre}"; 33 + tests = [ 34 + (callPackage ./tests/test_jre_minimal.nix {}) 35 + (callPackage ./tests/test_jre_minimal_with_logging.nix {}) 36 + ]; 32 37 }; 33 38 }; 34 39 in jre
+16
pkgs/development/compilers/openjdk/jre_minimal_test1.nix
··· 1 + { runCommand 2 + , callPackage 3 + , jdk 4 + , jre_minimal 5 + }: 6 + 7 + let 8 + hello = callPackage tests/hello.nix { 9 + jdk = jdk; 10 + jre = jre_minimal; 11 + }; 12 + in 13 + runCommand "test" {} '' 14 + ${hello}/bin/hello | grep "Hello, world!" 15 + touch $out 16 + ''
+47
pkgs/development/compilers/openjdk/tests/hello-logging.nix
··· 1 + { jdk 2 + , jre 3 + , pkgs 4 + }: 5 + 6 + /* 'Hello world' Java application derivation for use in tests */ 7 + let 8 + source = pkgs.writeTextDir "src/Hello.java" '' 9 + import java.util.logging.Logger; 10 + import java.util.logging.Level; 11 + 12 + class Hello { 13 + static Logger logger = Logger.getLogger(Hello.class.getName()); 14 + 15 + public static void main(String[] args) { 16 + logger.log(Level.INFO, "Hello, world!"); 17 + } 18 + } 19 + ''; 20 + in 21 + pkgs.stdenv.mkDerivation { 22 + pname = "hello"; 23 + version = "1.0.0"; 24 + 25 + src = source; 26 + 27 + buildPhase = '' 28 + runHook preBuildPhase 29 + ${jdk}/bin/javac src/Hello.java 30 + runHook postBuildPhase 31 + ''; 32 + installPhase = '' 33 + runHook preInstallPhase 34 + 35 + mkdir -p $out/lib 36 + cp src/Hello.class $out/lib 37 + 38 + mkdir -p $out/bin 39 + cat >$out/bin/hello <<EOF; 40 + #!/usr/bin/env sh 41 + ${jre}/bin/java -cp $out/lib Hello 42 + EOF 43 + chmod a+x $out/bin/hello 44 + 45 + runHook postInstallPhase 46 + ''; 47 + }
+42
pkgs/development/compilers/openjdk/tests/hello.nix
··· 1 + { jdk 2 + , jre 3 + , pkgs 4 + }: 5 + 6 + /* 'Hello world' Java application derivation for use in tests */ 7 + let 8 + source = pkgs.writeTextDir "src/Hello.java" '' 9 + class Hello { 10 + public static void main(String[] args) { 11 + System.out.println("Hello, world!"); 12 + } 13 + } 14 + ''; 15 + in 16 + pkgs.stdenv.mkDerivation { 17 + pname = "hello"; 18 + version = "1.0.0"; 19 + 20 + src = source; 21 + 22 + buildPhase = '' 23 + runHook preBuildPhase 24 + ${jdk}/bin/javac src/Hello.java 25 + runHook postBuildPhase 26 + ''; 27 + installPhase = '' 28 + runHook preInstallPhase 29 + 30 + mkdir -p $out/lib 31 + cp src/Hello.class $out/lib 32 + 33 + mkdir -p $out/bin 34 + cat >$out/bin/hello <<EOF; 35 + #!/usr/bin/env sh 36 + ${jre}/bin/java -cp $out/lib Hello 37 + EOF 38 + chmod a+x $out/bin/hello 39 + 40 + runHook postInstallPhase 41 + ''; 42 + }
+16
pkgs/development/compilers/openjdk/tests/test_jre_minimal.nix
··· 1 + { runCommand 2 + , callPackage 3 + , jdk 4 + , jre_minimal 5 + }: 6 + 7 + let 8 + hello = callPackage ./hello.nix { 9 + jdk = jdk; 10 + jre = jre_minimal; 11 + }; 12 + in 13 + runCommand "test" {} '' 14 + ${hello}/bin/hello | grep "Hello, world!" 15 + touch $out 16 + ''
+21
pkgs/development/compilers/openjdk/tests/test_jre_minimal_with_logging.nix
··· 1 + { runCommand 2 + , callPackage 3 + , jdk 4 + , jre_minimal 5 + }: 6 + 7 + let 8 + hello-logging = callPackage ./hello-logging.nix { 9 + jdk = jdk; 10 + jre = jre_minimal.override { 11 + modules = [ 12 + "java.base" 13 + "java.logging" 14 + ]; 15 + }; 16 + }; 17 + in 18 + runCommand "test" {} '' 19 + ${hello-logging}/bin/hello &>/dev/stdout | grep "Hello, world!" 20 + touch $out 21 + ''
+2
pkgs/development/coq-modules/coqeal/default.nix
··· 7 7 owner = "CoqEAL"; 8 8 inherit version; 9 9 defaultVersion = with versions; switch [ coq.version mathcomp.version ] [ 10 + { cases = [ (isGe "8.10") (range "1.11.0" "1.12.0") ]; out = "1.0.5"; } 10 11 { cases = [ (isGe "8.7") "1.11.0" ]; out = "1.0.4"; } 11 12 { cases = [ (isGe "8.7") "1.10.0" ]; out = "1.0.3"; } 12 13 ] null; 13 14 15 + release."1.0.5".sha256 = "0cmvky8glb5z2dy3q62aln6qbav4lrf2q1589f6h1gn5bgjrbzkm"; 14 16 release."1.0.4".sha256 = "1g5m26lr2lwxh6ld2gykailhay4d0ayql4bfh0aiwqpmmczmxipk"; 15 17 release."1.0.3".sha256 = "0hc63ny7phzbihy8l7wxjvn3haxx8jfnhi91iw8hkq8n29i23v24"; 16 18
+4 -4
pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
··· 1 1 { lib, stdenv, fetchFromGitHub 2 2 , meson, ninja, pkg-config, wayland-protocols 3 - , pipewire, wayland, systemd, libdrm }: 3 + , pipewire, wayland, systemd, libdrm, iniparser, scdoc }: 4 4 5 5 stdenv.mkDerivation rec { 6 6 pname = "xdg-desktop-portal-wlr"; 7 - version = "0.2.0"; 7 + version = "0.3.0"; 8 8 9 9 src = fetchFromGitHub { 10 10 owner = "emersion"; 11 11 repo = pname; 12 12 rev = "v${version}"; 13 - sha256 = "1vjz0y3ib1xw25z8hl679l2p6g4zcg7b8fcd502bhmnqgwgdcsfx"; 13 + sha256 = "sha256-6ArUQfWx5rNdpsd8Q22MqlpxLT8GTSsymAf21zGe1KI="; 14 14 }; 15 15 16 16 nativeBuildInputs = [ meson ninja pkg-config wayland-protocols ]; 17 - buildInputs = [ pipewire wayland systemd libdrm ]; 17 + buildInputs = [ pipewire wayland systemd libdrm iniparser scdoc ]; 18 18 19 19 mesonFlags = [ 20 20 "-Dsd-bus-provider=libsystemd"
+10 -7
pkgs/development/python-modules/aiorecollect/default.nix
··· 1 1 { lib 2 2 , aiohttp 3 3 , aresponses 4 - , async-timeout 5 4 , buildPythonPackage 6 5 , fetchFromGitHub 7 6 , freezegun ··· 13 12 14 13 buildPythonPackage rec { 15 14 pname = "aiorecollect"; 16 - version = "1.0.3"; 15 + version = "1.0.4"; 17 16 format = "pyproject"; 18 17 19 18 src = fetchFromGitHub { 20 19 owner = "bachya"; 21 20 repo = pname; 22 21 rev = version; 23 - sha256 = "sha256-S4HL8vJS/dTKsR5egKRSHqZYPClcET5Le06euHPyIkU="; 22 + sha256 = "sha256-A4qk7eo4maCRP4UmtWrRCPvG6YrLVSOiOcfN8pEj5Po="; 24 23 }; 25 24 26 - nativeBuildInputs = [ poetry-core ]; 25 + nativeBuildInputs = [ 26 + poetry-core 27 + ]; 27 28 28 - propagatedBuildInputs = [ aiohttp ]; 29 + propagatedBuildInputs = [ 30 + aiohttp 31 + ]; 29 32 30 33 checkInputs = [ 31 34 aresponses ··· 35 38 pytestCheckHook 36 39 ]; 37 40 38 - # Ignore the examples as they are prefixed with test_ 39 - pytestFlagsArray = [ "--ignore examples/" ]; 41 + disabledTestPaths = [ "examples/" ]; 42 + 40 43 pythonImportsCheck = [ "aiorecollect" ]; 41 44 42 45 meta = with lib; {
+2 -2
pkgs/development/python-modules/hatasmota/default.nix
··· 7 7 8 8 buildPythonPackage rec { 9 9 pname = "hatasmota"; 10 - version = "0.2.10"; 10 + version = "0.2.11"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "emontnemery"; 14 14 repo = pname; 15 15 rev = version; 16 - sha256 = "sha256-f831DKQJII1/MeF1buFihi65y3l7Vp7reVEcyzbAw3o="; 16 + sha256 = "sha256-S2pVxYpB8NcZIbhC+gnGrJxM6tvoPS1Uh87HTYiksWI="; 17 17 }; 18 18 19 19 propagatedBuildInputs = [
+4 -4
pkgs/development/python-modules/pyairvisual/default.nix
··· 15 15 16 16 buildPythonPackage rec { 17 17 pname = "pyairvisual"; 18 - version = "5.0.7"; 18 + version = "5.0.8"; 19 19 format = "pyproject"; 20 20 21 21 disabled = pythonOlder "3.6"; ··· 24 24 owner = "bachya"; 25 25 repo = pname; 26 26 rev = version; 27 - sha256 = "sha256-r/AJl36dv6+C92tc3kpX4/VzG69qdh4ERCyQxDOHdVU="; 27 + sha256 = "sha256-QgMc0O5jk5LgKQg9ZMCZd3dNLv1typm1Rp2u8kSsqYk="; 28 28 }; 29 29 30 30 nativeBuildInputs = [ poetry-core ]; ··· 43 43 pytestCheckHook 44 44 ]; 45 45 46 - # Ignore the examples as they are prefixed with test_ 47 - pytestFlagsArray = [ "--ignore examples/" ]; 46 + disabledTestPaths = [ "examples/" ]; 47 + 48 48 pythonImportsCheck = [ "pyairvisual" ]; 49 49 50 50 meta = with lib; {
+4 -4
pkgs/development/python-modules/pydeconz/default.nix
··· 3 3 , aioresponses 4 4 , buildPythonPackage 5 5 , fetchFromGitHub 6 - , pytest-asyncio 6 + , pytest-aiohttp 7 7 , pytestCheckHook 8 8 , pythonOlder 9 9 }: 10 10 11 11 buildPythonPackage rec { 12 12 pname = "pydeconz"; 13 - version = "78"; 13 + version = "79"; 14 14 disabled = pythonOlder "3.7"; 15 15 16 16 src = fetchFromGitHub { 17 17 owner = "Kane610"; 18 18 repo = "deconz"; 19 19 rev = "v${version}"; 20 - sha256 = "sha256-uIRuLNGFX7gq59/ntfks9pECiGkX7jjKh2jmjxFRcv4="; 20 + sha256 = "sha256-I29UIyHjsIymZxcE084hQoyaEMTXIIQPFcB8lsxY+UI="; 21 21 }; 22 22 23 23 propagatedBuildInputs = [ ··· 26 26 27 27 checkInputs = [ 28 28 aioresponses 29 - pytest-asyncio 29 + pytest-aiohttp 30 30 pytestCheckHook 31 31 ]; 32 32
+2 -2
pkgs/development/python-modules/pysma/default.nix
··· 9 9 10 10 buildPythonPackage rec { 11 11 pname = "pysma"; 12 - version = "0.4.1"; 12 + version = "0.4.3"; 13 13 14 14 src = fetchPypi { 15 15 inherit pname version; 16 - sha256 = "da4bed38aba52fa097694bda15c7fd80ca698d9352e71a63bc29092d635de54d"; 16 + sha256 = "sha256-vriMnJFS7yfTyDT1f4sx1xEBTQjqc4ZHmkdHp1vcd+Q="; 17 17 }; 18 18 19 19 propagatedBuildInputs = [
+2 -2
pkgs/development/python-modules/pysmappee/default.nix
··· 11 11 12 12 buildPythonPackage rec { 13 13 pname = "pysmappee"; 14 - version = "0.2.23"; 14 + version = "0.2.24"; 15 15 disabled = pythonOlder "3.7"; 16 16 17 17 src = fetchFromGitHub { 18 18 owner = "smappee"; 19 19 repo = pname; 20 20 rev = version; 21 - sha256 = "sha256-vxCZzkngYnc+hD3gT1x7qAQTFjpmmgRU5F6cusNDNgk="; 21 + sha256 = "sha256-M1qzwGf8q4WgkEL0nK1yjn3JSBbP7mr75IV45Oa+ypM="; 22 22 }; 23 23 24 24 propagatedBuildInputs = [
+2 -2
pkgs/development/python-modules/python-smarttub/default.nix
··· 13 13 14 14 buildPythonPackage rec { 15 15 pname = "python-smarttub"; 16 - version = "0.0.23"; 16 + version = "0.0.24"; 17 17 disabled = pythonOlder "3.8"; 18 18 19 19 src = fetchFromGitHub { 20 20 owner = "mdz"; 21 21 repo = pname; 22 22 rev = "v${version}"; 23 - sha256 = "0maqbmk50xjhv9f0zm62ayzyf99kic3c0g5714cqkw3pfp8k75cx"; 23 + sha256 = "sha256-XWZbfPNZ1cPsDwtJRuOwIPTHmNBMzFSYHDDcbBrXjtk="; 24 24 }; 25 25 26 26 propagatedBuildInputs = [
+18 -8
pkgs/development/python-modules/screenlogicpy/default.nix
··· 1 1 { lib 2 2 , buildPythonPackage 3 - , fetchPypi 3 + , fetchFromGitHub 4 4 , pythonOlder 5 + , pytestCheckHook 5 6 }: 6 7 7 8 buildPythonPackage rec { 8 9 pname = "screenlogicpy"; 9 - version = "0.3.0"; 10 + version = "0.4.1"; 10 11 disabled = pythonOlder "3.6"; 11 12 12 - src = fetchPypi { 13 - inherit pname version; 14 - sha256 = "0gn2mf2n2g1ffdbijrydgb7dgd60lkvckblx6s86kxlkrp1wqgrq"; 13 + src = fetchFromGitHub { 14 + owner = "dieselrabbit"; 15 + repo = pname; 16 + rev = "v${version}"; 17 + sha256 = "1rmjxqqbkfcv2xz8ilml799bzffls678fvq784fab2xdv595fndd"; 15 18 }; 16 19 17 - # Project doesn't publish tests 18 - # https://github.com/dieselrabbit/screenlogicpy/issues/8 19 - doCheck = false; 20 + checkInputs = [ 21 + pytestCheckHook 22 + ]; 23 + 24 + disabledTests = [ 25 + # Tests require network access 26 + "test_gateway_discovery" 27 + "test_asyncio_gateway_discovery" 28 + ]; 29 + 20 30 pythonImportsCheck = [ "screenlogicpy" ]; 21 31 22 32 meta = with lib; {
+1 -2
pkgs/development/python-modules/xlsx2csv/default.nix
··· 13 13 }; 14 14 15 15 meta = with lib; { 16 - homepage = "https://github.com/bitprophet/alabaster"; 16 + homepage = "https://github.com/dilshod/xlsx2csv"; 17 17 description = "Convert xlsx to csv"; 18 18 license = licenses.bsd3; 19 19 maintainers = with maintainers; [ jb55 ]; 20 20 }; 21 - 22 21 }
+2 -2
pkgs/development/python-modules/yalexs/default.nix
··· 16 16 17 17 buildPythonPackage rec { 18 18 pname = "yalexs"; 19 - version = "1.1.10"; 19 + version = "1.1.11"; 20 20 disabled = pythonOlder "3.6"; 21 21 22 22 src = fetchFromGitHub { 23 23 owner = "bdraco"; 24 24 repo = pname; 25 25 rev = "v${version}"; 26 - sha256 = "1qmxiafqmh51i3l30pajaqj5h0kziq4d37fn6hl58429bb85dpp9"; 26 + sha256 = "sha256-fVUYrzIcW4jbxdhS/Bh8eu+aJPFOqj0LXjoQKw+FZdg="; 27 27 }; 28 28 29 29 propagatedBuildInputs = [
+2 -2
pkgs/development/python-modules/zha-quirks/default.nix
··· 9 9 10 10 buildPythonPackage rec { 11 11 pname = "zha-quirks"; 12 - version = "0.0.56"; 12 + version = "0.0.57"; 13 13 14 14 src = fetchFromGitHub { 15 15 owner = "zigpy"; 16 16 repo = "zha-device-handlers"; 17 17 rev = version; 18 - sha256 = "1jss5pnxdjlp0kplqxgr09vv1zq9n7l9w08hsywy2vglqmd67a66"; 18 + sha256 = "sha256-ajdluj6UIzjJUK30GtoM+e5lsMQRKnn3FPNEg+RS/DM="; 19 19 }; 20 20 21 21 propagatedBuildInputs = [
+2 -2
pkgs/servers/dns/bind/default.nix
··· 10 10 11 11 stdenv.mkDerivation rec { 12 12 pname = "bind"; 13 - version = "9.16.13"; 13 + version = "9.16.15"; 14 14 15 15 src = fetchurl { 16 16 url = "https://downloads.isc.org/isc/bind9/${version}/${pname}-${version}.tar.xz"; 17 - sha256 = "sha256-pUzHk/pbabNfYQ8glXYPgjjf9c/VJBn37hycIn2kzAg="; 17 + sha256 = "0fbqisrh84f8wszm94cqp7v8q9r7pql3qyzbay7vz9vqv0rg9dlq"; 18 18 }; 19 19 20 20 outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ];
+30
pkgs/servers/monitoring/prometheus/unbound-exporter.nix
··· 1 + { lib, rustPlatform, fetchFromGitHub, openssl, pkg-config, nixosTests }: 2 + 3 + rustPlatform.buildRustPackage rec { 4 + pname = "unbound-telemetry"; 5 + version = "unstable-2021-03-17"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "svartalf"; 9 + repo = pname; 10 + rev = "7f1b6d4e9e4b6a3216a78c23df745bcf8fc84021"; 11 + sha256 = "xCelL6WGaTRhDJkkUdpdwj1zcKKAU2dyUv3mHeI4oAw="; 12 + }; 13 + 14 + cargoSha256 = "P3nAtYOuwNSLMP7q1L5zKTsZ6rJA/qL1mhVHzP3szi4="; 15 + 16 + nativeBuildInputs = [ pkg-config ]; 17 + 18 + buildInputs = [ openssl ]; 19 + 20 + passthru.tests = { 21 + inherit (nixosTests.prometheus-exporters) unbound; 22 + }; 23 + 24 + meta = with lib; { 25 + description = "Prometheus exporter for Unbound DNS resolver"; 26 + homepage = "https://github.com/svartalf/unbound-telemetry"; 27 + license = licenses.mit; 28 + maintainers = with maintainers; [ SuperSandro2000 ]; 29 + }; 30 + }
+2 -2
pkgs/top-level/all-packages.nix
··· 19200 19200 prometheus-tor-exporter = callPackage ../servers/monitoring/prometheus/tor-exporter.nix { }; 19201 19201 prometheus-statsd-exporter = callPackage ../servers/monitoring/prometheus/statsd-exporter.nix { }; 19202 19202 prometheus-surfboard-exporter = callPackage ../servers/monitoring/prometheus/surfboard-exporter.nix { }; 19203 + prometheus-unbound-exporter = callPackage ../servers/monitoring/prometheus/unbound-exporter.nix { }; 19203 19204 prometheus-unifi-exporter = callPackage ../servers/monitoring/prometheus/unifi-exporter { }; 19204 19205 prometheus-varnish-exporter = callPackage ../servers/monitoring/prometheus/varnish-exporter.nix { }; 19205 19206 prometheus-jmx-httpserver = callPackage ../servers/monitoring/prometheus/jmx-httpserver.nix { }; ··· 26778 26779 wayfireApplications = wayfireApplications-unwrapped.withPlugins (plugins: [ plugins.wf-shell ]); 26779 26780 inherit (wayfireApplications) wayfire wcm; 26780 26781 wayfireApplications-unwrapped = recurseIntoAttrs ( 26781 - (callPackage ../applications/window-managers/wayfire/applications.nix { }). 26782 - extend (_: _: { wlroots = wlroots_0_12; }) 26782 + callPackage ../applications/window-managers/wayfire/applications.nix { } 26783 26783 ); 26784 26784 wayfirePlugins = recurseIntoAttrs ( 26785 26785 callPackage ../applications/window-managers/wayfire/plugins.nix {