Merge master into staging-nixos

This commit is contained in:
nixpkgs-ci[bot]
2026-08-12 18:19:16 +00:00
committed by GitHub
116 changed files with 2334 additions and 1797 deletions

View File

@@ -62,6 +62,8 @@
- [Zapret2](https://github.com/bol-van/zapret2), an extensible DPI bypass program. Available as [services.zapret2](#opt-services.zapret2.enable).
- [Solaar](https://github.com/pwr-Solaar/Solaar), a program to control logitech devices.
- [FlapAlerted](https://github.com/Kioubit/FlapAlerted), detects BGP flapping events and provides statistics based on BGP update messages. Available as [services.flap-alerted](#opt-services.flap-alerted.enable).
- [gocron](https://github.com/flohoss/gocron), a task scheduler with web interface. Available as [services.gocron](#opt-services.gocron.enable).

View File

@@ -19,8 +19,8 @@ in
[ "hardware" "logitech" "wireless" "enable" ]
)
(lib.mkRenamedOptionModule
[ "hardware" "logitech" "enableGraphical" ]
[ "hardware" "logitech" "wireless" "enableGraphical" ]
[ "programs" "solaar" "enable" ]
)
];
@@ -56,20 +56,11 @@ in
wireless = {
enable = lib.mkEnableOption "support for Logitech Wireless Devices";
enableGraphical = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable graphical support applications.";
};
};
};
config = lib.mkIf (cfg.wireless.enable || cfg.lcd.enable) {
environment.systemPackages =
[ ]
++ lib.optional cfg.wireless.enable pkgs.ltunify
++ lib.optional cfg.wireless.enableGraphical pkgs.solaar;
environment.systemPackages = lib.optional cfg.wireless.enable pkgs.ltunify;
services.udev = {
# ltunifi and solaar both provide udev rules but the most up-to-date have been split

View File

@@ -326,6 +326,7 @@
./programs/skim.nix
./programs/slock.nix
./programs/sniffnet.nix
./programs/solaar.nix
./programs/soundmodem.nix
./programs/ssh.nix
./programs/starship.nix

View File

@@ -0,0 +1,93 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.programs.solaar;
inherit (lib)
mkEnableOption
mkIf
mkOption
types
maintainers
mkPackageOption
;
in
{
options.programs.solaar = {
enable = mkEnableOption "Solaar, the open source driver for Logitech devices.";
package = mkPackageOption pkgs "solaar" { };
userService = {
enable = mkEnableOption "Enable the solaar systemd service for each user.";
window = mkOption {
type = types.enum [
"show"
"hide"
"only"
];
default = "hide";
description = ''
Start with window showing / hidden / only (no tray icon).
'';
};
batteryIcons = mkOption {
type = types.enum [
"regular"
"symbolic"
"solaar"
];
default = "regular";
description = ''
Prefer regular battery / symbolic battery / solaar icons.
'';
};
extraArgs = mkOption {
type = types.listOf types.str;
default = [ ];
example = [ "--restart-on-wake-up" ];
description = ''
Extra arguments to pass to Solaar.
'';
};
};
};
config = mkIf cfg.enable {
hardware.logitech.wireless.enable = lib.mkDefault true;
environment.systemPackages = [ cfg.package ];
systemd.user.services.solaar = mkIf cfg.userService.enable {
description = "Solaar, the open source driver for Logitech devices";
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
after = [ "dbus.service" ];
serviceConfig = {
Type = "simple";
ExecStart = lib.escapeShellArgs (
[
(lib.getExe cfg.package)
"--window"
cfg.userService.window
"--battery-icons"
cfg.userService.batteryIcons
]
++ cfg.userService.extraArgs
);
Restart = "on-failure";
RestartSec = "5";
};
};
};
meta = {
maintainers = [ maintainers.Svenum ];
};
}

View File

@@ -6,7 +6,7 @@
}:
let
inherit (lib.options) mkEnableOption mkPackageOption mkOption;
inherit (lib.modules) mkIf;
inherit (lib.modules) mkIf mkAfter;
inherit (lib.meta) getExe;
inherit (lib.types) listOf str;
inherit (lib.strings) concatStringsSep;
@@ -52,15 +52,15 @@ in
environment.systemPackages = [ cfg.package ];
programs = {
zsh.interactiveShellInit = mkIf cfg.enableZshIntegration ''
zsh.interactiveShellInit = mkIf cfg.enableZshIntegration (mkAfter ''
eval "$(${getExe cfg.package} init zsh ${cfgFlags} )"
'';
bash.interactiveShellInit = mkIf cfg.enableBashIntegration ''
'');
bash.interactiveShellInit = mkIf cfg.enableBashIntegration (mkAfter ''
eval "$(${getExe cfg.package} init bash ${cfgFlags} )"
'';
fish.interactiveShellInit = mkIf cfg.enableFishIntegration ''
'');
fish.interactiveShellInit = mkIf cfg.enableFishIntegration (mkAfter ''
${getExe cfg.package} init fish ${cfgFlags} | source
'';
'');
xonsh.config = ''
execx($(${getExe cfg.package} init xonsh ${cfgFlags}), 'exec', __xonsh__.ctx, filename='zoxide')
'';

View File

@@ -967,7 +967,9 @@ in
livekit = runTest ./networking/livekit.nix;
lix = runTest ./lix.nix;
lk-jwt-service = runTest ./matrix/lk-jwt-service.nix;
llama-swap = runTest ./web-servers/llama-swap.nix;
llama-swap = import ./web-servers/llama-swap.nix {
inherit pkgs runTest;
};
lldap = runTest ./lldap.nix;
local-content-share = runTest ./local-content-share.nix;
locale = runTest ./locale.nix;

View File

@@ -21,12 +21,14 @@ let
from selenium.webdriver.common.by import By
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
options = Options()
options.add_argument('--headless')
driver = Firefox(options=options)
service = Service(executable_path="${lib.getExe pkgs.geckodriver}")
driver = Firefox(options=options, service=service)
host = sys.argv[1]
user = sys.argv[2]
@@ -71,6 +73,7 @@ in
environment = {
ADMIN_PASSWORD = adminPassword;
IDM_CREATE_DEMO_USERS = "true";
IDM_LDAPS_ADDR = "127.0.0.1:9235";
IDM_LDAPS_CERT = "${certs.${domain}.cert}";
IDM_LDAPS_KEY = "${certs.${domain}.key}";
OC_INSECURE = "false";

View File

@@ -1,261 +1,295 @@
{ pkgs, lib, ... }:
{
pkgs,
lib ? pkgs.lib,
runTest,
...
}:
let
wrapSrc = attrs: pkgs.runCommand "${attrs.pname}-${attrs.version}" attrs "ln -s $src $out";
makeLlamaSwapTest =
name:
{
withUI ? true,
# opt in for e2e test with a small LLM
withLLM ? false,
}:
(
let
wrapSrc = attrs: pkgs.runCommand "${attrs.pname}-${attrs.version}" attrs "ln -s $src $out";
smollm2-135m = wrapSrc rec {
pname = "smollm2-135m";
version = "9e6855bc4be717fca1ef21360a1db4b29d5c559a";
src = pkgs.fetchurl {
url = "https://huggingface.co/unsloth/SmolLM2-135M-Instruct-GGUF/resolve/${version}/SmolLM2-135M-Instruct-Q4_K_M.gguf";
hash = "sha256-7V+jDEh7KC7BVsKQYvEiLlwgh1qUSsmCidvSQulH90c=";
smollm2-135m = wrapSrc rec {
pname = "smollm2-135m";
version = "9e6855bc4be717fca1ef21360a1db4b29d5c559a";
src = pkgs.fetchurl {
url = "https://huggingface.co/unsloth/SmolLM2-135M-Instruct-GGUF/resolve/${version}/SmolLM2-135M-Instruct-Q4_K_M.gguf";
hash = "sha256-7V+jDEh7KC7BVsKQYvEiLlwgh1qUSsmCidvSQulH90c=";
};
meta.license = with lib.licenses; [
asl20 # actual license of the model weights
unfree # to force an opt-in - do not remove
];
};
# grab allowUnfreePredicate if it exists or default deny
allowUnfreePredicate =
if builtins.hasAttr "allowUnfreePredicate" pkgs.config then
pkgs.config.allowUnfreePredicate
else
(_: false);
# check if we can use smollm2-135m taking either globally allowUnfree or
# explicit allow with predicate
# or the test explicitly opts in
useSmollm2-135m = withLLM || pkgs.config.allowUnfree || allowUnfreePredicate smollm2-135m;
in
{
name = "llama-swap-${name}";
meta.maintainers = with lib.maintainers; [
jk
podium868909
];
nodes = {
machine =
{ pkgs, ... }:
{
# running models can be memory intensive but
# default `virtualisation.memorySize` is fine
services.llama-swap = {
enable = true;
settings =
# config for basic tests
if !useSmollm2-135m then
{ }
# config for extended tests using SmolLM2
else
let
llama-cpp = pkgs.llama-cpp;
llama-server = lib.getExe' llama-cpp "llama-server";
in
{
# more useful logging output
logLevel = "debug";
logToStdout = "both";
hooks.on_startup.preload = [
"smollm2"
];
# temperature and top-k important for SmolLM2 performance/accuracy
models = {
"smollm2" = {
ttl = 10;
cmd = "${llama-server} --port \${PORT} -m ${smollm2-135m} --alias smollm2 --no-webui --temp 0.2 --top-k 9";
};
"smollm2-group-1" = {
cmd = "${llama-server} --port \${PORT} -m ${smollm2-135m} --alias smollm2-group-1 --no-webui --temp 0.2 --top-k 9 -c 1024";
};
"smollm2-group-2" = {
proxy = "http://127.0.0.1:5802";
cmd = "${llama-server} --port 5802 -m ${smollm2-135m} --alias smollm2-group-2 --no-webui --temp 0.2 --top-k 9 -c 1024";
};
};
groups = {
"standalone" = {
swap = true;
exclusive = true;
members = [
"smollm2"
];
};
"group" = {
swap = false;
exclusive = true;
members = [
"smollm2-group-1"
"smollm2-group-2"
];
};
};
};
};
};
};
testScript =
{ nodes, ... }:
''
# core tests
import json
def get_json(route):
args = [
'-v',
'-s',
'--fail',
'-H "Content-Type: application/json"'
]
return json.loads(machine.succeed("curl {args} http://localhost:8080{route}".format(args=" ".join(args), route=route)))
def post_json(route, data):
args = [
'-v',
'-s',
'--fail',
'-H "Content-Type: application/json"',
"-d '{d}'".format(d=json.dumps(data))
]
return json.loads(machine.succeed('curl {args} http://localhost:8080{route}'.format(args=" ".join(args), route=route)))
machine.wait_for_unit('llama-swap')
machine.wait_for_open_port(8080)
''
+ lib.optionalString withUI ''
with subtest('check is serving ui'):
machine.succeed('curl --fail http:/localhost:8080/ui/')
''
+ ''
with subtest('check is healthy'):
response_healthy = machine.wait_until_succeeds('curl --silent --fail http://localhost:8080/health')
assert 'OK' in response_healthy, '/health was not OK'
''
+ lib.optionalString useSmollm2-135m ''
# extended tests using SmolLM2
with subtest('check `/running` for preloaded smollm2'):
machine.wait_until_succeeds('curl --silent --fail http://localhost:8080/running | grep "smollm2"')
running_response = get_json('/running')
assert len(running_response['running']) == 1, f'running doesn\'t have one entry as expected: {running_response}'
running_model = running_response['running'][0]
assert running_model['model'] == 'smollm2', f'running model is not smollm2: {running_response}'
assert running_model['state'] == 'ready', f'running smollm2 is not ready: {running_response}'
with subtest('runs smollm2'):
response = None
with subtest('send request to smollm2'):
data = {
'model': 'smollm2',
'messages': [
{
'role': 'user',
'content': 'Say hello'
}
]
}
response = post_json('/v1/chat/completions', data)
with subtest('response is from smollm2'):
assert response['model'] == 'smollm2', f'response was not from smollm2: {response['model']}'
with subtest('response contains at least one item in "choices"'):
assert len(response['choices']) >= 1, f'response had no choices: {response}'
assistant_choices = None
with subtest('response contains at least one "assistant" message'):
assistant_choices = [c for c in response['choices'] if c['message']['role'] == 'assistant']
assert len(assistant_choices) >= 1, f'response had no assistant message: {response}'
with subtest('first message (lowercase) starts with "hello"'):
assert assistant_choices[0]['message']['content'].lower()[:5] == 'hello', f'response didn\'t start with hello: {response}'
with subtest('check `/running` for just smollm2'):
running_response = get_json('/running')
assert len(running_response['running']) == 1, f'running doesn\'t have one entry as expected: {running_response}'
running_model = running_response['running'][0]
assert running_model['model'] == 'smollm2', f'running model is not smollm2: {running_response}'
assert running_model['state'] == 'ready', f'running smollm2 is not ready: {running_response}'
with subtest('check `/running` for smollm2 to timeout'):
machine.wait_until_succeeds('curl --silent --fail http://localhost:8080/running | grep -v "smollm2"', timeout=11)
running_response = get_json('/running')
assert len(running_response['running']) == 0, "smollm2 was still running after timeout"
with subtest('runs smollm2-group-1 and smollm2-group-2'):
response_1 = None
with subtest('send request to smollm2-group-1'):
data = {
'model': 'smollm2-group-1',
'messages': [
{
'role': 'user',
'content': 'Say hello'
}
]
}
response_1 = post_json('/v1/chat/completions', data)
with subtest('response 1 is from smollm2-group-1'):
assert response_1['model'] == 'smollm2-group-1', f'response was not from smollm2-group-1: {response_1['model']}'
with subtest('response 1 contains at least one item in "choices"'):
assert len(response_1['choices']) >= 1, f'response had no choices: {response_1}'
assistant_choices_1 = None
with subtest('response 1 contains at least one "assistant" message'):
assistant_choices_1 = [c for c in response_1['choices'] if c['message']['role'] == 'assistant']
assert len(assistant_choices_1) >= 1, f'response had no assistant message: {response_1}'
with subtest('first message (lowercase) in response 1 starts with "hello"'):
assert assistant_choices_1[0]['message']['content'].lower()[:5] == 'hello', f'response didn\'t start with hello: {response_1}'
with subtest('check `/running` for just smollm2-group-1'):
running_response = get_json('/running')
assert len(running_response['running']) == 1, f'running doesn\'t have one entry as expected: {running_response}'
running_model = running_response['running'][0]
assert running_model['model'] == 'smollm2-group-1', f'running model is not smollm2-group-1: {running_response}'
assert running_model['state'] == 'ready', f'running smollm2-group-1 is not ready: {running_response}'
response_2 = None
with subtest('send request to smollm2-group-2'):
data = {
'model': 'smollm2-group-2',
'messages': [
{
'role': 'user',
'content': 'Say hello'
}
]
}
response_2 = post_json('/v1/chat/completions', data)
with subtest('response 2 is from smollm2-group-2'):
assert response_2['model'] == 'smollm2-group-2', f'response was not from smollm2-group-2: {response_2['model']}'
with subtest('response 2 contains at least one item in "choices"'):
assert len(response_2['choices']) >= 1, f'response had no choices: {response_2}'
assistant_choices_2 = None
with subtest('response 2 contains at least one "assistant" message'):
assistant_choices_2 = [c for c in response_2['choices'] if c['message']['role'] == 'assistant']
assert len(assistant_choices_2) >= 1, f'response had no assistant message: {response_2}'
with subtest('first message (lowercase) in response 1 starts with "hello"'):
assert assistant_choices_2[0]['message']['content'].lower()[:5] == 'hello', f'response didn\'t start with hello: {response_2}'
with subtest('check `/running` for both smollm2-group-1 and smollm2-group-2'):
running_response = get_json('/running')['running']
assert len(running_response) == 2, 'expected both in smollm2 group to be running'
assert len([
rm for rm in running_response
if rm['state'] == 'ready' and rm['model'] == 'smollm2-group-1'
]) == 1, f'smollm2-group-1 not in running group and ready {running_response}'
assert len([
rm for rm in running_response
if rm['state'] == 'ready' and rm['model'] == 'smollm2-group-2'
]) == 1, f'smollm2-group-2 not in running group and ready {running_response}'
'';
}
);
in
lib.recurseIntoAttrs (
builtins.mapAttrs (k: v: runTest (makeLlamaSwapTest k v)) {
full = { };
minimal = {
withUI = false;
};
meta.license = with lib.licenses; [
asl20 # actual license of the model
unfree # to force an opt-in - do not remove
];
};
# grab allowUnfreePredicate if it exists or default deny
allowUnfreePredicate =
if builtins.hasAttr "allowUnfreePredicate" pkgs.config then
pkgs.config.allowUnfreePredicate
else
(_: false);
# check if we can use smollm2-135m taking either globally allowUnfree or
# explicit allow with predicate
useSmollm2-135m = pkgs.config.allowUnfree || allowUnfreePredicate smollm2-135m;
in
{
name = "llama-swap";
meta.maintainers = with lib.maintainers; [
jk
podium868909
];
nodes = {
machine =
{ pkgs, ... }:
{
# running models can be memory intensive but
# default `virtualisation.memorySize` is fine
services.llama-swap = {
enable = true;
settings =
# config for basic tests
if !useSmollm2-135m then
{ }
# config for extended tests using SmolLM2
else
let
llama-cpp = pkgs.llama-cpp;
llama-server = lib.getExe' llama-cpp "llama-server";
in
{
# more useful logging output
logLevel = "debug";
logToStdout = "both";
hooks.on_startup.preload = [
"smollm2"
];
# temperature and top-k important for SmolLM2 performance/accuracy
models = {
"smollm2" = {
ttl = 10;
cmd = "${llama-server} --port \${PORT} -m ${smollm2-135m} --alias smollm2 --no-webui --temp 0.2 --top-k 9";
};
"smollm2-group-1" = {
cmd = "${llama-server} --port \${PORT} -m ${smollm2-135m} --alias smollm2-group-1 --no-webui --temp 0.2 --top-k 9 -c 1024";
};
"smollm2-group-2" = {
proxy = "http://127.0.0.1:5802";
cmd = "${llama-server} --port 5802 -m ${smollm2-135m} --alias smollm2-group-2 --no-webui --temp 0.2 --top-k 9 -c 1024";
};
};
groups = {
"standalone" = {
swap = true;
exclusive = true;
members = [
"smollm2"
];
};
"group" = {
swap = false;
exclusive = true;
members = [
"smollm2-group-1"
"smollm2-group-2"
];
};
};
};
};
};
};
testScript =
{ nodes, ... }:
''
# core tests
import json
def get_json(route):
args = [
'-v',
'-s',
'--fail',
'-H "Content-Type: application/json"'
]
return json.loads(machine.succeed("curl {args} http://localhost:8080{route}".format(args=" ".join(args), route=route)))
def post_json(route, data):
args = [
'-v',
'-s',
'--fail',
'-H "Content-Type: application/json"',
"-d '{d}'".format(d=json.dumps(data))
]
return json.loads(machine.succeed('curl {args} http://localhost:8080{route}'.format(args=" ".join(args), route=route)))
machine.wait_for_unit('llama-swap')
machine.wait_for_open_port(8080)
with subtest('check is serving ui'):
machine.succeed('curl --fail http:/localhost:8080/ui/')
with subtest('check is healthy'):
response_healthy = machine.wait_until_succeeds('curl --silent --fail http://localhost:8080/health')
assert 'OK' in response_healthy, '/health was not OK'
''
+ lib.optionalString useSmollm2-135m ''
# extended tests using SmolLM2
with subtest('check `/running` for preloaded smollm2'):
machine.wait_until_succeeds('curl --silent --fail http://localhost:8080/running | grep "smollm2"')
running_response = get_json('/running')
assert len(running_response['running']) == 1, f'running doesn\'t have one entry as expected: {running_response}'
running_model = running_response['running'][0]
assert running_model['model'] == 'smollm2', f'running model is not smollm2: {running_response}'
assert running_model['state'] == 'ready', f'running smollm2 is not ready: {running_response}'
with subtest('runs smollm2'):
response = None
with subtest('send request to smollm2'):
data = {
'model': 'smollm2',
'messages': [
{
'role': 'user',
'content': 'Say hello'
}
]
}
response = post_json('/v1/chat/completions', data)
with subtest('response is from smollm2'):
assert response['model'] == 'smollm2', f'response was not from smollm2: {response['model']}'
with subtest('response contains at least one item in "choices"'):
assert len(response['choices']) >= 1, f'response had no choices: {response}'
assistant_choices = None
with subtest('response contains at least one "assistant" message'):
assistant_choices = [c for c in response['choices'] if c['message']['role'] == 'assistant']
assert len(assistant_choices) >= 1, f'response had no assistant message: {response}'
with subtest('first message (lowercase) starts with "hello"'):
assert assistant_choices[0]['message']['content'].lower()[:5] == 'hello', f'response didn\'t start with hello: {response}'
with subtest('check `/running` for just smollm2'):
running_response = get_json('/running')
assert len(running_response['running']) == 1, f'running doesn\'t have one entry as expected: {running_response}'
running_model = running_response['running'][0]
assert running_model['model'] == 'smollm2', f'running model is not smollm2: {running_response}'
assert running_model['state'] == 'ready', f'running smollm2 is not ready: {running_response}'
with subtest('check `/running` for smollm2 to timeout'):
machine.wait_until_succeeds('curl --silent --fail http://localhost:8080/running | grep -v "smollm2"', timeout=11)
running_response = get_json('/running')
assert len(running_response['running']) == 0, "smollm2 was still running after timeout"
with subtest('runs smollm2-group-1 and smollm2-group-2'):
response_1 = None
with subtest('send request to smollm2-group-1'):
data = {
'model': 'smollm2-group-1',
'messages': [
{
'role': 'user',
'content': 'Say hello'
}
]
}
response_1 = post_json('/v1/chat/completions', data)
with subtest('response 1 is from smollm2-group-1'):
assert response_1['model'] == 'smollm2-group-1', f'response was not from smollm2-group-1: {response_1['model']}'
with subtest('response 1 contains at least one item in "choices"'):
assert len(response_1['choices']) >= 1, f'response had no choices: {response_1}'
assistant_choices_1 = None
with subtest('response 1 contains at least one "assistant" message'):
assistant_choices_1 = [c for c in response_1['choices'] if c['message']['role'] == 'assistant']
assert len(assistant_choices_1) >= 1, f'response had no assistant message: {response_1}'
with subtest('first message (lowercase) in response 1 starts with "hello"'):
assert assistant_choices_1[0]['message']['content'].lower()[:5] == 'hello', f'response didn\'t start with hello: {response_1}'
with subtest('check `/running` for just smollm2-group-1'):
running_response = get_json('/running')
assert len(running_response['running']) == 1, f'running doesn\'t have one entry as expected: {running_response}'
running_model = running_response['running'][0]
assert running_model['model'] == 'smollm2-group-1', f'running model is not smollm2-group-1: {running_response}'
assert running_model['state'] == 'ready', f'running smollm2-group-1 is not ready: {running_response}'
response_2 = None
with subtest('send request to smollm2-group-2'):
data = {
'model': 'smollm2-group-2',
'messages': [
{
'role': 'user',
'content': 'Say hello'
}
]
}
response_2 = post_json('/v1/chat/completions', data)
with subtest('response 2 is from smollm2-group-2'):
assert response_2['model'] == 'smollm2-group-2', f'response was not from smollm2-group-2: {response_2['model']}'
with subtest('response 2 contains at least one item in "choices"'):
assert len(response_2['choices']) >= 1, f'response had no choices: {response_2}'
assistant_choices_2 = None
with subtest('response 2 contains at least one "assistant" message'):
assistant_choices_2 = [c for c in response_2['choices'] if c['message']['role'] == 'assistant']
assert len(assistant_choices_2) >= 1, f'response had no assistant message: {response_2}'
with subtest('first message (lowercase) in response 1 starts with "hello"'):
assert assistant_choices_2[0]['message']['content'].lower()[:5] == 'hello', f'response didn\'t start with hello: {response_2}'
with subtest('check `/running` for both smollm2-group-1 and smollm2-group-2'):
running_response = get_json('/running')['running']
assert len(running_response) == 2, 'expected both in smollm2 group to be running'
assert len([
rm for rm in running_response
if rm['state'] == 'ready' and rm['model'] == 'smollm2-group-1'
]) == 1, f'smollm2-group-1 not in running group and ready {running_response}'
assert len([
rm for rm in running_response
if rm['state'] == 'ready' and rm['model'] == 'smollm2-group-2'
]) == 1, f'smollm2-group-2 not in running group and ready {running_response}'
'';
}
# opt in to smollm2-135m
full-with-llm = {
withLLM = true;
};
}
)

View File

@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "snes9x";
version = "0-unstable-2026-07-13";
version = "0-unstable-2026-08-09";
src = fetchFromGitHub {
owner = "snes9xgit";
repo = "snes9x";
rev = "b5cc7651f9fc02189cb51b5a43848877db5aec42";
hash = "sha256-htwL5m49J+ku7h79Eu4y74LKiHkbL3UE3+LAXE52ZY8=";
rev = "2ab06b3695bce429a074ced6f5193eb1c7acefaf";
hash = "sha256-L4j6wzYFiDQr+uKxLgPEEKecdeoPwED2U2TICZGvSuc=";
};
makefile = "Makefile";

View File

@@ -1,153 +1,153 @@
{
"linux-canary": {
"distro": {
"hash": "sha256-wVyW1GrvmMEM/btexjTf2uFkTt7GNG+dkI3C+dWnrJQ=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1635/full.distro"
"hash": "sha256-4nUnQx19P9O1lRgpeGR8EBRtllpLTDIF2Ve0yST7qQE=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1646/full.distro"
},
"kind": "distro",
"modules": {
"discord_arborium": {
"hash": "sha256-F5zZEtp67OAUM4gLtV0Uhsy4Gj1eqX7vBjIlOn/GzNI=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1635/discord_arborium/1/full.distro",
"hash": "sha256-J7av4dx1OMSeop00Eqe05BIfw3ZcCS6UUn3ZWosRMUE=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1646/discord_arborium/1/full.distro",
"version": 1
},
"discord_cloudsync": {
"hash": "sha256-Tic8LFWOoX4AyiGmMwYwCr6T807aXLYbamW72/bZwN4=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1635/discord_cloudsync/1/full.distro",
"hash": "sha256-z/84+k8byRDLPkuoV0LERMyyZzBDv79+H7VM9BrtpGw=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1646/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-zSF6kyKXzCERAEx8LslGt/YYPtWXNgr2Kdpj0Yx05F0=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1635/discord_desktop_core/1/full.distro",
"hash": "sha256-PikHYaMHkNENx0p0A/q+qLJIiEq5+pVupL/yshtsNAI=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1646/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-8jJd14m9a3eias4cMCT1wRnu1aT8dzXUXCv5dAMLxN8=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1635/discord_dispatch/1/full.distro",
"hash": "sha256-+4ecTzNxBToBfzj20C83muMSX72e493geKkcHsGuw5A=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1646/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-uhrQCnQC4Dm/XkoYRqVzjUvweYabsJxQrA2LtUxQ7Ac=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1635/discord_erlpack/1/full.distro",
"hash": "sha256-62ldpyV9LgV1gfO9TI/2atgWokwq4DrI5u0fFTbfGi4=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1646/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-32OQHDin9330UsgJ6JYWkT2dv+ToyWzbBpxMKnjxEQY=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1635/discord_game_utils/1/full.distro",
"hash": "sha256-xDZsOkb93ugR9JfF+EptWKnVRznUfTQ54j7PHipeOoQ=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1646/discord_game_utils/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-2SfBfbzwcl2yhKikIiaw95qqixa/hm8apwhVnks/3cM=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1635/discord_krisp/1/full.distro",
"hash": "sha256-DlfgIscLn9Ya38D9xaI3p2yNBDu45xReqdGqjXkQGdI=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1646/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-PmTRUml1bZY45GNEfZqMWDl3eNHdGrkM2f/kASSoFEQ=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1635/discord_modules/1/full.distro",
"hash": "sha256-f7ahh310bYRUlJltj9l72CtTSZB5qjj5T2toYM8P50M=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1646/discord_modules/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-n4WUN1e2mYwyd4TEa5AEOFv9OhXlimkTCNe6cWucH3s=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1635/discord_rpc/1/full.distro",
"hash": "sha256-WcvN38d9hPzlEO65q2OYKVyqc5xIYF69wxiekjWFLLQ=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1646/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-koi/kVLiq9lSGlhiCXl2Cbw0O812+PPkgC2aBH0kKwU=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1635/discord_spellcheck/1/full.distro",
"hash": "sha256-TDVRsaybdgsTogUvbGzdesQnbxTr4VqdY/+4iXrpVic=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1646/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-c9HSxlOz9RMvwSie5nEjHsI51cLyC+mInQrSwFbuHAo=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1635/discord_utils/1/full.distro",
"hash": "sha256-tazljX9G9wcnHNTejDKgEcr1QNksLF5nmAu/F0dafp4=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1646/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-KBesDj1E++Ty2JO3CXKr81RR4DOfL+26sYi1F6oZJfo=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1635/discord_voice/1/full.distro",
"hash": "sha256-XPxQzRmB+G8gxNedcwBJ2zq+sn7AEjboxxwcONj0hV0=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1646/discord_voice/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-Q5KpWnY3TaE9R9qXw/1E1m5wu1UXegFlfWY7rh2iQ3g=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1635/discord_zstd/1/full.distro",
"hash": "sha256-DchoZ8gBq3OT/XkersDVWrrx36VjLmcgh4T7nRKXbj8=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/linux/x64/1.0.1646/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "1.0.1635"
"version": "1.0.1646"
},
"linux-development": {
"distro": {
"hash": "sha256-yrpyHVaPpM5uPbB+iCApdeQmkyyGaqN1LrT6ZYHbhbY=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1008/full.distro"
"hash": "sha256-tmjpT2oZ+1BefLhh4Bxipi0xLTO3JjOzzGLdVcmyuvE=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1009/full.distro"
},
"kind": "distro",
"modules": {
"discord_arborium": {
"hash": "sha256-ONuhQI6g6BmU+TpWAPlijXyqn3nIvaPkT0sydfxvZao=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1008/discord_arborium/1/full.distro",
"hash": "sha256-yEK2W6Fp0pcF6FSCZYgopcKMTC7ofswVq1G3SK/TOWY=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1009/discord_arborium/1/full.distro",
"version": 1
},
"discord_cloudsync": {
"hash": "sha256-KOOtLoQpgQN+ZB6jJ/dHVX6GsdY+Rwbs6Lg7XAaIMs8=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1008/discord_cloudsync/1/full.distro",
"hash": "sha256-hNSSWkwjEaqaKYqFBBh3v8PBEHB0YEa2bZJd6Lt0xbc=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1009/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-OFRRyIG92N+w0uH5i4oKrQjfaSMFLn1+XdCQlx2MLhQ=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1008/discord_desktop_core/1/full.distro",
"hash": "sha256-TYzmzahlesOKI6sUNGNq2fr6++sJpRycLWZRUAhtfhc=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1009/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-LPnrtss4ahqkSsJLbi7oNv4w6fGtRYEbwwJAkM6lXDs=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1008/discord_dispatch/1/full.distro",
"hash": "sha256-xZ2d7lTbZunbHcQJKPm9Z0NQE7Oq3qH4uR2zq71IdOs=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1009/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-W8qd42fl2vbwC0QR4QrJjPC+mgT/a7aZ0C9IRNOOlI8=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1008/discord_erlpack/1/full.distro",
"hash": "sha256-LC1cBf23zXmSfpW6I7UxuLi30y6m0l+2NwqJsSCt4Cw=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1009/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-IMqtXTj2vZKhRpS/WstkhLDjltFFXlGEOqbaz6ex+5I=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1008/discord_game_utils/1/full.distro",
"hash": "sha256-zrxP8s1Npfs6GSHW5q8MuWkhFeINzXwi9A+S93o9vD8=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1009/discord_game_utils/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-AoKbpqRFOZDNDOFSJegmvRbTKnQeLWmLYXA5XNZz3qE=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1008/discord_krisp/1/full.distro",
"hash": "sha256-ulpY2VnZwBFbEBcwXXO8cNhGgWEqkoBVEbMn/ictKQg=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1009/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-itja8snUwlNzic87xWv9LM3ppB63QlzZalOyCdNELsE=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1008/discord_modules/1/full.distro",
"hash": "sha256-BCrN7APbCd0bw55cL51umhfpYBUpkEIBxHF8IZaEpRM=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1009/discord_modules/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-Lj+Cwc8M1nyIlMwQryv8tmw9Doyq/tYBqG9KFCW1Zh4=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1008/discord_rpc/1/full.distro",
"hash": "sha256-RsWNLlNSyuIhnFqpSG374vlmLqfFEZRAL8XcmiI3JPE=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1009/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-QU4mP0bNQHh/+Y18vI8jsTDSmTlRGbnDjU41gjSfYTg=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1008/discord_spellcheck/1/full.distro",
"hash": "sha256-KyeC+llmxpjjbjJGf7F4RYXnIQxnhDnvgixHeubM27Y=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1009/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-Eua48+eBqqsFXJZnfM6mup3PstbdOt/1IxL/THhM+l0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1008/discord_utils/1/full.distro",
"hash": "sha256-iKsHKmIlzSTbmsbtNTUwhClJLNf/dF55A/S0ZHuwLUg=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1009/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-QNYGjzAsete+b2i4izZxGGiqBj70IX33SLdFYNQHR1g=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1008/discord_voice/1/full.distro",
"hash": "sha256-tWiXPoJUXHGmZE7d+oS5hD5LfuqK6NQOKVPILFmvGLY=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1009/discord_voice/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-3z2OmC0r9JpkzcDOPWwNlK+qrgyaQjKn7rkB+Jb/XGY=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1008/discord_zstd/1/full.distro",
"hash": "sha256-s4fndo1YnagUsY1Nb9CLb/goaxID8+cPJKOzf0NAXh0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/linux/x64/1.0.1009/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "1.0.1008"
"version": "1.0.1009"
},
"linux-ptb": {
"distro": {
@@ -226,258 +226,258 @@
},
"linux-stable": {
"distro": {
"hash": "sha256-3P0AC0nzWyxUCZZfqeeZj8p57E8bD6dfAnC7rYCUch4=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.152/full.distro"
"hash": "sha256-AzcQ2f6fsLAOvamgJMxMVJbhVh3JSkHeeLRsCwNqsnw=",
"url": "https://dl.discordapp.net/distro/app/stable/linux/x64/1.0.153/full.distro"
},
"kind": "distro",
"modules": {
"discord_arborium": {
"hash": "sha256-EctcvW6AClcKnx+WMc1Az6XBD3Gr12H20sJrwJggjkU=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.152/discord_arborium/1/full.distro",
"hash": "sha256-wOodeJufXbDUDSsSyrG8+OJ/OxBPFfg3r7utbI7slms=",
"url": "https://dl.discordapp.net/distro/app/stable/linux/x64/1.0.153/discord_arborium/1/full.distro",
"version": 1
},
"discord_cloudsync": {
"hash": "sha256-b7WtS7VLHO7wUIXRbUqD5e4Kg22bAa8z71n0akkjSs8=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.152/discord_cloudsync/1/full.distro",
"hash": "sha256-Z9AHOO66v3eo/l9dMNE6FPduXwk7itn/ux+IBHKyUNw=",
"url": "https://dl.discordapp.net/distro/app/stable/linux/x64/1.0.153/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-YNJiO7xyeAMEYioARzVTTYcnBQtqqeQLi/y6eOpZ7oc=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.152/discord_desktop_core/2/full.distro",
"version": 2
"hash": "sha256-Zis/QM7anwCebhJVXeO+kYQ+82JVxE/l/9DSFvbE0M8=",
"url": "https://dl.discordapp.net/distro/app/stable/linux/x64/1.0.153/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-A+1g70FYSe+CY9/a/S7BSIGy5OMfFbOrbnoJTPVAUyU=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.152/discord_dispatch/1/full.distro",
"hash": "sha256-rpF8mVEsRC9sR+OiihCV9EhJF1c0JwuEFlKxaeREhYY=",
"url": "https://dl.discordapp.net/distro/app/stable/linux/x64/1.0.153/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-Uz8QoOc8c6fMUXEHyLZ80nOKDMb26IxdHGw7Pw8ZEp8=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.152/discord_erlpack/1/full.distro",
"hash": "sha256-MMcPGHruTeb/Fu9syNn5/XTxUR0JTNqAesGTLbAi20s=",
"url": "https://dl.discordapp.net/distro/app/stable/linux/x64/1.0.153/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-HdWOJQy25w1l8Rmt4EwlJh06w5LxLVpfcLHhV8FZaRI=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.152/discord_game_utils/1/full.distro",
"hash": "sha256-UkZ7f/Ckc2oDKSI1tdZU/2YBukkVV1eugtOCQ5ShVgk=",
"url": "https://dl.discordapp.net/distro/app/stable/linux/x64/1.0.153/discord_game_utils/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-wcLDDaaNbyjBZGiN+OwIGsKPob5nHYVY2Qy1vAY11ss=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.152/discord_krisp/1/full.distro",
"hash": "sha256-rFGeGhR5d7Y7Jo1R3netJNz0aAkHd8uBfRtbcK3mZFg=",
"url": "https://dl.discordapp.net/distro/app/stable/linux/x64/1.0.153/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-Ih6vth/F4DTkNs15nhtvLmb5cUCQRRERaVUBAuqc3F8=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.152/discord_modules/1/full.distro",
"hash": "sha256-9/KdLuTux8f5mWoQBSpqNkcU/PvodaMVmAuGRkHW72c=",
"url": "https://dl.discordapp.net/distro/app/stable/linux/x64/1.0.153/discord_modules/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-3YCXPhC1WoakCT5nYBrrilwh8Pzn34lz2mT1aRYOReQ=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.152/discord_rpc/1/full.distro",
"hash": "sha256-8AgyHPFu3ixeCi71M1W4hjcZHvacWZK2vPNhqRMFqZs=",
"url": "https://dl.discordapp.net/distro/app/stable/linux/x64/1.0.153/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-LHGbGj/Tg3Xqt9VSvVZ12SNE+rgEwX8EcSsMGBqdA5I=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.152/discord_spellcheck/1/full.distro",
"hash": "sha256-lZZitgtDkVaznkda2t7/5krxfOh3hF2R6ID9oHfaNos=",
"url": "https://dl.discordapp.net/distro/app/stable/linux/x64/1.0.153/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-To64PXhcM77MPEgvs5iHCGi/lxnTykLUR45wZ9fYA/M=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.152/discord_utils/1/full.distro",
"hash": "sha256-bi74t/4DTAL4X8LIiRvx95UlvPy1b1ORgVo49S5iGrA=",
"url": "https://dl.discordapp.net/distro/app/stable/linux/x64/1.0.153/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-i5oAPf1e/FMD0E6nIXaxXWxC/VWBBOREMQxWaMUkvxs=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.152/discord_voice/1/full.distro",
"hash": "sha256-o8dEAGCZbwy7MNGX3XlEb1/2cfSwW6t9NUS5S4ePd5o=",
"url": "https://dl.discordapp.net/distro/app/stable/linux/x64/1.0.153/discord_voice/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-vxFw1kpEiPAyt9oFCnGKrnXo9JsqQEwlv2OnRW4mWC8=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/1.0.152/discord_zstd/1/full.distro",
"hash": "sha256-wPVbgwlzi7qvim3+VeXvk1oXBYVniNi7tilH1R3/Xm4=",
"url": "https://dl.discordapp.net/distro/app/stable/linux/x64/1.0.153/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "1.0.152"
"version": "1.0.153"
},
"osx-canary": {
"distro": {
"hash": "sha256-6zmHOjqyBufB6xXawxcSJKoQm1pWdYkIp5ISAeHjfe0=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/full.distro"
"hash": "sha256-oMoOhtB5M0BbSKhHbomjp5vCyNYCAh8UtEpINCi4wlc=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/full.distro"
},
"kind": "distro",
"modules": {
"discord_arborium": {
"hash": "sha256-jy9RTaxyDXIpZbdC+5bx9uju0PeDxQaNTKgxFzVIZpM=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_arborium/1/full.distro",
"hash": "sha256-6NYHxQfprHHdZGknYMxEl0lo29pt0ryrR9sDvYHO05s=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_arborium/1/full.distro",
"version": 1
},
"discord_cloudsync": {
"hash": "sha256-TV5AuV66V9CI7K9leE3sO569mGYLXnloaUz621Wg1Ow=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_cloudsync/1/full.distro",
"hash": "sha256-+PHB1wpTO5+R3zA9dufE3xLy0syuQYSS+a0jsCNGNjs=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-DNiXFsfr0KZbeoZbMNdZr8rEu1kqosTVlMBw8N7UvzI=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_desktop_core/1/full.distro",
"hash": "sha256-Tcb6S/HtSvoNLfAK0GVnKBqp+2upf0UxuStxaIXVK3o=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-908gzkHlwxHhoipBf2KveaKEQQTg+KMCID0smEM4SWw=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_dispatch/1/full.distro",
"hash": "sha256-2DKqLoaZtxY5LhYOPPejnsVq43mv5spxuMXAhCiq/NM=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-k29XwPhAnWFK9Y2KkXHI5LoRZuUAmF464OMQvSD8kzw=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_erlpack/1/full.distro",
"hash": "sha256-nBObSAmMDKQKGYvgnsV8j/D1Z6z/zVHK7yIt7JnD/Zs=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-vsPbERMnUxRFaQi/4K6ncqpvUshKN1q8boE2RUne0j0=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_game_utils/1/full.distro",
"hash": "sha256-7KQ38od6K27ycVkvOnaH7SLv/Jx6hPYOE84nzFH1dXI=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_game_utils/1/full.distro",
"version": 1
},
"discord_intents": {
"hash": "sha256-QG63psMwtqLpVxUhL5Qw89kyyAafzRIFC2u8pMmzyS0=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_intents/1/full.distro",
"hash": "sha256-APCh8BArgt5RevI2QJOVLAssgYS/cjdFpIHs8JPTTAg=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_intents/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-t6GDZyGfX5YLvSBaNRFzaMOsdYHEX3XoX2yXQr1STKs=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_krisp/1/full.distro",
"hash": "sha256-fLU6kopr2sQUkXG4A+atBY+AVxjHSxfYAR6TGBdZLvY=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-lvD9cYkx4qV2dPC880HEYmyE3cR3kQOCnLzHFin+nec=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_modules/1/full.distro",
"hash": "sha256-rC8XQ2jm17GBY9FCZXjVILpEIqW20wGs7jauzX7f87A=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_modules/1/full.distro",
"version": 1
},
"discord_notifications": {
"hash": "sha256-zCpbLLX6VSkTbltrJTViCRmnR3dBxeU8rcPhOCxl2LQ=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_notifications/1/full.distro",
"hash": "sha256-RUDniZB+PdGPlDcVRYlsJYeHvaYokmZ2BZNRO3KOJH4=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_notifications/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-urpWdkMSqKioIOxpdjNT3JJZcikDvs0dSsVUkUG4PY0=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_rpc/1/full.distro",
"hash": "sha256-ruTPBYzfG71eKxnglHyC6OkhZQryh1ftqFNMWOJ/3CU=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-/50/mm6byljJ8MC6SalU+lRggcF1CKy9cwclpbMsrAk=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_spellcheck/1/full.distro",
"hash": "sha256-DQryV7MY/Xz2XL8agjM3iJY2wY4LYsjQ5ImYfEnUvnQ=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-zXams2ljKyMGgco9hvSQHC3HD42TQCVKfMyG/PF9ubw=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_utils/5/full.distro",
"version": 5
"hash": "sha256-ZDv3ejnvfCzRlhJm7CEWhm5MX+C/lA+ETKXT+97lCz4=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-waDSMuxHPQLNzTdIzoELL0erZjFJej4KWOIYzSDVNvU=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_voice/2/full.distro",
"hash": "sha256-WVv+Bdbuodno6Q3+p6JBWe0FlgtOxLYkUm8YrJI5Ows=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_voice/2/full.distro",
"version": 2
},
"discord_webauthn": {
"hash": "sha256-YhBNYnuXHlr17VqnOpMlH0p4TyDMZmr63Y0v/1efwJk=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_webauthn/1/full.distro",
"hash": "sha256-4iSifUx00540kHxVmTRUELc7CTdeQlrzumL6PoZ5UYc=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_webauthn/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-xN5RNiSGDbpt7qrJkhhf4cn3XA/Z2P/Ro1xdkBulzB4=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1259/discord_zstd/1/full.distro",
"hash": "sha256-IAfkqNAHP1nGZ1mavrRYVnkNwyfTchb70XLuFAiTB+I=",
"url": "https://canary.dl2.discordapp.net/distro/app/canary/osx/universal/0.0.1263/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "0.0.1259"
"version": "0.0.1263"
},
"osx-development": {
"distro": {
"hash": "sha256-5kbK9PeDcx16e8R1cdvy5UTPfurhJw9G6M4N09XDczU=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/full.distro"
"hash": "sha256-h+90ma3vDxyFepJafVMPt+xnnwhlHp8xyWiEy4e8BtE=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/full.distro"
},
"kind": "distro",
"modules": {
"discord_arborium": {
"hash": "sha256-SePXBJQn09OPdGk8C1kkNSWz35GXi18PJn6Uj9xzR0w=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_arborium/1/full.distro",
"hash": "sha256-0CSXXOysVTXkOIX+PGiLxhO5TF52RbnAeAdaUt8gIsA=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_arborium/1/full.distro",
"version": 1
},
"discord_cloudsync": {
"hash": "sha256-oTarTEo+9DXqiA4vFObY7Db/TXvOGQs0iVi1LLNmalQ=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_cloudsync/1/full.distro",
"hash": "sha256-OTFs1oZxifyZQCSawl15uwmUGEtdMmfn3IirfqNM7Dg=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-EsGnAbLFwGZxvVu2vQdOLqwHDFRt2tItlsaSdQ835NA=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_desktop_core/1/full.distro",
"hash": "sha256-ZdfclWKmnf4LDp3bZuHa8yOLoH/nQJg1HXY97yz2+Zs=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-X9Fln640uCRnnpg09U5o32uDiCDwoizjck7VNcwY1W0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_dispatch/1/full.distro",
"hash": "sha256-TdKvrQD5QEdU91Iuk6Bj0zahMHzebLp/+9iJ6YVcQos=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-v1uDvFN/lwwgDsIpVfQyNiuaSBsgsCrkQhT1uwSzBXY=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_erlpack/1/full.distro",
"hash": "sha256-8mo1PxrdfoACT0ue1Vnn+9V66iYWYo0sAKpbPV/Z9AA=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-hLFkB034tOioo8QqSESbExeKvYQWO4lFK83gyNqfODk=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_game_utils/1/full.distro",
"hash": "sha256-q6iYGIUMgn6ONBiP+uYB+NOoqtAIWf8kAJGHBOSPHCY=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_game_utils/1/full.distro",
"version": 1
},
"discord_intents": {
"hash": "sha256-l8XAfLol1w9UdPz0sYbZF5DBjEAalM7+pugIwZdIiKE=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_intents/1/full.distro",
"hash": "sha256-cSWAEnxpiN2L3OqYo+WXW/CGgUs+fK0c5WqgwC+/PV0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_intents/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-EUKEYMfWE7BF2ttIvhyJFnJQ2dhXqXphTT1QQjQz/iQ=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_krisp/1/full.distro",
"hash": "sha256-S7oaSuskr7Tlb//L6+oU9UTEnvME63h/UQ6WClPjr4U=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-YdUOQ+JcpHDBc7HQsm8iQ60a8Afa4M000AcerwhHqT0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_modules/1/full.distro",
"hash": "sha256-WvuQBFrzhJXvUWpeD44VTEWT9fx9SJShfBSvkI1G32M=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_modules/1/full.distro",
"version": 1
},
"discord_notifications": {
"hash": "sha256-ku7VBMlahg0WHlv6FoLgyqPMKJwcJU5HzaigW+8qL0g=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_notifications/1/full.distro",
"hash": "sha256-56laGA0e4UDYLDvympNDYhzYN/xpdXxZwOI7tQ5wQFM=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_notifications/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-YiZ/PJyP0qHpRxHjguS3XWtwYlnl9Wf19IoToEIyFOA=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_rpc/1/full.distro",
"hash": "sha256-Hxkf9GgMO3oHZXAgrzVp14xunA+QPcq+esKiVaAhvJU=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-6adzIekyegQdXwBkd8jgmhJIl8RwmQs4kxQe1iuTbJ4=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_spellcheck/1/full.distro",
"hash": "sha256-VFwm5bLjYbbc7g4VDKHuO51/Hu9JQbvEGnm4SBAnf3U=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-y/sDjwW2VHJmLfhFORQwzR/fyV65RmyDI1AsWGJdX8w=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_utils/1/full.distro",
"hash": "sha256-7MIIqJEPA3Fw13kQS1mCoQNeKoOa9X8RlpwIjf1ug38=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-prXIjXQAR5IvOMf+eezdBltr9rKN+EOKjEM6sEpNgO0=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_voice/1/full.distro",
"hash": "sha256-X7Ao2wuOSbYEjbVqLxHzWDq19QpVuKseo1lAUCSn4YQ=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_voice/1/full.distro",
"version": 1
},
"discord_webauthn": {
"hash": "sha256-5ngUr7GKUW372bvByaP0Dy3EEsSHJS2DPwcITOIFjfA=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_webauthn/1/full.distro",
"hash": "sha256-UoXmSxoU0lrk8KYHTlOY2pGYdNEp/E5dxINq/b3J5HQ=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_webauthn/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-V6lNy0S9ECxQBSVa8Ly1gqdV5pBXpwvqKlnStxp57cE=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1015/discord_zstd/1/full.distro",
"hash": "sha256-cUu9IJje2A7eqGAOTYdCADN81zE2hZSH3hnWUsUynEA=",
"url": "https://development.dl2.discordapp.net/distro/app/development/osx/universal/1.0.1017/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "1.0.1015"
"version": "1.0.1017"
},
"osx-ptb": {
"distro": {
@@ -571,92 +571,92 @@
},
"osx-stable": {
"distro": {
"hash": "sha256-Xs01Ui0u96n2Fpc/T5qObZWjqmbNuU4WTa9Z8OOtNk0=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/full.distro"
"hash": "sha256-v1xV1DYVKfwelYbYMVhL3BDKAfsXe9Npny4kqpX6qDs=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/full.distro"
},
"kind": "distro",
"modules": {
"discord_arborium": {
"hash": "sha256-15EkIwQbVXPCnv65FpUc05Y+W/LfiIcFD8BJ0DehqEg=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_arborium/1/full.distro",
"hash": "sha256-4PVxJjyYtSGI9StNjMKeaUSbYIifEYWTz7kktr5cPOk=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_arborium/1/full.distro",
"version": 1
},
"discord_cloudsync": {
"hash": "sha256-z8yUwMAWanKhcs1dEIB2Xn05KPjPqDInE56pbbHis+c=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_cloudsync/1/full.distro",
"hash": "sha256-ffvvOuTkACsGgnBmubB6XDibYpeihr2i/lmlOGOa7VE=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_cloudsync/1/full.distro",
"version": 1
},
"discord_desktop_core": {
"hash": "sha256-jtzoHhXgMlPRkyd6FO52IyMyTjVzonJslADK1G4toiU=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_desktop_core/2/full.distro",
"version": 2
"hash": "sha256-y46vUEzpmwRnRCs/KGzD/pRRSLA0/5l11VKJsEoridQ=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_desktop_core/1/full.distro",
"version": 1
},
"discord_dispatch": {
"hash": "sha256-FteG3F0mMpOiLburBCySJ/DacqT01T2jfx4m5UW1UF8=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_dispatch/1/full.distro",
"hash": "sha256-LEm7zYYCVLB9l5JdlsIhJ6zVR3eCiyJfhvsMKvK6yTI=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_dispatch/1/full.distro",
"version": 1
},
"discord_erlpack": {
"hash": "sha256-p83ovML/oSDeEsdjuP9RH27ehXzbLLjVwAS1a58ItZ8=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_erlpack/1/full.distro",
"hash": "sha256-ClyKJPwYhHXW2p2nCVsa1Kf5Faeuxur4H0CI7xpnBdA=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_erlpack/1/full.distro",
"version": 1
},
"discord_game_utils": {
"hash": "sha256-o+zjv5zskYrhoFtHq2UnvKkPkg66JSCnhV1h210Bt+w=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_game_utils/1/full.distro",
"hash": "sha256-aUVuPOS5zxnzVXUs+pstMWt9rkJsecvrBSruTNjHKyY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_game_utils/1/full.distro",
"version": 1
},
"discord_intents": {
"hash": "sha256-6aIKC5/mFx1Xy2hvckMGEZOJaZjbosbiccPVfvncZUg=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_intents/1/full.distro",
"hash": "sha256-qWgjn5WOjl78GVTAO/J/RA8ljlFrmYynfpEAXqYbGAo=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_intents/1/full.distro",
"version": 1
},
"discord_krisp": {
"hash": "sha256-AnVRy1f8PyTnHZ0xYtickRJFWcbvpQl5PKoCg3WlUxU=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_krisp/1/full.distro",
"hash": "sha256-RtQS0+jCoeBt0V2CGRkwjuTEar9+JxOv1V864e64cHk=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_krisp/1/full.distro",
"version": 1
},
"discord_modules": {
"hash": "sha256-VKN53f0QD8mavsVN1iJASDyBEbQWbrKzGMKCtZzoCFA=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_modules/1/full.distro",
"hash": "sha256-De6mRVFdakXVDk5IMLTdCTXVnVkNfmvcLLPRvtj3XAY=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_modules/1/full.distro",
"version": 1
},
"discord_notifications": {
"hash": "sha256-kwzPD9lHU+IIoq44dF8rKs3fRqh5UI0N4uz2LC8UrGQ=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_notifications/1/full.distro",
"hash": "sha256-AzLpxosut9r3acJPPBVw1pumW/le24+hMVlYDSu2u48=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_notifications/1/full.distro",
"version": 1
},
"discord_rpc": {
"hash": "sha256-YgeTVunMN9Rk5uodwkJclD43ApqzO/6dGad02XZtsgo=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_rpc/1/full.distro",
"hash": "sha256-bPvnC2DfmRETFYJFDQviXdFF2YI8gWRz5FcgZr8CX8A=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_rpc/1/full.distro",
"version": 1
},
"discord_spellcheck": {
"hash": "sha256-Wk9cUfZspD2PtcbyO7pmT/351SvNa7z+5bwP5kKlEuA=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_spellcheck/1/full.distro",
"hash": "sha256-K6JoXsJNim/VOAVjqHU5Izaj1n4HZiDKTDU8HRFDQaU=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_spellcheck/1/full.distro",
"version": 1
},
"discord_utils": {
"hash": "sha256-G0WtNX4hbO4iB9Xz8rY43ZEmeSUFU0m3XlLrlOhAzZE=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_utils/1/full.distro",
"hash": "sha256-GkcdoGruyIOzokHgd/jeCPkPsGtHAry1c3WrOaRuHYI=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_utils/1/full.distro",
"version": 1
},
"discord_voice": {
"hash": "sha256-EzRy0SjuEzkMvFlH7w6GyVDEh22hSeikw7hD5s7lsw8=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_voice/1/full.distro",
"hash": "sha256-9B1pjqlvOM5Pit1JImYrVOzIAURyJN4pwIS+NBLaqvI=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_voice/1/full.distro",
"version": 1
},
"discord_webauthn": {
"hash": "sha256-fivCWaJhxbouKbhWPRgrXqv/7FKL+RpS8Qn9lIHngnc=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_webauthn/1/full.distro",
"hash": "sha256-tqxA5qhMdUjKUWSRChBUnE5ul4obLxodxZPuSUE6+Sw=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_webauthn/1/full.distro",
"version": 1
},
"discord_zstd": {
"hash": "sha256-IEHHrGPCcxWjKTPY7hYEQzk6Zh5UsC6rTCANgF77mjI=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.406/discord_zstd/1/full.distro",
"hash": "sha256-QJ46FR7YP7eAmbs844t3ueQtcKNK9PJm3jNEPKCx0Vw=",
"url": "https://stable.dl2.discordapp.net/distro/app/stable/osx/universal/0.0.407/discord_zstd/1/full.distro",
"version": 1
}
},
"version": "0.0.406"
"version": "0.0.407"
}
}

View File

@@ -15,13 +15,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "beammp-launcher";
version = "2.8.0";
version = "2.8.1";
src = fetchFromGitHub {
owner = "BeamMP";
repo = "BeamMP-Launcher";
tag = "v${finalAttrs.version}";
hash = "sha256-xg6lHsfIYRC9OxrI+A7MXYCxGbZrGHb/9gR7Dno6Pwk=";
hash = "sha256-9zfagbDUyhUBLtZ18QNztaf1A5GMqqSa7fLAGih4y8k=";
};
strictDeps = true;

View File

@@ -11,16 +11,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "biome";
version = "2.5.6";
version = "2.5.8";
src = fetchFromGitHub {
owner = "biomejs";
repo = "biome";
rev = "@biomejs/biome@${finalAttrs.version}";
hash = "sha256-jutNefPBi39eM/Db04IHA6RId+Un7xLBv/L7tMaC3iI=";
hash = "sha256-ZEOaJGrVnZRZBDuVqQgmCD07ZUvBa8COgsj0XvfKRZM=";
};
cargoHash = "sha256-pPX9sbVYfN9k3LeTBY1SMXU1xOFlYmQCkvSg8U9dL+w=";
cargoHash = "sha256-mMQM7koZlKfgTPDXWan0qi2LGk2gksM2ZDC0m2/X+1M=";
nativeBuildInputs = [ pkg-config ];

View File

@@ -32,6 +32,7 @@
obs-studio-plugins,
nix-update-script,
removeWarningPopup ? false,
withObsVkCapture ? false,
}:
python3Packages.buildPythonApplication (finalAttrs: {
@@ -114,13 +115,13 @@ python3Packages.buildPythonApplication (finalAttrs: {
mangohud
vmtouch
fvs2
obs-studio-plugins.obs-vkcapture
# Undocumented (subprocess.Popen())
lsb-release
pciutils
procps
];
]
++ lib.optional withObsVkCapture obs-studio-plugins.obs-vkcapture;
pyproject = false;
dontWrapGApps = true; # prevent double wrapping

View File

@@ -5,6 +5,7 @@
extraPkgs ? pkgs: [ ],
extraLibraries ? pkgs: [ ],
removeWarningPopup ? false,
withObsVkCapture ? false,
}:
let
@@ -17,7 +18,7 @@ let
pkgs:
with pkgs;
[
(bottles-unwrapped.override { inherit removeWarningPopup; })
(bottles-unwrapped.override { inherit removeWarningPopup withObsVkCapture; })
# This only allows to enable the toggle, vkBasalt won't work if not installed with environment.systemPackages (or nix-env)
# See https://github.com/bottlesdevs/Bottles/issues/2401
vkbasalt

View File

@@ -1,11 +1,11 @@
{
version = "3.12.0";
version = "3.12.1";
x86_64-linux = {
url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-3.12.0-linux.deb";
sha256 = "sha256-3wQVUNTjFgoFBpy0Gl1r/FEdgqRrdjM3SFqPpl6z6O4=";
url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-3.12.1-linux.deb";
sha256 = "sha256-uUgzGk6N8Py91vus5Yh3DmK0xh5+J5xqD3nvWB3ggPE=";
};
aarch64-darwin = {
url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-3.12.0-mac.dmg";
sha256 = "sha256-QuJaNTyBAVQb3SCHNjnhd5klxTrH/9/J56Mxl6l/sKs=";
url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-3.12.1-mac.dmg";
sha256 = "sha256-8zzsQ86udXf4NeTYrxgrb28N5wwRaYrAAtZ5H/1T5w4=";
};
}

View File

@@ -1,13 +0,0 @@
diff --git a/src/calibre/ebooks/metadata/archive.py b/src/calibre/ebooks/metadata/archive.py
index 83a549d3b6..a4c5fe5ce5 100644
--- a/src/calibre/ebooks/metadata/archive.py
+++ b/src/calibre/ebooks/metadata/archive.py
@@ -127,7 +127,7 @@ class ArchiveExtract(FileTypePlugin):
name = 'Archive Extract'
author = 'Kovid Goyal'
description = _('Extract common e-book formats from archive files (ZIP/RAR/7z). Also try to autodetect if they are actually CBZ/CBR/CB7 files.')
- file_types = {'zip', 'rar', '7z'}
+ file_types = {'zip', '7z'}
supported_platforms = ['windows', 'osx', 'linux']
on_import = True

View File

@@ -29,6 +29,7 @@
qt6,
speechd-minimal,
sqlite,
versionCheckHook,
xdg-utils,
wrapGAppsHook3,
popplerSupport ? true,
@@ -42,6 +43,9 @@ stdenv.mkDerivation (finalAttrs: {
pname = "calibre";
version = "9.13.0";
__structuredAttrs = true;
strictDeps = true;
src = fetchurl {
url = "https://download.calibre-ebook.com/${finalAttrs.version}/calibre-${finalAttrs.version}.tar.xz";
hash = "sha256-ONfYjXq8vGLG/jV1SD+1STzpYtJhqXihpNtNWLxLN5M=";
@@ -64,8 +68,17 @@ stdenv.mkDerivation (finalAttrs: {
url = "https://github.com/debian-calibre/calibre/raw/refs/tags/debian/${debian-tag}/debian/patches/hardening/0007-Hardening-Qt-code.patch";
hash = "sha256-ItJalYmBhK4Qgz6QDGbPpBMaa6oGQetQvg5ie3oxFMM=";
})
]
++ lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch;
];
postPatch =
lib.optionalString (!unrarSupport)
# Don't build the unrar plugin
''
substituteInPlace src/calibre/ebooks/metadata/archive.py \
--replace-fail \
"file_types = {'zip', 'rar', '7z'}" \
"file_types = {'zip', '7z'}"
'';
prePatch = ''
sed -i "s@\[tool.sip.project\]@[tool.sip.project]\nsip-include-dirs = [\"${python3Packages.pyqt6}/${python3Packages.python.sitePackages}/PyQt6/bindings\"]@g" \
@@ -82,10 +95,14 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
pkg-config
# `pdftotext`/`pdftohtml` are run by the test suite
poppler-utils
python3Packages.python
qt6.qmake
qt6.wrapQtAppsHook
wrapGAppsHook3
# `xdg-icon-resource` & co. are run by the desktop integration setup in `installPhase`
xdg-utils
];
buildInputs = [
@@ -236,6 +253,11 @@ stdenv.mkDerivation (finalAttrs: {
installCheckInputs = with python3Packages; [
psutil
];
nativeInstallCheckInputs = [
versionCheckHook
];
# `calibre --version` drops a trailing `.0`, so check against a binary reporting the full version
versionCheckProgram = "${placeholder "out"}/bin/ebook-convert";
installCheckPhase =
let
excludedTestNames = [
@@ -245,6 +267,10 @@ stdenv.mkDerivation (finalAttrs: {
"test_import_of_all_python_modules" # explores actual file paths, gets confused
"test_websocket_basic" # flaky
# Flaky: asserts on page-granularity RSS deltas, which are 0 (assertion skipped)
# on most runs and allocator noise otherwise
"test_mem_leaks"
# hangs with cuda enabled, also:
# eglInitialize: Failed to get system egl display
# Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
@@ -289,6 +315,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
homepage = "https://calibre-ebook.com";
description = "Comprehensive e-book software";
mainProgram = "calibre";
longDescription = ''
calibre is a powerful and easy to use e-book manager. Users say it’s
outstanding and a must-have. It’ll allow you to do nearly everything and

View File

@@ -10,16 +10,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cargo-flamegraph";
version = "0.6.13";
version = "0.6.14";
src = fetchFromGitHub {
owner = "flamegraph-rs";
repo = "flamegraph";
rev = "v${finalAttrs.version}";
sha256 = "sha256-XB0/ltiiYZpOlQWoyEPyNFhHqolDgIq0waIjQwT3L88=";
sha256 = "sha256-tjphY9qZaKkqrbwm8lszyyIBpaKZx644LudBq81qngU=";
};
cargoHash = "sha256-OxPvye1HjcQOazAWn7VIa+twWC7uKXeyXkicPiWVe6I=";
cargoHash = "sha256-mSItpfrGRFL9L3Rlqsvx+FdYyJL8rcWWS8Abyixto7c=";
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ makeWrapper ];

View File

@@ -8,15 +8,15 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cargo-shear";
version = "1.13.3";
version = "1.13.4";
src = fetchCrate {
pname = "cargo-shear";
version = finalAttrs.version;
hash = "sha256-Qaq3nBZZR0biG5kVL15zhI8GwLEWBNzgeD3rHeZZOeU=";
hash = "sha256-bTTNiDWkbyjxFo59Hkeah23lQEGiuH5Xrm6z7SUNtoQ=";
};
cargoHash = "sha256-3YMdOCCK+rVx0XZfBqiMAw+aep1TBU5Ok6//c433h4o=";
cargoHash = "sha256-Mhxrcc9ErTYIV+yuIROuMdhbxrFdZZ2yAAXK0WRWcRI=";
env = {
# https://github.com/Boshen/cargo-shear/blob/v1.6.2/src/lib.rs#L51-L54

View File

@@ -6,11 +6,11 @@
buildGraalvmNativeImage (finalAttrs: {
pname = "clj-kondo";
version = "2026.08.03";
version = "2026.08.04";
src = fetchurl {
url = "https://github.com/clj-kondo/clj-kondo/releases/download/v${finalAttrs.version}/clj-kondo-${finalAttrs.version}-standalone.jar";
sha256 = "sha256-EXZJtX1855Tz8m7a9gxI1+DGw9zbPF0oVgX0ZoMuKmg=";
sha256 = "sha256-iElpFiQzzKwbYKi7gIRXc81C38ix3s4vvuEwcP0gos0=";
};
extraNativeImageBuildArgs = [

View File

@@ -9,19 +9,19 @@
buildGoModule (finalAttrs: {
pname = "cloudquery";
version = "6.41.0";
version = "6.41.1";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "cloudquery";
repo = "cloudquery";
tag = "v${finalAttrs.version}";
hash = "sha256-ybHyZnJTtOacywgjJ+PiH8KJNn1DgBNJ4yMMtu4y/vw=";
hash = "sha256-7NM9EFkvQRXp0gHvK1/9EhAoPrNf/g0yCXaVtEMGloQ=";
};
modRoot = "cli";
vendorHash = "sha256-zXYYheZtWFuOZ/9AH+h/Qjf4+UZ6RRb9grk/mrJZxTU=";
vendorHash = "sha256-uAe+zbRtMfFU1CH5D9wzlO7Sx/ckkziQIxecgwDM+Kk=";
subPackages = [
"."

View File

@@ -0,0 +1,60 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
libdrm,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cyan-skillfish-governor-smu";
version = "0.4.12";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "filippor";
repo = "cyan-skillfish-governor";
tag = "v${finalAttrs.version}";
hash = "sha256-yer2MlLnj9lx2cEBeYqAktbx0BqQEK/eFPiga5gXCr8=";
};
cargoHash = "sha256-zlAVGLGnub2Gc0Bkzb5GU9NBAJ2YWLhIG8JOa+1wHx8=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libdrm ];
env.CYAN_SKILLFISH_GOVERNOR_VERSION = finalAttrs.version;
postInstall = ''
install -Dm755 scripts/cyan-skillfish-performance-mode \
$out/bin/cyan-skillfish-performance-mode
install -Dm644 com.cyanskillfish.Governor.conf \
$out/share/dbus-1/system.d/com.cyanskillfish.Governor.conf
install -Dm644 default-config.toml \
$out/share/cyan-skillfish-governor-smu/default-config.toml
'';
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "SMU-based GPU governor for the AMD Cyan Skillfish APU (ASRock BC-250)";
homepage = "https://github.com/filippor/cyan-skillfish-governor";
changelog = "https://github.com/filippor/cyan-skillfish-governor/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [ liberodark ];
mainProgram = "cyan-skillfish-governor-smu";
};
})

View File

@@ -7,16 +7,16 @@
}:
buildGoModule (finalAttrs: {
pname = "deja";
version = "0.4.0";
version = "0.4.1";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "Giammarco-Ferranti";
repo = "deja";
tag = "v${finalAttrs.version}";
hash = "sha256-SAn/9OM5ivUkJpiBXgV2o01ww85xRo3fQKZp0spwe/w=";
hash = "sha256-NDTiesARUyZJQGm+ePZQgofkZYFe/07ztQQcruIkXuE=";
};
vendorHash = "sha256-KmLdMK94cGOXMPJwWS6NgLB5OiNmJbszHdnLzauqJm8=";
vendorHash = "sha256-XHcZUtx82zT3yPCYzJG+a7zfARPW4clbMn77/4luskw=";
ldflags = [
"-s"

View File

@@ -1,14 +1,14 @@
{
"aarch64-darwin": {
"version": "3.6.27",
"version": "3.7.16",
"vscodeVersion": "1.126.0",
"url": "https://windsurf-stable.codeiumdata.com/darwin-arm64/stable/0becb483ee8498d49deadf6aefe8c24f58b8007e/Devin-darwin-arm64-3.6.27.zip",
"sha256": "a683913ce3164a3112bf0be0aaf1c52973cf1995b745a42fc0c32007fd108088"
"url": "https://windsurf-stable.codeiumdata.com/darwin-arm64/stable/355c3c9ee32dad08f605d5ee8f9a7e6786316d4c/Devin-darwin-arm64-3.7.16.zip",
"sha256": "a5f8ff8e467dfae13ab11a3ccf0550ba7ddffd29efdfa6013949e84cfb14d766"
},
"x86_64-linux": {
"version": "3.6.27",
"version": "3.7.16",
"vscodeVersion": "1.126.0",
"url": "https://windsurf-stable.codeiumdata.com/linux-x64/stable/0becb483ee8498d49deadf6aefe8c24f58b8007e/Devin-linux-x64-3.6.27.tar.gz",
"sha256": "c80c5068e401cb641980dd94b721c7f15847bf6e33840170ff05e809d1462f50"
"url": "https://windsurf-stable.codeiumdata.com/linux-x64/stable/355c3c9ee32dad08f605d5ee8f9a7e6786316d4c/Devin-linux-x64-3.7.16.tar.gz",
"sha256": "7ce94e6a720a476b91a6a24c6618a7c670c9b4f76b8bb91f7c84b2c63bcf6435"
}
}

View File

@@ -1,28 +1,27 @@
{
"@rolldown/binding-android-arm64@npm:1.0.0-rc.17": "7c821eb984e2dd03b05979be3116d927326a1752e7d04462f6c78721fc47fb33d1a584e8c739b181dbfb5c28170541d05f775ada38e81bb685e43d03d974abe3",
"@rolldown/binding-darwin-arm64@npm:1.0.0-rc.17": "ddedec6840b8e32b7c45a4afe9d797bb24ea74ef222a1b443161045f0b53ec3a5752b108552fe6c99182e2553dd53498d96d3b30551cd3f1e8057559f23b1ed7",
"@rolldown/binding-darwin-x64@npm:1.0.0-rc.17": "b66ce82e3162261c045027b3aa061cd735c9b1395e77756e06b973f8d0e4256247ddfdb7ee8134363dfcd9d83e665b647b45b666a65c8454babdee19f6d57b40",
"@rolldown/binding-freebsd-x64@npm:1.0.0-rc.17": "87b9045771edda717c7d66df105bba2c22c88214254eae48d54ca641f79b4558c2d1ae3db27d8e36b230728263d539c5f6e03e895dbed6e08afa495f634eb42d",
"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.17": "43e60168d359a5edae352d948a6515c40a8e047fef7541693cbf18a09d80076efb9308a804c5ea7f645883f8f6b7b43e0e14ea677df63fb4016a55ba6f63b947",
"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.17": "d6bfe49089d598886e8c9c92e45240a2404e9594c4abc25f303c8655b859e0f0b67c18947e23177ccc5fb81c9b22a1bd32f2ed052531cc41491b4261ed728342",
"@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.17": "be5459bf78de0931993158783af8e349a68d03610876eb131f48fa51414a45683047cd9b4ad7631f385fedc9bb89677e8d12e874104a038b63932aaa1d7bceb3",
"@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.17": "e36194c8a39afc6522ca71c2ebf4c038792bf2c0141da76e8a385bebdda077a52f95ece9bd0a3818d5c0023e7e8ce708566d42ecd2ff31296a26a41ed6847aa4",
"@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.17": "288ce91c69b13e37b2106fcfb663a981aba9de65d3bb4d3cd8c17b9e8193f3de44d08d1201c4d3a18fdeec5a89256d5b3b4d5bb913ff023cb577c403f8889917",
"@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.17": "d532e43e02e0a84c71ff9be34791d7b32b71786bac4921f9e4f92da39a7d5daeabeb4188c7cc088a8a80ab0691dcf1cc9d414396ce7ff6a970b1374e033df8f6",
"@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.17": "56aecbe0a2aeaedd558c62a5057a7f915ecada0528a27b5edd80478d948c3645104a56c88121c71edefe9a6af7500f053724103099a90764eb8b84c3ee1f9536",
"@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.17": "cc7a806e106f4c0d24400af42155b8b396f712e25d76e13b033895b3b635e21edb2246d3c8592c86989c7aaae1ded1708d36516472555bbed3ccaffc939403a4",
"@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.17": "e6fb0aff901de475a4874af6b0473b396bf1bddf6cbb9acbdb6d4c9318ab2fa3e09d80435ecaeb7866b03effea79c57db9a271b5c720007341949e06828c8385",
"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.17": "d3724ce9f4117d28f903ae1bfc34e3a3efac853691577e511cef91259eb8355dc24f2f27a832bbbd9ad3323dc1b0c3ddbdc4c791ae2a6dd5e5b0c9051384d4d0",
"@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.17": "6f4a348202955f74481ccf1c0ec5fa96671507353b6a7f680b920c773f0dda4ebd46c1561428efcefacb9b4d279cd550c80a79fa261f8db173b527ae9a671eca",
"lightningcss-android-arm64@npm:1.32.0": "1cb326ad39dcb02cf9f45025c167b6900e3a04b08f5149d3c5ee26054b00d08db3736fb69183a6c3ed1cb32dddd148608c784b6631b4777623f7dd0c032c392d",
"lightningcss-darwin-arm64@npm:1.32.0": "da954d0c215d0e95f15a92c8717f871017586e1332b98fd40e96196571d2fd3d51a727dc530768afee9f6a04da210510740574dd0c8dbf2ecced79e5996f1a06",
"lightningcss-darwin-x64@npm:1.32.0": "b1d298c9173f839e8447d1917ed8bc5ab098ed0fc4e4b419d36ac5afe8b27bf21cb47d00a35c3d2edadcac598086e9b4f26c992a809d79f9681d6865a230d79e",
"lightningcss-freebsd-x64@npm:1.32.0": "0eb59f6acf2fcdc944c921b0ac2a16ee803452b9438f573ad6bc41be00040b791ed698698ed5c06f98ef43a6fed0a54987ba3a88da204de9978db2fca96a4a65",
"lightningcss-linux-arm-gnueabihf@npm:1.32.0": "7d1ea43986d2370a90cefc920dac3e041e0d19445cc4fdaf244644b57b6937588d7c3a464c31440617231f55a6dad79744cf707912e05f3b46a1694abb5b4e00",
"lightningcss-linux-arm64-gnu@npm:1.32.0": "f01ede75f41480a164d18338fa46d9fccdb4a821717174ce848ff8b2aa4badba4f1d331deb3ebec3ee2f0eb95bfa2e35f54877f371427b04e6f36a4783aa1414",
"lightningcss-linux-arm64-musl@npm:1.32.0": "38d373f99768f1c5ab6a9c87e1c0ec45eccdb3fe4d216dd5cd06629648c4b0689570ad4e89285d490662cde1790cd36e6b3d176c14e5e31f6869c604aa2df820",
"lightningcss-linux-x64-gnu@npm:1.32.0": "0a1433d46a4a010f87b615c3fa43725a456bae259858a2c927899cbf93074f0ae40f49901bf6af6daa30a4d169c86f594f6341fd775bf7b59293b8d7947b81c5",
"lightningcss-linux-x64-musl@npm:1.32.0": "a6f48ccc30a73d30563c7b61856d1fd6a8812ce62b1bee797f227e06612df70aab4ccd1908552952f77ca7ff2a51019f62d14ae5310ca67311635eeec55d3a9e",
"lightningcss-win32-arm64-msvc@npm:1.32.0": "a919be7fb298c1102bccf18b6f83d54946adfac70ab2ac9c95e4ae38ded76d8f530215b0bcda4d38df4ffc40a70abe3afd91d01d35fd122e7d119ed0e46972d0",
"lightningcss-win32-x64-msvc@npm:1.32.0": "5b8d3431aadbdc40a0a7eae32f2415e4f28b547af1a1cd5b35a35d67f772a89492c7fa03e9fc88ce804b14f5f88e412e49fff40d1b0aad67177de815c434207e"
"@rolldown/binding-android-arm64@npm:1.2.3": "5181b7152d6b6d20e219fa5a3dc57d258c146f1e41d4c1441482b134a29096d104002cb28f5762029556285c781d829ba67a6fdce842a7ecdae2f9b12ab3bc24",
"@rolldown/binding-darwin-arm64@npm:1.2.3": "7ff0488b1b7acc8ae6c8e20b15811b221226000ae8560ac2334f28ca07adf1da6a088804d67cf35c4884779113ab34858043b6fff93f7579fb41675aa22bb685",
"@rolldown/binding-darwin-x64@npm:1.2.3": "6b09cf6781128651bca9bbe2ea1f9de129a64717e191c7245140c0a12185498b03e248b0b4028d7dd92f98c22dc282bc44d544edb79a9508c94723d865b966ed",
"@rolldown/binding-freebsd-x64@npm:1.2.3": "e52524ae9120e6da7cf85bac985a50ba9c9714aaa34ebfdafb421d94b543de410217a11364ff048acdead2f8c7df24cc17a0dfef4f6f2ccc21e0bd1ad9f32eac",
"@rolldown/binding-linux-arm-gnueabihf@npm:1.2.3": "bd27b41ad476b6de2455108b857a627b1df0f47eb885205a9a06a60ea670cffe8b366be89acea13cbc7a55b387331509bcfef2cfad0cb25faa0c1db450e9dbb3",
"@rolldown/binding-linux-arm64-gnu@npm:1.2.3": "cf5bd6b0064274cc49f0b720da71672783a5e0cd4820dde5f3475bdcc228c3315791f597d5a75b5ae9d8ddde41d2c81ad67cc6a99c5ae49039fffb54cfcbc764",
"@rolldown/binding-linux-arm64-musl@npm:1.2.3": "740ebdac1f806a279f4128f99060e44d6cc4f00a9bed1dc70637aab53d785e96be7a1876a74202268bf73cc3a425aa1f1550da2f86872bbf49cbd46edf09b6d3",
"@rolldown/binding-linux-ppc64-gnu@npm:1.2.3": "704536b8de2c6d680153874fb57016c1284d297d87b166a696e53f1af1d9d0176cfc578252b588d7e59849309d71d638f73c6163c3c0714335e8993b8ff2d97f",
"@rolldown/binding-linux-s390x-gnu@npm:1.2.3": "a29de0fad1238e97e7700e3df3762872493d0557977ee9e15eacb9f9d3c9c0f29b110d858881eb4bfbf9b43f939bb61687bb33760f52ccb3acad2e998f66a283",
"@rolldown/binding-linux-x64-gnu@npm:1.2.3": "a048e32713eae7513d0f68ad675087bc86ed57493d59cb9920bb10f2ad567adbe9fa3e82e786705d2cb26d820ff98b48cd13abcc069e7044a593de4b8b795a9d",
"@rolldown/binding-linux-x64-musl@npm:1.2.3": "0b73be9ae16942651c9060ffdc2146677151a496159ca301701174aed4400e27eda8de078f649efd670da3ba208b0429c0130bf627d37c77ff3f23d97c78f6aa",
"@rolldown/binding-openharmony-arm64@npm:1.2.3": "5bf6288cbc11e96fdd9dae69dad2828535df0da14ed64373bc80f813b1098f61e7320e6448c36bc573cbd9119cd6855a7e13e76cf5bbab42d9d1586a8a499647",
"@rolldown/binding-win32-arm64-msvc@npm:1.2.3": "7a1dbc749f69f50cdf71804bfe8e6af8880b5d9f5c7f8d2e9fb5d1d8702e74b09471b6bbc1bb81051812f187298404c5f46d4bcbf92682a4d0e9a37d850fbed8",
"@rolldown/binding-win32-x64-msvc@npm:1.2.3": "5281bbfe23a6ef1938400ea0e1803293b54364489cf1b43d49d9fc346d0f258cec237cc112ceb8539190d7fa12913f6ef749a75b655c8b5bb95ed1ab4830c4e7",
"lightningcss-android-arm64@npm:1.33.0": "46c40a0474a7a9ddcdc33e0ea634912894a9360b6ba6f2bc42f1a817d16992784d2fe6f421d293a90ea94fb481503e27fdc54f0540de0b41d7028fe9e9c9e56a",
"lightningcss-darwin-arm64@npm:1.33.0": "398b770e33f66db9e4c14e4a45d0e93fa59644bd29ce5082de79ee9560a5946321ac55e896aa7fb3f177d218bef3f2dca530e209a857f0f066bf3296f5dc0742",
"lightningcss-darwin-x64@npm:1.33.0": "132bdab8f7b66dc99730f1ccfcb882880e411420e3f9ca764c348c686112d75962d5d7e928f3bbce7088c1be168d00ea8d722fd909033b807eef191b5a2832c0",
"lightningcss-freebsd-x64@npm:1.33.0": "05001395776e994ea1254dcc2613f06b44458ba33769e3a1679a0f577e43632af378cc1582f3bd1cb36e480d237066a371bc04233d6c84f8e2fe9979ab4a4032",
"lightningcss-linux-arm-gnueabihf@npm:1.33.0": "d0f6d993846992cf6db80f2992d0b89ffddd65a8260bbe6a1534bde28510bcfa214e8831df9ccfef5ede006a6368de1649e1d96a3e122169286647b704e08f5f",
"lightningcss-linux-arm64-gnu@npm:1.33.0": "278a5c553e15ed7645d3e83a3b1515060e98a8742b7008af28d610d6495a09368e73ed8b90bcb537b37249bfc2446ef5b9614b3626222f25153c538909488548",
"lightningcss-linux-arm64-musl@npm:1.33.0": "7aa2a2ef42e8c713e6e8eb947bf64d5272c6fdbfca7b4eb3adde555357652be27cc0d84d6fef6266543c2d303943a4c4472679d1e258458119b159f0ca868ffe",
"lightningcss-linux-x64-gnu@npm:1.33.0": "fa57a09af3340dc5f11fdbff820fbb7b08e306e69350a500b523c88f54c1e3a40b3785fed6043d69e2e18bacd4b72410518c9b817ee987c704a80851d9201e45",
"lightningcss-linux-x64-musl@npm:1.33.0": "4b0cad846f8fbe4ec321a45ef9c0d02cf4277980ac34dcfc7b422b34381e7cb11512819401b01bf029d10aa0fb8a35906ce850ba38d9f43605917ccc9b0b5d4a",
"lightningcss-win32-arm64-msvc@npm:1.33.0": "5e4b58d7a41fe3c37ce2af7b1a95c3722a6064a84fb6286ba2cf1106651223403b5a5863ecd3eb8fb9732480e612e30d786b859329391b0197dffc88ca18c953",
"lightningcss-win32-x64-msvc@npm:1.33.0": "7beb4c8580f9ea45fea6d92a8de42f706c4935b2ca68f4f5163a2bd9f6ed1574f7e53686e4927883078b07a4063a9fffdc4b41968568354259066c7a70c156a4"
}

View File

@@ -16,19 +16,19 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "dokieli";
version = "0-unstable-2026-05-08";
version = "0-unstable-2026-08-10";
src = fetchFromGitHub {
owner = "dokieli";
repo = "dokieli";
rev = "f0372663098582c0310c9e16918a55cf000fbaf1";
hash = "sha256-jpIQcE1GdjvEsk6HPxjdFLbrxGWvVCaaG7T08HdMj7Y=";
rev = "c23e80e4fe54a2ad20f36a9f21a0987f5e3e4505";
hash = "sha256-ZwK+MxrTodDvvJuQCIhcDkluor4ri856m/WhcVRwfzo=";
};
missingHashes = ./missing-hashes.json;
offlineCache = yarn-berry.fetchYarnBerryDeps {
inherit (finalAttrs) src missingHashes;
hash = "sha256-SEoYmh7oHmJrVhShOjRyaClyQxW9S96GCI3ggRkW+6U=";
hash = "sha256-AqmUWgVDksQeBKcC8mpq1xgQ5NcHTjX/YSgm9J+feBs=";
};
buildPhase = ''
@@ -79,9 +79,9 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Clientside editor for decentralised article publishing, annotations and social interactions";
homepage = "https://github.com/dokieli/dokieli";
license = with lib.licenses; [
cc-by-40
mit
license = lib.licenses.AND [
lib.licenses.asl20
lib.licenses.cc-by-40
];
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ shogo ];

View File

@@ -1,135 +1,170 @@
{
lib,
stdenvNoCC,
bintools,
fetchurl,
fontconfig,
freetype,
copyDesktopItems,
makeDesktopItem,
makeWrapper,
unzip,
jdk,
glib,
gsettings-desktop-schemas,
gtk3,
jdk17,
lib,
libx11,
libxrender,
libxtst,
makeDesktopItem,
makeWrapper,
shared-mime-info,
stdenv,
unzip,
webkitgtk_4_1,
zlib,
}:
let
pVersion = "1.15.0.20231206";
pVersionTriple = lib.splitVersion pVersion;
majorVersion = lib.elemAt pVersionTriple 0;
minorVersion = lib.elemAt pVersionTriple 1;
patchVersion = lib.elemAt pVersionTriple 2;
baseVersion = "${majorVersion}.${minorVersion}.${patchVersion}";
jdk = jdk17;
in
stdenv.mkDerivation rec {
pname = "eclipse-mat";
version = pVersion;
stdenvNoCC.mkDerivation (
finalAttrs:
let
baseVersion = lib.versions.pad 3 finalAttrs.version;
src = fetchurl {
url = "https://ftp.halifax.rwth-aachen.de/eclipse//mat/${baseVersion}/rcp/MemoryAnalyzer-${version}-linux.gtk.x86_64.zip";
sha256 = "sha256-icmo5zdK0XaH32kXwZUVaQ0VPSGEgvlLr7v7PtdbmCg=";
};
sources = {
x86_64-linux = {
suffix = "linux.gtk.x86_64";
hash = "sha256-4eqAp5hNQR5MTX37qwktqSVfe3ctaBolamEEm8yIN2c=";
};
aarch64-linux = {
suffix = "linux.gtk.aarch64";
hash = "sha256-MJUome0KjXjmjROTTnDbSTSnDKiUGHt6LAZY1giXmQ0=";
};
aarch64-darwin = {
suffix = "macosx.cocoa.aarch64";
hash = "sha256-Of/BJTaxD6x0+aNDKeod1RVWG86XFBmk8qdbU/p73qQ=";
};
};
desktopItem = makeDesktopItem {
name = "eclipse-mat";
exec = "eclipse-mat";
icon = "eclipse";
comment = "Eclipse Memory Analyzer";
desktopName = "Eclipse MAT";
genericName = "Java Memory Analyzer";
categories = [ "Development" ];
};
inherit (stdenvNoCC.hostPlatform) system;
source = sources.${system} or (throw "Unsupported system: ${system}");
in
{
pname = "eclipse-mat";
version = "1.17.0.20260601";
unpackPhase = ''
unzip $src
'';
strictDeps = true;
__structuredAttrs = true;
buildCommand = ''
mkdir -p $out
unzip $src
mv mat $out
src = fetchurl {
urls = [
"https://ftp.halifax.rwth-aachen.de/eclipse/mat/${baseVersion}/rcp/MemoryAnalyzer-${finalAttrs.version}-${source.suffix}.zip"
"https://download.eclipse.org/mat/${baseVersion}/rcp/MemoryAnalyzer-${finalAttrs.version}-${source.suffix}.zip"
];
inherit (source) hash;
};
# Patch binaries.
interpreter=$(echo ${stdenv.cc.libc}/lib/ld-linux*.so.2)
libCairo=$out/eclipse/libcairo-swt.so
patchelf --set-interpreter $interpreter $out/mat/MemoryAnalyzer
[ -f $libCairo ] && patchelf --set-rpath ${
lib.makeLibraryPath [
freetype
fontconfig
libx11
libxrender
zlib
]
} $libCairo
sourceRoot = ".";
# Create wrapper script. Pass -configuration to store settings in ~/.eclipse-mat/<version>
makeWrapper $out/mat/MemoryAnalyzer $out/bin/eclipse-mat \
--prefix PATH : ${jdk}/bin \
--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
glib
gtk3
libxtst
webkitgtk_4_1
]
} \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
--add-flags "-configuration \$HOME/.eclipse-mat/''${version}/configuration"
nativeBuildInputs = [
makeWrapper
unzip
]
++ lib.optionals stdenvNoCC.hostPlatform.isLinux [
copyDesktopItems
glib
];
# Create desktop item.
mkdir -p $out/share/applications
cp ${desktopItem}/share/applications/* $out/share/applications
mkdir -p $out/share/pixmaps
find $out/mat/plugins -name 'eclipse*.png' -type f -exec cp {} $out/share/pixmaps \;
mv $out/share/pixmaps/eclipse64.png $out/share/pixmaps/eclipse.png
'';
buildInputs = lib.optionals stdenvNoCC.hostPlatform.isLinux [
gsettings-desktop-schemas
gtk3
];
nativeBuildInputs = [
unzip
makeWrapper
];
buildInputs = [
fontconfig
freetype
glib
gsettings-desktop-schemas
gtk3
jdk
libx11
libxrender
libxtst
zlib
shared-mime-info
webkitgtk_4_1
];
# Keep the .app's notarized upstream signature valid
dontPatchShebangs = stdenvNoCC.hostPlatform.isDarwin;
dontBuild = true;
dontConfigure = true;
# The bundle ships JNA natives for every OS, so auditTmpdir finds Linux ELF
# objects and calls patchelf, which does not exist on Darwin.
noAuditTmpdir = stdenvNoCC.hostPlatform.isDarwin;
meta = {
description = "Fast and feature-rich Java heap analyzer";
mainProgram = "eclipse-mat";
longDescription = ''
The Eclipse Memory Analyzer is a tool that helps you find memory
leaks and reduce memory consumption. Use the Memory Analyzer to
analyze productive heap dumps with hundreds of millions of
objects, quickly calculate the retained sizes of objects, see
who is preventing the Garbage Collector from collecting objects,
run a report to automatically extract leak suspects.
'';
homepage = "https://www.eclipse.org/mat";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.epl20;
maintainers = [ lib.maintainers.ktor ];
platforms = [ "x86_64-linux" ];
};
desktopItems = lib.optionals stdenvNoCC.hostPlatform.isLinux [
(makeDesktopItem {
name = "eclipse-mat";
exec = "eclipse-mat";
icon = "eclipse-mat";
comment = "Eclipse Memory Analyzer";
desktopName = "Eclipse MAT";
genericName = "Java Memory Analyzer";
categories = [
"Development"
"Profiling"
];
})
];
}
installPhase =
if stdenvNoCC.hostPlatform.isDarwin then
''
runHook preInstall
mkdir -p $out/Applications
cp -R MemoryAnalyzer.app $out/Applications/
makeWrapper $out/Applications/MemoryAnalyzer.app/Contents/MacOS/MemoryAnalyzer $out/bin/eclipse-mat \
--prefix PATH : ${lib.makeBinPath [ jdk ]} \
--set JAVA_HOME ${jdk.home} \
--add-flags "-configuration \$HOME/.eclipse-mat/${finalAttrs.version}/configuration"
runHook postInstall
''
else
''
runHook preInstall
mkdir -p $out
cp -r mat $out/mat
patchelf --set-interpreter ${bintools.dynamicLinker} $out/mat/MemoryAnalyzer
# Pass -configuration so that settings are written to ~/.eclipse-mat/<version>
# instead of the read-only store path.
makeWrapper $out/mat/MemoryAnalyzer $out/bin/eclipse-mat \
--prefix PATH : ${lib.makeBinPath [ jdk ]} \
--set JAVA_HOME ${jdk.home} \
--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
glib
gtk3
libxtst
webkitgtk_4_1
]
} \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
--add-flags "-configuration \$HOME/.eclipse-mat/${finalAttrs.version}/configuration"
unzip -j -q mat/plugins/org.eclipse.mat.ui.rcp_*.jar "icons/memory_analyzer_*.png" -d icons
for size in 32 48 64 128 256; do
install -Dm444 icons/memory_analyzer_$size.png \
$out/share/icons/hicolor/''${size}x''${size}/apps/eclipse-mat.png
done
runHook postInstall
'';
passthru.updateScript = ./update.sh;
meta = {
description = "Fast and feature-rich Java heap analyzer";
longDescription = ''
The Eclipse Memory Analyzer is a tool that helps you find memory
leaks and reduce memory consumption. Use the Memory Analyzer to
analyze productive heap dumps with hundreds of millions of
objects, quickly calculate the retained sizes of objects, see
who is preventing the Garbage Collector from collecting objects,
run a report to automatically extract leak suspects.
'';
homepage = "https://eclipse.dev/mat/";
changelog = "https://eclipse.dev/mat/${baseVersion}/noteworthy.html";
sourceProvenance = with lib.sourceTypes; [
binaryBytecode
binaryNativeCode
];
license = lib.licenses.epl20;
mainProgram = "eclipse-mat";
maintainers = with lib.maintainers; [
ktor
dfjay
];
platforms = lib.attrNames sources;
};
}
)

View File

@@ -0,0 +1,43 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=./. -i bash -p bash curl gnused coreutils common-updater-scripts
set -euo pipefail
BASEDIR="$(dirname "$(readlink -f "$0")")/../../../.."
MIRROR="https://ftp.halifax.rwth-aachen.de/eclipse/mat"
baseVersion=$(curl -sL "$MIRROR/" |
sed -n 's/.*href="\([0-9]\+\.[0-9]\+\.[0-9]\+\)\/".*/\1/p' |
sort -V | tail -1)
latestVersion=$(curl -sL "$MIRROR/$baseVersion/rcp/" |
sed -n 's/.*href="MemoryAnalyzer-\([0-9.]\+\)-linux\.gtk\.x86_64\.zip".*/\1/p' |
sort -V | tail -1)
currentVersion=$(nix-instantiate --eval -E "with import $BASEDIR {}; lib.getVersion eclipse-mat" | tr -d '"')
echo "latest version: $latestVersion"
echo "current version: $currentVersion"
if [[ -z "$latestVersion" ]]; then
echo "could not determine the latest version" >&2
exit 1
fi
if [[ "$latestVersion" == "$currentVersion" ]]; then
echo "package is up-to-date"
exit 0
fi
for target in \
"x86_64-linux:linux.gtk.x86_64" \
"aarch64-linux:linux.gtk.aarch64" \
"aarch64-darwin:macosx.cocoa.aarch64"; do
nixSystem="${target%%:*}"
suffix="${target#*:}"
prefetch=$(nix-prefetch-url "$MIRROR/$baseVersion/rcp/MemoryAnalyzer-$latestVersion-$suffix.zip")
hash=$(nix-hash --type sha256 --to-sri "$prefetch")
(cd "$BASEDIR" && update-source-version eclipse-mat "$latestVersion" "$hash" --system="$nixSystem" --ignore-same-version)
done

View File

@@ -17,13 +17,13 @@
}:
let
version = "0.313.1";
version = "0.313.2";
src = fetchFromGitHub {
owner = "evcc-io";
repo = "evcc";
tag = version;
hash = "sha256-P/NEP+gGS3Wni9j09NVujmdDYaAz7ntOtrPFZNKy/Bo=";
hash = "sha256-gFsAf10GT4rGXR08P09vZHguQ2alVGy3PJwYPgNPGaw=";
};
vendorHash = "sha256-QJsdBqa/JHaBig4bRtU3LqlYwh/BHnP3vg8YM3reuDY=";

View File

@@ -1,45 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
fuse,
macfuse-stubs,
pkg-config,
which,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ext4fuse";
version = "0.1.3";
src = fetchFromGitHub {
owner = "gerard";
repo = "ext4fuse";
rev = "v${finalAttrs.version}";
hash = "sha256-bsFo+aaeNceSme9WBUVg4zpE4DzlmLHv+esQIAlTGGU=";
};
nativeBuildInputs = [
pkg-config
which
];
buildInputs = [ (if stdenv.hostPlatform.isDarwin then macfuse-stubs else fuse) ];
installPhase = ''
runHook preInstall
install -Dm555 ext4fuse $out/bin/ext4fuse
runHook postInstall
'';
meta = {
description = "EXT4 implementation for FUSE";
mainProgram = "ext4fuse";
homepage = "https://github.com/gerard/ext4fuse";
maintainers = with lib.maintainers; [ felixalbrigtsen ];
platforms = lib.platforms.unix;
license = lib.licenses.gpl2Plus;
};
})

View File

@@ -13,6 +13,7 @@
makeShellWrapper,
copyDesktopItems,
electron,
darwin,
nixosTests,
}:
@@ -67,6 +68,9 @@ stdenvNoCC.mkDerivation (finalAttrs: {
pnpm
makeShellWrapper
copyDesktopItems
]
++ lib.optionals stdenvNoCC.hostPlatform.isDarwin [
darwin.autoSignDarwinBinariesHook
];
installPhase = ''

View File

@@ -11,3 +11,12 @@ index bef1f6f1d..d2ee86611 100644
appId: `io.freetubeapp.${packageDetails.name}`,
copyright: 'Copyleft © 2020-2026 freetubeapp@protonmail.com',
// asar: false,
@@ -99,7 +101,7 @@ export default {
// Enable ad-hoc signing
// If we skip signing entirely, macOS says that the application is damaged, which makes users open bug reports.
// With an ad-hoc signature it still refuses to launch by default but with the reason that it cannot verify the signature
- identity: '-'
+ identity: null
},
win: {
icon: '_icons/icon.ico',

View File

@@ -2,22 +2,39 @@
lib,
python3Packages,
fetchFromGitHub,
cargo,
rustPlatform,
rustc,
}:
python3Packages.buildPythonApplication (finalAttrs: {
pname = "gersemi";
version = "0.23.2";
version = "0.28.0";
pyproject = true;
src = fetchFromGitHub {
owner = "BlankSpruce";
repo = "gersemi";
tag = finalAttrs.version;
hash = "sha256-sXgu3KscRi/3Myg/4jarMZ4W7/CaQTmyxxbcu8/0o6Y=";
hash = "sha256-92R+jSsE9icZgeNXcPyagZtL4jZNLh2EMCMofM5FFsU=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) src pname version;
sourceRoot = "${finalAttrs.src.name}/gersemi/rust-backend";
hash = "sha256-2ukdpS5oNDE9kf0zFrPXyh+6zA/l0ByUhb71xhJJ8nA=";
};
cargoRoot = "gersemi/rust-backend";
nativeBuildInputs = [
cargo
rustPlatform.cargoSetupHook
rustc
];
build-system = with python3Packages; [
setuptools
setuptools-rust
];
dependencies = with python3Packages; [
@@ -30,6 +47,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
meta = {
description = "Formatter to make your CMake code the real treasure";
homepage = "https://github.com/BlankSpruce/gersemi";
changelog = "https://github.com/BlankSpruce/gersemi/blob/${finalAttrs.version}/CHANGELOG.md";
license = lib.licenses.mpl20;
maintainers = with lib.maintainers; [ xeals ];
mainProgram = "gersemi";

View File

@@ -9,7 +9,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ghr-cli";
version = "0.8.2";
version = "0.9.0";
__structuredAttrs = true;
@@ -17,10 +17,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "chenyukang";
repo = "ghr";
tag = "v${finalAttrs.version}";
hash = "sha256-ELYWoGUP6s2Trtnk9zgDLlT7MtaiHzfsFbzH+LmsKDE=";
hash = "sha256-LmQaBPPX+VRWFHDMvzyhtWcoiEZJocNeyu6EKBX4IjI=";
};
cargoHash = "sha256-siMxS08K+7L8f9A32gEWwQF9PAQh5UPMA+xTkTlz13o=";
cargoHash = "sha256-UCu/z6TzNYV0scWnl5XnN+nj9V9cg9hpUNqFZXlMXaM=";
passthru.updateScript = nix-update-script { };

View File

@@ -8,13 +8,13 @@
buildGoModule (finalAttrs: {
pname = "golds";
version = "0.8.5";
version = "0.8.7";
src = fetchFromGitHub {
owner = "go101";
repo = "golds";
tag = "v${finalAttrs.version}";
hash = "sha256-WYjNvpNT5vuiHqo6TWE+uhptG4fke3eaKkJbeNIwwoU=";
hash = "sha256-plzfpH3+zcsiQlTHR1oTj3ImQrWlJmLI/CzCIu2dGqI=";
};
# nixpkgs is not using the go distpack archive and missing a VERSION file in the source

View File

@@ -7,11 +7,8 @@
copyDesktopItems,
makeDesktopItem,
writableTmpDirAsHomeHook,
swftools,
ffmpeg,
miniupnpc,
enableSwftools ? false,
}:
python3Packages.buildPythonApplication (finalAttrs: {
@@ -35,6 +32,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
buildInputs = [
qt6.qtbase
qt6.qtcharts
qt6.qtmultimedia
];
desktopItems = [
@@ -53,37 +51,40 @@ python3Packages.buildPythonApplication (finalAttrs: {
})
];
dependencies = with python3Packages; [
beautifulsoup4
cbor2
chardet
cloudscraper
dateparser
html5lib
lxml
lz4
numpy
opencv4
olefile
pillow
pillow-heif
psutil
psd-tools
pympler
pyopenssl
pyqt6
pyqt6-charts
pysocks
python-dateutil
python3Packages.mpv
pyyaml
qtpy
requests
show-in-file-manager
send2trash
service-identity
twisted
];
dependencies =
with python3Packages;
[
beautifulsoup4
cbor2
chardet
dateparser
html5lib
lxml
lz4
mpv
numpy
opencv4
olefile
pillow
pillow-heif
pillow-jxl-plugin
psutil
pympler
pyopenssl
pyqt6
pyqt6-charts
pysocks
python-dateutil
pyyaml
qtpy
requests
show-in-file-manager
send2trash
service-identity
twisted
]
++ python3Packages.twisted.optional-dependencies.tls
++ python3Packages.twisted.optional-dependencies.http2;
nativeCheckInputs =
(with python3Packages; [
@@ -121,15 +122,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
# desktop item
mkdir -p "$out/share/icons/hicolor/scalable/apps"
ln -s "$doc/share/doc/hydrus/assets/hydrus-white.svg" "$out/share/icons/hicolor/scalable/apps/hydrus-client.svg"
''
+ lib.optionalString enableSwftools ''
mkdir -p $out/${python3Packages.python.sitePackages}/bin
# swfrender seems to have to be called sfwrender_linux
# not sure if it can be loaded through PATH, but this is simpler
# $out/python3Packages.python.sitePackages/bin is correct NOT .../hydrus/bin
ln -s ${swftools}/bin/swfrender $out/${python3Packages.python.sitePackages}/bin/swfrender_linux
''
+ ''
runHook postInstall
'';
@@ -159,6 +152,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
meta = {
description = "Danbooru-like image tagging and searching system for the desktop";
mainProgram = "hydrus-client";
license = lib.licenses.wtfpl;
homepage = "https://hydrusnetwork.github.io/hydrus/";
changelog = "https://github.com/hydrusnetwork/hydrus/releases/tag/${finalAttrs.src.tag}";

View File

@@ -10,14 +10,14 @@
testers,
}:
let
version = "1.37.0";
version = "1.41.1";
websiteRev = "159c0ac611e85ec85ffe0a8c8bf2c4a0330bdb38";
src = fetchFromGitHub {
owner = "inngest";
repo = "inngest";
tag = "v${version}";
hash = "sha256-m9VFmplaMFD3+Z0qioehsuKeJaS6fUSb++liUabDEuM=";
hash = "sha256-vP8If2O3JIF6DDGLar8ovKeFAS1wp0ql1nt5m7rKIuA=";
};
website = fetchFromGitHub {
@@ -42,7 +42,7 @@ let
pnpm = pnpm_10;
sourceRoot = "${finalAttrs.src.name}/ui";
fetcherVersion = 4;
hash = "sha256-bt/7cpN9EXf2CZFRAaybr7pgJyInV0fdUy7Rv/UcT/I=";
hash = "sha256-9Aud9JUj2C/Bow7lB+P/BgniQXJa2MVqI7TcPICgxrI=";
};
pnpmRoot = "ui";

View File

@@ -8,14 +8,14 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "kitty-bin";
version = "0.47.4";
version = "0.48.2";
__structuredAttrs = true;
strictDeps = true;
src = fetchurl {
url = "https://github.com/kovidgoyal/kitty/releases/download/v${finalAttrs.version}/kitty-${finalAttrs.version}.dmg";
hash = "sha256-tTubGKJ9U61Eol3Wd2/ejEdIe04QOsUNaCrx7o57d+0=";
hash = "sha256-+AT1juS2nHb4TrMoHhQHSCaaY/P0qBYBWo3sKgbSsZU=";
};
# undmg can't read the APFS dmg; -snld keeps the .app's symlinks intact.

View File

@@ -19,15 +19,16 @@
stdenv.mkDerivation (finalAttrs: {
pname = "klayout";
version = "0.30.8";
version = "0.30.10";
src = fetchFromGitHub {
owner = "KLayout";
repo = "klayout";
tag = "v${finalAttrs.version}";
hash = "sha256-RjMH6hrc0jyCLgG1D6cztBp5Fb3W5HgTxVTfI2bxgCs=";
hash = "sha256-ruM9+aD0k5RRpHMAzNNGtU5Xb2rmzz6yIsxxyHVcwRs=";
};
__structuredAttrs = true;
strictDeps = true;
postPatch = ''
@@ -128,6 +129,6 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://www.klayout.de/";
changelog = "https://www.klayout.de/development.html#${finalAttrs.version}";
platforms = lib.platforms.linux ++ lib.platforms.darwin;
maintainers = [ ];
maintainers = [ lib.maintainers.gonsolo ];
};
})

View File

@@ -20,13 +20,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libdeltachat";
version = "2.57.0";
version = "2.58.0";
src = fetchFromGitHub {
owner = "chatmail";
repo = "core";
tag = "v${finalAttrs.version}";
hash = "sha256-MZhb3w4khWjWGEA9XvXgHjYiY9hQ5jCBWRwu6yMuaho=";
hash = "sha256-2ztbUSaxeUHfeDX+nt1uJZ/71no1mxOQphKNYpHNOnY=";
};
patches = [
@@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
cargoDeps = rustPlatform.fetchCargoVendor {
pname = "chatmail-core";
inherit (finalAttrs) version src;
hash = "sha256-gRtNhrKue2cMhq3J/jFQihJTpa6k1IJeIJ9C5hAbiOM=";
hash = "sha256-WZJSx+gswWBaQEXN2NVWLr3xy5uQMtomefEM71nDdlQ=";
};
nativeBuildInputs = [

View File

@@ -2,7 +2,6 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
autoreconfHook,
gtk-doc,
glib,
@@ -11,14 +10,11 @@
pango,
pkg-config,
vala,
extraOnly ? false,
withGtk3 ? false,
gtk2,
gtk3,
extraOnly ? false,
}:
let
gtk = if withGtk3 then gtk3 else gtk2;
inherit (lib) optional optionalString;
in
stdenv.mkDerivation (finalAttrs: {
@@ -41,16 +37,16 @@ stdenv.mkDerivation (finalAttrs: {
];
buildInputs = [
glib
gtk
gtk3
pango
]
++ optional (!extraOnly) menu-cache;
configureFlags = [
"--sysconfdir=/etc"
"--with-gtk=3"
]
++ optional extraOnly "--with-extra-only"
++ optional withGtk3 "--with-gtk=3";
++ optional extraOnly "--with-extra-only";
installFlags = [ "sysconfdir=${placeholder "out"}/etc" ];

View File

@@ -0,0 +1,14 @@
diff --git a/bn_mp_set_double.c b/bn_mp_set_double.c
index a42fc70..4a13539 100644
--- a/bn_mp_set_double.c
+++ b/bn_mp_set_double.c
@@ -3,7 +3,8 @@
/* LibTomMath, multiple-precision integer library -- Tom St Denis */
/* SPDX-License-Identifier: Unlicense */
-#if defined(__STDC_IEC_559__) || defined(__GCC_IEC_559)
+#if defined(__STDC_IEC_559__) || defined(__GCC_IEC_559) || \
+ (defined(__APPLE__) && defined(__aarch64__))
mp_err mp_set_double(mp_int *a, double b)
{
uint64_t frac;

View File

@@ -14,6 +14,10 @@ stdenv.mkDerivation (finalAttrs: {
sha256 = "sha256-KWJy2TQ1mRMI63NgdgDANLVYgHoH6CnnURQuZcz6nQg=";
};
patches = [
./force_mp_set_double.patch
];
postPatch = ''
substituteInPlace makefile.shared \
--replace-fail glibtool libtool \

View File

@@ -28,7 +28,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libxfce4windowing";
version = "4.20.6";
version = "4.20.7";
outputs = [
"out"
@@ -40,7 +40,8 @@ stdenv.mkDerivation (finalAttrs: {
owner = "xfce";
repo = "libxfce4windowing";
tag = "libxfce4windowing-${finalAttrs.version}";
hash = "sha256-lTOCvxUSo0CCok5nPCX7B6RqVoNMYcSb97alR+htBtY=";
fetchSubmodules = true;
hash = "sha256-4z+JP0da0vzJgw13ZB8hI0RC4SyoaRfZyy26eEIVF8Q=";
};
patches = [

View File

@@ -64,14 +64,14 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "liteparse";
version = "2.8.0";
version = "2.11.1";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "run-llama";
repo = "liteparse";
tag = "crates-v${finalAttrs.version}";
hash = "sha256-s6NWlr1zHfnZer31fxUZcitHpjZeQpWmQMgB1Myq+qs=";
hash = "sha256-F2zajjX55EWpJaH/W1I5ZO7Fi11zdRrX1QsPk1T4h6E=";
};
postPatch = ''
@@ -106,7 +106,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
tesseract
];
cargoHash = "sha256-0rqhhTsL0Jft13KxhFUzCPIHV5qVt3FKZxne8/Ek3Zk=";
cargoHash = "sha256-21t92uT5wzIxFpyFH85dBo0T5BKu6jlaXdObLGYF9i0=";
cargoBuildFlags = [
"--package"
"liteparse"

View File

@@ -1,5 +1,7 @@
{ llama-swap }:
# if more "-minimal" options are added
# you may need to update main llama-swap's passthru.tests.nixos
llama-swap.override {
withUI = false;
}

View File

@@ -21,7 +21,7 @@ let
in
buildGoModule (finalAttrs: {
pname = "llama-swap";
version = "240";
version = "249";
outputs = [
"out"
@@ -32,7 +32,7 @@ buildGoModule (finalAttrs: {
owner = "mostlygeek";
repo = "llama-swap";
tag = "v${finalAttrs.version}";
hash = "sha256-cvxF4J9Qvi522dBGjaNZvwwY/bV3wXSE0oGFATjzD4U=";
hash = "sha256-7wXOL8XtcKV6Abdxar25C85ODQ34RYOAGYCTaCXxPpY=";
# 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;
@@ -45,7 +45,7 @@ buildGoModule (finalAttrs: {
'';
};
vendorHash = "sha256-jQRnFGqQvk6my7ejnesv1pylCmEXLs9GKbQJEZdsaYg=";
vendorHash = "sha256-MhR8B2+Yb/xqrTlIxaVHLoQf1eTOO49c65l72IAuZyU=";
# Upstream only embeds the UI when this build tag is set.
tags = lib.optionals withUI [ "embed_ui" ];
@@ -137,7 +137,7 @@ buildGoModule (finalAttrs: {
doInstallCheck = true;
versionCheckProgramArg = "-version";
passthru.tests.nixos = nixosTests.llama-swap;
passthru.tests.nixos = if withUI then nixosTests.llama-swap.full else nixosTests.llama-swap.minimal;
passthru.updateScript = nix-update-script {
extraArgs = [
"--subpackage"

View File

@@ -7,7 +7,7 @@
buildNpmPackage (finalAttrs: {
pname = "${llama-swap.pname}-ui";
inherit (llama-swap) version src;
npmDepsHash = "sha256-cAdFKDhmyaYCoKqSYEuAhu29rBxs7i8uTmU2SHwTLnY=";
npmDepsHash = "sha256-6MPXQtmaz97D9PUU2Nn5DH/2HZNP/rnAWVSck/FiCyk=";
postPatch = ''
substituteInPlace vite.config.ts \

View File

@@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
];
buildInputs = [
(libfm.override { withGtk3 = true; })
libfm
keybinder3
gtk3
libx11

View File

@@ -1,67 +1,27 @@
{
fetchFromGitHub,
fetchpatch,
lib,
oniguruma,
openssl,
pkg-config,
rustPlatform,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "microbin";
version = "2.0.4";
version = "2.1.4";
src = fetchFromGitHub {
owner = "szabodanika";
repo = "microbin";
rev = "v${finalAttrs.version}";
hash = "sha256-fsRpqSYDsuV0M6Xar2GVoyTgCPT39dcKJ6eW4YXCkQ0=";
hash = "sha256-ipSMiUJgbZ0kijGs7Ok8bRTGdFzygIPEY6ZuJ/eRb9s=";
};
cargoHash = "sha256-cQyb9KpmdJ2DB395Ce24JX8YcMLQn3fmeYZUo72L38s=";
cargoHash = "sha256-vvSQfXu67RNBXzfDIE2rcfUOcAfTACaVRvSBBITJ9gY=";
patches = [
# Prefix some URLs with args.public_path_as_str() by PeterUpfold
# https://github.com/szabodanika/microbin/pull/194
# MicroBin returns wrong URLs on deployments with non-root URLs.
(fetchpatch {
name = "0001-fixup-explicit-urls.patch";
url = "https://github.com/szabodanika/microbin/compare/b8a0c5490d681550d982ad02d67a1aaa0897f503..df062134cbaf3fd0ebcb67af8453a4c66844cd13.patch";
hash = "sha256-h13FBuzu2O4AwdhRHF5EX5LaKyPeWJAcaV6SGTaYzTg=";
})
# Minor fixups by LuK1337
# https://github.com/szabodanika/microbin/pull/211
# Fixup styling, password protected and private pastas.
(fetchpatch {
name = "0002-minor-fixups.patch";
url = "https://github.com/szabodanika/microbin/compare/b8a0c5490d681550d982ad02d67a1aaa0897f503..3b0c025e9b6dc1ca69269541940bdb53032a048a.patch";
hash = "sha256-cZB/jx5d6F+C4xOn49TQ1at/Z4ov26efo9PTtWEdCHw=";
})
# Fix MICROBIN_ETERNAL_PASTA by SouthFox-D
# https://github.com/szabodanika/microbin/pull/215
# MICROBIN_ETERNAL_PASTA config doesn't work without this.
(fetchpatch {
name = "0003-fix-microbin-eternal-pasta.patch";
url = "https://github.com/szabodanika/microbin/compare/b8a0c5490d681550d982ad02d67a1aaa0897f503..c7c846c64344b8d51500aa9a4b2e9a92de8d09d8.patch";
hash = "sha256-gCio73Jt0F7YCFtQxtf6pPBDLNcyOAcfSsiyjLFzEzY=";
})
# Fix raw pastes returning 404 by GizmoTjaz
# https://github.com/szabodanika/microbin/pull/218
# Existing pastas return code 404 even when they exist.
(fetchpatch {
name = "0004-fix-raw-pastas-returning-404.patch";
url = "https://github.com/szabodanika/microbin/compare/b8a0c5490d681550d982ad02d67a1aaa0897f503..e789901520824d4bf610d28923097affe85ead7d.patch";
hash = "sha256-R47ozwu/FD1kCu5nx4Gf1cOFeLVFdS67K8RNDygwoZM=";
})
];
nativeBuildInputs = [
pkg-config
];
nativeBuildInputs = [ pkg-config ];
buildInputs = [
oniguruma
@@ -73,6 +33,8 @@ rustPlatform.buildRustPackage (finalAttrs: {
RUSTONIG_SYSTEM_LIBONIG = true;
};
passthru.updateScript = nix-update-script { };
meta = {
description = "Tiny, self-contained, configurable paste bin and URL shortener written in Rust";
homepage = "https://github.com/szabodanika/microbin";

View File

@@ -6,13 +6,13 @@
buildGoModule (finalAttrs: {
pname = "miller";
version = "6.20.2";
version = "6.21.0";
src = fetchFromGitHub {
owner = "johnkerl";
repo = "miller";
rev = "v${finalAttrs.version}";
sha256 = "sha256-unzjbPuOmppEY56JnV+A3TZuaHMLNeZS3n7tKpudCXk=";
sha256 = "sha256-E/O+uzYaiHBxCOZ0VCmpNlJZDaEBKlCtKAXgm5iY/ps=";
};
outputs = [
@@ -20,7 +20,7 @@ buildGoModule (finalAttrs: {
"man"
];
vendorHash = "sha256-ZA9ueehDXsRI3eEE44hJziWKAAsZXkF77hBkYvX2k+U=";
vendorHash = "sha256-22RaVj9z7hrXKoKtEDjjUL1gYObhFRvstTIRtDtyD5U=";
postInstall = ''
mkdir -p $man/share/man/man1

View File

@@ -7,75 +7,77 @@
writableTmpDirAsHomeHook,
}:
let
node_modules =
finalAttrs:
stdenvNoCC.mkDerivation {
pname = "${finalAttrs.pname}-node_modules";
inherit (finalAttrs) version src;
__structuredAttrs = true;
strictDeps = true;
impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
"GIT_PROXY_COMMAND"
"SOCKS_SERVER"
];
nativeBuildInputs = [
bun
writableTmpDirAsHomeHook
];
dontConfigure = true;
buildPhase = ''
runHook preBuild
bun install \
--cpu="*" \
--frozen-lockfile \
--ignore-scripts \
--no-progress \
--os="*"
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
find . -type d -name node_modules -exec cp -R --parents {} $out \;
runHook postInstall
'';
# NOTE: Required else we get errors that our fixed-output derivation references store paths
dontFixup = true;
outputHash = "sha256-aL2kNCYF6Y4QnEvlpQ9U5Qe+K8a1J2X7BvJqE+BnRcY=";
outputHashAlgo = "sha256";
outputHashMode = "recursive";
};
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "models-dev";
version = "sdk-v0.0.5-unstable-2026-08-04";
version = "sdk-v0.0.5-unstable-2026-08-11";
__structuredAttrs = true;
strictDeps = true;
src = fetchFromGitHub {
owner = "anomalyco";
repo = "models.dev";
rev = "183bea88e4c0e9922c81eddb3987d9edb3a640ed";
hash = "sha256-h7GsDMuZFOzFVR0Yp3C0fEJAqQi0XLrC/hohMUKE6/8=";
rev = "4abaeb87f8c672300eb65e050d6ffc41b1d4046b";
hash = "sha256-ttfFpm/0hdBgCS920wf8f4ydW9UGj96SDlrP4WnwZT4=";
};
node_modules = stdenvNoCC.mkDerivation {
pname = "${pname}-node_modules";
inherit version src;
impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
"GIT_PROXY_COMMAND"
"SOCKS_SERVER"
];
nativeBuildInputs = [
bun
writableTmpDirAsHomeHook
];
dontConfigure = true;
buildPhase = ''
runHook preBuild
bun install \
--cpu="*" \
--frozen-lockfile \
--ignore-scripts \
--no-progress \
--os="*"
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
find . -type d -name node_modules -exec cp -R --parents {} $out \;
runHook postInstall
'';
# NOTE: Required else we get errors that our fixed-output derivation references store paths
dontFixup = true;
outputHash = "sha256-aL2kNCYF6Y4QnEvlpQ9U5Qe+K8a1J2X7BvJqE+BnRcY=";
outputHashAlgo = "sha256";
outputHashMode = "recursive";
};
in
stdenvNoCC.mkDerivation (finalAttrs: {
inherit
pname
version
src
node_modules
;
nativeBuildInputs = [ bun ];
configurePhase = ''
runHook preConfigure
cp -R ${node_modules}/. .
cp -R ${finalAttrs.passthru.node_modules}/. .
runHook postConfigure
'';
@@ -100,6 +102,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
'';
passthru = {
jsonschema = "${finalAttrs.finalPackage}/dist/model-schema.json";
node_modules = node_modules finalAttrs;
updateScript = nix-update-script {
extraArgs = [
"--version=branch"
@@ -107,7 +111,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
"node_modules"
];
};
jsonschema = "${finalAttrs.finalPackage}/dist/model-schema.json";
};
meta = {

View File

@@ -26,13 +26,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "mold-unwrapped";
version = "2.41.0";
version = "2.42.0";
src = fetchFromGitHub {
owner = "rui314";
repo = "mold";
tag = "v${finalAttrs.version}";
hash = "sha256-N+dFJk4KJY8E0UBrAlKXpMSuiseF4KAtpFMUA/nbleQ=";
hash = "sha256-PPKYjdU4aLxhGLSZTTZFt06/yVi1cTjJalovr/ohDew=";
};
nativeBuildInputs = [

View File

@@ -40,7 +40,7 @@ assert
pythonPackages.buildPythonApplication (finalAttrs: {
pname = "music-assistant";
version = "2.9.10";
version = "2.9.13";
pyproject = true;
__structuredAttrs = true;
@@ -48,7 +48,7 @@ pythonPackages.buildPythonApplication (finalAttrs: {
owner = "music-assistant";
repo = "server";
tag = finalAttrs.version;
hash = "sha256-v9xFW83/v8CjKa04oql1yGQKB58VQtFmXZTN/KMN/gM=";
hash = "sha256-HCqd8++PKdbuzyeztkcLUXhTivTLJEl749VD2oCsHZA=";
};
patches = [
@@ -204,6 +204,7 @@ pythonPackages.buildPythonApplication (finalAttrs: {
"snapcast"
"sonic_analysis"
"sonic_similarity"
"sonos"
"sonos_s1"
"tidal"
"wiim"

View File

@@ -1,7 +1,7 @@
# Do not edit manually, run ./update-providers.py
{
version = "2.9.10";
version = "2.9.13";
builtins = [
"builtin"
"coverartarchive"

View File

@@ -12,7 +12,7 @@ from functools import cache
from io import BytesIO
from pathlib import Path
from subprocess import check_output, run
from typing import Dict, Final, List, Optional, Set, Union, cast
from typing import Final, cast
from urllib.request import urlopen
from jinja2 import Environment
@@ -82,15 +82,12 @@ EXTRA_LIST_DEPS = {
}
def run_sync(cmd: List[str]) -> None:
def run_sync(cmd: list[str]) -> None:
print(f"$ {' '.join(cmd)}")
process = run(cmd)
if process.returncode != 0:
sys.exit(1)
run(cmd, check=True)
async def check_async(cmd: List[str]) -> str:
async def check_async(cmd: list[str]) -> str:
print(f"$ {' '.join(cmd)}")
process = await asyncio.create_subprocess_exec(
*cmd, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE
@@ -113,11 +110,11 @@ class Nix:
]
@classmethod
async def _run(cls, args: List[str]) -> Optional[str]:
async def _run(cls, args: list[str]) -> str | None:
return await check_async(cls.base_cmd + args)
@classmethod
async def eval(cls, expr: str) -> Union[List, Dict, int, float, str, bool]:
async def eval(cls, expr: str) -> list | dict | int | float | str | bool:
response = await cls._run(["eval", "-f", f"{ROOT}/default.nix", "--json", expr])
if response is None:
raise RuntimeError("Nix eval expression returned no response")
@@ -127,15 +124,16 @@ class Nix:
raise RuntimeError("Nix eval response could not be parsed from JSON")
async def get_provider_manifests(version: str = "master") -> List:
async def get_provider_manifests(version: str = "master") -> list:
manifests = []
with tempfile.TemporaryDirectory() as tmp:
with urlopen(
f"https://github.com/music-assistant/music-assistant/archive/refs/tags/{version}.tar.gz"
) as response:
tarfile.open(fileobj=BytesIO(response.read())).extractall(
tmp, filter="data"
)
with (
urlopen( # noqa: ASYNC210
f"https://github.com/music-assistant/music-assistant/archive/refs/tags/{version}.tar.gz"
) as response,
tarfile.open(fileobj=BytesIO(response.read())) as tar,
):
tar.extractall(tmp, filter="data")
basedir = Path(os.path.join(tmp, f"server-{version}"))
sys.path.append(str(basedir))
@@ -179,10 +177,12 @@ class NoMatch(Exception):
def resolve_package_attribute(package: str) -> str:
pattern = re.compile(rf"^music-assistant\.pythonPackages\.{package}$", re.I)
pattern = re.compile(
rf"^music-assistant\.pythonPackages\.{package}$", re.IGNORECASE
)
packages = packageset_attributes()
matches = []
for attr in packages.keys():
for attr in packages:
if pattern.match(attr):
matches.append(attr.split(".")[-1])
@@ -215,7 +215,7 @@ class Provider:
return hash(self.domain)
async def resolve_providers(manifests) -> tuple[Set, Set]:
async def resolve_providers(manifests) -> tuple[set, set]:
errors = []
providers = set()
for manifest in manifests:
@@ -257,7 +257,7 @@ async def resolve_providers(manifests) -> tuple[Set, Set]:
return providers, builtins
def render(outpath: str, version: str, providers: Set, builtins: Set):
def render(outpath: str, version: str, providers: set, builtins: set):
env = Environment()
template = env.from_string(TEMPLATE)
template.stream(version=version, providers=providers, builtins=builtins).dump(
@@ -278,7 +278,7 @@ async def main():
if __name__ == "__main__":
run_sync(["pyright", __file__])
run_sync(["ruff", "check", "--ignore=E501", __file__])
run_sync(["ruff", "check", "--ignore=EXE005", __file__])
run_sync(["isort", __file__])
run_sync(["ruff", "format", __file__])
asyncio.run(main())

View File

@@ -4,17 +4,16 @@
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "neural-amp-modeler-lv2";
version = "0.1.4";
version = "0.2.3";
src = fetchFromGitHub {
owner = "mikeoliphant";
repo = "neural-amp-modeler-lv2";
tag = finalAttrs.version;
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-5BOZOocZWWSWawXJFMAgM0NR0s0CbkzDVr6fnvZMvd0=";
hash = "sha256-TkynGmhwnkTqieJNuC+H2rDgxYZ9IFvqukfmtbSj790=";
};
nativeBuildInputs = [
@@ -22,7 +21,10 @@ stdenv.mkDerivation (finalAttrs: {
];
meta = {
maintainers = [ lib.maintainers.viraptor ];
maintainers = [
lib.maintainers.viraptor
lib.maintainers.gabyx
];
description = "Neural Amp Modeler LV2 plugin implementation";
homepage = finalAttrs.src.meta.homepage;
license = lib.licenses.gpl3;

View File

@@ -115,7 +115,6 @@ stdenv.mkDerivation (finalAttrs: {
license = licenses.gpl3Plus;
platforms = platforms.unix;
maintainers = with lib.maintainers; [ Holiu618 ];
broken = stdenv.hostPlatform.isAarch64;
mainProgram = "NotepadNext";
};
})

View File

@@ -7,13 +7,13 @@
buildGoModule (finalAttrs: {
pname = "openfga";
version = "1.18.2";
version = "1.18.3";
src = fetchFromGitHub {
owner = "openfga";
repo = "openfga";
rev = "v${finalAttrs.version}";
hash = "sha256-lmTrAED94yXrdlhQu6BUdsEicMhkgBzReBx5/X36k+M=";
hash = "sha256-iqxoUU5mMh4HntDeOvS5F45C7TB9pNHRB9W6Ki5zbEs=";
};
vendorHash = "sha256-lB6DoULR0zTOcdVAQUNIH0Rwa6mPWh7y7erClmk0mws=";

View File

@@ -13,13 +13,13 @@
buildGoModule (finalAttrs: {
pname = "opengist";
version = "1.15.0";
version = "1.15.1";
src = fetchFromGitHub {
owner = "thomiceli";
repo = "opengist";
tag = "v${finalAttrs.version}";
hash = "sha256-yE9HvRFEQzv3Fhhbs9hXeLc4vudCMi+NMA2T8YUlREw=";
hash = "sha256-BOqAmQsT8MtohE/1k2YaNZv8cmruWzLur+yyNs3ARcQ=";
};
frontend = buildNpmPackage {

View File

@@ -6,7 +6,8 @@
ruby_3_4,
testers,
}:
((bundlerApp.override { ruby = ruby_3_4; }) {
(bundlerApp.override { ruby = ruby_3_4; }) {
pname = "openvox";
gemdir = ./.;
exes = [ "puppet" ];
@@ -28,11 +29,4 @@
mainProgram = "puppet";
maintainers = with lib.maintainers; [ skyethepinkcat ];
};
}).overrideAttrs
# Workaround `bundlerApp` not specifying `__structuredAttrs = true` and `strictDeps = true` for its result package.
{
# TODO(@ShamrockLee, @skyethepinkcat): Revert/remove after PR #539303 lands on the master branch.
__structuredAttrs = true;
# TODO(@ShamrockLee, @skyethepinkcat): Revert/remove after PR #540069 lands on the master branch.
strictDeps = true;
}
}

View File

@@ -16,9 +16,6 @@
nix-update-script,
}:
let
libfm' = libfm.override { withGtk3 = true; };
in
stdenv.mkDerivation (finalAttrs: {
pname = "pcmanfm";
version = "1.4.0";
@@ -40,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
glib
gtk3
libfm'
libfm
libx11
pango
adwaita-icon-theme

View File

@@ -7,29 +7,30 @@
rustPlatform,
useMoldLinker,
versionCheckHook,
withMold ? with clangStdenv.hostPlatform; isUnix && !isDarwin,
withMold ? with clangStdenv.hostPlatform; isLinux,
}:
let
stdenv = if withMold then useMoldLinker clangStdenv else clangStdenv;
in
rustPlatform.buildRustPackage.override { inherit stdenv; } (finalAttrs: {
pname = "pgdog";
version = "0.1.49";
version = "0.1.52";
src = fetchFromGitHub {
owner = "pgdogdev";
repo = "pgdog";
tag = "v${finalAttrs.version}";
hash = "sha256-zfVNF/y1wzkvPjJ64HSzez0pOR/AEZHWc/S+cUYgat0=";
hash = "sha256-k2M5D4/g/NqCC34lnzNmTO0v5rTNClBA94rUlHdYEno=";
};
cargoHash = "sha256-B4jigKyK19IhCygF9ZMvO6rHDrEquLLpTVeptaFBuX0=";
cargoHash = "sha256-lKDaBpbfNmOox96KVwh2MGj5u6V2Ak3g2vSrombUChI=";
# Hardcoded paths for C compiler and linker
postPatch = ''
rm .cargo/config.toml
'';
env.RUSTFLAGS = "--cfg tokio_unstable";
cargoBuildFlags = [
"--package"
"pgdog"

View File

@@ -13,7 +13,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
src = fetchzip {
url = "https://github.com/yuru7/PlemolJP/releases/download/v${finalAttrs.version}/PlemolJP_HS_v${finalAttrs.version}.zip";
hash = "sha256-V21T8ktNZE4nq3SH6aN9iIJHmGTkZuMsvT84yHbwSqI=";
hash = "sha256-ebBPun8CVHBOxs3c9SNHvT8lP1YqUH4DhBLAZk6NOrE=";
};
installPhase = ''

View File

@@ -13,7 +13,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
src = fetchzip {
url = "https://github.com/yuru7/PlemolJP/releases/download/v${finalAttrs.version}/PlemolJP_NF_v${finalAttrs.version}.zip";
hash = "sha256-m8zR9ySl88DnVzG4fKJtc9WjSLDMLU4YDX+KXhcP2WU=";
hash = "sha256-7DVWDxciW5pEuaIdIinibwPi7QjNsQBPFq/wtP+fTeg=";
};
installPhase = ''

View File

@@ -3,15 +3,17 @@
stdenvNoCC,
fetchzip,
nix-update-script,
plemoljp-hs,
plemoljp-nf,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "plemoljp";
version = "3.0.0";
version = "3.1.0";
src = fetchzip {
url = "https://github.com/yuru7/PlemolJP/releases/download/v${finalAttrs.version}/PlemolJP_v${finalAttrs.version}.zip";
hash = "sha256-R4zC1pnM72FVqBQ5d03z8vyVccsM163BE15m2hdEnSA=";
hash = "sha256-X4DUAU7uicWtm8o3L9HmfU9By1YMnnjVrVU0iyw273A=";
};
installPhase = ''
@@ -26,8 +28,16 @@ stdenvNoCC.mkDerivation (finalAttrs: {
'';
passthru = {
inherit plemoljp-hs plemoljp-nf;
updateScript = nix-update-script {
extraArgs = [ "--version-regex=^v([0-9.]+)$" ];
extraArgs = [
"--version-regex=^v([0-9.]+)$"
"--subpackage"
"plemoljp-hs"
"--subpackage"
"plemoljp-nf"
];
};
};

View File

@@ -17,14 +17,14 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "polychromatic";
version = "0.9.7";
version = "0.9.8";
pyproject = false;
src = fetchFromGitHub {
owner = "polychromatic";
repo = "polychromatic";
tag = "v${finalAttrs.version}";
hash = "sha256-2Uo6/74o+cSQQsYsE+7nVDsetnaYjQzL8xkJhUN3E2o=";
hash = "sha256-5+7u99+fwDXg3s32QyjLO7X0irw5wY7pUDvT6sSv5nA=";
};
postPatch = ''

View File

@@ -0,0 +1,76 @@
{
fetchFromGitHub,
fetchPnpmDeps,
lib,
nix-update-script,
nodejs,
pnpmConfigHook,
pnpm_11,
stdenv,
}:
let
pnpm = pnpm_11;
in
stdenv.mkDerivation (finalAttrs: {
pname = "prettier-plugin-tailwindcss";
version = "0.8.1";
__structuredAttrs = true;
strictDeps = true;
src = fetchFromGitHub {
owner = "tailwindlabs";
repo = "prettier-plugin-tailwindcss";
tag = "v${finalAttrs.version}";
hash = "sha256-mqK3R1+VJ8PqKhkltZnQpTAn8mbQC4VfptoaqmxqobM=";
};
nativeBuildInputs = [
nodejs
pnpm
pnpmConfigHook
];
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm;
fetcherVersion = 4;
hash = "sha256-ZhtyQsEnIoA9SpyD+oaXFzGSDAfufWnwiL7C8ImLZ7E=";
};
buildPhase = ''
runHook preBuild
NODE_ENV=production pnpm run build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib/node_modules/prettier-plugin-tailwindcss
# Required for `pnpm deploy` to work without the `--legacy` flag
pnpm config set --location=project inject-workspace-packages true
pnpm --filter=prettier-plugin-tailwindcss --prod \
deploy $out/lib/node_modules/prettier-plugin-tailwindcss/
# Workaround for "Cannot find package 'prettier' imported from ..."
cp -rL node_modules/prettier $out/lib/node_modules/prettier-plugin-tailwindcss/node_modules/
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Formatter plugin for Tailwind CSS";
homepage = "https://github.com/tailwindlabs/prettier-plugin-tailwindcss";
changelog = "https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/v${finalAttrs.version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ starryreverie ];
};
})

View File

@@ -9,14 +9,14 @@
python3Packages.buildPythonApplication rec {
pname = "pytr";
version = "0.4.9";
version = "0.4.10";
pyproject = true;
src = fetchFromGitHub {
owner = "pytr-org";
repo = "pytr";
tag = "v${version}";
hash = "sha256-W6OtXK9c8NV8wIhvaym2tAg6UNJtCEPk1mt5VB0+Rkg=";
hash = "sha256-xo/J0POH21mLm//+gpfhuxIGdKGHJpFbpL82TIDufrM=";
};
build-system = with python3Packages; [

View File

@@ -7,16 +7,24 @@
deno,
fetchurl,
dart-sass,
installShellFiles,
rWrapper,
rPackages,
extraRPackages ? [ ],
makeWrapper,
runCommand,
python3,
quarto,
extraPythonPackages ? ps: [ ],
sysctl,
which,
autoPatchelfHook,
bashNonInteractive,
coreutils,
versionCheckHook,
writeShellScript,
curl,
jq,
common-updater-scripts,
}:
let
@@ -36,20 +44,39 @@ let
]
++ (extraPythonPackages ps)
);
# bin/quarto resolves every bundled tool through bin/tools/$ARCH_DIR, which it
# derives from uname and can only ever be x86_64 or aarch64
archDir = stdenv.hostPlatform.parsed.cpu.name;
denoDomExt = if stdenv.hostPlatform.isDarwin then "dylib" else "so";
denoDomPlugin = "libplugin.${denoDomExt}";
in
stdenv.mkDerivation (finalAttrs: {
pname = "quarto";
version = "1.9.37";
version = "1.10.18";
src = fetchurl {
url = "https://github.com/quarto-dev/quarto-cli/releases/download/v${finalAttrs.version}/quarto-${finalAttrs.version}-linux-amd64.tar.gz";
hash = "sha256-ePzZDpg+Pn2+Pw0ZIcwQJTweynuSwg3UvCo8G8oKmvU=";
};
src =
finalAttrs.passthru.sources.${stdenv.hostPlatform.system}
or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
# the macOS tarball unpacks flat instead of into a versioned directory
sourceRoot = if stdenv.hostPlatform.isDarwin then "." else "quarto-${finalAttrs.version}";
strictDeps = true;
nativeBuildInputs = [
installShellFiles
makeWrapper
which
];
]
++ lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
buildInputs = [
# bin/quarto is a bash script; under strictDeps patchShebangs only resolves
# its interpreter from the host dependencies
bashNonInteractive
]
# libgcc_s.so.1 for the retained typst-gather and deno_dom binaries
++ lib.optionals stdenv.hostPlatform.isLinux [ (stdenv.cc.cc.libgcc or null) ];
dontStrip = true;
@@ -60,6 +87,13 @@ stdenv.mkDerivation (finalAttrs: {
--set-default QUARTO_ESBUILD ${lib.getExe esbuild} \
--set-default QUARTO_DART_SASS ${lib.getExe dart-sass} \
--set-default QUARTO_TYPST ${lib.getExe typst} \
--set-default QUARTO_DENO_DOM $out/bin/tools/${archDir}/deno_dom/${denoDomPlugin} \
--suffix PATH : ${
lib.makeBinPath [
coreutils
which
]
} \
${lib.optionalString (rWrapper != null) "--set-default QUARTO_R ${rWithPackages}/bin/R"} \
${
lib.optionalString (python3 != null) "--set-default QUARTO_PYTHON ${pythonWithPackages}/bin/python3"
@@ -73,8 +107,46 @@ stdenv.mkDerivation (finalAttrs: {
runHook preInstall
mkdir -p $out/bin $out/share
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# the macOS asset bundles a complete tool tree for every architecture,
# alongside AppleDouble metadata files
find bin/tools -mindepth 1 -maxdepth 1 -type d ! -name ${archDir} -exec rm -r {} +
find . -name '._*' -delete
''
+ ''
tools=bin/tools/${archDir}
if [ ! -d "$tools" ]; then
echo "upstream no longer ships $tools, which is where quarto looks up its tools" >&2
exit 1
fi
rm -r bin/tools
# swap the vendored tools for the nixpkgs builds. typst-gather and deno_dom
# have no nixpkgs equivalent and are kept: dropping the whole directory
# broke `quarto call typst-gather` and the DENO_DOM_PLUGIN export.
rm -r "$tools"/deno "$tools"/pandoc "$tools"/typst "$tools"/esbuild "$tools"/dart-sass
ln -s ${lib.getExe deno} "$tools"/deno
ln -s ${lib.getExe pandoc} "$tools"/pandoc
ln -s ${lib.getExe typst} "$tools"/typst
ln -s ${lib.getExe esbuild} "$tools"/esbuild
mkdir "$tools"/dart-sass
ln -s ${lib.getExe dart-sass} "$tools"/dart-sass/sass
# the linux-arm64 asset names the plugin libplugin-linux-aarch64.so, while
# bin/quarto and QUARTO_DENO_DOM only ever point at the unsuffixed name; a
# dlopen miss is swallowed and silently downgrades quarto to the wasm parser
if [ ! -e "$tools"/deno_dom/${denoDomPlugin} ]; then
mv "$tools"/deno_dom/libplugin*.${denoDomExt} "$tools"/deno_dom/${denoDomPlugin}
fi
# pre-1.4 location, still probed by the VS Code extension
ln -s ${archDir}/pandoc bin/tools/pandoc
# share/man also holds the qmd the page is generated from, which
# compressManPages would gzip in place for mandb to trip over
installManPage --name quarto.1 share/man/quarto-man.man
rm -r share/man
mv bin/* $out/bin
mv share/* $out/share
@@ -82,17 +154,63 @@ stdenv.mkDerivation (finalAttrs: {
runHook postInstall
'';
passthru.tests = {
quarto-check =
runCommand "quarto-check"
{
nativeBuildInputs = [ which ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ sysctl ];
}
''
export HOME="$(mktemp -d)"
${quarto}/bin/quarto check
touch $out
'';
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
passthru = {
sources = {
x86_64-linux = fetchurl {
url = "https://github.com/quarto-dev/quarto-cli/releases/download/v${finalAttrs.version}/quarto-${finalAttrs.version}-linux-amd64.tar.gz";
hash = "sha256-r60HG1vSLALy0wBpV0MYnTZQ4FN6Uwc+ZUtjDP8rDHM=";
};
aarch64-linux = fetchurl {
url = "https://github.com/quarto-dev/quarto-cli/releases/download/v${finalAttrs.version}/quarto-${finalAttrs.version}-linux-arm64.tar.gz";
hash = "sha256-9qB99o4lMwtd809l099mvKYFrM47gwxZOljpGITUz2w=";
};
# the macOS asset is a universal binary carrying both architectures
aarch64-darwin = fetchurl {
url = "https://github.com/quarto-dev/quarto-cli/releases/download/v${finalAttrs.version}/quarto-${finalAttrs.version}-macos.tar.gz";
hash = "sha256-3danGp4ESKsV+2VbxYnhHLZYmiSOw1zNf39EE3UxaI4=";
};
};
tests = {
quarto-check =
runCommand "quarto-check"
{
nativeBuildInputs = [ which ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ sysctl ];
}
''
export HOME="$(mktemp -d)"
${lib.getExe finalAttrs.finalPackage} check
touch $out
'';
};
updateScript = writeShellScript "update-quarto" ''
set -o errexit -o pipefail
export PATH="${
lib.makeBinPath [
curl
jq
common-updater-scripts
]
}"
NEW_VERSION=$(curl --fail --silent --show-error --location https://api.github.com/repos/quarto-dev/quarto-cli/releases/latest | jq '.tag_name | ltrimstr("v")' --raw-output)
# a truncated response still leaves jq at exit 0, and an empty version
# would reach update-source-version
if [[ -z "$NEW_VERSION" || "$NEW_VERSION" = "null" ]]; then
echo "Could not read the latest release tag from the GitHub API." >&2
exit 1
fi
if [[ "${finalAttrs.version}" = "$NEW_VERSION" ]]; then
echo "The new version same as the old version."
exit 0
fi
for platform in ${lib.escapeShellArgs finalAttrs.meta.platforms}; do
update-source-version "''${UPDATE_NIX_ATTR_PATH:-quarto}" "$NEW_VERSION" --ignore-same-version --source-key="sources.$platform"
done
'';
};
meta = {
@@ -104,11 +222,11 @@ stdenv.mkDerivation (finalAttrs: {
'';
homepage = "https://quarto.org/";
changelog = "https://github.com/quarto-dev/quarto-cli/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl2Plus;
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
mrtarantoga
];
platforms = lib.platforms.all;
platforms = builtins.attrNames finalAttrs.passthru.sources;
sourceProvenance = with lib.sourceTypes; [
binaryNativeCode
binaryBytecode

View File

@@ -8,17 +8,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "rura";
version = "1.10.0";
version = "1.11.0";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "tlipinski";
repo = "rura";
tag = "v${finalAttrs.version}";
hash = "sha256-yxYTBXGFX2PdtzgYexnXyjNMcDTnfwsy2s8S0y4hp+M=";
hash = "sha256-oPvO6oCefkyCkhpidfyQzW4ckN2cxSKijdWlKjWc6PU=";
};
cargoHash = "sha256-FnLeyUUwQFWLNLLQX538LHIlzwNRg+JfAW9r3IiBnWg=";
cargoHash = "sha256-V69RoAhk3Q7RmlgOEhLsoVHofGxY8aT/iZHoWEv47qw=";
passthru = {
updateScript = nix-update-script { };

View File

@@ -19,13 +19,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "shopify";
version = "4.6.0";
version = "4.6.1";
src = fetchFromGitHub {
owner = "shopify";
repo = "cli";
tag = finalAttrs.version;
hash = "sha256-iSXONoEcnLvaEGRzsXhyogjOw3jiQ5+JqDyKgplL9zg=";
hash = "sha256-c+fp/ml5x4CLmpkTxAZrB/zqaDWuG3cgrjNdmuvHdKY=";
};
pnpmDeps = fetchPnpmDeps {

View File

@@ -26,13 +26,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "solanum";
version = "0-unstable-2026-06-23";
version = "0-unstable-2026-07-26";
src = fetchFromGitHub {
owner = "solanum-ircd";
repo = "solanum";
rev = "a17cc145a7de564e49b84807d335289f30b12d00";
hash = "sha256-tlocAC1U5WM3AKPxmBqqGGN05t+rwgA3p2im0NKKBuQ=";
rev = "115b1e2e8c3d94a490cdcb0fc1f7a4448cefc6bf";
hash = "sha256-xy3nRooKpTmEr8WRdU8Xs4bmNwLv9oTk2y5KvpZjfDc=";
};
postPatch = ''

View File

@@ -12,16 +12,16 @@
buildGoModule (finalAttrs: {
pname = "stackit-cli";
version = "0.68.0";
version = "0.70.0";
src = fetchFromGitHub {
owner = "stackitcloud";
repo = "stackit-cli";
rev = "v${finalAttrs.version}";
hash = "sha256-ifi+lUXZ0pn5GdjdeyjRD1Xixe/wZGlUp7gKvH6udng=";
hash = "sha256-jKOJPpmELJBkljVetIJkd5cZ2FMz687FEUCwV2ZVFjA=";
};
vendorHash = "sha256-hAgtOsfHh5QtbWbItHAckuw7wP+aeAAL5JDYZXokgJ0=";
vendorHash = "sha256-ptS1n1Z74q6NnFiOqDrBZLjjfNdpaZuZiggXKg5hRO4=";
subPackages = [ "." ];

View File

@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "stakk";
version = "1.17.2";
version = "1.19.0";
src = fetchFromGitHub {
owner = "glennib";
repo = "stakk";
tag = "v${finalAttrs.version}";
hash = "sha256-+q94xzOV9rA7B1pBBt9ZjESzcV8mhraiMGgDQekZM7Y=";
hash = "sha256-tbzy8+dt5nxGODhng1Mb07PiEesIMZ0DROPLZBDWusI=";
};
cargoHash = "sha256-/Wx1n5zt+rBGtM04bi2PTiO8zqCJvgKz5aoTo7f08NI=";
cargoHash = "sha256-t/O+EXeuGZXQn1fwVnjF2rAleDUWFTwIaSF+NSGrX4w=";
useNextest = true;

View File

@@ -10,13 +10,13 @@
swift.stdenv.mkDerivation (finalAttrs: {
pname = "swiftformat";
version = "0.61.1";
version = "0.62.1";
src = fetchFromGitHub {
owner = "nicklockwood";
repo = "SwiftFormat";
rev = finalAttrs.version;
sha256 = "sha256-h0d/vdoKZuYJkMO+TmFFgomaSVA94P+MKclSlBlIleE=";
sha256 = "sha256-LW/ihr0PaQyd8/SbOD1p8MOETbALO1RQMaEspt3y0Hs=";
};
nativeBuildInputs = [

View File

@@ -12,20 +12,20 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "taze";
version = "19.16.0";
version = "20.0.1";
src = fetchFromGitHub {
owner = "antfu-collective";
repo = "taze";
tag = "v${finalAttrs.version}";
hash = "sha256-VVWceyF/jgsdJt33FbHJUNCey5peIB3BxhmOwxhVaHI=";
hash = "sha256-0BvMBb7QFxZgR+6V1xP3CZWmmW3VU3r2/rtMytm/Eiw=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
pnpm = pnpm_11;
fetcherVersion = 4;
hash = "sha256-p0rkOHqieg1K+QWAMr2JtXL5Cq6iEa+Skt0B0Iq/OpI=";
hash = "sha256-mylj8NazfOAs9wHoCawcU0/5xy2pYGkKb/B9g5BhUuY=";
};
nativeBuildInputs = [

View File

@@ -1,85 +0,0 @@
diff --git a/Makefile b/Makefile
index a6a140f..fb9a8b9 100644
--- a/Makefile
+++ b/Makefile
@@ -518,7 +518,7 @@ src/po/%.po: _build/toppler.pot
# TODO dist and windist..
.PHONY: install
-install: toppler.dat toppler $(TRANSLATIONFILES_INST)
+install: toppler $(TRANSLATIONFILES_INST)
$(INSTALL) -m755 -d $(DESTDIR)$(PKGDATADIR)
$(INSTALL) -m755 -d $(DESTDIR)$(BINDIR)
$(INSTALL) -m755 -d $(DESTDIR)$(MANDIR)/man6
diff --git a/src/decl.cc b/src/decl.cc
index f80f83e..8a7bbd9 100644
--- a/src/decl.cc
+++ b/src/decl.cc
@@ -22,6 +22,7 @@
#include <SDL.h>
#include <cstdlib>
+#include <algorithm>
#include <cstring>
#include <sys/stat.h>
#include <unistd.h>
diff --git a/src/keyb.cc b/src/keyb.cc
index c3c13df..7d37847 100644
--- a/src/keyb.cc
+++ b/src/keyb.cc
@@ -156,7 +156,7 @@ static void handleEvents(void) {
mouse_button = e.button.button;
break;
case SDL_QUIT:
- fprintf(stderr, _("Wheee!!\n").c_str());
+ fprintf(stderr, "%s", _("Wheee!!\n").c_str());
exit(0);
break;
diff --git a/src/level.cc b/src/level.cc
index e1e2bb8..ac2faf3 100644
--- a/src/level.cc
+++ b/src/level.cc
@@ -27,6 +27,7 @@
#endif
#include "decl.h"
+#include <algorithm>
#ifdef _WIN32
#include <direct.h>
diff --git a/src/main.cc b/src/main.cc
index 522d041..ffc8e40 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -46,7 +46,7 @@ static bool parse_arguments(int argc, char *argv[]) {
if (parm >= '0' && parm <= '9') {
printf(_("Debug level is now %c.\n").c_str(), parm);
config.debug_level(parm - '0');
- } else printf(_("Illegal debug level value, using default.\n").c_str());
+ } else printf("%s", _("Illegal debug level value, using default.\n").c_str());
} else {
printhelp();
return false;
@@ -110,7 +110,7 @@ int main(int argc, char *argv[]) {
atexit(QuitFunction);
srand(time(0));
startgame();
- printf(_("Thanks for playing!\n").c_str());
+ printf("%s", _("Thanks for playing!\n").c_str());
SDL_ShowCursor(mouse);
SDL_Quit();
}
diff --git a/src/screen.cc b/src/screen.cc
index eb18543..ce23571 100644
--- a/src/screen.cc
+++ b/src/screen.cc
@@ -30,6 +30,8 @@
#include "keyb.h"
#include "configuration.h"
+#include <algorithm>
+
static SDL_Surface *display = nullptr;
static SDL_Window *sdlWindow = nullptr;
static SDL_Renderer *sdlRenderer = nullptr;

View File

@@ -1,91 +0,0 @@
{
lib,
stdenv,
fetchFromGitLab,
nix-update-script,
writableTmpDirAsHomeHook,
buildPackages,
pkg-config,
gettext,
povray,
imagemagick,
gimp2,
sdl2-compat,
SDL2_mixer,
SDL2_image,
libpng,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "toppler";
version = "1.3";
src = fetchFromGitLab {
owner = "roever";
repo = "toppler";
rev = "v${finalAttrs.version}";
hash = "sha256-ecEaELu52Nmov/BD9VzcUw6wyWeHJcsKQkEzTnaW330=";
};
strictDeps = true;
enableParallelBuilding = true;
depsBuildBuild = [
buildPackages.stdenv.cc
pkg-config
sdl2-compat
SDL2_image
libpng
zlib
];
nativeBuildInputs = [
pkg-config
gettext
povray
imagemagick
gimp2
# GIMP needs a writable home
writableTmpDirAsHomeHook
];
buildInputs = [
sdl2-compat
SDL2_mixer
zlib
];
patches = [
# Based on https://gitlab.com/roever/toppler/-/merge_requests/3
./gcc14.patch
];
makeFlags = [
"CXX_NATIVE=$(CXX_FOR_BUILD)"
"PKG_CONFIG_NATIVE=$(PKG_CONFIG_FOR_BUILD)"
"PREFIX=${placeholder "out"}"
];
preBuild = ''
# The `$` is escaped in `makeFlags` so using it for these parameters results in infinite recursion
makeFlagsArray+=(CXX=$CXX PKG_CONFIG=$PKG_CONFIG);
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Jump and run game, reimplementation of Tower Toppler/Nebulus";
homepage = "https://gitlab.com/roever/toppler";
license = with lib.licenses; [
gpl2Plus
# Makefile
gpl3Plus
];
maintainers = with lib.maintainers; [ fgaz ];
platforms = lib.platforms.all;
mainProgram = "toppler";
};
})

View File

@@ -15,13 +15,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "tsx";
version = "4.23.1";
version = "4.23.12";
src = fetchFromGitHub {
owner = "privatenumber";
repo = "tsx";
tag = "v${finalAttrs.version}";
hash = "sha256-zR3a3AZLPYmnIeiT0SNwN6gVcnR4ObzJsfj7aQ8LOkQ=";
hash = "sha256-hHiJaLyCJwxSV1fc9Zpn/JHmvRS2fhT1XmL+B94+axw=";
};
pnpmDeps = fetchPnpmDeps {
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
;
pnpm = pnpm';
fetcherVersion = 3;
hash = "sha256-jnCz9u+UMGV20t6fhzk/rVq68K+e5eBvUth6O7jOpQg=";
hash = "sha256-KysktlAKCChQW0CwI8qsVJu2rEmMwF+eVNvxuzAYLis=";
};
nativeBuildInputs = [

View File

@@ -8,16 +8,18 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "tuigreet";
version = "0.9.1";
version = "0.11.0";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "apognu";
owner = "tuigreet";
repo = "tuigreet";
tag = finalAttrs.version;
hash = "sha256-e0YtpakEaaWdgu+bMr2VFoUc6+SUMFk4hYtSyk5aApY=";
hash = "sha256-4DB4Pl2UwIeab/MJaX3VfVNMsPWE6Q513z1NDdxvG3o=";
};
cargoHash = "sha256-w6ZOqpwogKoN4oqqI1gFqY8xAnfvhEBVaL8/6JXpKXs=";
cargoHash = "sha256-5Q4E8nnmQ109gcfxxctn/rne5N4Qvz2Pft6o7as2fSc=";
nativeBuildInputs = [
installShellFiles
@@ -33,10 +35,13 @@ rustPlatform.buildRustPackage (finalAttrs: {
meta = {
description = "Graphical console greeter for greetd";
homepage = "https://github.com/apognu/tuigreet";
changelog = "https://github.com/apognu/tuigreet/releases/tag/${finalAttrs.version}";
homepage = "https://github.com/tuigreet/tuigreet";
changelog = "https://github.com/tuigreet/tuigreet/releases/tag/${finalAttrs.version}";
license = lib.licenses.gpl3Plus;
maintainers = [ ];
maintainers = with lib.maintainers; [
NotAShelf
antoineco
];
platforms = lib.platforms.linux;
mainProgram = "tuigreet";
};

View File

@@ -4,17 +4,17 @@
cmake,
stdenv,
testers,
unstableGitUpdater,
gitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "uavs3d";
version = "1.1-unstable-2025-12-13";
version = "1.2";
src = fetchFromGitHub {
owner = "uavs3";
repo = "uavs3d";
rev = "0e20d2c291853f196c68922a264bcd8471d75b68";
tag = finalAttrs.version;
hash = "sha256-SlCGLglBsU3ua406Bnf89c4X80F5B93piF2sAXqtRus=";
};
@@ -41,9 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
passthru = {
updateScript = unstableGitUpdater {
tagPrefix = "v";
};
updateScript = gitUpdater { };
tests.pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; };
};

View File

@@ -15,7 +15,7 @@
SDL2_mixer,
SDL2_net,
SDL2_ttf,
ffmpeg_8,
ffmpeg,
sqlite,
zlib,
libx11,
@@ -39,19 +39,19 @@ let
libx11
libGLU
libGL
ffmpeg_8
ffmpeg
];
in
stdenv.mkDerivation (finalAttrs: {
pname = "ultrastardx";
version = "2026.6.0";
version = "2026.8.0";
src = fetchFromGitHub {
owner = "UltraStar-Deluxe";
repo = "USDX";
rev = "v${finalAttrs.version}";
hash = "sha256-xqP50OFUT+wreG/EZhmh5zPOwpNvG1TQkLzovgVDquI=";
hash = "sha256-dtZrVsXXpy70aJvMqs/IUPsvRd52FKpm9I5XuZSLwCY=";
};
nativeBuildInputs = [

View File

@@ -12,17 +12,17 @@
buildGoModule (finalAttrs: {
pname = "updatecli";
version = "0.119.0";
version = "0.120.0";
src = fetchFromGitHub {
owner = "updatecli";
repo = "updatecli";
rev = "v${finalAttrs.version}";
hash = "sha256-iXlaKJcxL2dwu0NTVtuLyinOY/fLWOGQU8jn1ZASrzw=";
hash = "sha256-KVGvOCdxgTK9chZU8TwemrQUlkvOdvWIzBG0dSY/VpU=";
};
proxyVendor = true;
vendorHash = "sha256-xiE9aRZCDF9x7e4z5WMCNMPoMOQJldp7iuz2HU1KnSo=";
vendorHash = "sha256-iZf6nB6arDEWDANq3Gp72kfFQi5QKGymHLKFJcnT+98=";
# tests require network access
doCheck = false;

File diff suppressed because it is too large Load Diff

View File

@@ -2,13 +2,12 @@
lib,
stdenv,
fetchFromGitHub,
gradle,
jdk17,
jdk21,
gradle_9,
jdk25,
makeBinaryWrapper,
openssl,
libdeflate,
jre_headless,
jdk25_headless,
writeScript,
nixosTests,
@@ -19,7 +18,6 @@
],
}:
let
gradle_jdk17 = gradle.override { javaToolchains = [ jdk17 ]; };
velocityNativePlatform =
{
x86_64-linux = "linux_x86_64";
@@ -34,17 +32,17 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "velocity";
version = "3.5.0-unstable-2026-07-10";
version = "4.1.0-unstable-2026-08-03";
src = fetchFromGitHub {
owner = "PaperMC";
repo = "Velocity";
rev = "97b386d86ff99f787117cb30e8a4b50c83dba6c2";
hash = "sha256-EzoR12YsXP0F7n1ifk/Eg16S//pmYnRpSiO7qkerBes=";
rev = "00759e52790e85e148efc08adb7e7dd29e6c5110";
hash = "sha256-D9r4OyVfeLNzbEklUdWJ7vEqRsZ9ja5AanqeerdFJck=";
};
nativeBuildInputs = [
gradle_jdk17
gradle_9
makeBinaryWrapper
];
@@ -54,16 +52,22 @@ stdenv.mkDerivation (finalAttrs: {
libdeflate
# needed for building velocity-native jni
jdk21
jdk25
];
strictDeps = true;
mitmCache = gradle_jdk17.fetchDeps {
mitmCache = gradle_9.fetchDeps {
inherit (finalAttrs) pname;
data = ./deps.json;
};
gradleUpdateScript = ''
runHook preBuild
gradle --write-verification-metadata sha256
'';
patches = [
./fix-version.patch # remove build-time dependency on git and use version string from a env var instead
./disable-javadocs.patch # disable building java docs because they cause build failures
@@ -97,7 +101,7 @@ stdenv.mkDerivation (finalAttrs: {
mkdir -p $out/bin $out/share/velocity
cp proxy/build/libs/velocity-proxy-${builtins.head (builtins.split "-" finalAttrs.version)}-SNAPSHOT-all.jar $out/share/velocity/velocity.jar
makeWrapper ${lib.getExe jre_headless} "$out/bin/velocity" \
makeWrapper ${lib.getExe jdk25_headless} "$out/bin/velocity" \
--append-flags "-jar $out/share/velocity/velocity.jar"
${lib.optionalString withVelocityNative ''

View File

@@ -8,20 +8,20 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "wasm-tools";
version = "1.254.0";
version = "1.255.0";
src = fetchFromGitHub {
owner = "bytecodealliance";
repo = "wasm-tools";
tag = "v${finalAttrs.version}";
hash = "sha256-Zy+cJdbsRmwRyy9y/nfpi3kWmklKOrgrw78DwQ/s+fs=";
hash = "sha256-QQ9lSQLPaLSNumGtr64W9n56vBXh5m9Z/dge/tbl3gU=";
fetchSubmodules = true;
};
# Disable cargo-auditable until https://github.com/rust-secure-code/cargo-auditable/issues/124 is solved.
auditable = false;
cargoHash = "sha256-RgAew00flGTwt1FvfWsmPgg/MK4CMFVG2h5dmDgCZMo=";
cargoHash = "sha256-ozxSdq5CpSLwEWsombAvZCrv4wDL0PLqoVIoTBqyUL4=";
cargoBuildFlags = [
"--package"
"wasm-tools"

View File

@@ -6,13 +6,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "xbyak";
version = "7.37.6";
version = "7.38";
src = fetchFromGitHub {
owner = "herumi";
repo = "xbyak";
tag = "v${finalAttrs.version}";
hash = "sha256-NA4h4BEzYh7gSVOqznixoU2VjKZYx8dde+Es7dOQiOM=";
hash = "sha256-EHQSUZt0fvR1GZBpMqBuXxlPt3j3cLKTtc9JNkCNlt4=";
};
nativeBuildInputs = [ cmake ];

View File

@@ -1,60 +0,0 @@
# This derivation should be redundant, now that regular smlnj works on Darwin,
# and is preserved only for pre-existing direct usage. New use cases should
# just use the regular smlnj derivation.
{
lib,
stdenv,
fetchurl,
cpio,
rsync,
xar,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "smlnj-bootstrap";
version = "110.91";
src = fetchurl {
url = "http://smlnj.cs.uchicago.edu/dist/working/${version}/smlnj-x86-${version}.pkg";
sha256 = "12jn50h5jz0ac1vzld2mb94p1dyc8h0mk0hip2wj5xqk1dbzwxl4";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [
cpio
rsync
];
unpackPhase = ''
${xar}/bin/xar -xf $src
cd smlnj.pkg
'';
buildPhase = ''
cat Payload | gunzip -dc | cpio -i
'';
installPhase = ''
mkdir -p $out/bin
rsync -av bin/ $out/bin/
mkdir -p $out/lib
rsync -av lib/ $out/lib/
'';
postInstall = ''
wrapProgram "$out/bin/sml" --set "SMLNJ_HOME" "$out"
'';
meta = {
description = "Compiler for the Standard ML '97 programming language";
homepage = "http://www.smlnj.org";
license = lib.licenses.free;
platforms = lib.platforms.darwin;
maintainers = [ lib.maintainers.jwiegley ];
mainProgram = "sml";
};
}

View File

@@ -1,7 +1,5 @@
{
lib,
pkgs,
pkg-config,
mkCoqDerivation,
coq,
wasmcert,
@@ -45,10 +43,6 @@ mkCoqDerivation {
};
releaseRev = v: "v${v}";
buildInputs = [
pkgs.clang
];
propagatedBuildInputs = [
wasmcert
compcert
@@ -57,10 +51,17 @@ mkCoqDerivation {
metarocq-safechecker-plugin
];
patchPhase = ''
postPatch = ''
patchShebangs ./configure.sh
patchShebangs ./clean_extraction.sh
patchShebangs ./make_plugin.sh
# drop after https://github.com/CertiRocq/certirocq/pull/162
substituteInPlace runtime/Makefile \
--replace-fail "gcc -I /opt/homebrew/include" '$(CC)'
substituteInPlace clean_extraction.sh \
--replace-fail "mv aST.ml AST.ml" "mv aST.ml AST.ml.tmp && mv AST.ml.tmp AST.ml" \
--replace-fail "mv aST.mli AST.mli" "mv aST.mli AST.mli.tmp && mv AST.mli.tmp AST.mli"
'';
configurePhase = ''

View File

@@ -88,7 +88,7 @@ let
});
in
{
rec {
scenefx_0_4 = generic {
version = "0.4.1";
hash = "sha256-XD5EcquaHBg5spsN06fPHAjVCb1vOMM7oxmjZZ/PxIE=";
@@ -101,4 +101,6 @@ in
wlroots = wlroots_0_20;
extraBuildInputs = [ lcms2 ];
};
scenefx = scenefx_0_5;
}

View File

@@ -20,6 +20,12 @@ buildPythonPackage (finalAttrs: {
hash = "sha256-3nTCWyWfFs1NqUGIvYO3ao9MnOMtrq1fmTihLwSky60=";
};
postPatch = ''
substituteInPlace ansi2image/__meta__.py \
--replace-fail "__version__ = '0.1.4'" "__version__ = '${finalAttrs.version}'" \
--replace-fail "__version_tuple__ = version_tuple = (0, 1, 4)" "__version_tuple__ = version_tuple = (${lib.concatStringsSep ", " (lib.splitString "." finalAttrs.version)})"
'';
build-system = [ setuptools ];
dependencies = [
@@ -35,10 +41,10 @@ buildPythonPackage (finalAttrs: {
meta = {
description = "Module to convert ANSI text to an image";
mainProgram = "ansi2image";
homepage = "https://github.com/helviojunior/ansi2image";
changelog = "https://github.com/helviojunior/ansi2image/blob/${finalAttrs.version}/CHANGELOG";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "ansi2image";
};
})

View File

@@ -28,7 +28,7 @@
buildPythonPackage (finalAttrs: {
pname = "bambi";
version = "0.19.0";
version = "0.20.0";
pyproject = true;
__structuredAttrs = true;
@@ -36,7 +36,7 @@ buildPythonPackage (finalAttrs: {
owner = "bambinos";
repo = "bambi";
tag = finalAttrs.version;
hash = "sha256-2BLbvdVN+wkmP2NCGaBoJO10hbBXUJ1/Q7bjRN4idWM=";
hash = "sha256-eTqqcVP+ucQ2Sv9mTyMOUdmYYX0pkrsH76DGQKPGO0k=";
};
build-system = [
@@ -93,27 +93,32 @@ buildPythonPackage (finalAttrs: {
# Tests require network access
"test_alias_equal_to_name"
"test_exclusion"
"test_inplace_false"
"test_average_by"
"test_ax"
"test_basic"
"test_categorical_and_interactions"
"test_censored_response"
"test_custom_prior"
"test_data_is_copied"
"test_distributional_model"
"test_elasticity"
"test_exclusion"
"test_extra_namespace"
"test_fig_kwargs"
"test_gamma_with_splines"
"test_group_effects"
"test_hdi_prob"
"test_inplace_false"
"test_legend"
"test_model_with_group_specific_effects"
"test_model_with_intercept"
"test_model_without_intercept"
"test_no_offsets_when_centered_parametrization"
"test_non_distributional_model"
"test_normal_with_splines"
"test_offsets_match_sampled_offsets"
"test_offsets_reconstructed_with_sigma_alias"
"test_offsets_reconstructed_without_centering"
"test_predict_new_groups"
"test_predict_new_groups_fail"
"test_predict_offset"

View File

@@ -100,7 +100,9 @@ buildPythonPackage (finalAttrs: {
++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
# AssertionError: Not equal to tolerance rtol=1e-07, atol=1e-05
"test_equal_matrices"
"test_pop_oldest_exactness_k5_d5_n10_nwraps2"
"test_restart_after_reset_matches_fresh_accumulation"
"test_skips_first_offset_steps"
"test_split_pop_k1_degenerate"
];

View File

@@ -1,20 +1,23 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
fetchPypi,
setuptools,
pymupdf,
}:
buildPythonPackage {
buildPythonPackage (finalAttrs: {
pname = "cardimpose";
version = "0.2.1-unstable-2024-12-28";
version = "0.2.2";
pyproject = true;
src = fetchFromGitHub {
owner = "frsche";
repo = "cardimpose";
rev = "eb26a9795e20db3e3dd5b62dbcbbad547cb05a55";
hash = "sha256-Fel0YOe2D76h+QAon/wxI6EsZhfLca+0ncNi9i888+E=";
__structuredAttrs = true;
# Get source from Pypi as the GitHub repository doesn't have any version
# indicators, so there's no way to tell when a new version is available or
# what the version should be.
src = fetchPypi {
inherit (finalAttrs) pname version;
hash = "sha256-fMI2bvsHGYU7nZ9CdaUtWQkNj2MihMEcBCVy8VbE6F0=";
};
build-system = [ setuptools ];
@@ -38,4 +41,4 @@ buildPythonPackage {
badPlatforms = pymupdf.meta.badPlatforms or [ ];
maintainers = [ lib.maintainers.me-and ];
};
}
})

View File

@@ -1,5 +1,6 @@
{
lib,
stdenv,
aiohttp,
buildPythonPackage,
fetchFromGitHub,
@@ -9,7 +10,7 @@
pytestCheckHook,
requests,
setuptools,
withMypyc ? !isPyPy,
withMypyc ? !isPyPy && !stdenv.hostPlatform.isStatic,
}:
buildPythonPackage rec {

View File

@@ -1,18 +1,23 @@
{
lib,
stdenv,
buildPythonPackage,
fetchFromGitHub,
pythonOlder,
# build-system
hatchling,
# dependencies
base58,
beautifulsoup4,
buildPythonPackage,
bech32,
brotli,
colorama,
cryptography,
deepdiff,
fetchFromGitHub,
gitpython,
hatchling,
humanfriendly,
hypothesis,
lxml,
nix-update-script,
numpy,
odfpy,
onnxruntime,
@@ -21,7 +26,7 @@
pdfminer-six,
pybase62,
pyjks,
pytestCheckHook,
pysquashfsimage,
python-dateutil,
python-docx,
python-pptx,
@@ -31,11 +36,20 @@
striprtf,
whatthepatch,
xlrd,
# < python 3.14 only:
zstandard,
# tests
deepdiff,
hypothesis,
psutil,
pytestCheckHook,
versionCheckHook,
}:
buildPythonPackage (finalAttrs: {
pname = "credsweeper";
version = "1.16.0";
version = "1.17.4";
pyproject = true;
__structuredAttrs = true;
@@ -44,7 +58,7 @@ buildPythonPackage (finalAttrs: {
owner = "Samsung";
repo = "CredSweeper";
tag = "v${finalAttrs.version}";
hash = "sha256-DiIT7DzH6ut/Ax2qgga5vKjeXocROGbHdARLWJijejY=";
hash = "sha256-JsKwmzC9kMF3dkYVFrLDxYsxOc5X13pFN9aealZEgqY=";
};
build-system = [ hatchling ];
@@ -52,6 +66,8 @@ buildPythonPackage (finalAttrs: {
dependencies = [
base58
beautifulsoup4
bech32
brotli
colorama
cryptography
gitpython
@@ -65,6 +81,7 @@ buildPythonPackage (finalAttrs: {
pdfminer-six
pybase62
pyjks
pysquashfsimage
python-dateutil
python-docx
python-pptx
@@ -74,12 +91,17 @@ buildPythonPackage (finalAttrs: {
striprtf
whatthepatch
xlrd
]
++ lib.optionals (pythonOlder "3.14") [
zstandard
];
nativeCheckInputs = [
deepdiff
hypothesis
psutil
pytestCheckHook
versionCheckHook
];
pythonImportsCheck = [ "credsweeper" ];
@@ -92,10 +114,19 @@ buildPythonPackage (finalAttrs: {
"test_match_n"
"test_multi_jobs_p"
"test_rules_ml_p"
]
++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
# aarch64-linux fails cpuinfo test, because /sys/devices/system/cpu/ does not exist in the sandbox:
# RuntimeError: Failed to initialize cpuinfo!
"test_external_ml_n"
"test_external_ml_p"
"test_import_config_n"
"test_import_config_p"
"test_it_works_n"
"test_log_n"
"test_log_p"
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Tool to detect credentials in any directories or files";
homepage = "https://github.com/Samsung/CredSweeper";

View File

@@ -22,7 +22,7 @@
buildPythonPackage (finalAttrs: {
pname = "databricks-sdk";
version = "0.123.0";
version = "0.127.0";
pyproject = true;
__structuredAttrs = true;
@@ -30,7 +30,7 @@ buildPythonPackage (finalAttrs: {
owner = "databricks";
repo = "databricks-sdk-py";
tag = "v${finalAttrs.version}";
hash = "sha256-mSxTk8wq9Hq9xL20Jt8kWpry5F5SljMIcFsv8UohY1c=";
hash = "sha256-ZifBh5cCxrfbn3a3EUre7EavRoxBwJR3b6TdUDD3H7o=";
};
build-system = [

View File

@@ -1,31 +1,40 @@
{
lib,
buildPythonPackage,
fetchPypi,
python,
fetchFromGitHub,
setuptools,
unittestCheckHook,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "dj-email-url";
version = "1.0.6";
format = "setuptools";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-Vf/jMp5I9U+Kdao27OCPNl4J1h+KIJdz7wmh1HYOaZo=";
src = fetchFromGitHub {
owner = "migonzalvar";
repo = "dj-email-url";
tag = "v${finalAttrs.version}";
hash = "sha256-xjJZyQE/7zgFzFM3JnlkiT0juOv94o4X5398AqCn5Qg=";
};
checkPhase = ''
${python.interpreter} test_dj_email_url.py
'';
build-system = [ setuptools ];
# tests not included with pypi release
doCheck = false;
nativeCheckInputs = [ unittestCheckHook ];
unittestFlags = [ "." ];
meta = {
description = "Use an URL to configure email backend settings in your Django Application";
homepage = "https://github.com/migonzalvar/dj-email-url";
license = lib.licenses.bsd0;
# https://github.com/migonzalvar/dj-email-url/blob/master/LICENSE
license =
with lib.licenses;
AND [
bsd2
cc-by-40
cc0
];
maintainers = [ ];
};
}
})

View File

@@ -3,6 +3,7 @@
stdenv,
buildPythonPackage,
fetchFromGitHub,
fetchpatch,
writableTmpDirAsHomeHook,
# build-system
@@ -29,7 +30,7 @@
buildPythonPackage (finalAttrs: {
pname = "fastmcp";
version = "3.3.1";
version = "3.4.7";
pyproject = true;
__structuredAttrs = true;
@@ -37,9 +38,19 @@ buildPythonPackage (finalAttrs: {
owner = "PrefectHQ";
repo = "fastmcp";
tag = "v${finalAttrs.version}";
hash = "sha256-1W5NbWIULxFXGSozZEeITcPt1EbY6IsJLQdyevcn9BI=";
hash = "sha256-EysVbtFbop5ENupc9T5EmtUSZ8osVtQSzpwa6rea/OQ=";
};
patches = [
# Fix python 3.14 compatibility (https://github.com/PrefectHQ/fastmcp/pull/4796)
# TODO: remove when updating to the next release
(fetchpatch {
url = "https://github.com/PrefectHQ/fastmcp/commit/6be0ac8e15d35ff8f5121266855bc34c1158c9a1.patch";
includes = [ "fastmcp_slim/fastmcp/tools/function_tool.py" ];
hash = "sha256-7N86b5sslWLgoB2dS2Xh3JfZX3oTHeXfeSJOaWKI5b0=";
})
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "timeout = 5" "timeout = 50"
@@ -108,8 +119,11 @@ buildPythonPackage (finalAttrs: {
"test_nested_streamable_http_server_resolves_correctly"
# Requires prefab-ui (optional dependency)
# https://github.com/NixOS/nixpkgs/pull/510123 adds the prefab-ui package.
"TestPrefabAppConfig"
"test_doc_examples_quality"
"test_run_dev_apps_with_host"
"test_run_dev_apps_log_panel_propagation"
# AssertionError: assert 'INFO' == 'DEBUG'
"test_temporary_settings"
@@ -120,6 +134,14 @@ buildPythonPackage (finalAttrs: {
"test_server_starts_without_auth"
"test_canonical_multi_client_with_transforms"
# Server startup is flaky when the suite runs with pytest-xdist
"test_unauthorized_access"
# Timing-sensitive and flaky
"test_rate_limiting_recovery_over_time"
"test_rate_limiting_with_different_operations"
"test_timeout"
# RuntimeError: Attempted to exit a cancel scope that isn't the current tasks's current cancel scope
"test_stateful_proxy"
"test_concurrent_log_requests_no_mixing"

Some files were not shown because too many files have changed in this diff Show More