mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-10-03 21:40:12 +00:00
Merge master into staging-nixos
This commit is contained in:
@@ -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).
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
93
nixos/modules/programs/solaar.nix
Normal file
93
nixos/modules/programs/solaar.nix
Normal 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 ];
|
||||
};
|
||||
}
|
||||
@@ -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')
|
||||
'';
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
)
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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=";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
"."
|
||||
|
||||
60
pkgs/by-name/cy/cyan-skillfish-governor-smu/package.nix
Normal file
60
pkgs/by-name/cy/cyan-skillfish-governor-smu/package.nix
Normal 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";
|
||||
};
|
||||
})
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
)
|
||||
|
||||
43
pkgs/by-name/ec/eclipse-mat/update.sh
Executable file
43
pkgs/by-name/ec/eclipse-mat/update.sh
Executable 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
|
||||
@@ -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=";
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
})
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 { };
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}";
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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" ];
|
||||
|
||||
|
||||
14
pkgs/by-name/li/libtommath/force_mp_set_double.patch
Normal file
14
pkgs/by-name/li/libtommath/force_mp_set_double.patch
Normal 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;
|
||||
@@ -14,6 +14,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
sha256 = "sha256-KWJy2TQ1mRMI63NgdgDANLVYgHoH6CnnURQuZcz6nQg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./force_mp_set_double.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace makefile.shared \
|
||||
--replace-fail glibtool libtool \
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
(libfm.override { withGtk3 = true; })
|
||||
libfm
|
||||
keybinder3
|
||||
gtk3
|
||||
libx11
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Do not edit manually, run ./update-providers.py
|
||||
|
||||
{
|
||||
version = "2.9.10";
|
||||
version = "2.9.13";
|
||||
builtins = [
|
||||
"builtin"
|
||||
"coverartarchive"
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -115,7 +115,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with lib.maintainers; [ Holiu618 ];
|
||||
broken = stdenv.hostPlatform.isAarch64;
|
||||
mainProgram = "NotepadNext";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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=";
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
76
pkgs/by-name/pr/prettier-plugin-tailwindcss/package.nix
Normal file
76
pkgs/by-name/pr/prettier-plugin-tailwindcss/package.nix
Normal 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 ];
|
||||
};
|
||||
})
|
||||
@@ -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; [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 { };
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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 = [ "." ];
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
|
||||
@@ -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; };
|
||||
};
|
||||
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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;
|
||||
|
||||
950
pkgs/by-name/ve/velocity/deps.json
generated
950
pkgs/by-name/ve/velocity/deps.json
generated
File diff suppressed because it is too large
Load Diff
@@ -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 ''
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
];
|
||||
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [ ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user