Merge staging-next into staging
This commit is contained in:
commit
408e32a8fe
@ -1,7 +1,4 @@
|
||||
{ config, options, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
name = "snapserver";
|
||||
@ -9,8 +6,8 @@ let
|
||||
cfg = config.services.snapserver;
|
||||
|
||||
# Using types.nullOr to inherit upstream defaults.
|
||||
sampleFormat = mkOption {
|
||||
type = with types; nullOr str;
|
||||
sampleFormat = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
default = null;
|
||||
description = ''
|
||||
Default sample format.
|
||||
@ -18,8 +15,8 @@ let
|
||||
example = "48000:16:2";
|
||||
};
|
||||
|
||||
codec = mkOption {
|
||||
type = with types; nullOr str;
|
||||
codec = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
default = null;
|
||||
description = ''
|
||||
Default audio compression method.
|
||||
@ -30,20 +27,20 @@ let
|
||||
streamToOption = name: opt:
|
||||
let
|
||||
os = val:
|
||||
optionalString (val != null) "${val}";
|
||||
lib.optionalString (val != null) "${val}";
|
||||
os' = prefix: val:
|
||||
optionalString (val != null) (prefix + "${val}");
|
||||
lib.optionalString (val != null) (prefix + "${val}");
|
||||
flatten = key: value:
|
||||
"&${key}=${value}";
|
||||
in
|
||||
"--stream.stream=\"${opt.type}://" + os opt.location + "?" + os' "name=" name
|
||||
+ os' "&sampleformat=" opt.sampleFormat + os' "&codec=" opt.codec
|
||||
+ concatStrings (mapAttrsToList flatten opt.query) + "\"";
|
||||
+ lib.concatStrings (lib.mapAttrsToList lib.flatten opt.query) + "\"";
|
||||
|
||||
optionalNull = val: ret:
|
||||
optional (val != null) ret;
|
||||
lib.optional (val != null) ret;
|
||||
|
||||
optionString = concatStringsSep " " (mapAttrsToList streamToOption cfg.streams
|
||||
optionString = lib.concatStringsSep " " (lib.mapAttrsToList streamToOption cfg.streams
|
||||
# global options
|
||||
++ [ "--stream.bind_to_address=${cfg.listenAddress}" ]
|
||||
++ [ "--stream.port=${toString cfg.port}" ]
|
||||
@ -51,22 +48,22 @@ let
|
||||
++ optionalNull cfg.codec "--stream.codec=${cfg.codec}"
|
||||
++ optionalNull cfg.streamBuffer "--stream.stream_buffer=${toString cfg.streamBuffer}"
|
||||
++ optionalNull cfg.buffer "--stream.buffer=${toString cfg.buffer}"
|
||||
++ optional cfg.sendToMuted "--stream.send_to_muted"
|
||||
++ lib.optional cfg.sendToMuted "--stream.send_to_muted"
|
||||
# tcp json rpc
|
||||
++ [ "--tcp.enabled=${toString cfg.tcp.enable}" ]
|
||||
++ optionals cfg.tcp.enable [
|
||||
++ lib.optionals cfg.tcp.enable [
|
||||
"--tcp.bind_to_address=${cfg.tcp.listenAddress}"
|
||||
"--tcp.port=${toString cfg.tcp.port}" ]
|
||||
# http json rpc
|
||||
++ [ "--http.enabled=${toString cfg.http.enable}" ]
|
||||
++ optionals cfg.http.enable [
|
||||
++ lib.optionals cfg.http.enable [
|
||||
"--http.bind_to_address=${cfg.http.listenAddress}"
|
||||
"--http.port=${toString cfg.http.port}"
|
||||
] ++ optional (cfg.http.docRoot != null) "--http.doc_root=\"${toString cfg.http.docRoot}\"");
|
||||
] ++ lib.optional (cfg.http.docRoot != null) "--http.doc_root=\"${toString cfg.http.docRoot}\"");
|
||||
|
||||
in {
|
||||
imports = [
|
||||
(mkRenamedOptionModule [ "services" "snapserver" "controlPort" ] [ "services" "snapserver" "tcp" "port" ])
|
||||
(lib.mkRenamedOptionModule [ "services" "snapserver" "controlPort" ] [ "services" "snapserver" "tcp" "port" ])
|
||||
];
|
||||
|
||||
###### interface
|
||||
@ -75,16 +72,16 @@ in {
|
||||
|
||||
services.snapserver = {
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to enable snapserver.
|
||||
'';
|
||||
};
|
||||
|
||||
listenAddress = mkOption {
|
||||
type = types.str;
|
||||
listenAddress = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "::";
|
||||
example = "0.0.0.0";
|
||||
description = ''
|
||||
@ -92,16 +89,16 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 1704;
|
||||
description = ''
|
||||
The port that snapclients can connect to.
|
||||
'';
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
openFirewall = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to automatically open the specified ports in the firewall.
|
||||
@ -111,8 +108,8 @@ in {
|
||||
inherit sampleFormat;
|
||||
inherit codec;
|
||||
|
||||
streamBuffer = mkOption {
|
||||
type = with types; nullOr int;
|
||||
streamBuffer = lib.mkOption {
|
||||
type = with lib.types; nullOr int;
|
||||
default = null;
|
||||
description = ''
|
||||
Stream read (input) buffer in ms.
|
||||
@ -120,8 +117,8 @@ in {
|
||||
example = 20;
|
||||
};
|
||||
|
||||
buffer = mkOption {
|
||||
type = with types; nullOr int;
|
||||
buffer = lib.mkOption {
|
||||
type = with lib.types; nullOr int;
|
||||
default = null;
|
||||
description = ''
|
||||
Network buffer in ms.
|
||||
@ -129,24 +126,24 @@ in {
|
||||
example = 1000;
|
||||
};
|
||||
|
||||
sendToMuted = mkOption {
|
||||
type = types.bool;
|
||||
sendToMuted = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Send audio to muted clients.
|
||||
'';
|
||||
};
|
||||
|
||||
tcp.enable = mkOption {
|
||||
type = types.bool;
|
||||
tcp.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to enable the JSON-RPC via TCP.
|
||||
'';
|
||||
};
|
||||
|
||||
tcp.listenAddress = mkOption {
|
||||
type = types.str;
|
||||
tcp.listenAddress = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "::";
|
||||
example = "0.0.0.0";
|
||||
description = ''
|
||||
@ -154,24 +151,24 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
tcp.port = mkOption {
|
||||
type = types.port;
|
||||
tcp.port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 1705;
|
||||
description = ''
|
||||
The port where the TCP JSON-RPC listens on.
|
||||
'';
|
||||
};
|
||||
|
||||
http.enable = mkOption {
|
||||
type = types.bool;
|
||||
http.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to enable the JSON-RPC via HTTP.
|
||||
'';
|
||||
};
|
||||
|
||||
http.listenAddress = mkOption {
|
||||
type = types.str;
|
||||
http.listenAddress = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "::";
|
||||
example = "0.0.0.0";
|
||||
description = ''
|
||||
@ -179,27 +176,27 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
http.port = mkOption {
|
||||
type = types.port;
|
||||
http.port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 1780;
|
||||
description = ''
|
||||
The port where the HTTP JSON-RPC listens on.
|
||||
'';
|
||||
};
|
||||
|
||||
http.docRoot = mkOption {
|
||||
type = with types; nullOr path;
|
||||
http.docRoot = lib.mkOption {
|
||||
type = with lib.types; nullOr path;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to serve from the HTTP servers root.
|
||||
'';
|
||||
};
|
||||
|
||||
streams = mkOption {
|
||||
type = with types; attrsOf (submodule {
|
||||
streams = lib.mkOption {
|
||||
type = with lib.types; attrsOf (submodule {
|
||||
options = {
|
||||
location = mkOption {
|
||||
type = types.oneOf [ types.path types.str ];
|
||||
location = lib.mkOption {
|
||||
type = lib.types.oneOf [ lib.types.path lib.types.str ];
|
||||
description = ''
|
||||
For type `pipe` or `file`, the path to the pipe or file.
|
||||
For type `librespot`, `airplay` or `process`, the path to the corresponding binary.
|
||||
@ -207,27 +204,27 @@ in {
|
||||
For type `meta`, a list of stream names in the form `/one/two/...`. Don't forget the leading slash.
|
||||
For type `alsa`, use an empty string.
|
||||
'';
|
||||
example = literalExpression ''
|
||||
example = lib.literalExpression ''
|
||||
"/path/to/pipe"
|
||||
"/path/to/librespot"
|
||||
"192.168.1.2:4444"
|
||||
"/MyTCP/Spotify/MyPipe"
|
||||
'';
|
||||
};
|
||||
type = mkOption {
|
||||
type = types.enum [ "pipe" "librespot" "airplay" "file" "process" "tcp" "alsa" "spotify" "meta" ];
|
||||
type = lib.mkOption {
|
||||
type = lib.types.enum [ "pipe" "librespot" "airplay" "file" "process" "tcp" "alsa" "spotify" "meta" ];
|
||||
default = "pipe";
|
||||
description = ''
|
||||
The type of input stream.
|
||||
'';
|
||||
};
|
||||
query = mkOption {
|
||||
query = lib.mkOption {
|
||||
type = attrsOf str;
|
||||
default = {};
|
||||
description = ''
|
||||
Key-value pairs that convey additional parameters about a stream.
|
||||
'';
|
||||
example = literalExpression ''
|
||||
example = lib.literalExpression ''
|
||||
# for type == "pipe":
|
||||
{
|
||||
mode = "create";
|
||||
@ -255,7 +252,7 @@ in {
|
||||
description = ''
|
||||
The definition for an input source.
|
||||
'';
|
||||
example = literalExpression ''
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
mpd = {
|
||||
type = "pipe";
|
||||
@ -272,11 +269,11 @@ in {
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
warnings =
|
||||
# https://github.com/badaix/snapcast/blob/98ac8b2fb7305084376607b59173ce4097c620d8/server/streamreader/stream_manager.cpp#L85
|
||||
filter (w: w != "") (mapAttrsToList (k: v: optionalString (v.type == "spotify") ''
|
||||
lib.filter (w: w != "") (lib.mapAttrsToList (k: v: lib.optionalString (v.type == "spotify") ''
|
||||
services.snapserver.streams.${k}.type = "spotify" is deprecated, use services.snapserver.streams.${k}.type = "librespot" instead.
|
||||
'') cfg.streams);
|
||||
|
||||
@ -305,13 +302,13 @@ in {
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts =
|
||||
optionals cfg.openFirewall [ cfg.port ]
|
||||
++ optional (cfg.openFirewall && cfg.tcp.enable) cfg.tcp.port
|
||||
++ optional (cfg.openFirewall && cfg.http.enable) cfg.http.port;
|
||||
lib.optionals cfg.openFirewall [ cfg.port ]
|
||||
++ lib.optional (cfg.openFirewall && cfg.tcp.enable) cfg.tcp.port
|
||||
++ lib.optional (cfg.openFirewall && cfg.http.enable) cfg.http.port;
|
||||
};
|
||||
|
||||
meta = {
|
||||
maintainers = with maintainers; [ tobim ];
|
||||
maintainers = with lib.maintainers; [ tobim ];
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,4 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
isLocalPath = x:
|
||||
@ -11,17 +8,17 @@ let
|
||||
|
||||
mkExcludeFile = cfg:
|
||||
# Write each exclude pattern to a new line
|
||||
pkgs.writeText "excludefile" (concatMapStrings (s: s + "\n") cfg.exclude);
|
||||
pkgs.writeText "excludefile" (lib.concatMapStrings (s: s + "\n") cfg.exclude);
|
||||
|
||||
mkPatternsFile = cfg:
|
||||
# Write each pattern to a new line
|
||||
pkgs.writeText "patternsfile" (concatMapStrings (s: s + "\n") cfg.patterns);
|
||||
pkgs.writeText "patternsfile" (lib.concatMapStrings (s: s + "\n") cfg.patterns);
|
||||
|
||||
mkKeepArgs = cfg:
|
||||
# If cfg.prune.keep e.g. has a yearly attribute,
|
||||
# its content is passed on as --keep-yearly
|
||||
concatStringsSep " "
|
||||
(mapAttrsToList (x: y: "--keep-${x}=${toString y}") cfg.prune.keep);
|
||||
lib.concatStringsSep " "
|
||||
(lib.mapAttrsToList (x: y: "--keep-${x}=${toString y}") cfg.prune.keep);
|
||||
|
||||
mkBackupScript = name: cfg: pkgs.writeShellScript "${name}-script" (''
|
||||
set -e
|
||||
@ -44,10 +41,10 @@ let
|
||||
fi
|
||||
}
|
||||
|
||||
archiveName="${optionalString (cfg.archiveBaseName != null) (cfg.archiveBaseName + "-")}$(date ${cfg.dateFormat})"
|
||||
archiveSuffix="${optionalString cfg.appendFailedSuffix ".failed"}"
|
||||
archiveName="${lib.optionalString (cfg.archiveBaseName != null) (cfg.archiveBaseName + "-")}$(date ${cfg.dateFormat})"
|
||||
archiveSuffix="${lib.optionalString cfg.appendFailedSuffix ".failed"}"
|
||||
${cfg.preHook}
|
||||
'' + optionalString cfg.doInit ''
|
||||
'' + lib.optionalString cfg.doInit ''
|
||||
# Run borg init if the repo doesn't exist yet
|
||||
if ! borgWrapper list $extraArgs > /dev/null; then
|
||||
borgWrapper init $extraArgs \
|
||||
@ -58,24 +55,24 @@ let
|
||||
'' + ''
|
||||
(
|
||||
set -o pipefail
|
||||
${optionalString (cfg.dumpCommand != null) ''${escapeShellArg cfg.dumpCommand} | \''}
|
||||
${lib.optionalString (cfg.dumpCommand != null) ''${lib.escapeShellArg cfg.dumpCommand} | \''}
|
||||
borgWrapper create $extraArgs \
|
||||
--compression ${cfg.compression} \
|
||||
--exclude-from ${mkExcludeFile cfg} \
|
||||
--patterns-from ${mkPatternsFile cfg} \
|
||||
$extraCreateArgs \
|
||||
"::$archiveName$archiveSuffix" \
|
||||
${if cfg.paths == null then "-" else escapeShellArgs cfg.paths}
|
||||
${if cfg.paths == null then "-" else lib.escapeShellArgs cfg.paths}
|
||||
)
|
||||
'' + optionalString cfg.appendFailedSuffix ''
|
||||
'' + lib.optionalString cfg.appendFailedSuffix ''
|
||||
borgWrapper rename $extraArgs \
|
||||
"::$archiveName$archiveSuffix" "$archiveName"
|
||||
'' + ''
|
||||
${cfg.postCreate}
|
||||
'' + optionalString (cfg.prune.keep != { }) ''
|
||||
'' + lib.optionalString (cfg.prune.keep != { }) ''
|
||||
borgWrapper prune $extraArgs \
|
||||
${mkKeepArgs cfg} \
|
||||
${optionalString (cfg.prune.prefix != null) "--glob-archives ${escapeShellArg "${cfg.prune.prefix}*"}"} \
|
||||
${lib.optionalString (cfg.prune.prefix != null) "--glob-archives ${lib.escapeShellArg "${cfg.prune.prefix}*"}"} \
|
||||
$extraPruneArgs
|
||||
borgWrapper compact $extraArgs $extraCompactArgs
|
||||
${cfg.postPrune}
|
||||
@ -93,18 +90,18 @@ let
|
||||
userHome = config.users.users.${cfg.user}.home;
|
||||
backupJobName = "borgbackup-job-${name}";
|
||||
backupScript = mkBackupScript backupJobName cfg;
|
||||
in nameValuePair backupJobName {
|
||||
in lib.nameValuePair backupJobName {
|
||||
description = "BorgBackup job ${name}";
|
||||
path = [
|
||||
config.services.borgbackup.package pkgs.openssh
|
||||
];
|
||||
script = "exec " + optionalString cfg.inhibitsSleep ''\
|
||||
script = "exec " + lib.optionalString cfg.inhibitsSleep ''\
|
||||
${pkgs.systemd}/bin/systemd-inhibit \
|
||||
--who="borgbackup" \
|
||||
--what="sleep" \
|
||||
--why="Scheduled backup" \
|
||||
'' + backupScript;
|
||||
unitConfig = optionalAttrs (isLocalPath cfg.repo) {
|
||||
unitConfig = lib.optionalAttrs (isLocalPath cfg.repo) {
|
||||
RequiresMountsFor = [ cfg.repo ];
|
||||
};
|
||||
serviceConfig = {
|
||||
@ -118,7 +115,7 @@ let
|
||||
[ "${userHome}/.config/borg" "${userHome}/.cache/borg" ]
|
||||
++ cfg.readWritePaths
|
||||
# Borg needs write access to repo if it is not remote
|
||||
++ optional (isLocalPath cfg.repo) cfg.repo;
|
||||
++ lib.optional (isLocalPath cfg.repo) cfg.repo;
|
||||
PrivateTmp = cfg.privateTmp;
|
||||
};
|
||||
environment = {
|
||||
@ -128,7 +125,7 @@ let
|
||||
};
|
||||
|
||||
mkBackupTimers = name: cfg:
|
||||
nameValuePair "borgbackup-job-${name}" {
|
||||
lib.nameValuePair "borgbackup-job-${name}" {
|
||||
description = "BorgBackup job ${name} timer";
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
@ -136,8 +133,8 @@ let
|
||||
OnCalendar = cfg.startAt;
|
||||
};
|
||||
# if remote-backup wait for network
|
||||
after = optional (cfg.persistentTimer && !isLocalPath cfg.repo) "network-online.target";
|
||||
wants = optional (cfg.persistentTimer && !isLocalPath cfg.repo) "network-online.target";
|
||||
after = lib.optional (cfg.persistentTimer && !isLocalPath cfg.repo) "network-online.target";
|
||||
wants = lib.optional (cfg.persistentTimer && !isLocalPath cfg.repo) "network-online.target";
|
||||
};
|
||||
|
||||
# utility function around makeWrapper
|
||||
@ -148,11 +145,11 @@ let
|
||||
nativeBuildInputs = [ pkgs.makeWrapper ];
|
||||
} (with lib; ''
|
||||
makeWrapper "${original}" "$out/bin/${name}" \
|
||||
${concatStringsSep " \\\n " (mapAttrsToList (name: value: ''--set ${name} "${value}"'') set)}
|
||||
${lib.concatStringsSep " \\\n " (lib.mapAttrsToList (name: value: ''--set ${name} "${value}"'') set)}
|
||||
'');
|
||||
|
||||
mkBorgWrapper = name: cfg: mkWrapperDrv {
|
||||
original = getExe config.services.borgbackup.package;
|
||||
original = lib.getExe config.services.borgbackup.package;
|
||||
name = "borg-job-${name}";
|
||||
set = { BORG_REPO = cfg.repo; } // (mkPassEnv cfg) // cfg.environment;
|
||||
};
|
||||
@ -167,7 +164,7 @@ let
|
||||
"${config.users.users."${cfg.user}".home}/.cache".d = settings;
|
||||
"${config.users.users."${cfg.user}".home}/.config/borg".d = settings;
|
||||
"${config.users.users."${cfg.user}".home}/.cache/borg".d = settings;
|
||||
} // optionalAttrs (isLocalPath cfg.repo && !cfg.removableDevice) {
|
||||
} // lib.optionalAttrs (isLocalPath cfg.repo && !cfg.removableDevice) {
|
||||
"${cfg.repo}".d = settings;
|
||||
});
|
||||
|
||||
@ -180,11 +177,11 @@ let
|
||||
};
|
||||
|
||||
mkRepoService = name: cfg:
|
||||
nameValuePair "borgbackup-repo-${name}" {
|
||||
lib.nameValuePair "borgbackup-repo-${name}" {
|
||||
description = "Create BorgBackup repository ${name} directory";
|
||||
script = ''
|
||||
mkdir -p ${escapeShellArg cfg.path}
|
||||
chown ${cfg.user}:${cfg.group} ${escapeShellArg cfg.path}
|
||||
mkdir -p ${lib.escapeShellArg cfg.path}
|
||||
chown ${cfg.user}:${cfg.group} ${lib.escapeShellArg cfg.path}
|
||||
'';
|
||||
serviceConfig = {
|
||||
# The service's only task is to ensure that the specified path exists
|
||||
@ -196,10 +193,10 @@ let
|
||||
mkAuthorizedKey = cfg: appendOnly: key:
|
||||
let
|
||||
# Because of the following line, clients do not need to specify an absolute repo path
|
||||
cdCommand = "cd ${escapeShellArg cfg.path}";
|
||||
cdCommand = "cd ${lib.escapeShellArg cfg.path}";
|
||||
restrictedArg = "--restrict-to-${if cfg.allowSubRepos then "path" else "repository"} .";
|
||||
appendOnlyArg = optionalString appendOnly "--append-only";
|
||||
quotaArg = optionalString (cfg.quota != null) "--storage-quota ${cfg.quota}";
|
||||
appendOnlyArg = lib.optionalString appendOnly "--append-only";
|
||||
quotaArg = lib.optionalString (cfg.quota != null) "--storage-quota ${cfg.quota}";
|
||||
serveCommand = "borg serve ${restrictedArg} ${appendOnlyArg} ${quotaArg}";
|
||||
in
|
||||
''command="${cdCommand} && ${serveCommand}",restrict ${key}'';
|
||||
@ -224,7 +221,7 @@ let
|
||||
};
|
||||
|
||||
mkSourceAssertions = name: cfg: {
|
||||
assertion = count isNull [ cfg.dumpCommand cfg.paths ] == 1;
|
||||
assertion = lib.count isNull [ cfg.dumpCommand cfg.paths ] == 1;
|
||||
message = ''
|
||||
Exactly one of borgbackup.jobs.${name}.paths or borgbackup.jobs.${name}.dumpCommand
|
||||
must be set.
|
||||
@ -239,14 +236,14 @@ let
|
||||
};
|
||||
|
||||
in {
|
||||
meta.maintainers = with maintainers; [ dotlambda ];
|
||||
meta.maintainers = with lib.maintainers; [ dotlambda ];
|
||||
meta.doc = ./borgbackup.md;
|
||||
|
||||
###### interface
|
||||
|
||||
options.services.borgbackup.package = mkPackageOption pkgs "borgbackup" { };
|
||||
options.services.borgbackup.package = lib.mkPackageOption pkgs "borgbackup" { };
|
||||
|
||||
options.services.borgbackup.jobs = mkOption {
|
||||
options.services.borgbackup.jobs = lib.mkOption {
|
||||
description = ''
|
||||
Deduplicating backups using BorgBackup.
|
||||
Adding a job will cause a borg-job-NAME wrapper to be added
|
||||
@ -254,7 +251,7 @@ in {
|
||||
See also the chapter about BorgBackup in the NixOS manual.
|
||||
'';
|
||||
default = { };
|
||||
example = literalExpression ''
|
||||
example = lib.literalExpression ''
|
||||
{ # for a local backup
|
||||
rootBackup = {
|
||||
paths = "/";
|
||||
@ -286,12 +283,12 @@ in {
|
||||
startAt = "daily";
|
||||
};
|
||||
'';
|
||||
type = types.attrsOf (types.submodule (let globalConfig = config; in
|
||||
type = lib.types.attrsOf (lib.types.submodule (let globalConfig = config; in
|
||||
{ name, config, ... }: {
|
||||
options = {
|
||||
|
||||
paths = mkOption {
|
||||
type = with types; nullOr (coercedTo str lib.singleton (listOf str));
|
||||
paths = lib.mkOption {
|
||||
type = with lib.types; nullOr (coercedTo str lib.singleton (listOf str));
|
||||
default = null;
|
||||
description = ''
|
||||
Path(s) to back up.
|
||||
@ -300,8 +297,8 @@ in {
|
||||
example = "/home/user";
|
||||
};
|
||||
|
||||
dumpCommand = mkOption {
|
||||
type = with types; nullOr path;
|
||||
dumpCommand = lib.mkOption {
|
||||
type = with lib.types; nullOr path;
|
||||
default = null;
|
||||
description = ''
|
||||
Backup the stdout of this program instead of filesystem paths.
|
||||
@ -310,22 +307,22 @@ in {
|
||||
example = "/path/to/createZFSsend.sh";
|
||||
};
|
||||
|
||||
repo = mkOption {
|
||||
type = types.str;
|
||||
repo = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Remote or local repository to back up to.";
|
||||
example = "user@machine:/path/to/repo";
|
||||
};
|
||||
|
||||
removableDevice = mkOption {
|
||||
type = types.bool;
|
||||
removableDevice = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Whether the repo (which must be local) is a removable device.";
|
||||
};
|
||||
|
||||
archiveBaseName = mkOption {
|
||||
type = types.nullOr (types.strMatching "[^/{}]+");
|
||||
archiveBaseName = lib.mkOption {
|
||||
type = lib.types.nullOr (lib.types.strMatching "[^/{}]+");
|
||||
default = "${globalConfig.networking.hostName}-${name}";
|
||||
defaultText = literalExpression ''"''${config.networking.hostName}-<name>"'';
|
||||
defaultText = lib.literalExpression ''"''${config.networking.hostName}-<name>"'';
|
||||
description = ''
|
||||
How to name the created archives. A timestamp, whose format is
|
||||
determined by {option}`dateFormat`, will be appended. The full
|
||||
@ -335,8 +332,8 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
dateFormat = mkOption {
|
||||
type = types.str;
|
||||
dateFormat = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
Arguments passed to {command}`date`
|
||||
to create a timestamp suffix for the archive name.
|
||||
@ -345,8 +342,8 @@ in {
|
||||
example = "-u +%s";
|
||||
};
|
||||
|
||||
startAt = mkOption {
|
||||
type = with types; either str (listOf str);
|
||||
startAt = lib.mkOption {
|
||||
type = with lib.types; either str (listOf str);
|
||||
default = "daily";
|
||||
description = ''
|
||||
When or how often the backup should run.
|
||||
@ -359,9 +356,9 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
persistentTimer = mkOption {
|
||||
persistentTimer = lib.mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
type = lib.types.bool;
|
||||
example = true;
|
||||
description = ''
|
||||
Set the `Persistent` option for the
|
||||
@ -371,17 +368,17 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
inhibitsSleep = mkOption {
|
||||
inhibitsSleep = lib.mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
type = lib.types.bool;
|
||||
example = true;
|
||||
description = ''
|
||||
Prevents the system from sleeping while backing up.
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
user = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
The user {command}`borg` is run as.
|
||||
User or group need read permission
|
||||
@ -390,8 +387,8 @@ in {
|
||||
default = "root";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
group = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
The group borg is run as. User or group needs read permission
|
||||
for the specified {option}`paths`.
|
||||
@ -399,8 +396,8 @@ in {
|
||||
default = "root";
|
||||
};
|
||||
|
||||
encryption.mode = mkOption {
|
||||
type = types.enum [
|
||||
encryption.mode = lib.mkOption {
|
||||
type = lib.types.enum [
|
||||
"repokey" "keyfile"
|
||||
"repokey-blake2" "keyfile-blake2"
|
||||
"authenticated" "authenticated-blake2"
|
||||
@ -415,8 +412,8 @@ in {
|
||||
example = "repokey-blake2";
|
||||
};
|
||||
|
||||
encryption.passCommand = mkOption {
|
||||
type = with types; nullOr str;
|
||||
encryption.passCommand = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
description = ''
|
||||
A command which prints the passphrase to stdout.
|
||||
Mutually exclusive with {option}`passphrase`.
|
||||
@ -425,8 +422,8 @@ in {
|
||||
example = "cat /path/to/passphrase_file";
|
||||
};
|
||||
|
||||
encryption.passphrase = mkOption {
|
||||
type = with types; nullOr str;
|
||||
encryption.passphrase = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
description = ''
|
||||
The passphrase the backups are encrypted with.
|
||||
Mutually exclusive with {option}`passCommand`.
|
||||
@ -436,11 +433,11 @@ in {
|
||||
default = null;
|
||||
};
|
||||
|
||||
compression = mkOption {
|
||||
compression = lib.mkOption {
|
||||
# "auto" is optional,
|
||||
# compression mode must be given,
|
||||
# compression level is optional
|
||||
type = types.strMatching "none|(auto,)?(lz4|zstd|zlib|lzma)(,[[:digit:]]{1,2})?";
|
||||
type = lib.types.strMatching "none|(auto,)?(lz4|zstd|zlib|lzma)(,[[:digit:]]{1,2})?";
|
||||
description = ''
|
||||
Compression method to use. Refer to
|
||||
{command}`borg help compression`
|
||||
@ -450,8 +447,8 @@ in {
|
||||
example = "auto,lzma";
|
||||
};
|
||||
|
||||
exclude = mkOption {
|
||||
type = with types; listOf str;
|
||||
exclude = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
description = ''
|
||||
Exclude paths matching any of the given patterns. See
|
||||
{command}`borg help patterns` for pattern syntax.
|
||||
@ -463,8 +460,8 @@ in {
|
||||
];
|
||||
};
|
||||
|
||||
patterns = mkOption {
|
||||
type = with types; listOf str;
|
||||
patterns = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
description = ''
|
||||
Include/exclude paths matching the given patterns. The first
|
||||
matching patterns is used, so if an include pattern (prefix `+`)
|
||||
@ -478,8 +475,8 @@ in {
|
||||
];
|
||||
};
|
||||
|
||||
readWritePaths = mkOption {
|
||||
type = with types; listOf path;
|
||||
readWritePaths = lib.mkOption {
|
||||
type = with lib.types; listOf path;
|
||||
description = ''
|
||||
By default, borg cannot write anywhere on the system but
|
||||
`$HOME/.config/borg` and `$HOME/.cache/borg`.
|
||||
@ -492,8 +489,8 @@ in {
|
||||
];
|
||||
};
|
||||
|
||||
privateTmp = mkOption {
|
||||
type = types.bool;
|
||||
privateTmp = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Set the `PrivateTmp` option for
|
||||
the systemd-service. Set to false if you need sockets
|
||||
@ -502,8 +499,8 @@ in {
|
||||
default = true;
|
||||
};
|
||||
|
||||
failOnWarnings = mkOption {
|
||||
type = types.bool;
|
||||
failOnWarnings = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Fail the whole backup job if any borg command returns a warning
|
||||
(exit code 1), for example because a file changed during backup.
|
||||
@ -511,8 +508,8 @@ in {
|
||||
default = true;
|
||||
};
|
||||
|
||||
doInit = mkOption {
|
||||
type = types.bool;
|
||||
doInit = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Run {command}`borg init` if the
|
||||
specified {option}`repo` does not exist.
|
||||
@ -523,8 +520,8 @@ in {
|
||||
default = true;
|
||||
};
|
||||
|
||||
appendFailedSuffix = mkOption {
|
||||
type = types.bool;
|
||||
appendFailedSuffix = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Append a `.failed` suffix
|
||||
to the archive name, which is only removed if
|
||||
@ -533,18 +530,18 @@ in {
|
||||
default = true;
|
||||
};
|
||||
|
||||
prune.keep = mkOption {
|
||||
prune.keep = lib.mkOption {
|
||||
# Specifying e.g. `prune.keep.yearly = -1`
|
||||
# means there is no limit of yearly archives to keep
|
||||
# The regex is for use with e.g. --keep-within 1y
|
||||
type = with types; attrsOf (either int (strMatching "[[:digit:]]+[Hdwmy]"));
|
||||
type = with lib.types; attrsOf (either int (strMatching "[[:digit:]]+[Hdwmy]"));
|
||||
description = ''
|
||||
Prune a repository by deleting all archives not matching any of the
|
||||
specified retention options. See {command}`borg help prune`
|
||||
for the available options.
|
||||
'';
|
||||
default = { };
|
||||
example = literalExpression ''
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
within = "1d"; # Keep all archives from the last day
|
||||
daily = 7;
|
||||
@ -554,19 +551,19 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
prune.prefix = mkOption {
|
||||
type = types.nullOr (types.str);
|
||||
prune.prefix = lib.mkOption {
|
||||
type = lib.types.nullOr (lib.types.str);
|
||||
description = ''
|
||||
Only consider archive names starting with this prefix for pruning.
|
||||
By default, only archives created by this job are considered.
|
||||
Use `""` or `null` to consider all archives.
|
||||
'';
|
||||
default = config.archiveBaseName;
|
||||
defaultText = literalExpression "archiveBaseName";
|
||||
defaultText = lib.literalExpression "archiveBaseName";
|
||||
};
|
||||
|
||||
environment = mkOption {
|
||||
type = with types; attrsOf str;
|
||||
environment = lib.mkOption {
|
||||
type = with lib.types; attrsOf str;
|
||||
description = ''
|
||||
Environment variables passed to the backup script.
|
||||
You can for example specify which SSH key to use.
|
||||
@ -575,8 +572,8 @@ in {
|
||||
example = { BORG_RSH = "ssh -i /path/to/key"; };
|
||||
};
|
||||
|
||||
preHook = mkOption {
|
||||
type = types.lines;
|
||||
preHook = lib.mkOption {
|
||||
type = lib.types.lines;
|
||||
description = ''
|
||||
Shell commands to run before the backup.
|
||||
This can for example be used to mount file systems.
|
||||
@ -588,16 +585,16 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
postInit = mkOption {
|
||||
type = types.lines;
|
||||
postInit = lib.mkOption {
|
||||
type = lib.types.lines;
|
||||
description = ''
|
||||
Shell commands to run after {command}`borg init`.
|
||||
'';
|
||||
default = "";
|
||||
};
|
||||
|
||||
postCreate = mkOption {
|
||||
type = types.lines;
|
||||
postCreate = lib.mkOption {
|
||||
type = lib.types.lines;
|
||||
description = ''
|
||||
Shell commands to run after {command}`borg create`. The name
|
||||
of the created archive is stored in `$archiveName`.
|
||||
@ -605,16 +602,16 @@ in {
|
||||
default = "";
|
||||
};
|
||||
|
||||
postPrune = mkOption {
|
||||
type = types.lines;
|
||||
postPrune = lib.mkOption {
|
||||
type = lib.types.lines;
|
||||
description = ''
|
||||
Shell commands to run after {command}`borg prune`.
|
||||
'';
|
||||
default = "";
|
||||
};
|
||||
|
||||
postHook = mkOption {
|
||||
type = types.lines;
|
||||
postHook = lib.mkOption {
|
||||
type = lib.types.lines;
|
||||
description = ''
|
||||
Shell commands to run just before exit. They are executed
|
||||
even if a previous command exits with a non-zero exit code.
|
||||
@ -623,8 +620,8 @@ in {
|
||||
default = "";
|
||||
};
|
||||
|
||||
extraArgs = mkOption {
|
||||
type = with types; coercedTo (listOf str) escapeShellArgs str;
|
||||
extraArgs = lib.mkOption {
|
||||
type = with lib.types; coercedTo (listOf str) lib.escapeShellArgs str;
|
||||
description = ''
|
||||
Additional arguments for all {command}`borg` calls the
|
||||
service has. Handle with care.
|
||||
@ -633,8 +630,8 @@ in {
|
||||
example = [ "--remote-path=/path/to/borg" ];
|
||||
};
|
||||
|
||||
extraInitArgs = mkOption {
|
||||
type = with types; coercedTo (listOf str) escapeShellArgs str;
|
||||
extraInitArgs = lib.mkOption {
|
||||
type = with lib.types; coercedTo (listOf str) lib.escapeShellArgs str;
|
||||
description = ''
|
||||
Additional arguments for {command}`borg init`.
|
||||
Can also be set at runtime using `$extraInitArgs`.
|
||||
@ -643,8 +640,8 @@ in {
|
||||
example = [ "--append-only" ];
|
||||
};
|
||||
|
||||
extraCreateArgs = mkOption {
|
||||
type = with types; coercedTo (listOf str) escapeShellArgs str;
|
||||
extraCreateArgs = lib.mkOption {
|
||||
type = with lib.types; coercedTo (listOf str) lib.escapeShellArgs str;
|
||||
description = ''
|
||||
Additional arguments for {command}`borg create`.
|
||||
Can also be set at runtime using `$extraCreateArgs`.
|
||||
@ -656,8 +653,8 @@ in {
|
||||
];
|
||||
};
|
||||
|
||||
extraPruneArgs = mkOption {
|
||||
type = with types; coercedTo (listOf str) escapeShellArgs str;
|
||||
extraPruneArgs = lib.mkOption {
|
||||
type = with lib.types; coercedTo (listOf str) lib.escapeShellArgs str;
|
||||
description = ''
|
||||
Additional arguments for {command}`borg prune`.
|
||||
Can also be set at runtime using `$extraPruneArgs`.
|
||||
@ -666,8 +663,8 @@ in {
|
||||
example = [ "--save-space" ];
|
||||
};
|
||||
|
||||
extraCompactArgs = mkOption {
|
||||
type = with types; coercedTo (listOf str) escapeShellArgs str;
|
||||
extraCompactArgs = lib.mkOption {
|
||||
type = with lib.types; coercedTo (listOf str) lib.escapeShellArgs str;
|
||||
description = ''
|
||||
Additional arguments for {command}`borg compact`.
|
||||
Can also be set at runtime using `$extraCompactArgs`.
|
||||
@ -680,7 +677,7 @@ in {
|
||||
));
|
||||
};
|
||||
|
||||
options.services.borgbackup.repos = mkOption {
|
||||
options.services.borgbackup.repos = lib.mkOption {
|
||||
description = ''
|
||||
Serve BorgBackup repositories to given public SSH keys,
|
||||
restricting their access to the repository only.
|
||||
@ -689,11 +686,11 @@ in {
|
||||
i.e. `user@machine:.` is enough. (Note colon and dot.)
|
||||
'';
|
||||
default = { };
|
||||
type = types.attrsOf (types.submodule (
|
||||
type = lib.types.attrsOf (lib.types.submodule (
|
||||
{ ... }: {
|
||||
options = {
|
||||
path = mkOption {
|
||||
type = types.path;
|
||||
path = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = ''
|
||||
Where to store the backups. Note that the directory
|
||||
is created automatically, with correct permissions.
|
||||
@ -701,8 +698,8 @@ in {
|
||||
default = "/var/lib/borgbackup";
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
user = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
The user {command}`borg serve` is run as.
|
||||
User or group needs write permission
|
||||
@ -711,8 +708,8 @@ in {
|
||||
default = "borg";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
group = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
The group {command}`borg serve` is run as.
|
||||
User or group needs write permission
|
||||
@ -721,8 +718,8 @@ in {
|
||||
default = "borg";
|
||||
};
|
||||
|
||||
authorizedKeys = mkOption {
|
||||
type = with types; listOf str;
|
||||
authorizedKeys = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
description = ''
|
||||
Public SSH keys that are given full write access to this repository.
|
||||
You should use a different SSH key for each repository you write to, because
|
||||
@ -732,8 +729,8 @@ in {
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
authorizedKeysAppendOnly = mkOption {
|
||||
type = with types; listOf str;
|
||||
authorizedKeysAppendOnly = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
description = ''
|
||||
Public SSH keys that can only be used to append new data (archives) to the repository.
|
||||
Note that archives can still be marked as deleted and are subsequently removed from disk
|
||||
@ -742,8 +739,8 @@ in {
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
allowSubRepos = mkOption {
|
||||
type = types.bool;
|
||||
allowSubRepos = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Allow clients to create repositories in subdirectories of the
|
||||
specified {option}`path`. These can be accessed using
|
||||
@ -755,9 +752,9 @@ in {
|
||||
default = false;
|
||||
};
|
||||
|
||||
quota = mkOption {
|
||||
quota = lib.mkOption {
|
||||
# See the definition of parse_file_size() in src/borg/helpers/parseformat.py
|
||||
type = with types; nullOr (strMatching "[[:digit:].]+[KMGTP]?");
|
||||
type = with lib.types; nullOr (strMatching "[[:digit:].]+[KMGTP]?");
|
||||
description = ''
|
||||
Storage quota for the repository. This quota is ensured for all
|
||||
sub-repositories if {option}`allowSubRepos` is enabled
|
||||
@ -774,29 +771,29 @@ in {
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf (with config.services.borgbackup; jobs != { } || repos != { })
|
||||
config = lib.mkIf (with config.services.borgbackup; jobs != { } || repos != { })
|
||||
(with config.services.borgbackup; {
|
||||
assertions =
|
||||
mapAttrsToList mkPassAssertion jobs
|
||||
++ mapAttrsToList mkKeysAssertion repos
|
||||
++ mapAttrsToList mkSourceAssertions jobs
|
||||
++ mapAttrsToList mkRemovableDeviceAssertions jobs;
|
||||
lib.mapAttrsToList mkPassAssertion jobs
|
||||
++ lib.mapAttrsToList mkKeysAssertion repos
|
||||
++ lib.mapAttrsToList mkSourceAssertions jobs
|
||||
++ lib.mapAttrsToList mkRemovableDeviceAssertions jobs;
|
||||
|
||||
systemd.tmpfiles.settings = mapAttrs' mkTmpfiles jobs;
|
||||
systemd.tmpfiles.settings = lib.mapAttrs' mkTmpfiles jobs;
|
||||
|
||||
systemd.services =
|
||||
# A job named "foo" is mapped to systemd.services.borgbackup-job-foo
|
||||
mapAttrs' mkBackupService jobs
|
||||
lib.mapAttrs' mkBackupService jobs
|
||||
# A repo named "foo" is mapped to systemd.services.borgbackup-repo-foo
|
||||
// mapAttrs' mkRepoService repos;
|
||||
// lib.mapAttrs' mkRepoService repos;
|
||||
|
||||
# A job named "foo" is mapped to systemd.timers.borgbackup-job-foo
|
||||
# only generate the timer if interval (startAt) is set
|
||||
systemd.timers = mapAttrs' mkBackupTimers (filterAttrs (_: cfg: cfg.startAt != []) jobs);
|
||||
systemd.timers = lib.mapAttrs' mkBackupTimers (lib.filterAttrs (_: cfg: cfg.startAt != []) jobs);
|
||||
|
||||
users = mkMerge (mapAttrsToList mkUsersConfig repos);
|
||||
users = lib.mkMerge (lib.mapAttrsToList mkUsersConfig repos);
|
||||
|
||||
environment.systemPackages =
|
||||
[ config.services.borgbackup.package ] ++ (mapAttrsToList mkBorgWrapper jobs);
|
||||
[ config.services.borgbackup.package ] ++ (lib.mapAttrsToList mkBorgWrapper jobs);
|
||||
});
|
||||
}
|
||||
|
@ -1,23 +1,20 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.portunus;
|
||||
|
||||
in
|
||||
{
|
||||
options.services.portunus = {
|
||||
enable = mkEnableOption "Portunus, a self-contained user/group management and authentication service for LDAP";
|
||||
enable = lib.mkEnableOption "Portunus, a self-contained user/group management and authentication service for LDAP";
|
||||
|
||||
domain = mkOption {
|
||||
type = types.str;
|
||||
domain = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
example = "sso.example.com";
|
||||
description = "Subdomain which gets reverse proxied to Portunus webserver.";
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 8080;
|
||||
description = ''
|
||||
Port where the Portunus webserver should listen on.
|
||||
@ -26,10 +23,10 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkPackageOption pkgs "portunus" { };
|
||||
package = lib.mkPackageOption pkgs "portunus" { };
|
||||
|
||||
seedPath = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
seedPath = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to a portunus seed file in json format.
|
||||
@ -46,26 +43,26 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
stateDir = mkOption {
|
||||
type = types.path;
|
||||
stateDir = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = "/var/lib/portunus";
|
||||
description = "Path where Portunus stores its state.";
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
user = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "portunus";
|
||||
description = "User account under which Portunus runs its webserver.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
group = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "portunus";
|
||||
description = "Group account under which Portunus runs its webserver.";
|
||||
};
|
||||
|
||||
dex = {
|
||||
enable = mkEnableOption ''
|
||||
enable = lib.mkEnableOption ''
|
||||
Dex ldap connector.
|
||||
|
||||
To activate dex, first a search user must be created in the Portunus web ui
|
||||
@ -73,15 +70,15 @@ in
|
||||
in the [](#opt-services.dex.environmentFile) setting
|
||||
'';
|
||||
|
||||
oidcClients = mkOption {
|
||||
type = types.listOf (types.submodule {
|
||||
oidcClients = lib.mkOption {
|
||||
type = lib.types.listOf (lib.types.submodule {
|
||||
options = {
|
||||
callbackURL = mkOption {
|
||||
type = types.str;
|
||||
callbackURL = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "URL where the OIDC client should redirect";
|
||||
};
|
||||
id = mkOption {
|
||||
type = types.str;
|
||||
id = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "ID of the OIDC client";
|
||||
};
|
||||
};
|
||||
@ -105,23 +102,23 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 5556;
|
||||
description = "Port where dex should listen on.";
|
||||
};
|
||||
};
|
||||
|
||||
ldap = {
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = pkgs.openldap;
|
||||
defaultText = lib.literalExpression "pkgs.openldap.override { libxcrypt = pkgs.libxcrypt-legacy; }";
|
||||
description = "The OpenLDAP package to use.";
|
||||
};
|
||||
|
||||
searchUserName = mkOption {
|
||||
type = types.str;
|
||||
searchUserName = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "";
|
||||
example = "admin";
|
||||
description = ''
|
||||
@ -130,8 +127,8 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
suffix = mkOption {
|
||||
type = types.str;
|
||||
suffix = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
example = "dc=example,dc=org";
|
||||
description = ''
|
||||
The DN of the topmost entry in your LDAP directory.
|
||||
@ -139,8 +136,8 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
tls = mkOption {
|
||||
type = types.bool;
|
||||
tls = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to enable LDAPS protocol.
|
||||
@ -151,21 +148,21 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
user = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "openldap";
|
||||
description = "User account under which Portunus runs its LDAP server.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
group = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "openldap";
|
||||
description = "Group account under which Portunus runs its LDAP server.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfg.dex.enable -> cfg.ldap.searchUserName != "";
|
||||
@ -177,13 +174,13 @@ in
|
||||
environment.systemPackages = [ cfg.ldap.package ];
|
||||
|
||||
# allow connecting via ldaps /w certificate without opening ports
|
||||
networking.hosts = mkIf cfg.ldap.tls {
|
||||
networking.hosts = lib.mkIf cfg.ldap.tls {
|
||||
"::1" = [ cfg.domain ];
|
||||
"127.0.0.1" = [ cfg.domain ];
|
||||
};
|
||||
|
||||
services = {
|
||||
dex = mkIf cfg.dex.enable {
|
||||
dex = lib.mkIf cfg.dex.enable {
|
||||
enable = true;
|
||||
settings = {
|
||||
issuer = "https://${cfg.domain}/dex";
|
||||
@ -219,7 +216,7 @@ in
|
||||
};
|
||||
}];
|
||||
|
||||
staticClients = forEach cfg.dex.oidcClients (client: {
|
||||
staticClients = lib.forEach cfg.dex.oidcClients (client: {
|
||||
inherit (client) id;
|
||||
redirectURIs = [ client.callbackURL ];
|
||||
name = "OIDC for ${client.id}";
|
||||
@ -232,7 +229,7 @@ in
|
||||
};
|
||||
|
||||
systemd.services = {
|
||||
dex = mkIf cfg.dex.enable {
|
||||
dex = lib.mkIf cfg.dex.enable {
|
||||
serviceConfig = {
|
||||
# `dex.service` is super locked down out of the box, but we need some
|
||||
# place to write the SQLite database. This creates $STATE_DIRECTORY below
|
||||
@ -261,9 +258,9 @@ in
|
||||
PORTUNUS_SLAPD_GROUP = cfg.ldap.group;
|
||||
PORTUNUS_SLAPD_USER = cfg.ldap.user;
|
||||
PORTUNUS_SLAPD_SCHEMA_DIR = "${cfg.ldap.package}/etc/schema";
|
||||
} // (optionalAttrs (cfg.seedPath != null) ({
|
||||
} // (lib.optionalAttrs (cfg.seedPath != null) ({
|
||||
PORTUNUS_SEED_PATH = cfg.seedPath;
|
||||
})) // (optionalAttrs cfg.ldap.tls (
|
||||
})) // (lib.optionalAttrs cfg.ldap.tls (
|
||||
let
|
||||
acmeDirectory = config.security.acme.certs."${cfg.domain}".directory;
|
||||
in
|
||||
@ -277,14 +274,14 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
users.users = mkMerge [
|
||||
(mkIf (cfg.ldap.user == "openldap") {
|
||||
users.users = lib.mkMerge [
|
||||
(lib.mkIf (cfg.ldap.user == "openldap") {
|
||||
openldap = {
|
||||
group = cfg.ldap.group;
|
||||
isSystemUser = true;
|
||||
};
|
||||
})
|
||||
(mkIf (cfg.user == "portunus") {
|
||||
(lib.mkIf (cfg.user == "portunus") {
|
||||
portunus = {
|
||||
group = cfg.group;
|
||||
isSystemUser = true;
|
||||
@ -292,15 +289,15 @@ in
|
||||
})
|
||||
];
|
||||
|
||||
users.groups = mkMerge [
|
||||
(mkIf (cfg.ldap.user == "openldap") {
|
||||
users.groups = lib.mkMerge [
|
||||
(lib.mkIf (cfg.ldap.user == "openldap") {
|
||||
openldap = { };
|
||||
})
|
||||
(mkIf (cfg.user == "portunus") {
|
||||
(lib.mkIf (cfg.user == "portunus") {
|
||||
portunus = { };
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
meta.maintainers = [ maintainers.majewsky ] ++ teams.c3d2.members;
|
||||
meta.maintainers = [ lib.maintainers.majewsky ] ++ lib.teams.c3d2.members;
|
||||
}
|
||||
|
@ -1,7 +1,4 @@
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.rippled;
|
||||
opt = options.services.rippled;
|
||||
@ -11,28 +8,28 @@ let
|
||||
dbCfg = db: ''
|
||||
type=${db.type}
|
||||
path=${db.path}
|
||||
${optionalString (db.compression != null) ("compression=${b2i db.compression}") }
|
||||
${optionalString (db.onlineDelete != null) ("online_delete=${toString db.onlineDelete}")}
|
||||
${optionalString (db.advisoryDelete != null) ("advisory_delete=${b2i db.advisoryDelete}")}
|
||||
${lib.optionalString (db.compression != null) ("compression=${b2i db.compression}") }
|
||||
${lib.optionalString (db.onlineDelete != null) ("online_delete=${toString db.onlineDelete}")}
|
||||
${lib.optionalString (db.advisoryDelete != null) ("advisory_delete=${b2i db.advisoryDelete}")}
|
||||
${db.extraOpts}
|
||||
'';
|
||||
|
||||
rippledCfg = ''
|
||||
[server]
|
||||
${concatMapStringsSep "\n" (n: "port_${n}") (attrNames cfg.ports)}
|
||||
${lib.concatMapStringsSep "\n" (n: "port_${n}") (lib.attrNames cfg.ports)}
|
||||
|
||||
${concatMapStrings (p: ''
|
||||
${lib.concatMapStrings (p: ''
|
||||
[port_${p.name}]
|
||||
ip=${p.ip}
|
||||
port=${toString p.port}
|
||||
protocol=${concatStringsSep "," p.protocol}
|
||||
${optionalString (p.user != "") "user=${p.user}"}
|
||||
${optionalString (p.password != "") "user=${p.password}"}
|
||||
admin=${concatStringsSep "," p.admin}
|
||||
${optionalString (p.ssl.key != null) "ssl_key=${p.ssl.key}"}
|
||||
${optionalString (p.ssl.cert != null) "ssl_cert=${p.ssl.cert}"}
|
||||
${optionalString (p.ssl.chain != null) "ssl_chain=${p.ssl.chain}"}
|
||||
'') (attrValues cfg.ports)}
|
||||
protocol=${lib.concatStringsSep "," p.protocol}
|
||||
${lib.optionalString (p.user != "") "user=${p.user}"}
|
||||
${lib.optionalString (p.password != "") "user=${p.password}"}
|
||||
admin=${lib.concatStringsSep "," p.admin}
|
||||
${lib.optionalString (p.ssl.key != null) "ssl_key=${p.ssl.key}"}
|
||||
${lib.optionalString (p.ssl.cert != null) "ssl_cert=${p.ssl.cert}"}
|
||||
${lib.optionalString (p.ssl.chain != null) "ssl_chain=${p.ssl.chain}"}
|
||||
'') (lib.attrValues cfg.ports)}
|
||||
|
||||
[database_path]
|
||||
${cfg.databasePath}
|
||||
@ -40,22 +37,22 @@ let
|
||||
[node_db]
|
||||
${dbCfg cfg.nodeDb}
|
||||
|
||||
${optionalString (cfg.tempDb != null) ''
|
||||
${lib.optionalString (cfg.tempDb != null) ''
|
||||
[temp_db]
|
||||
${dbCfg cfg.tempDb}''}
|
||||
|
||||
${optionalString (cfg.importDb != null) ''
|
||||
${lib.optionalString (cfg.importDb != null) ''
|
||||
[import_db]
|
||||
${dbCfg cfg.importDb}''}
|
||||
|
||||
[ips]
|
||||
${concatStringsSep "\n" cfg.ips}
|
||||
${lib.concatStringsSep "\n" cfg.ips}
|
||||
|
||||
[ips_fixed]
|
||||
${concatStringsSep "\n" cfg.ipsFixed}
|
||||
${lib.concatStringsSep "\n" cfg.ipsFixed}
|
||||
|
||||
[validators]
|
||||
${concatStringsSep "\n" cfg.validators}
|
||||
${lib.concatStringsSep "\n" cfg.validators}
|
||||
|
||||
[node_size]
|
||||
${cfg.nodeSize}
|
||||
@ -70,9 +67,9 @@ let
|
||||
${toString cfg.validationQuorum}
|
||||
|
||||
[sntp_servers]
|
||||
${concatStringsSep "\n" cfg.sntpServers}
|
||||
${lib.concatStringsSep "\n" cfg.sntpServers}
|
||||
|
||||
${optionalString cfg.statsd.enable ''
|
||||
${lib.optionalString cfg.statsd.enable ''
|
||||
[insight]
|
||||
server=statsd
|
||||
address=${cfg.statsd.address}
|
||||
@ -85,70 +82,70 @@ let
|
||||
|
||||
portOptions = { name, ...}: {
|
||||
options = {
|
||||
name = mkOption {
|
||||
name = lib.mkOption {
|
||||
internal = true;
|
||||
default = name;
|
||||
};
|
||||
|
||||
ip = mkOption {
|
||||
ip = lib.mkOption {
|
||||
default = "127.0.0.1";
|
||||
description = "Ip where rippled listens.";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
port = lib.mkOption {
|
||||
description = "Port where rippled listens.";
|
||||
type = types.port;
|
||||
type = lib.types.port;
|
||||
};
|
||||
|
||||
protocol = mkOption {
|
||||
protocol = lib.mkOption {
|
||||
description = "Protocols expose by rippled.";
|
||||
type = types.listOf (types.enum ["http" "https" "ws" "wss" "peer"]);
|
||||
type = lib.types.listOf (lib.types.enum ["http" "https" "ws" "wss" "peer"]);
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
user = lib.mkOption {
|
||||
description = "When set, these credentials will be required on HTTP/S requests.";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
default = "";
|
||||
};
|
||||
|
||||
password = mkOption {
|
||||
password = lib.mkOption {
|
||||
description = "When set, these credentials will be required on HTTP/S requests.";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
default = "";
|
||||
};
|
||||
|
||||
admin = mkOption {
|
||||
admin = lib.mkOption {
|
||||
description = "A comma-separated list of admin IP addresses.";
|
||||
type = types.listOf types.str;
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = ["127.0.0.1"];
|
||||
};
|
||||
|
||||
ssl = {
|
||||
key = mkOption {
|
||||
key = lib.mkOption {
|
||||
description = ''
|
||||
Specifies the filename holding the SSL key in PEM format.
|
||||
'';
|
||||
default = null;
|
||||
type = types.nullOr types.path;
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
};
|
||||
|
||||
cert = mkOption {
|
||||
cert = lib.mkOption {
|
||||
description = ''
|
||||
Specifies the path to the SSL certificate file in PEM format.
|
||||
This is not needed if the chain includes it.
|
||||
'';
|
||||
default = null;
|
||||
type = types.nullOr types.path;
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
};
|
||||
|
||||
chain = mkOption {
|
||||
chain = lib.mkOption {
|
||||
description = ''
|
||||
If you need a certificate chain, specify the path to the
|
||||
certificate chain here. The chain may include the end certificate.
|
||||
'';
|
||||
default = null;
|
||||
type = types.nullOr types.path;
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -156,44 +153,44 @@ let
|
||||
|
||||
dbOptions = {
|
||||
options = {
|
||||
type = mkOption {
|
||||
type = lib.mkOption {
|
||||
description = "Rippled database type.";
|
||||
type = types.enum ["rocksdb" "nudb"];
|
||||
type = lib.types.enum ["rocksdb" "nudb"];
|
||||
default = "rocksdb";
|
||||
};
|
||||
|
||||
path = mkOption {
|
||||
path = lib.mkOption {
|
||||
description = "Location to store the database.";
|
||||
type = types.path;
|
||||
type = lib.types.path;
|
||||
default = cfg.databasePath;
|
||||
defaultText = literalExpression "config.${opt.databasePath}";
|
||||
defaultText = lib.literalExpression "config.${opt.databasePath}";
|
||||
};
|
||||
|
||||
compression = mkOption {
|
||||
compression = lib.mkOption {
|
||||
description = "Whether to enable snappy compression.";
|
||||
type = types.nullOr types.bool;
|
||||
type = lib.types.nullOr lib.types.bool;
|
||||
default = null;
|
||||
};
|
||||
|
||||
onlineDelete = mkOption {
|
||||
onlineDelete = lib.mkOption {
|
||||
description = "Enable automatic purging of older ledger information.";
|
||||
type = types.nullOr (types.addCheck types.int (v: v > 256));
|
||||
type = lib.types.nullOr (lib.types.addCheck lib.types.int (v: v > 256));
|
||||
default = cfg.ledgerHistory;
|
||||
defaultText = literalExpression "config.${opt.ledgerHistory}";
|
||||
defaultText = lib.literalExpression "config.${opt.ledgerHistory}";
|
||||
};
|
||||
|
||||
advisoryDelete = mkOption {
|
||||
advisoryDelete = lib.mkOption {
|
||||
description = ''
|
||||
If set, then require administrative RPC call "can_delete"
|
||||
to enable online deletion of ledger records.
|
||||
'';
|
||||
type = types.nullOr types.bool;
|
||||
type = lib.types.nullOr lib.types.bool;
|
||||
default = null;
|
||||
};
|
||||
|
||||
extraOpts = mkOption {
|
||||
extraOpts = lib.mkOption {
|
||||
description = "Extra database options.";
|
||||
type = types.lines;
|
||||
type = lib.types.lines;
|
||||
default = "";
|
||||
};
|
||||
};
|
||||
@ -207,13 +204,13 @@ in
|
||||
|
||||
options = {
|
||||
services.rippled = {
|
||||
enable = mkEnableOption "rippled, a decentralized cryptocurrency blockchain daemon implementing the XRP Ledger protocol in C++";
|
||||
enable = lib.mkEnableOption "rippled, a decentralized cryptocurrency blockchain daemon implementing the XRP Ledger protocol in C++";
|
||||
|
||||
package = mkPackageOption pkgs "rippled" { };
|
||||
package = lib.mkPackageOption pkgs "rippled" { };
|
||||
|
||||
ports = mkOption {
|
||||
ports = lib.mkOption {
|
||||
description = "Ports exposed by rippled";
|
||||
type = with types; attrsOf (submodule portOptions);
|
||||
type = with lib.types; attrsOf (submodule portOptions);
|
||||
default = {
|
||||
rpc = {
|
||||
port = 5005;
|
||||
@ -235,9 +232,9 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
nodeDb = mkOption {
|
||||
nodeDb = lib.mkOption {
|
||||
description = "Rippled main database options.";
|
||||
type = with types; nullOr (submodule dbOptions);
|
||||
type = with lib.types; nullOr (submodule dbOptions);
|
||||
default = {
|
||||
type = "rocksdb";
|
||||
extraOpts = ''
|
||||
@ -250,28 +247,28 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
tempDb = mkOption {
|
||||
tempDb = lib.mkOption {
|
||||
description = "Rippled temporary database options.";
|
||||
type = with types; nullOr (submodule dbOptions);
|
||||
type = with lib.types; nullOr (submodule dbOptions);
|
||||
default = null;
|
||||
};
|
||||
|
||||
importDb = mkOption {
|
||||
importDb = lib.mkOption {
|
||||
description = "Settings for performing a one-time import.";
|
||||
type = with types; nullOr (submodule dbOptions);
|
||||
type = with lib.types; nullOr (submodule dbOptions);
|
||||
default = null;
|
||||
};
|
||||
|
||||
nodeSize = mkOption {
|
||||
nodeSize = lib.mkOption {
|
||||
description = ''
|
||||
Rippled size of the node you are running.
|
||||
"tiny", "small", "medium", "large", and "huge"
|
||||
'';
|
||||
type = types.enum ["tiny" "small" "medium" "large" "huge"];
|
||||
type = lib.types.enum ["tiny" "small" "medium" "large" "huge"];
|
||||
default = "small";
|
||||
};
|
||||
|
||||
ips = mkOption {
|
||||
ips = lib.mkOption {
|
||||
description = ''
|
||||
List of hostnames or ips where the Ripple protocol is served.
|
||||
For a starter list, you can either copy entries from:
|
||||
@ -282,11 +279,11 @@ in
|
||||
address. By convention, if known, IPs are listed in from most
|
||||
to least trusted.
|
||||
'';
|
||||
type = types.listOf types.str;
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = ["r.ripple.com 51235"];
|
||||
};
|
||||
|
||||
ipsFixed = mkOption {
|
||||
ipsFixed = lib.mkOption {
|
||||
description = ''
|
||||
List of IP addresses or hostnames to which rippled should always
|
||||
attempt to maintain peer connections with. This is useful for
|
||||
@ -296,16 +293,16 @@ in
|
||||
|
||||
A port may optionally be specified after adding a space to the address
|
||||
'';
|
||||
type = types.listOf types.str;
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [];
|
||||
};
|
||||
|
||||
validators = mkOption {
|
||||
validators = lib.mkOption {
|
||||
description = ''
|
||||
List of nodes to always accept as validators. Nodes are specified by domain
|
||||
or public key.
|
||||
'';
|
||||
type = types.listOf types.str;
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [
|
||||
"n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7 RL1"
|
||||
"n9MD5h24qrQqiyBC8aeqqCWvpiBiYQ3jxSr91uiDvmrkyHRdYLUj RL2"
|
||||
@ -315,46 +312,46 @@ in
|
||||
];
|
||||
};
|
||||
|
||||
databasePath = mkOption {
|
||||
databasePath = lib.mkOption {
|
||||
description = ''
|
||||
Path to the ripple database.
|
||||
'';
|
||||
type = types.path;
|
||||
type = lib.types.path;
|
||||
default = "/var/lib/rippled";
|
||||
};
|
||||
|
||||
validationQuorum = mkOption {
|
||||
validationQuorum = lib.mkOption {
|
||||
description = ''
|
||||
The minimum number of trusted validations a ledger must have before
|
||||
the server considers it fully validated.
|
||||
'';
|
||||
type = types.int;
|
||||
type = lib.types.int;
|
||||
default = 3;
|
||||
};
|
||||
|
||||
ledgerHistory = mkOption {
|
||||
ledgerHistory = lib.mkOption {
|
||||
description = ''
|
||||
The number of past ledgers to acquire on server startup and the minimum
|
||||
to maintain while running.
|
||||
'';
|
||||
type = types.either types.int (types.enum ["full"]);
|
||||
type = lib.types.either lib.types.int (lib.types.enum ["full"]);
|
||||
default = 1296000; # 1 month
|
||||
};
|
||||
|
||||
fetchDepth = mkOption {
|
||||
fetchDepth = lib.mkOption {
|
||||
description = ''
|
||||
The number of past ledgers to serve to other peers that request historical
|
||||
ledger data (or "full" for no limit).
|
||||
'';
|
||||
type = types.either types.int (types.enum ["full"]);
|
||||
type = lib.types.either lib.types.int (lib.types.enum ["full"]);
|
||||
default = "full";
|
||||
};
|
||||
|
||||
sntpServers = mkOption {
|
||||
sntpServers = lib.mkOption {
|
||||
description = ''
|
||||
IP address or domain of NTP servers to use for time synchronization.;
|
||||
'';
|
||||
type = types.listOf types.str;
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [
|
||||
"time.windows.com"
|
||||
"time.apple.com"
|
||||
@ -363,40 +360,40 @@ in
|
||||
];
|
||||
};
|
||||
|
||||
logLevel = mkOption {
|
||||
logLevel = lib.mkOption {
|
||||
description = "Logging verbosity.";
|
||||
type = types.enum ["debug" "error" "info"];
|
||||
type = lib.types.enum ["debug" "error" "info"];
|
||||
default = "error";
|
||||
};
|
||||
|
||||
statsd = {
|
||||
enable = mkEnableOption "statsd monitoring for rippled";
|
||||
enable = lib.mkEnableOption "statsd monitoring for rippled";
|
||||
|
||||
address = mkOption {
|
||||
address = lib.mkOption {
|
||||
description = "The UDP address and port of the listening StatsD server.";
|
||||
default = "127.0.0.1:8125";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
prefix = mkOption {
|
||||
prefix = lib.mkOption {
|
||||
description = "A string prepended to each collected metric.";
|
||||
default = "";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
};
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
extraConfig = lib.mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
type = lib.types.lines;
|
||||
description = ''
|
||||
Extra lines to be added verbatim to the rippled.cfg configuration file.
|
||||
'';
|
||||
};
|
||||
|
||||
config = mkOption {
|
||||
config = lib.mkOption {
|
||||
internal = true;
|
||||
default = pkgs.writeText "rippled.conf" rippledCfg;
|
||||
defaultText = literalMD "generated config file";
|
||||
defaultText = lib.literalMD "generated config file";
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -404,7 +401,7 @@ in
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
users.users.rippled = {
|
||||
description = "Ripple server user";
|
||||
|
@ -1,14 +1,11 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.taskserver;
|
||||
|
||||
taskd = "${pkgs.taskserver}/bin/taskd";
|
||||
|
||||
mkManualPkiOption = desc: mkOption {
|
||||
type = types.nullOr types.path;
|
||||
mkManualPkiOption = desc: lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
${desc}
|
||||
@ -46,8 +43,8 @@ let
|
||||
:::
|
||||
'';
|
||||
|
||||
mkExpireOption = desc: mkOption {
|
||||
type = types.nullOr types.int;
|
||||
mkExpireOption = desc: lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.int;
|
||||
default = null;
|
||||
example = 365;
|
||||
apply = val: if val == null then -1 else val;
|
||||
@ -58,8 +55,8 @@ let
|
||||
};
|
||||
|
||||
autoPkiOptions = {
|
||||
bits = mkOption {
|
||||
type = types.int;
|
||||
bits = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 4096;
|
||||
example = 2048;
|
||||
description = mkAutoDesc "The bit size for generated keys.";
|
||||
@ -75,20 +72,20 @@ let
|
||||
|
||||
needToCreateCA = let
|
||||
notFound = path: let
|
||||
dotted = concatStringsSep "." path;
|
||||
dotted = lib.concatStringsSep "." path;
|
||||
in throw "Can't find option definitions for path `${dotted}'.";
|
||||
findPkiDefinitions = path: attrs: let
|
||||
mkSublist = key: val: let
|
||||
newPath = path ++ singleton key;
|
||||
in if isOption val
|
||||
then attrByPath newPath (notFound newPath) cfg.pki.manual
|
||||
newPath = path ++ lib.singleton key;
|
||||
in if lib.isOption val
|
||||
then lib.attrByPath newPath (notFound newPath) cfg.pki.manual
|
||||
else findPkiDefinitions newPath val;
|
||||
in flatten (mapAttrsToList mkSublist attrs);
|
||||
in all (x: x == null) (findPkiDefinitions [] manualPkiOptions);
|
||||
in lib.flatten (lib.mapAttrsToList mkSublist attrs);
|
||||
in lib.all (x: x == null) (findPkiDefinitions [] manualPkiOptions);
|
||||
|
||||
orgOptions = { ... }: {
|
||||
options.users = mkOption {
|
||||
type = types.uniq (types.listOf types.str);
|
||||
options.users = lib.mkOption {
|
||||
type = lib.types.uniq (lib.types.listOf lib.types.str);
|
||||
default = [];
|
||||
example = [ "alice" "bob" ];
|
||||
description = ''
|
||||
@ -96,8 +93,8 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
options.groups = mkOption {
|
||||
type = types.listOf types.str;
|
||||
options.groups = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [];
|
||||
example = [ "workers" "slackers" ];
|
||||
description = ''
|
||||
@ -137,8 +134,8 @@ let
|
||||
in {
|
||||
options = {
|
||||
services.taskserver = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = let
|
||||
url = "https://nixos.org/manual/nixos/stable/index.html#module-services-taskserver";
|
||||
@ -150,26 +147,26 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
user = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "taskd";
|
||||
description = "User for Taskserver.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
group = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "taskd";
|
||||
description = "Group for Taskserver.";
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
type = types.path;
|
||||
dataDir = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = "/var/lib/taskserver";
|
||||
description = "Data directory for Taskserver.";
|
||||
};
|
||||
|
||||
ciphers = mkOption {
|
||||
type = types.nullOr (types.separatedString ":");
|
||||
ciphers = lib.mkOption {
|
||||
type = lib.types.nullOr (lib.types.separatedString ":");
|
||||
default = null;
|
||||
example = "NORMAL:-VERS-SSL3.0";
|
||||
description = let
|
||||
@ -180,8 +177,8 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
organisations = mkOption {
|
||||
type = types.attrsOf (types.submodule orgOptions);
|
||||
organisations = lib.mkOption {
|
||||
type = lib.types.attrsOf (lib.types.submodule orgOptions);
|
||||
default = {};
|
||||
example.myShinyOrganisation.users = [ "alice" "bob" ];
|
||||
example.myShinyOrganisation.groups = [ "staff" "outsiders" ];
|
||||
@ -193,24 +190,24 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
confirmation = mkOption {
|
||||
type = types.bool;
|
||||
confirmation = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Determines whether certain commands are confirmed.
|
||||
'';
|
||||
};
|
||||
|
||||
debug = mkOption {
|
||||
type = types.bool;
|
||||
debug = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Logs debugging information.
|
||||
'';
|
||||
};
|
||||
|
||||
extensions = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
extensions = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
Fully qualified path of the Taskserver extension scripts.
|
||||
@ -218,32 +215,32 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
ipLog = mkOption {
|
||||
type = types.bool;
|
||||
ipLog = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Logs the IP addresses of incoming requests.
|
||||
'';
|
||||
};
|
||||
|
||||
queueSize = mkOption {
|
||||
type = types.int;
|
||||
queueSize = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 10;
|
||||
description = ''
|
||||
Size of the connection backlog, see {manpage}`listen(2)`.
|
||||
'';
|
||||
};
|
||||
|
||||
requestLimit = mkOption {
|
||||
type = types.int;
|
||||
requestLimit = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 1048576;
|
||||
description = ''
|
||||
Size limit of incoming requests, in bytes.
|
||||
'';
|
||||
};
|
||||
|
||||
allowedClientIDs = mkOption {
|
||||
type = with types; either str (listOf str);
|
||||
allowedClientIDs = lib.mkOption {
|
||||
type = with lib.types; either str (listOf str);
|
||||
default = [];
|
||||
example = [ "[Tt]ask [2-9]+" ];
|
||||
description = ''
|
||||
@ -256,8 +253,8 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
disallowedClientIDs = mkOption {
|
||||
type = with types; either str (listOf str);
|
||||
disallowedClientIDs = lib.mkOption {
|
||||
type = with lib.types; either str (listOf str);
|
||||
default = [];
|
||||
example = [ "[Tt]ask [2-9]+" ];
|
||||
description = ''
|
||||
@ -270,8 +267,8 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
listenHost = mkOption {
|
||||
type = types.str;
|
||||
listenHost = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "localhost";
|
||||
example = "::";
|
||||
description = ''
|
||||
@ -279,24 +276,24 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
listenPort = mkOption {
|
||||
type = types.int;
|
||||
listenPort = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 53589;
|
||||
description = ''
|
||||
Port number of the Taskserver.
|
||||
'';
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
openFirewall = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to open the firewall for the specified Taskserver port.
|
||||
'';
|
||||
};
|
||||
|
||||
fqdn = mkOption {
|
||||
type = types.str;
|
||||
fqdn = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "localhost";
|
||||
description = ''
|
||||
The fully qualified domain name of this server, which is also used
|
||||
@ -304,8 +301,8 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
trust = mkOption {
|
||||
type = types.enum [ "allow all" "strict" ];
|
||||
trust = lib.mkOption {
|
||||
type = lib.types.enum [ "allow all" "strict" ];
|
||||
default = "strict";
|
||||
description = ''
|
||||
Determines how client certificates are validated.
|
||||
@ -320,8 +317,8 @@ in {
|
||||
pki.manual = manualPkiOptions;
|
||||
pki.auto = autoPkiOptions;
|
||||
|
||||
config = mkOption {
|
||||
type = types.attrs;
|
||||
config = lib.mkOption {
|
||||
type = lib.types.attrs;
|
||||
example.client.cert = "/tmp/debugging.cert";
|
||||
description = ''
|
||||
Configuration options to pass to Taskserver.
|
||||
@ -340,23 +337,23 @@ in {
|
||||
'';
|
||||
apply = let
|
||||
mkKey = path: if path == ["server" "listen"] then "server"
|
||||
else concatStringsSep "." path;
|
||||
else lib.concatStringsSep "." path;
|
||||
recurse = path: attrs: let
|
||||
mapper = name: val: let
|
||||
newPath = path ++ [ name ];
|
||||
scalar = if val == true then "true"
|
||||
else if val == false then "false"
|
||||
else toString val;
|
||||
in if isAttrs val then recurse newPath val
|
||||
in if lib.isAttrs val then recurse newPath val
|
||||
else [ "${mkKey newPath}=${scalar}" ];
|
||||
in concatLists (mapAttrsToList mapper attrs);
|
||||
in lib.concatLists (lib.mapAttrsToList mapper attrs);
|
||||
in recurse [];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
(mkRemovedOptionModule ["services" "taskserver" "extraConfig"] ''
|
||||
(lib.mkRemovedOptionModule ["services" "taskserver" "extraConfig"] ''
|
||||
This option was removed in favor of `services.taskserver.config` with
|
||||
different semantics (it's now a list of attributes instead of lines).
|
||||
|
||||
@ -366,11 +363,11 @@ in {
|
||||
'')
|
||||
];
|
||||
|
||||
config = mkMerge [
|
||||
(mkIf cfg.enable {
|
||||
config = lib.mkMerge [
|
||||
(lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ nixos-taskserver ];
|
||||
|
||||
users.users = optionalAttrs (cfg.user == "taskd") {
|
||||
users.users = lib.optionalAttrs (cfg.user == "taskd") {
|
||||
taskd = {
|
||||
uid = config.ids.uids.taskd;
|
||||
description = "Taskserver user";
|
||||
@ -378,7 +375,7 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
users.groups = optionalAttrs (cfg.group == "taskd") {
|
||||
users.groups = lib.optionalAttrs (cfg.group == "taskd") {
|
||||
taskd.gid = config.ids.gids.taskd;
|
||||
};
|
||||
|
||||
@ -413,7 +410,7 @@ in {
|
||||
} else {
|
||||
cert = "${cfg.pki.manual.server.cert}";
|
||||
key = "${cfg.pki.manual.server.key}";
|
||||
${mapNullable (_: "crl") cfg.pki.manual.server.crl} = "${cfg.pki.manual.server.crl}";
|
||||
${lib.mapNullable (_: "crl") cfg.pki.manual.server.crl} = "${cfg.pki.manual.server.crl}";
|
||||
});
|
||||
|
||||
ca.cert = if needToCreateCA then "${cfg.dataDir}/keys/ca.cert"
|
||||
@ -464,8 +461,8 @@ in {
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = let
|
||||
mkCfgFlag = flag: escapeShellArg "--${flag}";
|
||||
cfgFlags = concatMapStringsSep " " mkCfgFlag cfg.config;
|
||||
mkCfgFlag = flag: lib.escapeShellArg "--${flag}";
|
||||
cfgFlags = lib.concatMapStringsSep " " mkCfgFlag cfg.config;
|
||||
in "@${taskd} taskd server ${cfgFlags}";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -USR1 $MAINPID";
|
||||
Restart = "on-failure";
|
||||
@ -477,7 +474,7 @@ in {
|
||||
};
|
||||
};
|
||||
})
|
||||
(mkIf (cfg.enable && needToCreateCA) {
|
||||
(lib.mkIf (cfg.enable && needToCreateCA) {
|
||||
systemd.services.taskserver-ca = {
|
||||
wantedBy = [ "taskserver.service" ];
|
||||
after = [ "taskserver-init.service" ];
|
||||
@ -561,7 +558,7 @@ in {
|
||||
'';
|
||||
};
|
||||
})
|
||||
(mkIf (cfg.enable && cfg.openFirewall) {
|
||||
(lib.mkIf (cfg.enable && cfg.openFirewall) {
|
||||
networking.firewall.allowedTCPPorts = [ cfg.listenPort ];
|
||||
})
|
||||
];
|
||||
|
@ -1,11 +1,8 @@
|
||||
{ config, lib, options, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.graphite;
|
||||
opt = options.services.graphite;
|
||||
writeTextOrNull = f: t: mapNullable (pkgs.writeTextDir f) t;
|
||||
writeTextOrNull = f: t: lib.mapNullable (pkgs.writeTextDir f) t;
|
||||
|
||||
dataDir = cfg.dataDir;
|
||||
staticDir = cfg.dataDir + "/static";
|
||||
@ -20,7 +17,7 @@ let
|
||||
|
||||
graphiteLocalSettings = pkgs.writeText "graphite_local_settings.py" (
|
||||
"STATIC_ROOT = '${staticDir}'\n" +
|
||||
optionalString (config.time.timeZone != null) "TIME_ZONE = '${config.time.timeZone}'\n"
|
||||
lib.optionalString (config.time.timeZone != null) "TIME_ZONE = '${config.time.timeZone}'\n"
|
||||
+ cfg.web.extraConfig
|
||||
);
|
||||
|
||||
@ -32,7 +29,7 @@ let
|
||||
|
||||
configDir = pkgs.buildEnv {
|
||||
name = "graphite-config";
|
||||
paths = lists.filter (el: el != null) [
|
||||
paths = lib.lists.filter (el: el != null) [
|
||||
(writeTextOrNull "carbon.conf" cfg.carbon.config)
|
||||
(writeTextOrNull "storage-aggregation.conf" cfg.carbon.storageAggregation)
|
||||
(writeTextOrNull "storage-schemas.conf" cfg.carbon.storageSchemas)
|
||||
@ -62,16 +59,16 @@ let
|
||||
in {
|
||||
|
||||
imports = [
|
||||
(mkRemovedOptionModule ["services" "graphite" "api"] "")
|
||||
(mkRemovedOptionModule ["services" "graphite" "beacon"] "")
|
||||
(mkRemovedOptionModule ["services" "graphite" "pager"] "")
|
||||
(lib.mkRemovedOptionModule ["services" "graphite" "api"] "")
|
||||
(lib.mkRemovedOptionModule ["services" "graphite" "beacon"] "")
|
||||
(lib.mkRemovedOptionModule ["services" "graphite" "pager"] "")
|
||||
];
|
||||
|
||||
###### interface
|
||||
|
||||
options.services.graphite = {
|
||||
dataDir = mkOption {
|
||||
type = types.path;
|
||||
dataDir = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = "/var/db/graphite";
|
||||
description = ''
|
||||
Data directory for graphite.
|
||||
@ -79,26 +76,26 @@ in {
|
||||
};
|
||||
|
||||
web = {
|
||||
enable = mkOption {
|
||||
enable = lib.mkOption {
|
||||
description = "Whether to enable graphite web frontend.";
|
||||
default = false;
|
||||
type = types.bool;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
listenAddress = mkOption {
|
||||
listenAddress = lib.mkOption {
|
||||
description = "Graphite web frontend listen address.";
|
||||
default = "127.0.0.1";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
port = lib.mkOption {
|
||||
description = "Graphite web frontend port.";
|
||||
default = 8080;
|
||||
type = types.port;
|
||||
type = lib.types.port;
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.str;
|
||||
extraConfig = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Graphite webapp settings. See:
|
||||
@ -108,7 +105,7 @@ in {
|
||||
};
|
||||
|
||||
carbon = {
|
||||
config = mkOption {
|
||||
config = lib.mkOption {
|
||||
description = "Content of carbon configuration file.";
|
||||
default = ''
|
||||
[cache]
|
||||
@ -121,19 +118,19 @@ in {
|
||||
LOG_UPDATES = False
|
||||
LOG_CACHE_HITS = False
|
||||
'';
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
enableCache = mkOption {
|
||||
enableCache = lib.mkOption {
|
||||
description = "Whether to enable carbon cache, the graphite storage daemon.";
|
||||
default = false;
|
||||
type = types.bool;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
storageAggregation = mkOption {
|
||||
storageAggregation = lib.mkOption {
|
||||
description = "Defines how to aggregate data to lower-precision retentions.";
|
||||
default = null;
|
||||
type = types.nullOr types.str;
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
example = ''
|
||||
[all_min]
|
||||
pattern = \.min$
|
||||
@ -142,10 +139,10 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
storageSchemas = mkOption {
|
||||
storageSchemas = lib.mkOption {
|
||||
description = "Defines retention rates for storing metrics.";
|
||||
default = "";
|
||||
type = types.nullOr types.str;
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
example = ''
|
||||
[apache_busyWorkers]
|
||||
pattern = ^servers\.www.*\.workers\.busyWorkers$
|
||||
@ -153,27 +150,27 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
blacklist = mkOption {
|
||||
blacklist = lib.mkOption {
|
||||
description = "Any metrics received which match one of the expressions will be dropped.";
|
||||
default = null;
|
||||
type = types.nullOr types.str;
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
example = "^some\\.noisy\\.metric\\.prefix\\..*";
|
||||
};
|
||||
|
||||
whitelist = mkOption {
|
||||
whitelist = lib.mkOption {
|
||||
description = "Only metrics received which match one of the expressions will be persisted.";
|
||||
default = null;
|
||||
type = types.nullOr types.str;
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
example = ".*";
|
||||
};
|
||||
|
||||
rewriteRules = mkOption {
|
||||
rewriteRules = lib.mkOption {
|
||||
description = ''
|
||||
Regular expression patterns that can be used to rewrite metric names
|
||||
in a search and replace fashion.
|
||||
'';
|
||||
default = null;
|
||||
type = types.nullOr types.str;
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
example = ''
|
||||
[post]
|
||||
_sum$ =
|
||||
@ -181,16 +178,16 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
enableRelay = mkOption {
|
||||
enableRelay = lib.mkOption {
|
||||
description = "Whether to enable carbon relay, the carbon replication and sharding service.";
|
||||
default = false;
|
||||
type = types.bool;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
relayRules = mkOption {
|
||||
relayRules = lib.mkOption {
|
||||
description = "Relay rules are used to send certain metrics to a certain backend.";
|
||||
default = null;
|
||||
type = types.nullOr types.str;
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
example = ''
|
||||
[example]
|
||||
pattern = ^mydata\.foo\..+
|
||||
@ -198,16 +195,16 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
enableAggregator = mkOption {
|
||||
enableAggregator = lib.mkOption {
|
||||
description = "Whether to enable carbon aggregator, the carbon buffering service.";
|
||||
default = false;
|
||||
type = types.bool;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
aggregationRules = mkOption {
|
||||
aggregationRules = lib.mkOption {
|
||||
description = "Defines if and how received metrics will be aggregated.";
|
||||
default = null;
|
||||
type = types.nullOr types.str;
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
example = ''
|
||||
<env>.applications.<app>.all.requests (60) = sum <env>.applications.<app>.*.requests
|
||||
<env>.applications.<app>.all.latency (60) = avg <env>.applications.<app>.*.latency
|
||||
@ -216,47 +213,47 @@ in {
|
||||
};
|
||||
|
||||
seyren = {
|
||||
enable = mkOption {
|
||||
enable = lib.mkOption {
|
||||
description = "Whether to enable seyren service.";
|
||||
default = false;
|
||||
type = types.bool;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
port = lib.mkOption {
|
||||
description = "Seyren listening port.";
|
||||
default = 8081;
|
||||
type = types.port;
|
||||
type = lib.types.port;
|
||||
};
|
||||
|
||||
seyrenUrl = mkOption {
|
||||
seyrenUrl = lib.mkOption {
|
||||
default = "http://localhost:${toString cfg.seyren.port}/";
|
||||
defaultText = literalExpression ''"http://localhost:''${toString config.${opt.seyren.port}}/"'';
|
||||
defaultText = lib.literalExpression ''"http://localhost:''${toString config.${opt.seyren.port}}/"'';
|
||||
description = "Host where seyren is accessible.";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
graphiteUrl = mkOption {
|
||||
graphiteUrl = lib.mkOption {
|
||||
default = "http://${cfg.web.listenAddress}:${toString cfg.web.port}";
|
||||
defaultText = literalExpression ''"http://''${config.${opt.web.listenAddress}}:''${toString config.${opt.web.port}}"'';
|
||||
defaultText = lib.literalExpression ''"http://''${config.${opt.web.listenAddress}}:''${toString config.${opt.web.port}}"'';
|
||||
description = "Host where graphite service runs.";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
mongoUrl = mkOption {
|
||||
mongoUrl = lib.mkOption {
|
||||
default = "mongodb://${config.services.mongodb.bind_ip}:27017/seyren";
|
||||
defaultText = literalExpression ''"mongodb://''${config.services.mongodb.bind_ip}:27017/seyren"'';
|
||||
defaultText = lib.literalExpression ''"mongodb://''${config.services.mongodb.bind_ip}:27017/seyren"'';
|
||||
description = "Mongodb connection string.";
|
||||
type = types.str;
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
extraConfig = lib.mkOption {
|
||||
default = {};
|
||||
description = ''
|
||||
Extra seyren configuration. See
|
||||
<https://github.com/scobal/seyren#config>
|
||||
'';
|
||||
type = types.attrsOf types.str;
|
||||
example = literalExpression ''
|
||||
type = lib.types.attrsOf lib.types.str;
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
GRAPHITE_USERNAME = "user";
|
||||
GRAPHITE_PASSWORD = "pass";
|
||||
@ -268,8 +265,8 @@ in {
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkMerge [
|
||||
(mkIf cfg.carbon.enableCache {
|
||||
config = lib.mkMerge [
|
||||
(lib.mkIf cfg.carbon.enableCache {
|
||||
systemd.services.carbonCache = let name = "carbon-cache"; in {
|
||||
description = "Graphite Data Storage Backend";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
@ -290,7 +287,7 @@ in {
|
||||
};
|
||||
})
|
||||
|
||||
(mkIf cfg.carbon.enableAggregator {
|
||||
(lib.mkIf cfg.carbon.enableAggregator {
|
||||
systemd.services.carbonAggregator = let name = "carbon-aggregator"; in {
|
||||
enable = cfg.carbon.enableAggregator;
|
||||
description = "Carbon Data Aggregator";
|
||||
@ -307,7 +304,7 @@ in {
|
||||
};
|
||||
})
|
||||
|
||||
(mkIf cfg.carbon.enableRelay {
|
||||
(lib.mkIf cfg.carbon.enableRelay {
|
||||
systemd.services.carbonRelay = let name = "carbon-relay"; in {
|
||||
description = "Carbon Data Relay";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
@ -323,13 +320,13 @@ in {
|
||||
};
|
||||
})
|
||||
|
||||
(mkIf (cfg.carbon.enableCache || cfg.carbon.enableAggregator || cfg.carbon.enableRelay) {
|
||||
(lib.mkIf (cfg.carbon.enableCache || cfg.carbon.enableAggregator || cfg.carbon.enableRelay) {
|
||||
environment.systemPackages = [
|
||||
pkgs.python3Packages.carbon
|
||||
];
|
||||
})
|
||||
|
||||
(mkIf cfg.web.enable ({
|
||||
(lib.mkIf cfg.web.enable ({
|
||||
systemd.services.graphiteWeb = {
|
||||
description = "Graphite Web Interface";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
@ -343,7 +340,7 @@ in {
|
||||
];
|
||||
};
|
||||
penvPack = "${penv}/${pkgs.python3.sitePackages}";
|
||||
in concatStringsSep ":" [
|
||||
in lib.concatStringsSep ":" [
|
||||
"${graphiteLocalSettingsDir}"
|
||||
"${penvPack}"
|
||||
# explicitly adding pycairo in path because it cannot be imported via buildEnv
|
||||
@ -389,7 +386,7 @@ in {
|
||||
environment.systemPackages = [ pkgs.python3Packages.graphite-web ];
|
||||
}))
|
||||
|
||||
(mkIf cfg.seyren.enable {
|
||||
(lib.mkIf cfg.seyren.enable {
|
||||
systemd.services.seyren = {
|
||||
description = "Graphite Alerting Dashboard";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
@ -409,10 +406,10 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
services.mongodb.enable = mkDefault true;
|
||||
services.mongodb.enable = lib.mkDefault true;
|
||||
})
|
||||
|
||||
(mkIf (
|
||||
(lib.mkIf (
|
||||
cfg.carbon.enableCache || cfg.carbon.enableAggregator || cfg.carbon.enableRelay ||
|
||||
cfg.web.enable || cfg.seyren.enable
|
||||
) {
|
||||
|
@ -64,7 +64,7 @@ let
|
||||
|
||||
path = [ pkgs.iptables pkgs.iproute2 pkgs.nettools ];
|
||||
|
||||
serviceConfig.ExecStart = "@${openvpn}/sbin/openvpn openvpn --suppress-timestamps --config ${configFile}";
|
||||
serviceConfig.ExecStart = "@${openvpn}/sbin/openvpn openvpn --suppress-timestamps --config ${configFile} ${cfg.extraArgs}";
|
||||
serviceConfig.Restart = "always";
|
||||
serviceConfig.Type = "notify";
|
||||
};
|
||||
@ -181,6 +181,15 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
extraArgs = mkOption {
|
||||
default = null;
|
||||
type = listOf str;
|
||||
description = ''
|
||||
Additional command line arguments to pass to this OpenVPN instance.
|
||||
'';
|
||||
apply = lib.escapeShellArgs;
|
||||
};
|
||||
|
||||
authUserPass = mkOption {
|
||||
default = null;
|
||||
description = ''
|
||||
|
@ -17,6 +17,10 @@ let
|
||||
extraConfig = mkPhpIni cfg.phpOptions;
|
||||
};
|
||||
|
||||
# "you're escaped" -> "'you\'re escaped'"
|
||||
# https://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.single
|
||||
toPhpString = s: "'${escape [ "'" "\\" ] s}'";
|
||||
|
||||
dokuwikiAclAuthConfig = hostName: cfg: let
|
||||
inherit (cfg) acl;
|
||||
acl_gen = concatMapStringsSep "\n" (l: "${l.page} \t ${l.actor} \t ${toString l.level}");
|
||||
@ -43,12 +47,12 @@ let
|
||||
mkPhpValue = v: let
|
||||
isHasAttr = s: isAttrs v && hasAttr s v;
|
||||
in
|
||||
if isString v then escapeShellArg v
|
||||
if isString v then toPhpString v
|
||||
# NOTE: If any value contains a , (comma) this will not get escaped
|
||||
else if isList v && any lib.strings.isCoercibleToString v then escapeShellArg (concatMapStringsSep "," toString v)
|
||||
else if isList v && any lib.strings.isCoercibleToString v then toPhpString (concatMapStringsSep "," toString v)
|
||||
else if isInt v then toString v
|
||||
else if isBool v then toString (if v then 1 else 0)
|
||||
else if isHasAttr "_file" then "trim(file_get_contents(${lib.escapeShellArg v._file}))"
|
||||
else if isHasAttr "_file" then "trim(file_get_contents(${toPhpString v._file}))"
|
||||
else if isHasAttr "_raw" then v._raw
|
||||
else abort "The dokuwiki localConf value ${lib.generators.toPretty {} v} can not be encoded."
|
||||
;
|
||||
@ -59,7 +63,7 @@ let
|
||||
[" = ${mkPhpValue v};"]
|
||||
else
|
||||
mkPhpAttrVals v;
|
||||
in map (e: "[${escapeShellArg k}]${e}") (flatten values);
|
||||
in map (e: "[${toPhpString k}]${e}") (flatten values);
|
||||
|
||||
dokuwikiLocalConfig = hostName: cfg: let
|
||||
conf_gen = c: map (v: "$conf${v}") (mkPhpAttrVals c);
|
||||
|
@ -170,7 +170,7 @@ in
|
||||
|
||||
apply = set: {
|
||||
script = ''
|
||||
unset PATH
|
||||
export PATH=
|
||||
for i in ${toString path}; do
|
||||
PATH=$PATH:$i/bin:$i/sbin
|
||||
done
|
||||
|
@ -21,14 +21,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "grandorgue";
|
||||
version = "3.14.2-1";
|
||||
version = "3.15.1-1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "GrandOrgue";
|
||||
repo = pname;
|
||||
repo = "grandorgue";
|
||||
rev = version;
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-FHM8fFUga9poGhojKBTF4gsJ6L4XEksueVxfMbngvks=";
|
||||
hash = "sha256-5uAA878OBc04PkUgCwoRtc6lIASivq3YcfFffTae6uM=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
|
||||
postInstall = lib.optionalString stdenv.isDarwin ''
|
||||
mkdir -p $out/{Applications,bin,lib}
|
||||
mv $out/GrandOrgue.app $out/Applications/
|
||||
for lib in $out/Applications/GrandOrgue.app/Contents/MacOS/lib*; do
|
||||
for lib in $out/Applications/GrandOrgue.app/Contents/Frameworks/lib*; do
|
||||
ln -s $lib $out/lib/
|
||||
done
|
||||
makeWrapper $out/{Applications/GrandOrgue.app/Contents/MacOS,bin}/GrandOrgue
|
||||
|
@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-pylance";
|
||||
publisher = "MS-python";
|
||||
version = "2024.8.1";
|
||||
hash = "sha256-UfbhvEWZVAQ/3xg57JpNqURTx/+g6zsWZ0WOzRHtrOU=";
|
||||
version = "2024.8.2";
|
||||
hash = "sha256-EwxQjCBSmJ78L06EtKB8twIz5x51Jo/DHNlpD31pIKA=";
|
||||
};
|
||||
|
||||
buildInputs = [ pyright ];
|
||||
|
@ -18,14 +18,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "polychromatic";
|
||||
version = "0.9.1";
|
||||
version = "0.9.2";
|
||||
format = "other";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "polychromatic";
|
||||
repo = "polychromatic";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-3Pt1Z8G0xDWlFD7LxJILPUifMBTN4OvPNHZv80umO1s=";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-eSfyoEu4qQv+R17wgTfATOE1uHkksNxo17btR6swuZo=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -15,13 +15,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xmrig";
|
||||
version = "6.21.3";
|
||||
version = "6.22.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xmrig";
|
||||
repo = "xmrig";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-1lIrxJ1Y5YRoXbZn77Msah5lSVW71gDczYUlXQjf01s=";
|
||||
hash = "sha256-kFjUAOs92xExCV/ph81TFvgRXC6ZRi1m0G51c4JmeMA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -13,13 +13,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xmrig-proxy";
|
||||
version = "6.21.1";
|
||||
version = "6.22.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xmrig";
|
||||
repo = "xmrig-proxy";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-70SYdO3uyPINanAoARd2lDwyiuc2f/gg4QuoDgoXjjs=";
|
||||
hash = "sha256-qRn/FiYvogGFUIUj3CojtfO6fXRZghH+bgRP+ysI6mc=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "arkade";
|
||||
version = "0.11.22";
|
||||
version = "0.11.24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alexellis";
|
||||
repo = "arkade";
|
||||
rev = version;
|
||||
hash = "sha256-Qc8cQLLRcCNYouWfs8NzF9nrKIPrM1+1VA0wbP2iupQ=";
|
||||
hash = "sha256-9g3SGfJLzn+WIkBGcCwgOaJSuSUSFSU8d/9NZlN0h8E=";
|
||||
};
|
||||
|
||||
CGO_ENABLED = 0;
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "kubecm";
|
||||
version = "0.30.0";
|
||||
version = "0.31.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sunny0826";
|
||||
repo = "kubecm";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-zyXxMp+59buSwm4fZY62b2xqAmq7XAzhET0qez8oWPs=";
|
||||
hash = "sha256-Go2lroa8lq1XjIzvdA5ZL/lOjTAyDKopBepqgWzsUII=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-6RrnsRbQ1+Cx7vnqauisBICgwmvTpJQT32DnIDVc6ts=";
|
||||
vendorHash = "sha256-BrSYfxftrnNOcPgG/rsTF3OukDd+VlOvE7OJcos7vW4=";
|
||||
ldflags = [ "-s" "-w" "-X github.com/sunny0826/kubecm/version.Version=${version}"];
|
||||
|
||||
doCheck = false;
|
||||
|
@ -15,17 +15,17 @@
|
||||
|
||||
buildGoModule rec {
|
||||
inherit pname;
|
||||
version = "2.8.2";
|
||||
version = "2.8.3";
|
||||
tags = lib.optionals enableGateway [ "gateway" ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kumahq";
|
||||
repo = "kuma";
|
||||
rev = version;
|
||||
hash = "sha256-znjOMegh0lgFDonUXtRfs+1ZMN5Olzz01E2tX+tRcns=";
|
||||
hash = "sha256-wGEO7DJLWy/d6SYsTb8EZhF9c1ptYBXDL/Owter4nfo=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-FEdDOpz6C89OlzU3Pl4Uu6P0WgM4QsuccQ9vAHnb4xI=";
|
||||
vendorHash = "sha256-PAW2Byzz6Ky4I51QrJoNoyn1QH/i0SeU2dDHvj2BqXM=";
|
||||
|
||||
# no test files
|
||||
doCheck = false;
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
(callPackage ./generic.nix { }) {
|
||||
channel = "edge";
|
||||
version = "24.8.2";
|
||||
sha256 = "0jvyw002xy5zdb27q02r3bj88138zpc73an61sbgmls3jwp9w9iq";
|
||||
vendorHash = "sha256-16tdpREYDJDvwIZLpwCxGsZGERxMdSyPH7c6wbD2GCI=";
|
||||
version = "24.8.3";
|
||||
sha256 = "05ynk7p86pa81nyfj9vkfmvgss0nfz3zszrlm967cakhanc5083g";
|
||||
vendorHash = "sha256-Edn5w264IU3ez47jb2wqX5zXeKiLtewWs05LXYr5q50=";
|
||||
}
|
||||
|
@ -15,9 +15,9 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "minikube";
|
||||
version = "1.33.1";
|
||||
version = "1.34.0";
|
||||
|
||||
vendorHash = "sha256-VHl6CKPWqahX70GHbZE6SVa8XPfiC912DvsOteH2B0w=";
|
||||
vendorHash = "sha256-gw5Ol7Gp26KyIaiMvwik8FJpABpMT86vpFnZnAJ6hhs=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
@ -25,7 +25,7 @@ buildGoModule rec {
|
||||
owner = "kubernetes";
|
||||
repo = "minikube";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-z0wNngEzddxpeeLyQVA2yRC5SfYvU5G66V95sVmW6bA=";
|
||||
sha256 = "sha256-Z7x3MOQUF3a19X4SSiIUfSJ3xl3482eKH700m/9pqcU=";
|
||||
};
|
||||
postPatch =
|
||||
(
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "deck";
|
||||
version = "1.39.5";
|
||||
version = "1.39.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Kong";
|
||||
repo = "deck";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-kG7eT9g4akiQV2dpZuIi3uabW2lnCm2SF2uT/wFIUiA=";
|
||||
hash = "sha256-IiwS+NsjXW4kVAaJnsI8HEAl2pPRQr3K2ZpC7n/VjU4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
@ -21,7 +21,7 @@ buildGoModule rec {
|
||||
];
|
||||
|
||||
proxyVendor = true; # darwin/linux hash mismatch
|
||||
vendorHash = "sha256-3iUnNSelViAgmwsA9XZg50+JGbizamiM1Y64rZ7KeFo=";
|
||||
vendorHash = "sha256-wpTXuyeUIPg6WPzVyOIFadodlKHzr5DeDeHhDRKsYbY=";
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --cmd deck \
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "notmuch-bower";
|
||||
version = "1.0";
|
||||
version = "1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wangp";
|
||||
repo = "bower";
|
||||
rev = version;
|
||||
sha256 = "sha256-BNuJEVuzreI2AK/fqVMRHq8ZhPQjO33Y2FzkrWlfmm0=";
|
||||
sha256 = "sha256-CqA9JU/ujqIn/NvtbPtSWxKDYCv4oDdLCgbf2jj9Av4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ mercury pandoc ];
|
||||
|
@ -33,14 +33,14 @@ let
|
||||
}.${system} or throwSystem;
|
||||
|
||||
hash = {
|
||||
x86_64-linux = "sha256-DoN6I1lk4WpOZ+jC+od7jum3lxBHFppea5QFTuqY5nk=";
|
||||
x86_64-linux = "sha256-25FFXrUE1NvIXlOFR9KZyjD3w8xuvPlpqz/KkUTt1TQ=";
|
||||
}.${system} or throwSystem;
|
||||
|
||||
displayname = "XPipe";
|
||||
|
||||
in stdenvNoCC.mkDerivation rec {
|
||||
pname = "xpipe";
|
||||
version = "11.1";
|
||||
version = "11.2";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/xpipe-io/xpipe/releases/download/${version}/xpipe-portable-linux-${arch}.tar.gz";
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
let
|
||||
pname = "jbrowse";
|
||||
version = "2.14.0";
|
||||
version = "2.15.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/GMOD/jbrowse-components/releases/download/v${version}/jbrowse-desktop-v${version}-linux.AppImage";
|
||||
sha256 = "sha256-fxXOUB+glJmg4WdL+mNfkp0O4iUsl8L1EuIYpBO1gRA=";
|
||||
sha256 = "sha256-WA0R1V83xlUFSDR4B95BX7VpzLUVF4U7f+t+x+lt30o=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
|
@ -37,13 +37,13 @@ let
|
||||
in
|
||||
buildPerlModule rec {
|
||||
pname = "pipe-viewer";
|
||||
version = "0.5.2";
|
||||
version = "0.5.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "trizen";
|
||||
repo = "pipe-viewer";
|
||||
rev = version;
|
||||
hash = "sha256-TCcAQjz0B3eWILMAoqHCnMLvu8zD0W5wOFg+UaMPmXg=";
|
||||
hash = "sha256-crYdbHIDcecfq1FKoRWX3u9x9wqdlaYrBgr7mGdEHeU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ]
|
||||
|
@ -15,13 +15,13 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "tartube";
|
||||
version = "2.5.0";
|
||||
version = "2.5.040";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "axcore";
|
||||
repo = "tartube";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "sha256-IcJDh8Q9K6SROZWVi98R1N2kSdgwJczScLdJFKy2FIU=";
|
||||
sha256 = "sha256-yFsQbEXjWPxLYqFxsI6MjK1hE8Lk2Z0sPj3peLBs7r8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -142,7 +142,7 @@ stdenv.mkDerivation rec {
|
||||
''}
|
||||
'';
|
||||
|
||||
patchPhase = lib.optionalString enableMacOSGuests ''
|
||||
postPatch = lib.optionalString enableMacOSGuests ''
|
||||
cp -R "${unlockerSrc}" unlocker/
|
||||
|
||||
substituteInPlace unlocker/unlocker.py --replace \
|
||||
@ -153,6 +153,8 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p \
|
||||
$out/bin \
|
||||
$out/etc/vmware \
|
||||
@ -324,7 +326,7 @@ stdenv.mkDerivation rec {
|
||||
sed -i -e "s,/sbin/modprobe,${kmod}/bin/modprobe," $out/bin/vmplayer
|
||||
sed -i -e "s,@@BINARY@@,$out/bin/vmplayer," $out/share/applications/vmware-player.desktop
|
||||
|
||||
## VMware OVF Tool compoment
|
||||
## VMware OVF Tool component
|
||||
echo "Installing VMware OVF Tool for Linux"
|
||||
unpacked="unpacked/vmware-ovftool"
|
||||
mkdir -p $out/lib/vmware-ovftool/
|
||||
@ -390,7 +392,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
chmod +x $out/bin/* $out/lib/vmware/bin/* $out/lib/vmware/setup/*
|
||||
|
||||
# Harcoded pkexec hack
|
||||
# Hardcoded pkexec hack
|
||||
for lib in "lib/vmware/lib/libvmware-mount.so/libvmware-mount.so" "lib/vmware/lib/libvmwareui.so/libvmwareui.so" "lib/vmware/lib/libvmware-fuseUI.so/libvmware-fuseUI.so"
|
||||
do
|
||||
sed -i -e "s,/usr/local/sbin,/run/vmware/bin," "$out/$lib"
|
||||
@ -405,6 +407,8 @@ stdenv.mkDerivation rec {
|
||||
wrapProgram $out/lib/vmware/bin/vmware-vmx
|
||||
rm $out/lib/vmware/bin/vmware-vmx
|
||||
ln -s /run/wrappers/bin/vmware-vmx $out/lib/vmware/bin/vmware-vmx
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "dk";
|
||||
version = "2.2";
|
||||
version = "2.3";
|
||||
|
||||
src = fetchFromBitbucket {
|
||||
owner = "natemaia";
|
||||
repo = "dk";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-u1fZTcfGLwKFeRADU55MFYDvtSOaOg5qtWB90xYpVuY=";
|
||||
hash = "sha256-VkNF3F/NRQadBkbnbVmMZliIXRxFU0qqxOeQDX4UrJg=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -688,7 +688,7 @@ stdenvNoCC.mkDerivation {
|
||||
''
|
||||
|
||||
+ optionalString targetPlatform.isAndroid ''
|
||||
echo "-D__ANDROID_API__=${targetPlatform.sdkVer}" >> $out/nix-support/cc-cflags
|
||||
echo "-D__ANDROID_API__=${targetPlatform.androidSdkVersion}" >> $out/nix-support/cc-cflags
|
||||
''
|
||||
|
||||
# There are a few tools (to name one libstdcxx5) which do not work
|
||||
|
@ -37,9 +37,9 @@ in
|
||||
, extension ? _compressorMeta.extension or
|
||||
(throw "Unrecognised compressor ${_compressorName}, please specify filename extension")
|
||||
|
||||
# List of { object = path_or_derivation; symlink = "/path"; }
|
||||
# List of { source = path_or_derivation; target = "/path"; }
|
||||
# The paths are copied into the initramfs in their nix store path
|
||||
# form, then linked at the root according to `symlink`.
|
||||
# form, then linked at the root according to `target`.
|
||||
, contents
|
||||
|
||||
# List of uncompressed cpio files to prepend to the initramfs. This
|
||||
|
@ -141,10 +141,20 @@ const performParallel = tasks => {
|
||||
return Promise.all(workers)
|
||||
}
|
||||
|
||||
// This could be implemented using [`Map.groupBy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/groupBy),
|
||||
// but that method is only supported starting with Node 21
|
||||
const uniqueBy = (arr, callback) => {
|
||||
const map = new Map()
|
||||
for (const elem of arr) {
|
||||
map.set(callback(elem), elem)
|
||||
}
|
||||
return [...map.values()]
|
||||
}
|
||||
|
||||
const prefetchYarnDeps = async (lockContents, verbose) => {
|
||||
const lockData = lockfile.parse(lockContents)
|
||||
await performParallel(
|
||||
Object.entries(lockData.object)
|
||||
uniqueBy(Object.entries(lockData.object), ([_, value]) => value.resolved)
|
||||
.map(([key, value]) => () => downloadPkg({ key, ...value }, verbose))
|
||||
)
|
||||
await fs.promises.writeFile('yarn.lock', lockContents)
|
||||
|
@ -12,7 +12,7 @@ let
|
||||
self = python3;
|
||||
packageOverrides = _: super: { tree-sitter = super.tree-sitter_0_21; };
|
||||
};
|
||||
version = "0.54.0";
|
||||
version = "0.56.0";
|
||||
in
|
||||
python3.pkgs.buildPythonApplication {
|
||||
pname = "aider-chat";
|
||||
@ -23,10 +23,12 @@ python3.pkgs.buildPythonApplication {
|
||||
owner = "paul-gauthier";
|
||||
repo = "aider";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-ysNhfhFGSDhEQLQLP26Lv6qmZehmwtQTSlAqJVPD5O8=";
|
||||
hash = "sha256-e0Fqj67vYt41Zbr1FN2fuLp6cHRius8RtacBHLgB9dM=";
|
||||
};
|
||||
|
||||
build-system = with python3.pkgs; [ setuptools ];
|
||||
pythonRelaxDeps = true;
|
||||
|
||||
build-system = with python3.pkgs; [ setuptools-scm ];
|
||||
|
||||
dependencies =
|
||||
with python3.pkgs;
|
||||
@ -41,6 +43,7 @@ python3.pkgs.buildPythonApplication {
|
||||
gitpython
|
||||
grep-ast
|
||||
importlib-resources
|
||||
json5
|
||||
jsonschema
|
||||
jiter
|
||||
litellm
|
||||
@ -70,32 +73,29 @@ python3.pkgs.buildPythonApplication {
|
||||
|
||||
buildInputs = [ portaudio ];
|
||||
|
||||
pythonRelaxDeps = true;
|
||||
|
||||
nativeCheckInputs = (with python3.pkgs; [ pytestCheckHook ]) ++ [ gitMinimal ];
|
||||
|
||||
disabledTestPaths = [
|
||||
# requires network
|
||||
# Tests require network access
|
||||
"tests/scrape/test_scrape.py"
|
||||
|
||||
# Expected 'mock' to have been called once
|
||||
"tests/help/test_help.py"
|
||||
];
|
||||
|
||||
disabledTests =
|
||||
[
|
||||
# requires network
|
||||
# Tests require network
|
||||
"test_urls"
|
||||
"test_get_commit_message_with_custom_prompt"
|
||||
|
||||
# FileNotFoundError
|
||||
"test_get_commit_message"
|
||||
|
||||
# Expected 'launch_gui' to have been called once
|
||||
"test_browser_flag_imports_streamlit"
|
||||
# AttributeError
|
||||
"test_simple_send_with_retries"
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# fails on darwin
|
||||
# Tests fails on darwin
|
||||
"test_dark_mode_sets_code_theme"
|
||||
"test_default_env_file_sets_automatic_variable"
|
||||
];
|
||||
@ -107,8 +107,9 @@ python3.pkgs.buildPythonApplication {
|
||||
meta = {
|
||||
description = "AI pair programming in your terminal";
|
||||
homepage = "https://github.com/paul-gauthier/aider";
|
||||
changelog = "https://github.com/paul-gauthier/aider/blob/v${version}/HISTORY.md";
|
||||
license = lib.licenses.asl20;
|
||||
mainProgram = "aider";
|
||||
maintainers = with lib.maintainers; [ taha-yassine ];
|
||||
mainProgram = "aider";
|
||||
};
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "astartectl";
|
||||
version = "23.5.2";
|
||||
version = "24.5.0";
|
||||
|
||||
# Workaround for go vendor failing
|
||||
# https://github.com/astarte-platform/astartectl/pull/244
|
||||
@ -15,7 +15,7 @@ buildGoModule rec {
|
||||
owner = "astarte-platform";
|
||||
repo = "astartectl";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-EIyta/10K6WQ1vzQZryz+c3K2AwMOUUQCw5f4Wkp6Yk=";
|
||||
hash = "sha256-4Iyd+1hLSatWyeV2J7RSqo2jVEc8dSp5JBObsn3RciI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-NWPLHbUHrk/oJXCOJF8kKhQiZR8aqZChxuz73Acu1cM=";
|
||||
|
@ -11,13 +11,13 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.17.2";
|
||||
version = "1.17.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "detachhead";
|
||||
repo = "basedpyright";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-6pksb2drjiZo1Hp6P/G06LAj3nW5WXJbVNGt5897jAA=";
|
||||
hash = "sha256-cnhtge0ueveo70cYDpb/+ss5osHbO1Yyv74NrYBYZOM=";
|
||||
};
|
||||
|
||||
patchedPackageJSON = runCommand "package.json" { } ''
|
||||
|
@ -17,19 +17,19 @@
|
||||
|
||||
let
|
||||
devenv_nix = nix.overrideAttrs (old: {
|
||||
version = "2.21-devenv";
|
||||
version = "2.24-devenv";
|
||||
src = fetchFromGitHub {
|
||||
owner = "domenkozar";
|
||||
repo = "nix";
|
||||
rev = "b24a9318ea3f3600c1e24b4a00691ee912d4de12";
|
||||
hash = "sha256-BGvBhepCufsjcUkXnEEXhEVjwdJAwPglCC2+bInc794=";
|
||||
rev = "1e61e9f40673f84c3b02573145492d8af581bec5";
|
||||
hash = "sha256-uDwWyizzlQ0HFzrhP6rVp2+2NNA+/TM5zT32dR8GUlg=";
|
||||
};
|
||||
buildInputs = old.buildInputs ++ [ libgit2 ];
|
||||
doCheck = false;
|
||||
doInstallCheck = false;
|
||||
});
|
||||
|
||||
version = "1.0.8";
|
||||
version = "1.1";
|
||||
in rustPlatform.buildRustPackage {
|
||||
pname = "devenv";
|
||||
inherit version;
|
||||
@ -38,10 +38,10 @@ in rustPlatform.buildRustPackage {
|
||||
owner = "cachix";
|
||||
repo = "devenv";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-q/ERT4Ui315opFz4h4+BsJ/zrTYdXkwq13vvrpL+KzM=";
|
||||
hash = "sha256-7o2OBUwE51ZNMCBB4rg5LARc8S6C9vuzRXnqk3d/lN4=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-fCXAFVmKns8uglbzyCznoVFGCU+Veq0t1h8T7i1P5XQ=";
|
||||
cargoHash = "sha256-Yos8iOWfRJcOqbanskUg75cX05dvxWnq42NhmQt/jf4=";
|
||||
|
||||
buildAndTestSubdir = "devenv";
|
||||
|
||||
|
@ -31,13 +31,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "envision-unwrapped";
|
||||
version = "0-unstable-2024-09-06";
|
||||
version = "0-unstable-2024-09-09";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "gabmus";
|
||||
repo = "envision";
|
||||
rev = "849f47a8533bc3fc673afbdd9b32acac3ff26f7d";
|
||||
hash = "sha256-t1+4MXD1s4NW38r3Ht+1OmCAY44MqEPijXdUVKy0rY4=";
|
||||
rev = "f8a18e96f049f2fd51409aac011e1aa09eaac2db";
|
||||
hash = "sha256-ZEczUdFyjgqCisFjgQeYWJ9JQP0/G7cgVpkHwWjNfRQ=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
@ -10,13 +10,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "fastcdr";
|
||||
version = "2.2.3";
|
||||
version = "2.2.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "eProsima";
|
||||
repo = "Fast-CDR";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-x+lkbssrNQQXmnlfYM2cGMVQZRiONNeImHj5EPm93ls=";
|
||||
hash = "sha256-R+StDJVqT0ktbr4cQBwEAPmju+pmBvxonezsIsPwmgc=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -25,13 +25,13 @@ in
|
||||
stdenv'.mkDerivation {
|
||||
pname = "flameshot";
|
||||
# wlr screenshotting is currently only available on unstable version (>12.1.0)
|
||||
version = "12.1.0-unstable-2024-08-02";
|
||||
version = "12.1.0-unstable-2024-09-01";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "flameshot-org";
|
||||
repo = "flameshot";
|
||||
rev = "fd3772e2abb0b852573fcaa549ba13517f13555c";
|
||||
hash = "sha256-WXUxrirlevqJ+dnXZbN1C1l5ibuSI/DBi5fqPx9nOGQ=";
|
||||
rev = "14a136777cd82ab70f42c13b4bc9418c756d91d2";
|
||||
hash = "sha256-xM99adstwfOOaeecKyWQU3yY0p65pQyFgoz7WJNra98=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "gogup";
|
||||
version = "0.27.4";
|
||||
version = "0.27.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nao1215";
|
||||
repo = "gup";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-vCp513WpB3kWMN0nkohtvpuMN1WBndg1E6pF0Cd5FgE=";
|
||||
hash = "sha256-I4l/sDqafc/ZO8kKc4iOSMFLS0YZrAqRFOXn0N7Myo4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-rtdbPwVZHwofpGccYU8NBiaikzNMIwSDggbRdnGTBu8=";
|
||||
|
36
pkgs/by-name/li/libbase58/package.nix
Normal file
36
pkgs/by-name/li/libbase58/package.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
autoreconfHook,
|
||||
libgcrypt,
|
||||
pkg-config,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libbase58";
|
||||
version = "0.1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bitcoin";
|
||||
repo = "libbase58";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-CU55V89GbcYnrhwTPFMd13EGeCk/x9nQswUZ2JsYsUU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [ libgcrypt ];
|
||||
|
||||
meta = {
|
||||
description = "C library for Bitcoin's base58 encoding";
|
||||
homepage = "https://github.com/bitcoin/libbase58";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ nagy ];
|
||||
mainProgram = "base58";
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
@ -8,13 +8,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "microcode-intel";
|
||||
version = "20240813";
|
||||
version = "20240910";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "Intel-Linux-Processor-Microcode-Data-Files";
|
||||
rev = "microcode-${version}";
|
||||
hash = "sha256-O2UWa04MnU9ndzvWy8fruOTm85PexEd+i1McQNz6uFE=";
|
||||
hash = "sha256-cn0qK81dwbamh5PBlPuC9KtDWyT2NwSxDD0XlCRAv6s=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule {
|
||||
pname = "nc4nix";
|
||||
version = "0-unstable-2024-08-01";
|
||||
version = "0-unstable-2024-09-07";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "helsinki-systems";
|
||||
repo = "nc4nix";
|
||||
rev = "827bb7244a3529e71c9474fe1f74aed51a4b08d5";
|
||||
hash = "sha256-ToT+VvdXiUMmy0dNJAeyMlzMx87QhZPIwzxPXm2fR7s=";
|
||||
rev = "6be14e56aabc0c0a686037a7d1fa6fff8ea97045";
|
||||
hash = "sha256-RVimsyyErf9eaHLIRp5U8zHJSNC2vBlk/ga4VRitJM8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-qntRsv3KvAbV3lENjAHKkQOqh3uTo3gacfwase489tQ=";
|
||||
|
@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "oh-my-posh";
|
||||
version = "23.4.0";
|
||||
version = "23.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jandedobbeleer";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-LvgK8h877jXXYWzuy2x1hiRC4YOhj+TeCRjT5nFy1gI=";
|
||||
hash = "sha256-9Yyq0tssLBcRKWFboDzJ0p7Z5WgeDb880KhX6w56+DE=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-ra0jec3ta8LcBpc6vXz8SEzweOLCTA+BPIFQEhUUHjI=";
|
||||
vendorHash = "sha256-SXcBhjgANPi/eWkcYBUGmCKID/1jkdGq7Q8m/y1Euzc=";
|
||||
|
||||
sourceRoot = "${src.name}/src";
|
||||
|
||||
|
@ -6,11 +6,11 @@
|
||||
}:
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "proton-ge-bin";
|
||||
version = "GE-Proton9-12";
|
||||
version = "GE-Proton9-13";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${finalAttrs.version}/${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-2/vxX5AT1qQ50jBrQkZIzlmzkOAX+qzINEeD3Lo1f40=";
|
||||
hash = "sha256-/KaFYCLvojxH3coiJaArXMPIIwW5qzK+I0bGyt7oBNY=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
71
pkgs/by-name/re/recyclarr/deps.nix
generated
71
pkgs/by-name/re/recyclarr/deps.nix
generated
@ -90,8 +90,8 @@
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "dotnet-sonarscanner";
|
||||
version = "7.1.1";
|
||||
hash = "sha256-fMx2rfRlqpD7Urg+earDe5oDnQBn3zeItzXHxXDEkdA=";
|
||||
version = "8.0.1";
|
||||
hash = "sha256-cdwdO7C79O0xZ5AovWq6A0g9H22bYTITmogcY0rKOtk=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "DynamicData";
|
||||
@ -135,13 +135,13 @@
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "GitVersion.MsBuild";
|
||||
version = "6.0.0";
|
||||
hash = "sha256-Ve9Ys4u+p8uYBSvX7vT6Qpile6Fj7q3y0sHNIMaue90=";
|
||||
version = "6.0.2";
|
||||
hash = "sha256-Xn1oMWSWGWuZpKnVwh6N40KOSNVkNYpzYYTu7TBQcgo=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "GitVersion.Tool";
|
||||
version = "6.0.0";
|
||||
hash = "sha256-aee5HFhFfkmJnkoDnP/rZJpn/7McS3PQIlrAJKSRqnk=";
|
||||
version = "6.0.2";
|
||||
hash = "sha256-VPzU5WaDXFeaDkWPPqzZyOxYOrcocr2mJdawoZGl11M=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Microsoft.AspNetCore.Authorization";
|
||||
@ -200,8 +200,8 @@
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Microsoft.CodeCoverage";
|
||||
version = "17.10.0";
|
||||
hash = "sha256-yQFwqVChRtIRpbtkJr92JH2i+O7xn91NGbYgnKs8G2g=";
|
||||
version = "17.11.0";
|
||||
hash = "sha256-XglInnx5GePUYHG7n2NLX+WfK7kJnornsWOW/5FnOXE=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Microsoft.Extensions.Configuration.Abstractions";
|
||||
@ -235,8 +235,8 @@
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Microsoft.Extensions.DependencyModel";
|
||||
version = "8.0.0";
|
||||
hash = "sha256-qkCdwemqdZY/yIW5Xmh7Exv74XuE39T8aHGHCofoVgo=";
|
||||
version = "8.0.1";
|
||||
hash = "sha256-m8daXRK1Qn9y2c8SmtWu9ysLHwFJtEWiUQoAnMalw7s=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Microsoft.Extensions.Diagnostics.Abstractions";
|
||||
@ -310,8 +310,8 @@
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Microsoft.NET.Test.Sdk";
|
||||
version = "17.10.0";
|
||||
hash = "sha256-rkHIqB2mquNXF89XBTFpUL2z5msjTBsOcyjSBCh36I0=";
|
||||
version = "17.11.0";
|
||||
hash = "sha256-WjyA78+PG9ZloWTt9Hf1ek3VVj2FfJ9fAjqklnN+fWw=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Microsoft.NETCore.Platforms";
|
||||
@ -338,10 +338,15 @@
|
||||
version = "17.10.0";
|
||||
hash = "sha256-3YjVGK2zEObksBGYg8b/CqoJgLQ1jUv4GCWNjDhLRh4=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Microsoft.TestPlatform.ObjectModel";
|
||||
version = "17.11.0";
|
||||
hash = "sha256-mCI3MCV6nyrGLrBat5VvK5LrXTEKlsdp9NkpZyJYwVg=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Microsoft.TestPlatform.TestHost";
|
||||
version = "17.10.0";
|
||||
hash = "sha256-+yzP3FY6WoOosSpYnB7duZLhOPUZMQYy8zJ1d3Q4hK4=";
|
||||
version = "17.11.0";
|
||||
hash = "sha256-gViDLobza22kuLvB4JdlGtbANqwBHRwf1wLmIHMw9Eo=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Microsoft.Win32.Primitives";
|
||||
@ -350,8 +355,8 @@
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "MudBlazor";
|
||||
version = "7.3.0";
|
||||
hash = "sha256-EiHcGTTSi1ID9GpjyDGX3nqPc/fz4Xx5H6udqinRGHs=";
|
||||
version = "7.6.0";
|
||||
hash = "sha256-hTeNrVykAm+YS/mNafM5HZ/3cfKBQb6rs8kEZ11h86M=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "NETStandard.Library";
|
||||
@ -375,13 +380,13 @@
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "NUnit";
|
||||
version = "4.1.0";
|
||||
hash = "sha256-srzj0lf2ReKw41TnigZwf8rqKKNzGRRVrgN3hR/vRjo=";
|
||||
version = "4.2.1";
|
||||
hash = "sha256-rR1Yk79bBH8pJaAoqBhkiDqnQfkcK1ggZqkuQF3s2mg=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "NUnit.Analyzers";
|
||||
version = "4.2.0";
|
||||
hash = "sha256-+YtDcIIWo1vOEXjQ/M6a+OrdzgTqinDKM2vVNmy4tSo=";
|
||||
version = "4.3.0";
|
||||
hash = "sha256-L/agsdfGdIICWmBeD/dm3lHGnTDyOF0hArLd42n09SY=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "NUnit3TestAdapter";
|
||||
@ -680,8 +685,8 @@
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Serilog.AspNetCore";
|
||||
version = "8.0.1";
|
||||
hash = "sha256-a07P+0co6QuLuUw09PvvpLf9gix88Nw3dACsnSRcuW4=";
|
||||
version = "8.0.2";
|
||||
hash = "sha256-cRZHG2bqrESOxPVxq2v+mHx+oZBzZEPksrleGVXO1p0=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Serilog.Expressions";
|
||||
@ -705,8 +710,8 @@
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Serilog.Settings.Configuration";
|
||||
version = "8.0.0";
|
||||
hash = "sha256-JQ39fvhOFSUHE6r9DXJvLaZI+Lk7AYzuskQu3ux+hQg=";
|
||||
version = "8.0.2";
|
||||
hash = "sha256-iHRQt6vDk85/6HpMXiJluAwhkjgwEnL3IKavfDgFX0k=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Serilog.Sinks.Console";
|
||||
@ -740,8 +745,8 @@
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Spectre.Console.Analyzer";
|
||||
version = "0.49.1";
|
||||
hash = "sha256-1HISNHRyzsNKTCimvJaYudsJm7lE+/pxcMdedqrtyWQ=";
|
||||
version = "1.0.0";
|
||||
hash = "sha256-Om2PRAfm4LoPImty4zpGo/uoqha6ZnuCU6iNcAvKiUE=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "Spectre.Console.Cli";
|
||||
@ -850,18 +855,8 @@
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "System.Diagnostics.DiagnosticSource";
|
||||
version = "4.3.0";
|
||||
hash = "sha256-OFJRb0ygep0Z3yDBLwAgM/Tkfs4JCDtsNhwDH9cd1Xw=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "System.Diagnostics.DiagnosticSource";
|
||||
version = "7.0.2";
|
||||
hash = "sha256-8Uawe7mWOQsDzMSAAP16nuGD1FRSajyS8q+cA++MJ8E=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "System.Diagnostics.DiagnosticSource";
|
||||
version = "8.0.0";
|
||||
hash = "sha256-+aODaDEQMqla5RYZeq0Lh66j+xkPYxykrVvSCmJQ+Vs=";
|
||||
version = "8.0.1";
|
||||
hash = "sha256-zmwHjcJgKcbkkwepH038QhcnsWMJcHys+PEbFGC0Jgo=";
|
||||
})
|
||||
(fetchNuGet {
|
||||
pname = "System.Diagnostics.EventLog";
|
||||
|
@ -19,13 +19,13 @@ let
|
||||
in
|
||||
buildDotnetModule (finalAttrs: {
|
||||
pname = "recyclarr";
|
||||
version = "7.2.1";
|
||||
version = "7.2.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "recyclarr";
|
||||
repo = "recyclarr";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-KXFGT1fprRKN+V+3k0hpjjaI/xpw6UDAk+jj9zMek7k=";
|
||||
hash = "sha256-1jNXqyGIcaO2FVcC8i/vq+XTDCGuTGD4y0dDWIqb0K8=";
|
||||
};
|
||||
|
||||
projectFile = "Recyclarr.sln";
|
||||
|
@ -11,16 +11,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "rustic";
|
||||
version = "0.8.0";
|
||||
version = "0.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rustic-rs";
|
||||
repo = "rustic";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-4DQNg/pYoIVQpdOp2Yx1AGUdsJbfGSL09Ll5yJTeJlU=";
|
||||
hash = "sha256-SOXuQIdebzMHyO/r+0bvhZvdc09pNPiCXgYfzMoZUZo=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-YFVxTJNzw/A0lz7mH6B+zKjeW5FYqyKHEWckCSVs4A8=";
|
||||
cargoHash = "sha256-5tXaq/FPC3T+f1p4RtihQGgwAptcO58mOKQhiOpjacc=";
|
||||
|
||||
# At the time of writing, upstream defaults to "self-update", "tui", and "webdav".
|
||||
# "self-update" is a self-updater, which we don't want in nixpkgs.
|
||||
|
@ -38,13 +38,13 @@ assert builtins.elem gpuBackend [ "none" "cuda" "rocm" ];
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "SIRIUS";
|
||||
version = "7.6.0";
|
||||
version = "7.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "electronic-structure";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-AdjqyHZRMl9zxwuTBzNXJkPi8EIhG/u98XJMEjHi/6k=";
|
||||
hash = "sha256-JvI75AbthNThXep2jcriLTPC8GGiPgrg5nYCCbCi+EI=";
|
||||
};
|
||||
|
||||
|
||||
|
@ -1,25 +1,27 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitLab
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, qt6
|
||||
, wayland
|
||||
, glib
|
||||
, wrapGAppsHook3
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitLab,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
qt6,
|
||||
wayland,
|
||||
glib,
|
||||
wrapGAppsHook3,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "waycheck";
|
||||
version = "1.2.1";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "serebit";
|
||||
repo = "waycheck";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-82jOYWhgD9JNDn24eCAeMm63R5BTy20lQVpiAwhDIOk=";
|
||||
hash = "sha256-ZNUORCSeU+AGQoiIIfPpgW2o1ElX+j5Pcn2X/8pSpRI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -48,11 +50,16 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Simple GUI that displays the protocols implemented by a Wayland compositor";
|
||||
homepage = "https://gitlab.freedesktop.org/serebit/waycheck";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ julienmalka ];
|
||||
maintainers = with lib.maintainers; [
|
||||
julienmalka
|
||||
pandapip1
|
||||
];
|
||||
mainProgram = "waycheck";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
|
@ -5,16 +5,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "wit-bindgen";
|
||||
version = "0.30.0";
|
||||
version = "0.31.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bytecodealliance";
|
||||
repo = "wit-bindgen";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-MeozLpwtOFnYxK2H+9bd7nG6BL6jSVqfBCVg1t3lErQ=";
|
||||
hash = "sha256-eTPP9G3t/P24ck9iZbXxoLV44wUWISb5RAjUPE7hsEA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-d6oMUAGyIFDWtjgXfIe0k3hx7QTFTfVuKnQ3XRux1HU=";
|
||||
cargoHash = "sha256-CVtUvUnvCrI637H2QjUEE2Ad8ujvJLYlRuuu8SBbzyY=";
|
||||
|
||||
# Some tests fail because they need network access to install the `wasm32-unknown-unknown` target.
|
||||
# However, GitHub Actions ensures a proper build.
|
||||
|
426
pkgs/by-name/ze/zed-editor/Cargo.lock
generated
426
pkgs/by-name/ze/zed-editor/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -85,13 +85,13 @@ let
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "zed";
|
||||
version = "0.151.2";
|
||||
version = "0.152.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zed-industries";
|
||||
repo = "zed";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-wIozmr3GKi4VdP+P5J2j3Fa/rIjfzpPQDHv8X3WBHZA=";
|
||||
hash = "sha256-0goeDz0mrZGPxsU51WGJz0mG5hdbY/75l/1Dyg2JLl4=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@ -106,7 +106,7 @@ rustPlatform.buildRustPackage rec {
|
||||
outputHashes = {
|
||||
"alacritty_terminal-0.24.1-dev" = "sha256-b4oSDhsAAYjpYGfFgA1Q1642JoJQ9k5RTsPgFUpAFmc=";
|
||||
"async-pipe-0.1.3" = "sha256-g120X88HGT8P6GNCrzpS5SutALx5H+45Sf4iSSxzctE=";
|
||||
"blade-graphics-0.5.0" = "sha256-LDUxtl6qVYcZj/+ifc6aXKDriDL+AQ3gsEAL9Un9hec=";
|
||||
"blade-graphics-0.5.0" = "sha256-j/JI34ZPD7RAHNHu3krgDLnIq4QmmZaZaU1FwD7f2FM=";
|
||||
"cosmic-text-0.11.2" = "sha256-TLPDnqixuW+aPAhiBhSvuZIa69vgV3xLcw32OlkdCcM=";
|
||||
"font-kit-0.14.1" = "sha256-qUKvmi+RDoyhMrZ7T6SoVAyMc/aasQ9Y/okzre4SzXo=";
|
||||
"lsp-types-0.95.1" = "sha256-N4MKoU9j1p/Xeowki/+XiNQPwIcTm9DgmfM/Eieq4js=";
|
||||
|
@ -12,13 +12,13 @@
|
||||
|
||||
let
|
||||
|
||||
version = "2024.01.13";
|
||||
version = "2024.09.05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FStarLang";
|
||||
repo = "FStar";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-xjSWDP8mSjLcn+0hsRpEdzsBgBR+mKCZB8yLmHl+WqE=";
|
||||
hash = "sha256-yaA6WpP2XIQhjK7kpXBdBFUgKZyvtThd6JmSchUCfbI=";
|
||||
};
|
||||
|
||||
fstar-dune = ocamlPackages.callPackage ./dune.nix { inherit version src; };
|
||||
|
@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "llef";
|
||||
version = "1.1.0";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "foundryzero";
|
||||
repo = "llef";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-tta99ncWJdnnSkVdnOwx36utEcefMy7fb5NDN2aZ5F0=";
|
||||
hash = "sha256-cpBQuRWpov4q3lEtZPA7ZWqQ8Aa/KKQbhtVStSfNa+Q=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
@ -4,13 +4,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "freenect";
|
||||
version = "0.7.0";
|
||||
version = "0.7.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OpenKinect";
|
||||
repo = "libfreenect";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Lb5mrl9jiI1Z9UOAlP+bBPNoKNxm5VSrFZRvifEfhoU=";
|
||||
sha256 = "sha256-PpJGFWrlQ5sK7TJxQNoPujw1MxWRjphvblwOqnF+mSg=";
|
||||
};
|
||||
|
||||
buildInputs = [ libusb1 libglut libGLU libGL libXi libXmu ]
|
||||
|
@ -13,13 +13,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sqlcipher";
|
||||
version = "4.6.0";
|
||||
version = "4.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sqlcipher";
|
||||
repo = "sqlcipher";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ds+0ckQiHikNMr4Xf/wCWwQySpadGgnccENd6u6gIzQ=";
|
||||
hash = "sha256-VcD3NwVrC75kLOJiIgrnzVpkBPhjxTmEFyKg/87wHGc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "test-drive";
|
||||
version = "0.4.0";
|
||||
version = "0.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fortran-lang";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ObAnHFP1Hp0knf/jtGHynVF0CCqK47eqetePx4NLmlM=";
|
||||
hash = "sha256-xRx8ErIN9xjxZt/nEsdIQkIGFRltuELdlI8lXA+M030=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
|
||||
mesonEmulatorHook
|
||||
];
|
||||
|
||||
mesonAutoFeatures = "auto";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Procedural Fortran testing framework";
|
||||
homepage = "https://github.com/fortran-lang/test-drive";
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "lambdasoup";
|
||||
version = "1.0.0";
|
||||
version = "1.1.0";
|
||||
|
||||
minimalOCamlVersion = "4.03";
|
||||
|
||||
@ -10,7 +10,7 @@ buildDunePackage rec {
|
||||
owner = "aantron";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-PZkhN5vkkLu8A3gYrh5O+nq9wFtig0Q4qD8zLGUGTRI=";
|
||||
hash = "sha256-HUYE29nhoBjG5OZSV4n0C5yLq8yDtP+wsmxYyWsF3lc=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ camlp-streams markup ];
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildDunePackage rec {
|
||||
pname = "mccs";
|
||||
version = "1.1+17";
|
||||
version = "1.1+18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AltGr";
|
||||
repo = "ocaml-mccs";
|
||||
rev = version;
|
||||
hash = "sha256-0NZF2W/eWwZRXnMJh9LmOdbE/CRDYeLUUx6ty4irP6U=";
|
||||
hash = "sha256-Swfqq7O5KASf1nkK/lgIO9byWDUv1FiWh8cNULF7wfI=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "auth0-python";
|
||||
version = "4.7.1";
|
||||
version = "4.7.2";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -28,7 +28,7 @@ buildPythonPackage rec {
|
||||
owner = "auth0";
|
||||
repo = "auth0-python";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-udtrvAr8wfg1DbNbBEjA/tlrYhIiXtTFqi4bZCuKI0Q=";
|
||||
hash = "sha256-g6sbxPglKDGbDMiB9crnua86y6TPIbLiFddeymrLAP0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
51
pkgs/development/python-modules/awsiotsdk/default.nix
Normal file
51
pkgs/development/python-modules/awsiotsdk/default.nix
Normal file
@ -0,0 +1,51 @@
|
||||
{
|
||||
lib,
|
||||
awscrt,
|
||||
boto3,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "awsiotsdk";
|
||||
version = "1.22.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aws";
|
||||
repo = "aws-iot-device-sdk-python-v2";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-2ZMNG+6yshEvjEpyN6uV62m11LZUrUHAzpRbm1foif0=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [ "awscrt" ];
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ awscrt ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
boto3
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
# Those tests require a custom loader
|
||||
"servicetests/"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "awsiot" ];
|
||||
|
||||
meta = {
|
||||
description = "Next generation AWS IoT Client SDK for Python using the AWS Common Runtime";
|
||||
homepage = "https://github.com/aws/aws-iot-device-sdk-python-v2";
|
||||
changelog = "https://github.com/aws/aws-iot-device-sdk-python-v2/releases/tag/v${version}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
};
|
||||
}
|
@ -13,14 +13,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "backports-datetime-fromisoformat";
|
||||
version = "2.0.1";
|
||||
version = "2.0.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "movermeyer";
|
||||
repo = "backports.datetime_fromisoformat";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-c3LCTOKva99+x96iLHNnL1e1Ft1M1CsjQX+nEqAlXUs=";
|
||||
hash = "sha256-v9Njic7zN2bv1lQgdbJNeZLF3VXcC9A4UoE/znLF0gM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
|
@ -1,43 +1,37 @@
|
||||
{
|
||||
fetchPypi,
|
||||
fetchpatch,
|
||||
buildPythonPackage,
|
||||
setuptools,
|
||||
future,
|
||||
packbits,
|
||||
pillow,
|
||||
pyusb,
|
||||
click,
|
||||
attrs,
|
||||
jsons,
|
||||
lib,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "brother-ql";
|
||||
version = "0.9.4";
|
||||
format = "setuptools";
|
||||
version = "0.11.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "brother_ql";
|
||||
pname = "brother_ql_next";
|
||||
inherit version;
|
||||
hash = "sha256-H1xXoDnwEsnCBDl/RwAB9267dINCHr3phdDLPGFOhmA=";
|
||||
hash = "sha256-3rTf+4W5KK7zSGIE3bBHXHE0hjyvpjB0IiEtbax6mkU=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
setuptools
|
||||
future
|
||||
packbits
|
||||
pillow
|
||||
pyusb
|
||||
click
|
||||
attrs
|
||||
];
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# Make compatible with Pillow>=10.0; https://github.com/pklaus/brother_ql/pull/143
|
||||
name = "brother-ql-pillow10-compat.patch";
|
||||
url = "https://github.com/pklaus/brother_ql/commit/a7e1b94b41f3a6e0f8b365598bc34fb47ca95a6d.patch";
|
||||
hash = "sha256-v3YhmsUWBwE/Vli1SbTQO8q1zbtWYI9iMlVFvz5sxmg=";
|
||||
})
|
||||
jsons
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
@ -46,8 +40,8 @@ buildPythonPackage rec {
|
||||
Python package for the raster language protocol of the Brother QL series label printers
|
||||
(QL-500, QL-550, QL-570, QL-700, QL-710W, QL-720NW, QL-800, QL-820NWB, QL-1050 and more)
|
||||
'';
|
||||
homepage = "https://github.com/pklaus/brother_ql";
|
||||
license = licenses.gpl3;
|
||||
homepage = "https://github.com/LunarEclipse363/brother_ql_next";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ grahamc ];
|
||||
mainProgram = "brother_ql";
|
||||
};
|
||||
|
@ -5,7 +5,6 @@
|
||||
pythonOlder,
|
||||
pytestCheckHook,
|
||||
poetry-core,
|
||||
datetime,
|
||||
httplib2,
|
||||
icalendar,
|
||||
python-dateutil,
|
||||
@ -14,24 +13,23 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "icalevents";
|
||||
version = "0.1.27";
|
||||
version = "0.1.28";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jazzband";
|
||||
repo = pname;
|
||||
repo = "icalevents";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-vSYQEJFBjXUF4WwEAtkLtcO3y/am00jGS+8Vj+JMMqQ=";
|
||||
hash = "sha256-JX4j2CsEY/bHrD7Rb9ru3C4T2e94mpC369nDN6Cv/I0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
build-system = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
datetime
|
||||
dependencies = [
|
||||
httplib2
|
||||
icalendar
|
||||
python-dateutil
|
||||
@ -39,7 +37,6 @@ buildPythonPackage rec {
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"datetime"
|
||||
"httplib2"
|
||||
"icalendar"
|
||||
"pytz"
|
||||
|
@ -10,15 +10,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "iottycloud";
|
||||
version = "0.1.3";
|
||||
version = "0.2.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pburgio";
|
||||
repo = "iottyCloud";
|
||||
# https://github.com/pburgio/iottyCloud/issues/1
|
||||
rev = "c328cc497bf58a1da148ea88e309129177d69af0";
|
||||
hash = "sha256-G06kvp4VG0OmZxDqvKnMJ+uD+6i5BFL/Iuke4vOdO/k=";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-EtAAUyVL7FTn0VoGmU5bU9XouMuEQUOx2t6j/wd1OEo=";
|
||||
};
|
||||
|
||||
build-system = [ hatchling ];
|
||||
|
@ -134,8 +134,8 @@ rec {
|
||||
"sha256-KuDlcfOuF3krMocvgR2LaP2+xKeYl2CMPKRewN8inj4=";
|
||||
|
||||
mypy-boto3-appsync =
|
||||
buildMypyBoto3Package "appsync" "1.35.0"
|
||||
"sha256-q5NsdqNr0m34SVm+eBYVv2PlS18PaqBwMuzh6jttfFc=";
|
||||
buildMypyBoto3Package "appsync" "1.35.12"
|
||||
"sha256-mHIUStFvFUTvHYWdZUNcIIOI//vNACI0veXXNLAAOVY=";
|
||||
|
||||
mypy-boto3-arc-zonal-shift =
|
||||
buildMypyBoto3Package "arc-zonal-shift" "1.35.0"
|
||||
@ -294,8 +294,8 @@ rec {
|
||||
"sha256-UJmPVW20ofQmmer9/IYwaFIU2+xhXcT+0s2aUxFDGZY=";
|
||||
|
||||
mypy-boto3-codepipeline =
|
||||
buildMypyBoto3Package "codepipeline" "1.35.0"
|
||||
"sha256-UNpRlMoEg7RBZd+6V0XslPjGZsSe6VZBCFhKINOdyU0=";
|
||||
buildMypyBoto3Package "codepipeline" "1.35.13"
|
||||
"sha256-tLQEsxoPyDA5cFlsm3HAOQPCyZApCQOBJMxVPDH6Q+w=";
|
||||
|
||||
mypy-boto3-codestar =
|
||||
buildMypyBoto3Package "codestar" "1.35.0"
|
||||
@ -338,8 +338,8 @@ rec {
|
||||
"sha256-1pS2EkJapoNVi5lUEftaxbdoN4fd7XSFjWyLXH1noL0=";
|
||||
|
||||
mypy-boto3-connect =
|
||||
buildMypyBoto3Package "connect" "1.35.11"
|
||||
"sha256-PuoxctcTcV85ynhnq85s5QZK713Q4Sx1HU8c6lc/9eY=";
|
||||
buildMypyBoto3Package "connect" "1.35.13"
|
||||
"sha256-sL2WWzsUFA6dbKR3XUEoy+CbWT6TWVQCxfdQ8mZTmbo=";
|
||||
|
||||
mypy-boto3-connect-contact-lens =
|
||||
buildMypyBoto3Package "connect-contact-lens" "1.35.0"
|
||||
@ -434,8 +434,8 @@ rec {
|
||||
"sha256-B6fR0fPc1vTN+WtsHXyE8gbl87yVd/QdxmmLmtftlxQ=";
|
||||
|
||||
mypy-boto3-dynamodb =
|
||||
buildMypyBoto3Package "dynamodb" "1.35.0"
|
||||
"sha256-dfIk2LePbTEm7q1kWupsCovCgoYU8wLBaN4dPa1JDRE=";
|
||||
buildMypyBoto3Package "dynamodb" "1.35.15"
|
||||
"sha256-epE4c+VCicXTkuGGJu83lxFTDUBu2ndmy36NARTCy8E=";
|
||||
|
||||
mypy-boto3-dynamodbstreams =
|
||||
buildMypyBoto3Package "dynamodbstreams" "1.35.0"
|
||||
@ -494,8 +494,8 @@ rec {
|
||||
"sha256-fw/vfzKXXQSG7xj9FolkJgzciHBz4ELlFh2MlEJ6wQI=";
|
||||
|
||||
mypy-boto3-elbv2 =
|
||||
buildMypyBoto3Package "elbv2" "1.35.11"
|
||||
"sha256-QOoHzT9BocGag8TQS/PNoZuS737LytVeynCL67LJ/Z4=";
|
||||
buildMypyBoto3Package "elbv2" "1.35.15"
|
||||
"sha256-sSTP3nxvOX+CSgn+mAyfG+n7R1PibDXM9Xa4q8uFxTo=";
|
||||
|
||||
mypy-boto3-emr =
|
||||
buildMypyBoto3Package "emr" "1.35.0"
|
||||
@ -526,8 +526,8 @@ rec {
|
||||
"sha256-C7hTVrCUdBpYj0y5cLGKnruJcgaHFMkeY6R0fZ/Zp78=";
|
||||
|
||||
mypy-boto3-finspace =
|
||||
buildMypyBoto3Package "finspace" "1.35.0"
|
||||
"sha256-SkoLikHx3vjm2ZOhn9klsdb3mYx50ZmK0E1jxoCsPt8=";
|
||||
buildMypyBoto3Package "finspace" "1.35.12"
|
||||
"sha256-zO4rFI2pzAFhHHyRPYeeV0eC4daRJ57GeAnAqrOyQAQ=";
|
||||
|
||||
mypy-boto3-finspace-data =
|
||||
buildMypyBoto3Package "finspace-data" "1.35.0"
|
||||
@ -538,8 +538,8 @@ rec {
|
||||
"sha256-7ibqWrvc1mwCDzsm/tqha/2Y2EbfxTpsf7omIZg/EbM=";
|
||||
|
||||
mypy-boto3-fis =
|
||||
buildMypyBoto3Package "fis" "1.35.0"
|
||||
"sha256-3Hf3TtHPpUHiuRMDiN56Og5YG5N65OSI+waiLytZado=";
|
||||
buildMypyBoto3Package "fis" "1.35.12"
|
||||
"sha256-rm0PB0oie7q+8pl+efohmHe8StLZVvSWYgLIajxd3Fo=";
|
||||
|
||||
mypy-boto3-fms =
|
||||
buildMypyBoto3Package "fms" "1.35.0"
|
||||
@ -562,8 +562,8 @@ rec {
|
||||
"sha256-GG3k2Lrl8zTgYcwxt2ccb30KE7Fm8o41zVxbvEeYIy0=";
|
||||
|
||||
mypy-boto3-gamelift =
|
||||
buildMypyBoto3Package "gamelift" "1.35.0"
|
||||
"sha256-GtxGMKCKkwIZHROvHXx5C17dWXSV5+v8kEEuPe6iUsU=";
|
||||
buildMypyBoto3Package "gamelift" "1.35.13"
|
||||
"sha256-Xd0jrg/w4CPn5mDgHTaahyRAu5RZxdMcpci0cx7/1sQ=";
|
||||
|
||||
mypy-boto3-glacier =
|
||||
buildMypyBoto3Package "glacier" "1.35.0"
|
||||
@ -702,16 +702,16 @@ rec {
|
||||
"sha256-MkWcD/B95hvrb7w8CkKNtL5mmZYcV+ROCBvTkRDthbk=";
|
||||
|
||||
mypy-boto3-ivs-realtime =
|
||||
buildMypyBoto3Package "ivs-realtime" "1.35.0"
|
||||
"sha256-GGo1Bw8qXesTJMESq6hjCJuXzhsroGVMH56IN3yIygw=";
|
||||
buildMypyBoto3Package "ivs-realtime" "1.35.15"
|
||||
"sha256-pO8W60U+c56/1F7LECM4AcOMIW7sHifSd9Ov+HJ4TpQ=";
|
||||
|
||||
mypy-boto3-ivschat =
|
||||
buildMypyBoto3Package "ivschat" "1.35.0"
|
||||
"sha256-6DhfxgNqJftRnqipRT3v6RLDvz7lA8TqO/1gMMs702U=";
|
||||
|
||||
mypy-boto3-kafka =
|
||||
buildMypyBoto3Package "kafka" "1.35.0"
|
||||
"sha256-2DwN3n429JIw3UvQAei+YteWSlE2wjwpC6/zsm2G5Bw=";
|
||||
buildMypyBoto3Package "kafka" "1.35.15"
|
||||
"sha256-mY1AapHaDKxJTZyP44wgZhRfJEGJubYMsV+PhKgFxIM=";
|
||||
|
||||
mypy-boto3-kafkaconnect =
|
||||
buildMypyBoto3Package "kafkaconnect" "1.35.0"
|
||||
@ -754,8 +754,8 @@ rec {
|
||||
"sha256-aKdkj9FTE3yDnyWySWx1xXAzzPypaGZ2IYg+6AwHHKQ=";
|
||||
|
||||
mypy-boto3-kinesisanalyticsv2 =
|
||||
buildMypyBoto3Package "kinesisanalyticsv2" "1.35.0"
|
||||
"sha256-VSyu3d7y42ZO45OtP6ck6QdKgvujE94yWUz+DaBiHDs=";
|
||||
buildMypyBoto3Package "kinesisanalyticsv2" "1.35.13"
|
||||
"sha256-UoRFrbwA6QdFsO2z7R8If5/0Jf6ebMTJ91jqEh/Ys38=";
|
||||
|
||||
mypy-boto3-kinesisvideo =
|
||||
buildMypyBoto3Package "kinesisvideo" "1.35.0"
|
||||
@ -810,8 +810,8 @@ rec {
|
||||
"sha256-6Vs5eRibHCZvDDIcIEThPa6T1OmfJXjLg4GAZlworsM=";
|
||||
|
||||
mypy-boto3-logs =
|
||||
buildMypyBoto3Package "logs" "1.35.10"
|
||||
"sha256-oR0BkgeM+MhSnsXnubozFH5O/glhruqgkD8GF89VeTQ=";
|
||||
buildMypyBoto3Package "logs" "1.35.12"
|
||||
"sha256-H+B1dxaGAAwAqWU5/WKKYz1HT9wKmvjVEg57kGvTDh0=";
|
||||
|
||||
mypy-boto3-lookoutequipment =
|
||||
buildMypyBoto3Package "lookoutequipment" "1.35.0"
|
||||
@ -1166,16 +1166,16 @@ rec {
|
||||
"sha256-dNjzSS7v92j/b2msbUC/aLQKpuVOvhCo0Jj8PSSlSr8=";
|
||||
|
||||
mypy-boto3-s3control =
|
||||
buildMypyBoto3Package "s3control" "1.35.0"
|
||||
"sha256-wHCB3nBLOQjDw/1zqjv9jVkY69U+QibTBDUgRUMvN6w=";
|
||||
buildMypyBoto3Package "s3control" "1.35.12"
|
||||
"sha256-GpZ3lr2WenLA+FNOBnot9X7DQKtmxWxvP85bTM5l1+g=";
|
||||
|
||||
mypy-boto3-s3outposts =
|
||||
buildMypyBoto3Package "s3outposts" "1.35.0"
|
||||
"sha256-P2Yg3qvcdAcjY+uwPg2DpTgT6ZXb1XYCOeu4bVfgFKI=";
|
||||
|
||||
mypy-boto3-sagemaker =
|
||||
buildMypyBoto3Package "sagemaker" "1.35.11"
|
||||
"sha256-FGE7iW5bbk38kn+fdgBOEor6ZaFlCsCEUkCm6USCgYk=";
|
||||
buildMypyBoto3Package "sagemaker" "1.35.15"
|
||||
"sha256-16P85xGM98ExA6Cphg2nTviTLu6CF/Hj3/sZ7P3OkJo=";
|
||||
|
||||
mypy-boto3-sagemaker-a2i-runtime =
|
||||
buildMypyBoto3Package "sagemaker-a2i-runtime" "1.35.0"
|
||||
@ -1198,8 +1198,8 @@ rec {
|
||||
"sha256-zixUmBhFo3joSB0UUWRjNbbrpgt/21OyfOzDkn2Y7kg=";
|
||||
|
||||
mypy-boto3-sagemaker-runtime =
|
||||
buildMypyBoto3Package "sagemaker-runtime" "1.35.0"
|
||||
"sha256-MP/jfdOOSre34FgPQA8bFIFy6TH14RGM3Hi5qsI+VZs=";
|
||||
buildMypyBoto3Package "sagemaker-runtime" "1.35.15"
|
||||
"sha256-2afZNIvBO29vNemskWbxx9X1PqL7j2knxHUSEap6lp4=";
|
||||
|
||||
mypy-boto3-savingsplans =
|
||||
buildMypyBoto3Package "savingsplans" "1.35.0"
|
||||
|
@ -3,6 +3,7 @@
|
||||
stdenv,
|
||||
fetchPypi,
|
||||
python,
|
||||
numpy_1,
|
||||
pythonAtLeast,
|
||||
pythonOlder,
|
||||
buildPythonPackage,
|
||||
@ -185,6 +186,7 @@ buildPythonPackage rec {
|
||||
blas = blas.provider;
|
||||
blasImplementation = blas.implementation;
|
||||
inherit cfg;
|
||||
coreIncludeDir = "${numpy_1}/${python.sitePackages}/numpy/core/include";
|
||||
tests = {
|
||||
inherit sage;
|
||||
};
|
||||
|
@ -3,6 +3,7 @@
|
||||
stdenv,
|
||||
fetchPypi,
|
||||
python,
|
||||
numpy_2,
|
||||
pythonAtLeast,
|
||||
pythonOlder,
|
||||
buildPythonPackage,
|
||||
@ -166,6 +167,7 @@ buildPythonPackage rec {
|
||||
blas = blas.provider;
|
||||
blasImplementation = blas.implementation;
|
||||
inherit cfg;
|
||||
coreIncludeDir = "${numpy_2}/${python.sitePackages}/numpy/_core/include";
|
||||
tests = {
|
||||
inherit sage;
|
||||
};
|
||||
|
@ -12,7 +12,7 @@
|
||||
buildPythonPackage rec {
|
||||
pname = "pulumi-aws";
|
||||
# Version is independant of pulumi's.
|
||||
version = "6.50.1";
|
||||
version = "6.51.0";
|
||||
|
||||
pyproject = true;
|
||||
build-system = [ setuptools ];
|
||||
@ -23,7 +23,7 @@ buildPythonPackage rec {
|
||||
owner = "pulumi";
|
||||
repo = "pulumi-aws";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-n+uqEgo71wdfZT1Pu+I8gckAebrTPUd8qNmzFcG6xHY=";
|
||||
hash = "sha256-aEyi4zFj0Q3KNBXjUX5J7nmmPCcnYn5w0mIC02gbGJc=";
|
||||
};
|
||||
|
||||
sourceRoot = "${src.name}/sdk/python";
|
||||
|
@ -49,10 +49,15 @@ buildPythonPackage rec {
|
||||
|
||||
pythonImportsCheck = [ "qcodes_contrib_drivers" ];
|
||||
|
||||
disabledTests = lib.optionals (stdenv.isDarwin) [
|
||||
# At index 13 diff: 'sour6:volt 0.29000000000000004' != 'sour6:volt 0.29'
|
||||
"test_stability_diagram_external"
|
||||
];
|
||||
disabledTests =
|
||||
lib.optionals (stdenv.isDarwin) [
|
||||
# At index 13 diff: 'sour6:volt 0.29000000000000004' != 'sour6:volt 0.29'
|
||||
"test_stability_diagram_external"
|
||||
]
|
||||
++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
|
||||
# AssertionError: assert ['outp:trig4:...9999996', ...] == ['outp:trig4:...t 0.266', ...]
|
||||
"test_stability_diagram_external"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
export HOME="$TMPDIR"
|
||||
|
@ -1,7 +1,6 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
pythonOlder,
|
||||
fetchFromGitHub,
|
||||
|
||||
# build-system
|
||||
@ -38,13 +37,13 @@
|
||||
xarray,
|
||||
|
||||
# optional-dependencies
|
||||
furo,
|
||||
jinja2,
|
||||
nbsphinx,
|
||||
pyvisa-sim,
|
||||
scipy,
|
||||
sphinx,
|
||||
sphinx-issues,
|
||||
sphinx-rtd-theme,
|
||||
towncrier,
|
||||
opencensus,
|
||||
opencensus-ext-azure,
|
||||
@ -63,16 +62,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "qcodes";
|
||||
version = "0.47.0";
|
||||
version = "0.48.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "microsoft";
|
||||
repo = "Qcodes";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-Gp+HeYJGWyW49jisadnavjIpzu7C2uS2qWn7eC6okqg=";
|
||||
hash = "sha256-Q1WyuK1mCbs75kGY1Aaw7S5EfFRjwqzZnhNyeSx7qc8=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
@ -112,6 +109,7 @@ buildPythonPackage rec {
|
||||
optional-dependencies = {
|
||||
docs = [
|
||||
# autodocsumm
|
||||
furo
|
||||
jinja2
|
||||
nbsphinx
|
||||
pyvisa-sim
|
||||
@ -121,7 +119,6 @@ buildPythonPackage rec {
|
||||
# sphinx-favicon
|
||||
sphinx-issues
|
||||
# sphinx-jsonschema
|
||||
sphinx-rtd-theme
|
||||
# sphinxcontrib-towncrier
|
||||
towncrier
|
||||
];
|
||||
@ -195,9 +192,13 @@ buildPythonPackage rec {
|
||||
|
||||
pythonImportsCheck = [ "qcodes" ];
|
||||
|
||||
# Remove the `asyncio_default_fixture_loop_scope` option as it has been introduced in newer `pytest-asyncio` v0.24
|
||||
# which is not in nixpkgs yet:
|
||||
# pytest.PytestConfigWarning: Unknown config option: asyncio_default_fixture_loop_scope
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace-fail 'default-version = "0.0"' 'default-version = "${version}"'
|
||||
--replace-fail 'default-version = "0.0"' 'default-version = "${version}"' \
|
||||
--replace-fail 'asyncio_default_fixture_loop_scope = "function"' ""
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "robotframework";
|
||||
version = "7.0.1";
|
||||
version = "7.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
owner = "robotframework";
|
||||
repo = "robotframework";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-pr7x40ja1DwMPffmXQ2W53g1wuD0p63f+6ATfXhqGvE=";
|
||||
hash = "sha256-nzkgJdSWbFcAnAqRTq4+Wy1lqdz+Xxf2i4RKnj/A5SA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
|
@ -15,14 +15,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "rotary-embedding-torch";
|
||||
version = "0.7.0";
|
||||
version = "0.8.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lucidrains";
|
||||
repo = "rotary-embedding-torch";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-QxCSJNcyouK5FvCnKiyD1ZtIEQ5DaDB/n+lUCjwAk+4=";
|
||||
hash = "sha256-oxlWx3cB+gsFwSre+e8e792Y012zOzhUrO0wxEwzrgI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -65,7 +65,7 @@ let
|
||||
# Additional cross compilation related properties that scipy reads in scipy/meson.build
|
||||
crossFileScipy = writeText "cross-file-scipy.conf" ''
|
||||
[properties]
|
||||
numpy-include-dir = '${numpy}/${python.sitePackages}/numpy/core/include'
|
||||
numpy-include-dir = '${numpy.coreIncludeDir}'
|
||||
pythran-include-dir = '${pythran}/${python.sitePackages}/pythran'
|
||||
host-python-path = '${python.interpreter}'
|
||||
host-python-version = '${python.pythonVersion}'
|
||||
|
46
pkgs/development/python-modules/thinqconnect/default.nix
Normal file
46
pkgs/development/python-modules/thinqconnect/default.nix
Normal file
@ -0,0 +1,46 @@
|
||||
{
|
||||
lib,
|
||||
aiohttp,
|
||||
awsiotsdk,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
pyopenssl,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pythinqconnect";
|
||||
version = "0.9.7-unstable-2024-09-09";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "thinq-connect";
|
||||
repo = "pythinqconnect";
|
||||
# https://github.com/thinq-connect/pythinqconnect/issues/1
|
||||
rev = "39d535a2a5d1067a110eea37ae92002d0793b7e9";
|
||||
hash = "sha256-+nQAUqg5rB2eJgPBJJR8NsQ1O2Wb4UsbBQVPir1jyAU=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
aiohttp
|
||||
awsiotsdk
|
||||
pyopenssl
|
||||
];
|
||||
|
||||
# Module has no tests
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "thinqconnect" ];
|
||||
|
||||
meta = {
|
||||
description = "Module to interacting with the LG ThinQ Connect Open API";
|
||||
homepage = "https://github.com/thinq-connect/pythinqconnect";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
};
|
||||
}
|
@ -57,7 +57,7 @@
|
||||
grpcio,
|
||||
}:
|
||||
let
|
||||
version = "0.15.9";
|
||||
version = "0.15.10";
|
||||
optional-dependencies = {
|
||||
huggingflace = [
|
||||
langdetect
|
||||
@ -100,7 +100,7 @@ buildPythonPackage {
|
||||
owner = "Unstructured-IO";
|
||||
repo = "unstructured";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-AJz7E/XBtsZtN0wQzA9Elk/gXPtkcrkN934OIc0MTYg=";
|
||||
hash = "sha256-Wgv7IcyYuOICYZDmj/jdkpSHx53ZXCR06952GmVEGOY=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -28,7 +28,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ydata-profiling";
|
||||
version = "4.9.0";
|
||||
version = "4.10.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -37,7 +37,7 @@ buildPythonPackage rec {
|
||||
owner = "ydataai";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-OZCgtnsLXLJ0m1t/mWqQTbFL8DPKaR9Tr7QCGT2HpvE=";
|
||||
hash = "sha256-uB8E7qp1xohAdcIIt1T2DxwSu93XhJoI8/qn54fSvGY=";
|
||||
};
|
||||
|
||||
preBuild = ''
|
||||
|
@ -10,16 +10,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "buf";
|
||||
version = "1.38.0";
|
||||
version = "1.40.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bufbuild";
|
||||
repo = "buf";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-BONfkSLQAnqKW/1PfMwK/DjAbLm5/i6V55SZDOF0rJA=";
|
||||
hash = "sha256-NctOr9eAOQr2pkPSYbFasU2D9PsPxRPZOAxVBJNw5NY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-NV5l7dlb05rRLtNe2cFvaC/G2rhZLY+DmVQcuyJU/08=";
|
||||
vendorHash = "sha256-n6SGBfelHNdpU5O1mMrre0D0B/2UEhX0fqepy1UDHlY=";
|
||||
|
||||
patches = [
|
||||
# Skip a test that requires networking to be available to work.
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "0.5.7",
|
||||
"url": "https://github.com/getgauge/gauge-dotnet/releases/download/v0.5.7/gauge-dotnet-0.5.7.zip",
|
||||
"hash": "sha256-VKs25WzS0UZAeCg91f/f6ZOGH28PulUvyDSc/dbJeoE="
|
||||
"version": "0.6.0",
|
||||
"url": "https://github.com/getgauge/gauge-dotnet/releases/download/v0.6.0/gauge-dotnet-0.6.0.zip",
|
||||
"hash": "sha256-xivSxTRs6yWfAR/ac/jLok3gcTobNu2a/vPGLwxt1Kk="
|
||||
}
|
||||
|
@ -8,15 +8,15 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "goperf";
|
||||
version = "0-unstable-2024-08-06";
|
||||
version = "0-unstable-2024-09-05";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://go.googlesource.com/perf";
|
||||
rev = "3f62151e343cbb54ce6f792b9e1661c4e4845651";
|
||||
hash = "sha256-3JjutGKWSywXEHPw7YhH42EEIAh7PL09m37LokgTpuc=";
|
||||
rev = "ce4811554b022ac27d024d355ad160e95079bec1";
|
||||
hash = "sha256-kJJod7Qma3++lrctezYltB9hV8/gH/CycHrk+GpOasE=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-dCyw9b7ZZHN//4Nhriw3b4Q5AQ3RWs+H/MtqIq5BvpA=";
|
||||
vendorHash = "sha256-VWywJ1LalYcfOQjrC0sLBfbQyIg8fYv4paMlIfa3RxI=";
|
||||
|
||||
passthru.updateScript = writeShellScript "update-goperf" ''
|
||||
export UPDATE_NIX_ATTR_PATH=goperf
|
||||
|
@ -5,16 +5,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "gosec";
|
||||
version = "2.20.0";
|
||||
version = "2.21.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "securego";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-QQD24Z755AurBFXZj/wlRBJegQ74kTvWVy2cN5PnblY=";
|
||||
hash = "sha256-0YSDeJEX7dAxIxW+dTiZtsieafzDRADggMBnJ3Sjjow=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-VWbsSS3j8zgsZQzsO/ZyKoOUqhNhmMmDICImUZHmC9Y=";
|
||||
vendorHash = "sha256-3O3uk/KB348++FAuH0WKTlqTK+RsDXkAXL3y4xud0r4=";
|
||||
|
||||
subPackages = [
|
||||
"cmd/gosec"
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "melange";
|
||||
version = "0.11.2";
|
||||
version = "0.11.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "chainguard-dev";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-OHIpMVXfuX5ezkDGsJIaFgsh5+YolJyap+i9jcUQch0=";
|
||||
hash = "sha256-+G6lSG3iaKWC1SU0cyeU1sU8r9VBUwwtU7D/yjZmu04=";
|
||||
# populate values that require us to use git. By doing this in postFetch we
|
||||
# can delete .git afterwards and maintain better reproducibility of the src.
|
||||
leaveDotGit = true;
|
||||
@ -25,7 +25,7 @@ buildGoModule rec {
|
||||
'';
|
||||
};
|
||||
|
||||
vendorHash = "sha256-X4jyLZATJIbTeL4moRrrJQ4B36tlUEfpK6SjBhlJTHQ=";
|
||||
vendorHash = "sha256-GNY1ez7qC2aaEm8WAQqGy4vWZEZFQhze15r3QQZBNzA=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
@ -52,11 +52,15 @@
|
||||
"version": "1.20.5-22"
|
||||
},
|
||||
"1.20.6": {
|
||||
"hash": "sha256-u9adg4SOJb3w7LBAzJiiJj2V7WbjvVEoqMhVL3v5lL0=",
|
||||
"version": "1.20.6-148"
|
||||
"hash": "sha256-hOFGBazDab9moLwJyy1wwymsLGzeHZhcRluXSHfMK6M=",
|
||||
"version": "1.20.6-149"
|
||||
},
|
||||
"1.21": {
|
||||
"hash": "sha256-BiD2eK6xWBogwZFiG0J8ELTw2G4YvwSVX9xE/5vcdY8=",
|
||||
"version": "1.21-124"
|
||||
"hash": "sha256-q5uxr8POppeKDAPOhEiqZU/oqcTd3zQefL2hsO2qc/U=",
|
||||
"version": "1.21-130"
|
||||
},
|
||||
"1.21.1": {
|
||||
"hash": "sha256-7nMJ/ePyaJxEOCKusg52ERnFtmPlW+Ilbz/Q8KKpJ0E=",
|
||||
"version": "1.21.1-69"
|
||||
}
|
||||
}
|
||||
|
@ -38,12 +38,12 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rabbitmq-server";
|
||||
version = "3.13.6";
|
||||
version = "3.13.7";
|
||||
|
||||
# when updating, consider bumping elixir version in all-packages.nix
|
||||
src = fetchurl {
|
||||
url = "https://github.com/rabbitmq/rabbitmq-server/releases/download/v${version}/${pname}-${version}.tar.xz";
|
||||
hash = "sha256-y6rHZpAhXVuO6sn18ZRvbG8qajTCVdE7iWkn+KXUhwI=";
|
||||
hash = "sha256-GDUyYudwhQSLrFXO21W3fwmH2tl2STF9gSuZsb3GZh0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip xmlto docbook_xml_dtd_45 docbook_xsl zip rsync python3 ];
|
||||
|
@ -19,13 +19,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "domoticz";
|
||||
version = "2024.4";
|
||||
version = "2024.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "domoticz";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-bIA7Dx8XV2zT2Cdm4CwKX6xfedBREhevE/bN76o4r78=";
|
||||
hash = "sha256-D8U1kK3m1zT83YvZ42hGSU9PzBfS1VGr2mxUYbM2vNQ=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "elasticmq-server";
|
||||
version = "1.6.5";
|
||||
version = "1.6.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://s3-eu-west-1.amazonaws.com/softwaremill-public/elasticmq-server-${finalAttrs.version}.jar";
|
||||
sha256 = "sha256-7VpalDKa2Qr3HaIO5LcORvm5rAhgYQzStQkp7rs3pMQ=";
|
||||
sha256 = "sha256-JSMxJBdYpYcBo/9wLY7QuQMEGlRF3hdVzVH2VMNT5b4=";
|
||||
};
|
||||
|
||||
# don't do anything?
|
||||
|
@ -12,13 +12,13 @@
|
||||
buildHomeAssistantComponent rec {
|
||||
owner = "mampfes";
|
||||
domain = "waste_collection_schedule";
|
||||
version = "2.1.0";
|
||||
version = "2.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
inherit owner;
|
||||
repo = "hacs_${domain}";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-BRxBZecOg8R4yF1lVEfOWMmuYK4JQ1ORsY4bclVYOow=";
|
||||
hash = "sha256-XzHShFM0H8F/erc/XiCMDotCfN/JJoO5SWX+O9Fqxkw=";
|
||||
};
|
||||
|
||||
dependencies = [
|
||||
|
@ -18,11 +18,11 @@ let
|
||||
'';
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "keycloak";
|
||||
version = "25.0.4";
|
||||
version = "25.0.5";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip";
|
||||
hash = "sha256-Pj8+0bfYnHhkYIDQkePpsmbYb6MN4BI+2VLLdZv3C1Q=";
|
||||
hash = "sha256-2PEQjdz+r/qRJxlu0jI2watkNOUkf4bUCkcNPrLsaMg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper jre ];
|
||||
|
@ -8,11 +8,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "questdb";
|
||||
version = "8.0.1";
|
||||
version = "8.1.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/questdb/questdb/releases/download/${finalAttrs.version}/questdb-${finalAttrs.version}-no-jre-bin.tar.gz";
|
||||
hash = "sha256-S6i6XLxFpIxYAlxCu+MAznMLkBWvp8QVxged+rYCWT0=";
|
||||
hash = "sha256-mqfL+boSCxktYT8pTq15i8bJL48ZxKmm1ygtBIhs0wg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -16,13 +16,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "owntracks-recorder";
|
||||
version = "0.9.7";
|
||||
version = "0.9.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "owntracks";
|
||||
repo = "recorder";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-KDImoIUAkjCa4O++F9LdDN+i8VoC78g8644Rhbpy+mc=";
|
||||
hash = "sha256-h+hjcaa+Ooa8gErjzfX+p+S24fbnCOtjfliFWVj73dI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
4
pkgs/servers/search/qdrant/Cargo.lock
generated
4
pkgs/servers/search/qdrant/Cargo.lock
generated
@ -471,7 +471,7 @@ checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
|
||||
|
||||
[[package]]
|
||||
name = "api"
|
||||
version = "1.11.2"
|
||||
version = "1.11.3"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"common",
|
||||
@ -4561,7 +4561,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "qdrant"
|
||||
version = "1.11.2"
|
||||
version = "1.11.3"
|
||||
dependencies = [
|
||||
"actix-cors",
|
||||
"actix-files",
|
||||
|
@ -13,13 +13,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "qdrant";
|
||||
version = "1.11.2";
|
||||
version = "1.11.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qdrant";
|
||||
repo = "qdrant";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "sha256-ngDxabfs5cPu04Hn1V10qF1ryi100jzp5MmvPrkOD3k=";
|
||||
sha256 = "sha256-Mq8669+feSXWHofCU/qMk1kWa3uNuMX3kwCO/tFHr2A=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ lib, stdenv, fetchFromGitHub, autoreconfHook, makeWrapper, perl
|
||||
, ffmpeg-full, imagemagick, xdpyinfo, xprop, xrectsel, xwininfo
|
||||
, ffmpeg-full, gawk, imagemagick, xdpyinfo, xprop, xrectsel, xwininfo
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
|
||||
postInstall = let
|
||||
binPath = lib.makeBinPath [
|
||||
ffmpeg-full
|
||||
gawk
|
||||
imagemagick
|
||||
xdpyinfo
|
||||
xprop
|
||||
@ -30,12 +31,12 @@ stdenv.mkDerivation rec {
|
||||
wrapProgram $out/bin/ffcast --prefix PATH : ${binPath}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Run commands on rectangular screen regions";
|
||||
homepage = "https://github.com/ropery/FFcast";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ sikmir ];
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ sikmir ];
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "ffcast";
|
||||
};
|
||||
}
|
||||
|
@ -19,16 +19,16 @@ let
|
||||
};
|
||||
in buildNpmPackage' rec {
|
||||
pname = "balena-cli";
|
||||
version = "19.0.1";
|
||||
version = "19.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "balena-io";
|
||||
repo = "balena-cli";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-RJFOYNzaYfx1pEaHYOOnXxG4S9ygI4LX1wcg0yt4JNw=";
|
||||
hash = "sha256-6odzj7/twhSJFxX2kbKbEOjzyZHjrg6Dd8d3LDtSzNU=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-Z6hAq1rdYlpNLhJ+JIU3Aqgv1yHhWeV2IHkP7h1AOpk=";
|
||||
npmDepsHash = "sha256-IWd3E6bjy5cQ4VsDV/zHyehxxINUsDEy3pKVfSWVpKU=";
|
||||
|
||||
postPatch = ''
|
||||
ln -s npm-shrinkwrap.json package-lock.json
|
||||
|
@ -1,44 +1,44 @@
|
||||
# DO NOT EDIT! This file is generated automatically by update.sh
|
||||
{ }:
|
||||
{
|
||||
version = "3.130.0";
|
||||
version = "3.131.0";
|
||||
pulumiPkgs = {
|
||||
x86_64-linux = [
|
||||
{
|
||||
url = "https://get.pulumi.com/releases/sdk/pulumi-v3.130.0-linux-x64.tar.gz";
|
||||
sha256 = "1rnm2p7c52xzlf527ywpywbss1j43xl7mb0dxyyal5wh3vx5251d";
|
||||
url = "https://get.pulumi.com/releases/sdk/pulumi-v3.131.0-linux-x64.tar.gz";
|
||||
sha256 = "06gzn2vbjmv4gljm7ar90hxm47ap2izhlr6whff7jrsrkvf71n54";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.23.1-linux-amd64.tar.gz";
|
||||
sha256 = "1dd5s4d07qlcikcc7m4yh41085diciq25md4g2m1n6wfy629sllv";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.3.0-linux-amd64.tar.gz";
|
||||
sha256 = "0ra89zi6ka0d9szgd0i4vlzw5wzvg9da5pi1ns3bf7kwv0mrxdmc";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.4.0-linux-amd64.tar.gz";
|
||||
sha256 = "1ckk20g77lwgg5v4baai0w6cvw9zapf31jy42lm9l3qnzx61fm6r";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.61.0-linux-amd64.tar.gz";
|
||||
sha256 = "1mmsff6xmxhrd6ymbwzw2mirks3fczcdaw7hcn8nqx3n1vp62xsb";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.61.2-linux-amd64.tar.gz";
|
||||
sha256 = "0f8xh0hqvfpqj9rzyj46kzk2ilna6r0s577bq03vd50p97slqs18";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v7.7.1-linux-amd64.tar.gz";
|
||||
sha256 = "0pzl2d40lpr90vlr36nmsczdic91j74fm4x3517sdyzkhyb2zrmq";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v7.8.0-linux-amd64.tar.gz";
|
||||
sha256 = "1j87gqk46kdpbbzfjd7vfgq7f0yma1w66ygmh42f259hplaj0c33";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.5.1-linux-amd64.tar.gz";
|
||||
sha256 = "0zmq1i31b7kyasw5za652j5kmfr7fqwzcjkgvpxz0yhkm33k2rcg";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.6.0-linux-amd64.tar.gz";
|
||||
sha256 = "0ypabr7slayhy1kpiikx6pwfx89ibcvwz21kagf4zm3idrrv47kl";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.50.1-linux-amd64.tar.gz";
|
||||
sha256 = "1v2imk3w74ayglys7pqs881wp01sbp749d4zaxa60kbxmjwx80nc";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.51.0-linux-amd64.tar.gz";
|
||||
sha256 = "0grarc3ri7k9kvr8hb96id9r5sryyp0hymr2qv4ldm53wyzw3zxd";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.53.3-linux-amd64.tar.gz";
|
||||
sha256 = "0yzv3xyijma1sxvilf1bgqcc3d0hdcx6pfpzw2s0fix7pi25qszn";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.2.0-linux-amd64.tar.gz";
|
||||
sha256 = "02v61pqpsxj652937rm7fwdr0612cq157g8wxkah27cxyyyf6qzq";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.3.0-linux-amd64.tar.gz";
|
||||
sha256 = "1m7pif65wv083zvfxdyc3bpq7dyv4whpqi9k9p8d9gb7zn93piz8";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.89.0-linux-amd64.tar.gz";
|
||||
@ -53,12 +53,12 @@
|
||||
sha256 = "1b5iyp0rld41mpin4w297p6q17kb3ya9sv5rsfg9iqwpbsz5c0vf";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.32.1-linux-amd64.tar.gz";
|
||||
sha256 = "14pmkyxlmqy7fpj305kp3khjs6r7zg12s0v9f1gl3gml9zfq5nhy";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.32.2-linux-amd64.tar.gz";
|
||||
sha256 = "1r9flwh8sbnls78xsl64kfh7i29i2y3nm19jbhwjr8lmgnq5p2f4";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.31.0-linux-amd64.tar.gz";
|
||||
sha256 = "0v5cj9gf63s79crbzs0a32wr8w450z2pzlm3m4njgxnklw3l57r3";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.31.1-linux-amd64.tar.gz";
|
||||
sha256 = "1fy4cykm8ad2933zgf085xdbbd3ifyf9hrf0dnb5j8yn27g4svn7";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.5-linux-amd64.tar.gz";
|
||||
@ -69,20 +69,20 @@
|
||||
sha256 = "0hnardid0kbzy65dmn7vz8ddy5hq78nf2871zz6srf2hfyiv7qa4";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.10.0-linux-amd64.tar.gz";
|
||||
sha256 = "1jxklrzfkig8b1snhr1jz341pqhp6q17bnhm3q3zvg0ql69sl7p8";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.11.0-linux-amd64.tar.gz";
|
||||
sha256 = "1qjcw8hrn9q3k4dzfhbjychzvv3cklf33daq60rsfk62qny5rdva";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.38.0-linux-amd64.tar.gz";
|
||||
sha256 = "1knjxddn118zzcmn3srgq5a7qfxd49zdqg9ki4w6gg5qnpisdk0s";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.3-linux-amd64.tar.gz";
|
||||
sha256 = "17mfi8q10dvajh6dwahd05yral1mc5x5m2khy77mrmbxq4ivi219";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.5-linux-amd64.tar.gz";
|
||||
sha256 = "11d0fmh3r0j4zh4ps192zvbwpsln5alpra9nkxrfk8ksp8kvhcp7";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v8.3.0-linux-amd64.tar.gz";
|
||||
sha256 = "10cyc1zxl70wfyq9j15804wh1sn95jr248p5n0vmlikfq9j1qwrw";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v8.3.1-linux-amd64.tar.gz";
|
||||
sha256 = "0c454vzi55b272rbhpwy9bwrdlyip16fa5775rdlnp6zrwqxwzfs";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-linux-amd64.tar.gz";
|
||||
@ -97,16 +97,16 @@
|
||||
sha256 = "1zvspswy3lmjpwpw35xxpkssv28sapwcv52lxiam57vcr9rbyi5g";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.25.0-linux-amd64.tar.gz";
|
||||
sha256 = "1hvknh3xsvnk19ihavi3b6pp33172bc60s1k0p11mr5v608xcgbi";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.26.0-linux-amd64.tar.gz";
|
||||
sha256 = "1y5a624zkig2n3hsdyrjb535npr8hcfxj6rifijk6m9zf4nywjni";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.4-linux-amd64.tar.gz";
|
||||
sha256 = "0jl1nnvnj647rk001gakwdc09a58jc6i9g3x7mp5b6ywg46gjvqy";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.5-linux-amd64.tar.gz";
|
||||
sha256 = "0nchp2xi6kbrkym16688dszihln68hnj5v1ilw027d40swj4xdv5";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.5-linux-amd64.tar.gz";
|
||||
sha256 = "1vl57mjz23krcp7801q5v2vb64daxpyqpas57y8hxvi5np7qnpk4";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.6-linux-amd64.tar.gz";
|
||||
sha256 = "0p9lcq04nml7rcpd7kpciqcw2y1fb5igmq6k71mghz080y3d3s3y";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.1.3-linux-amd64.tar.gz";
|
||||
@ -117,28 +117,28 @@
|
||||
sha256 = "13s88q8ibd2sb0ly4z4mbj785jv0hclvh0prccsvkq8zbyg91vv1";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.3-linux-amd64.tar.gz";
|
||||
sha256 = "0byfb2zjymwmgd52wfk1xhp1llw6b4hniwa4faf66fmpr2i157nd";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.4-linux-amd64.tar.gz";
|
||||
sha256 = "0q2ajdbywq2s3ss7iqhv3iwjf0vqiw6ydyw059k606h0jr3x6dgr";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.57.2-linux-amd64.tar.gz";
|
||||
sha256 = "1h2kql44fjq6vv2a3pvvnx78sil6jgwm792qmrvh7gqrad0dd050";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.89.0-linux-amd64.tar.gz";
|
||||
sha256 = "00vz0m84bpzqj0r50n0h5w896vhapf275rs8xd5kmmwfnaijgj4r";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.90.0-linux-amd64.tar.gz";
|
||||
sha256 = "1jp70a089k3kgyqqvywyy3x7iwwsnng4qb17m4p624y4xhfgy512";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.23.2-linux-amd64.tar.gz";
|
||||
sha256 = "0h9hb51h5fjsnf3lcyik77sb1mw070h7p4drnm6f8rjkg5jy1q7i";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.23.3-linux-amd64.tar.gz";
|
||||
sha256 = "10d34620hkdqmflb24gs8hapf5apb45ribw695xz9pdwkhqrd3wp";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.2-linux-amd64.tar.gz";
|
||||
sha256 = "03y02rcy2xarvb4v33wxqf2qcy71amc9f6j6h406c8w8dnlaa9c3";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.4-linux-amd64.tar.gz";
|
||||
sha256 = "0rx05a9mdlv9yfsf6pi0ccdv7zfp7kgrj5zhfjagbk8x04cnygrz";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.5-linux-amd64.tar.gz";
|
||||
sha256 = "1931a27h7jbsiy5addq93j8rnsk9gys9jq76w04mwx1fmlzm78j9";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.3.0-linux-amd64.tar.gz";
|
||||
@ -149,8 +149,8 @@
|
||||
sha256 = "11g44ngbz4yar22flz6l1qxsjrjh1ks0fihln0g2b2da9n24v251";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.10.3-linux-amd64.tar.gz";
|
||||
sha256 = "1vz95rml45mbmrma6iaga9gfnnfixkyxkjsrp28l0nz9bqvknkkl";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.11.0-linux-amd64.tar.gz";
|
||||
sha256 = "1i2r83yfzh7ivvd15198czr6g9ry28pvz49a0rz9fy29rkggxhqs";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.3-linux-amd64.tar.gz";
|
||||
@ -163,40 +163,40 @@
|
||||
];
|
||||
x86_64-darwin = [
|
||||
{
|
||||
url = "https://get.pulumi.com/releases/sdk/pulumi-v3.130.0-darwin-x64.tar.gz";
|
||||
sha256 = "1lm3xk68fpa420bj10jhp1nim5mnd263pqprchaz1racc0f2pq72";
|
||||
url = "https://get.pulumi.com/releases/sdk/pulumi-v3.131.0-darwin-x64.tar.gz";
|
||||
sha256 = "0pl3wd2y7mkap7jq29bmbw1ipc2qf149xixriad2wk87sr6swgak";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.23.1-darwin-amd64.tar.gz";
|
||||
sha256 = "0338m5b1c2lffg6xx6zv1dnawwyq3vqvgfmm43c2pklrwwka89v6";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.3.0-darwin-amd64.tar.gz";
|
||||
sha256 = "1d1famsg3pg69300vl5rifjbcvf5linajgwn5hi3wiwrszk2fcg7";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.4.0-darwin-amd64.tar.gz";
|
||||
sha256 = "0l34kaa1x2sbalx0dannmmysr1ai8bh2z6x0lzg1iwxhr6fdvl3a";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.61.0-darwin-amd64.tar.gz";
|
||||
sha256 = "0w8bhizga9fwvrl06yn1lp1vjwbscm65pr9md63vx0cabq9niz8g";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.61.2-darwin-amd64.tar.gz";
|
||||
sha256 = "1lhp3wsa47a9r1zh6p4173gzhs0z5yzbzlr8wiqgkpn5ifsnl44a";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v7.7.1-darwin-amd64.tar.gz";
|
||||
sha256 = "1fks67b7dc2qmxjiyai9sg8iryw27yn1ixs5kwjhk1ra077x52h0";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v7.8.0-darwin-amd64.tar.gz";
|
||||
sha256 = "1nmarzx8s506g9559wa1l8bmhaxhplh515r74jkibnfhgj79fckp";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.5.1-darwin-amd64.tar.gz";
|
||||
sha256 = "02crpv9wdx4dim14lz1n8wqp9yzf8im8sfj85ynydjd8nv076a6s";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.6.0-darwin-amd64.tar.gz";
|
||||
sha256 = "16v1mr4h5cd0yj1nbm56pajp7nh386y79jpi1j0vvclhv4g11gli";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.50.1-darwin-amd64.tar.gz";
|
||||
sha256 = "0x0slash3mmawjsjf9c33m85w27g1991a003k0zmns633n53ycwp";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.51.0-darwin-amd64.tar.gz";
|
||||
sha256 = "1x333757814q95ixbmkzk49lhkfvsw9xnjpgnnx8f6325x331hy1";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.53.3-darwin-amd64.tar.gz";
|
||||
sha256 = "16vkx1cnfzwyzsk7f9f794p6mg1ny8g5qxiy0825gd0prf8dzdm5";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.2.0-darwin-amd64.tar.gz";
|
||||
sha256 = "1xranra0rkcnvahna4jrb091jy23sgk9ib92dbzl2gw26yj6x9gx";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.3.0-darwin-amd64.tar.gz";
|
||||
sha256 = "0zib88z73ha81isxajkwjbigl2f51dj1d7zwvk2ic9qwvrimvb2m";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.89.0-darwin-amd64.tar.gz";
|
||||
@ -211,12 +211,12 @@
|
||||
sha256 = "1bgq98jiaqhvgbywvydpkif154k6rlzk0sqn55bj0ng9f04vz2ka";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.32.1-darwin-amd64.tar.gz";
|
||||
sha256 = "1ps5439lxrm1jx4hancdnxks21d0yrkzj3g6y9i20z0pw1ssjpzp";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.32.2-darwin-amd64.tar.gz";
|
||||
sha256 = "0h0nng26467yq12w3jhkbbs0629d6a6mxigxmhfca9w3dzrmkw8h";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.31.0-darwin-amd64.tar.gz";
|
||||
sha256 = "049l8287a9rmrr2ypywycnc36g8jhkx37swqkklw1qp1az4cl2k8";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.31.1-darwin-amd64.tar.gz";
|
||||
sha256 = "1wvzw476njjpa2k9rb8wsgng6xv3fc626zmc2zw318502y0r5h95";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.5-darwin-amd64.tar.gz";
|
||||
@ -227,20 +227,20 @@
|
||||
sha256 = "1m5lh59h7nck1flzxs9m4n0ag0klk3jmnpf7hc509vffxs89xnjq";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.10.0-darwin-amd64.tar.gz";
|
||||
sha256 = "18l2ppzkypfrghmj2y2jypp0wkry5myp5vmlr3ckfwbsd81z4w3g";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.11.0-darwin-amd64.tar.gz";
|
||||
sha256 = "0c77zq6dkcbwx41yg3ziknzgf4snb1xfy1q2hz3668virjwkxsli";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.38.0-darwin-amd64.tar.gz";
|
||||
sha256 = "1gf871rl8kzxmfmmcnm6rzjx03gcv0w208jd80v8b5ic9k0wrxq9";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.3-darwin-amd64.tar.gz";
|
||||
sha256 = "03bi0qigh3rxw1cd2lyp8gp865vrxif1w85nc46sjprsxk8a1dv4";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.5-darwin-amd64.tar.gz";
|
||||
sha256 = "14mmh98wjlpkqdkcsqc58hixf2gkdlvqzjj6cx2gg1h8cyg6qnqj";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v8.3.0-darwin-amd64.tar.gz";
|
||||
sha256 = "0dnfmprrhlqr5bapw7a09yd1c0npnsdmfy5v2aahm5pjmmj0labc";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v8.3.1-darwin-amd64.tar.gz";
|
||||
sha256 = "1f4wspm6h1a7qwy8wf0akbjvjj7di9a38my4ni9x4dw4hv87bmyq";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-darwin-amd64.tar.gz";
|
||||
@ -255,16 +255,16 @@
|
||||
sha256 = "170fh5nyjxc3ayk0yfpv0ypck65rmdgy8p4p90v2i7mq7b6fs53z";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.25.0-darwin-amd64.tar.gz";
|
||||
sha256 = "14qd7r56q668w6qdb86cav2b56hc4vkg3sk7gc8av6zcg3wy7d8f";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.26.0-darwin-amd64.tar.gz";
|
||||
sha256 = "1qdmzw9pnjc7inpfcqcsn4426dhwrl5x06bcnw9mcjkigli0cr22";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.4-darwin-amd64.tar.gz";
|
||||
sha256 = "1v5kblswsaqcj8d7i15nqqsrmcdv4kgg9l7v23s1ggipk4bwjzjg";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.5-darwin-amd64.tar.gz";
|
||||
sha256 = "0w956b6hlacsnpi30frnxj5a389znj1bkryagv2mcmc0ci8zpy0m";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.5-darwin-amd64.tar.gz";
|
||||
sha256 = "1a7gd4vbkvbmk2870xc2dgkq6dd4bvcmdcrkny51m2bcns94b2xl";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.6-darwin-amd64.tar.gz";
|
||||
sha256 = "0d4n0gg9qc5f4vpid3za3mzp8yd8saz8akjlli992cql278w10jl";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.1.3-darwin-amd64.tar.gz";
|
||||
@ -275,28 +275,28 @@
|
||||
sha256 = "09bdp7khxcmary0jiis921hdrakdz1ywzmz9byn4hfx0r6iajbpl";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.3-darwin-amd64.tar.gz";
|
||||
sha256 = "0xfqi33x1crkvqdl3iqq1i7vky2s3v36fyb1adrn6067mbd7dgxj";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.4-darwin-amd64.tar.gz";
|
||||
sha256 = "1gcl5pahm54rkfxny11wqc36kn848cgqzji6kn8iz82wwg2sq68v";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.57.2-darwin-amd64.tar.gz";
|
||||
sha256 = "01g19rm8272n6yzm7a1dyj2xr6f6xvgi0d962aw66sjhq4jc0s1h";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.89.0-darwin-amd64.tar.gz";
|
||||
sha256 = "07sgpj1aa6sfnsglfgh92hg5ai7mx9s6vhls2xsxxmqi0kyklx7c";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.90.0-darwin-amd64.tar.gz";
|
||||
sha256 = "10x5j64dwvjvzmhv0991jsp8737v770hnyq9k99k3v0wi8fpsjfi";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.23.2-darwin-amd64.tar.gz";
|
||||
sha256 = "0di85gf7rjg7z1rckqp6ff5jsrc1ng1sihwkpgiv2w9wxhxrh333";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.23.3-darwin-amd64.tar.gz";
|
||||
sha256 = "0791x9j63kq8cbh2gmgsmbaim6067df3i164kiwpm4y1l38f8yf6";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.2-darwin-amd64.tar.gz";
|
||||
sha256 = "0sr9a8zgfvhyr9993pmfddiw92c2m6v5wiafpd0p5hfzf99n5l8c";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.4-darwin-amd64.tar.gz";
|
||||
sha256 = "0zqc8iwzgg5aw03sbgcmpi3s0dffya7c8qx2ncxjvq1hcdhzsyj7";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.5-darwin-amd64.tar.gz";
|
||||
sha256 = "09454zh11wd9fra7x2dcyhy7ihs5chw5fy0ii376y4flj1gbx0j7";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.3.0-darwin-amd64.tar.gz";
|
||||
@ -307,8 +307,8 @@
|
||||
sha256 = "1g164xrj9nkdjw9pw08y24vzhg25f8h5702rfjsk0s2z011g86p7";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.10.3-darwin-amd64.tar.gz";
|
||||
sha256 = "1i2sb6nrglx1ixpg4l34zvblvs2sjzxsfzwb19d0v81lvadii1ck";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.11.0-darwin-amd64.tar.gz";
|
||||
sha256 = "12jsdnn5az8qhmak0i57k28w57nm0a0pmlpz81as47mffdkadjkr";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.3-darwin-amd64.tar.gz";
|
||||
@ -321,40 +321,40 @@
|
||||
];
|
||||
aarch64-linux = [
|
||||
{
|
||||
url = "https://get.pulumi.com/releases/sdk/pulumi-v3.130.0-linux-arm64.tar.gz";
|
||||
sha256 = "05zhw333cmk5hqfk6q28ny9qc5jqyi5nxqfrhl1bd7vhnflnc7df";
|
||||
url = "https://get.pulumi.com/releases/sdk/pulumi-v3.131.0-linux-arm64.tar.gz";
|
||||
sha256 = "1mvi1z851yzhdmxaxq03vg309x1hkniky3fkiz4k1qfwxrnqjpji";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.23.1-linux-arm64.tar.gz";
|
||||
sha256 = "1hzxmw420rzlka6wvr9b7gljyxdngbff4bcpdsaj6672isl2zy5v";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.3.0-linux-arm64.tar.gz";
|
||||
sha256 = "0zpcz79ca84lhccg2ivr442hr2gfmx7826rmw0ppnyi5cna1wvkr";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.4.0-linux-arm64.tar.gz";
|
||||
sha256 = "1ldlxsnpjkdqh2xdfl56wgq9y94vaigc5i3q6cz682094fwhmw42";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.61.0-linux-arm64.tar.gz";
|
||||
sha256 = "1s5240phmjcn2p4li5b45ngf3vh4fkdb3qj3357bys9pwxiv1hlj";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.61.2-linux-arm64.tar.gz";
|
||||
sha256 = "140rl0kxlk81xdn3k6alyyy5skkbdidfyr6522dl2yqj0bxgmkl0";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v7.7.1-linux-arm64.tar.gz";
|
||||
sha256 = "01wmhkar9a8m8p16plz0cnb8m9fqb1kp1sjx2j655mmgg9y1v4rw";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v7.8.0-linux-arm64.tar.gz";
|
||||
sha256 = "0w8c2vxfmwpcy1f6lbi8d7hahq3sbzpw1ivsb9n8864lin5iycry";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.5.1-linux-arm64.tar.gz";
|
||||
sha256 = "19f2602l99ilvmfzp8vv1crq6i7zc0fjm83mm0wid8dbgqv0fsf5";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.6.0-linux-arm64.tar.gz";
|
||||
sha256 = "157vh8jgkqyydpic63qpwsqp469rjxakld4sd671lr6lqz234pwm";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.50.1-linux-arm64.tar.gz";
|
||||
sha256 = "0wch7d6zh7lsxpdc0aynqi5rj0bf41xv3dlbi3sj0p3ld24b5vgs";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.51.0-linux-arm64.tar.gz";
|
||||
sha256 = "1jmqgajpi4771qp282p3rjaawnl5kcm4k63j41771nh69siyj0ib";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.53.3-linux-arm64.tar.gz";
|
||||
sha256 = "0p16833m7igpz7b6p05clcf6qk5jj10iqrdm8wkdj7zv9q1v60hk";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.2.0-linux-arm64.tar.gz";
|
||||
sha256 = "03rvhz2zbjdldlp3c1335cbp2b8c3y3p88czwsfy6dsd9hry8fsa";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.3.0-linux-arm64.tar.gz";
|
||||
sha256 = "08hd9b9vbbcx15bpb7vlrsjkw9ak7sjarqlxv4sx1fzys682nwra";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.89.0-linux-arm64.tar.gz";
|
||||
@ -369,12 +369,12 @@
|
||||
sha256 = "0j53qafafq8s4rxds8anrsyylyjx6gd3jhrz16zqs4hcxwiimcfp";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.32.1-linux-arm64.tar.gz";
|
||||
sha256 = "0b9mvqzd9zyz11ih3f1vlm96ijf0ij91y15qgsljplyi67kjsn2a";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.32.2-linux-arm64.tar.gz";
|
||||
sha256 = "0kzsxb0kifxl8yvkssryic9jaqmyhxkxhvxna5d3zivawmy1hbil";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.31.0-linux-arm64.tar.gz";
|
||||
sha256 = "10am0w1q60whmrzrm3hmyxgmg4i1b6m45syy3qhvr8xx0af3p9wi";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.31.1-linux-arm64.tar.gz";
|
||||
sha256 = "0m02qhcfddwkxpyvhn7m8gs3g7wbn6hv47ywkjifxs4wxq11b0vn";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.5-linux-arm64.tar.gz";
|
||||
@ -385,20 +385,20 @@
|
||||
sha256 = "111pia2f5xwkwaqs6p90ri29l5b3ivmahsa1bji4fwyyjyp22h4r";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.10.0-linux-arm64.tar.gz";
|
||||
sha256 = "0fx4rh8s8fdxllnk9i8yhwg8winh48ggw45px7jjxwnpd8g537fa";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.11.0-linux-arm64.tar.gz";
|
||||
sha256 = "1rpcrwvs7c9h5g02j0lp8wfqxk2n2cizaa79l7vpnl1n2rm5fp37";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.38.0-linux-arm64.tar.gz";
|
||||
sha256 = "0rcj1lc5d65m36q712a4ic87443cpb5fvk04wqcnmicybgrfyhnl";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.3-linux-arm64.tar.gz";
|
||||
sha256 = "1n8ndwfb1ckarjd2wqgyyx7xxklxwglrvw473c4w8vpr2dmsrsyb";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.5-linux-arm64.tar.gz";
|
||||
sha256 = "0kyalnvdvr8s7fpikrpngwjnajbvvsii9dw30wky1gcl0584zggn";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v8.3.0-linux-arm64.tar.gz";
|
||||
sha256 = "06fs1jvyrqb7jbgc0b6vaqvbfc1s63py0llr46kvk6ynlb8m1apm";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v8.3.1-linux-arm64.tar.gz";
|
||||
sha256 = "1vrnss7x1bcvx5f4mirvhqvi15dw3w0bylbgpk7imsaazv6ylfyz";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-linux-arm64.tar.gz";
|
||||
@ -413,16 +413,16 @@
|
||||
sha256 = "07kv3nqbfdah4i82pb8q83swr726q0bkx8wr6wwy168nff6zs98l";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.25.0-linux-arm64.tar.gz";
|
||||
sha256 = "05zy4chm6fs7h7szi23k8bi4ki4x0nai3zhfkxjpcm6b63dvvwgl";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.26.0-linux-arm64.tar.gz";
|
||||
sha256 = "0yibsz34larfka6m4lxbsgk9kwcai8x904aqhwfl9hhl54wklyhn";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.4-linux-arm64.tar.gz";
|
||||
sha256 = "11a8sm8z9zih5i4kcw5mvh18qc3x4rzln1nyhgknymymyqc4wqyp";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.5-linux-arm64.tar.gz";
|
||||
sha256 = "1x3ayikdv1sdm72bmxhg55r4xbwmpjjhim30ajqid9fhq2c7zl1j";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.5-linux-arm64.tar.gz";
|
||||
sha256 = "0krvvhm842lkxa14xfpkk2b1namgxnk3y6n5lcvhsnswga10r2xq";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.6-linux-arm64.tar.gz";
|
||||
sha256 = "0g7fqm5z6msf7c0qh60f137qq7i1s103b64lbvjn06qms2xkd6x3";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.1.3-linux-arm64.tar.gz";
|
||||
@ -433,28 +433,28 @@
|
||||
sha256 = "1gmcqk0ddfa5zfmhqv32vl1x5shmr80pik8da2g96y3mvfjbicpp";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.3-linux-arm64.tar.gz";
|
||||
sha256 = "064x91jvbqj142rkyphvwwds71i347nifv5akak35lf0ha4v57hw";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.4-linux-arm64.tar.gz";
|
||||
sha256 = "1d8qb9n96c536s3qbf82k9jjpvgi5lryywli7jlfjqz98bwwr8dm";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.57.2-linux-arm64.tar.gz";
|
||||
sha256 = "0ainz86d5bcslk4yyyw6qsqnjhw2myirlkb22l0ldfpg85j4gbnm";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.89.0-linux-arm64.tar.gz";
|
||||
sha256 = "1libjf55fr78zb3c7krkp2azvnrxznml4chss7lhmgjl6fhbla4y";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.90.0-linux-arm64.tar.gz";
|
||||
sha256 = "0frpkch4nmkjcmkdp9iv35d6nj6n7188wqcnq4wi9hjchvz03ngx";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.23.2-linux-arm64.tar.gz";
|
||||
sha256 = "19mrlxyl63m9c7albhszd9ikklm29k8s465cp0bzkrwawy6nn3yy";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.23.3-linux-arm64.tar.gz";
|
||||
sha256 = "14hsny87inyvays04khhan9kg0a0kfi2x085yrqs6cy8pnshx29w";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.2-linux-arm64.tar.gz";
|
||||
sha256 = "08f5yqxf0vgidcmwrzq8scdbd2h4wdz226l87h8rxpzssj56lpls";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.4-linux-arm64.tar.gz";
|
||||
sha256 = "1868473rk41dhl2gxabg6bin8m9c1lzs52wmcbpjrn91wb8pyz7v";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.5-linux-arm64.tar.gz";
|
||||
sha256 = "0d1hnhfk3mxsw57y8k4pbrsimdkd7pibc77gspmhz16r1mvwavmz";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.3.0-linux-arm64.tar.gz";
|
||||
@ -465,8 +465,8 @@
|
||||
sha256 = "0jkjbsdmsc50jwv9rr40s0hlhwyhljwz95s5ll28xmmk413jkpfr";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.10.3-linux-arm64.tar.gz";
|
||||
sha256 = "19ca2rcf3xmjsrii846lvgkhclgqk5mckwm6agvmfyl8qzlaqxyc";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.11.0-linux-arm64.tar.gz";
|
||||
sha256 = "0b42ym6ypaz1qrjgh1bpgadm1b2vjcj6wxqs1af81hjcwdmqnmn0";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.3-linux-arm64.tar.gz";
|
||||
@ -479,40 +479,40 @@
|
||||
];
|
||||
aarch64-darwin = [
|
||||
{
|
||||
url = "https://get.pulumi.com/releases/sdk/pulumi-v3.130.0-darwin-arm64.tar.gz";
|
||||
sha256 = "11afqpra94wcpj86ndk92m24s8z71bn4iwki82zmhwdc1im61h9w";
|
||||
url = "https://get.pulumi.com/releases/sdk/pulumi-v3.131.0-darwin-arm64.tar.gz";
|
||||
sha256 = "01ysc776ng4gdi9vaa7am0a9n49wakkbwq6r2bj5avn0v95njrqa";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.23.1-darwin-arm64.tar.gz";
|
||||
sha256 = "1jms955rhkw8babbbdkniic3qqc1g7jsddp322c5di2x4863qs2x";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.3.0-darwin-arm64.tar.gz";
|
||||
sha256 = "12954vrf9fjjynrzgj8qm34bl258v4fdvvzyi0m8wp92rsp4icjq";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.4.0-darwin-arm64.tar.gz";
|
||||
sha256 = "0nwb4w5y5nyz8a9marqln338mhxgj49iw2br5p7rksfw0xcv3a4x";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.61.0-darwin-arm64.tar.gz";
|
||||
sha256 = "042k66xnzgljy0kbjcrg71a61kgfy6cyh3x6b3llsmih17036fy4";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.61.2-darwin-arm64.tar.gz";
|
||||
sha256 = "0yhy5ci5qxx4xnv16jav68b258ancjc8iqybk1xifhixf8vyxcr7";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v7.7.1-darwin-arm64.tar.gz";
|
||||
sha256 = "1y3ama1495zmnx3nyb0c8f9h59z9kcjkwm90wcxggvxl6bjgx9ld";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v7.8.0-darwin-arm64.tar.gz";
|
||||
sha256 = "1vz4qrf5nn17h9qlrnq1gb9q2km7zcl2bwa36bhfbm0h9rh2b52k";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.5.1-darwin-arm64.tar.gz";
|
||||
sha256 = "151720nbxn6rrbvm1zawxc5xmlfadqgck2cmjgmj6z6qgd8zm6dv";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.6.0-darwin-arm64.tar.gz";
|
||||
sha256 = "0rcxkkjxc7prywjj7hpsr4dvvxd70hvp2widqwfa1s4lg7gcbfi7";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.50.1-darwin-arm64.tar.gz";
|
||||
sha256 = "1rvx92x8d5qgwp5bvn03j2s424bd4yhhsivl1nbd5sd7wgzmfp3x";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.51.0-darwin-arm64.tar.gz";
|
||||
sha256 = "1qlhjwv6b1vad4i77i7xq6pp92v292i5aj4wjc1k0hsb2xsizs5v";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.53.3-darwin-arm64.tar.gz";
|
||||
sha256 = "13r7yzgj4lbsvsw9y1fxc5n6dhral0763ny8mahxhj3cl6mmxvi7";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.2.0-darwin-arm64.tar.gz";
|
||||
sha256 = "04wibkfpq76qhyy8kf0y89qkssapwgmkv56bspdxpydlnnwvn714";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.3.0-darwin-arm64.tar.gz";
|
||||
sha256 = "1f9zy9rl8vmnc40p6cvcz3d5wrf52y5a798ljp87kmjmra0mglg3";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.89.0-darwin-arm64.tar.gz";
|
||||
@ -527,12 +527,12 @@
|
||||
sha256 = "17f53cknsyqm5r9glxmwc396y8bbl1khvg9px5ixr43gfgq4vm91";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.32.1-darwin-arm64.tar.gz";
|
||||
sha256 = "0jwsaxfgsqk9hf35ciz1pr3f1n3s8i7k20yr0rry9hv1a73bpavi";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.32.2-darwin-arm64.tar.gz";
|
||||
sha256 = "11afh8r6l0xjkfmqa8976h9i6xchn9fapsrfbpa8lvz3l4ch30md";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.31.0-darwin-arm64.tar.gz";
|
||||
sha256 = "1r9pnxwv0dp7ahw1gk7c89j9wqcfp0rpam3qwxq4x3xc5x1b8cg9";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.31.1-darwin-arm64.tar.gz";
|
||||
sha256 = "0b09fpif0ild5lf9fvp2r6ivk0n5c14whc70d7v6v7xab1pfi0pj";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.5-darwin-arm64.tar.gz";
|
||||
@ -543,20 +543,20 @@
|
||||
sha256 = "12bzicm43l7yvh02v5fx3z8v46l9i7a9f677735xi5rjbmd2an4c";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.10.0-darwin-arm64.tar.gz";
|
||||
sha256 = "00d6j85lmfk8alvbijvjnzg9jrc1a1rsg2cxs8szdzw81an25pk5";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.11.0-darwin-arm64.tar.gz";
|
||||
sha256 = "0qdy46n9zh1l0cqa8jyd7z8hvksp6ylfp3rix6l9kq6lhd8iiggs";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.38.0-darwin-arm64.tar.gz";
|
||||
sha256 = "1i8cwbq01fdrlsx2r14q6f06ysq9gyb8c5ak377aihj8p3rkz224";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.3-darwin-arm64.tar.gz";
|
||||
sha256 = "1dfvzb6lh4ayxlg7m0mm7gb0j80nz5npyxrx41z9fy1x82i24130";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.5-darwin-arm64.tar.gz";
|
||||
sha256 = "0s5f8zsiqzc1bnf31c8m2alq62i5sbk6plkm58aahmsw28vky3li";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v8.3.0-darwin-arm64.tar.gz";
|
||||
sha256 = "0c4503nv94hdlza617zl7wqnfks661f4r9ddgw93728diqy38p0v";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v8.3.1-darwin-arm64.tar.gz";
|
||||
sha256 = "0r4j9mvzqv62b6cf40hh4w5mgpkqq82khsmjzij8djjcd86gn7i0";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-darwin-arm64.tar.gz";
|
||||
@ -571,16 +571,16 @@
|
||||
sha256 = "1rh428pj6yzqy40l9gcjaacfcxy5snsy642gavwr9raw3yxdh4br";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.25.0-darwin-arm64.tar.gz";
|
||||
sha256 = "06rbc5b87xpcb2w61d82sf5ir8ra9qqphj5kknh6j2s5wj10pwvb";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.26.0-darwin-arm64.tar.gz";
|
||||
sha256 = "00x5jxb3adjym0qkamwz962r533c9zq4x6ijhhcsjv393326l8am";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.4-darwin-arm64.tar.gz";
|
||||
sha256 = "02mnm525kaxsd0mabpv7j92pj15sv972ikc9dr0vr5sd4dqmjj2k";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.5-darwin-arm64.tar.gz";
|
||||
sha256 = "04vsl43f00p0cdhjwlh816asyxlfn32x28q0vwnv0zm60nphwj34";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.5-darwin-arm64.tar.gz";
|
||||
sha256 = "0girslx186bif03hxkpsgs21g88sy2r1py05b2kqb67izcbh996v";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.2.6-darwin-arm64.tar.gz";
|
||||
sha256 = "1260v26z9fyqc8jxxmxq14ph1c9jplv47gmnm7naw59giiqpd6fa";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.1.3-darwin-arm64.tar.gz";
|
||||
@ -591,28 +591,28 @@
|
||||
sha256 = "1p1r5mn75mgshs9k9yjnzxism4b4nlyp84vz2l48bdgcbqzn1jin";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.3-darwin-arm64.tar.gz";
|
||||
sha256 = "15l2609g7z2xxsblakwq3d3lyg32swb4lmfsrn7m0cwa2a2s2v1x";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.4-darwin-arm64.tar.gz";
|
||||
sha256 = "0w3y5phh1i6h2w77gg7p9rkrb9my11mx0bmsk29nlqpzrmfgwqbc";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.57.2-darwin-arm64.tar.gz";
|
||||
sha256 = "09z5hdwn282xcxi4a2xsigcscnxykidm3a57r1s92jyxcvp9y2k8";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.89.0-darwin-arm64.tar.gz";
|
||||
sha256 = "1103zs11ih71lq4nj0s2x3v35dj90zy4d0ka27h4lazf28qvmda5";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.90.0-darwin-arm64.tar.gz";
|
||||
sha256 = "19n9pzm2nv8pwzvi9hvr7026zbywa2ravsplbbl35j1q15g46dcm";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.23.2-darwin-arm64.tar.gz";
|
||||
sha256 = "1jrccj0fkzqb88spl2v97sc2d7nwmkbi0f093f999av504qg0gg4";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.23.3-darwin-arm64.tar.gz";
|
||||
sha256 = "0ij18wxlhy84hwjwh0h0yf0jl3zpky66a15v6y0gh9w9sn5ng47f";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.2-darwin-arm64.tar.gz";
|
||||
sha256 = "0d7jyzf66hxg13zkg9c4g63328vazlp9g7z9djqx44zmpxm6yh2b";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.4-darwin-arm64.tar.gz";
|
||||
sha256 = "1az0h9xq7py2cn9qwnhndacla8bfayznv2zbghqqy5wnc3rwbdr7";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v5.0.5-darwin-arm64.tar.gz";
|
||||
sha256 = "1dddpyrixmsgw2w8d30s18b49lc35xkkq8vjlhmwbpmcsp8kmfl7";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v6.3.0-darwin-arm64.tar.gz";
|
||||
@ -623,8 +623,8 @@
|
||||
sha256 = "114cbaxhr067nf6rhxqnxhqzfwbq6sak6wmxjq5d25xxx0k0392j";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.10.3-darwin-arm64.tar.gz";
|
||||
sha256 = "1pmppj5k7ix02bvv21wsh619qcxrhc54iszk9wh651s20j3m0vhn";
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.11.0-darwin-arm64.tar.gz";
|
||||
sha256 = "1bgzdndiqkz45a8k3c82fr6br6sp02q06lv1bw5kybz9xn194jp8";
|
||||
}
|
||||
{
|
||||
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.3-darwin-arm64.tar.gz";
|
||||
|
@ -6,14 +6,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "spotdl";
|
||||
version = "4.2.7";
|
||||
version = "4.2.8";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "spotDL";
|
||||
repo = "spotify-downloader";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-AZpTxfnUyOLcPJQJyk77eqw1EbN3s7/8QQMxcxyJVKE=";
|
||||
hash = "sha256-1NPYMyiYWWpiGlr80IcILcC1nI8zkmf7+aA+mqwSAU0=";
|
||||
};
|
||||
|
||||
build-system = with python3.pkgs; [ poetry-core ];
|
||||
|
@ -12,13 +12,13 @@ stdenv.mkDerivation {
|
||||
# as ssdfs-utils, not ssdfs-tools.
|
||||
pname = "ssdfs-utils";
|
||||
# The version is taken from `configure.ac`, there are no tags.
|
||||
version = "4.40";
|
||||
version = "4.43";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dubeyko";
|
||||
repo = "ssdfs-tools";
|
||||
rev = "5f121f793e344cbbe98764b0a5758511da8c3d23";
|
||||
hash = "sha256-VSHs8BBp+n7jbr9KtTXykpUZbTfc999eYA5wtFsmMdY=";
|
||||
rev = "cb0b3d8a01eb2c27d3bf59de6313d14fc7d3b6ac";
|
||||
hash = "sha256-LDxL0+IkQ6sgkFjbiUwB416ZjQGA3JV05o6D6ibAHJE=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
@ -42,7 +42,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "vips";
|
||||
version = "8.15.2";
|
||||
version = "8.15.3";
|
||||
|
||||
outputs = [ "bin" "out" "man" "dev" ] ++ lib.optionals (!stdenv.isDarwin) [ "devdoc" ];
|
||||
|
||||
@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "libvips";
|
||||
repo = "libvips";
|
||||
rev = "refs/tags/v${finalAttrs.version}";
|
||||
hash = "sha256-jp6RPceFzzWgFBzcfvggniAkhXaAGszT/sy4H6aCtGc=";
|
||||
hash = "sha256-VQtHHitEpxv63wC41TtRWLLCKHDAK7fbrS+cByeWxT0=";
|
||||
# Remove unicode file names which leads to different checksums on HFS+
|
||||
# vs. other filesystems because of unicode normalisation.
|
||||
postFetch = ''
|
||||
|
@ -13,13 +13,13 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ibus-typing-booster";
|
||||
version = "2.25.11";
|
||||
version = "2.25.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mike-fabian";
|
||||
repo = "ibus-typing-booster";
|
||||
rev = version;
|
||||
hash = "sha256-of8FcuYeLIEQgPmEQt1UqcMT6Bd2l5sCDj0Cia0JbmM=";
|
||||
hash = "sha256-fSB/CnxzqCK63gBpHB3rkUCE492W3jmb4hfQXuJchiQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook3 gobject-introspection ];
|
||||
|
@ -16,13 +16,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "keymapper";
|
||||
version = "4.6.0";
|
||||
version = "4.8.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "houmain";
|
||||
repo = "keymapper";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-xHnCRn7fGo46T5rs9BtvEAEdxCY08zDTUipbbl6OUlU=";
|
||||
hash = "sha256-4LYGsqHD3msJNgkaInJyH7o+jebeQoh/rUAsvIsqkdM=";
|
||||
};
|
||||
|
||||
# all the following must be in nativeBuildInputs
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "intermodal";
|
||||
version = "0.1.13";
|
||||
version = "0.1.14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "casey";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-hKMO7ZicXSYESXWKmDC2ILD996KoYDXS5HJExyXMdX4=";
|
||||
hash = "sha256-N3TumAwHcHDuVyY4t6FPNOO28D7xX5jheCTodfn71/Q=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-7vtUMG6mxAHKnbouyTsaUf1myJssxYoqAIOjc6m86Fo=";
|
||||
cargoHash = "sha256-k34psGOs6G+B/msmLSDHLNxnjO1yyE4OY6aQU8bt+is=";
|
||||
|
||||
# include_hidden test tries to use `chflags` on darwin
|
||||
checkFlags = lib.optionals stdenv.isDarwin [ "--skip=subcommand::torrent::create::tests::include_hidden" ];
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user