Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2024-09-11 00:13:38 +00:00 committed by GitHub
commit 408e32a8fe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
114 changed files with 1420 additions and 1156 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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" { } ''

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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