Merge master into staging-next
This commit is contained in:
@@ -10607,7 +10607,7 @@
|
||||
};
|
||||
hekazu = {
|
||||
name = "Henri Peurasaari";
|
||||
email = "henri.peurasaari@helsinki.fi";
|
||||
email = "henri.peurasaari@alumni.helsinki.fi";
|
||||
github = "hekazu";
|
||||
githubId = 16819092;
|
||||
};
|
||||
|
||||
@@ -60,6 +60,14 @@ in
|
||||
environment.systemPackages = [ pkgs.socat ]; # for the socket activation stuff
|
||||
users.mutableUsers = false;
|
||||
|
||||
# A lingering user so the user systemd instance is running and
|
||||
# switch-to-configuration can exercise the user-unit path.
|
||||
users.users.usertest = {
|
||||
isNormalUser = true;
|
||||
uid = 1001;
|
||||
linger = true;
|
||||
};
|
||||
|
||||
# Test that no boot loader still switches, e.g. in the ISO
|
||||
boot.loader.grub.enable = false;
|
||||
|
||||
@@ -647,6 +655,90 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
simpleUserService.configuration = {
|
||||
systemd.user.services.usertest = {
|
||||
wantedBy = [ "default.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
ExecStart = "${pkgs.coreutils}/bin/true";
|
||||
ExecReload = "${pkgs.coreutils}/bin/true";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
simpleUserServiceModified.configuration = {
|
||||
imports = [ simpleUserService.configuration ];
|
||||
systemd.user.services.usertest.serviceConfig.X-Test = "1";
|
||||
};
|
||||
|
||||
simpleUserServiceNostop.configuration = {
|
||||
imports = [ simpleUserService.configuration ];
|
||||
systemd.user.services.usertest.stopIfChanged = false;
|
||||
};
|
||||
|
||||
simpleUserServiceReload.configuration = {
|
||||
imports = [ simpleUserService.configuration ];
|
||||
systemd.user.services.usertest = {
|
||||
reloadIfChanged = true;
|
||||
serviceConfig.X-Test = "1";
|
||||
};
|
||||
};
|
||||
|
||||
simpleUserServiceReloadTrigger.configuration = {
|
||||
imports = [ simpleUserService.configuration ];
|
||||
systemd.user.services.usertest.reloadTriggers = [ "/dev/null" ];
|
||||
};
|
||||
|
||||
simpleUserServiceFailing.configuration = {
|
||||
imports = [ simpleUserService.configuration ];
|
||||
systemd.user.services.usertest.serviceConfig.ExecStart = lib.mkForce "${pkgs.coreutils}/bin/false";
|
||||
};
|
||||
|
||||
# A unit that NixOS defines while a copy already exists in
|
||||
# ~/.config/systemd/user (e.g. home-manager). The home copy shadows
|
||||
# /etc, so switch-to-configuration must leave it alone.
|
||||
userServiceMigratedShadowed.configuration = {
|
||||
systemd.user.services.migrated = {
|
||||
wantedBy = [ "default.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
ExecStart = "${pkgs.runtimeShell} -c 'echo nixos > %t/migrated-owner'";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# As above, but the per-user activation removes the home copy and
|
||||
# stops the unit (mimicking home-manager/sd-switch dropping it).
|
||||
# switch-to-configuration must then start the now-unmasked
|
||||
# /etc/systemd/user copy in a second pass.
|
||||
userServiceMigratedToNixos.configuration = {
|
||||
imports = [ userServiceMigratedShadowed.configuration ];
|
||||
system.userActivationScripts.fakeSdSwitch = ''
|
||||
if [ -e "$HOME/.config/systemd/user/migrated.service" ]; then
|
||||
rm -f "$HOME/.config/systemd/user/migrated.service"
|
||||
rm -f "$HOME/.config/systemd/user/default.target.wants/migrated.service"
|
||||
${pkgs.systemd}/bin/systemctl --user daemon-reload
|
||||
${pkgs.systemd}/bin/systemctl --user stop migrated.service || true
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
# As above, but the previous manager leaves the unit running instead
|
||||
# of stopping it. switch-to-configuration must restart it so the
|
||||
# /etc definition takes effect.
|
||||
userServiceMigratedToNixosNoStop.configuration = {
|
||||
imports = [ userServiceMigratedShadowed.configuration ];
|
||||
system.userActivationScripts.fakeSdSwitch = ''
|
||||
if [ -e "$HOME/.config/systemd/user/migrated.service" ]; then
|
||||
rm -f "$HOME/.config/systemd/user/migrated.service"
|
||||
rm -f "$HOME/.config/systemd/user/default.target.wants/migrated.service"
|
||||
${pkgs.systemd}/bin/systemctl --user daemon-reload
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
no_inhibitors.configuration.system.switch.inhibitors = lib.mkForce { };
|
||||
|
||||
inhibitors.configuration.system.switch.inhibitors = lib.mkForce {
|
||||
@@ -709,6 +801,15 @@ in
|
||||
"broker" = "dbus-broker.service";
|
||||
}
|
||||
.${nodes.machine.services.dbus.implementation};
|
||||
|
||||
# Unit file placed in ~/.config/systemd/user to simulate a unit managed
|
||||
# by home-manager (see the userServiceMigrated* specialisations).
|
||||
homeMigratedUnit = pkgs.writeText "migrated.service" ''
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=true
|
||||
ExecStart=${pkgs.runtimeShell} -c 'echo home > %t/migrated-owner'
|
||||
'';
|
||||
in
|
||||
# python
|
||||
''
|
||||
@@ -1615,5 +1716,122 @@ in
|
||||
out = switch_to_specialisation("${machine}", "")
|
||||
# Assert switching to a different generation doesn't touch units created by generators
|
||||
machine.succeed("systemctl is-active simple-generated.service")
|
||||
|
||||
with subtest("user services"):
|
||||
machine.wait_for_unit("user@1001.service")
|
||||
user_env = "XDG_RUNTIME_DIR=/run/user/1001"
|
||||
|
||||
def user_systemctl(args):
|
||||
return machine.succeed(f"sudo -u usertest {user_env} systemctl --user {args}")
|
||||
|
||||
# Add a user service — starting default.target should pull it in via
|
||||
# the WantedBy dependency.
|
||||
out = switch_to_specialisation("${machine}", "simpleUserService")
|
||||
user_systemctl("is-active usertest.service")
|
||||
|
||||
# No-op switch does nothing
|
||||
out = switch_to_specialisation("${machine}", "simpleUserService")
|
||||
assert_lacks(out, "user units:")
|
||||
|
||||
# Modifying the unit stop-starts it (default stopIfChanged=true)
|
||||
out = switch_to_specialisation("${machine}", "simpleUserServiceModified")
|
||||
assert_contains(out, "stopping the following user units: usertest.service")
|
||||
assert_contains(out, "starting the following user units: usertest.service")
|
||||
user_systemctl("is-active usertest.service")
|
||||
|
||||
# stopIfChanged=false restarts instead
|
||||
out = switch_to_specialisation("${machine}", "simpleUserServiceNostop")
|
||||
assert_lacks(out, "stopping the following user units:")
|
||||
assert_contains(out, "restarting the following user units: usertest.service")
|
||||
user_systemctl("is-active usertest.service")
|
||||
|
||||
# reloadIfChanged=true reloads instead
|
||||
out = switch_to_specialisation("${machine}", "simpleUserServiceReload")
|
||||
assert_lacks(out, "stopping the following user units:")
|
||||
assert_lacks(out, "restarting the following user units:")
|
||||
assert_contains(out, "reloading the following user units: usertest.service")
|
||||
user_systemctl("is-active usertest.service")
|
||||
|
||||
# reloadTriggers change triggers a reload
|
||||
switch_to_specialisation("${machine}", "simpleUserService")
|
||||
user_systemctl("is-active usertest.service")
|
||||
out = switch_to_specialisation("${machine}", "simpleUserServiceReloadTrigger")
|
||||
assert_contains(out, "reloading the following user units: usertest.service")
|
||||
user_systemctl("is-active usertest.service")
|
||||
|
||||
# A failing user unit propagates a non-zero exit to the parent so
|
||||
# the overall switch reports failure.
|
||||
out = switch_to_specialisation("${machine}", "simpleUserServiceFailing", fail=True)
|
||||
assert_contains(out, "stopping the following user units: usertest.service")
|
||||
assert_contains(out, "Failed to start user unit usertest.service")
|
||||
assert_contains(out, "warning: the following user units failed: usertest.service")
|
||||
assert_contains(out, "warning: user activation for usertest failed")
|
||||
# Recover for the removal assertion below.
|
||||
switch_to_specialisation("${machine}", "simpleUserService")
|
||||
user_systemctl("is-active usertest.service")
|
||||
|
||||
# Removing the unit stops it
|
||||
out = switch_to_specialisation("${machine}", "")
|
||||
assert_contains(out, "stopping the following user units: usertest.service")
|
||||
machine.fail(f"sudo -u usertest {user_env} systemctl --user is-active usertest.service")
|
||||
|
||||
# Migration from a home-directory manager to NixOS: pre-seed a unit
|
||||
# in ~/.config/systemd/user and start it, then switch to a config
|
||||
# that defines the same unit in /etc/systemd/user and whose user
|
||||
# activation removes the ~/.config copy (mimicking sd-switch).
|
||||
def seed_home_unit():
|
||||
machine.succeed(
|
||||
"sudo -u usertest mkdir -p ~usertest/.config/systemd/user/default.target.wants",
|
||||
"sudo -u usertest cp ${homeMigratedUnit} ~usertest/.config/systemd/user/migrated.service",
|
||||
"sudo -u usertest ln -sfn ../migrated.service ~usertest/.config/systemd/user/default.target.wants/migrated.service",
|
||||
)
|
||||
user_systemctl("daemon-reload")
|
||||
user_systemctl("start migrated.service")
|
||||
user_systemctl("is-active migrated.service")
|
||||
out = machine.succeed(f"sudo -u usertest {user_env} cat /run/user/1001/migrated-owner")
|
||||
assert_contains(out, "home")
|
||||
out = user_systemctl("show -p FragmentPath migrated.service")
|
||||
assert_contains(out, "/.config/systemd/user/migrated.service")
|
||||
|
||||
seed_home_unit()
|
||||
out = switch_to_specialisation("${machine}", "userServiceMigratedToNixos")
|
||||
# Pass 1 must not touch it (still owned by ~/.config at that point)
|
||||
assert_lacks(out, "stopping the following user units: migrated.service")
|
||||
# Pass 2 starts the now-unmasked /etc copy after sd-switch stopped it
|
||||
assert_contains(out, "starting (post-activation) the following user units: migrated.service")
|
||||
user_systemctl("is-active migrated.service")
|
||||
out = user_systemctl("show -p FragmentPath migrated.service")
|
||||
assert_contains(out, "/etc/systemd/user/migrated.service")
|
||||
out = machine.succeed(f"sudo -u usertest {user_env} cat /run/user/1001/migrated-owner")
|
||||
assert_contains(out, "nixos")
|
||||
|
||||
# Reset and test the variant where the previous manager leaves the
|
||||
# unit running: pass 2 must restart it.
|
||||
switch_to_specialisation("${machine}", "")
|
||||
machine.fail(f"sudo -u usertest {user_env} systemctl --user is-active migrated.service")
|
||||
seed_home_unit()
|
||||
out = switch_to_specialisation("${machine}", "userServiceMigratedToNixosNoStop")
|
||||
assert_contains(out, "restarting (post-activation) the following user units: migrated.service")
|
||||
user_systemctl("is-active migrated.service")
|
||||
out = user_systemctl("show -p FragmentPath migrated.service")
|
||||
assert_contains(out, "/etc/systemd/user/migrated.service")
|
||||
out = machine.succeed(f"sudo -u usertest {user_env} cat /run/user/1001/migrated-owner")
|
||||
assert_contains(out, "nixos")
|
||||
|
||||
# Units that remain shadowed by ~/.config must be left alone in both
|
||||
# passes even though /etc now also defines them.
|
||||
switch_to_specialisation("${machine}", "")
|
||||
seed_home_unit()
|
||||
out = switch_to_specialisation("${machine}", "userServiceMigratedShadowed")
|
||||
assert_lacks(out, "migrated.service")
|
||||
out = user_systemctl("show -p FragmentPath migrated.service")
|
||||
assert_contains(out, "/.config/systemd/user/migrated.service")
|
||||
out = machine.succeed(f"sudo -u usertest {user_env} cat /run/user/1001/migrated-owner")
|
||||
assert_contains(out, "home")
|
||||
# Clean up
|
||||
machine.succeed("sudo -u usertest rm -rf ~usertest/.config/systemd")
|
||||
user_systemctl("daemon-reload")
|
||||
user_systemctl("stop migrated.service")
|
||||
switch_to_specialisation("${machine}", "")
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -3898,8 +3898,8 @@ let
|
||||
mktplcRef = {
|
||||
publisher = "redhat";
|
||||
name = "vscode-yaml";
|
||||
version = "1.21.0";
|
||||
hash = "sha256-55PBCTV6NJL+JVH+19vIoA5GKMDD8uB7z9OCOb+GjZM=";
|
||||
version = "1.22.0";
|
||||
hash = "sha256-Xsy2350zAxSEhJgCl5/bVwWEwaXgmnN0Y/orDjwNuw4=";
|
||||
};
|
||||
meta = {
|
||||
description = "YAML Language Support by Red Hat, with built-in Kubernetes syntax support";
|
||||
@@ -5196,8 +5196,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "volar";
|
||||
publisher = "Vue";
|
||||
version = "3.2.6";
|
||||
hash = "sha256-1R5N3JjJUZ/KPYXGq/VOzbMmQj1fzrK9HrAjA8Ja2a4=";
|
||||
version = "3.2.7";
|
||||
hash = "sha256-KLPb4XTm1lD44D4ajdH1Gr0J0JaN5TpaGp+bCpSuo3U=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md";
|
||||
|
||||
@@ -4,8 +4,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "explorer";
|
||||
publisher = "vitest";
|
||||
version = "1.50.1";
|
||||
hash = "sha256-qMUslEBzYK7nH9k+UBygEt+PjOHwDg/hLvfmbYR++tc=";
|
||||
version = "1.50.2";
|
||||
hash = "sha256-9AmJa3vMXBx2VC20j7bGyIoascQd7SvvFTgfyBi7SLU=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://github.com/vitest-dev/vscode/releases";
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "gpsp";
|
||||
version = "0-unstable-2026-03-31";
|
||||
version = "0-unstable-2026-04-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "gpsp";
|
||||
rev = "6373ff347a07ac17c50a00f20aa63d29c080abcf";
|
||||
hash = "sha256-1aLSJ0oB8WJnIfKHHdwBQ52uVPs1XiFZvgFgrF9zUoA=";
|
||||
rev = "eca3bee1e2d2043d42f0480012c1e7ec85498f88";
|
||||
hash = "sha256-GvS9HoHzT1Dr3OGLJFwMdB6+lw3vyKMRHzHuLdMxpY8=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "mame2003-plus";
|
||||
version = "0-unstable-2026-04-08";
|
||||
version = "0-unstable-2026-04-14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "mame2003-plus-libretro";
|
||||
rev = "7d7fc6d9d6a5855118e6580a7b5554e08796a878";
|
||||
hash = "sha256-J2VU9BqVLpre2nnpweYpzR3j7jYVbfcNvjQn3SFk4oI=";
|
||||
rev = "87a1286dfaae69d3a0997ffbe66150aa4bca8505";
|
||||
hash = "sha256-uWPZg2WoVs66XP6KhOn4bi8RP0Hy7jjcw1pNZ/U9uTU=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "smsplus";
|
||||
version = "0-unstable-2026-03-31";
|
||||
version = "0-unstable-2026-04-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "smsplus-gx";
|
||||
rev = "41212ee3309fcf84ef0c04317a0916f0e1252c00";
|
||||
hash = "sha256-7IKnFdSYCVrwjvtP4cTxQCCKANYSVVR6IwrhnjzqPPg=";
|
||||
rev = "6dc7119f6f8d7f6437320405ee3b0de5f227913f";
|
||||
hash = "sha256-kWq4yzYl0ZTnnhLfhtgPyf2CRequ6yn2DLp3Yc7EBbA=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -164,11 +164,11 @@
|
||||
"vendorHash": "sha256-zmXfPmc+yl3nRf6HS6Hvy73yljau1gF1D9wat+Nw/2I="
|
||||
},
|
||||
"ciscodevnet_aci": {
|
||||
"hash": "sha256-MxcHtbuU2tMJpF8seEDqmsnamm58Lugi3Hw+l9wAcOU=",
|
||||
"hash": "sha256-Z3qat3S7dv5kGpc82RxAwlgp3hfscFbkokVsgGnBRHY=",
|
||||
"homepage": "https://registry.terraform.io/providers/CiscoDevNet/aci",
|
||||
"owner": "CiscoDevNet",
|
||||
"repo": "terraform-provider-aci",
|
||||
"rev": "v2.18.0",
|
||||
"rev": "v2.19.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
@@ -310,11 +310,11 @@
|
||||
"vendorHash": null
|
||||
},
|
||||
"digitalocean_digitalocean": {
|
||||
"hash": "sha256-FCi8y4m9CwMl/YHvEaK21bwDLdsI/bJCZ0PJ7kWpqBc=",
|
||||
"hash": "sha256-3LvD4uHr+ndn53zjL4mSi0/QnkvbuyEJ/w032KPsyGw=",
|
||||
"homepage": "https://registry.terraform.io/providers/digitalocean/digitalocean",
|
||||
"owner": "digitalocean",
|
||||
"repo": "terraform-provider-digitalocean",
|
||||
"rev": "v2.81.0",
|
||||
"rev": "v2.84.1",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
@@ -472,11 +472,11 @@
|
||||
"vendorHash": "sha256-yOM4JcQxAvYAFPyAFfjJn4FK8pEXF3I55ddMTkijn9c="
|
||||
},
|
||||
"grafana_grafana": {
|
||||
"hash": "sha256-szkdeprCEbrtZkoNzS6/FlICPsZpB+fgvAovNk8LXLM=",
|
||||
"hash": "sha256-sbM/SrKFie0IfNmSD6gA28PL/bQ+dM+tdLdegkLIXH0=",
|
||||
"homepage": "https://registry.terraform.io/providers/grafana/grafana",
|
||||
"owner": "grafana",
|
||||
"repo": "terraform-provider-grafana",
|
||||
"rev": "v4.31.0",
|
||||
"rev": "v4.31.3",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-xcKcXakpjBQCy5JqWsXnDDQeR+53tyRxWeoLkxsStcs="
|
||||
},
|
||||
@@ -508,13 +508,13 @@
|
||||
"vendorHash": "sha256-picwxtQOtsBX8SkA64+ekFNDC7zIpg0CG66kelO2THk="
|
||||
},
|
||||
"hashicorp_awscc": {
|
||||
"hash": "sha256-/mQ8GrCbOudqpQ3+xyJccVCVVUkGsnozNHa4Ll/66RI=",
|
||||
"hash": "sha256-wRuw+7z/CyAyqL4b6iKLqMuon4UcNxf8pBYHbt90FGw=",
|
||||
"homepage": "https://registry.terraform.io/providers/hashicorp/awscc",
|
||||
"owner": "hashicorp",
|
||||
"repo": "terraform-provider-awscc",
|
||||
"rev": "v1.79.0",
|
||||
"rev": "v1.80.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-ZhN2ap9U5xp2HNeAE7HmLGce19jVH4Y7GpuqrUtYf40="
|
||||
"vendorHash": "sha256-YU6QTIp07WcEpMq4bhIK+CvzXbfWpKtvWW0AhkfpZp4="
|
||||
},
|
||||
"hashicorp_azuread": {
|
||||
"hash": "sha256-BkQwLkGu8Xmb4laoXOLDbSPyya5v8HBBNIya5hUBlV8=",
|
||||
@@ -1175,13 +1175,13 @@
|
||||
"vendorHash": "sha256-1I2HQwFkbCawi11MJQzhvjvzjUvSzietRV9yCc6JtmI="
|
||||
},
|
||||
"scaleway_scaleway": {
|
||||
"hash": "sha256-alsM14F6NbpkO1RVDgHPoIUoakv4PHeObVdwQMwADZA=",
|
||||
"hash": "sha256-NR2IJWN/bEJo7P3DAq7ekpPg7kdSYDaMf8GYj/kwJ5k=",
|
||||
"homepage": "https://registry.terraform.io/providers/scaleway/scaleway",
|
||||
"owner": "scaleway",
|
||||
"repo": "terraform-provider-scaleway",
|
||||
"rev": "v2.71.0",
|
||||
"rev": "v2.73.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-a6A30IJlS6a6MjWrR/GWx7XCvilvTu9bQurCXWDLjV4="
|
||||
"vendorHash": "sha256-i7u1scZ72J3PTgbVmTTW1JR/gNqCP1wWgr56vAaOBHo="
|
||||
},
|
||||
"scottwinkler_shell": {
|
||||
"hash": "sha256-LTWEdXxi13sC09jh+EFZ6pOi1mzuvgBz5vceIkNE/JY=",
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
let
|
||||
pname = "mendeley";
|
||||
version = "2.142.0";
|
||||
version = "2.144.0";
|
||||
|
||||
executableName = "${pname}-reference-manager";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://static.mendeley.com/bin/desktop/mendeley-reference-manager-${version}-x86_64.AppImage";
|
||||
hash = "sha256-Ic19MQRzRLmYL2nVFMBvCbloI0AoCm0MVlWJeV4i+Fs=";
|
||||
hash = "sha256-27cUm1ChdzG9Qxo0ntUAVZMA685YFZ3nbsLkZfxR3pk=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
|
||||
@@ -5,15 +5,15 @@ let
|
||||
in
|
||||
{
|
||||
sublime-merge = common {
|
||||
buildVersion = "2123";
|
||||
aarch64sha256 = "9ceHfTutGJAZlIwRUXJvpli7LtZFuz6vuDgIi7i9+kM=";
|
||||
x64sha256 = "HxKKwc4dOX1ADPl0axn5bDr21yG5FsrrzMyK95p6sy4=";
|
||||
buildVersion = "2125";
|
||||
aarch64sha256 = "Zs4VKbFKkw4KRViX/QGVtVo4hluJ3HVen39Vq3Xz3KI=";
|
||||
x64sha256 = "0Zlv4nZMb2FDUG5KLkHTXJjdRzTa3TuNL54yacFVR/c=";
|
||||
} { };
|
||||
|
||||
sublime-merge-dev = common {
|
||||
buildVersion = "2120";
|
||||
buildVersion = "2124";
|
||||
dev = true;
|
||||
aarch64sha256 = "3JKxLke1l7l+fxhIJWbXbMHK5wPgjZTEWcZd9IvrdPM=";
|
||||
x64sha256 = "N8lhSmQnj+Ee1A2eIOkhdhQnHBK3B6vFA3vrPAbYtaI=";
|
||||
aarch64sha256 = "jYd22OPZnC6X2Ceuzz4ZiqqD1pFsmQsrihIqY3A+gAc=";
|
||||
x64sha256 = "3Tm9TH+kzTCElFLI44K00CXTuV98+uCswy4auXcY+YY=";
|
||||
} { };
|
||||
}
|
||||
|
||||
@@ -57,6 +57,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
NODE_JQ_SKIP_INSTALL_BINARY = "true";
|
||||
SHARP_IGNORE_GLOBAL_LIBVIPS = "1";
|
||||
};
|
||||
# during build, vite tries to access localhost
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
postPatch = ''
|
||||
ln -sv ../../../${translations.name} ./packages/desktop-client/locale
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "aks-mcp-server";
|
||||
version = "0.0.14";
|
||||
version = "0.0.17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Azure";
|
||||
repo = "aks-mcp";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-di5T7GKMLl42+GyRCyMStbT1XfDTAbH9zK+4qO0Bf7I=";
|
||||
hash = "sha256-3G7IDHDY3HfjGYM8aKK4Egey1/urDVeWv99PJcCaiSo=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-d27ffScJukUyBd6C8VgEUqK5rHKxQv7vEvt1zsRjhKE=";
|
||||
vendorHash = "sha256-aMs7vABZwRPPIaP6BdTau1oFfGqnzYt8wxUk2mQSVlE=";
|
||||
|
||||
subPackages = [ "cmd/aks-mcp" ];
|
||||
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "aliyunpan";
|
||||
version = "0.3.8";
|
||||
version = "0.3.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tickstep";
|
||||
repo = "aliyunpan";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-6aukI4woQvNI8zcstF92VL7M70GKAiwj9viaTX3iJ2o=";
|
||||
hash = "sha256-inkden/ZiIxJVZLhM6OVTV4qbesEPJbX2sn4LNZF+FE=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-or1C88KE0RkXL08ZjaXELqKlNP3PoY31ib4PWDdDmNA=";
|
||||
vendorHash = "sha256-PKx40HqXm1nyqjNBSJdW5ucRAkMj9w3fbQYjAGALM1k=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "amneziawg-go";
|
||||
version = "0.2.16";
|
||||
version = "0.2.17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "amnezia-vpn";
|
||||
repo = "amneziawg-go";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-JGmWMPVgereSZmdHUHC7ZqWCwUNfxfj3xBf/XDDHhpo=";
|
||||
hash = "sha256-3I0rtTgW4rVjdSLEjdpv0+7k9imSAF56d5ZksJBxRLs=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -21,7 +21,7 @@ buildGoModule (finalAttrs: {
|
||||
rm -f format_test.go
|
||||
'';
|
||||
|
||||
vendorHash = "sha256-ZO8sLOaEY3bii9RSxzXDTCcwlsQEYmZDI+X1WPXbE9c=";
|
||||
vendorHash = "sha256-oqnDK3H+ssgAc1F85OS/qfJRE+LCnfxDy3v7bf4RxUQ=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "apitrace";
|
||||
version = "13.0";
|
||||
version = "14.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "apitrace";
|
||||
repo = "apitrace";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-ZZ2RL9nvwvHBEuKSDr1tgRhxBeg+XJKPUvSiHz6g/cg=";
|
||||
hash = "sha256-nZBs5j095p2GerRqeMjAuNVySkLAfWX3mS+9ICXPie4=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "apko";
|
||||
version = "1.2.3";
|
||||
version = "1.2.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "chainguard-dev";
|
||||
repo = "apko";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-YHehcCaMclkWkiOFL7FzVUKdLcIjhUXNJUaFEXNdubI=";
|
||||
hash = "sha256-y1/tkLwVW/D6KDnoO/YtW88vA+O+qfbu53Ystx0zf2Y=";
|
||||
# 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;
|
||||
@@ -29,7 +29,7 @@ buildGoModule (finalAttrs: {
|
||||
find "$out" -name .git -print0 | xargs -0 rm -rf
|
||||
'';
|
||||
};
|
||||
vendorHash = "sha256-6KLdW45fUb1smdjEuVEe3PBhmC5Z6LnlHp8OkRKghno=";
|
||||
vendorHash = "sha256-xAXI1qGNOhPiDWc6KQX7ThDqs67XhP+O+ideQiMG6B8=";
|
||||
|
||||
excludedPackages = [
|
||||
"internal/gen-jsonschema"
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
}:
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "arxiv-latex-cleaner";
|
||||
version = "1.0.8";
|
||||
version = "1.0.11";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "google-research";
|
||||
repo = "arxiv-latex-cleaner";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-CQb1u1j+/px+vNqA3iXZ2oe6/0ZWeMjWrUQL9elRDEI=";
|
||||
hash = "sha256-Q3vNGF9uOForLawJtp424Tv3MaVfUSqk4orv9gojm3M=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "atlantis";
|
||||
version = "0.41.0";
|
||||
version = "0.42.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "runatlantis";
|
||||
repo = "atlantis";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-OnZ+rygG6TpPkZzU4UBmfnxkRrSyFWEn/rEqwpXhMio=";
|
||||
hash = "sha256-EcFthkizJOcqxpt8VjuFRM0UPHHxSseEcWTpT/qlCxw=";
|
||||
};
|
||||
|
||||
ldflags = [
|
||||
@@ -21,7 +21,7 @@ buildGoModule (finalAttrs: {
|
||||
"-X=main.date=1970-01-01T00:00:00Z"
|
||||
];
|
||||
|
||||
vendorHash = "sha256-aAIiDFiaWRTYfmC4yqVRXtNRLrvdtLbUAV6lC3QYhdc=";
|
||||
vendorHash = "sha256-ilKrQulEmsyv8w2ENjhfICoiXOexjUZXeb3cPeqcTqw=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
@@ -35,6 +35,8 @@ buildGoModule (finalAttrs: {
|
||||
description = "Terraform Pull Request Automation";
|
||||
mainProgram = "atlantis";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = [ ];
|
||||
maintainers = with lib.maintainers; [
|
||||
tebriel
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -10,16 +10,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "aws-nuke";
|
||||
version = "3.62.2";
|
||||
version = "3.64.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ekristen";
|
||||
repo = "aws-nuke";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-NHZ5pPekRe7Mv4QLKvvqclmS+PCwOs2RK+N1aCu2v4I=";
|
||||
hash = "sha256-oDQcwj3CXud7iOC9UbfQQMcTv0Jp0bCMD8TgMSoG+xw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-9EM2IjQk20TY3q/4FqrvRe1Ku4lfrkgMqQnooZlpW1o=";
|
||||
vendorHash = "sha256-NgnaGCyYe21F0T0NeLD0X0i/Q7lgXmiB5tKP0UJiht0=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "bngblaster";
|
||||
version = "0.9.33";
|
||||
version = "0.9.34";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rtbrick";
|
||||
repo = "bngblaster";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-8Ka+fLDQdSadxXGd/xMt7qurdnSFE6jdi8bGnTH+mPQ=";
|
||||
hash = "sha256-XkJyNybA0/zjYaz5S1yr6IOVnBOqdXcqRu7bCGpv3CA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
{
|
||||
"dart_leap": "sha256-oO5851cIdrW/asgOePxvwUgjn1XchkH9CKJUruvlLYI=",
|
||||
"irondash_engine_context": "sha256-SaF2vZUEbamhLotu3XQhCGrDZDk9S/vQ8TGPkvJXVkw=",
|
||||
"lw_file_system": "sha256-VxN22Gi9IjISwwbqSdgUOZojS+xu+xVErKJRgBCtHts=",
|
||||
"lw_file_system_api": "sha256-O3VTgaxml6HuwBPHjJ5nr3n+6JdzHMN1IKkTuM8OX54=",
|
||||
"lw_sysapi": "sha256-QfCkjNKG8bz2ra9AEMScp4lfl8ujOvnSNx8KTOr0LvE=",
|
||||
"material_leap": "sha256-VKYKS3fa8260xYL3GOF5yjvux3bADA5DtLijwx6C89M=",
|
||||
"networker": "sha256-YqCl/FODv8QZFnz1qVHoJLIioYhcluPiY4pP09MzvNE=",
|
||||
"networker_crypto": "sha256-8I/qBdxxbIse7un4W9MjaifbK7TqsyYrFnIbaTuezo0=",
|
||||
"networker_socket": "sha256-8I/qBdxxbIse7un4W9MjaifbK7TqsyYrFnIbaTuezo0=",
|
||||
"keybinder": "sha256-to43phRcKNE8EP5QGOWN9kpq3MUc+KZqn4VPDtg0KCo=",
|
||||
"lw_file_system": "sha256-NLcpbP7s+EUgJCWX+PzWg8cXjvac1jQ8tVVkYL/aWNQ=",
|
||||
"lw_file_system_api": "sha256-pU+e4KtLBBzcZkdJWT0yk41wyc75Nindm+2zLj9b4SM=",
|
||||
"lw_sysapi": "sha256-jlAVgZ7OokfoxGqXNPSbVww7GsRsayzc7eYm7aIYrKE=",
|
||||
"material_leap": "sha256-2axYjeZMdOwaa+wangI9eRDDM12DxupYHDb1QadNECA=",
|
||||
"networker": "sha256-0leCfD2orfatqmbBvlPLtAjy42L9Ug8G6Grj6XlhUa8=",
|
||||
"networker_crypto": "sha256-AA8WAn4wyt/GXIPgkNrjitqmaiDW39VBKvJzoj6akms=",
|
||||
"networker_socket": "sha256-wz6Kr/XCgQYFkMPlbVftNqGbRuGIKjRTteadGCCxT1w=",
|
||||
"super_native_extensions": "sha256-Bs83FAguu1qDnbSxXc5W2IMyAZ8pNUAh5wuu6amLKQ4=",
|
||||
"swamp_api": "sha256-74Zr2qUeS8JnWcqqU7zAwaD8ygnni76OuTOwQqobhCk="
|
||||
"swamp_api": "sha256-4KBgNmrwfq7VsNKcczTaG1qokFxuYfEC8H55fkV8HsM="
|
||||
}
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2.4.4";
|
||||
version = "2.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LinwoodDev";
|
||||
repo = "Butterfly";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-fndhtUSawdnR5l0E5pcetBpt841aysncJb9IHoK3UKw=";
|
||||
hash = "sha256-TmH8Hn6jwOIKsOHEoOJVeCOD+dp7OQKJhZV174F4JHU=";
|
||||
};
|
||||
in
|
||||
flutter338.buildFlutterApplication {
|
||||
|
||||
@@ -24,11 +24,21 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "animations",
|
||||
"sha256": "18938cefd7dcc04e1ecac0db78973761a01e4bc2d6bfae0cfa596bfeac9e96ab",
|
||||
"sha256": "a120785be876b24177e8af387929e786e7761d6574e63cad6c2ca28545b30186",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.1.1"
|
||||
"version": "2.1.2"
|
||||
},
|
||||
"ansicolor": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "ansicolor",
|
||||
"sha256": "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.0.3"
|
||||
},
|
||||
"archive": {
|
||||
"dependency": "direct main",
|
||||
@@ -54,11 +64,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "async",
|
||||
"sha256": "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb",
|
||||
"sha256": "e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.13.0"
|
||||
"version": "2.13.1"
|
||||
},
|
||||
"barcode": {
|
||||
"dependency": "direct main",
|
||||
@@ -104,21 +114,21 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "build",
|
||||
"sha256": "275bf6bb2a00a9852c28d4e0b410da1d833a734d57d39d44f94bfc895a484ec3",
|
||||
"sha256": "aadd943f4f8cc946882c954c187e6115a84c98c81ad1d9c6cbf0895a8c85da9c",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "4.0.4"
|
||||
"version": "4.0.5"
|
||||
},
|
||||
"build_config": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "build_config",
|
||||
"sha256": "4f64382b97504dc2fcdf487d5aae33418e08b4703fc21249e4db6d804a4d0187",
|
||||
"sha256": "4070d2a59f8eec34c97c86ceb44403834899075f66e8a9d59706f8e7834f6f71",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.2.0"
|
||||
"version": "1.3.0"
|
||||
},
|
||||
"build_daemon": {
|
||||
"dependency": "transitive",
|
||||
@@ -134,11 +144,11 @@
|
||||
"dependency": "direct dev",
|
||||
"description": {
|
||||
"name": "build_runner",
|
||||
"sha256": "39ad4ca8a2876779737c60e4228b4bcd35d4352ef7e14e47514093edc012c734",
|
||||
"sha256": "521daf8d189deb79ba474e43a696b41c49fb3987818dbacf3308f1e03673a75e",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.11.1"
|
||||
"version": "2.13.1"
|
||||
},
|
||||
"built_collection": {
|
||||
"dependency": "transitive",
|
||||
@@ -154,11 +164,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "built_value",
|
||||
"sha256": "7931c90b84bc573fef103548e354258ae4c9d28d140e41961df6843c5d60d4d8",
|
||||
"sha256": "0730c18c770d05636a8f945c32a4d7d81cb6e0f0148c8db4ad12e7748f7e49af",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "8.12.3"
|
||||
"version": "8.12.5"
|
||||
},
|
||||
"butterfly_api": {
|
||||
"dependency": "direct main",
|
||||
@@ -167,37 +177,37 @@
|
||||
"relative": true
|
||||
},
|
||||
"source": "path",
|
||||
"version": "2.4.4"
|
||||
"version": "2.5.0"
|
||||
},
|
||||
"camera": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "camera",
|
||||
"sha256": "a005c6b9783d895a3a9808d65d06773d13587e22a186b6fe8ef3801b0d12f8cf",
|
||||
"sha256": "034c38cb8014d29698dcae6d20276688a1bf74e6487dfeb274d70ea05d5f7777",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.11.3+1"
|
||||
"version": "0.12.0+1"
|
||||
},
|
||||
"camera_android_camerax": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "camera_android_camerax",
|
||||
"sha256": "8516fe308bc341a5067fb1a48edff0ddfa57c0d3cdcc9dbe7ceca3ba119e2577",
|
||||
"sha256": "2c178975759aac0f0ef7ce1ec698b6e2acd792127ea7f38fa79a424fbebeae7f",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.6.30"
|
||||
"version": "0.7.1+2"
|
||||
},
|
||||
"camera_avfoundation": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "camera_avfoundation",
|
||||
"sha256": "11b4aee2f5e5e038982e152b4a342c749b414aa27857899d20f4323e94cb5f0b",
|
||||
"sha256": "90e4cc3fde331581a3b2d35d83be41dbb7393af0ab857eb27b732174289cb96d",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.9.23+2"
|
||||
"version": "0.10.1"
|
||||
},
|
||||
"camera_platform_interface": {
|
||||
"dependency": "transitive",
|
||||
@@ -233,11 +243,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "characters",
|
||||
"sha256": "f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803",
|
||||
"sha256": "faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.4.0"
|
||||
"version": "1.4.1"
|
||||
},
|
||||
"checked_yaml": {
|
||||
"dependency": "transitive",
|
||||
@@ -303,21 +313,21 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "connectivity_plus",
|
||||
"sha256": "33bae12a398f841c6cda09d1064212957265869104c478e5ad51e2fb26c3973c",
|
||||
"sha256": "b8fe52979ff12432ecf8f0abf6ff70410b1bb734be1c9e4f2f86807ad7166c79",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "7.0.0"
|
||||
"version": "7.1.0"
|
||||
},
|
||||
"connectivity_plus_platform_interface": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "connectivity_plus_platform_interface",
|
||||
"sha256": "42657c1715d48b167930d5f34d00222ac100475f73d10162ddf43e714932f204",
|
||||
"sha256": "3c09627c536d22fd24691a905cdd8b14520de69da52c7a97499c8be5284a32ed",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.0.1"
|
||||
"version": "2.1.0"
|
||||
},
|
||||
"console": {
|
||||
"dependency": "transitive",
|
||||
@@ -363,21 +373,31 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "cryptography_flutter_plus",
|
||||
"sha256": "35a8c270aae0abaac7125a6b6b33c2b3daa0ea90d85320aa7d588b6dd6c2edc9",
|
||||
"sha256": "65bc0a78c2104cdb02f4b69e3a03abef093e660d9d9208bc81942b058b49deb2",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.3.4"
|
||||
"version": "3.0.0"
|
||||
},
|
||||
"cryptography_plus": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "cryptography_plus",
|
||||
"sha256": "34db787df4f4740a39474b6fb0a610aa6dc13a5b5b68754b4787a79939ac0454",
|
||||
"sha256": "edf96fc96518368b11bb1ba33b515f59aa5a55b0aa7533c0e1813399cf81130e",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.7.1"
|
||||
"version": "3.0.0"
|
||||
},
|
||||
"csslib": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "csslib",
|
||||
"sha256": "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.0.2"
|
||||
},
|
||||
"dart_leap": {
|
||||
"dependency": "transitive",
|
||||
@@ -394,21 +414,21 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "dart_mappable",
|
||||
"sha256": "0e219930c9f7b9e0f14ae7c1de931c401875110fd5c67975b6b9492a6d3a531b",
|
||||
"sha256": "97526bd5e1b1739be5c7379c51d391d074b6bbd109e6e92be49028ecb1a9853c",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "4.6.1"
|
||||
"version": "4.7.0"
|
||||
},
|
||||
"dart_style": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "dart_style",
|
||||
"sha256": "15a7db352c8fc6a4d2bc475ba901c25b39fe7157541da4c16eacce6f8be83e49",
|
||||
"sha256": "29f7ecc274a86d32920b1d9cfc7502fa87220da41ec60b55f329559d5732e2b2",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "3.1.5"
|
||||
"version": "3.1.7"
|
||||
},
|
||||
"dbus": {
|
||||
"dependency": "transitive",
|
||||
@@ -424,11 +444,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "device_info_plus",
|
||||
"sha256": "4df8babf73058181227e18b08e6ea3520cf5fc5d796888d33b7cb0f33f984b7c",
|
||||
"sha256": "b4fed1b2835da9d670d7bed7db79ae2a94b0f5ad6312268158a9b5479abbacdd",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "12.3.0"
|
||||
"version": "12.4.0"
|
||||
},
|
||||
"device_info_plus_platform_interface": {
|
||||
"dependency": "transitive",
|
||||
@@ -494,11 +514,11 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "file_picker",
|
||||
"sha256": "57d9a1dd5063f85fa3107fb42d1faffda52fdc948cefd5fe5ea85267a5fc7343",
|
||||
"sha256": "84fd4edc420fd356b4c72b733ba3b54b4b20240b9e495e3852fe015181c9ede6",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "10.3.10"
|
||||
"version": "11.0.1"
|
||||
},
|
||||
"fixnum": {
|
||||
"dependency": "transitive",
|
||||
@@ -588,15 +608,25 @@
|
||||
"source": "hosted",
|
||||
"version": "0.7.4"
|
||||
},
|
||||
"flutter_native_splash": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "flutter_native_splash",
|
||||
"sha256": "4fb9f4113350d3a80841ce05ebf1976a36de622af7d19aca0ca9a9911c7ff002",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.4.7"
|
||||
},
|
||||
"flutter_plugin_android_lifecycle": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "flutter_plugin_android_lifecycle",
|
||||
"sha256": "ee8068e0e1cd16c4a82714119918efdeed33b3ba7772c54b5d094ab53f9b7fd1",
|
||||
"sha256": "38d1c268de9097ff59cf0e844ac38759fc78f76836d37edad06fa21e182055a0",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.0.33"
|
||||
"version": "2.0.34"
|
||||
},
|
||||
"flutter_secure_storage": {
|
||||
"dependency": "direct main",
|
||||
@@ -662,11 +692,11 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "flutter_svg",
|
||||
"sha256": "87fbd7c534435b6c5d9d98b01e1fd527812b82e68ddd8bd35fc45ed0fa8f0a95",
|
||||
"sha256": "1ded017b39c8e15c8948ea855070a5ff8ff8b3d5e83f3446e02d6bb12add7ad9",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.2.3"
|
||||
"version": "2.2.4"
|
||||
},
|
||||
"flutter_test": {
|
||||
"dependency": "direct dev",
|
||||
@@ -710,11 +740,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "get_it",
|
||||
"sha256": "1d648d2dd2047d7f7450d5727ca24ee435f240385753d90b49650e3cdff32e56",
|
||||
"sha256": "568d62f0e68666fb5d95519743b3c24a34c7f19d834b0658c46e26d778461f66",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "9.2.0"
|
||||
"version": "9.2.1"
|
||||
},
|
||||
"glob": {
|
||||
"dependency": "transitive",
|
||||
@@ -730,11 +760,11 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "go_router",
|
||||
"sha256": "7974313e217a7771557add6ff2238acb63f635317c35fa590d348fb238f00896",
|
||||
"sha256": "48fb2f42ad057476fa4b733cb95e9f9ea7b0b010bb349ea491dca7dbdb18ffc4",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "17.1.0"
|
||||
"version": "17.2.0"
|
||||
},
|
||||
"graphs": {
|
||||
"dependency": "transitive",
|
||||
@@ -746,15 +776,35 @@
|
||||
"source": "hosted",
|
||||
"version": "2.3.2"
|
||||
},
|
||||
"group_button": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "group_button",
|
||||
"sha256": "0610fcf28ed122bfb4b410fce161a390f7f2531d55d1d65c5375982001415940",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "5.3.4"
|
||||
},
|
||||
"hooks": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "hooks",
|
||||
"sha256": "7a08a0d684cb3b8fb604b78455d5d352f502b68079f7b80b831c62220ab0a4f6",
|
||||
"sha256": "e79ed1e8e1929bc6ecb6ec85f0cb519c887aa5b423705ded0d0f2d9226def388",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.0.1"
|
||||
"version": "1.0.2"
|
||||
},
|
||||
"html": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "html",
|
||||
"sha256": "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.15.6"
|
||||
},
|
||||
"http": {
|
||||
"dependency": "direct main",
|
||||
@@ -790,11 +840,11 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "idb_shim",
|
||||
"sha256": "921301da0a735f336a28fc35c3abdbd4498895cc205fa1ea9f7e785e7d854ceb",
|
||||
"sha256": "62b37b2415074f3c104e93b22c3ef24c4adc52890e74c30ed36a09dd0948a2de",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.8.2+4"
|
||||
"version": "2.8.5+1"
|
||||
},
|
||||
"image": {
|
||||
"dependency": "direct main",
|
||||
@@ -853,45 +903,36 @@
|
||||
"source": "hosted",
|
||||
"version": "0.7.0"
|
||||
},
|
||||
"js": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "js",
|
||||
"sha256": "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.7.2"
|
||||
},
|
||||
"json_annotation": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "json_annotation",
|
||||
"sha256": "805fa86df56383000f640384b282ce0cb8431f1a7a2396de92fb66186d8c57df",
|
||||
"sha256": "cb09e7dac6210041fad964ed7fbee004f14258b4eca4040f72d1234062ace4c8",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "4.10.0"
|
||||
},
|
||||
"json_schema": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "json_schema",
|
||||
"sha256": "f37d9c3fdfe8c9aae55fdfd5af815d24ce63c3a0f6a2c1f0982c30f43643fa1a",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "5.2.2"
|
||||
"version": "4.11.0"
|
||||
},
|
||||
"json_serializable": {
|
||||
"dependency": "direct dev",
|
||||
"description": {
|
||||
"name": "json_serializable",
|
||||
"sha256": "93fba3ad139dab2b1ce59ecc6fdce6da46a42cdb6c4399ecda30f1e7e725760d",
|
||||
"sha256": "fbcf404b03520e6e795f6b9b39badb2b788407dfc0a50cf39158a6ae1ca78925",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "6.12.0"
|
||||
"version": "6.13.1"
|
||||
},
|
||||
"keybinder": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": "packages/keybinder",
|
||||
"ref": "74c6adbd202606181703d37cfcca0708a02b3211",
|
||||
"resolved-ref": "74c6adbd202606181703d37cfcca0708a02b3211",
|
||||
"url": "https://github.com/LinwoodDev/dart_pkgs.git"
|
||||
},
|
||||
"source": "git",
|
||||
"version": "0.0.1"
|
||||
},
|
||||
"leak_tracker": {
|
||||
"dependency": "transitive",
|
||||
@@ -947,8 +988,8 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": "packages/lw_file_system",
|
||||
"ref": "8e320ecf84bf7f53388c9de985a06606a6467ab1",
|
||||
"resolved-ref": "8e320ecf84bf7f53388c9de985a06606a6467ab1",
|
||||
"ref": "fadf61fcea99010011551f43d8a92251fc8c91ee",
|
||||
"resolved-ref": "fadf61fcea99010011551f43d8a92251fc8c91ee",
|
||||
"url": "https://github.com/LinwoodDev/dart_pkgs.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -958,8 +999,8 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"path": "packages/lw_file_system_api",
|
||||
"ref": "05c726ca745112dec80c6d30a27478e1556367b7",
|
||||
"resolved-ref": "05c726ca745112dec80c6d30a27478e1556367b7",
|
||||
"ref": "6bb33189fcc30c211ceb7c6bcfd015732b0f8b6d",
|
||||
"resolved-ref": "6bb33189fcc30c211ceb7c6bcfd015732b0f8b6d",
|
||||
"url": "https://github.com/LinwoodDev/dart_pkgs.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -969,8 +1010,8 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": "packages/lw_sysapi",
|
||||
"ref": "c802aa8a3619f1ad9cbcc6d76298b5026b29f8a5",
|
||||
"resolved-ref": "c802aa8a3619f1ad9cbcc6d76298b5026b29f8a5",
|
||||
"ref": "6c2947728afd3922de9386391c138e99ce05e26f",
|
||||
"resolved-ref": "6c2947728afd3922de9386391c138e99ce05e26f",
|
||||
"url": "https://github.com/LinwoodDev/dart_pkgs.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -980,38 +1021,38 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "markdown",
|
||||
"sha256": "935e23e1ff3bc02d390bad4d4be001208ee92cc217cb5b5a6c19bc14aaa318c1",
|
||||
"sha256": "ee85086ad7698b42522c6ad42fe195f1b9898e4d974a1af4576c1a3a176cada9",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "7.3.0"
|
||||
"version": "7.3.1"
|
||||
},
|
||||
"matcher": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "matcher",
|
||||
"sha256": "dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2",
|
||||
"sha256": "dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.12.17"
|
||||
"version": "0.12.19"
|
||||
},
|
||||
"material_color_utilities": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "material_color_utilities",
|
||||
"sha256": "f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec",
|
||||
"sha256": "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.11.1"
|
||||
"version": "0.13.0"
|
||||
},
|
||||
"material_leap": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": "packages/material_leap",
|
||||
"ref": "cafd10fa5bc129f98fc123870e612e649150557f",
|
||||
"resolved-ref": "cafd10fa5bc129f98fc123870e612e649150557f",
|
||||
"ref": "2be0e27cf8f9a2166b23dd5a723fc55a47e832a9",
|
||||
"resolved-ref": "2be0e27cf8f9a2166b23dd5a723fc55a47e832a9",
|
||||
"url": "https://github.com/LinwoodDev/dart_pkgs.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -1037,6 +1078,16 @@
|
||||
"source": "hosted",
|
||||
"version": "2.0.0"
|
||||
},
|
||||
"mocktail": {
|
||||
"dependency": "direct dev",
|
||||
"description": {
|
||||
"name": "mocktail",
|
||||
"sha256": "890df3f9688106f25755f26b1c60589a92b3ab91a22b8b224947ad041bf172d8",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.0.4"
|
||||
},
|
||||
"msix": {
|
||||
"dependency": "direct dev",
|
||||
"description": {
|
||||
@@ -1051,11 +1102,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "native_toolchain_c",
|
||||
"sha256": "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac",
|
||||
"sha256": "6ba77bb18063eebe9de401f5e6437e95e1438af0a87a3a39084fbd37c90df572",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.17.4"
|
||||
"version": "0.17.6"
|
||||
},
|
||||
"nested": {
|
||||
"dependency": "transitive",
|
||||
@@ -1091,8 +1142,8 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": "packages/networker/networker",
|
||||
"ref": "4f221c5943ceb786eb7bd427eb71a8cc1346b9b8",
|
||||
"resolved-ref": "4f221c5943ceb786eb7bd427eb71a8cc1346b9b8",
|
||||
"ref": "54d35ef572172ac74d853d47af0140a89b36d714",
|
||||
"resolved-ref": "54d35ef572172ac74d853d47af0140a89b36d714",
|
||||
"url": "https://github.com/LinwoodDev/dart_pkgs.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -1102,8 +1153,8 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": "packages/networker/networker_crypto",
|
||||
"ref": "ec6f31ba3eb0da17bdef6a8d66ef6caafcabd908",
|
||||
"resolved-ref": "ec6f31ba3eb0da17bdef6a8d66ef6caafcabd908",
|
||||
"ref": "12e0f6d0071deb7a68274dfc13f9e36360432eff",
|
||||
"resolved-ref": "12e0f6d0071deb7a68274dfc13f9e36360432eff",
|
||||
"url": "https://github.com/LinwoodDev/dart_pkgs.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -1113,8 +1164,8 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": "packages/networker/networker_socket",
|
||||
"ref": "ec6f31ba3eb0da17bdef6a8d66ef6caafcabd908",
|
||||
"resolved-ref": "ec6f31ba3eb0da17bdef6a8d66ef6caafcabd908",
|
||||
"ref": "1ab8146be49b208ba5890935561b93af71702858",
|
||||
"resolved-ref": "1ab8146be49b208ba5890935561b93af71702858",
|
||||
"url": "https://github.com/LinwoodDev/dart_pkgs.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -1164,11 +1215,11 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "package_info_plus",
|
||||
"sha256": "f69da0d3189a4b4ceaeb1a3defb0f329b3b352517f52bed4290f83d4f06bc08d",
|
||||
"sha256": "468c26b4254ab01979fa5e4a98cb343ea3631b9acee6f21028997419a80e1a20",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "9.0.0"
|
||||
"version": "9.0.1"
|
||||
},
|
||||
"package_info_plus_platform_interface": {
|
||||
"dependency": "transitive",
|
||||
@@ -1214,11 +1265,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "path_provider_android",
|
||||
"sha256": "f2c65e21139ce2c3dad46922be8272bb5963516045659e71bb16e151c93b580e",
|
||||
"sha256": "149441ca6e4f38193b2e004c0ca6376a3d11f51fa5a77552d8bd4d2b0c0912ba",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.2.22"
|
||||
"version": "2.2.23"
|
||||
},
|
||||
"path_provider_foundation": {
|
||||
"dependency": "transitive",
|
||||
@@ -1384,11 +1435,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "posix",
|
||||
"sha256": "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61",
|
||||
"sha256": "185ef7606574f789b40f289c233efa52e96dead518aed988e040a10737febb07",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "6.0.3"
|
||||
"version": "6.5.0"
|
||||
},
|
||||
"process": {
|
||||
"dependency": "transitive",
|
||||
@@ -1440,16 +1491,6 @@
|
||||
"source": "hosted",
|
||||
"version": "3.0.2"
|
||||
},
|
||||
"quiver": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "quiver",
|
||||
"sha256": "ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "3.2.2"
|
||||
},
|
||||
"reorderable_grid": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
@@ -1470,16 +1511,6 @@
|
||||
"source": "hosted",
|
||||
"version": "0.3.0"
|
||||
},
|
||||
"rfc_6901": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "rfc_6901",
|
||||
"sha256": "6a43b1858dca2febaf93e15639aa6b0c49ccdfd7647775f15a499f872b018154",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.2.1"
|
||||
},
|
||||
"rxdart": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
@@ -1554,11 +1585,11 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "share_plus",
|
||||
"sha256": "14c8860d4de93d3a7e53af51bff479598c4e999605290756bbbe45cf65b37840",
|
||||
"sha256": "223873d106614442ea6f20db5a038685cc5b32a2fba81cdecaefbbae0523f7fa",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "12.0.1"
|
||||
"version": "12.0.2"
|
||||
},
|
||||
"share_plus_platform_interface": {
|
||||
"dependency": "transitive",
|
||||
@@ -1574,21 +1605,21 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "shared_preferences",
|
||||
"sha256": "2939ae520c9024cb197fc20dee269cd8cdbf564c8b5746374ec6cacdc5169e64",
|
||||
"sha256": "c3025c5534b01739267eb7d76959bbc25a6d10f6988e1c2a3036940133dd10bf",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.5.4"
|
||||
"version": "2.5.5"
|
||||
},
|
||||
"shared_preferences_android": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "shared_preferences_android",
|
||||
"sha256": "cbc40be9be1c5af4dab4d6e0de4d5d3729e6f3d65b89d21e1815d57705644a6f",
|
||||
"sha256": "e8d4762b1e2e8578fc4d0fd548cebf24afd24f49719c08974df92834565e2c53",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.4.20"
|
||||
"version": "2.4.23"
|
||||
},
|
||||
"shared_preferences_foundation": {
|
||||
"dependency": "transitive",
|
||||
@@ -1614,11 +1645,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "shared_preferences_platform_interface",
|
||||
"sha256": "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80",
|
||||
"sha256": "649dc798a33931919ea356c4305c2d1f81619ea6e92244070b520187b5140ef9",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.4.1"
|
||||
"version": "2.4.2"
|
||||
},
|
||||
"shared_preferences_web": {
|
||||
"dependency": "transitive",
|
||||
@@ -1670,21 +1701,21 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "source_gen",
|
||||
"sha256": "1d562a3c1f713904ebbed50d2760217fd8a51ca170ac4b05b0db490699dbac17",
|
||||
"sha256": "732792cfd197d2161a65bb029606a46e0a18ff30ef9e141a7a82172b05ea8ecd",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "4.2.0"
|
||||
"version": "4.2.2"
|
||||
},
|
||||
"source_helper": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "source_helper",
|
||||
"sha256": "4a85e90b50694e652075cbe4575665539d253e6ec10e46e76b45368ab5e3caae",
|
||||
"sha256": "1d3b229b2934034fb2e691fbb3d53e0f75a4af7b1407f88425ed8f209bcb1b8f",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.3.10"
|
||||
"version": "1.3.11"
|
||||
},
|
||||
"source_span": {
|
||||
"dependency": "transitive",
|
||||
@@ -1761,12 +1792,12 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": "api",
|
||||
"ref": "1c15259fc8c5e043997ffcaafbf45348a77e3003",
|
||||
"resolved-ref": "1c15259fc8c5e043997ffcaafbf45348a77e3003",
|
||||
"ref": "88af0f2fe2a99e0cf121662f9fb87ed6deef7987",
|
||||
"resolved-ref": "88af0f2fe2a99e0cf121662f9fb87ed6deef7987",
|
||||
"url": "https://github.com/LinwoodDev/Swamp.git"
|
||||
},
|
||||
"source": "git",
|
||||
"version": "1.0.0"
|
||||
"version": "0.2.0"
|
||||
},
|
||||
"sync_http": {
|
||||
"dependency": "transitive",
|
||||
@@ -1788,6 +1819,46 @@
|
||||
"source": "hosted",
|
||||
"version": "3.4.0"
|
||||
},
|
||||
"talker": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "talker",
|
||||
"sha256": "c364edc0fbd6c648e1a78e6edd89cccd64df2150ca96d899ecd486b76c185042",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "5.1.16"
|
||||
},
|
||||
"talker_bloc_logger": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "talker_bloc_logger",
|
||||
"sha256": "993820ae80c3b7c44c10f75929c56e0382a6cb432d5c3a2834a98e1ce0c900a7",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "5.1.16"
|
||||
},
|
||||
"talker_flutter": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"name": "talker_flutter",
|
||||
"sha256": "54cbbf852101721664faf4a05639fd2fdefdc37178327990abea00390690d4bc",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "5.1.16"
|
||||
},
|
||||
"talker_logger": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "talker_logger",
|
||||
"sha256": "cea1b8283a28c2118a0b197057fc5beb5b0672c75e40a48725e5e452c0278ff3",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "5.1.16"
|
||||
},
|
||||
"term_glyph": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
@@ -1802,11 +1873,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "test_api",
|
||||
"sha256": "ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55",
|
||||
"sha256": "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.7.7"
|
||||
"version": "0.7.10"
|
||||
},
|
||||
"tuple": {
|
||||
"dependency": "transitive",
|
||||
@@ -1838,15 +1909,15 @@
|
||||
"source": "hosted",
|
||||
"version": "1.4.0"
|
||||
},
|
||||
"uri": {
|
||||
"universal_io": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "uri",
|
||||
"sha256": "889eea21e953187c6099802b7b4cf5219ba8f3518f604a1033064d45b1b8268a",
|
||||
"name": "universal_io",
|
||||
"sha256": "f63cbc48103236abf48e345e07a03ce5757ea86285ed313a6a032596ed9301e2",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.0.0"
|
||||
"version": "2.3.1"
|
||||
},
|
||||
"url_launcher": {
|
||||
"dependency": "direct main",
|
||||
@@ -1862,11 +1933,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "url_launcher_android",
|
||||
"sha256": "767344bf3063897b5cf0db830e94f904528e6dd50a6dfaf839f0abf509009611",
|
||||
"sha256": "3bb000251e55d4a209aa0e2e563309dc9bb2befea2295fd0cec1f51760aac572",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "6.3.28"
|
||||
"version": "6.3.29"
|
||||
},
|
||||
"url_launcher_ios": {
|
||||
"dependency": "transitive",
|
||||
@@ -1932,21 +2003,21 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "uuid",
|
||||
"sha256": "a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8",
|
||||
"sha256": "1fef9e8e11e2991bb773070d4656b7bd5d850967a2456cfc83cf47925ba79489",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "4.5.2"
|
||||
"version": "4.5.3"
|
||||
},
|
||||
"vector_graphics": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "vector_graphics",
|
||||
"sha256": "a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6",
|
||||
"sha256": "81da85e9ca8885ade47f9685b953cb098970d11be4821ac765580a6607ea4373",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.1.19"
|
||||
"version": "1.1.21"
|
||||
},
|
||||
"vector_graphics_codec": {
|
||||
"dependency": "transitive",
|
||||
@@ -1962,11 +2033,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "vector_graphics_compiler",
|
||||
"sha256": "201e876b5d52753626af64b6359cd13ac6011b80728731428fd34bc840f71c9b",
|
||||
"sha256": "5a88dd14c0954a5398af544651c7fb51b457a2a556949bfb25369b210ef73a74",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.1.20"
|
||||
"version": "1.2.0"
|
||||
},
|
||||
"vector_math": {
|
||||
"dependency": "transitive",
|
||||
@@ -2101,6 +2172,6 @@
|
||||
},
|
||||
"sdks": {
|
||||
"dart": ">=3.10.3 <4.0.0",
|
||||
"flutter": ">=3.38.10"
|
||||
"flutter": "3.41.6"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "camunda-modeler";
|
||||
version = "5.46.0";
|
||||
version = "5.46.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/camunda/camunda-modeler/releases/download/v${version}/camunda-modeler-${version}-linux-x64.tar.gz";
|
||||
hash = "sha256-uDZYy+Lkvc5YdIdn84l8QbNPcU5EQzOqTTdTezgCudw=";
|
||||
hash = "sha256-uB+EAZgpll81RifNjKp9AkPLupbDLYHG+zFj0atsXRA=";
|
||||
};
|
||||
sourceRoot = "camunda-modeler-${version}-linux-x64";
|
||||
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "cargo-xwin";
|
||||
version = "0.21.5";
|
||||
version = "0.22.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rust-cross";
|
||||
repo = "cargo-xwin";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-RgR0YBjgpk10IS62+/CdIbZ+7oSnkOC5npIqRrib6eU=";
|
||||
hash = "sha256-lJu/TyzKDj0yHCP83ouc6e52E48taOTQ9WpWAiqUxl4=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-dJkfEPRyXFpMwqExvyimLMc+iOAby5yeEUpHt0MoQ6M=";
|
||||
cargoHash = "sha256-k3PuEjiew012+m4RRVKNOdxKvFPWIxKHgG/SrBjM2WM=";
|
||||
|
||||
meta = {
|
||||
description = "Cross compile Cargo project to Windows MSVC target with ease";
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "cdncheck";
|
||||
version = "1.2.31";
|
||||
version = "1.2.32";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "projectdiscovery";
|
||||
repo = "cdncheck";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-IHImxkPuid5dALQ6YUf0eYHs4AlV5vF+w7xQXw+z05o=";
|
||||
hash = "sha256-phCbvAnI9C4yR/bhClWGN9ccU3vgnJJsum8S7nF0UDs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-z/wOCtd39ENUe8WQUst4uhl8R6RwCDdcUC4OZcRJWSs=";
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "circleci-cli";
|
||||
version = "0.1.34950";
|
||||
version = "0.1.35213";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "CircleCI-Public";
|
||||
repo = "circleci-cli";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-WUfmOTVuSh/y+Tg36eJWo0AAZwpudIqte3LUZlczkVQ=";
|
||||
sha256 = "sha256-RwfLPMAdvYTX8J7iXnzUxCTTINsqx1QHFK7wmAb43oA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-GRWo9oq8M7zJoWCg6iNLbR+DPXvMXF3v+YRU2BBH5+8=";
|
||||
vendorHash = "sha256-vTYepN/srd5qb2o1O5KwcGBwvKmV1DLG3/4OdtKJpVk=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
||||
@@ -22,13 +22,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "clevis";
|
||||
version = "21";
|
||||
version = "22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "latchset";
|
||||
repo = "clevis";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-2vDQP+yvH4v46fLEWG/37r5cYP3OeDfJz71cDHEGiUg=";
|
||||
hash = "sha256-1glqXKOP0GdzbQLMzUEgacRCafneFH9+MTHRYNgjG3Q=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "clorinde";
|
||||
version = "1.4.0";
|
||||
version = "1.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "halcyonnouveau";
|
||||
repo = "clorinde";
|
||||
tag = "clorinde-v${finalAttrs.version}";
|
||||
hash = "sha256-oxco3gwLKxaXDiu3zKb5zaNGQwK5ZL94zYy2PhLFAzU=";
|
||||
hash = "sha256-eqLY3iOunTdTZn7lfM8lLYk2e6EI1jW81BnRg/NaGuY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-SM6OTOCzRUATgQMTfsaNb2DlFCW0VqbTqmbQ3O11xM8=";
|
||||
cargoHash = "sha256-OacfUdCtRyewr8OZFBh6NphccDwQ6diWA5JqPhtMi54=";
|
||||
|
||||
cargoBuildFlags = [ "--package=clorinde" ];
|
||||
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "clzip";
|
||||
version = "1.15";
|
||||
version = "1.16";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://savannah/lzip/clzip/clzip-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-KH6FFSaP+NFiRIeODi4tczwD2S3SsrhJFdde9N5sJh8=";
|
||||
hash = "sha256-8zmjpd/CIgUy3Db5N6eljjoyeLF08oFcxWFRB+VZZuQ=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildNpmPackage {
|
||||
pname = "coc-clangd";
|
||||
version = "0-unstable-2026-01-01";
|
||||
version = "0-unstable-2026-04-01";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "clangd";
|
||||
repo = "coc-clangd";
|
||||
rev = "d4f246f326f066637653eafdf60e12e6b159827d";
|
||||
hash = "sha256-+ydeReWxXp93PtU0zv8OEuSpIebqi1avGNzopyKXeD0=";
|
||||
rev = "34d9ed8e7a08f29e398720802401455733e6a481";
|
||||
hash = "sha256-PiPH9kXmVdu9Ul0t28E1jumZILX7IwIr2OBDfCepobs=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-1331Qaz9BXOeg6NsHuIokXI6VAjiRoslbLT3hXcjgak=";
|
||||
npmDepsHash = "sha256-QVsNztjTuHU0vu53IxjfFqllj1JxHnLwT9B9jaUnWIo=";
|
||||
|
||||
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
|
||||
|
||||
|
||||
@@ -65,14 +65,14 @@ let
|
||||
in
|
||||
clangStdenv.mkDerivation (finalAttrs: {
|
||||
pname = "deadbeef";
|
||||
version = "1.10.0";
|
||||
version = "1.10.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "DeaDBeeF-Player";
|
||||
repo = "deadbeef";
|
||||
fetchSubmodules = true;
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-qa0ULmE15lV2vkyXPNW9kSISQZEANrjwJwykTiifk5Q=";
|
||||
hash = "sha256-9naokzS2PxnyeO8AnqwLOsrYf/8I6Ah3oesUy2f22vs=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "devbox";
|
||||
version = "0.17.1";
|
||||
version = "0.17.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jetify-com";
|
||||
repo = "devbox";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-WwNbbrBm3/iWNCdHh0f+ey06BlibCPkCRXgBoyaJffU=";
|
||||
hash = "sha256-4K7Y0GxMhnhlQP30NGAAqJSgEo6aTNCsUoOfaa+aYkE=";
|
||||
};
|
||||
|
||||
ldflags = [
|
||||
|
||||
@@ -15,11 +15,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "drumkv1";
|
||||
version = "1.3.2";
|
||||
version = "1.4.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/drumkv1/drumkv1-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-Z9F9lbLSAJRlVh7tnSMNTlK7FiZhhlVfeHPlbbVuWXk=";
|
||||
hash = "sha256-w9/bdK/qjSeBD5hfHQnGFUGDnUqPgdkM8GQ18Ps+nzM=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -15,11 +15,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "elasticmq-server";
|
||||
version = "1.6.15";
|
||||
version = "1.7.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://s3-eu-west-1.amazonaws.com/softwaremill-public/elasticmq-server-${finalAttrs.version}.jar";
|
||||
sha256 = "sha256-alxRZFx+Ulk4KYnlIVOClajk2MmfnfUooku2dMJd7c4=";
|
||||
sha256 = "sha256-pA39A/2OLxdBjzxhpGDB2uqQIRkUW9zpfQmoHwOqBCg=";
|
||||
};
|
||||
|
||||
# don't do anything?
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "excalifont";
|
||||
version = "0.18.0";
|
||||
version = "0.18.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "excalidraw";
|
||||
repo = "excalidraw";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Nfzh5rNvHP7R418PP44FXD7xNenzmzMHu7RLAdJsE/c=";
|
||||
hash = "sha256-XhxNXi6JwBq5vw+/6HQTp6NPX3etmCkdBdNboeBru/k=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -20,17 +20,17 @@ let
|
||||
.${system} or (throw "Unsupported system: ${system}");
|
||||
|
||||
packageHashes = {
|
||||
x86_64-linux = "sha256-xlBByHwsyV/ygbQZf1k4cWCI7jqcuufseVpNc4lERaM=";
|
||||
aarch64-linux = "sha256-7/UEYdPsedLEqa/kCR23lz4tmhkhYVwFkXutRAtF8eo=";
|
||||
x86_64-darwin = "sha256-IeA5VWobAZtBsmE15U57PmwWRGhW0l+abytRA9AEERk=";
|
||||
aarch64-darwin = "sha256-HwO3G6MnQP8yG4rzQKt1GkxCfuSSOtC1zOrSNWQzxx4=";
|
||||
x86_64-linux = "sha256-L0Jwo4jY/HhRJGVtKWJ5qdZY+7y59bZClry86f87Snw=";
|
||||
aarch64-linux = "sha256-wCUt6cDAohU8kG3uII/u9gP3K6uVssGnAS1QP0B/kgE=";
|
||||
x86_64-darwin = "sha256-G7G9hzhtL1ILQTS96qEoZU//yVozvyFjnGT8Vot4pbk=";
|
||||
aarch64-darwin = "sha256-xwXeiyWMrN7iXk2e4m7PQmcgtLcUgHt67xShBGmn3Mk=";
|
||||
};
|
||||
|
||||
packageHash = packageHashes.${system} or (throw "Unsupported system: ${system}");
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "fermyon-spin";
|
||||
version = "3.6.2";
|
||||
version = "3.6.3";
|
||||
|
||||
# Use fetchurl rather than fetchzip as these tarballs are built by the project
|
||||
# and not by GitHub (and thus are stable) - this simplifies the update script
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "fg-virgil";
|
||||
version = "0.18.0";
|
||||
version = "0.18.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "excalidraw";
|
||||
repo = "excalidraw";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Nfzh5rNvHP7R418PP44FXD7xNenzmzMHu7RLAdJsE/c=";
|
||||
hash = "sha256-XhxNXi6JwBq5vw+/6HQTp6NPX3etmCkdBdNboeBru/k=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "files-cli";
|
||||
version = "2.15.264";
|
||||
version = "2.15.274";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = "files-cli";
|
||||
owner = "files-com";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-yfcGyGdCeRkMQS21B7vZPVRVvphhKVqUSN1Sw7CnhwM=";
|
||||
hash = "sha256-T8gjqnjxEqj9K1VcjYUZGZPoR5TJ5usakyc3Wfp8FrQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-p6awrajP5n+QJLwMDMGd8U1yPwS9EP0dAhkQJF+ppzI=";
|
||||
vendorHash = "sha256-tmww8qgulL6T7DRpFtzVLexKwWdSXq6KnII7jjH+xXA=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gcsfuse";
|
||||
version = "3.6.0";
|
||||
version = "3.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "googlecloudplatform";
|
||||
repo = "gcsfuse";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-E2xjJ0zy32fI34d/RcPNNwdQR4+V+jB45UehgJt2LpM=";
|
||||
hash = "sha256-JQgjLrAqpRdq20DhG26AxkMRdJkJCrrS4/7LrDvV6NI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Ftkrb94g9w5o64EX4dKIw0jkinaaH5G8MFfbvCWS80k=";
|
||||
vendorHash = "sha256-KDjSNJVsEuLGTgnAz9Ue+ZolxGzuqN3b/B+0LsgI9xY=";
|
||||
|
||||
subPackages = [
|
||||
"."
|
||||
|
||||
@@ -7,13 +7,16 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ggml";
|
||||
version = "0.9.11";
|
||||
version = "0.10.0";
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ggml-org";
|
||||
repo = "ggml";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-huGHwNG2wRwBP32spkHOPtdO6/I3mIxvYGLUzqQi2tc=";
|
||||
hash = "sha256-2Yu7kFKu2VaiGGkb0r+L59VbcWijtWZyJmuyXLb+414=";
|
||||
};
|
||||
|
||||
# The cmake package does not handle absolute CMAKE_INSTALL_LIBDIR and CMAKE_INSTALL_INCLUDEDIR
|
||||
@@ -29,8 +32,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"@CMAKE_INSTALL_FULL_LIBDIR@"
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
];
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gh-poi";
|
||||
version = "0.16.4";
|
||||
version = "0.17.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "seachicken";
|
||||
repo = "gh-poi";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-n/pwgNZyVpK5y5mK2xFS2pWpDyX7YGc734zkJLoKEJo=";
|
||||
hash = "sha256-GFJWZBVRE6tz033NI5zcJIs3ziVa1KoPggKn/o65mDE=";
|
||||
};
|
||||
|
||||
ldflags = [
|
||||
@@ -23,7 +23,7 @@ buildGoModule (finalAttrs: {
|
||||
vendorHash = "sha256-o3ys+Em27sx3VS3AQIP7G/tWRiBlPnvBq37jLtj9QVQ=";
|
||||
|
||||
# Skip checks because some of test suites require fixture.
|
||||
# See: https://github.com/seachicken/gh-poi/blob/v0.16.4/.github/workflows/contract-test.yml#L28-L29
|
||||
# See: https://github.com/seachicken/gh-poi/blob/v0.17.0/.github/workflows/contract-test.yml#L28-L29
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gibo";
|
||||
version = "3.0.20";
|
||||
version = "3.0.21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "simonwhitaker";
|
||||
repo = "gibo";
|
||||
tag = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-u2e0YwtK3MnzIYvXNVc2a4zsoxISAcS3U+6WpgBsYUM=";
|
||||
sha256 = "sha256-XPJy5dDQllnffz8BxJ6BYoFZCf7/x8a/6K6o0mRmKsI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-YVs6S3x0u2dypb5h+pNCUkmfVK+0erzoGZzONipL49o=";
|
||||
vendorHash = "sha256-JMViyQHqq2bkKuOcw+lbjkomoRv0kIqxMfE1Uu7rgfs=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -27,7 +27,7 @@ let
|
||||
pnpmDeps = fetchPnpmDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
fetcherVersion = 3;
|
||||
hash = "sha256-Atb6m5ZD9NKjYezFnYLnQqnlr72g5dz7ROfOF9fsqto=";
|
||||
hash = "sha256-dewYYPO2wmNyYiQadoEKWJ10cghm6Lv7UE1iVlyNiEY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -48,18 +48,18 @@ let
|
||||
in
|
||||
buildGoModule rec {
|
||||
pname = "gitea";
|
||||
version = "1.25.5";
|
||||
version = "1.26.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "go-gitea";
|
||||
repo = "gitea";
|
||||
tag = "v${gitea.version}";
|
||||
hash = "sha256-EDj/n4dOZsdJx4zdP8GwUavZNK145Q8ENXmIL+81MY4=";
|
||||
hash = "sha256-BzO4VHyOShU8QB8re/2MzP+4vNGebY874aB9NQD8KVA=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
vendorHash = "sha256-o7OIVo0/gunGMIDd0r6c9KDtku6pWwzmgm1X9qVbx4w=";
|
||||
vendorHash = "sha256-JSyjJIdRePbSnKL6GHdjx5Xbnsniq6KHOlEFsYvMmbw=";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -71,10 +71,17 @@ buildGoModule rec {
|
||||
# go-modules derivation doesn't provide $data
|
||||
# so we need to wait until it is built, and then
|
||||
# at that time we can then apply the substituteInPlace
|
||||
overrideModAttrs = _: { postPatch = null; };
|
||||
overrideModAttrs = _: {
|
||||
postPatch = ''
|
||||
substituteInPlace go.mod \
|
||||
--replace-fail "go 1.26.2" "go 1.26"
|
||||
'';
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace modules/setting/server.go --subst-var data
|
||||
substituteInPlace go.mod \
|
||||
--replace-fail "go 1.26.2" "go 1.26"
|
||||
'';
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "go-httpbin";
|
||||
version = "2.22.0";
|
||||
version = "2.22.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mccutchen";
|
||||
repo = "go-httpbin";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-+DeBJoi7bXuXx3HcO9bdGlCXiaETwsS4OawVBi3Q57o=";
|
||||
hash = "sha256-N0lq11tF5z+n7AlrOLdJ4eZvaZljSKafpkwma6jPW3k=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "hermit";
|
||||
version = "0.50.2";
|
||||
version = "0.52.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
rev = "v${finalAttrs.version}";
|
||||
owner = "cashapp";
|
||||
repo = "hermit";
|
||||
hash = "sha256-LSDLHqDCqdHsgLr3QVxewAtl2pLUNQJ1mmAyaW5+Io0=";
|
||||
hash = "sha256-V1EWWwnba39UNsi0hLDEDvEGvKcPwKPcXT7nYxh6SbY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-2sNtok5J1kBvJZ0I1FOq1ZP54TsZbzqu/M3v1nA12m8=";
|
||||
|
||||
@@ -20,14 +20,14 @@
|
||||
|
||||
python313Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "high-tide";
|
||||
version = "1.3.0";
|
||||
version = "1.3.1";
|
||||
pyproject = false;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Nokse22";
|
||||
repo = "high-tide";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-BJN29Ew4yN2Whk9BVuo/eaumrN/65boeWc35lwbpBXg=";
|
||||
hash = "sha256-42R4GrFioePGOiM/p9LLE3PR/TYhhnjwa9V/kvP4SWE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "hyprls";
|
||||
version = "0.12.0";
|
||||
version = "0.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hyprland-community";
|
||||
repo = "hyprls";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-5JOJ93XPJ3hFThpLQmQ+EL0wkn+nrq15pwGhZrhc2h0=";
|
||||
hash = "sha256-020bEXaFKZ74dJF5keIXMyRf/MQj0eKNYZXHajHgKUI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-xSDIGlvJjr2IF04X3uoiVvHN2qgcBSNSDHIkTUxW9eM=";
|
||||
vendorHash = "sha256-av3IZlfb09j6Dakc9lm8rPr85I/+pscjhEcZD04scUo=";
|
||||
|
||||
checkFlags = [
|
||||
# Not yet implemented
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
version = "25.04";
|
||||
version = "26.03";
|
||||
pname = "intel-cmt-cat";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "intel-cmt-cat";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-Sbxfa9F+TSv2A8nilrB0PD312v1qN++k8Pezd7wd0PA=";
|
||||
sha256 = "sha256-uGSWpP5CWyUpdLX5F/Lpiqbcdb0Zldeh5XSjptUqLqY=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
@@ -14,13 +14,10 @@
|
||||
let
|
||||
# The officially recommended version is Java 17
|
||||
java = jdk17;
|
||||
|
||||
# It's not clear yet if this version follows the app version, further updates will probably solve this question
|
||||
pgd-updater-version = "1.0.0";
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "irpf";
|
||||
version = "2026-1.0";
|
||||
version = "2026-1.1";
|
||||
|
||||
# https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/download/pgd/dirpf
|
||||
# Para outros sistemas operacionais -> Multi
|
||||
@@ -30,7 +27,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
in
|
||||
fetchzip {
|
||||
url = "https://downloadirpf.receita.fazenda.gov.br/irpf/${year}/irpf/arquivos/IRPF${finalAttrs.version}.zip";
|
||||
hash = "sha256-hePdoDbFPOMjdSzsJqZWyFhHX138bMuocwCNpdOEkKA=";
|
||||
hash = "sha256-/UB8mWB3yaT+mDa3mqGm2ULqDdNcmQu+cHKNdKQa/ug=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -59,7 +56,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
|
||||
cp --no-preserve=mode -r help lib lib-modulos "$BASEDIR"
|
||||
|
||||
install -Dm644 irpf.jar Leia-me.htm offline.png online.png pgd-updater-${pgd-updater-version}.jar "$BASEDIR"
|
||||
install -Dm644 irpf.jar Leia-me.htm offline.png online.png pgd-updater-*.*.*.jar "$BASEDIR"
|
||||
|
||||
# make xdg-open overrideable at runtime
|
||||
makeWrapper ${lib.getExe java} $out/bin/irpf \
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "joe";
|
||||
version = "4.6";
|
||||
version = "4.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/joe-editor/joe-${finalAttrs.version}.tar.gz";
|
||||
sha256 = "1pmr598xxxm9j9dl93kq4dv36zyw0q2dh6d7x07hf134y9hhlnj9";
|
||||
sha256 = "sha256-cSsjqDo3V6k9K0p2Mludq7pVTBgrIJ0mdVN8Jyhn/Lo=";
|
||||
};
|
||||
|
||||
patches = [ ./macos-fix.patch ];
|
||||
|
||||
@@ -11,11 +11,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "katriawm";
|
||||
version = "25.04";
|
||||
version = "26.03";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://www.uninformativ.de/git/katriawm/archives/katriawm-v${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-3cWgLz4BO1X8KkhoQp3hbq5XAx9NzDhsIL3fDSQaG5M=";
|
||||
hash = "sha256-vnnc5SkNzCLZTBxKcaHDo9F5f++7dtESD5hOB0zrxjo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
@@ -14,23 +14,23 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "kiro-cli";
|
||||
version = "1.29.8";
|
||||
version = "2.0.1";
|
||||
|
||||
src =
|
||||
let
|
||||
darwinDmg = fetchurl {
|
||||
url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/Kiro%20CLI.dmg";
|
||||
hash = "sha256-fop1/P/MCCsz+SspvQLDDWn8e+Pry4iX6nAlcrilsmY=";
|
||||
hash = "sha256-1RPuNA7/CpH4nMug0H5+uuYozfUN0EaPPcOmk6sze7s=";
|
||||
};
|
||||
in
|
||||
{
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/kirocli-x86_64-linux.tar.gz";
|
||||
hash = "sha256-oyLrb5fKyCusKGsijISxpqOWUJOM+TYqhYqX5kf1S4s=";
|
||||
hash = "sha256-W+hNOUWNwBwYLbp4qEG5J0Kv/UBN9qFmfIvDz7/CzuE=";
|
||||
};
|
||||
aarch64-linux = fetchurl {
|
||||
url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/kirocli-aarch64-linux.tar.gz";
|
||||
hash = "sha256-UVpodniFUVlbL1NKuqmkdV4oY65wnD+FwGOKOycRRTA=";
|
||||
hash = "sha256-hHDdPep8MO5GqWIwmFvulfE8C+Jsb4umStQlYkcSdpc=";
|
||||
};
|
||||
x86_64-darwin = darwinDmg;
|
||||
aarch64-darwin = darwinDmg;
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "kokkos";
|
||||
version = "5.0.2";
|
||||
version = "5.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kokkos";
|
||||
repo = "kokkos";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-KoTshYKiDiYb2VKyo7C9pzi6SdpoCOjObwI9o4fr91c=";
|
||||
hash = "sha256-yo+E8U06o7eu2U4AbXkHpo9uwjiIDE6NoP8TgUTkmuU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "kubectl-oidc-login";
|
||||
version = "1.36.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "int128";
|
||||
repo = "kubelogin";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-v6kNz75+xRQHfTfBKpKaNZodQzZNmJiF+WX0wJfGZ2M=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-f9Umpdlb6m38J05CanNJktS1T31SBSy1T1rOCzBUYkQ=";
|
||||
|
||||
ldflags = [
|
||||
"-X main.version=${finalAttrs.version}"
|
||||
];
|
||||
|
||||
# Rename output binary to kubectl-<plugin-name> so kubectl recognizes it on $PATH.
|
||||
postInstall = ''
|
||||
mv $out/bin/{kubelogin,${finalAttrs.meta.mainProgram}}
|
||||
'';
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Kubernetes kubelogin plugin to add OpenID Connect authentication to kubectl. Run \"kubectl oidc-login ...\"";
|
||||
# Quirk: we have to write "oidc_login" instead of "oidc-login"
|
||||
# (at least on Mac "aarch64-darwin" and "x86_64_linux"), otherwise calling
|
||||
# "kubectl oidc-login <subcommand>" fails that it can't find the underlying plugin in $PATH.
|
||||
mainProgram = "kubectl-oidc_login";
|
||||
homepage = "https://github.com/int128/kubelogin";
|
||||
changelog = "https://github.com/int128/kubelogin/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = [ lib.maintainers.malteneuss ];
|
||||
};
|
||||
})
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "kubedock";
|
||||
version = "0.21.0";
|
||||
version = "0.21.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "joyrex2001";
|
||||
repo = "kubedock";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-ohriv6Lw5c+XvsENysplZ9FSbbVigjOILfOi3VpaGjI=";
|
||||
hash = "sha256-mxOvk2o2Ke8AEA9SyuyqHr+G9A2qpzlE9rqKG7INr4w=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-EwFNwJ/JTyt+Ua1qvKMEHMbgnMaLCWN7xphV2Q3xnLU=";
|
||||
vendorHash = "sha256-SROlRbpokMsnTscxF71upxmjhZPqTbkk50n0Htwh1lc=";
|
||||
|
||||
# config.Build not defined as it would break r-ryantm
|
||||
ldflags = [
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "kubefwd";
|
||||
version = "1.25.9";
|
||||
version = "1.25.13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "txn2";
|
||||
repo = "kubefwd";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-eJcmQRVrBYcT/o++d4hKUd8UWJDS/Z395M/sz8kpLfw=";
|
||||
hash = "sha256-fAqsBqJgDyollaJNjdXI+hv3im7v0P/+cMkd4zj10kA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-l0iHkuSX1ECtOYY2HIFTPFVSYiZL9fi5BDOjhxWpDyA=";
|
||||
vendorHash = "sha256-jMGz1pgSfr4NAOYvGRBL+A1ecWCC5Okn0vPZ1qgyxB8=";
|
||||
|
||||
subPackages = [ "cmd/kubefwd" ];
|
||||
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
@@ -35,6 +37,10 @@ buildGoModule (finalAttrs: {
|
||||
mv $out/bin/kubelogin $out/bin/kubectl-oidc_login
|
||||
'';
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Kubernetes credential plugin implementing OpenID Connect (OIDC) authentication";
|
||||
mainProgram = "kubectl-oidc_login";
|
||||
@@ -42,6 +48,7 @@ buildGoModule (finalAttrs: {
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [
|
||||
benley
|
||||
malteneuss
|
||||
nevivurn
|
||||
];
|
||||
};
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "kubevirt";
|
||||
version = "1.8.1";
|
||||
version = "1.8.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubevirt";
|
||||
repo = "kubevirt";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-EBF2Pkw4Yl8D5ghE/SA/NOwC2lUQwpk1JZkujWPce6E=";
|
||||
hash = "sha256-YSrMJz0L0Ybw5G6p42YAMMa1D1xc9G8sBLdxjxz3axg=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libaec";
|
||||
version = "1.1.5";
|
||||
version = "1.1.6";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.dkrz.de";
|
||||
owner = "k202009";
|
||||
repo = "libaec";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-ADydaLu8fV0mKp3wZx10VS2I1GFwuLTpbxmRKCmgF0c=";
|
||||
hash = "sha256-cxDP+JNwokxgzH9hO2zw+rIcz8XG7E8ujbAbWpgUEW8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libglibutil";
|
||||
version = "1.0.80";
|
||||
version = "1.0.81";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sailfishos";
|
||||
repo = "libglibutil";
|
||||
rev = finalAttrs.version;
|
||||
sha256 = "sha256-wp87cStOuQILSKFPFlFDL2vGvTQ4Cg5kuSlwnM4kc64=";
|
||||
sha256 = "sha256-sDSdcsCkmsdD6yPEOi8rdURJRJ6LN69ZeiBfLZL2I68=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
||||
@@ -11,14 +11,14 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libisofs";
|
||||
version = "1.5.6.pl01";
|
||||
version = "1.5.8";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "dev.lovelyhq.com";
|
||||
owner = "libburnia";
|
||||
repo = "libisofs";
|
||||
rev = "release-${finalAttrs.version}";
|
||||
hash = "sha256-U5We19f/X1UKYFacCRl+XRXn67W8cYOBORb2uEjanT4=";
|
||||
hash = "sha256-tOkJfS/utUPn38rn0u5zAo1N4IIkvpejg89Oxw6Xqv4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -13,11 +13,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libspectrum";
|
||||
version = "1.5.0";
|
||||
version = "1.6.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/fuse-emulator/libspectrum-${finalAttrs.version}.tar.gz";
|
||||
sha256 = "sha256-o1PLRumxooEGHYFjU+oBDQpv545qF6oLe3QnHKXkrPw=";
|
||||
sha256 = "sha256-rH7jqYEQjk85hikTe4Cd6L4w5qbglFNryNLhQxPMwKo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lzlib";
|
||||
version = "1.15";
|
||||
version = "1.16";
|
||||
outputs = [
|
||||
"out"
|
||||
"info"
|
||||
@@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://savannah/lzip/lzlib/lzlib-${finalAttrs.version}.tar.lz";
|
||||
hash = "sha256-nUVIDnyBccZPodW+7iy9guaf6+kQ8M5ii4dqj+IUFTQ=";
|
||||
hash = "sha256-zSqW+8aF9+PcMrnw5eNARqd+PBD8/r5i+ZUeMX0KjPQ=";
|
||||
# hash from release email
|
||||
};
|
||||
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "maiko";
|
||||
version = "250616-de1fafba";
|
||||
version = "260319-9259716e";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Interlisp";
|
||||
repo = "maiko";
|
||||
tag = "maiko-${finalAttrs.version}";
|
||||
hash = "sha256-RYBV3gqcDPxRteCvUyqm8lKUpW4r0L7kJLlED8M72DI=";
|
||||
hash = "sha256-IqXDw5JuABs1IEKpvq3xjjl4NgZVojdxQYRV6TLhqOk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "marp-cli";
|
||||
version = "4.2.3";
|
||||
version = "4.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "marp-team";
|
||||
repo = "marp-cli";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-CvQq9qndD9S/9t8UBpewQsW83CfV3BXftfFgFZ5Lttk=";
|
||||
hash = "sha256-Dj3DkHgoez4S2TtQQ9KlOWUFZkKDy5lUoNUhPkgUu64=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-VbpseSPH8uncCWiHtXBvCBARflXCCVTltmLO4uB8qmc=";
|
||||
npmDepsHash = "sha256-tPFc7b5OtjRJiD8yGLOYiAMQ7NroJvGlpIvRlrq2TxQ=";
|
||||
npmPackFlags = [ "--ignore-scripts" ];
|
||||
makeCacheWritable = true;
|
||||
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "matrix-alertmanager-receiver";
|
||||
version = "2026.4.1";
|
||||
version = "2026.4.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "metio";
|
||||
repo = "matrix-alertmanager-receiver";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-2ULM0hjKWbFaZvVgkAST4+EvGF4U/xUbJf03NwFs34s=";
|
||||
hash = "sha256-E9L2lmLxA6X+iomNe4SwvLMh3I01zTgTE4Ot4VUstBs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Cw6zU+jwHNPpDenP/KxEdMuLYempyc6mUJ5nmV728DU=";
|
||||
vendorHash = "sha256-SOik+mNGpC/G8Hr2RtOBUxJu5McRRqv24FOFvaDxT3I=";
|
||||
|
||||
env.CGO_ENABLED = "0";
|
||||
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "metacubexd";
|
||||
version = "1.244.2";
|
||||
version = "1.245.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "MetaCubeX";
|
||||
repo = "metacubexd";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-IDbAxFplMh1mDVobiHgIghjjgy4WyOLxRbJdMR6gcTQ=";
|
||||
hash = "sha256-Owapy+nldc0tQAolXNseSOIJHtVKaev+GSw8hHvJDcI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
inherit (finalAttrs) pname version src;
|
||||
pnpm = pnpm_10;
|
||||
fetcherVersion = 3;
|
||||
hash = "sha256-BXyKwwhktRAQ/Eol48iKzD5h4iHYB/p2jJHCuXbZ8Js=";
|
||||
hash = "sha256-Jw2k5vYDq7hwpMBCsMQm6VKxD2nI+W19+BzArkFEdCI=";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.1.0";
|
||||
version = "1.3.7";
|
||||
in
|
||||
python3Packages.buildPythonApplication {
|
||||
pname = "newelle";
|
||||
@@ -31,7 +31,7 @@ python3Packages.buildPythonApplication {
|
||||
owner = "qwersyk";
|
||||
repo = "Newelle";
|
||||
tag = version;
|
||||
hash = "sha256-gI4HNzbIM/1ZTPWondi8tCMZOlNt/SzrTIeppY7uLDM=";
|
||||
hash = "sha256-Qa1f6lNfKt1hh1gWJ45n9rwjO5lSO2d0tMII27glU/E=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -14,14 +14,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "nominatim";
|
||||
version = "5.3.1";
|
||||
version = "5.3.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "osm-search";
|
||||
repo = "Nominatim";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-3WU8n121JbFFZTntcKG6t0x2mC1AzI97q/fMe/UTGTs=";
|
||||
hash = "sha256-jP/OkEuFdVdvA8Uztv/49FXm9dsExVDjw2l2gyMOSsg=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "nvidia-modprobe";
|
||||
version = "590.48.01";
|
||||
version = "595.58.03";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "NVIDIA";
|
||||
repo = "nvidia-modprobe";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-Vtp5FDDmzbwtDe11O0w/S8Mptpp8Li21/gBfJzfE0/g=";
|
||||
hash = "sha256-xInGJb4pnSWHRV93tRACcW87oqBjFiBSGI74N8uVM9A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gnum4 ];
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
{
|
||||
"media_kit": "sha256-Uw0bAY+M7GwprZ/K8MYBqChONmAbuuETZo+x1mNcM3s=",
|
||||
"media_kit_libs_android_video": "sha256-Uw0bAY+M7GwprZ/K8MYBqChONmAbuuETZo+x1mNcM3s=",
|
||||
"media_kit_libs_ios_video": "sha256-Uw0bAY+M7GwprZ/K8MYBqChONmAbuuETZo+x1mNcM3s=",
|
||||
"media_kit_libs_linux": "sha256-Uw0bAY+M7GwprZ/K8MYBqChONmAbuuETZo+x1mNcM3s=",
|
||||
"media_kit_libs_macos_video": "sha256-Uw0bAY+M7GwprZ/K8MYBqChONmAbuuETZo+x1mNcM3s=",
|
||||
"media_kit_libs_video": "sha256-Uw0bAY+M7GwprZ/K8MYBqChONmAbuuETZo+x1mNcM3s=",
|
||||
"media_kit_libs_windows_video": "sha256-Uw0bAY+M7GwprZ/K8MYBqChONmAbuuETZo+x1mNcM3s=",
|
||||
"media_kit_video": "sha256-Uw0bAY+M7GwprZ/K8MYBqChONmAbuuETZo+x1mNcM3s="
|
||||
"media_kit": "sha256-3eAIaq8VFGreb2DUK5WDIiesX2+sr9NpDP/WH8Ztzrc=",
|
||||
"media_kit_libs_android_video": "sha256-3eAIaq8VFGreb2DUK5WDIiesX2+sr9NpDP/WH8Ztzrc=",
|
||||
"media_kit_libs_ios_video": "sha256-3eAIaq8VFGreb2DUK5WDIiesX2+sr9NpDP/WH8Ztzrc=",
|
||||
"media_kit_libs_linux": "sha256-3eAIaq8VFGreb2DUK5WDIiesX2+sr9NpDP/WH8Ztzrc=",
|
||||
"media_kit_libs_macos_video": "sha256-3eAIaq8VFGreb2DUK5WDIiesX2+sr9NpDP/WH8Ztzrc=",
|
||||
"media_kit_libs_ohos": "sha256-3eAIaq8VFGreb2DUK5WDIiesX2+sr9NpDP/WH8Ztzrc=",
|
||||
"media_kit_libs_video": "sha256-3eAIaq8VFGreb2DUK5WDIiesX2+sr9NpDP/WH8Ztzrc=",
|
||||
"media_kit_libs_windows_video": "sha256-3eAIaq8VFGreb2DUK5WDIiesX2+sr9NpDP/WH8Ztzrc=",
|
||||
"media_kit_video": "sha256-3eAIaq8VFGreb2DUK5WDIiesX2+sr9NpDP/WH8Ztzrc="
|
||||
}
|
||||
|
||||
@@ -57,13 +57,13 @@ let
|
||||
};
|
||||
});
|
||||
|
||||
version = "1.4.4";
|
||||
version = "1.4.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Predidit";
|
||||
repo = "oneAnime";
|
||||
tag = version;
|
||||
hash = "sha256-4EieR+Wys7vK+0/pWF5MkA71EeChThVGJ8J5x/8k8nA=";
|
||||
hash = "sha256-kVg6lqJF8kT2TgwiK8aKUWW6yEdQUrJKzw2h4DHN+iw=";
|
||||
};
|
||||
in
|
||||
flutter338.buildFlutterApplication {
|
||||
|
||||
@@ -174,11 +174,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "characters",
|
||||
"sha256": "f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803",
|
||||
"sha256": "faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.4.0"
|
||||
"version": "1.4.1"
|
||||
},
|
||||
"checked_yaml": {
|
||||
"dependency": "transitive",
|
||||
@@ -758,28 +758,28 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "matcher",
|
||||
"sha256": "dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2",
|
||||
"sha256": "dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.12.17"
|
||||
"version": "0.12.19"
|
||||
},
|
||||
"material_color_utilities": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "material_color_utilities",
|
||||
"sha256": "f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec",
|
||||
"sha256": "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.11.1"
|
||||
"version": "0.13.0"
|
||||
},
|
||||
"media_kit": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": "media_kit",
|
||||
"ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"resolved-ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"resolved-ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"url": "https://github.com/Predidit/media-kit.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -789,8 +789,8 @@
|
||||
"dependency": "direct overridden",
|
||||
"description": {
|
||||
"path": "libs/android/media_kit_libs_android_video",
|
||||
"ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"resolved-ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"resolved-ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"url": "https://github.com/Predidit/media-kit.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -800,8 +800,8 @@
|
||||
"dependency": "direct overridden",
|
||||
"description": {
|
||||
"path": "libs/ios/media_kit_libs_ios_video",
|
||||
"ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"resolved-ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"resolved-ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"url": "https://github.com/Predidit/media-kit.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -811,8 +811,8 @@
|
||||
"dependency": "direct overridden",
|
||||
"description": {
|
||||
"path": "libs/linux/media_kit_libs_linux",
|
||||
"ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"resolved-ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"resolved-ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"url": "https://github.com/Predidit/media-kit.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -822,19 +822,30 @@
|
||||
"dependency": "direct overridden",
|
||||
"description": {
|
||||
"path": "libs/macos/media_kit_libs_macos_video",
|
||||
"ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"resolved-ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"resolved-ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"url": "https://github.com/Predidit/media-kit.git"
|
||||
},
|
||||
"source": "git",
|
||||
"version": "1.1.4"
|
||||
},
|
||||
"media_kit_libs_ohos": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"path": "libs/ohos/media_kit_libs_ohos",
|
||||
"ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"resolved-ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"url": "https://github.com/Predidit/media-kit.git"
|
||||
},
|
||||
"source": "git",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"media_kit_libs_video": {
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": "libs/universal/media_kit_libs_video",
|
||||
"ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"resolved-ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"resolved-ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"url": "https://github.com/Predidit/media-kit.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -844,8 +855,8 @@
|
||||
"dependency": "direct overridden",
|
||||
"description": {
|
||||
"path": "libs/windows/media_kit_libs_windows_video",
|
||||
"ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"resolved-ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"resolved-ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"url": "https://github.com/Predidit/media-kit.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -855,8 +866,8 @@
|
||||
"dependency": "direct main",
|
||||
"description": {
|
||||
"path": "media_kit_video",
|
||||
"ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"resolved-ref": "cfbac4f170d25cd4d48bbe352c07ad147ee710f6",
|
||||
"ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"resolved-ref": "4cd7c29566da395229c398d2ec4d0ef96b5e8970",
|
||||
"url": "https://github.com/Predidit/media-kit.git"
|
||||
},
|
||||
"source": "git",
|
||||
@@ -1422,11 +1433,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "test_api",
|
||||
"sha256": "ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55",
|
||||
"sha256": "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.7.7"
|
||||
"version": "0.7.10"
|
||||
},
|
||||
"timing": {
|
||||
"dependency": "transitive",
|
||||
@@ -1598,6 +1609,16 @@
|
||||
"source": "hosted",
|
||||
"version": "1.3.3"
|
||||
},
|
||||
"wakelock_plus_ohos": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "wakelock_plus_ohos",
|
||||
"sha256": "b22af297411555b5ec0fe43ec2960cd5f019dd23b83853214ebe6dcc97b337bd",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.0.3"
|
||||
},
|
||||
"wakelock_plus_platform_interface": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
@@ -1720,7 +1741,7 @@
|
||||
}
|
||||
},
|
||||
"sdks": {
|
||||
"dart": ">=3.8.0-0 <4.0.0",
|
||||
"flutter": ">=3.38.3"
|
||||
"dart": ">=3.9.0-0 <4.0.0",
|
||||
"flutter": ">=3.41.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,6 +110,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
||||
chardet
|
||||
chromadb
|
||||
cryptography
|
||||
datasets_3
|
||||
ddgs
|
||||
docx2txt
|
||||
einops
|
||||
|
||||
@@ -1,26 +1,27 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchFromCodeberg,
|
||||
nix-update-script,
|
||||
python3,
|
||||
pass,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "passff-host";
|
||||
version = "1.2.4";
|
||||
version = "1.2.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "passff";
|
||||
src = fetchFromCodeberg {
|
||||
owner = "PassFF";
|
||||
repo = "passff-host";
|
||||
rev = finalAttrs.version;
|
||||
sha256 = "sha256-P5h0B5ilwp3OVyDHIOQ23Zv4eLjN4jFkdZF293FQnNE=";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-8EThigW6uD5I4YmZYB2uNqdRzqqAHbULNY1UGA0vfAY=";
|
||||
};
|
||||
|
||||
buildInputs = [ python3 ];
|
||||
makeFlags = [ "VERSION=${finalAttrs.version}" ];
|
||||
|
||||
patchPhase = ''
|
||||
postPatch = ''
|
||||
sed -i 's#COMMAND = "pass"#COMMAND = "${pass}/bin/pass"#' src/passff.py
|
||||
'';
|
||||
|
||||
@@ -45,9 +46,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
done
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Host app for the WebExtension PassFF";
|
||||
homepage = "https://github.com/passff/passff-host";
|
||||
homepage = "https://codeberg.org/PassFF/passff-host";
|
||||
license = lib.licenses.gpl2Only;
|
||||
maintainers = [ ];
|
||||
};
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "phpstan";
|
||||
version = "2.1.47";
|
||||
version = "2.1.51";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "phpstan";
|
||||
repo = "phpstan";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-xRDNpz01LvhY44Bwvb9MO6YvRpY5kgWIDxED1Yklvxw=";
|
||||
hash = "sha256-cFFGcsfQXnMBcYs17EYswVp8iYY55c9WODTjhpHBIwk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -13,16 +13,16 @@ let
|
||||
in
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "pinact";
|
||||
version = "3.8.0";
|
||||
version = "3.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "suzuki-shunsuke";
|
||||
repo = "pinact";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-eZHJ1JK0EwjO6zSH2vKCkwQV3NUVqe2I0+QFMO7VHN0=";
|
||||
hash = "sha256-FbqVf7ANY2wDrQCnDp3pVAT0PyMzwNgdusgNkaNAlKk=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-EqfhHy9OUiaoCI/VFjUJlm917un3Lf4/cUmeHG7w9Bg=";
|
||||
vendorHash = "sha256-ilJ9xhDqojZv6Ie33jDulaLnhoRRaM6AHYIqSbp0OiI=";
|
||||
|
||||
env.CGO_ENABLED = 0;
|
||||
|
||||
|
||||
@@ -33,14 +33,14 @@ let
|
||||
in
|
||||
buildPythonApplication rec {
|
||||
pname = "pipenv";
|
||||
version = "2026.0.3";
|
||||
version = "2026.5.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pypa";
|
||||
repo = "pipenv";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-hfkVIYQj6hJ+AB1rUaw2f+M+tAVEAQCXZ4e4ytw07gE=";
|
||||
hash = "sha256-+8xUbpGIEuFboeK+JVVAt46gNcw1tfkmnTYt/IrISik=";
|
||||
};
|
||||
|
||||
env.LC_ALL = "en_US.UTF-8";
|
||||
|
||||
@@ -14,16 +14,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "pixi";
|
||||
version = "0.67.0";
|
||||
version = "0.67.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "prefix-dev";
|
||||
repo = "pixi";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-GGQsFyVWZe/rA7DAqLoTWNOAM0ntTXFHZ92rvyRBr7c=";
|
||||
hash = "sha256-+l3cahrJ/efuuSMSs8nquNzGmYw6rm+DTOZzxUnGRCw=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-2lfV+ZRsqpu4AXeDFp/PuJRBPUZxR44rvBa7u94t0kE=";
|
||||
cargoHash = "sha256-iwv2HyjvG4uJvQbjDEuDMmpZRuZopK+tfyIrZaDvNS0=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule {
|
||||
pname = "pkgsite";
|
||||
version = "0-unstable-2026-04-10";
|
||||
version = "0-unstable-2026-04-17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "golang";
|
||||
repo = "pkgsite";
|
||||
rev = "70e5087371296e2632232f4a3a795f124c73baf3";
|
||||
hash = "sha256-URPLE5ZHXpMuB3yLObMCOD5PR14KAbOBsc+aGQKubaA=";
|
||||
rev = "2aebd320af3eaaf0dfd54f655a8e40e033de83f5";
|
||||
hash = "sha256-pLplSDXn/TYaj0cA4IvUMOt93H89kQ7Of75ThL+kc1M=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-BbCCOgx6Tis2e07nSftdIi7cv8cHIXlsZl5Qk4fsWh8=";
|
||||
|
||||
@@ -18,13 +18,13 @@ assert petsc.mpiSupport;
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "precice";
|
||||
version = "3.3.1";
|
||||
version = "3.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "precice";
|
||||
repo = "precice";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-3Cg9e1n/O1kG806X3PT7IBd6QuBM38qj9BTlzYZqfSs=";
|
||||
hash = "sha256-9aontvyKZa8fOwAIwzxmhq2Jb/GGtQhPqTQtE7LQjgI=";
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.2.4";
|
||||
version = "1.2.6";
|
||||
in
|
||||
flutter338.buildFlutterApplication {
|
||||
pname = "proxypin";
|
||||
@@ -19,7 +19,7 @@ flutter338.buildFlutterApplication {
|
||||
owner = "wanghongenpin";
|
||||
repo = "proxypin";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Dhs2b+tjXTPFZOGoi7YUliWkdJ5s1jIJkJsXTQ6w7QY=";
|
||||
hash = "sha256-QZn2o6J1w0d/Ro3IC3cls5JD+b7RpoT6mOf34rbImFc=";
|
||||
};
|
||||
|
||||
pubspecLock = lib.importJSON ./pubspec.lock.json;
|
||||
|
||||
@@ -154,11 +154,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "dbus",
|
||||
"sha256": "79e0c23480ff85dc68de79e2cd6334add97e48f7f4865d17686dd6ea81a47e8c",
|
||||
"sha256": "d0c98dcd4f5169878b6cf8f6e0a52403a9dff371a3e2f019697accbf6f44a270",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.7.11"
|
||||
"version": "0.7.12"
|
||||
},
|
||||
"desktop_multi_window": {
|
||||
"dependency": "direct main",
|
||||
@@ -215,11 +215,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "ffi",
|
||||
"sha256": "d07d37192dbf97461359c1518788f203b0c9102cfd2c35a716b823741219542c",
|
||||
"sha256": "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.1.5"
|
||||
"version": "2.2.0"
|
||||
},
|
||||
"file": {
|
||||
"dependency": "transitive",
|
||||
@@ -400,11 +400,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "hooks",
|
||||
"sha256": "5d309c86e7ce34cd8e37aa71cb30cb652d3829b900ab145e4d9da564b31d59f7",
|
||||
"sha256": "e79ed1e8e1929bc6ecb6ec85f0cb519c887aa5b423705ded0d0f2d9226def388",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.0.0"
|
||||
"version": "1.0.2"
|
||||
},
|
||||
"http": {
|
||||
"dependency": "transitive",
|
||||
@@ -460,11 +460,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "json_annotation",
|
||||
"sha256": "805fa86df56383000f640384b282ce0cb8431f1a7a2396de92fb66186d8c57df",
|
||||
"sha256": "cb09e7dac6210041fad964ed7fbee004f14258b4eca4040f72d1234062ace4c8",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "4.10.0"
|
||||
"version": "4.11.0"
|
||||
},
|
||||
"leak_tracker": {
|
||||
"dependency": "transitive",
|
||||
@@ -590,21 +590,21 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "native_toolchain_c",
|
||||
"sha256": "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac",
|
||||
"sha256": "92b2ca62c8bd2b8d2f267cdfccf9bfbdb7322f778f8f91b3ce5b5cda23a3899f",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "0.17.4"
|
||||
"version": "0.17.5"
|
||||
},
|
||||
"objective_c": {
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "objective_c",
|
||||
"sha256": "983c7fa1501f6dcc0cb7af4e42072e9993cb28d73604d25ebf4dab08165d997e",
|
||||
"sha256": "100a1c87616ab6ed41ec263b083c0ef3261ee6cd1dc3b0f35f8ddfa4f996fe52",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "9.2.5"
|
||||
"version": "9.3.0"
|
||||
},
|
||||
"path": {
|
||||
"dependency": "transitive",
|
||||
@@ -750,11 +750,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "petitparser",
|
||||
"sha256": "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1",
|
||||
"sha256": "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "7.0.1"
|
||||
"version": "7.0.2"
|
||||
},
|
||||
"platform": {
|
||||
"dependency": "transitive",
|
||||
@@ -930,11 +930,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "shared_preferences_android",
|
||||
"sha256": "cbc40be9be1c5af4dab4d6e0de4d5d3729e6f3d65b89d21e1815d57705644a6f",
|
||||
"sha256": "8374d6200ab33ac99031a852eba4c8eb2170c4bf20778b3e2c9eccb45384fb41",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "2.4.20"
|
||||
"version": "2.4.21"
|
||||
},
|
||||
"shared_preferences_foundation": {
|
||||
"dependency": "transitive",
|
||||
@@ -996,11 +996,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "source_span",
|
||||
"sha256": "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c",
|
||||
"sha256": "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "1.10.1"
|
||||
"version": "1.10.2"
|
||||
},
|
||||
"stack_trace": {
|
||||
"dependency": "transitive",
|
||||
@@ -1116,11 +1116,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "url_launcher_ios",
|
||||
"sha256": "cfde38aa257dae62ffe79c87fab20165dfdf6988c1d31b58ebf59b9106062aad",
|
||||
"sha256": "580fe5dfb51671ae38191d316e027f6b76272b026370708c2d898799750a02b0",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "6.3.6"
|
||||
"version": "6.4.1"
|
||||
},
|
||||
"url_launcher_linux": {
|
||||
"dependency": "transitive",
|
||||
@@ -1176,11 +1176,11 @@
|
||||
"dependency": "transitive",
|
||||
"description": {
|
||||
"name": "uuid",
|
||||
"sha256": "a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8",
|
||||
"sha256": "1fef9e8e11e2991bb773070d4656b7bd5d850967a2456cfc83cf47925ba79489",
|
||||
"url": "https://pub.dev"
|
||||
},
|
||||
"source": "hosted",
|
||||
"version": "4.5.2"
|
||||
"version": "4.5.3"
|
||||
},
|
||||
"vclibs": {
|
||||
"dependency": "direct main",
|
||||
|
||||
@@ -25,11 +25,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pspp";
|
||||
version = "2.0.1";
|
||||
version = "2.1.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/pspp/pspp-${version}.tar.gz";
|
||||
sha256 = "sha256-jtuw8J6M+AEMrZ4FWeAjDX/FquRyHHVsNQVU3zMCTAA=";
|
||||
sha256 = "sha256-teVQk3vfpmoebKcpGVJy6OXmaz4EaGstg/suZtTvFMM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -30,11 +30,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "qtractor";
|
||||
version = "1.5.11";
|
||||
version = "1.5.12";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/qtractor/qtractor-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-wXEsMuScYl+X5bNddnfwdlJpWUtenvNyQfAj9xZDXNg=";
|
||||
hash = "sha256-9UO7LsKa+w/q33Of9F/e5Y9z67fzWPlvLygqSK7mp4M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rapidyaml";
|
||||
version = "0.10.0";
|
||||
version = "0.11.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "biojppm";
|
||||
repo = "rapidyaml";
|
||||
fetchSubmodules = true;
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-r19PBS35mvAK2RoZGXaw6UU9EuEXVoUK6BV6cJnPyUs=";
|
||||
hash = "sha256-NjpEpjBFB2Ydfo81VzOYoMPqMdJbIYcQWBRcxCbJlY4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "routedns";
|
||||
version = "0.1.154";
|
||||
version = "0.1.155";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "folbricht";
|
||||
repo = "routedns";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-qTI9x3Axql6BmM0D1dU1bMspB+N+4MHIeQX6WZAcs/Q=";
|
||||
hash = "sha256-me3hCfuT3j7OycWqKCQevu6+BiGLFv949rCsYhjuhBk=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-a4KcKb75yWv7+1vIYCypS9nnrFJ3zogXIPzUVVA7AXs=";
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "scip-go";
|
||||
version = "0.1.26";
|
||||
version = "0.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sourcegraph";
|
||||
repo = "scip-go";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-4Xm/o4hl94vCAEpFbaKDMDhv6ZyANCg2HDC6EIwyzsI=";
|
||||
hash = "sha256-sp2U+8igNVZLWuxRWJJ96CQ7HKDDqcg7MJQ+/yzzzcw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-J/97J/VXmQAYHu1qr9KiTUrB6/SVFcahihRatCKgaD8=";
|
||||
vendorHash = "sha256-TPd0CvNoAlskbGtKi7exxy+u9HabFJdprJ595ybRRQ8=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "signalbackup-tools";
|
||||
version = "20260413";
|
||||
version = "20260420";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bepaald";
|
||||
repo = "signalbackup-tools";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-O6hi1L0oMXCJ0MiNZNObcwpszpGdv9gp0gKCjEXZtHw=";
|
||||
hash = "sha256-k7nEV0lx8tecor4qcNEJndlLqSiQHv/8WRuX6IwVZWk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -15,11 +15,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "snd";
|
||||
version = "26.0";
|
||||
version = "26.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/snd/snd-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-8b1jyf/6Jo/0NVy+Zvwb4gJ48j5Z94JFtVMgYB03CYc=";
|
||||
hash = "sha256-niNk7SrAt069dzaMsbWxnxd5hNlN9xV2lgc1WgCRmcc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "stackql";
|
||||
version = "0.10.421";
|
||||
version = "0.10.426";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stackql";
|
||||
repo = "stackql";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-POHOGkjnf9zwg4mUpd0dyQXQvSitjwB+6wieVvI8DaE=";
|
||||
hash = "sha256-P/TvqCN2nM8j+41bc1bYCN4sYwkhPlNmsoNuYYNI2Mw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-go1i5xFt3AE+K37+uZz9sjjsgD521fZ7/nPu26531Q8=";
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "svelte-language-server";
|
||||
version = "0.17.25";
|
||||
version = "0.17.30";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sveltejs";
|
||||
repo = "language-tools";
|
||||
tag = "svelte-language-server@${finalAttrs.version}";
|
||||
hash = "sha256-N20OAIepguiPZ3EqAB/AUgx7VGrmywbLTXv/M6URbJk=";
|
||||
hash = "sha256-BuDWp+eC6IIKkZCzvGk62E1Kgecns4fciu3BquJ58zo=";
|
||||
};
|
||||
|
||||
pnpmWorkspaces = [ "svelte-language-server..." ];
|
||||
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
pnpmWorkspaces
|
||||
;
|
||||
fetcherVersion = 2;
|
||||
hash = "sha256-J279yrHRyG6QyUedXmYwv6Kcuz/9pGwvu6dUELIFeu8=";
|
||||
hash = "sha256-v2X2WOEdrDwGO2q9IEjONpHeDFqVp3jGFYYjZ5uFLSE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -10,7 +10,7 @@ use std::{
|
||||
path::{Path, PathBuf},
|
||||
rc::Rc,
|
||||
str::FromStr,
|
||||
sync::OnceLock,
|
||||
sync::{LazyLock, OnceLock},
|
||||
time::Duration,
|
||||
};
|
||||
|
||||
@@ -93,6 +93,19 @@ const DAEMON_RELOAD_TIMEOUT: Duration = Duration::from_secs(180);
|
||||
// Used during times of waiting for D-Bus to process messages.
|
||||
const DBUS_PROCESS_TIME: Duration = Duration::from_millis(500);
|
||||
|
||||
// Matches a templated unit instance (e.g. `foo@bar.service`), capturing the
|
||||
// template name and the unit-type suffix.
|
||||
// FIXME: instance names may contain `.`; this regex predates this file and is
|
||||
// kept as-is to avoid behaviour changes here. Revisit separately.
|
||||
static TEMPLATE_UNIT_RE: LazyLock<Regex> = LazyLock::new(|| {
|
||||
Regex::new(r"^(.*)@[^\.]*\.(.*)$").expect("systemd template-unit regex is valid")
|
||||
});
|
||||
|
||||
// Matches a unit name, capturing everything up to the type suffix.
|
||||
static UNIT_NAME_RE: LazyLock<Regex> = LazyLock::new(|| {
|
||||
Regex::new(r"^(.*)\.[[:lower:]]*$").expect("systemd unit-name regex is valid")
|
||||
});
|
||||
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
enum Action {
|
||||
Switch,
|
||||
@@ -129,6 +142,62 @@ impl From<&Action> for &'static str {
|
||||
}
|
||||
}
|
||||
|
||||
/// Scope of systemd unit management. System units live in /etc/systemd/system and
|
||||
/// are managed via the system bus; user units live in /etc/systemd/user and are
|
||||
/// managed via each logged-in user's session bus.
|
||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||
enum UnitScope {
|
||||
System,
|
||||
User,
|
||||
}
|
||||
|
||||
impl UnitScope {
|
||||
/// Path relative to a toplevel (or to /) where this scope's NixOS-managed
|
||||
/// unit files live.
|
||||
fn etc_dir(&self) -> &'static str {
|
||||
match self {
|
||||
UnitScope::System => "etc/systemd/system",
|
||||
UnitScope::User => "etc/systemd/user",
|
||||
}
|
||||
}
|
||||
|
||||
/// Absolute path to the currently-active unit directory for this scope.
|
||||
fn current_dir(&self) -> &'static Path {
|
||||
Path::new(match self {
|
||||
UnitScope::System => "/etc/systemd/system",
|
||||
UnitScope::User => "/etc/systemd/user",
|
||||
})
|
||||
}
|
||||
|
||||
/// Directory where unit action lists are persisted for
|
||||
/// resume-after-interrupt. The user scope uses XDG_RUNTIME_DIR so the
|
||||
/// unprivileged child can write to it.
|
||||
fn list_dir(&self) -> PathBuf {
|
||||
match self {
|
||||
UnitScope::System => PathBuf::from("/run/nixos"),
|
||||
UnitScope::User => {
|
||||
// The parent always sets XDG_RUNTIME_DIR when spawning the
|
||||
// user-scope child.
|
||||
let runtime_dir = std::env::var("XDG_RUNTIME_DIR")
|
||||
.ok()
|
||||
.filter(|d| !d.is_empty())
|
||||
.expect("XDG_RUNTIME_DIR must be set and non-empty for the user scope");
|
||||
PathBuf::from(runtime_dir).join("nixos")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn start_list_file(&self) -> PathBuf {
|
||||
self.list_dir().join("start-list")
|
||||
}
|
||||
fn restart_list_file(&self) -> PathBuf {
|
||||
self.list_dir().join("restart-list")
|
||||
}
|
||||
fn reload_list_file(&self) -> PathBuf {
|
||||
self.list_dir().join("reload-list")
|
||||
}
|
||||
}
|
||||
|
||||
// Allow for this switch-to-configuration to remain consistent with the perl implementation.
|
||||
// Perl's "die" uses errno to set the exit code: https://perldoc.perl.org/perlvar#%24%21
|
||||
fn die() -> ! {
|
||||
@@ -559,6 +628,7 @@ fn compare_units(current_unit: &UnitInfo, new_unit: &UnitInfo) -> UnitComparison
|
||||
// figures out of what units are to be stopped, restarted, reloaded, started, and skipped.
|
||||
fn handle_modified_unit(
|
||||
toplevel: &Path,
|
||||
scope: UnitScope,
|
||||
unit: &str,
|
||||
base_name: &str,
|
||||
new_unit_file: &Path,
|
||||
@@ -571,6 +641,9 @@ fn handle_modified_unit(
|
||||
units_to_restart: &mut HashMap<String, ()>,
|
||||
units_to_skip: &mut HashMap<String, ()>,
|
||||
) -> Result<()> {
|
||||
let start_list = scope.start_list_file();
|
||||
let restart_list = scope.restart_list_file();
|
||||
let reload_list = scope.reload_list_file();
|
||||
let use_restart_as_stop_and_start = new_unit_info.is_none();
|
||||
|
||||
if matches!(
|
||||
@@ -591,10 +664,10 @@ fn handle_modified_unit(
|
||||
// crashing it.
|
||||
if unit == "-.mount" || unit == "nix.mount" {
|
||||
units_to_reload.insert(unit.to_string(), ());
|
||||
record_unit(RELOAD_LIST_FILE, unit);
|
||||
record_unit(&reload_list, unit);
|
||||
} else {
|
||||
units_to_restart.insert(unit.to_string(), ());
|
||||
record_unit(RESTART_LIST_FILE, unit);
|
||||
record_unit(&restart_list, unit);
|
||||
}
|
||||
} else if unit.ends_with(".socket") {
|
||||
// FIXME: do something?
|
||||
@@ -618,7 +691,7 @@ fn handle_modified_unit(
|
||||
})
|
||||
{
|
||||
units_to_reload.insert(unit.to_string(), ());
|
||||
record_unit(RELOAD_LIST_FILE, unit);
|
||||
record_unit(&reload_list, unit);
|
||||
} else if !parse_systemd_bool(new_unit_info, "Service", "X-RestartIfChanged", true)
|
||||
|| parse_systemd_bool(new_unit_info, "Unit", "RefuseManualStop", false)
|
||||
|| parse_systemd_bool(new_unit_info, "Unit", "X-OnlyManualStart", false)
|
||||
@@ -632,11 +705,11 @@ fn handle_modified_unit(
|
||||
{
|
||||
// This unit should be restarted instead of stopped and started.
|
||||
units_to_restart.insert(unit.to_string(), ());
|
||||
record_unit(RESTART_LIST_FILE, unit);
|
||||
record_unit(&restart_list, unit);
|
||||
// Remove from units to reload so we don't restart and reload
|
||||
if units_to_reload.contains_key(unit) {
|
||||
units_to_reload.remove(unit);
|
||||
unrecord_unit(RELOAD_LIST_FILE, unit);
|
||||
unrecord_unit(&reload_list, unit);
|
||||
}
|
||||
} else {
|
||||
// If this unit is socket-activated, then stop the socket unit(s) as well, and
|
||||
@@ -673,13 +746,13 @@ fn handle_modified_unit(
|
||||
}
|
||||
|
||||
// Only restart sockets that actually exist in new configuration:
|
||||
if toplevel.join("etc/systemd/system").join(socket).exists() {
|
||||
if toplevel.join(scope.etc_dir()).join(socket).exists() {
|
||||
if use_restart_as_stop_and_start {
|
||||
units_to_restart.insert(socket.to_string(), ());
|
||||
record_unit(RESTART_LIST_FILE, socket);
|
||||
record_unit(&restart_list, socket);
|
||||
} else {
|
||||
units_to_start.insert(socket.to_string(), ());
|
||||
record_unit(START_LIST_FILE, socket);
|
||||
record_unit(&start_list, socket);
|
||||
}
|
||||
|
||||
socket_activated = true;
|
||||
@@ -688,7 +761,7 @@ fn handle_modified_unit(
|
||||
// Remove from units to reload so we don't restart and reload
|
||||
if units_to_reload.contains_key(unit) {
|
||||
units_to_reload.remove(unit);
|
||||
unrecord_unit(RELOAD_LIST_FILE, unit);
|
||||
unrecord_unit(&reload_list, unit);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -706,10 +779,10 @@ fn handle_modified_unit(
|
||||
if !socket_activated {
|
||||
if use_restart_as_stop_and_start {
|
||||
units_to_restart.insert(unit.to_string(), ());
|
||||
record_unit(RESTART_LIST_FILE, unit);
|
||||
record_unit(&restart_list, unit);
|
||||
} else {
|
||||
units_to_start.insert(unit.to_string(), ());
|
||||
record_unit(START_LIST_FILE, unit);
|
||||
record_unit(&start_list, unit);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -721,7 +794,7 @@ fn handle_modified_unit(
|
||||
// Remove from units to reload so we don't restart and reload
|
||||
if units_to_reload.contains_key(unit) {
|
||||
units_to_reload.remove(unit);
|
||||
unrecord_unit(RELOAD_LIST_FILE, unit);
|
||||
unrecord_unit(&reload_list, unit);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -925,6 +998,174 @@ fn remove_file_if_exists(p: impl AsRef<Path>) -> std::io::Result<()> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Iterate over currently active units in the given scope, compare the unit
|
||||
/// file in `old_unit_dir` against the one in `new_unit_dir`, and populate the
|
||||
/// action maps accordingly.
|
||||
///
|
||||
/// Units whose FragmentPath does not live under the scope's NixOS-managed
|
||||
/// directory (`scope.current_dir()`) are skipped; this avoids touching
|
||||
/// generated units and, for the user scope, units that are shadowed by files
|
||||
/// in the user's home directory (e.g. those managed by home-manager).
|
||||
///
|
||||
/// `old_unit_dir` and `new_unit_dir` are taken explicitly rather than derived
|
||||
/// from the scope because by the time the user-scope child runs, /etc has
|
||||
/// already been switched to the new configuration, so the caller must supply
|
||||
/// a captured reference to the pre-switch unit directory.
|
||||
fn collect_unit_changes(
|
||||
toplevel: &Path,
|
||||
scope: UnitScope,
|
||||
old_unit_dir: &Path,
|
||||
new_unit_dir: &Path,
|
||||
current_active_units: &HashMap<String, UnitState>,
|
||||
units_to_stop: &mut HashMap<String, ()>,
|
||||
units_to_start: &mut HashMap<String, ()>,
|
||||
units_to_reload: &mut HashMap<String, ()>,
|
||||
units_to_restart: &mut HashMap<String, ()>,
|
||||
units_to_skip: &mut HashMap<String, ()>,
|
||||
units_to_filter: &mut HashMap<String, ()>,
|
||||
) -> Result<()> {
|
||||
let fragment_prefix = scope
|
||||
.current_dir()
|
||||
.to_str()
|
||||
.expect("scope dir is valid UTF-8");
|
||||
let start_list = scope.start_list_file();
|
||||
let reload_list = scope.reload_list_file();
|
||||
|
||||
for (unit, unit_state) in current_active_units {
|
||||
// Don't touch units that are not loaded from the NixOS-managed
|
||||
// directory. For system scope this skips generator output; for user
|
||||
// scope it additionally skips units shadowed by ~/.config/systemd/user.
|
||||
if !unit_state
|
||||
.proxy
|
||||
.get("org.freedesktop.systemd1.Unit", "FragmentPath")
|
||||
.map(|fragment_path: String| fragment_path.starts_with(fragment_prefix))
|
||||
.unwrap_or_default()
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
let current_unit_file = old_unit_dir.join(unit);
|
||||
let new_unit_file = new_unit_dir.join(unit);
|
||||
|
||||
let mut base_unit = unit.clone();
|
||||
let mut current_base_unit_file = current_unit_file.clone();
|
||||
let mut new_base_unit_file = new_unit_file.clone();
|
||||
|
||||
// Detect template instances
|
||||
if let Some((Some(template_name), Some(template_instance))) =
|
||||
TEMPLATE_UNIT_RE.captures(unit).map(|captures| {
|
||||
(
|
||||
captures.get(1).map(|c| c.as_str()),
|
||||
captures.get(2).map(|c| c.as_str()),
|
||||
)
|
||||
})
|
||||
{
|
||||
if !current_unit_file.exists() && !new_unit_file.exists() {
|
||||
base_unit = format!("{template_name}@.{template_instance}");
|
||||
current_base_unit_file = old_unit_dir.join(&base_unit);
|
||||
new_base_unit_file = new_unit_dir.join(&base_unit);
|
||||
}
|
||||
}
|
||||
|
||||
let mut base_name = base_unit.as_str();
|
||||
if let Some(Some(new_base_name)) = UNIT_NAME_RE
|
||||
.captures(&base_unit)
|
||||
.map(|capture| capture.get(1).map(|first| first.as_str()))
|
||||
{
|
||||
base_name = new_base_name;
|
||||
}
|
||||
|
||||
if current_base_unit_file.exists()
|
||||
&& (unit_state.state == "active" || unit_state.state == "activating")
|
||||
{
|
||||
if new_base_unit_file
|
||||
.canonicalize()
|
||||
.map(|full_path| full_path == Path::new("/dev/null"))
|
||||
.unwrap_or(true)
|
||||
{
|
||||
let current_unit_info = parse_unit(¤t_unit_file, ¤t_base_unit_file)?;
|
||||
if parse_systemd_bool(Some(¤t_unit_info), "Unit", "X-StopOnRemoval", true) {
|
||||
_ = units_to_stop.insert(unit.to_string(), ());
|
||||
}
|
||||
} else if unit.ends_with(".target") {
|
||||
let new_unit_info = parse_unit(&new_unit_file, &new_base_unit_file)?;
|
||||
|
||||
// Cause all active target units to be restarted below. This should start most
|
||||
// changed units we stop here as well as any new dependencies (including new mounts
|
||||
// and swap devices). FIXME: the suspend target is sometimes active after the
|
||||
// system has resumed, which probably should not be the case. Just ignore it.
|
||||
if !(matches!(
|
||||
unit.as_str(),
|
||||
"suspend.target" | "hibernate.target" | "hybrid-sleep.target"
|
||||
) || parse_systemd_bool(
|
||||
Some(&new_unit_info),
|
||||
"Unit",
|
||||
"RefuseManualStart",
|
||||
false,
|
||||
) || parse_systemd_bool(
|
||||
Some(&new_unit_info),
|
||||
"Unit",
|
||||
"X-OnlyManualStart",
|
||||
false,
|
||||
)) {
|
||||
units_to_start.insert(unit.to_string(), ());
|
||||
record_unit(&start_list, unit);
|
||||
// Don't spam the user with target units that always get started.
|
||||
if std::env::var("STC_DISPLAY_ALL_UNITS").as_deref() != Ok("1") {
|
||||
units_to_filter.insert(unit.to_string(), ());
|
||||
}
|
||||
}
|
||||
|
||||
// Stop targets that have X-StopOnReconfiguration set. This is necessary to respect
|
||||
// dependency orderings involving targets: if unit X starts after target Y and
|
||||
// target Y starts after unit Z, then if X and Z have both changed, then X should
|
||||
// be restarted after Z. However, if target Y is in the "active" state, X and Z
|
||||
// will be restarted at the same time because X's dependency on Y is already
|
||||
// satisfied. Thus, we need to stop Y first. Stopping a target generally has no
|
||||
// effect on other units (unless there is a PartOf dependency), so this is just a
|
||||
// bookkeeping thing to get systemd to do the right thing.
|
||||
if parse_systemd_bool(
|
||||
Some(&new_unit_info),
|
||||
"Unit",
|
||||
"X-StopOnReconfiguration",
|
||||
false,
|
||||
) {
|
||||
units_to_stop.insert(unit.to_string(), ());
|
||||
}
|
||||
} else {
|
||||
let current_unit_info = parse_unit(¤t_unit_file, ¤t_base_unit_file)?;
|
||||
let new_unit_info = parse_unit(&new_unit_file, &new_base_unit_file)?;
|
||||
match compare_units(¤t_unit_info, &new_unit_info) {
|
||||
UnitComparison::UnequalNeedsRestart => {
|
||||
handle_modified_unit(
|
||||
toplevel,
|
||||
scope,
|
||||
unit,
|
||||
base_name,
|
||||
&new_unit_file,
|
||||
&new_base_unit_file,
|
||||
Some(&new_unit_info),
|
||||
current_active_units,
|
||||
units_to_stop,
|
||||
units_to_start,
|
||||
units_to_reload,
|
||||
units_to_restart,
|
||||
units_to_skip,
|
||||
)?;
|
||||
}
|
||||
UnitComparison::UnequalNeedsReload if !units_to_restart.contains_key(unit) => {
|
||||
units_to_reload.insert(unit.clone(), ());
|
||||
record_unit(&reload_list, unit);
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Performs switch-to-configuration functionality for a single non-root user
|
||||
fn do_user_switch(parent_exe: String) -> anyhow::Result<()> {
|
||||
if Path::new(&parent_exe)
|
||||
@@ -939,10 +1180,37 @@ fn do_user_switch(parent_exe: String) -> anyhow::Result<()> {
|
||||
die();
|
||||
}
|
||||
|
||||
let toplevel = PathBuf::from(required_env("TOPLEVEL")?);
|
||||
let old_toplevel = PathBuf::from(required_env("OLD_TOPLEVEL")?);
|
||||
let action = Action::from_str(&required_env("NIXOS_ACTION")?)?;
|
||||
let action = ACTION.get_or_init(|| action);
|
||||
let dry_run = *action == Action::DryActivate;
|
||||
|
||||
let scope = UnitScope::User;
|
||||
let list_dir = scope.list_dir();
|
||||
std::fs::create_dir_all(&list_dir)
|
||||
.with_context(|| format!("Failed to create {}", list_dir.display()))?;
|
||||
let perms = std::fs::Permissions::from_mode(0o700);
|
||||
std::fs::set_permissions(&list_dir, perms)
|
||||
.with_context(|| format!("Failed to set permissions on {}", list_dir.display()))?;
|
||||
let start_list = scope.start_list_file();
|
||||
let restart_list = scope.restart_list_file();
|
||||
let reload_list = scope.reload_list_file();
|
||||
|
||||
let dbus_conn = LocalConnection::new_session().context("Failed to open dbus connection")?;
|
||||
let systemd = systemd1_proxy(&dbus_conn);
|
||||
|
||||
systemd
|
||||
.subscribe()
|
||||
.context("Failed to subscribe to systemd dbus messages")?;
|
||||
|
||||
let submitted_jobs = Rc::new(RefCell::new(HashMap::new()));
|
||||
let finished_jobs: Rc<RefCell<HashMap<dbus::Path, (String, Job, String)>>> =
|
||||
Rc::new(RefCell::new(HashMap::new()));
|
||||
let nixos_activation_done = Rc::new(RefCell::new(false));
|
||||
|
||||
let _submitted_jobs = submitted_jobs.clone();
|
||||
let _finished_jobs = finished_jobs.clone();
|
||||
let _nixos_activation_done = nixos_activation_done.clone();
|
||||
let jobs_token = systemd
|
||||
.match_signal(
|
||||
@@ -952,32 +1220,284 @@ fn do_user_switch(parent_exe: String) -> anyhow::Result<()> {
|
||||
if signal.unit.as_str() == "nixos-activation.service" {
|
||||
*_nixos_activation_done.borrow_mut() = true;
|
||||
}
|
||||
|
||||
if let Some(old) = _submitted_jobs.borrow_mut().remove(&signal.job) {
|
||||
_finished_jobs
|
||||
.borrow_mut()
|
||||
.insert(signal.job, (signal.unit, old, signal.result));
|
||||
}
|
||||
true
|
||||
},
|
||||
)
|
||||
.context("Failed to add signal match for systemd removed jobs")?;
|
||||
|
||||
// Plan the user unit changes before touching anything. By the time this
|
||||
// child runs, /etc (and /run/current-system) have already been switched to
|
||||
// the new configuration. The parent captured the old toplevel path before
|
||||
// activation and passed it to us so we can still compare old vs new.
|
||||
let mut units_to_stop = HashMap::new();
|
||||
let mut units_to_skip = HashMap::new();
|
||||
let mut units_to_filter = HashMap::new();
|
||||
|
||||
// Seed from any previous interrupted run so that we continue where we left
|
||||
// off, like the system scope does.
|
||||
let mut units_to_start = map_from_list_file(&start_list);
|
||||
let mut units_to_restart = map_from_list_file(&restart_list);
|
||||
let mut units_to_reload = map_from_list_file(&reload_list);
|
||||
|
||||
let current_active_units = get_active_units(&systemd)?;
|
||||
|
||||
let new_unit_dir = toplevel.join(scope.etc_dir());
|
||||
let fragment_prefix = scope
|
||||
.current_dir()
|
||||
.to_str()
|
||||
.expect("scope dir is valid UTF-8");
|
||||
|
||||
// Units that are currently running from a non-/etc location (typically
|
||||
// ~/.config/systemd/user, i.e. home-manager) but that the new NixOS
|
||||
// configuration also defines. Pass 1 will skip these because of the
|
||||
// FragmentPath filter; if the per-user activation (sd-switch) later drops
|
||||
// its copy, we need a second pass to bring the NixOS-owned definition up.
|
||||
let migration_candidates: Vec<String> = current_active_units
|
||||
.iter()
|
||||
.filter(|(unit, _)| new_unit_dir.join(unit).exists())
|
||||
.filter(|(_, unit_state)| {
|
||||
!unit_state
|
||||
.proxy
|
||||
.get("org.freedesktop.systemd1.Unit", "FragmentPath")
|
||||
.map(|p: String| p.starts_with(fragment_prefix))
|
||||
.unwrap_or(false)
|
||||
})
|
||||
.map(|(unit, _)| unit.clone())
|
||||
.collect();
|
||||
|
||||
collect_unit_changes(
|
||||
&toplevel,
|
||||
scope,
|
||||
&old_toplevel.join(scope.etc_dir()),
|
||||
&new_unit_dir,
|
||||
¤t_active_units,
|
||||
&mut units_to_stop,
|
||||
&mut units_to_start,
|
||||
&mut units_to_reload,
|
||||
&mut units_to_restart,
|
||||
&mut units_to_skip,
|
||||
&mut units_to_filter,
|
||||
)?;
|
||||
|
||||
let print_units = |verb: &str, units: &HashMap<String, ()>| {
|
||||
if units.is_empty() {
|
||||
return;
|
||||
}
|
||||
let mut names: Vec<&str> = units.keys().map(String::as_str).collect();
|
||||
names.sort_by_key(|n| n.to_lowercase());
|
||||
eprintln!("{verb} the following user units: {}", names.join(", "));
|
||||
};
|
||||
|
||||
if dry_run {
|
||||
print_units("would stop", &units_to_stop);
|
||||
if !units_to_skip.is_empty() {
|
||||
print_units("would NOT restart", &units_to_skip);
|
||||
}
|
||||
print_units("would reload", &units_to_reload);
|
||||
print_units("would restart", &units_to_restart);
|
||||
print_units(
|
||||
"would start",
|
||||
&filter_units(&units_to_filter, &units_to_start),
|
||||
);
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let mut exit_code = 0;
|
||||
|
||||
// Stop units before reexec so that ExecStop runs with the old definition.
|
||||
print_units("stopping", &units_to_stop);
|
||||
for unit in units_to_stop.keys() {
|
||||
if let Ok(job_path) = systemd.stop_unit(unit, "replace") {
|
||||
submitted_jobs.borrow_mut().insert(job_path, Job::Stop);
|
||||
}
|
||||
}
|
||||
block_on_jobs(&dbus_conn, &submitted_jobs);
|
||||
|
||||
if !units_to_skip.is_empty() {
|
||||
print_units("NOT restarting", &units_to_skip);
|
||||
}
|
||||
|
||||
// The systemd user session seems to not send a Reloaded signal, so we don't have anything to
|
||||
// wait on here.
|
||||
_ = systemd.reexecute();
|
||||
|
||||
systemd
|
||||
.restart_unit("nixos-activation.service", "replace")
|
||||
.context("Failed to restart nixos-activation.service")?;
|
||||
// Reset failed and reload so that subsequent starts use the new unit files.
|
||||
_ = systemd.reset_failed();
|
||||
_ = systemd.reload();
|
||||
|
||||
log::debug!("waiting for nixos activation to finish");
|
||||
while !*nixos_activation_done.borrow() {
|
||||
_ = dbus_conn
|
||||
.process(DBUS_PROCESS_TIME)
|
||||
.context("Failed to process dbus messages")?;
|
||||
print_units("reloading", &units_to_reload);
|
||||
for unit in units_to_reload.keys() {
|
||||
match systemd.reload_unit(unit, "replace") {
|
||||
Ok(job_path) => {
|
||||
submitted_jobs.borrow_mut().insert(job_path, Job::Reload);
|
||||
}
|
||||
Err(err) => {
|
||||
eprintln!("Failed to reload user unit {unit}: {err}");
|
||||
exit_code = 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
block_on_jobs(&dbus_conn, &submitted_jobs);
|
||||
remove_file_if_exists(&reload_list)
|
||||
.with_context(|| format!("Failed to remove {}", reload_list.display()))?;
|
||||
|
||||
print_units("restarting", &units_to_restart);
|
||||
for unit in units_to_restart.keys() {
|
||||
match systemd.restart_unit(unit, "replace") {
|
||||
Ok(job_path) => {
|
||||
submitted_jobs.borrow_mut().insert(job_path, Job::Restart);
|
||||
}
|
||||
Err(err) => {
|
||||
eprintln!("Failed to restart user unit {unit}: {err}");
|
||||
exit_code = 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
block_on_jobs(&dbus_conn, &submitted_jobs);
|
||||
remove_file_if_exists(&restart_list)
|
||||
.with_context(|| format!("Failed to remove {}", restart_list.display()))?;
|
||||
|
||||
let start_filtered = filter_units(&units_to_filter, &units_to_start);
|
||||
print_units("starting", &start_filtered);
|
||||
for unit in units_to_start.keys() {
|
||||
match systemd.start_unit(unit, "replace") {
|
||||
Ok(job_path) => {
|
||||
submitted_jobs.borrow_mut().insert(job_path, Job::Start);
|
||||
}
|
||||
Err(err) => {
|
||||
eprintln!("Failed to start user unit {unit}: {err}");
|
||||
exit_code = 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
block_on_jobs(&dbus_conn, &submitted_jobs);
|
||||
remove_file_if_exists(&start_list)
|
||||
.with_context(|| format!("Failed to remove {}", start_list.display()))?;
|
||||
|
||||
// Run per-user activation (home-manager etc.) after NixOS-level user units
|
||||
// have been brought up to date. This matches the system → user layering.
|
||||
// Toplevels with system.activatable = false do not ship this unit; mirror
|
||||
// the system scope's tolerance for a missing activate script.
|
||||
if new_unit_dir.join("nixos-activation.service").exists() {
|
||||
match systemd.restart_unit("nixos-activation.service", "replace") {
|
||||
Ok(_) => {
|
||||
log::debug!("waiting for nixos activation to finish");
|
||||
while !*nixos_activation_done.borrow() {
|
||||
_ = dbus_conn
|
||||
.process(DBUS_PROCESS_TIME)
|
||||
.context("Failed to process dbus messages")?;
|
||||
}
|
||||
}
|
||||
Err(err) => {
|
||||
eprintln!("Failed to restart nixos-activation.service: {err}");
|
||||
exit_code = 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Second pass: handle units that migrated from another manager to NixOS.
|
||||
// The per-user activation may have removed ~/.config/systemd/user/<unit>
|
||||
// and stopped it (sd-switch); now that the /etc copy is no longer
|
||||
// shadowed, take ownership.
|
||||
if !migration_candidates.is_empty() {
|
||||
// Ensure systemd's view reflects any unit-file removals done by the
|
||||
// per-user activation, in case it did not daemon-reload itself.
|
||||
_ = systemd.reload();
|
||||
|
||||
let active_after = get_active_units(&systemd)?;
|
||||
|
||||
let mut to_restart = HashMap::new();
|
||||
let mut to_start = HashMap::new();
|
||||
|
||||
for unit in &migration_candidates {
|
||||
match active_after.get(unit) {
|
||||
Some(unit_state) => {
|
||||
let now_etc = unit_state
|
||||
.proxy
|
||||
.get("org.freedesktop.systemd1.Unit", "FragmentPath")
|
||||
.map(|p: String| p.starts_with(fragment_prefix))
|
||||
.unwrap_or(false);
|
||||
if now_etc {
|
||||
// Still running with the previous manager's binary;
|
||||
// restart so the /etc definition takes effect.
|
||||
to_restart.insert(unit.clone(), ());
|
||||
}
|
||||
// else: still shadowed by ~/.config, leave it alone.
|
||||
}
|
||||
None => {
|
||||
// Stopped by the previous manager; start the /etc copy.
|
||||
to_start.insert(unit.clone(), ());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Re-start active targets so any other newly-unmasked dependencies are
|
||||
// pulled in as well.
|
||||
for unit in units_to_start.keys() {
|
||||
if unit.ends_with(".target") {
|
||||
to_start.insert(unit.clone(), ());
|
||||
}
|
||||
}
|
||||
|
||||
print_units("restarting (post-activation)", &to_restart);
|
||||
for unit in to_restart.keys() {
|
||||
match systemd.restart_unit(unit, "replace") {
|
||||
Ok(job_path) => {
|
||||
submitted_jobs.borrow_mut().insert(job_path, Job::Restart);
|
||||
}
|
||||
Err(err) => {
|
||||
eprintln!("Failed to restart user unit {unit}: {err}");
|
||||
exit_code = 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
block_on_jobs(&dbus_conn, &submitted_jobs);
|
||||
|
||||
let to_start_filtered = filter_units(&units_to_filter, &to_start);
|
||||
print_units("starting (post-activation)", &to_start_filtered);
|
||||
for unit in to_start.keys() {
|
||||
match systemd.start_unit(unit, "replace") {
|
||||
Ok(job_path) => {
|
||||
submitted_jobs.borrow_mut().insert(job_path, Job::Start);
|
||||
}
|
||||
Err(err) => {
|
||||
eprintln!("Failed to start user unit {unit}: {err}");
|
||||
exit_code = 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
block_on_jobs(&dbus_conn, &submitted_jobs);
|
||||
}
|
||||
|
||||
let finished = finished_jobs.borrow();
|
||||
let mut failed_units = Vec::new();
|
||||
for (unit, job, result) in finished.values() {
|
||||
if matches!(result.as_str(), "timeout" | "failed" | "dependency") {
|
||||
eprintln!("Failed to {job} user unit {unit}");
|
||||
failed_units.push(unit.as_str());
|
||||
exit_code = 4;
|
||||
}
|
||||
}
|
||||
if !failed_units.is_empty() {
|
||||
failed_units.sort_by_key(|name| name.to_lowercase());
|
||||
eprintln!(
|
||||
"warning: the following user units failed: {}\n\
|
||||
See `systemctl --user status {}` for details.",
|
||||
failed_units.join(", "),
|
||||
failed_units.join(" "),
|
||||
);
|
||||
}
|
||||
|
||||
dbus_conn
|
||||
.remove_match(jobs_token)
|
||||
.context("Failed to remove jobs token")?;
|
||||
|
||||
Ok(())
|
||||
std::process::exit(exit_code);
|
||||
}
|
||||
|
||||
fn usage(argv0: &str) -> ! {
|
||||
@@ -999,6 +1519,12 @@ fn do_system_switch(action: Action) -> anyhow::Result<()> {
|
||||
|
||||
let out = PathBuf::from(required_env("OUT")?);
|
||||
let toplevel = PathBuf::from(required_env("TOPLEVEL")?);
|
||||
// Capture the old toplevel before the activation script updates
|
||||
// /run/current-system. We pass this to the per-user switch child so it can
|
||||
// compare old vs new user unit files after /etc has already been switched.
|
||||
let old_toplevel = Path::new("/run/current-system")
|
||||
.canonicalize()
|
||||
.unwrap_or_else(|_| PathBuf::from("/run/current-system"));
|
||||
let distro_id = required_env("DISTRO_ID")?;
|
||||
let pre_switch_check = required_env("PRE_SWITCH_CHECK")?;
|
||||
let install_bootloader = required_env("INSTALL_BOOTLOADER")?;
|
||||
@@ -1173,140 +1699,19 @@ won't take effect until you reboot the system.
|
||||
|
||||
let current_active_units = get_active_units(&systemd)?;
|
||||
|
||||
let template_unit_re = Regex::new(r"^(.*)@[^\.]*\.(.*)$")
|
||||
.context("Invalid regex for matching systemd template units")?;
|
||||
let unit_name_re = Regex::new(r"^(.*)\.[[:lower:]]*$")
|
||||
.context("Invalid regex for matching systemd unit names")?;
|
||||
|
||||
for (unit, unit_state) in ¤t_active_units {
|
||||
// Don't touch units not explicitly written by NixOS (e.g. units created by generators in
|
||||
// /run/systemd/generator*)
|
||||
if !unit_state
|
||||
.proxy
|
||||
.get("org.freedesktop.systemd1.Unit", "FragmentPath")
|
||||
.map(|fragment_path: String| fragment_path.starts_with("/etc/systemd/system"))
|
||||
.unwrap_or_default()
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
let current_unit_file = Path::new("/etc/systemd/system").join(unit);
|
||||
let new_unit_file = toplevel.join("etc/systemd/system").join(unit);
|
||||
|
||||
let mut base_unit = unit.clone();
|
||||
let mut current_base_unit_file = current_unit_file.clone();
|
||||
let mut new_base_unit_file = new_unit_file.clone();
|
||||
|
||||
// Detect template instances
|
||||
if let Some((Some(template_name), Some(template_instance))) =
|
||||
template_unit_re.captures(unit).map(|captures| {
|
||||
(
|
||||
captures.get(1).map(|c| c.as_str()),
|
||||
captures.get(2).map(|c| c.as_str()),
|
||||
)
|
||||
})
|
||||
{
|
||||
if !current_unit_file.exists() && !new_unit_file.exists() {
|
||||
base_unit = format!("{template_name}@.{template_instance}");
|
||||
current_base_unit_file = Path::new("/etc/systemd/system").join(&base_unit);
|
||||
new_base_unit_file = toplevel.join("etc/systemd/system").join(&base_unit);
|
||||
}
|
||||
}
|
||||
|
||||
let mut base_name = base_unit.as_str();
|
||||
if let Some(Some(new_base_name)) = unit_name_re
|
||||
.captures(&base_unit)
|
||||
.map(|capture| capture.get(1).map(|first| first.as_str()))
|
||||
{
|
||||
base_name = new_base_name;
|
||||
}
|
||||
|
||||
if current_base_unit_file.exists()
|
||||
&& (unit_state.state == "active" || unit_state.state == "activating")
|
||||
{
|
||||
if new_base_unit_file
|
||||
.canonicalize()
|
||||
.map(|full_path| full_path == Path::new("/dev/null"))
|
||||
.unwrap_or(true)
|
||||
{
|
||||
let current_unit_info = parse_unit(¤t_unit_file, ¤t_base_unit_file)?;
|
||||
if parse_systemd_bool(Some(¤t_unit_info), "Unit", "X-StopOnRemoval", true) {
|
||||
_ = units_to_stop.insert(unit.to_string(), ());
|
||||
}
|
||||
} else if unit.ends_with(".target") {
|
||||
let new_unit_info = parse_unit(&new_unit_file, &new_base_unit_file)?;
|
||||
|
||||
// Cause all active target units to be restarted below. This should start most
|
||||
// changed units we stop here as well as any new dependencies (including new mounts
|
||||
// and swap devices). FIXME: the suspend target is sometimes active after the
|
||||
// system has resumed, which probably should not be the case. Just ignore it.
|
||||
if !(matches!(
|
||||
unit.as_str(),
|
||||
"suspend.target" | "hibernate.target" | "hybrid-sleep.target"
|
||||
) || parse_systemd_bool(
|
||||
Some(&new_unit_info),
|
||||
"Unit",
|
||||
"RefuseManualStart",
|
||||
false,
|
||||
) || parse_systemd_bool(
|
||||
Some(&new_unit_info),
|
||||
"Unit",
|
||||
"X-OnlyManualStart",
|
||||
false,
|
||||
)) {
|
||||
units_to_start.insert(unit.to_string(), ());
|
||||
record_unit(START_LIST_FILE, unit);
|
||||
// Don't spam the user with target units that always get started.
|
||||
if std::env::var("STC_DISPLAY_ALL_UNITS").as_deref() != Ok("1") {
|
||||
units_to_filter.insert(unit.to_string(), ());
|
||||
}
|
||||
}
|
||||
|
||||
// Stop targets that have X-StopOnReconfiguration set. This is necessary to respect
|
||||
// dependency orderings involving targets: if unit X starts after target Y and
|
||||
// target Y starts after unit Z, then if X and Z have both changed, then X should
|
||||
// be restarted after Z. However, if target Y is in the "active" state, X and Z
|
||||
// will be restarted at the same time because X's dependency on Y is already
|
||||
// satisfied. Thus, we need to stop Y first. Stopping a target generally has no
|
||||
// effect on other units (unless there is a PartOf dependency), so this is just a
|
||||
// bookkeeping thing to get systemd to do the right thing.
|
||||
if parse_systemd_bool(
|
||||
Some(&new_unit_info),
|
||||
"Unit",
|
||||
"X-StopOnReconfiguration",
|
||||
false,
|
||||
) {
|
||||
units_to_stop.insert(unit.to_string(), ());
|
||||
}
|
||||
} else {
|
||||
let current_unit_info = parse_unit(¤t_unit_file, ¤t_base_unit_file)?;
|
||||
let new_unit_info = parse_unit(&new_unit_file, &new_base_unit_file)?;
|
||||
match compare_units(¤t_unit_info, &new_unit_info) {
|
||||
UnitComparison::UnequalNeedsRestart => {
|
||||
handle_modified_unit(
|
||||
&toplevel,
|
||||
unit,
|
||||
base_name,
|
||||
&new_unit_file,
|
||||
&new_base_unit_file,
|
||||
Some(&new_unit_info),
|
||||
¤t_active_units,
|
||||
&mut units_to_stop,
|
||||
&mut units_to_start,
|
||||
&mut units_to_reload,
|
||||
&mut units_to_restart,
|
||||
&mut units_to_skip,
|
||||
)?;
|
||||
}
|
||||
UnitComparison::UnequalNeedsReload if !units_to_restart.contains_key(unit) => {
|
||||
units_to_reload.insert(unit.clone(), ());
|
||||
record_unit(RELOAD_LIST_FILE, unit);
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
collect_unit_changes(
|
||||
&toplevel,
|
||||
UnitScope::System,
|
||||
UnitScope::System.current_dir(),
|
||||
&toplevel.join(UnitScope::System.etc_dir()),
|
||||
¤t_active_units,
|
||||
&mut units_to_stop,
|
||||
&mut units_to_start,
|
||||
&mut units_to_reload,
|
||||
&mut units_to_restart,
|
||||
&mut units_to_skip,
|
||||
&mut units_to_filter,
|
||||
)?;
|
||||
|
||||
// Compare the previous and new fstab to figure out which filesystems need a remount or need to
|
||||
// be unmounted. New filesystems are mounted automatically by starting local-fs.target.
|
||||
@@ -1447,7 +1852,7 @@ won't take effect until you reboot the system.
|
||||
|
||||
// Detect template instances.
|
||||
if let Some((Some(template_name), Some(template_instance))) =
|
||||
template_unit_re.captures(unit).map(|captures| {
|
||||
TEMPLATE_UNIT_RE.captures(unit).map(|captures| {
|
||||
(
|
||||
captures.get(1).map(|c| c.as_str()),
|
||||
captures.get(2).map(|c| c.as_str()),
|
||||
@@ -1461,7 +1866,7 @@ won't take effect until you reboot the system.
|
||||
}
|
||||
|
||||
let mut base_name = base_unit.as_str();
|
||||
if let Some(Some(new_base_name)) = unit_name_re
|
||||
if let Some(Some(new_base_name)) = UNIT_NAME_RE
|
||||
.captures(&base_unit)
|
||||
.map(|capture| capture.get(1).map(|first| first.as_str()))
|
||||
{
|
||||
@@ -1476,6 +1881,7 @@ won't take effect until you reboot the system.
|
||||
|
||||
handle_modified_unit(
|
||||
&toplevel,
|
||||
UnitScope::System,
|
||||
unit,
|
||||
base_name,
|
||||
&new_unit_file,
|
||||
@@ -1617,7 +2023,7 @@ won't take effect until you reboot the system.
|
||||
|
||||
// Detect template instances.
|
||||
if let Some((Some(template_name), Some(template_instance))) =
|
||||
template_unit_re.captures(unit).map(|captures| {
|
||||
TEMPLATE_UNIT_RE.captures(unit).map(|captures| {
|
||||
(
|
||||
captures.get(1).map(|c| c.as_str()),
|
||||
captures.get(2).map(|c| c.as_str()),
|
||||
@@ -1631,7 +2037,7 @@ won't take effect until you reboot the system.
|
||||
}
|
||||
|
||||
let mut base_name = base_unit.as_str();
|
||||
if let Some(Some(new_base_name)) = unit_name_re
|
||||
if let Some(Some(new_base_name)) = UNIT_NAME_RE
|
||||
.captures(&base_unit)
|
||||
.map(|capture| capture.get(1).map(|first| first.as_str()))
|
||||
{
|
||||
@@ -1647,6 +2053,7 @@ won't take effect until you reboot the system.
|
||||
|
||||
handle_modified_unit(
|
||||
&toplevel,
|
||||
UnitScope::System,
|
||||
unit,
|
||||
base_name,
|
||||
&new_unit_file,
|
||||
@@ -1761,16 +2168,23 @@ won't take effect until you reboot the system.
|
||||
.context("Failed to get full path to /proc/self/exe")?;
|
||||
|
||||
log::debug!("Performing user switch for {name}");
|
||||
std::process::Command::new(&myself)
|
||||
let status = std::process::Command::new(&myself)
|
||||
.uid(uid)
|
||||
.gid(gid)
|
||||
.env_clear()
|
||||
.env("XDG_RUNTIME_DIR", runtime_path)
|
||||
.env("__NIXOS_SWITCH_TO_CONFIGURATION_PARENT_EXE", &myself)
|
||||
.env("TOPLEVEL", &toplevel)
|
||||
.env("OLD_TOPLEVEL", &old_toplevel)
|
||||
.env("NIXOS_ACTION", Into::<&'static str>::into(action))
|
||||
.spawn()
|
||||
.with_context(|| format!("Failed to spawn user activation for {name}"))?
|
||||
.wait()
|
||||
.with_context(|| format!("Failed to run user activation for {name}"))?;
|
||||
if !status.success() {
|
||||
eprintln!("warning: user activation for {name} failed");
|
||||
exit_code = 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,17 +10,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "symbolicator";
|
||||
version = "26.2.1";
|
||||
version = "26.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "getsentry";
|
||||
repo = "symbolicator";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-CuG/rfwuJeKibsYWo1lNDcJkuKXMrXSv8hk+hIjYy74=";
|
||||
hash = "sha256-up23SMS/TWmgPm+VsWCEX/G8A8MgG9Vzay76tsHzo2M=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
cargoHash = "sha256-YddQ3E6YlcFkoQEglTNJ1lK6ivxJYtwhouFT32kV1hI=";
|
||||
cargoHash = "sha256-GUWAG9mPPHUevA1IfFRpL9f93vUWb+/gaH0v+Dw9Rko=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -10,16 +10,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "tenv";
|
||||
version = "4.10.1";
|
||||
version = "4.11.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tofuutils";
|
||||
repo = "tenv";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Z28ZPRLFV14/4BWwCp7AU70T226nE4z2dUC29jyZYMo=";
|
||||
hash = "sha256-3KSJG2gKnyu0Kxhbjemw4y8OvmXUNrqzlKcU9CCIqEo=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-hodj4wBHjIGOJJlEClRIb1RavkNniEqFDvyS3Z7Abf0=";
|
||||
vendorHash = "sha256-9A51pB94+PQP0SaT7LW78bwndGa5gOZOFkDEz2VzHl8=";
|
||||
|
||||
excludedPackages = [ "tools" ];
|
||||
|
||||
|
||||
@@ -5,16 +5,16 @@
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "tfswitch";
|
||||
version = "1.16.0";
|
||||
version = "1.17.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "warrensbox";
|
||||
repo = "terraform-switcher";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-TpE0HX/2fGv17o1mwkyuWndclbydUBC6EKy6uFC5VdM=";
|
||||
sha256 = "sha256-ZN3ujfLkigQ0Nc9kOapW1hqYO5ajRmz0HgqMI0YE+b0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-NxPqXpXCSHqgUJSC4/2R/ImqwNX9e+qNUU6g9n2SWBo=";
|
||||
vendorHash = "sha256-jR8zutVetlZ3WBSPxAg2ZdppqDf9+E/yuvsTeHHHtfs=";
|
||||
|
||||
# Disable tests since it requires network access and relies on the
|
||||
# presence of release.hashicorp.com
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "thedesk";
|
||||
version = "25.2.2";
|
||||
version = "25.3.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/cutls/thedesk-next/releases/download/v${finalAttrs.version}/thedesk-next_${finalAttrs.version}_amd64.deb";
|
||||
hash = "sha256-9Xd0YHkFHPVY6BHy0V1X7p27m2iJFVHmSickzMJeOXs=";
|
||||
hash = "sha256-DNZVHSd9dG4h6lv0PoUUaBaA/ijJJtX8d9Qy5iPdLoc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "tiny-rdm";
|
||||
version = "1.2.6";
|
||||
version = "1.2.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tiny-craft";
|
||||
repo = "tiny-rdm";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-t/dAhcMUT7p7MTlrEm/TRdHLRA5IvK9eeSB2+cWtCoY=";
|
||||
hash = "sha256-MyIMGgKzP6SnRzlOd4OQvMNiih7lsjfVFFckkPS2J+w=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -31,13 +31,13 @@ buildGoModule (finalAttrs: {
|
||||
--replace-fail "prefStore.autoCheckUpdate" "false"
|
||||
'';
|
||||
|
||||
vendorHash = "sha256-G1pnEMTxGM3YjHDtSosj5GB6Zhc9PZcbcrjGB1omQvg=";
|
||||
vendorHash = "sha256-DaD/NM1ZNVt0X/CJuaGfHqeS9ySTWFd0y5bzog6Yn+E=";
|
||||
|
||||
env = {
|
||||
CGO_ENABLED = 1;
|
||||
npmDeps = fetchNpmDeps {
|
||||
src = "${finalAttrs.src}/frontend";
|
||||
hash = "sha256-DaRuxIRNXkafqzIJaJuttVeGXDrjjjpF2FtB1yFWPZw=";
|
||||
hash = "sha256-DUYUk4OK5UWDanSR5hSVDYloYX4fYD41omYThzi/700=";
|
||||
};
|
||||
npmRoot = "frontend";
|
||||
};
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "trufflehog";
|
||||
version = "3.94.3";
|
||||
version = "3.95.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "trufflesecurity";
|
||||
repo = "trufflehog";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-dNQjBBHtu0MFlAr/FluHAxR75q621HqHttpT2tBZKsg=";
|
||||
hash = "sha256-pzhFc0TrC1GQHIlM1MDs4I+bVE01cFb2fAXPZ649fuU=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-BzZflc9NbqmvZ+RmGvkcknotvn10V/XrgfW8mG8GgiA=";
|
||||
vendorHash = "sha256-2WBdBsOXjj4/9hLA+yk5PQAqOgi5vn1cH4NnkHg8umI=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user