Merge remote-tracking branch 'origin/master' into staging-nixos

This commit is contained in:
K900
2026-06-26 10:34:05 +03:00
299 changed files with 5067 additions and 2640 deletions
+6 -4
View File
@@ -123,10 +123,6 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @Artturin @Ericson2314 @lo
/doc/redirects.json @GetPsyched
/nixos/doc/manual/redirects.json @GetPsyched
# NixOS integration test driver
/nixos/lib/test-driver @tfc
/nixos/lib/testing @tfc
# NixOS QEMU virtualisation
/nixos/modules/virtualisation/qemu-vm.nix @raitobezarius
/nixos/modules/services/backup/libvirtd-autosnapshot.nix @6543
@@ -520,3 +516,9 @@ pkgs/by-name/wa/warp-terminal/ @emilytrau @imadnyc @FlameFlag @johnrtitor
# Zellij plugins
/pkgs/by-name/ze/zellij/plugins/ @PerchunPak
# Test-driver
/nixos/lib/test-driver @NixOS/test-driver
/nixos/lib/testing @NixOS/test-driver
/nixos/tests/nixos-test-driver @NixOS/test-driver
/nixos/modules/virtualisation/nspawn-container/run-nspawn @NixOS/test-driver
+13 -2
View File
@@ -556,8 +556,7 @@
"members": {
"Ericson2314": 1055245,
"peterwaller-arm": 52030119,
"rrbutani": 7833358,
"sternenseemann": 3154475
"rrbutani": 7833358
},
"name": "LLVM"
},
@@ -943,6 +942,7 @@
},
"members": {
"andir": 638836,
"leona-ya": 11006031,
"pyrox0": 35778371
},
"name": "Security review"
@@ -997,6 +997,17 @@
},
"name": "systemd"
},
"test-driver": {
"description": "Maintain the NixOS integration test driver.",
"id": 18201265,
"maintainers": {
"Ma27": 6025220,
"kmein": 10352507,
"tfc": 29044
},
"members": {},
"name": "test-driver"
},
"xen-project": {
"description": "Maintain the Xen Project Hypervisor and the related tooling ecosystem. Members listed as \"Maintainers\" are recipients of Xen Security Advisories sent to xsa@nixos.org.",
"id": 11127725,
+8 -1
View File
@@ -17968,6 +17968,12 @@
githubId = 1575834;
name = "Michael Adler";
};
michaelAllen = {
name = "Michael Allen";
email = "mcallen71398@gmail.com";
github = "That1LinuxGuy";
githubId = 207959559;
};
michaelBelsanti = {
email = "mbels03@protonmail.com";
name = "Mike Belsanti";
@@ -19102,7 +19108,8 @@
};
MysteryBlokHed = {
name = "Adam Thompson-Sharpe";
email = "hi@adamts.me";
email = "nix@adamts.me";
matrix = "@adam:adamts.me";
github = "MysteryBlokHed";
githubId = 13910387;
keys = [ { fingerprint = "086E EF20 D54E D348 E5BA 6263 16E9 43E6 596F FB4E"; } ];
+2 -4
View File
@@ -747,10 +747,8 @@ with lib.maintainers;
enableFeatureFreezePing = true;
};
tests = {
members = [ tfc ];
scope = "Maintain the NixOS VM test runner.";
shortName = "NixOS tests";
test-driver = {
github = "test-driver";
enableFeatureFreezePing = true;
};
@@ -32,6 +32,11 @@
- `boot.vesa` has been removed. It was deprecated in 2020 because Xorg now works better with kernel modesetting. If you still need the legacy VESA 800x600 fallback, set `boot.kernelParams = [ "vga=0x317" "nomodeset" ];` directly.
- `authentik` has been updated to 2026.5.3, which changes the default listen address from `0.0.0.0` to `[::]`.
IPv4-only deployments might need to adjust their listen settings.
Deployments running the server and worker in the same network namespace must also set at least the worker
`AUTHENTIK_LISTEN__HTTP` address so that the server and worker do not bind to the same address.
- Support for the legacy UBoot image format has been removed from the initrd generators, as it is deprecated upstream and no longer used by any platform in Nixpkgs.
- Rustical migrates from `settings.http.host` and `settings.http.port` to `settings.http.bind` to support UNIX domain sockets as well as TCP sockets in one setting.
+6
View File
@@ -106,6 +106,11 @@ let
description = "Path of the device or swap file.";
};
isDevice = mkOption {
default = lib.substring 0 5 config.device == "/dev/";
internal = true;
};
label = mkOption {
example = "swap";
type = types.str;
@@ -329,6 +334,7 @@ in
)
} ${sw.device} ${sw.deviceName}
mkswap ${sw.realDevice}
${lib.optionalString sw.isDevice "udevadm trigger ${sw.realDevice}"}
''}
'';
enableStrictShellChecks = true;
@@ -180,7 +180,9 @@ in
# Excludes one hook due to missing SELinux binaries.
+ ''
mkdir -p /var/lib/glusterd/hooks/
${rsync}/bin/rsync -a --exclude="S10selinux-label-brick.sh" ${glusterfs}/var/lib/glusterd/hooks/ /var/lib/glusterd/hooks/
# --copy-unsafe-links: the glusterfind hook is a symlink into the package's
# libexec that would dangle once copied verbatim into / (#257863).
${rsync}/bin/rsync -a --copy-unsafe-links --exclude="S10selinux-label-brick.sh" ${glusterfs}/var/lib/glusterd/hooks/ /var/lib/glusterd/hooks/
${tlsCmd}
''
@@ -189,6 +191,12 @@ in
+ ''
mkdir -p /var/lib/glusterd/glusterfind/.keys
mkdir -p /var/lib/glusterd/hooks/1/delete/post/
''
# Volume option presets, installed by upstream under $out/var; copy them so
# `gluster volume set <vol> group <name>` works (#33159).
+ ''
mkdir -p /var/lib/glusterd/groups/
${rsync}/bin/rsync -a ${glusterfs}/var/lib/glusterd/groups/ /var/lib/glusterd/groups/
'';
serviceConfig = {
@@ -325,18 +325,28 @@ in
assertions = flatten (map vrrpInstanceAssertions vrrpInstances);
networking.firewall = lib.mkIf cfg.openFirewall {
extraCommands = ''
# Allow VRRP and AH packets
ip46tables -A nixos-fw -p vrrp -m comment --comment "services.keepalived.openFirewall" -j ACCEPT
ip46tables -A nixos-fw -p ah -m comment --comment "services.keepalived.openFirewall" -j ACCEPT
'';
networking.firewall = lib.mkIf cfg.openFirewall (
if config.networking.nftables.enable then
{
extraInputRules = ''
meta l4proto vrrp counter accept comment "services.keepalived.openFirewall"
meta l4proto ah counter accept comment "services.keepalived.openFirewall"
'';
}
else
{
extraCommands = ''
# Allow VRRP and AH packets
ip46tables -A nixos-fw -p vrrp -m comment --comment "services.keepalived.openFirewall" -j ACCEPT
ip46tables -A nixos-fw -p ah -m comment --comment "services.keepalived.openFirewall" -j ACCEPT
'';
extraStopCommands = ''
ip46tables -D nixos-fw -p vrrp -m comment --comment "services.keepalived.openFirewall" -j ACCEPT
ip46tables -D nixos-fw -p ah -m comment --comment "services.keepalived.openFirewall" -j ACCEPT
'';
};
extraStopCommands = ''
ip46tables -D nixos-fw -p vrrp -m comment --comment "services.keepalived.openFirewall" -j ACCEPT
ip46tables -D nixos-fw -p ah -m comment --comment "services.keepalived.openFirewall" -j ACCEPT
'';
}
);
systemd.timers.keepalived-boot-delay = {
description = "Keepalive Daemon delay to avoid instant transition to MASTER state";
+1 -1
View File
@@ -866,7 +866,7 @@ in
kbd-setfont-decompress = runTest ./kbd-setfont-decompress.nix;
kbd-update-search-paths-patch = runTest ./kbd-update-search-paths-patch.nix;
kea = runTest ./kea.nix;
keepalived = runTest ./keepalived.nix;
keepalived = discoverTests (import ./keepalived.nix);
keepassxc = runTest ./keepassxc.nix;
kerberos = handleTest ./kerberos/default.nix { };
kernel-generic = handleTest ./kernel-generic { };
+11
View File
@@ -49,6 +49,14 @@ in
server1.wait_for_unit("glusterd.service")
server2.wait_for_unit("glusterd.service")
# The glusterfind delete hook must be a real file, not the dangling
# symlink it used to be after being copied out of the package (#257863).
server1.succeed("test -f /var/lib/glusterd/hooks/1/delete/post/S57glusterfind-delete-post")
server1.fail("test -L /var/lib/glusterd/hooks/1/delete/post/S57glusterfind-delete-post")
# The volume option presets must be installed (#33159).
server1.succeed("test -f /var/lib/glusterd/groups/metadata-cache")
server1.wait_until_succeeds("gluster peer status")
server2.wait_until_succeeds("gluster peer status")
@@ -64,6 +72,9 @@ in
server1.succeed("gluster volume create gv0 server1:/data/vg0 server2:/data/vg0")
server1.succeed("gluster volume start gv0")
# Applying a group preset needs /var/lib/glusterd/groups populated (#33159).
server1.succeed("gluster volume set gv0 group metadata-cache")
# test clients
client1.wait_for_unit("gluster.mount")
client2.wait_for_unit("gluster.mount")
+58 -46
View File
@@ -1,48 +1,60 @@
{ pkgs, lib, ... }:
let
mkTest =
{ useNftables }:
import ./make-test-python.nix (
{ pkgs, lib, ... }:
{
name = "keepalived-${if useNftables then "nftables" else "iptables"}";
meta.maintainers = [ lib.maintainers.raitobezarius ];
nodes = {
node1 =
{ pkgs, ... }:
{
networking.nftables.enable = useNftables;
services.keepalived.enable = true;
services.keepalived.openFirewall = true;
services.keepalived.vrrpInstances.test = {
interface = "eth1";
state = "MASTER";
priority = 50;
virtualIps = [ { addr = "192.168.1.200"; } ];
virtualRouterId = 1;
};
environment.systemPackages = [ pkgs.tcpdump ];
};
node2 =
{ pkgs, ... }:
{
networking.nftables.enable = useNftables;
services.keepalived.enable = true;
services.keepalived.openFirewall = true;
services.keepalived.vrrpInstances.test = {
interface = "eth1";
state = "MASTER";
priority = 100;
virtualIps = [ { addr = "192.168.1.200"; } ];
virtualRouterId = 1;
};
environment.systemPackages = [ pkgs.tcpdump ];
};
};
testScript = ''
# wait for boot time delay to pass
for node in [node1, node2]:
node.wait_until_succeeds(
"systemctl show -p LastTriggerUSecMonotonic keepalived-boot-delay.timer | grep -vq 'LastTriggerUSecMonotonic=0'"
)
node.wait_for_unit("keepalived")
node2.wait_until_succeeds("ip addr show dev eth1 | grep -q 192.168.1.200")
node1.fail("ip addr show dev eth1 | grep -q 192.168.1.200")
node1.succeed("ping -c1 192.168.1.200")
'';
}
);
in
{
name = "keepalived";
meta.maintainers = [ lib.maintainers.raitobezarius ];
nodes = {
node1 =
{ pkgs, ... }:
{
services.keepalived.enable = true;
services.keepalived.openFirewall = true;
services.keepalived.vrrpInstances.test = {
interface = "eth1";
state = "MASTER";
priority = 50;
virtualIps = [ { addr = "192.168.1.200"; } ];
virtualRouterId = 1;
};
environment.systemPackages = [ pkgs.tcpdump ];
};
node2 =
{ pkgs, ... }:
{
services.keepalived.enable = true;
services.keepalived.openFirewall = true;
services.keepalived.vrrpInstances.test = {
interface = "eth1";
state = "MASTER";
priority = 100;
virtualIps = [ { addr = "192.168.1.200"; } ];
virtualRouterId = 1;
};
environment.systemPackages = [ pkgs.tcpdump ];
};
};
testScript = ''
# wait for boot time delay to pass
for node in [node1, node2]:
node.wait_until_succeeds(
"systemctl show -p LastTriggerUSecMonotonic keepalived-boot-delay.timer | grep -vq 'LastTriggerUSecMonotonic=0'"
)
node.wait_for_unit("keepalived")
node2.wait_until_succeeds("ip addr show dev eth1 | grep -q 192.168.1.200")
node1.fail("ip addr show dev eth1 | grep -q 192.168.1.200")
node1.succeed("ping -c1 192.168.1.200")
'';
nftables = mkTest { useNftables = true; };
iptables = mkTest { useNftables = false; };
}
@@ -3650,6 +3650,20 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
cole-nvim = buildVimPlugin {
pname = "cole.nvim";
version = "0-unstable-2026-05-29";
src = fetchFromGitHub {
owner = "thekylehuang";
repo = "cole.nvim";
rev = "1920cfa31c717e1f73a5a6e5a2c02a44b5faeb5c";
hash = "sha256-k153XzTkkBm1qF6iKK8fzmAHIPnoIbXEAxAOQIoAPo0=";
};
meta.homepage = "https://github.com/thekylehuang/cole.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
meta.hydraPlatforms = [ ];
};
colibri-vim = buildVimPlugin {
pname = "colibri.vim";
version = "0-unstable-2019-06-15";
@@ -259,6 +259,7 @@ https://github.com/mrjones2014/codesettings.nvim/,,
https://github.com/gorbit99/codewindow.nvim/,,
https://github.com/johnseth97/codex.nvim/,,
https://github.com/metakirby5/codi.vim/,,
https://github.com/thekylehuang/cole.nvim/,,
https://github.com/archseer/colibri.vim/,,
https://github.com/tjdevries/colorbuddy.nvim/,,
https://github.com/xzbdmw/colorful-menu.nvim/,,
@@ -21,26 +21,26 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
sources = {
"x86_64-linux" = {
arch = "linux-x64";
hash = "sha256-/ns84fHAyTY7sSvhUNzq1XQYq2Xy303zs2BxJY8DBVA=";
hash = "sha256-bsb0OLDPKWnNnZ4tFedYFiFKmTih81oZnaV/BH4p6o4=";
};
"aarch64-linux" = {
arch = "linux-arm64";
hash = "sha256-U69X5lpeJaeNVL4WWzCUpI6IfbKSJXGpl30AYnx1fBQ=";
hash = "sha256-PZBjzxg/kQbCiosd79YFDor1MvBHAdk167PmNIA8ANw=";
};
"x86_64-darwin" = {
arch = "darwin-x64";
hash = "sha256-DHE09NtGNOjB0HdBqTKRtDsZXpxb651kiVGhRwO1tBU=";
hash = "sha256-z4OekFyKQsbva5mlBPR6z8g6Is0fwL+xZg/fjKf42cI=";
};
"aarch64-darwin" = {
arch = "darwin-arm64";
hash = "sha256-5YIZVBMsoF0bWP27sVEVHAaAiqvmoSUgdbc8wsqUCLA=";
hash = "sha256-gLFoIhxXKunB6ftLEq5p+rfjs8QM5PTOXElu3OtbeIo=";
};
};
in
{
name = "claude-code";
publisher = "anthropic";
version = "2.1.187";
version = "2.1.191";
}
// sources.${stdenvNoCC.hostPlatform.system}
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");
@@ -4833,8 +4833,8 @@ let
mktplcRef = {
name = "emacs-mcx";
publisher = "tuttieee";
version = "0.110.9";
hash = "sha256-xHu8GvBoZKMag7BdHddXyjm2IReMujs9cggOn4h32t8=";
version = "0.110.11";
hash = "sha256-LiiZI0Ze5F5w7OtiqY7wMpzdtyof/ynUH57wRfQnxFs=";
};
meta = {
changelog = "https://github.com/whitphx/vscode-emacs-mcx/blob/main/CHANGELOG.md";
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "dosbox-pure";
version = "0-unstable-2026-06-16";
version = "0-unstable-2026-06-26";
src = fetchFromGitHub {
owner = "schellingb";
repo = "dosbox-pure";
rev = "5ec3ccfb4313d452c3b3faccea97443ba3d9db4d";
hash = "sha256-GFPh2z31vnACo8EEe83YRd7SVcPsSIe/vnPivaE2JYg=";
rev = "424f2dfd6d08c587020857421b89a5d9acda4beb";
hash = "sha256-QkHgLWW+gk106wNeF5bKYsA4e6IKPiXakWb92AImRQc=";
};
hardeningDisable = [ "format" ];
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "fceumm";
version = "0-unstable-2026-06-15";
version = "0-unstable-2026-06-23";
src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-fceumm";
rev = "c0c52ad0eb36cdbfc66e9bdb72efc83103e85e22";
hash = "sha256-e81kpVUTz3l9wqCwN9Zf4LrnskPRW7Ewy78/1BApZlg=";
rev = "f87bc875bd68262211e2e01ffbaf3662626a3e4f";
hash = "sha256-TUrhDbRArO/RISZawu5p9FIZlFf8pPlBrD9WRrdSRPk=";
};
meta = {
@@ -823,7 +823,7 @@
}
},
"ungoogled-chromium": {
"version": "149.0.7827.155",
"version": "149.0.7827.196",
"deps": {
"depot_tools": {
"rev": "45dedc4c3b87c982fd846b3dc599b233ed3aff90",
@@ -835,16 +835,16 @@
"hash": "sha256-oFs7fZAZEs/gQ7X1A4uigo9+Y+iEN9sMMQYwAjEuD04="
},
"ungoogled-patches": {
"rev": "149.0.7827.155-1",
"hash": "sha256-+DviTrU7mdY3YQIIUzFh0DbFKUokQI8+lmQslUZdNSU="
"rev": "149.0.7827.196-1",
"hash": "sha256-nRcMTP+su+mFP/JkyLBIDrG+dKYhvPANFw0Y8qVWzrA="
},
"npmHash": "sha256-pF0JtwFpPC4/fodbhSJnQKkczA9WlDg4VqEAy9aDVLg="
},
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "07b52360cc15066f987c910ab34dfbcd4a8778d2",
"hash": "sha256-D9RKH0kzEfaMsCDnFFIGCGLyfhghnGMOLA0XmOa9MtI=",
"rev": "43eb30368c6ca3d14d540487954abb2780aeae3a",
"hash": "sha256-pwSfASgR4SiQTJBERhOVyR8mANYJk67f+u2pmCCW6ko=",
"recompress": true
},
"src/third_party/clang-format/script": {
@@ -914,8 +914,8 @@
},
"src/third_party/angle": {
"url": "https://chromium.googlesource.com/angle/angle.git",
"rev": "591ee1999d950f2bc54be89651eb62c8d7925314",
"hash": "sha256-crooDCkJ6voJyDBIUvtjmXnA4xOx7YmGltuf2ulTLIk="
"rev": "355cc61af2aadd8f0494800325b2bf9908138108",
"hash": "sha256-fgaCyO0oaz90aTaWMHH8ocySA0hXDHsPEl6vtMj4BY0="
},
"src/third_party/angle/third_party/glmark2/src": {
"url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2",
@@ -954,8 +954,8 @@
},
"src/third_party/dawn": {
"url": "https://dawn.googlesource.com/dawn.git",
"rev": "5f4c5ef509c5ffa65822302341cf9b2ccad471f9",
"hash": "sha256-h+0Gep+RWTTEVoRrXCRDCtHdbYlSYdNK1botahtqUX0="
"rev": "54b4153cfef88e048f365f99b962478f0087dfe8",
"hash": "sha256-Bv30zz/pCNVzUl+mKCpusWc94poytv9ZFelZIcs+2B8="
},
"src/third_party/dawn/third_party/glfw3/src": {
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
@@ -1639,8 +1639,8 @@
},
"src/v8": {
"url": "https://chromium.googlesource.com/v8/v8.git",
"rev": "6511f6cfab1f24c360d0fb737d205c27da48a623",
"hash": "sha256-Dpe0Z/zjdPlOlqi85c9QSr7rLs7dww+a/BY68B2MTCw="
"rev": "933ce636c562cd54d68e7f7c93ab5cdffd685fca",
"hash": "sha256-zYArO6QS9nDIVWPINRVaDN1uX8X/wchBDeZHPZnwHYk="
}
}
}
@@ -10,13 +10,13 @@
buildGoModule (finalAttrs: {
pname = "kubernetes-helm";
version = "4.2.1";
version = "4.2.2";
src = fetchFromGitHub {
owner = "helm";
repo = "helm";
rev = "v${finalAttrs.version}";
hash = "sha256-k2lZXdWYnewNiZdLNQrC5j9A3JkvYCwMY486QxjCpaw=";
hash = "sha256-khyxnEeyxpgEO7rWKsEPqPLNSDZmFGqAZBrfb0TY8BU=";
};
vendorHash = "sha256-XIKQF9PWgxKJUt66wQ/mPhWVfJnra0vV9ZuyclgQ21U=";
@@ -508,13 +508,13 @@
"vendorHash": "sha256-ikBqIxD5aTOcwNHCMN6EaOwSHCAP5n/SULuqQXPLpOc="
},
"hashicorp_aws": {
"hash": "sha256-kWA/cpYQ8MynW/vxnj7Yys6lsFdRAmfC8N6bmEIOW70=",
"hash": "sha256-710i6mRyieTzltcaC23OXZm8mtqjyOc5Fk9fmcqkXY4=",
"homepage": "https://registry.terraform.io/providers/hashicorp/aws",
"owner": "hashicorp",
"repo": "terraform-provider-aws",
"rev": "v6.50.0",
"rev": "v6.52.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-Msl/Mn0GK3D+QyLnSFU3m9ux/ThkwDCDh85b0Yzpnjo="
"vendorHash": "sha256-COWHnLR6aRwcGJVo6IFvqQLwAYxFpqUGQbZVvEo/b/I="
},
"hashicorp_awscc": {
"hash": "sha256-ZQaBYZTsF68IjbRYa3Z7VRqKfaHCvOtMkJHsybJn+ec=",
@@ -16,12 +16,12 @@
}:
stdenv.mkDerivation rec {
pname = "vdr-softhddevice";
version = "2.4.8";
version = "2.5.0";
src = fetchFromGitHub {
owner = "ua0lnj";
repo = "vdr-plugin-softhddevice";
sha256 = "sha256-pQ437Du++L6KhBCqkHpiYCoT713RAB+rnoGCXr5M0S4=";
sha256 = "sha256-vicHneEZZHTraffUek77QDZdv/xZGzN102nbr1Bkfzo=";
rev = "v${version}";
};
@@ -1,416 +0,0 @@
import functools
import hashlib
import json
import multiprocessing as mp
import re
import shutil
import subprocess
import sys
import tomllib
from os.path import islink, realpath
from pathlib import Path
from typing import Any, TypedDict, cast
from urllib.parse import unquote
import requests
import tomli_w
from requests.adapters import HTTPAdapter, Retry
eprint = functools.partial(print, file=sys.stderr)
def load_toml(path: Path) -> dict[str, Any]:
with open(path, "rb") as f:
return tomllib.load(f)
def get_lockfile_version(cargo_lock_toml: dict[str, Any]) -> int:
# lockfile v1 and v2 don't have the `version` key, so assume v2
version = cargo_lock_toml.get("version", 2)
# TODO: add logic for differentiating between v1 and v2
return version
def create_http_session() -> requests.Session:
retries = Retry(
total=5,
backoff_factor=0.5,
status_forcelist=[500, 502, 503, 504]
)
session = requests.Session()
session.headers["User-Agent"] = "nixpkgs-fetchCargoVendor/2 (https://github.com/NixOS/nixpkgs)"
session.mount('http://', HTTPAdapter(max_retries=retries))
session.mount('https://', HTTPAdapter(max_retries=retries))
return session
def download_file_with_checksum(session: requests.Session, url: str, destination_path: Path) -> str:
sha256_hash = hashlib.sha256()
with session.get(url, stream=True) as response:
if not response.ok:
raise Exception(f"Failed to fetch file from {url}. Status code: {response.status_code}")
with open(destination_path, "wb") as file:
for chunk in response.iter_content(1024): # Download in chunks
if chunk: # Filter out keep-alive chunks
file.write(chunk)
sha256_hash.update(chunk)
# Compute the final checksum
checksum = sha256_hash.hexdigest()
return checksum
def get_download_url_for_tarball(pkg: dict[str, Any]) -> str:
# TODO: support other registries
# maybe fetch config.json from the registry root and get the dl key
# See: https://doc.rust-lang.org/cargo/reference/registry-index.html#index-configuration
if pkg["source"] != "registry+https://github.com/rust-lang/crates.io-index":
raise Exception("Only the default crates.io registry is supported.")
# Use static.crates.io (CDN) instead of crates.io/api to avoid the 1 req/sec
# rate limit on the API servers.
return f"https://static.crates.io/crates/{pkg["name"]}/{pkg["version"]}/download"
def download_tarball(session: requests.Session, pkg: dict[str, Any], out_dir: Path) -> None:
url = get_download_url_for_tarball(pkg)
filename = f"{pkg["name"]}-{pkg["version"]}.tar.gz"
# TODO: allow legacy checksum specification, see importCargoLock for example
# also, don't forget about the other usage of the checksum
expected_checksum = pkg["checksum"]
tarball_out_dir = out_dir / "tarballs" / filename
eprint(f"Fetching {url} -> tarballs/{filename}")
calculated_checksum = download_file_with_checksum(session, url, tarball_out_dir)
if calculated_checksum != expected_checksum:
raise Exception(f"Hash mismatch! File fetched from {url} had checksum {calculated_checksum}, expected {expected_checksum}.")
def download_git_tree(url: str, git_sha_rev: str, out_dir: Path) -> None:
tree_out_dir = out_dir / "git" / git_sha_rev
eprint(f"Fetching {url}#{git_sha_rev} -> git/{git_sha_rev}")
cmd = ["nix-prefetch-git", "--builder", "--quiet", "--fetch-submodules", "--url", url, "--rev", git_sha_rev, "--out", str(tree_out_dir)]
subprocess.check_output(cmd)
GIT_SOURCE_REGEX = re.compile("git\\+(?P<url>[^?]+)(\\?(?P<type>rev|tag|branch)=(?P<value>.*))?#(?P<git_sha_rev>.*)")
class GitSourceInfo(TypedDict):
url: str
type: str | None
value: str | None
git_sha_rev: str
def parse_git_source(source: str, lockfile_version: int) -> GitSourceInfo:
match = GIT_SOURCE_REGEX.match(source)
if match is None:
raise Exception(f"Unable to process git source: {source}.")
source_info = cast(GitSourceInfo, match.groupdict(default=None))
# the source URL is URL-encoded in lockfile_version >=4
# since we just used regex to parse it we have to manually decode the escaped branch/tag name
if lockfile_version >= 4 and source_info["value"] is not None:
source_info["value"] = unquote(source_info["value"])
return source_info
def create_vendor_staging(lockfile_path: Path, out_dir: Path) -> None:
cargo_lock_toml = load_toml(lockfile_path)
lockfile_version = get_lockfile_version(cargo_lock_toml)
git_packages: list[dict[str, Any]] = []
registry_packages: list[dict[str, Any]] = []
for pkg in cargo_lock_toml["package"]:
# ignore local dependenices
if "source" not in pkg.keys():
eprint(f"Skipping local dependency: {pkg["name"]}")
continue
source = pkg["source"]
if source.startswith("git+"):
git_packages.append(pkg)
elif source.startswith("registry+"):
registry_packages.append(pkg)
else:
raise Exception(f"Can't process source: {source}.")
git_sha_rev_to_url: dict[str, str] = {}
for pkg in git_packages:
source_info = parse_git_source(pkg["source"], lockfile_version)
git_sha_rev_to_url[source_info["git_sha_rev"]] = source_info["url"]
out_dir.mkdir(exist_ok=True)
shutil.copy(lockfile_path, out_dir / "Cargo.lock")
# fetch git trees sequentially, since fetching concurrently leads to flaky behaviour
if len(git_packages) != 0:
(out_dir / "git").mkdir()
for git_sha_rev, url in git_sha_rev_to_url.items():
download_git_tree(url, git_sha_rev, out_dir)
# run tarball download jobs in parallel, with at most 5 concurrent download jobs
with mp.Pool(min(5, mp.cpu_count())) as pool:
if len(registry_packages) != 0:
(out_dir / "tarballs").mkdir()
session = create_http_session()
tarball_args_gen = ((session, pkg, out_dir) for pkg in registry_packages)
pool.starmap(download_tarball, tarball_args_gen)
def get_manifest_metadata(manifest_path: Path) -> dict[str, Any]:
cmd = ["cargo", "metadata", "--format-version", "1", "--no-deps", "--manifest-path", str(manifest_path)]
output = subprocess.check_output(cmd)
return json.loads(output)
def try_get_crate_manifest_path_from_manifest_path(manifest_path: Path, crate_name: str) -> Path | None:
try:
metadata = get_manifest_metadata(manifest_path)
except subprocess.CalledProcessError:
eprint(f"Warning: cargo metadata failed for {manifest_path}, skipping")
return None
for pkg in metadata["packages"]:
if pkg["name"] == crate_name:
return Path(pkg["manifest_path"])
return None
def find_crate_manifest_in_tree(tree: Path, crate_name: str) -> Path:
# Scan all Cargo.toml files; sort by depth/path to make ordering deterministic
# and prefer less-nested manifests first.
manifest_paths = sorted(
tree.glob("**/Cargo.toml"),
key=lambda path: (len(path.parts), str(path)),
)
for manifest_path in manifest_paths:
res = try_get_crate_manifest_path_from_manifest_path(manifest_path, crate_name)
if res is not None:
return res
raise Exception(f"Couldn't find manifest for crate {crate_name} inside {tree}.")
def copy_and_patch_git_crate_subtree(git_tree: Path, crate_name: str, crate_out_dir: Path) -> None:
# This function will get called by copytree to decide which entries of a directory should be copied
# We'll copy everything except symlinks that are invalid
def ignore_func(dir_str: str, path_strs: list[str]) -> list[str]:
ignorelist: list[str] = []
dir = Path(realpath(dir_str, strict=True))
for path_str in path_strs:
path = dir / path_str
if not islink(path):
continue
# Filter out cyclic symlinks and symlinks pointing at nonexistant files
try:
target_path = Path(realpath(path, strict=True))
except OSError:
ignorelist.append(path_str)
eprint(f"Failed to resolve symlink, ignoring: {path}")
continue
# Filter out symlinks that point outside of the current crate's base git tree
# This can be useful if the nix build sandbox is turned off and there is a symlink to a common absolute path
if not target_path.is_relative_to(git_tree):
ignorelist.append(path_str)
eprint(f"Symlink points outside of the crate's base git tree, ignoring: {path} -> {target_path}")
continue
return ignorelist
crate_manifest_path = find_crate_manifest_in_tree(git_tree, crate_name)
crate_tree = crate_manifest_path.parent
eprint(f"Copying to {crate_out_dir}")
shutil.copytree(crate_tree, crate_out_dir, ignore=ignore_func)
crate_out_dir.chmod(0o755)
with open(crate_manifest_path, "r") as f:
manifest_data = f.read()
if "workspace" in manifest_data:
crate_manifest_metadata = get_manifest_metadata(crate_manifest_path)
workspace_root = Path(crate_manifest_metadata["workspace_root"])
root_manifest_path = workspace_root / "Cargo.toml"
manifest_path = crate_out_dir / "Cargo.toml"
manifest_path.chmod(0o644)
eprint(f"Patching {manifest_path}")
cmd = ["replace-workspace-values", str(manifest_path), str(root_manifest_path)]
subprocess.check_output(cmd)
def extract_crate_tarball_contents(tarball_path: Path, crate_out_dir: Path) -> None:
eprint(f"Unpacking to {crate_out_dir}")
crate_out_dir.mkdir()
cmd = ["tar", "xf", str(tarball_path), "-C", str(crate_out_dir), "--strip-components=1"]
subprocess.check_output(cmd)
def make_git_source_selector(source_info: GitSourceInfo) -> dict[str, str]:
selector = {}
selector["git"] = source_info["url"]
if source_info["type"] is not None:
selector[source_info["type"]] = source_info["value"]
return selector
def make_registry_source_selector(source: str) -> dict[str, str]:
registry = source[9:] if source.startswith("registry+") else source
selector = {}
selector["registry"] = registry
return selector
def create_vendor(vendor_staging_dir: Path, out_dir: Path) -> None:
lockfile_path = vendor_staging_dir / "Cargo.lock"
out_dir.mkdir(exist_ok=True)
shutil.copy(lockfile_path, out_dir / "Cargo.lock")
cargo_lock_toml = load_toml(lockfile_path)
lockfile_version = get_lockfile_version(cargo_lock_toml)
source_to_ind: dict[str, str] = {}
source_config = {}
next_registry_ind = 0
next_git_ind = 0
def add_source_replacement(
orig_key: str,
orig_selector: dict[str, str],
vendored_key: str,
vendored_dir: str
) -> None:
source_config[vendored_key] = {}
source_config[vendored_key]["directory"] = vendored_dir
source_config[orig_key] = orig_selector
source_config[orig_key]["replace-with"] = vendored_key
# we reserve registry index 0 for crates-io
source_to_ind["registry+https://github.com/rust-lang/crates.io-index"] = "registry-0"
source_to_ind["sparse+https://index.crates.io/"] = "registry-0"
add_source_replacement(
orig_key="crates-io",
orig_selector={}, # there is an internal selector defined for the `crates-io` source
vendored_key="vendored-source-registry-0",
vendored_dir="@vendor@/source-registry-0"
)
next_registry_ind += 1
for pkg in cargo_lock_toml["package"]:
# ignore local dependencies
if "source" not in pkg.keys():
continue
source: str = pkg["source"]
if source in source_to_ind:
continue
if source.startswith("git+"):
ind = f"git-{next_git_ind}"
next_git_ind += 1
source_info = parse_git_source(source, lockfile_version)
selector = make_git_source_selector(source_info)
elif source.startswith("registry+") or source.startswith("sparse+"):
ind = f"registry-{next_registry_ind}"
next_registry_ind += 1
selector = make_registry_source_selector(source)
else:
raise Exception(f"Can't process source: {source}.")
source_to_ind[source] = ind
add_source_replacement(
orig_key=f"original-source-{ind}",
orig_selector=selector,
vendored_key=f"vendored-source-{ind}",
vendored_dir=f"@vendor@/source-{ind}"
)
config_path = out_dir / ".cargo" / "config.toml"
config_path.parent.mkdir()
with open(config_path, "wb") as config_file:
tomli_w.dump({"source": source_config}, config_file)
for pkg in cargo_lock_toml["package"]:
# ignore local dependenices
if "source" not in pkg.keys():
continue
source: str = pkg["source"]
source_ind = source_to_ind[source]
crate_dir_name = f"{pkg["name"]}-{pkg["version"]}"
source_dir_name = f"source-{source_ind}"
crate_out_dir = out_dir / source_dir_name / crate_dir_name
crate_out_dir.parent.mkdir(exist_ok=True)
if source.startswith("git+"):
source_info = parse_git_source(source, lockfile_version)
git_sha_rev = source_info["git_sha_rev"]
git_tree = vendor_staging_dir / "git" / git_sha_rev
copy_and_patch_git_crate_subtree(git_tree, pkg["name"], crate_out_dir)
# git based crates allow having no checksum information
with open(crate_out_dir / ".cargo-checksum.json", "w") as f:
json.dump({"files": {}}, f)
elif source.startswith("registry+") or source.startswith("sparse+"):
filename = f"{pkg["name"]}-{pkg["version"]}.tar.gz"
# TODO: change this when non-crates-io registries are supported
dir_name = "tarballs"
tarball_path = vendor_staging_dir / dir_name / filename
extract_crate_tarball_contents(tarball_path, crate_out_dir)
# non-git based crates need the package checksum at minimum
with open(crate_out_dir / ".cargo-checksum.json", "w") as f:
json.dump({"files": {}, "package": pkg["checksum"]}, f)
else:
raise Exception(f"Can't process source: {source}.")
def main() -> None:
subcommand = sys.argv[1]
subcommand_func_dict = {
"create-vendor-staging": lambda: create_vendor_staging(lockfile_path=Path(sys.argv[2]), out_dir=Path(sys.argv[3])),
"create-vendor": lambda: create_vendor(vendor_staging_dir=Path(sys.argv[2]), out_dir=Path(sys.argv[3]))
}
subcommand_func = subcommand_func_dict.get(subcommand)
if subcommand_func is None:
raise Exception(f"Unknown subcommand: '{subcommand}'. Must be one of {list(subcommand_func_dict.keys())}")
subcommand_func()
if __name__ == "__main__":
main()
@@ -40,6 +40,7 @@ def create_http_session() -> requests.Session:
status_forcelist=[500, 502, 503, 504]
)
session = requests.Session()
session.headers["User-Agent"] = "nixpkgs-fetchCargoVendor/2 (https://github.com/NixOS/nixpkgs)"
session.mount('http://', HTTPAdapter(max_retries=retries))
session.mount('https://', HTTPAdapter(max_retries=retries))
return session
@@ -68,7 +69,9 @@ def get_download_url_for_tarball(pkg: dict[str, Any]) -> str:
if pkg["source"] != "registry+https://github.com/rust-lang/crates.io-index":
raise Exception("Only the default crates.io registry is supported.")
return f"https://crates.io/api/v1/crates/{pkg["name"]}/{pkg["version"]}/download"
# Use static.crates.io (CDN) instead of crates.io/api to avoid the 1 req/sec
# rate limit on the API servers.
return f"https://static.crates.io/crates/{pkg["name"]}/{pkg["version"]}/download"
def download_tarball(session: requests.Session, pkg: dict[str, Any], out_dir: Path) -> None:
@@ -289,6 +292,7 @@ def create_vendor(vendor_staging_dir: Path, out_dir: Path) -> None:
lockfile_version = get_lockfile_version(cargo_lock_toml)
source_to_ind: dict[str, str] = {}
selector_to_ind: dict[tuple, str] = {}
source_config = {}
next_registry_ind = 0
next_git_ind = 0
@@ -324,24 +328,35 @@ def create_vendor(vendor_staging_dir: Path, out_dir: Path) -> None:
continue
if source.startswith("git+"):
ind = f"git-{next_git_ind}"
next_git_ind += 1
source_info = parse_git_source(source, lockfile_version)
selector = make_git_source_selector(source_info)
selector_key = (source_info["url"], source_info["type"], source_info["value"])
if selector_key in selector_to_ind:
ind = selector_to_ind[selector_key]
else:
ind = f"git-{next_git_ind}"
next_git_ind += 1
selector_to_ind[selector_key] = ind
add_source_replacement(
orig_key=f"original-source-{ind}",
orig_selector=selector,
vendored_key=f"vendored-source-{ind}",
vendored_dir=f"@vendor@/source-{ind}"
)
elif source.startswith("registry+") or source.startswith("sparse+"):
ind = f"registry-{next_registry_ind}"
next_registry_ind += 1
selector = make_registry_source_selector(source)
add_source_replacement(
orig_key=f"original-source-{ind}",
orig_selector=selector,
vendored_key=f"vendored-source-{ind}",
vendored_dir=f"@vendor@/source-{ind}"
)
else:
raise Exception(f"Can't process source: {source}.")
source_to_ind[source] = ind
add_source_replacement(
orig_key=f"original-source-{ind}",
orig_selector=selector,
vendored_key=f"vendored-source-{ind}",
vendored_dir=f"@vendor@/source-{ind}"
)
config_path = out_dir / ".cargo" / "config.toml"
config_path.parent.mkdir()
+14 -25
View File
@@ -37,29 +37,18 @@ let
"hash"
];
mkFetchCargoVendorUtil =
name: src:
writers.writePython3Bin name {
libraries =
with python3Packages;
[
requests
tomli-w
]
++ requests.optional-dependencies.socks; # to support socks proxy envs like ALL_PROXY in requests
flakeIgnore = [
"E501"
];
} (builtins.readFile src);
# Separate util used only by the FOD `vendorStaging` stage below. Kept
# distinct from fetchCargoVendorUtil so that changes to the network-facing
# bits (User-Agent, download URL) don't invalidate the input-addressed
# `-vendor` stage and force a mass rebuild of every Rust package in nixpkgs.
# vendorStaging is an FOD, so swapping its util is free for consumers.
# TODO: unify with fetchCargoVendorUtil on the next `staging` cycle.
fetchCargoVendorUtilV2 = mkFetchCargoVendorUtil "fetch-cargo-vendor-util-v2" ./fetch-cargo-vendor-util-v2.py;
fetchCargoVendorUtil = mkFetchCargoVendorUtil "fetch-cargo-vendor-util" ./fetch-cargo-vendor-util.py;
fetchCargoVendorUtil = writers.writePython3Bin "fetch-cargo-vendor-util" {
libraries =
with python3Packages;
[
requests
tomli-w
]
++ requests.optional-dependencies.socks; # to support socks proxy envs like ALL_PROXY in requests
flakeIgnore = [
"E501"
];
} (builtins.readFile ./fetch-cargo-vendor-util.py);
in
{
@@ -79,7 +68,7 @@ let
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
nativeBuildInputs = [
fetchCargoVendorUtilV2
fetchCargoVendorUtil
cacert
nix-prefetch-git'
]
@@ -92,7 +81,7 @@ let
cd "$cargoRoot"
fi
fetch-cargo-vendor-util-v2 create-vendor-staging ./Cargo.lock "$out"
fetch-cargo-vendor-util create-vendor-staging ./Cargo.lock "$out"
runHook postBuild
'';
+3 -3
View File
@@ -9,16 +9,16 @@ buildGoModule (finalAttrs: {
__structuredAttrs = true;
pname = "anytype-cli";
version = "0.3.5";
version = "0.3.6";
src = fetchFromGitHub {
owner = "anyproto";
repo = "anytype-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-+GVV5HiOB/589IKRs+uJaK8X29MCg5cv0C8u6spb7Jg=";
hash = "sha256-T/mdF+pzApm15Cg2g1ybgU7pEHLsTC4jD7WuXzNqM2M=";
};
vendorHash = "sha256-uxKDO55CQYn50XpnlP5tv5Rcl6+fq7nsOD7/2foRZX8=";
vendorHash = "sha256-S6Xb2XYAn/cTC++1WK5cmXcC6QCZpPoYMRrjk/IPKas=";
proxyVendor = true;
env.CGO_ENABLED = 1;
+3 -3
View File
@@ -14,16 +14,16 @@
buildGoModule (finalAttrs: {
pname = "aptly";
version = "1.6.2";
version = "1.6.3";
src = fetchFromGitHub {
owner = "aptly-dev";
repo = "aptly";
tag = "v${finalAttrs.version}";
hash = "sha256-Jkljg05C4GJ4F9l6mKAU4JCH8I0/bjzfb74X714z4UI=";
hash = "sha256-fjNN8EffY9G8YX/uME5ehs2zZj/YRA62y/muqigWSnE=";
};
vendorHash = "sha256-3pFVAVvIpJut2YYxvnCQbBpdwwmUbZIyrx0WoQrU+nQ=";
vendorHash = "sha256-QPYKdiEiV1iS3xJ3A66ILUXAlj0TGXuGf11wzdX3Z7Y=";
nativeBuildInputs = [
installShellFiles
+2 -2
View File
@@ -9,7 +9,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "assimp";
version = "6.0.4";
version = "6.0.5";
outputs = [
"out"
"lib"
@@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "assimp";
repo = "assimp";
tag = "v${finalAttrs.version}";
hash = "sha256-ryTgsN0z9BZBz7i9aUMKuneN5oqfxpduwJlb+Q0q3Mk=";
hash = "sha256-QWBi1pl5C76UtPhB6SmFipm9oEdnfhELMT3MqfV6oxg=";
};
postPatch = ''
+2 -2
View File
@@ -29,7 +29,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "at-spi2-core";
version = "2.60.1";
version = "2.60.4";
outputs = [
"out"
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "mirror://gnome/sources/at-spi2-core/${lib.versions.majorMinor finalAttrs.version}/at-spi2-core-${finalAttrs.version}.tar.xz";
hash = "sha256-+ZuH48FnT1+8QXzJwdniYcDymqsFUK1jaYBQMdEvaFI=";
hash = "sha256-Gh9bqYBZF/QfxqpoI9z4h6KR1gekJ+LVr7a136ZQcMc=";
};
nativeBuildInputs = [
+3 -7
View File
@@ -30,13 +30,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "audit";
version = "4.1.2-unstable-2025-09-06"; # fixes to non-static builds right after 4.1.2 release
version = "4.1.4";
src = fetchFromGitHub {
owner = "linux-audit";
repo = "audit-userspace";
rev = "cb13fe75ee2c36d5c525ed9de22aae10dbc8caf4";
hash = "sha256-NX0TWA+LtcZgbM9aQfokWv2rGNAAb3ksGqAH8URAkYM=";
tag = "v${finalAttrs.version}";
hash = "sha256-GdJ9nzlDAdOazOHH/YWuEoELrJh+G5ZJUKwIqAKAzpo=";
};
postPatch = ''
@@ -132,10 +132,6 @@ stdenv.mkDerivation (finalAttrs: {
# Instead, we load audit rules in a dedicated module.
postFixup = ''
moveToOutput bin/augenrules $scripts
substituteInPlace $scripts/bin/augenrules \
--replace-fail "/sbin/auditctl -R" "$bin/bin/auditctl -R" \
--replace-fail "auditctl -s" "$bin/bin/auditctl -s" \
--replace-fail "/bin/ls" "ls"
wrapProgram $scripts/bin/augenrules \
--prefix PATH : ${
lib.makeBinPath [
@@ -1,9 +0,0 @@
diff --git a/config.yaml b/config.yaml
index 2f07ea7..0f90432 100644
--- a/config.yaml
+++ b/config.yaml
@@ -4,3 +4,4 @@ additionalProperties:
packageName: api
enumClassPrefix: true
useOneOfDiscriminatorLookup: true
+ disallowAdditionalPropertiesIfNotPresent: false
+67 -118
View File
@@ -3,14 +3,19 @@
stdenvNoCC,
callPackages,
cacert,
clangStdenv,
cmake,
fetchFromGitHub,
buildGoModule,
buildNpmPackage,
bash,
chromedriver,
nodejs_24,
python3,
python314,
makeWrapper,
openapi-generator-cli,
perl,
rustPlatform,
go,
typescript,
makeSetupHook,
@@ -20,13 +25,18 @@
let
nodejs = nodejs_24;
version = "2025.12.6";
version = "2026.5.3";
cargoPackageFlags = [
"--package"
"authentik"
];
src = fetchFromGitHub {
owner = "goauthentik";
repo = "authentik";
tag = "version/${version}";
hash = "sha256-uIg47z4LaCawF/5ir4mKE6DpDnEpQ8DuObCNaq6TcYk=";
hash = "sha256-nmAX8nwZpdDcFAPvC9hAEp0x43RnFtGLUTAm7NcvNZo=";
};
meta = {
@@ -46,24 +56,9 @@ let
client-go = stdenvNoCC.mkDerivation {
pname = "authentik-client-go";
version = "3.${version}";
inherit meta;
inherit version src meta;
src = fetchFromGitHub {
owner = "goauthentik";
repo = "client-go";
tag = "v3.2025.12.4";
hash = "sha256-+/CfOE2HkBU+ZddvdXGenB/z8xNFk8cujpZpMXyh3cY=";
};
patches = [
./client-go-config.patch
];
postPatch = ''
substituteInPlace ./config.yaml \
--replace-fail '/local' "$(pwd)"
'';
sourceRoot = "${src.name}/packages/client-go";
nativeBuildInputs = [
openapi-generator-cli
@@ -86,10 +81,9 @@ let
installPhase = ''
runHook preInstall
cp go.mod go.sum $out
cd $out
rm -rf test
rm -f go.mod go.sum
rm -f .travis.yml git_push.sh
runHook postInstall
@@ -101,8 +95,8 @@ let
inherit version src meta;
postPatch = ''
substituteInPlace ./scripts/api/ts-config.yaml \
--replace-fail '/local' "$(pwd)"
substituteInPlace ./packages/client-ts/config.yaml \
--replace-fail '/local' "$(pwd)/packages/client-ts"
'';
nativeBuildInputs = [
@@ -117,7 +111,7 @@ let
openapi-generator-cli generate \
-i ./schema.yml -o $out \
-g typescript-fetch \
-c ./scripts/api/ts-config.yaml \
-c ./packages/client-ts/config.yaml \
--additional-properties=npmVersion=${version} \
--git-repo-id authentik --git-user-id goauthentik
@@ -128,32 +122,19 @@ let
'';
};
# prefetch-npm-deps does not save all dependencies even though the lockfile is fine
website-deps = stdenvNoCC.mkDerivation {
website-deps = buildNpmPackage {
pname = "authentik-website-deps";
inherit src version meta;
sourceRoot = "${src.name}/website";
outputHash =
{
"aarch64-linux" = "sha256-EbLneRDCyLLLBOZ2DUDpf2TbZoTL8QMXP4WlAZEzS90=";
"x86_64-linux" = "sha256-yDjwN/+lX2i9WYDXq4yWwf9o8nA4342iHDDQH4Jt7eQ=";
}
.${stdenvNoCC.hostPlatform.system} or (throw "authentik-website-deps: unsupported host platform");
outputHashMode = "recursive";
nativeBuildInputs = [
nodejs
cacert
];
buildPhase = ''
npm ci --cache ./cache
rm -r ./cache node_modules/.package-lock.json
'';
inherit nodejs;
npmDepsHash = "sha256-SkIZF+wQPgoZOGJc0YR8Ot07KCsAdA1985SLQaoibfA=";
npmDepsFetcherVersion = 2;
makeCacheWritable = true;
npmInstallFlags = [ "--legacy-peer-deps" ];
npmRebuildFlags = [ "--ignore-scripts" ];
dontNpmBuild = true;
# dependencies of workspace projects are installed into separate node_modules folders with
# symlinks between them, so we have to copy all of them
@@ -208,8 +189,8 @@ let
outputHash =
{
"aarch64-linux" = "sha256-J9wGQe7iMfKznNk3woqi0VNVNA/dE6TGi2f44DOlG1c=";
"x86_64-linux" = "sha256-9Q590Rw0mk3q5osxOKGWU7+XtKwkTyA+CLC2LxAA/3g=";
"aarch64-linux" = "sha256-41xZEfLul92vJATZqyVnd7Pp++NzLL/u8NeJJPHpXrw=";
"x86_64-linux" = "sha256-FpfOl6wNCgXLg86+vbjnYkcOnpaOZBCNxJiFDRT5W3s=";
}
.${stdenvNoCC.hostPlatform.system} or (throw "authentik-webui-deps: unsupported host platform");
outputHashMode = "recursive";
@@ -220,6 +201,7 @@ let
];
buildPhase = ''
chmod -R +w . ../packages/client-ts
npm ci --cache ./cache --ignore-scripts
rm -r ./cache node_modules/.package-lock.json
@@ -295,7 +277,7 @@ let
];
};
python = python3.override {
python = python314.override {
self = python;
packageOverrides = final: prev: {
# https://github.com/goauthentik/authentik/pull/16324
@@ -376,62 +358,6 @@ let
];
};
# Running authentik currently requires a custom version.
# Look in `pyproject.toml` for changes to the rev in the `[tool.uv.sources]` section.
# See https://github.com/goauthentik/authentik/pull/14057 for latest version bump.
djangorestframework = final.buildPythonPackage {
pname = "djangorestframework";
version = "3.16.0";
format = "setuptools";
src = fetchFromGitHub {
owner = "authentik-community";
repo = "django-rest-framework";
rev = "896722bab969fabc74a08b827da59409cf9f1a4e";
hash = "sha256-YrEDEU3qtw/iyQM3CoB8wYx57zuPNXiJx6ZjrIwnCNU=";
};
propagatedBuildInputs = with final; [
django
pytz
];
nativeCheckInputs = with final; [
pytest-django
pytest7CheckHook
# optional tests
coreapi
django-guardian
inflection
pyyaml
uritemplate
];
disabledTests = [
"test_ignore_validation_for_unchanged_fields"
"test_invalid_inputs"
"test_shell_code_example_rendering"
"test_unique_together_condition"
"test_unique_together_with_source"
];
pythonImportsCheck = [ "rest_framework" ];
};
# authentik is currently not compatible with v1.18 and fails with the following error:
# > AttributeError: 'Namespace' object has no attribute 'worker_fork_timeout'. Did you mean: 'worker_shutdown_timeout'?
dramatiq = prev.dramatiq.overrideAttrs (_: rec {
version = "1.17.1";
src = fetchFromGitHub {
owner = "Bogdanp";
repo = "dramatiq";
tag = "v${version}";
hash = "sha256-NeUGhG+H6r+JGd2qnJxRUbQ61G7n+3tsuDugTin3iJ4=";
};
});
authentik-django = final.buildPythonPackage {
pname = "authentik-django";
inherit version src meta;
@@ -548,7 +474,32 @@ let
inherit (python.pkgs) authentik-django;
# Provide a setup-hook to configure the Go vendor directory with up-to-date API bindings.
worker = (rustPlatform.buildRustPackage.override { stdenv = clangStdenv; }) {
pname = "authentik-worker";
inherit version src meta;
cargoHash = "sha256-KExlNyT9G3R5rnt99beT2pYrWxezMLhGw+Q9T1X2kj4=";
nativeBuildInputs = [
cmake
go
perl
];
buildInputs = [ python ];
env = {
PYO3_PYTHON = lib.getExe python;
RUSTFLAGS = "--cfg tokio_unstable";
};
cargoBuildFlags = cargoPackageFlags;
# Upstream currently has no Rust tests in this package.
doCheck = false;
};
# Provide a setup-hook to configure the Go source tree with up-to-date API bindings.
# This is done to avoid the `vendorHash` depending on anything in the `client-go` build (e.g.
# openapi-generator-cli version updates changing the produced content) and invalidating the hash.
apiGoVendorHook =
@@ -559,9 +510,10 @@ let
(
writeShellScript "authentik-api-go-vendor-hook" ''
authentikApiGoVendorHook() {
chmod -R +w vendor/goauthentik.io/api
rm -rf vendor/goauthentik.io/api/v3
cp -r ${client-go} vendor/goauthentik.io/api/v3
chmod -R +w packages/client-go
rm -rf packages/client-go
cp -r ${client-go} packages/client-go
chmod -R +w packages/client-go
echo "Finished authentikApiGoVendorHook"
}
@@ -593,10 +545,11 @@ let
# calculate the vendorHash without other dependencies, so it is only based on the `go.sum` file
overrideModAttrs.postPatch = "";
vendorHash = "sha256-pdQg02f1K4nOhsnadoplQYOhEybqZxn+yDQRN5RNygM=";
vendorHash = "sha256-EVDOZ4USaJoIBDB8mM4ZSBfsSc1d/NOm1Qv/hUJ+8f4=";
postInstall = ''
mv $out/bin/server $out/bin/authentik
mv $out/bin/server $out/bin/authentik-server
ln -s authentik-server $out/bin/authentik
'';
subPackages = [ "cmd/server" ];
@@ -612,11 +565,6 @@ stdenvNoCC.mkDerivation {
postPatch = ''
rm Makefile
patchShebangs lifecycle/ak
# This causes issues in systemd services
substituteInPlace lifecycle/ak \
--replace-fail 'printf' '>&2 printf' \
--replace-fail '>/dev/stderr' ""
'';
installPhase = ''
@@ -627,8 +575,9 @@ stdenvNoCC.mkDerivation {
wrapProgram $out/bin/ak \
--prefix PATH : ${
lib.makeBinPath [
(python.withPackages (ps: [ ps.authentik-django ]))
worker
proxy
(python.withPackages (ps: [ ps.authentik-django ]))
]
} \
--set TMPDIR /dev/shm \
@@ -638,7 +587,7 @@ stdenvNoCC.mkDerivation {
'';
passthru = {
inherit proxy apiGoVendorHook;
inherit proxy worker apiGoVendorHook;
outposts = callPackages ./outposts.nix {
inherit (proxy) vendorHash;
inherit apiGoVendorHook;
+19 -19
View File
@@ -1,47 +1,47 @@
{
"version": "2.1.187",
"commit": "6a53320fad5541a68d79e4b6c53677df77b98e33",
"buildDate": "2026-06-23T17:07:42Z",
"version": "2.1.191",
"commit": "397db5e73d569118815b8037ca9ff2483a06bbfe",
"buildDate": "2026-06-24T11:32:23Z",
"platforms": {
"darwin-arm64": {
"binary": "claude",
"checksum": "a59a16ba4922adab7a145728f215d042184d349f5f7e72cddb7fc114250a4ce3",
"size": 215994048
"checksum": "99fdfb552a5260e649aedd06c024d0a4105b09cefec0bf67d558e017ee66c400",
"size": 219856224
},
"darwin-x64": {
"binary": "claude",
"checksum": "7f57b6935b4246d03cb7acee90dc22153083483a267da589c5c920dd04744c36",
"size": 224795776
"checksum": "6e83aad5fc4fd459fd74539cda06d2279105eac2befc603d2fba6494974cb2a4",
"size": 229178416
},
"linux-arm64": {
"binary": "claude",
"checksum": "b49be8a5e565bf2d45b50d2de62017b25462131acc9425d2fdb98b8f29c9dce2",
"size": 232240864
"checksum": "1a31a7cbcfd784f8c073bfc8a0a1583fb6e93e60ef70b76d7fcf663ffed8949b",
"size": 236305136
},
"linux-x64": {
"binary": "claude",
"checksum": "bb02fcb33626f8c599d10d8bee38585d4cf8d4225c3b497869dee7454e7bf361",
"size": 234874664
"checksum": "1038dba88bdf1b80941dc3e383e93b088325b00497329ac50da460c8786d5bee",
"size": 239438648
},
"linux-arm64-musl": {
"binary": "claude",
"checksum": "972fc2e0bc8104edb593ce7723d4414c0ed8e4df6d90ad26ae48097b1d910478",
"size": 225620168
"checksum": "7e5d3ac86e28dbd224f84d9349372b74bed39ad6392408df63356fd8a810c96e",
"size": 229553336
},
"linux-x64-musl": {
"binary": "claude",
"checksum": "c5a783d13aac71d42324f2e9dcd395c266bd5774951faf0d94855c737024bee3",
"size": 229858704
"checksum": "b80e0066fb208cbd50fe539ed9c03dadd24fcc058bb67774fd36a316bca396ad",
"size": 234123648
},
"win32-x64": {
"binary": "claude.exe",
"checksum": "24964d08c5100bac6071352e5837101b333de1c1afefd2b8b0e7a60db6c0ef5c",
"size": 226329760
"checksum": "83397a6a029c7da663fb1ce27211e05174a3546d8b151e42451bf4590b8343d7",
"size": 230281888
},
"win32-arm64": {
"binary": "claude.exe",
"checksum": "04124c0ba09ece85a856de652e84386094c372f002ff767a94d4a43ecf776f96",
"size": 220992160
"checksum": "ec8c342e835ee8891ef2c6d0eb9ac460f2d5e6a668788c8a03faa3451748c275",
"size": 224756384
}
}
}
+2 -2
View File
@@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "cockpit-files";
version = "41";
version = "42";
src = fetchFromGitHub {
owner = "cockpit-project";
repo = "cockpit-files";
tag = finalAttrs.version;
hash = "sha256-qS9L0REWN8exXiy5ogYQNbuwaxuh8CiKaCUJHdkfSqQ=";
hash = "sha256-NfI6y60O5ctsPbwPcXgkwxpNYuZkF/2YXZOIcRZUc5c=";
fetchSubmodules = true;
postFetch = "cp $out/node_modules/.package-lock.json $out/package-lock.json";
+2 -2
View File
@@ -13,13 +13,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "cockpit-machines";
version = "353";
version = "354";
src = fetchFromGitHub {
owner = "cockpit-project";
repo = "cockpit-machines";
tag = finalAttrs.version;
hash = "sha256-K4p2HDg1Wh1ORw3S2BeY0Kbpy+CEGyiCM623/6M4LpU=";
hash = "sha256-r5gvs6/clRDV0VZKU1r6fjJSwHLuf9Pnhi0c60/9qkE=";
fetchSubmodules = true;
postFetch = "cp $out/node_modules/.package-lock.json $out/package-lock.json";
+2 -2
View File
@@ -12,13 +12,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "cockpit-podman";
version = "127";
version = "128";
src = fetchFromGitHub {
owner = "cockpit-project";
repo = "cockpit-podman";
tag = finalAttrs.version;
hash = "sha256-dYwiHvpyzu03ceinPeEuTpnRx4OOmA9/UuIKJNxb1eY=";
hash = "sha256-GlnIZGV5nk7o28EUs4H/IdZkgtHG0a9uwCTCS4rCP6c=";
fetchSubmodules = true;
postFetch = "cp $out/node_modules/.package-lock.json $out/package-lock.json";
+14 -10
View File
@@ -8,19 +8,20 @@
makeBinaryWrapper,
nix-eval-jobs,
nix,
colmena,
testers,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "colmena";
version = "0.4.0";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "zhaofengli";
owner = "nix-community";
repo = "colmena";
rev = "v${finalAttrs.version}";
sha256 = "sha256-01bfuSY4gnshhtqA1EJCw2CMsKkAx+dHS+sEpQ2+EAQ=";
tag = "v${finalAttrs.version}";
hash = "sha256-01bfuSY4gnshhtqA1EJCw2CMsKkAx+dHS+sEpQ2+EAQ=";
};
cargoHash = "sha256-2OLApLD/04etEeTxv03p0cx8O4O51iGiBQTIG/iOIkU=";
@@ -35,10 +36,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
env.NIX_EVAL_JOBS = "${nix-eval-jobs}/bin/nix-eval-jobs";
patches = [
# Fixes nix 2.24 compat: https://github.com/zhaofengli/colmena/pull/236
# Fixes nix 2.24 compat: https://github.com/zhaofengli/colmena/pull/233
(fetchpatch {
url = "https://github.com/zhaofengli/colmena/commit/36382ee2bef95983848435065f7422500c7923a8.patch";
sha256 = "sha256-5cQ2u3eTzhzjPN+rc6xWIskHNtheVXXvlSeJ1G/lz+E=";
url = "https://github.com/nix-community/colmena/commit/00fd486d49170b1304c67381b3096e55d4cdc76f.patch";
hash = "sha256-uwL3u0gO708bzV2NV8sTt10WHaCL3HykJNqSZNp9EtA=";
})
];
@@ -52,19 +53,22 @@ rustPlatform.buildRustPackage (finalAttrs: {
--prefix PATH ":" "${lib.makeBinPath [ nix ]}"
'';
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
# Recursive Nix is not stable yet
doCheck = false;
passthru = {
# We guarantee CLI and Nix API stability for the same minor version
apiVersion = builtins.concatStringsSep "." (lib.take 2 (lib.splitVersion finalAttrs.version));
tests.version = testers.testVersion { package = colmena; };
};
meta = {
description = "Simple, stateless NixOS deployment tool";
homepage = "https://colmena.cli.rs/${finalAttrs.passthru.apiVersion}";
downloadPage = "https://github.com/nix-community/colmena/";
changelog = "https://github.com/nix-community/colmena/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ zhaofengli ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
@@ -0,0 +1,13 @@
diff --git a/Cargo.lock b/Cargo.lock
index bdd37740..c1adcfad 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1514,7 +1514,7 @@ dependencies = [
[[package]]
name = "cosmic-settings-config"
version = "0.1.0"
-source = "git+https://github.com/pop-os/cosmic-settings-daemon#fa82bdf9fe7b5f5bd6008f32f393efd5e7a71c47"
+source = "git+https://github.com/pop-os/cosmic-settings-daemon#e7936f0d4f01c8c5a436908c7ee9f6ad43e6a7d8"
dependencies = [
"cosmic-config",
"ron 0.11.0",
+9 -3
View File
@@ -20,17 +20,23 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-applets";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-applets";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-o+rEO+IA337fhpq6TsH+UZEN7kb/PqydlKo77NyCRcM=";
hash = "sha256-A8Qk9u3Q83Q4AjzTrdptfS9UNoyKq39YihC4d/dNBYc=";
};
cargoHash = "sha256-tbGuyqdDTsKYpKxeAuachwbPHTPhmb9Sg3qzxHYosjo=";
cargoPatches = [
# A different reference to the `cosmic-settings-daemon` crate was added
# Remove this patch once upstream fixes their lockfile.
./dedup-cosmic-settings-daemon.patch
];
cargoHash = "sha256-81BFu13QmqOq43iN+ORQuktisEFYRrK+wd6diFfSufs=";
separateDebugInfo = true;
__structuredAttrs = true;
@@ -11,14 +11,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-applibrary";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-applibrary";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-mzHSLZK6HienbPRPetSj+XbPWCnpihEvMx9W9lJWpbA=";
hash = "sha256-TZncRQer4lXunUwdQ2xDP3DmF5B7UmfhSQvEwVodc98=";
};
cargoHash = "sha256-qGx/3w78mgIMqRo1wJA+ULFHWdNW2LKe2Sej4f9KbVs=";
+3 -3
View File
@@ -13,14 +13,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-bg";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-bg";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-E4OWxoGyRNFcMl7ni7PB6PE0Yl7dE+Wd4JGDMHO94Yw=";
hash = "sha256-bczUWa91l52P6Q46/lkX1j9eKasM154D82fBaLFHF1M=";
};
postPatch = ''
@@ -29,7 +29,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
"${cosmic-wallpapers}/share/backgrounds/cosmic/orion_nebula_nasa_heic0601a.jpg"
'';
cargoHash = "sha256-xXq8Dckg3YOf2AT9uOZqVfq00FhZp/X5UU8hLmAln1U=";
cargoHash = "sha256-UDhXKg4lO6op/lfi3aZ4iclzUqcf5xQI85UWAHVTWig=";
separateDebugInfo = true;
__structuredAttrs = true;
+2 -2
View File
@@ -20,14 +20,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-comp";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-comp";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-3WPZk/o+cfq3wwKEuYejMh+pn2o823m98OO3crFaNX4=";
hash = "sha256-fUuw7qwfojAmu/mkWMkWBhpcSgZNTIzdXmInjyKrZBI=";
};
cargoHash = "sha256-ki+unf58rXBCpj5PCpBcg/6FWo16+MdPQWae+w1YkJ8=";
+3 -3
View File
@@ -16,17 +16,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-edit";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-edit";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-almnWrJSV5xZoBDEuk0pfMZ/c00e0xpDNTTbcq+NCYM=";
hash = "sha256-5DsnhaiJgmTakn+q9o2Q7IeuakAC/j0Ck3F3pfFx/EA=";
};
cargoHash = "sha256-/qcpAR2nvC/MYa5QuCLiZFQgos5SlYtspZsNuMLJFHk=";
cargoHash = "sha256-2E+98uWtahyQufoZTzdUtkwbuISsUHwlqOmMSpyi1O8=";
separateDebugInfo = true;
+3 -3
View File
@@ -12,17 +12,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-files";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-files";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-2vrk1hYL7E/vVWiLcOYY3O0cmYZyFG4bdkNDFuyA+cA=";
hash = "sha256-cRwZrmm/zOIV6VCyz2dTH+qn8h6LOnaOiHU5nENTK6o=";
};
cargoHash = "sha256-QPFGsn1J0lp5K4gLdar/Z5MmZg+VOoCZd1U8LUuLXqM=";
cargoHash = "sha256-+21DCCTkNrbdxgxQi0YyuAxpl1IvwUz3ccUE+E0sZ4Y=";
separateDebugInfo = true;
__structuredAttrs = true;
+2 -2
View File
@@ -19,14 +19,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-greeter";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-greeter";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-+6VOv6z61k48hURq4yRRMIFIE8ZrjYGapO5FybWKQTE=";
hash = "sha256-oxXCAvBISkZu76VpvQ9AliFRJ8r5Ay7mjWf4sEwV0Xs=";
};
cargoHash = "sha256-mfY2hsMxBooRjmTB2jgUIKyKHBpGfZ9Qslwv+2aEQyg=";
+2 -2
View File
@@ -9,14 +9,14 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "cosmic-icons";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-icons";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-3owl4M4vRyzjR4v74clyAxpNDu77rieSpYAVYfADHzY=";
hash = "sha256-QUTAYIQ6qAhjZK/9BZjJzTViECLUwO/MyaOqiRb1Ans=";
};
__structuredAttrs = true;
+1 -1
View File
@@ -16,7 +16,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-idle";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
@@ -14,14 +14,14 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-initial-setup";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-initial-setup";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-3nGPBWYDqPJN99WtzsAVERucwiVAFynuUk2gezZ/RJU=";
hash = "sha256-UABqbmbwW2ZBOO7mq16/h0s55VCWRF2yyf/1TaubC88=";
};
cargoHash = "sha256-DESnl5NjakU4++Ep6CHxDZzHn+o0Gi0eREpXk5BN5iY=";
+2 -2
View File
@@ -11,14 +11,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-launcher";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-launcher";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-ZivzjufT2UlPi/En1AjGS8TfeFNdJDfDUd9cb2Begb8=";
hash = "sha256-9U64nSeI47bkc8BQU9ilXBlHQRGS2zC/FcBKc7Z17RY=";
};
cargoHash = "sha256-WnZAPQR8hGGNC5S7hPmcGSMs9HrOw4/wqJR151eIgHY=";
@@ -0,0 +1,73 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
just,
libcosmicAppHook,
nixosTests,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-monitor";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-monitor";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-CiJ9LeNcdOyC8yn0c7hCz0QEecxYK95KGvs1SWr9360=";
};
cargoHash = "sha256-OMhLPQ3GkV/wdeb9F7lsKY1Uzzg8+UlhOeakGZo6mYk=";
separateDebugInfo = true;
__structuredAttrs = true;
nativeBuildInputs = [
just
libcosmicAppHook
rustPlatform.bindgenHook
];
dontUseJustBuild = true;
dontUseJustCheck = true;
justFlags = [
"--set"
"prefix"
(placeholder "out")
"--set"
"cargo-target-dir"
"target/${stdenv.hostPlatform.rust.cargoShortTarget}"
];
passthru = {
tests = {
inherit (nixosTests)
cosmic
cosmic-autologin
cosmic-noxwayland
cosmic-autologin-noxwayland
;
};
updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"epoch-(.*)"
];
};
};
meta = {
homepage = "https://github.com/pop-os/cosmic-monitor";
description = "COSMIC System Monitor";
mainProgram = "cosmic-monitor";
license = lib.licenses.gpl3Only;
teams = [ lib.teams.cosmic ];
platforms = lib.platforms.linux;
};
})
@@ -12,7 +12,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-notifications";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
@@ -1,31 +0,0 @@
diff --git a/Cargo.lock b/Cargo.lock
index 8b6704e..64c1691 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1104,7 +1104,7 @@ dependencies = [
[[package]]
name = "cosmic-settings-airplane-mode-subscription"
version = "1.0.7"
-source = "git+https://github.com/pop-os/cosmic-settings#78644a32e3741f8f80e9b8ce65c3550c85f9c1f8"
+source = "git+https://github.com/pop-os/cosmic-settings#81912bed6cdebe2719e29e6bd1453e7b977acb0e"
dependencies = [
"futures",
"iced_futures",
@@ -1150,7 +1150,7 @@ dependencies = [
[[package]]
name = "cosmic-settings-pulse-subscription"
version = "0.1.0"
-source = "git+https://github.com/pop-os/cosmic-settings#78644a32e3741f8f80e9b8ce65c3550c85f9c1f8"
+source = "git+https://github.com/pop-os/cosmic-settings#81912bed6cdebe2719e29e6bd1453e7b977acb0e"
dependencies = [
"futures",
"iced_futures",
@@ -1162,7 +1162,7 @@ dependencies = [
[[package]]
name = "cosmic-settings-upower-subscription"
version = "1.0.7"
-source = "git+https://github.com/pop-os/cosmic-settings#78644a32e3741f8f80e9b8ce65c3550c85f9c1f8"
+source = "git+https://github.com/pop-os/cosmic-settings#81912bed6cdebe2719e29e6bd1453e7b977acb0e"
dependencies = [
"futures",
"iced_futures",
+3 -10
View File
@@ -15,24 +15,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-osd";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-osd";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-jv28hxhQUcUDLnOwU3xQJwCU+s52pwDNs8Gf4I5Hp9k=";
hash = "sha256-veqkYF2CSwnc1nGIFeZXpfannCQ0RuacvqPVxVsiVDc=";
};
cargoHash = "sha256-YwZXlhggrUddxour+/S1mSL3Fq1mzvFaOHArLSnfPvc=";
cargoPatches = [
# A different reference to the `cargo-settings` crate was added in:
# <https://github.com/pop-os/cosmic-osd/pull/204>
# Remove this patch once upstream fixes their lockfile.
./deduplicate-cosmic-settings-crate.patch
];
cargoHash = "sha256-aweq4E2bwqRpetakpR0OqTsIsoJK6h4eRzMdBhGuIoU=";
separateDebugInfo = true;
__structuredAttrs = true;
+2 -2
View File
@@ -11,14 +11,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-panel";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-panel";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-MNOS7HMlyvU4zCZVINthgZgBsUn+LI1hUAEcwSq+zaE=";
hash = "sha256-DKwmZnTxsYCWAkLb9AXoHBa8m6Z5Gi1Jb7AuxZqq7RA=";
};
cargoHash = "sha256-6E+bAi1f6gOZh64wyvLMKZiZNlMexPV+ZzS3riOx9xM=";
+3 -3
View File
@@ -18,17 +18,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-player";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-player";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-iDEyR+P+iXShH0YFtqxvPbbs9kgtYvAsuKchB6plnKI=";
hash = "sha256-aHQbwpNr8tsfUR0Dm4WTzz6XNXjgdqZ9/2AQRPPbnog=";
};
cargoHash = "sha256-YzT16Ej+AyLLj8uHuHxZvHWujcW8jLjVg/4MmPyorH4=";
cargoHash = "sha256-KVaKTMrWijResBqzH62j/YqBR4TQ77x2sK/kN40UWjw=";
separateDebugInfo = true;
__structuredAttrs = true;
+1 -1
View File
@@ -12,7 +12,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-randr";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
@@ -11,14 +11,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-screenshot";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-screenshot";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-DngKZDKfgVdSZLZAsPq+7p4r/go2Y6141LrCNGoxD1E=";
hash = "sha256-RYvc/3FoRnNkuYBVfCG75Bmfb8JWW1H4GKXyhq7CxaQ=";
};
cargoHash = "sha256-q0RJST1yeqPBjU5MseNZIrZw+brfDtQLKiw7wyViflE=";
+1 -1
View File
@@ -12,7 +12,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-session";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
@@ -7,6 +7,7 @@
adw-gtk3,
pkg-config,
libpulseaudio,
pipewire,
libinput,
udev,
openssl,
@@ -16,14 +17,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-settings-daemon";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-settings-daemon";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-A+nOAadFWU+KRW54dP2WW6P6fabIs4z1AqC37LSZjUI=";
hash = "sha256-6MLZpGGvE1EnUlRv2T6+iXy8B0aqBTNNrqDtBbeABYs=";
};
postPatch = ''
@@ -33,18 +34,22 @@ rustPlatform.buildRustPackage (finalAttrs: {
--replace-fail '/usr/share/themes/adw-gtk3' '${adw-gtk3}/share/themes/adw-gtk3'
'';
cargoHash = "sha256-bz+JasI3WE30sKKgjofVO/42Ml4YY9Dw3JxnZmZVQk4=";
cargoHash = "sha256-rpyMdwmcddsrXuIOI5T6Kh9+cB28DdUxotiqpeGqvCc=";
separateDebugInfo = true;
__structuredAttrs = true;
nativeBuildInputs = [ pkg-config ];
nativeBuildInputs = [
pkg-config
rustPlatform.bindgenHook
];
buildInputs = [
libinput
libpulseaudio
openssl
udev
pipewire
];
makeFlags = [
@@ -0,0 +1,112 @@
diff --git a/Cargo.lock b/Cargo.lock
index 46d491a..ea60cd9 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1774,7 +1774,7 @@ dependencies = [
[[package]]
name = "cosmic-theme"
version = "1.0.0"
-source = "git+https://github.com/pop-os/libcosmic#f0f68933f1552857e2165fc0fa953228107bddef"
+source = "git+https://github.com/pop-os/libcosmic#a991d7bb433f67016c1473e8e4a03691ededd75a"
dependencies = [
"almost",
"configparser",
@@ -3158,7 +3158,7 @@ dependencies = [
[[package]]
name = "iced"
version = "0.14.0"
-source = "git+https://github.com/pop-os/libcosmic#f0f68933f1552857e2165fc0fa953228107bddef"
+source = "git+https://github.com/pop-os/libcosmic#a991d7bb433f67016c1473e8e4a03691ededd75a"
dependencies = [
"dnd",
"iced_accessibility",
@@ -3214,7 +3214,7 @@ dependencies = [
[[package]]
name = "iced_debug"
version = "0.14.0"
-source = "git+https://github.com/pop-os/libcosmic#f0f68933f1552857e2165fc0fa953228107bddef"
+source = "git+https://github.com/pop-os/libcosmic#a991d7bb433f67016c1473e8e4a03691ededd75a"
dependencies = [
"iced_core",
"iced_futures",
@@ -3238,7 +3238,7 @@ dependencies = [
[[package]]
name = "iced_graphics"
version = "0.14.0"
-source = "git+https://github.com/pop-os/libcosmic#f0f68933f1552857e2165fc0fa953228107bddef"
+source = "git+https://github.com/pop-os/libcosmic#a991d7bb433f67016c1473e8e4a03691ededd75a"
dependencies = [
"bitflags 2.12.1",
"bytemuck",
@@ -3259,7 +3259,7 @@ dependencies = [
[[package]]
name = "iced_program"
version = "0.14.0"
-source = "git+https://github.com/pop-os/libcosmic#f0f68933f1552857e2165fc0fa953228107bddef"
+source = "git+https://github.com/pop-os/libcosmic#a991d7bb433f67016c1473e8e4a03691ededd75a"
dependencies = [
"iced_graphics",
"iced_runtime",
@@ -3268,7 +3268,7 @@ dependencies = [
[[package]]
name = "iced_renderer"
version = "0.14.0"
-source = "git+https://github.com/pop-os/libcosmic#f0f68933f1552857e2165fc0fa953228107bddef"
+source = "git+https://github.com/pop-os/libcosmic#a991d7bb433f67016c1473e8e4a03691ededd75a"
dependencies = [
"iced_graphics",
"iced_tiny_skia",
@@ -3280,7 +3280,7 @@ dependencies = [
[[package]]
name = "iced_runtime"
version = "0.14.0"
-source = "git+https://github.com/pop-os/libcosmic#f0f68933f1552857e2165fc0fa953228107bddef"
+source = "git+https://github.com/pop-os/libcosmic#a991d7bb433f67016c1473e8e4a03691ededd75a"
dependencies = [
"bytes",
"cosmic-client-toolkit",
@@ -3296,7 +3296,7 @@ dependencies = [
[[package]]
name = "iced_tiny_skia"
version = "0.14.0"
-source = "git+https://github.com/pop-os/libcosmic#f0f68933f1552857e2165fc0fa953228107bddef"
+source = "git+https://github.com/pop-os/libcosmic#a991d7bb433f67016c1473e8e4a03691ededd75a"
dependencies = [
"bytemuck",
"cosmic-text",
@@ -3313,7 +3313,7 @@ dependencies = [
[[package]]
name = "iced_wgpu"
version = "0.14.0"
-source = "git+https://github.com/pop-os/libcosmic#f0f68933f1552857e2165fc0fa953228107bddef"
+source = "git+https://github.com/pop-os/libcosmic#a991d7bb433f67016c1473e8e4a03691ededd75a"
dependencies = [
"as-raw-xcb-connection",
"bitflags 2.12.1",
@@ -3344,7 +3344,7 @@ dependencies = [
[[package]]
name = "iced_widget"
version = "0.14.2"
-source = "git+https://github.com/pop-os/libcosmic#f0f68933f1552857e2165fc0fa953228107bddef"
+source = "git+https://github.com/pop-os/libcosmic#a991d7bb433f67016c1473e8e4a03691ededd75a"
dependencies = [
"cosmic-client-toolkit",
"dnd",
@@ -3364,7 +3364,7 @@ dependencies = [
[[package]]
name = "iced_winit"
version = "0.14.0"
-source = "git+https://github.com/pop-os/libcosmic#f0f68933f1552857e2165fc0fa953228107bddef"
+source = "git+https://github.com/pop-os/libcosmic#a991d7bb433f67016c1473e8e4a03691ededd75a"
dependencies = [
"cosmic-client-toolkit",
"cursor-icon",
@@ -4455,7 +4455,7 @@ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
[[package]]
name = "libcosmic"
version = "1.0.0"
-source = "git+https://github.com/pop-os/libcosmic#f0f68933f1552857e2165fc0fa953228107bddef"
+source = "git+https://github.com/pop-os/libcosmic#a991d7bb433f67016c1473e8e4a03691ededd75a"
dependencies = [
"apply",
"ashpd 0.12.3",
+9 -3
View File
@@ -27,17 +27,23 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-settings";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-settings";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-knA3qpFeRRlUMV91+LleaWxb1fexX2IJlMRD81fl7l4=";
hash = "sha256-LfhFza0G85+fIuACMdwV50Okh5/46z8tLoJ9IvLqTgw=";
};
cargoHash = "sha256-2ZHuOmtBzXQ/KSBMKus9LbojfByYzzCjIkbGY8C85bU=";
cargoPatches = [
# A different reference to the `libcosmic` crate was added
# Remove this patch once upstream fixes their lockfile.
./dedup-libcosmic.patch
];
cargoHash = "sha256-rYjizOCcLJ4aq3UB5xEwWq5+KvrSi5PCUTIwUM/wegM=";
separateDebugInfo = true;
__structuredAttrs = true;
+3 -3
View File
@@ -15,17 +15,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-store";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-store";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-JE8LcFlhG4e3QqobzUNfCw3Eg10+FrlVuQu+J+96/es=";
hash = "sha256-pePtfOgeQtaD15dfWzrMQmXcINf/V5ovKWAG8kOPf+c=";
};
cargoHash = "sha256-+lOt+mSTKKsSm3UzGXq43ZjbktiCCV8dnHdvnnx2vqA=";
cargoHash = "sha256-jECZ/6hxaDfz2pOOqLkbq5HfF3YnCVK2geFAC+n286A=";
separateDebugInfo = true;
__structuredAttrs = true;
+3 -3
View File
@@ -15,17 +15,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-term";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-term";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-nDTDGtaGRW0JM48/tbWO/NK1WhGkPwlsqfWrDGvFE9A=";
hash = "sha256-ocOPssCxm2p2HoAIHIAoAMh66cGcGXuGWDuAEtHFoPQ=";
};
cargoHash = "sha256-0W1TU1NIcV9fx/vgKpPLqLO1fcdtbZX5Ds1uQWGJ2C8=";
cargoHash = "sha256-ezFCpU4ZNfANYRVTMrvPMC79j55XGUwYMMKeihekYds=";
separateDebugInfo = true;
__structuredAttrs = true;
@@ -7,7 +7,7 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "cosmic-wallpapers";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
@@ -14,14 +14,14 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cosmic-workspaces-epoch";
version = "1.0.16";
version = "1.1.0";
# nixpkgs-update: no auto update
src = fetchFromGitHub {
owner = "pop-os";
repo = "cosmic-workspaces-epoch";
tag = "epoch-${finalAttrs.version}";
hash = "sha256-u4p22qpxZPdBogzrJXGomqGGxgkpD0hdXf+3YNg2VIo=";
hash = "sha256-riiveHFtRF3rtOhbbUtfYRoAlqc7TCRr8aer0dgBY7g=";
};
cargoHash = "sha256-Z5dC3W8QoDBZWBjHwRj9MC8EScDjQwUiUcOPTRDToDA=";
@@ -0,0 +1,32 @@
From 2a2104f3cff44bb28bb570a093be52bbeeed8f23 Mon Sep 17 00:00:00 2001
From: Stefan Eissing <stefan@eissing.org>
Date: Mon, 11 May 2026 14:56:04 +0200
Subject: [PATCH] event: fix wakeup consumption
The events on a multi wakeup socketpair were only consumed via
curl_multi_poll()/curl_multi_wait() but not in event based processing on
a curl_multi_socket() call. That led to busy loops as reported in
Fixes #21547
Reported-by: Earnestly on github
Closes #21549
---
lib/multi.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/lib/multi.c b/lib/multi.c
index be32740a7097..5e84133f13fd 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -2703,6 +2703,11 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
Curl_uint32_bset_remove(&multi->dirty, data->mid);
if(data == multi->admin) {
+#ifdef ENABLE_WAKEUP
+ /* Consume any pending wakeup signals before processing.
+ * This is necessary for event based processing. See #21547 */
+ (void)Curl_wakeup_consume(multi->wakeup_pair, TRUE);
+#endif
#ifdef USE_RESOLV_THREADED
Curl_async_thrdd_multi_process(multi);
#endif
+8
View File
@@ -96,6 +96,13 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-Y/4twUi6DOromSLvg49+XJRicsLni3xZ+rS3nTziuJY=";
};
patches = [
# https://github.com/curl/curl/commit/2a2104f3cff44bb28bb570a093be52bbeeed8f23
# According to <https://curl.se/mail/distros-2026-05/0000.html>, this fixes
# a performance regression, causing high CPU usage
./fix-wakeup-consumption.patch
];
# this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
# necessary for FreeBSD code path in configure
postPatch = ''
@@ -115,6 +122,7 @@ stdenv.mkDerivation (finalAttrs: {
enableParallelBuilding = true;
strictDeps = true;
__structuredAttrs = true;
env = {
CXX = "${stdenv.cc.targetPrefix}c++";
+3 -2
View File
@@ -7,13 +7,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "doctest";
version = "2.5.0";
version = "2.5.2";
src = fetchFromGitHub {
owner = "doctest";
repo = "doctest";
tag = "v${finalAttrs.version}";
hash = "sha256-7t/eknv7VtHoBgcuJmI07x//HIyqzE9HUuH5u2y7X8A=";
hash = "sha256-4jW6xPFCFxk1l47EkSUVojhycrtluPhOc5Adf/25R7M=";
};
nativeBuildInputs = [ cmake ];
@@ -27,6 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
doCheck = true;
meta = {
changelog = "https://github.com/doctest/doctest/releases/tag/${finalAttrs.src.tag}";
homepage = "https://github.com/doctest/doctest";
description = "Fastest feature-rich C++11/14/17/20 single-header testing framework";
platforms = lib.platforms.all;
+11 -14
View File
@@ -75,20 +75,17 @@ let
glib
];
pythonPath =
with python3.pkgs;
[
b2sdk
boto3
idna
pygobject3
fasteners
paramiko
pexpect
# Currently marked as broken.
# pydrive2
]
++ paramiko.optional-dependencies.invoke;
pythonPath = with python3.pkgs; [
b2sdk
boto3
idna
pygobject3
fasteners
paramiko
pexpect
# Currently marked as broken.
# pydrive2
];
nativeCheckInputs = [
gnupg # Add 'gpg' to PATH.
+2 -13
View File
@@ -3,7 +3,6 @@
stdenv,
buildPackages,
fetchurl,
fetchpatch,
pkg-config,
libuuid,
gettext,
@@ -20,25 +19,15 @@
stdenv.mkDerivation rec {
pname = "e2fsprogs";
version = "1.47.3";
version = "1.47.4";
__structuredAttrs = true;
src = fetchurl {
url = "mirror://kernel/linux/kernel/people/tytso/e2fsprogs/v${version}/e2fsprogs-${version}.tar.xz";
hash = "sha256-hX5u+AD+qiu0V4+8gQIUvl08iLBy6lPFOEczqWVzcyk=";
hash = "sha256-/VvziMvb4Aaj07MY2YOylIOCRArMhah/Hn0QhlPo2ws=";
};
patches = [
# Upstream patch that fixes musl build (and probably others).
# Should be included in next release after 1.47.3.
(fetchpatch {
name = "stdio-portability.patch";
url = "https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/patch/?id=f79abd8554e600eacc2a7c864a8332b670c9e262";
hash = "sha256-zZ7zmSMTwGyS3X3b/D/mVG0bV2ul5xtY5DJx9YUvQO8=";
})
];
# fuse2fs adds 14mb of dependencies
outputs = [
"bin"
+89
View File
@@ -0,0 +1,89 @@
--- a/Make.rules
+++ b/Make.rules
@@ -68,35 +68,35 @@ endif
%.h: %.auth
./xxdi.pl $< > $@
-%.hash: %.efi hash-to-efi-sig-list
- ./hash-to-efi-sig-list $< $@
+%.hash: %.efi
+ hash-to-efi-sig-list $< $@
-%-blacklist.esl: %.crt cert-to-efi-hash-list
- ./cert-to-efi-sig-list $< $@
+%-blacklist.esl: %.crt
+ cert-to-efi-sig-list $< $@
-%-hash-blacklist.esl: %.crt cert-to-efi-hash-list
- ./cert-to-efi-hash-list $< $@
+%-hash-blacklist.esl: %.crt
+ cert-to-efi-hash-list $< $@
-%.esl: %.crt cert-to-efi-sig-list
- ./cert-to-efi-sig-list -g $(MYGUID) $< $@
+%.esl: %.crt
+ cert-to-efi-sig-list -g $(MYGUID) $< $@
getcert = $(shell if [ "$(1)" = "PK" -o "$(1)" = "KEK" ]; then echo "-c PK.crt -k PK.key"; else echo "-c KEK.crt -k KEK.key"; fi)
getvar = $(shell if [ "$(1)" = "PK" -o "$(1)" = "KEK" ]; then echo $(1); else echo db; fi)
-%.auth: %.esl PK.crt KEK.crt sign-efi-sig-list
- ./sign-efi-sig-list $(call getcert,$*) $(call getvar,$*) $< $@
+%.auth: %.esl PK.crt KEK.crt
+ sign-efi-sig-list $(call getcert,$*) $(call getvar,$*) $< $@
-%-update.auth: %.esl PK.crt KEK.crt sign-efi-sig-list
- ./sign-efi-sig-list -a $(call getcert,$*) $(call getvar,$*) $< $@
+%-update.auth: %.esl PK.crt KEK.crt
+ sign-efi-sig-list -a $(call getcert,$*) $(call getvar,$*) $< $@
-%-pkupdate.auth: %.esl PK.crt sign-efi-sig-list
- ./sign-efi-sig-list -a -c PK.crt -k PK.key $(call getvar,$*) $< $@
+%-pkupdate.auth: %.esl PK.crt
+ sign-efi-sig-list -a -c PK.crt -k PK.key $(call getvar,$*) $< $@
-%-blacklist.auth: %-blacklist.esl KEK.crt sign-efi-sig-list
- ./sign-efi-sig-list -a -c KEK.crt -k KEK.key dbx $< $@
+%-blacklist.auth: %-blacklist.esl KEK.crt
+ sign-efi-sig-list -a -c KEK.crt -k KEK.key dbx $< $@
-%-pkblacklist.auth: %-blacklist.esl PK.crt sign-efi-sig-list
- ./sign-efi-sig-list -a -c PK.crt -k PK.key dbx $< $@
+%-pkblacklist.auth: %-blacklist.esl PK.crt
+ sign-efi-sig-list -a -c PK.crt -k PK.key dbx $< $@
%.o: %.c
$(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
--- a/Makefile
+++ b/Makefile
@@ -27,13 +27,11 @@ include Make.rules
EFISIGNED = $(patsubst %.efi,%-signed.efi,$(EFIFILES))
-all: $(EFISIGNED) $(BINARIES) $(MANPAGES) noPK.auth $(KEYAUTH) \
+all: $(EFISIGNED) $(BINARIES) noPK.auth $(KEYAUTH) \
$(KEYUPDATEAUTH) $(KEYBLACKLISTAUTH) $(KEYHASHBLACKLISTAUTH)
install: all
- $(INSTALL) -m 755 -d $(MANDIR)
- $(INSTALL) -m 644 $(MANPAGES) $(MANDIR)
$(INSTALL) -m 755 -d $(EFIDIR)
$(INSTALL) -m 755 $(EFIFILES) $(EFIDIR)
$(INSTALL) -m 755 -d $(BINDIR)
@@ -65,11 +63,11 @@ DB.h: DB.auth
noPK.esl:
> noPK.esl
-noPK.auth: noPK.esl PK.crt sign-efi-sig-list
- ./sign-efi-sig-list -t "$(shell date --date='1 second' +'%Y-%m-%d %H:%M:%S')" -c PK.crt -k PK.key PK $< $@
+noPK.auth: noPK.esl PK.crt
+ sign-efi-sig-list -t "$(shell date --date='1 second' +'%Y-%m-%d %H:%M:%S')" -c PK.crt -k PK.key PK $< $@
-ms-%.esl: ms-%.crt cert-to-efi-sig-list
- ./cert-to-efi-sig-list -g $(MSGUID) $< $@
+ms-%.esl: ms-%.crt
+ cert-to-efi-sig-list -g $(MSGUID) $< $@
hashlist.h: HashTool.hash
cat $^ > /tmp/tmp.hash
+32 -1
View File
@@ -8,7 +8,13 @@
perlPackages,
help2man,
fetchzip,
pkgsCross,
efitools,
buildPackages,
}:
let
isCross = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform);
in
stdenv.mkDerivation (finalAttrs: {
pname = "efitools";
version = "1.9.2";
@@ -16,13 +22,17 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
gnu-efi
openssl
sbsigntool
];
nativeBuildInputs = [
perl
perlPackages.FileSlurp
help2man
openssl
sbsigntool
]
++ lib.optionals isCross [
efitools
];
src = fetchzip {
@@ -39,6 +49,10 @@ stdenv.mkDerivation (finalAttrs: {
# https://bugs.debian.org/1122408
./objcopy-output-target.patch
]
++ lib.optionals isCross [
# Use builder's efitools to create sig lists for host
./cross.patch
];
postPatch = ''
@@ -47,9 +61,26 @@ stdenv.mkDerivation (finalAttrs: {
sed -i -e 's#$(DESTDIR)/usr#$(out)#g' Make.rules
sed -i '$asign-efi-sig-list.o flash-var.o: CFLAGS += -D_GNU_SOURCE' Makefile
substituteInPlace lib/console.c --replace "EFI_WARN_UNKOWN_GLYPH" "EFI_WARN_UNKNOWN_GLYPH"
# Fix cross-compilation: use $(AR) and $(NM) variables instead of hardcoded commands
substituteInPlace Make.rules --replace-fail 'ar rcv' '$(AR) rcv'
substituteInPlace Make.rules --replace-fail 'nm -D' '$(NM) -D'
patchShebangs .
'';
makeFlags = [
"ARCH=${stdenv.hostPlatform.parsed.cpu.name}"
"AR=${stdenv.cc.targetPrefix}ar"
"NM=${stdenv.cc.targetPrefix}nm"
"OBJCOPY=${stdenv.cc.targetPrefix}objcopy"
]
++ lib.optionals isCross [
"MANPAGES="
];
passthru.tests = {
cross-aarch64 = pkgsCross.aarch64-multiplatform.efitools;
};
meta = {
description = "Tools for manipulating UEFI secure boot platforms";
homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git";
+7 -2
View File
@@ -33,14 +33,14 @@ let
in
python.pkgs.buildPythonApplication (finalAttrs: {
pname = "esphome";
version = "2026.5.3";
version = "2026.6.2";
pyproject = true;
src = fetchFromGitHub {
owner = "esphome";
repo = "esphome";
tag = finalAttrs.version;
hash = "sha256-laz+XNszkayfmEyrtFr3BHUWVV9eFhj130o4l99XElY=";
hash = "sha256-h7aMPSXmIUutCGMoZlE3Z1wX2xNxdmZsHfBllcFHBHc=";
};
patches = [
@@ -96,6 +96,7 @@ python.pkgs.buildPythonApplication (finalAttrs: {
pillow
platformio
puremagic
py7zr
pyparsing
pyserial
pyyaml
@@ -151,6 +152,10 @@ python.pkgs.buildPythonApplication (finalAttrs: {
disabledTestPaths = [
# platformio builds; requires networking for dependency resolution
"tests/integration"
# tries to dynamically patch platformio module
"tests/unit_tests/test_writer.py"
"tests/unit_tests/test_espidf_component.py"
];
preCheck = ''
+2 -2
View File
@@ -18,7 +18,7 @@
# files.
let
version = "2.8.0";
version = "2.8.1";
tag = "R_${lib.replaceStrings [ "." ] [ "_" ] version}";
in
stdenv.mkDerivation (finalAttrs: {
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
url =
with finalAttrs;
"https://github.com/libexpat/libexpat/releases/download/${tag}/${pname}-${version}.tar.xz";
hash = "sha256-o3v64KqXdb2FIevYXcRW1Ibw/zETj2yR/ZAupzJiRUI=";
hash = "sha256-ELGV7ngWCpCDiBgKj+NgPU6aEvR1X79fOBayOp11DaA=";
};
strictDeps = true;
+2 -2
View File
@@ -24,13 +24,13 @@ let
in
buildGoModule (finalAttrs: {
pname = "faas-cli";
version = "0.18.9";
version = "0.18.10";
src = fetchFromGitHub {
owner = "openfaas";
repo = "faas-cli";
rev = finalAttrs.version;
sha256 = "sha256-QiRO7oJk/zjUOWr1giW29/QJY/YiKkLzROB6OxN8kIc=";
sha256 = "sha256-MctMhuaXJpm25VKqlhaAPG2QzSDQ//Ei8B1lRCKdz68=";
};
vendorHash = null;
+3 -11
View File
@@ -1,6 +1,5 @@
{
fetchurl,
fetchpatch,
stdenv,
lib,
gfortran,
@@ -22,24 +21,16 @@ assert lib.elem precision [
stdenv.mkDerivation (finalAttrs: {
pname = "fftw-${precision}";
version = "3.3.10";
version = "3.3.11";
src = fetchurl {
urls = [
"https://fftw.org/fftw-${finalAttrs.version}.tar.gz"
"ftp://ftp.fftw.org/pub/fftw/fftw-${finalAttrs.version}.tar.gz"
];
hash = "sha256-VskyVJhSzdz6/as4ILAgDHdCZ1vpIXnlnmIVs0DiZGc=";
hash = "sha256-VjDCTN6zOxMWEvfrSxqZNCNHVPnziP+GF0WNC+byOaE=";
};
patches = [
(fetchpatch {
name = "remove_missing_FFTW3LibraryDepends.patch";
url = "https://github.com/FFTW/fftw3/pull/338/commits/f69fef7aa546d4477a2a3fd7f13fa8b2f6c54af7.patch";
hash = "sha256-lzX9kAHDMY4A3Td8necXwYLcN6j8Wcegi3A7OIECKeU=";
})
];
outputs = [
"out"
"dev"
@@ -107,6 +98,7 @@ stdenv.mkDerivation (finalAttrs: {
__structuredAttrs = true;
meta = {
changelog = "https://github.com/FFTW/fftw3/blob/fftw-${finalAttrs.version}/NEWS";
description = "Fastest Fourier Transform in the West library";
homepage = "https://www.fftw.org/";
license = lib.licenses.gpl2Plus;
+83
View File
@@ -109,12 +109,18 @@
"com/fasterxml#oss-parent/65": {
"pom": "sha256-2wuaUmqeMDxjuptYSWicYfs4kkf6cjEFS5DgvwC0MR4="
},
"com/fasterxml#oss-parent/70": {
"pom": "sha256-JsqO1vgsnS7XzTIpgQW7ZcD52JnbYXV6CXQVhvqTpjk="
},
"com/fasterxml/jackson#jackson-base/2.18.3": {
"pom": "sha256-1bv9PIRFIw5Ji2CS3oCa/WXPUE0BOTLat7Pf1unzpP0="
},
"com/fasterxml/jackson#jackson-base/2.19.0": {
"pom": "sha256-Noz4ykJkRni737F6sUfJC8QyWaWZUJfD8cT7au9Mdcg="
},
"com/fasterxml/jackson#jackson-base/2.20.1": {
"pom": "sha256-C3SKsMx/KH21tgGMYUz+Z+fh9NgJQc4vQdMXzMO1tcU="
},
"com/fasterxml/jackson#jackson-bom/2.17.1": {
"pom": "sha256-n0RhIo4SkQPu16MC3BABqy5Mgt086pFcKn27jMYe/SU="
},
@@ -124,6 +130,9 @@
"com/fasterxml/jackson#jackson-bom/2.19.0": {
"pom": "sha256-sR/LPvM6wH5oDObYXxfELWoz2waG+6z68OQ0j8Y5cbI="
},
"com/fasterxml/jackson#jackson-bom/2.20.1": {
"pom": "sha256-DGRn7UyMc5JSTOcDymzj7YhZbuw5DxOwwmTy+WEwilQ="
},
"com/fasterxml/jackson#jackson-parent/2.17": {
"pom": "sha256-rubeSpcoOwQOQ/Ta1XXnt0eWzZhNiSdvfsdWc4DIop0="
},
@@ -133,6 +142,9 @@
"com/fasterxml/jackson#jackson-parent/2.19": {
"pom": "sha256-bNk0tNFdfz7hONl7I8y4Biqd5CJX7YelVs7k1NvvWxo="
},
"com/fasterxml/jackson#jackson-parent/2.20": {
"pom": "sha256-tDt/XGLoaxZPrnCuF9aRHF22B5mvAQVzYK/aguSEW+U="
},
"com/fasterxml/jackson/core#jackson-annotations/2.18.3": {
"jar": "sha256-iqV0DYC1pQJVCLQbutuqH7N3ImfGKLLjBoGk9F+LiTE=",
"module": "sha256-RkWF2yH0irFZ6O9XnNfo5tMHoEdhGZZRw+zBf05ydF0=",
@@ -143,6 +155,11 @@
"module": "sha256-HzHOjWv4Trf0q6Hl/gGn7mshk+mw8rv4zENMRUXVGh8=",
"pom": "sha256-MnlOx3WinmcwPfut370Jq/3nKaRPWuJ7Wew8g65vOuA="
},
"com/fasterxml/jackson/core#jackson-annotations/2.20": {
"jar": "sha256-lZov+y1ZFDb1Hxg8alIfyJNHkS9xG/DK4AjN8EXZUxk=",
"module": "sha256-wHDxTsg1jQlcAurootZcsAzLoOXFqnOwASlDM/5GiXE=",
"pom": "sha256-TXQMRHjdCNCJ7NxtBjIopVoRp+jkl9pDOPhy+BFXlKQ="
},
"com/fasterxml/jackson/core#jackson-core/2.18.3": {
"jar": "sha256-BWvE0+XlPOghRQ+pez+eD43eElz22miENTux8JWC4dk=",
"module": "sha256-mDbVp/Iba8VNfybeh8izBd3g5PGEsqyJUOmhsd9Hw0A=",
@@ -153,6 +170,11 @@
"module": "sha256-WT2jX9rflNEYYvfErCjcq52J1bzd2y2jOe7WFXxVbYk=",
"pom": "sha256-zOajQFk4YjqBCJX/b94vBMnDuTegVihx4aY0lr4Pr6s="
},
"com/fasterxml/jackson/core#jackson-core/2.20.1": {
"jar": "sha256-/6tNlX2qJ5bPJMtm0LeKcJDxvL4Xw6RXjwmv+q8TcIk=",
"module": "sha256-GalAQ0Ic2ahuFUkSnDjBjgs1exQUWuT3Ns2gL4Bch8k=",
"pom": "sha256-FuBJqySPgqpssEjwTVLvPuH1TIDaHSY68k++UM9ueX4="
},
"com/fasterxml/jackson/core#jackson-databind/2.18.3": {
"jar": "sha256-UQvdp1p6YYbFvzO4USOUiKFFCQauV1cSHy4cxIp+EI8=",
"module": "sha256-ZCqggPhbIAV3ifrPKsaibhR4NbUDPidSDstpe8RD/Lo=",
@@ -163,6 +185,11 @@
"module": "sha256-Z2HeLgXl0m7GK5R/p1AJEZDz/JnM8iaM3suTz/bfbSo=",
"pom": "sha256-f0zGn9XZuwIW0ULD2Cv/2v64bUelU8KBRbjOcOfreHY="
},
"com/fasterxml/jackson/core#jackson-databind/2.20.1": {
"jar": "sha256-NLvrRSb/9PhWWxIQa/haavy66FiWbUibVCFKxGsuJug=",
"module": "sha256-S1M7Mu5wZfVaSnsNbuTYn9WDdxSr83YUyJkRT7EhWHo=",
"pom": "sha256-vP3yeCUyMraDq1HeLcvI+Y8g9Hc4wRHs/SyFxBsTHOw="
},
"com/fasterxml/jackson/dataformat#jackson-dataformat-yaml/2.18.3": {
"jar": "sha256-PKAOR8/LQ+eUON3PyPxzXp66w4JPt3aROGCb5r1W5IM=",
"module": "sha256-v2AjrStgVyCsbaJ6K16Y7bGjJs0L9jfDpAtiH+jgk80=",
@@ -173,12 +200,20 @@
"module": "sha256-PMYsM/xsilphLhhqrDn6Lagh8wZqt9Dj0O5Jh8moGtw=",
"pom": "sha256-/vTqd2/yMf2s7avll/9DGpXe9Rjk9140ZLwr5HCj23o="
},
"com/fasterxml/jackson/dataformat#jackson-dataformat-yaml/2.20.1": {
"jar": "sha256-Aw8dkfffJ46G4bo+Ep+1IIcawWzlMBfHNfcIgjvpcNs=",
"module": "sha256-At0WoElpdLY7sgrszAK2fpeuQ6Uc5H1JSbyAUiLHQxI=",
"pom": "sha256-JrotoAFsKiNbPccCc5xm3O6xjKBURirhVE2srfnguSU="
},
"com/fasterxml/jackson/dataformat#jackson-dataformats-text/2.18.3": {
"pom": "sha256-VnParMboVZdt7O3rRtxjOVprGsmkg+Zy8IMc9G/gbiU="
},
"com/fasterxml/jackson/dataformat#jackson-dataformats-text/2.19.0": {
"pom": "sha256-wZ0UHUA3aIQ2Rq7KvAMdPPqalqeH2Cfqmj5KDCguUwI="
},
"com/fasterxml/jackson/dataformat#jackson-dataformats-text/2.20.1": {
"pom": "sha256-bIZ3yvUcuerYfbYmiPNR3MxDrPkAqONHcuQQ0TOPaqs="
},
"com/fasterxml/jackson/datatype#jackson-datatype-jsr310/2.19.0": {
"jar": "sha256-Dul78yk2NJ1qTPbYQoUzv0pLWz5+Vf2aTxlQjOBip3U=",
"module": "sha256-cg5M2qz3VPSlMw9EWBBhKPSGf4D7jTB1tavgx6Auam4=",
@@ -312,6 +347,11 @@
"jar": "sha256-dVx5UBq9gG9aqDJX3Iiyylkj5pZfPL/ocxFsfJdoIQo=",
"pom": "sha256-XPoeoCxNwZ0n3Vr8pRPynGerNE0aylU9jxbxW2mOT4U="
},
"com/knuddels#jtokkit/1.1.0": {
"jar": "sha256-FQHOAlmriXxnRsz6+h0gis1AT7F+GsYuFXFy8meLEYM=",
"module": "sha256-QxxAPs80ROw72ZNJIvNpOf1vCClXmpolySdBmSzVjC8=",
"pom": "sha256-cfjoMOMzqx9I5NAy7FSiu4J6Zk+crtGlo8h815W+8eA="
},
"com/moandjiezana/toml#toml4j/0.7.2": {
"jar": "sha256-9UdeY+fonl22IiNImux6Vr0wNUN3IHehfCy1TBnKOiA=",
"pom": "sha256-W3YhZzfy2pODlTrMybpY9uc500Rnh5nm1NCCz24da9M="
@@ -445,6 +485,34 @@
"jar": "sha256-aBm3LpRQ2u5e9WMeq1pHT2BFJo2MZjugKAzQZHMtsgM=",
"pom": "sha256-aNbsZVtGv6PXgOzwYrww3uyoxJTFrptUgJmqMfddj/8="
},
"dev/langchain4j#langchain4j-core/1.10.0": {
"jar": "sha256-mLYaUMXnrQqgAeZzNaQiC5Oxdjb0GJjpJKlITPY6D2A=",
"pom": "sha256-RWtDs6sZ13bd8B5Lo4Ns3PQY+lqMY03D7RIYNfL61Us="
},
"dev/langchain4j#langchain4j-google-ai-gemini/1.10.0": {
"jar": "sha256-vnn3FTdhbL20H9mGx8FCGbxbSjUZinzPILPzCw+oQGM=",
"pom": "sha256-fl3i8dKdWFoKqrcU/7ApPsovnfghcTnsIxeztR2W+Zc="
},
"dev/langchain4j#langchain4j-http-client-jdk/1.10.0": {
"jar": "sha256-UvACwI95ym0tgB5pk+2qi6y80E8j9aWl2kP3LhPzc7Q=",
"pom": "sha256-O157qvYTpQygMo1F/uQECx87iQjmxDMdAQaFrqmWIXQ="
},
"dev/langchain4j#langchain4j-http-client/1.10.0": {
"jar": "sha256-2/8KUpgCqg4B7cpaw/Jge9xKpwMUfQkYYy5WiEys22M=",
"pom": "sha256-6pKR89smKWwyMeIhcnrhJ1PSDZd6rPPgJ5DPZz7iugs="
},
"dev/langchain4j#langchain4j-ollama/1.10.0": {
"jar": "sha256-gdAO/aKXlr/wfOToNukxKs0rY5KM5pl08fW/J+PuB8A=",
"pom": "sha256-DMFtKMuYoTb/lj/9cg5i8gtAaN7KaOQWM11w+U+W61s="
},
"dev/langchain4j#langchain4j-open-ai/1.10.0": {
"jar": "sha256-Gc86eMzldPSmjXH3MOd8miVgxddLqWCCFJ7TtmbEpT4=",
"pom": "sha256-dsuM2N519LnL0ILyPczhPN5lCnRoIJ06mdwOt7ihgg8="
},
"dev/langchain4j#langchain4j/1.10.0": {
"jar": "sha256-FbLb3RdPhOw9IGUgEZhp1cy3RVcO5UB/k8iSYqSrbug=",
"pom": "sha256-Lks6x5I/NCz4wXrmBuYheDDhrjB7Hy9/wBc/JIAmx5E="
},
"info/picocli#picocli/4.7.7": {
"jar": "sha256-+G4w//0Q0rE7jKqNSyN6fuYfL/zPWxlB3nGLdl0jW/g=",
"pom": "sha256-GxjTYxNN9mYx0rn3R1Bo1zQiW6OJzfkIKhvYvakNV9M="
@@ -569,6 +637,9 @@
"org/apache#apache/33": {
"pom": "sha256-14vYUkxfg4ChkKZSVoZimpXf5RLfIRETg6bYwJI6RBU="
},
"org/apache#apache/34": {
"pom": "sha256-NnGunU0GKuO7mFcxx2CIuy9vfXJU4tME7p9pC5dlEyg="
},
"org/apache#apache/7": {
"pom": "sha256-E5fOHbQzrcnyI9vwdJbRM2gUSHUfSuKeWPaOePtLbCU="
},
@@ -891,6 +962,13 @@
"jar": "sha256-RKYMYQ9OMVJLA9gaaYsezOuhFjIOpRC6v4WVdbLqcjM=",
"pom": "sha256-NFZNRisHTeJlC4Vb5yPej1WT5ZDLkTK6402dsd/7W+c="
},
"org/apache/opennlp#opennlp-tools/2.5.4": {
"jar": "sha256-Xv7bJtDpflNweo0vDi4o8F/PZU/OKjP4v+EcLUwqT+k=",
"pom": "sha256-/UVXkW5ld1lWw36M3afZrSvKd4opyY1qXG4xth+D1WA="
},
"org/apache/opennlp#opennlp/2.5.4": {
"pom": "sha256-Qz0Ic+wnz+Gxog6mQ3c6LymkCh/eobtdGCiy81NQwps="
},
"org/apache/pdfbox#fontbox/3.0.3": {
"jar": "sha256-ZWkMPzmwShTRLBf0mYwVGGzod9Pi7CIscIV348wCgDA=",
"pom": "sha256-sik+UDqncEMGEVD4hGg9f2FMz1Fjvi0PBSyinzx2d+I="
@@ -1209,6 +1287,10 @@
"module": "sha256-3nCsXZGlJlbYiQptI7ngTZm5mxoEAlMN7K1xvzGyc14=",
"pom": "sha256-zvgP7IZFT2gGv7DfJGabXG8y4styhTnqhZ9H39ybvBc="
},
"org/junit#junit-bom/5.13.4": {
"module": "sha256-6Vkoj94bGwUNm8CC/HhniRKNpdKFMJFGj8pQQQS99AA=",
"pom": "sha256-16CKmbJQLwu2jNTh+YTwv2kySqogi9D3M2bAP8NUikI="
},
"org/junit#junit-bom/5.9.3": {
"module": "sha256-tAH9JZAeWCpSSqU0PEs54ovFbiSWHBBpvytLv87ka5M=",
"pom": "sha256-TQMpzZ5y8kIOXKFXJMv+b/puX9KIg2FRYnEZD9w0Ltc="
@@ -1366,6 +1448,7 @@
"pom": "sha256-Udh5pZmPWCJ0Dc9VIsDtaXGtXEpeowtw9bVGCT5rQmM="
},
"org/slf4j#slf4j-api/2.0.17": {
"jar": "sha256-e3UdlSBhlU1av+1xgcH2RdM2CRtnmJFZHWMynGIuuDI=",
"pom": "sha256-FQxAKH987NwhuTgMqsmOkoxPM8Aj22s0jfHFrJdwJr8="
},
"org/slf4j#slf4j-api/2.1.0-alpha1": {
+11 -2
View File
@@ -8,11 +8,12 @@
gradle_9,
which,
copyDesktopItems,
fetchpatch,
}:
let
pname = "freeplane";
version = "1.12.16";
version = "1.13.2";
jdk = jdk17;
gradle = gradle_9;
@@ -21,13 +22,21 @@ let
owner = "freeplane";
repo = "freeplane";
rev = "release-${version}";
hash = "sha256-I7vp67UXoiBDxmIOlgCWk6sKOZSWHHI7A2Sdu6cl488=";
hash = "sha256-NDji6psNXESAY5NWI/Ms63MTgbxZHiIxYAgOSkWHuK0=";
};
in
stdenvNoCC.mkDerivation (finalAttrs: {
inherit pname version src;
patches = [
# Gradle 9.5 compatibility. Remove on next version bump.
(fetchpatch {
url = "https://github.com/freeplane/freeplane/commit/34189b58bbdf0027185a212e2d6bd9e289782ef2.patch";
hash = "sha256-gVCKXme+pB7PV0yBoDMPg6ltCaTGYh1lspEKgwVkDgc=";
})
];
nativeBuildInputs = [
makeBinaryWrapper
jdk
+50 -2
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchurl,
fetchpatch,
buildPackages,
pkgsHostHost,
pkg-config,
@@ -39,7 +40,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "freetype";
version = "2.14.2";
version = "2.14.3";
src =
let
@@ -47,7 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
in
fetchurl {
url = "mirror://savannah/freetype/freetype-${version}.tar.xz";
sha256 = "sha256-S2Lcq0ySChqGA2mTMiGBQ2LmmeJvVXklFtZx5v9VteE=";
sha256 = "sha256-NrxPHMQTM1No7mVsQq/KZcWjmH6HaMwozxG6d154Wl8=";
};
propagatedBuildInputs = [
@@ -69,6 +70,53 @@ stdenv.mkDerivation (finalAttrs: {
patches = [
./enable-table-validation.patch
# https://project-zero.issues.chromium.org/issues/505355061
# https://gitlab.freedesktop.org/freetype/freetype/-/work_items/1419
# https://gitlab.freedesktop.org/freetype/freetype/-/work_items/1420
(fetchpatch {
name = "truetype-shz-limit-heap-buffer-overflow-part1.patch";
url = "https://gitlab.freedesktop.org/freetype/freetype/-/commit/1803559c4ee407d0bcbf2a67dbe96690cee869d2.patch";
hash = "sha256-zxtJ2pJz8pNofgYrJ6c8/eZqRvxTotanF2IdU9ckpM4=";
})
(fetchpatch {
name = "truetype-shz-limit-heap-buffer-overflow-part2.patch";
url = "https://gitlab.freedesktop.org/freetype/freetype/-/commit/7d600a022e1d813e85a8c94ffd395f6135872267.patch";
hash = "sha256-aHE11C9Cr23D2lqNmTVUDA5E07xxUm+AcYdWJG9zLFs=";
})
# https://project-zero.issues.chromium.org/issues/505357209
# https://gitlab.freedesktop.org/freetype/freetype/-/work_items/1421
(fetchpatch {
name = "truetype-iup-integer-overflow.patch";
url = "https://gitlab.freedesktop.org/freetype/freetype/-/commit/7974be74d8b5a2fbf99aa88f0461d1f80af51cee.patch";
hash = "sha256-b5Px0ALsnC5K1+601YioAjCLkLVXNnvTIZ1aQtCeNoQ=";
})
# https://project-zero.issues.chromium.org/issues/506902245
# https://gitlab.freedesktop.org/freetype/freetype/-/work_items/1423
# https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests/428
(fetchpatch {
name = "truetype-variation-handling-signednes-mismatch.patch";
url = "https://gitlab.freedesktop.org/freetype/freetype/-/commit/0d45c7f1911bc6db0bf072eea0c8cdccd77bc6b3.patch";
hash = "sha256-bw/9O86sZQa+vwdgx2MTqxWi6vjMcRTyC42ba9CaZ3I=";
})
# prerequisite for the below to apply, since this changes formatting of
# affected code.
(fetchpatch {
name = "ftobjs-formatting.patch";
url = "https://gitlab.freedesktop.org/freetype/freetype/-/commit/590b77014bd920d0bdf64c039fddbce89a288b83.patch";
hash = "sha256-govOzLBzQMAjSKABVFryDnSn2by2f/W9BgGG3o+qSuE=";
})
# https://project-zero.issues.chromium.org/issues/507321912
# https://gitlab.freedesktop.org/freetype/freetype/-/work_items/1425
(fetchpatch {
name = "sub-byte-bitmaps-heap-buffer-over-read.patch";
url = "https://gitlab.freedesktop.org/freetype/freetype/-/commit/cbe12767ea73d1006edc75fcd61c0b0d2a88f34e.patch";
hash = "sha256-jMeqY9uX7Ryfdd8icGDT4kEKl6aGRWafSN8GzOhGW7g=";
})
]
++ lib.optional useEncumberedCode ./enable-subpixel-rendering.patch;
+3 -2
View File
@@ -67,13 +67,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "ghostscript${lib.optionalString x11Support "-with-X"}";
version = "10.07.0";
version = "10.07.1";
src = fetchurl {
url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${
lib.replaceStrings [ "." ] [ "" ] finalAttrs.version
}/ghostscript-${finalAttrs.version}.tar.xz";
hash = "sha256-3azk4XIflnpVA5uv9WSEAiXguqHU9UMiR8oczRRzt8E=";
hash = "sha256-HNt2bejbjx5YnIF/CcWFXqX2XfyFQORlpprBTBhBYCU=";
};
patches = [
@@ -233,6 +233,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
homepage = "https://www.ghostscript.com/";
changelog = "https://ghostscript.readthedocs.io/en/gs${finalAttrs.version}/News.html";
description = "PostScript interpreter (mainline version)";
longDescription = ''
Ghostscript is the name of a set of tools that provides (i) an
+1 -10
View File
@@ -21,7 +21,7 @@ buildGoModule (finalAttrs: {
};
proxyVendor = true;
vendorHash = "sha256-UH/T3eqFy0KrG/ouEzifJeWXXwe5cUPYG7DpIO0GsYc=";
vendorHash = "sha256-iuSu5MvNRt+eCZ9wxUwMo6X0joos7q9WPyXBwhn/0yE=";
nativeBuildInputs = [
nodejs
@@ -42,15 +42,6 @@ buildGoModule (finalAttrs: {
};
postPatch = ''
# required until libheif gets bumped
substituteInPlace ./go.mod \
--replace-fail 'github.com/strukturag/libheif v1.23.0' 'github.com/strukturag/libheif v1.21.2'
substituteInPlace ./go.sum \
--replace-fail 'github.com/strukturag/libheif v1.23.0 h1:G9Fjf/b8dvTgLIk148tUKp7Z7rgu88FC+Mc8o92U98k=' 'github.com/strukturag/libheif v1.21.2 h1:YFD3crf+d33cFVQh3aTkkVGwJFyWpfqVT4XhzHWU6mA=' \
--replace-fail 'github.com/strukturag/libheif v1.23.0/go.mod h1:E/PNRlmVtrtj9j2AvBZlrO4dsBDu6KfwDZn7X1Ce8Ks=' 'github.com/strukturag/libheif v1.21.2/go.mod h1:E/PNRlmVtrtj9j2AvBZlrO4dsBDu6KfwDZn7X1Ce8Ks='
substituteInPlace ./web/build-wasm.sh \
--replace-fail 'go.mau.fi/gomuks/version.Tag=$(git describe --exact-match --tags 2>/dev/null)' "go.mau.fi/gomuks/version.Tag=${finalAttrs.src.tag}" \
--replace-fail 'go.mau.fi/gomuks/version.Commit=$(git rev-parse HEAD)' "go.mau.fi/gomuks/version.Commit=unknown"
+2 -2
View File
@@ -11,13 +11,13 @@
}:
buildGo125Module (finalAttrs: {
pname = "gotosocial";
version = "0.21.2";
version = "0.21.3";
src = fetchFromCodeberg {
owner = "superseriousbusiness";
repo = "gotosocial";
tag = "v${finalAttrs.version}";
hash = "sha256-Z3j5/pXnNTHgBmPEfFgjOJuL03LsPtvAwbuoL9wb5bk=";
hash = "sha256-gemi9t4wTjmCHEXfdXz1X9Q4gcvj/3LMtlrO5UpQ19M=";
};
vendorHash = null;
+1 -2
View File
@@ -48,8 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-dOKBl5W2r/QxrqyYPWOpyJaO6roqLrp9+LpMe0Hnz9g=";
};
patches = lib.optionals stdenv.isLinux [
# TODO: apply everywhere on rebuild
patches = [
# This revert a upstream refactor in continuous rendering mode, but this
# causes a big performance regression for big manpages like
# `man 5 configuration.nix`.
+7 -5
View File
@@ -95,11 +95,13 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-Ub2fYMfSOmZaVWxzZMIfsuTiglZrPn4JJFXo+RAzCJM=";
};
patches = lib.optional stdenv.hostPlatform.is32bit (fetchpatch {
name = "fix-32bit-VkImage-null.patch";
url = "https://gitlab.gnome.org/GNOME/gtk/-/commit/10d43de8f4f942cb591ada3103474bd7213425f1.patch";
hash = "sha256-DJIL6M3XcsjBoMO77OxNi84d1DxAphAfot3N7Nq1QqQ=";
});
patches = [
(fetchpatch {
name = "fix-32bit-VkImage-null.patch";
url = "https://gitlab.gnome.org/GNOME/gtk/-/commit/10d43de8f4f942cb591ada3103474bd7213425f1.patch";
hash = "sha256-DJIL6M3XcsjBoMO77OxNi84d1DxAphAfot3N7Nq1QqQ=";
})
];
depsBuildBuild = [
pkg-config
+3 -3
View File
@@ -50,13 +50,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "hmcl";
version = "3.15.1";
version = "3.15.2";
src = fetchurl {
# HMCL has built-in keys, such as the Microsoft OAuth secret and the CurseForge API key.
# See https://github.com/HMCL-dev/HMCL/blob/refs/tags/release-3.6.12/.github/workflows/gradle.yml#L26-L28
url = "https://github.com/HMCL-dev/HMCL/releases/download/v${finalAttrs.version}/HMCL-${finalAttrs.version}.jar";
hash = "sha256-Uv6w3XEySoqsKCmZVmiDkGfmeretHfvpwFmYMJz0mv4=";
hash = "sha256-rT+RruLMz/DTlYSOMv4D6ZCOVt36iqyx42v8ea4XSdM=";
};
# - HMCL prompts users to download prebuilt Terracotta binary for
@@ -71,7 +71,7 @@ stdenv.mkDerivation (finalAttrs: {
terracottaBundleJava = fetchurl {
name = "hmcl-terracotta-bundle-java-${finalAttrs.version}";
url = "https://raw.githubusercontent.com/HMCL-dev/HMCL/v${finalAttrs.version}/${finalAttrs.terracottaBundleJavaPath}";
hash = "sha256-05U4/TUYECPgrzZbLiSPUwo5XtIm2w+T8gCdtqpsRVs=";
hash = "sha256-1o/CUDeywtDlhAxqInk77aUwGCCYeZ84VMIyouN49uU=";
};
macOSProviderJava = fetchurl {
name = "hmcl-macos-provider-java-${finalAttrs.version}";
+2 -2
View File
@@ -89,13 +89,13 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "imagemagick";
version = "7.1.2-23";
version = "7.1.2-24";
src = fetchFromGitHub {
owner = "ImageMagick";
repo = "ImageMagick";
tag = finalAttrs.version;
hash = "sha256-zYk75q+EyWq5g/AHFU6v8a7gye0aDAEe/ZZvjqR9ZTc=";
hash = "sha256-oSH0dsQ3cuFNYJIIr6LHbv82FbFxxcmkjQ5csTNsYCA=";
};
outputs = [
+2 -2
View File
@@ -21,13 +21,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "ispc";
version = "1.30.0";
version = "1.31.0";
src = fetchFromGitHub {
owner = "ispc";
repo = "ispc";
tag = "v${finalAttrs.version}";
hash = "sha256-CzyK38c8fCG7QiVHE0rSzxmyTXNr4sg1WtChbi75Wmw=";
hash = "sha256-n1zWokIuZEDJZN/KH3jxnIhgUo8iKDfZwiQnXZdxhL8=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -7,15 +7,15 @@
buildGoModule (finalAttrs: {
pname = "istioctl";
version = "1.30.1";
version = "1.30.2";
src = fetchFromGitHub {
owner = "istio";
repo = "istio";
rev = finalAttrs.version;
hash = "sha256-jW0L/86D0YgAoUYAZfwHMGes5x0P5QLelP79XuG3riU=";
hash = "sha256-Ejt6MjBmkWnYWHp9TiWYO6e1VV/+TN6cVZXYK3+B5Fc=";
};
vendorHash = "sha256-dOPrYZxOeP1ZahSaPS6U6tJDbTx/5BbwHFcNKS+2Lqc=";
vendorHash = "sha256-cHW8FSYuZpl1GuWKsJLnAxCMOLvuaRwN1oL+xjwYspI=";
nativeBuildInputs = [ installShellFiles ];
+23 -9
View File
@@ -868,9 +868,9 @@
"jar": "sha256-MnesECrheq0QpVq+x1/1aWyNEJeQOWQ0tJbnUIeFQgM=",
"pom": "sha256-V5BVJCdKAK4CiqzMJyg/a8WSWpNKBGwcxdBsjuTW1ak="
},
"org/jetbrains/kotlin#kotlin-reflect/2.3.0": {
"jar": "sha256-cU30voGVRf9N4fNqohg+DeqUtMjN98op6ciZGbrzY2I=",
"pom": "sha256-89F2jvL7UxBIPb6R4w6fo2x7Pi/e5pRaCLujEBQtKcE="
"org/jetbrains/kotlin#kotlin-reflect/2.3.20": {
"jar": "sha256-40b6PD/0RR9fcHoxKIf9TIVV2kjMFfqdsrqTwz+J+BM=",
"pom": "sha256-iwC9L+srtVON85aVQXTZ3cDsVA00ElhjA1ObHpZVwzM="
},
"org/jetbrains/kotlin#kotlin-sam-with-receiver-compiler-plugin-embeddable/2.2.21": {
"jar": "sha256-yweF5qeHDS9eqW9kcCDigS3snXAjAzMZu9sc5+XmVUg=",
@@ -924,10 +924,10 @@
"module": "sha256-v7xlfd06jjfkyK1BeWjV6wsLFxyfzkj5YsKtMu5DTCE=",
"pom": "sha256-zzH5IxlsY67ezQpXwkJpvTcCpOR8C/C9ZLWtpd5SInI="
},
"org/jetbrains/kotlin#kotlin-stdlib/2.3.0": {
"jar": "sha256-iHWHyRcTJQrVL+FK2RZtBCwzg1BJiQ6UN/NV/8WhlbE=",
"module": "sha256-CRCoo7aWD8eSxFxWqR18Oj8mKG8DKVVUtRnP83h1baI=",
"pom": "sha256-TVJW0+SETmVrDKQF9jUNbyF5XCQ3WzRSUmxUZ92ZtaI="
"org/jetbrains/kotlin#kotlin-stdlib/2.3.20": {
"jar": "sha256-CuElBKUEDrrzdwOQhINCDRpWJN0dk/NXZl+Md8hIoB4=",
"module": "sha256-9Os0T8TR46KK4WwIbsPkL1I3O0ZtQwgYL7OG45LA76M=",
"pom": "sha256-yDwC2afi6VRzBJHDPC8dwDwnZi4ntWbsK0TS0Bhjm5g="
},
"org/jetbrains/kotlin#kotlin-tooling-core/2.2.21": {
"jar": "sha256-dAFOxPPveM59p+Pmlk8sUmoxIdXFj++MopeeXzRFgvQ=",
@@ -1319,15 +1319,22 @@
"com/google/code/gson#gson-parent/2.13.2": {
"pom": "sha256-g6tSip1Q/XauuK1vcns+6ct2ZYYlV3TtFsqMTHbZ2s0="
},
"com/google/code/gson#gson-parent/2.14.0": {
"pom": "sha256-grD2aUxXWKuLsH4FYwII1Q9YnUteBP0KBG1Zzfe6PR0="
},
"com/google/code/gson#gson/2.13.2": {
"jar": "sha256-3QzhtVo+0ggMtw+cZVhQzahsIGhiMQAJ3LXlyVJlpeA=",
"pom": "sha256-OqBqp8D5rwkpYaQtCVeOQyS+FGNIoO5u1HhX98Jne3Y="
},
"com/google/code/gson#gson/2.14.0": {
"jar": "sha256-LL0Rm/GWHCh4gxCWPcgLpl9Yze7B3ROci9sSQPqiw28=",
"pom": "sha256-H6ASLA43MxkmQoYcNr5Mb3maeVMnojvdKSJpG26bpIA="
},
"com/google/code/gson/gson/maven-metadata": {
"xml": {
"groupId": "com.google.code.gson",
"lastUpdated": "20250910210152",
"release": "2.13.2"
"lastUpdated": "20260423191314",
"release": "2.14.0"
}
},
"com/google/errorprone#error_prone_annotation/2.44.0": {
@@ -1350,6 +1357,10 @@
"jar": "sha256-vPc4pSXlRskmojPQoWnPfq/PcD/oGsnWmU9yRO2ikFI=",
"pom": "sha256-fmGVkFEuhKKOAjWK3qvn3kureQr2FOhAtAQTlRbeFlc="
},
"com/google/errorprone#error_prone_annotations/2.48.0": {
"jar": "sha256-tJxclYMW7WegnGmd2pqnScr0NNUdhj3qWZ7zakm5yFU=",
"pom": "sha256-GJ4JrQSJwyXpDaqp1cj0BjMGAvo2Zgm8oHy82tA6udo="
},
"com/google/errorprone#error_prone_check_api/2.44.0": {
"jar": "sha256-rFRNsezoAFm1NJU93Ipa/PZUfCCrnBtQC5kHGQOQDL8=",
"pom": "sha256-Nl9VFHNSFSwr9syl+uNdspsxDqR4A/neWuRL/k1d+jo="
@@ -1370,6 +1381,9 @@
"com/google/errorprone#error_prone_parent/2.44.0": {
"pom": "sha256-9v3+0f+Ubr0B9HgCSux5CBz16XbMDY6MmL+GMXOxY10="
},
"com/google/errorprone#error_prone_parent/2.48.0": {
"pom": "sha256-sz+opFyfF5SlAIwLLYOoTrKLXQEXptFW8AP58JvnQQ8="
},
"com/google/googlejavaformat#google-java-format-parent/1.27.0": {
"pom": "sha256-rOuKJTTBnTBcBY8iq0ffOaDhm3QIWx5MWwfTukXYQlA="
},
+1 -1
View File
@@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
enableParallelBuilding = true;
passthru.tests.keepalived = nixosTests.keepalived;
passthru.tests = nixosTests.keepalived;
nativeBuildInputs = [
pkg-config
+143 -139
View File
@@ -1114,13 +1114,13 @@
"nl/littlerobots/version-catalog-update#nl.littlerobots.version-catalog-update.gradle.plugin/1.0.1": {
"pom": "sha256-BBNTyo5k8a+g5bFPXj+6PWRwIoFPPnomKwrgReqv2EA="
},
"org/gradle/kotlin#gradle-kotlin-dsl-plugins/6.5.2": {
"jar": "sha256-O/9KBwDhyBXRlEifB7ugbLGQ6PKbdz03z+43rI1cdkQ=",
"module": "sha256-MVnFQXhFqWmTx4nULexDVwf7uEiXnP0R0LgzBZ5RIKM=",
"pom": "sha256-ctVO1m6jP6+UKCNRwxAZ4S59fpIOpnpRbL4ODWdBA0M="
"org/gradle/kotlin#gradle-kotlin-dsl-plugins/6.5.7": {
"jar": "sha256-zIyqQQGjXQzwQzpj6K04kRpMhIBz/MlPQ64CUfM+Ta8=",
"module": "sha256-ENa9ZquwiOylvjYP9yVQyWFU0mdu/t10rzHEUAF8OQk=",
"pom": "sha256-q+nzlg+nNZciqHUuYb/ElnYeFdFHNeTGQiB5cHYGq74="
},
"org/gradle/kotlin/kotlin-dsl#org.gradle.kotlin.kotlin-dsl.gradle.plugin/6.5.2": {
"pom": "sha256-5aavF7WFYNdGyrQseV/jpCoevkBQ5VpPANjPVM8x8eo="
"org/gradle/kotlin/kotlin-dsl#org.gradle.kotlin.kotlin-dsl.gradle.plugin/6.5.7": {
"pom": "sha256-Ldg2zAlxLNrd/u/GgNLqZutD2NxjOGvVlSZYE0l/Ry0="
},
"org/gradle/toolchains#foojay-resolver/1.0.0": {
"jar": "sha256-eLhqR9/fdpfJvRXaeJg/2A2nJH1uAvwQa98H4DiLYKg=",
@@ -1137,106 +1137,106 @@
"org/jetbrains/compose#org.jetbrains.compose.gradle.plugin/1.11.0-alpha02": {
"pom": "sha256-MU2vfNXg5KBkAF+cfuVA2xRoE9ywWMiBM4tHjynNKLw="
},
"org/jetbrains/kotlin#abi-tools-api/2.3.0": {
"jar": "sha256-QBe8wfXTKFsX5rYiDRakaMhxWTDw35Y5bXZLV/Cm02U=",
"pom": "sha256-qJIhRAlxhudUjXFH3I3O1eYOMGnUY1ulUe8uV3WrmAk="
"org/jetbrains/kotlin#abi-tools-api/2.3.20": {
"jar": "sha256-U2hfV4OwSQaDiY11Wrrk1Bi26DugYTSFiv3ctZRYmek=",
"pom": "sha256-qIbJ/X8rlmlFf+wCHxnc8V8EY+DbS9rVOuGBJTZsxvk="
},
"org/jetbrains/kotlin#fus-statistics-gradle-plugin/2.3.0": {
"module": "sha256-d8IDSG/XkrWAVyBp5cRC0YDA7wVbpzRQXaKNGX7BL/c=",
"pom": "sha256-k8/rFUWRw3AengQ1C9AF0ZVqmuZHFH1vsqfFeD4fkJo="
"org/jetbrains/kotlin#fus-statistics-gradle-plugin/2.3.20": {
"module": "sha256-bNjWSw5lN3kE8wb2qFja/ZMcQTUkD4RMk9UpTumP6Dk=",
"pom": "sha256-SgpFTor25QOv5ngwoYVjubaA3u67GhcGoNe0S8UHQKE="
},
"org/jetbrains/kotlin#fus-statistics-gradle-plugin/2.3.0/gradle813": {
"jar": "sha256-D+cv3G5RvisnSw5kuEQB9SUDavsgYWKkRYIU8R6614c="
"org/jetbrains/kotlin#fus-statistics-gradle-plugin/2.3.20/gradle813": {
"jar": "sha256-pPEKPw6l3dH1VaT3BuCep/VSs8hSK7EAY2HdMG4152o="
},
"org/jetbrains/kotlin#kotlin-assignment/2.3.0": {
"module": "sha256-ljRPGdjxnqpbxEHjP2UB9+c9o8el1X1EvHwW6qRXVls=",
"pom": "sha256-GqwiGC0snJVP/8FrV2Xq0jjiAw9HhIctRrxfOcozll0="
"org/jetbrains/kotlin#kotlin-assignment/2.3.20": {
"module": "sha256-GCp0ZM5mvM/ejjG+aPoO7DE8HZDD2POWeclyJyliFjg=",
"pom": "sha256-f3R8uTA9Hfqh1hJfZsFUG+o4PsuZh2ta28riSAVZZ48="
},
"org/jetbrains/kotlin#kotlin-assignment/2.3.0/gradle813": {
"jar": "sha256-PKIayHkWchdbgnPemV8CTzWZLfAwCijCdUnPd3DMnOY="
"org/jetbrains/kotlin#kotlin-assignment/2.3.20/gradle813": {
"jar": "sha256-tYin5gfij7WAIo4SDdX/+L6nO9J3JnM6F35kRYLooB0="
},
"org/jetbrains/kotlin#kotlin-build-statistics/2.3.0": {
"jar": "sha256-Z3hVlwDnLXZOniTZWPFuwMx152t1s4FMK83hRKYnT04=",
"pom": "sha256-QTkKXrIxFJOxpFubOXLDoL8dqEfoRaNKtoQKr0EmTeI="
"org/jetbrains/kotlin#kotlin-build-statistics/2.3.20": {
"jar": "sha256-ptJ7PINhdlLdBlYG+Yz1nPviY/jCDr5OvVpvJonrDU8=",
"pom": "sha256-nQqNf/FyPV1y00ldVVc9jTxrd3TWHYBXlxT3nCQmX48="
},
"org/jetbrains/kotlin#kotlin-build-tools-api/2.3.0": {
"jar": "sha256-xsCc8oU0VySfcHyGOCESQJ1aVfULa4Vouk9TDdAD/tw=",
"pom": "sha256-FzTIvg4nFXJ3AkW01gbOW7iBbosNHA9+euEcEMLKF1s="
"org/jetbrains/kotlin#kotlin-build-tools-api/2.3.20": {
"jar": "sha256-IvGrIjhUuUkJn2slnO9UHVtYo2Q9+aScRXfGPEFuhDs=",
"pom": "sha256-G14LLDaQXcL1XgpLeBKuY+MSXe/PaG0sD0kPg7c9nV4="
},
"org/jetbrains/kotlin#kotlin-compiler-runner/2.3.0": {
"jar": "sha256-hwl38pYFQ2xesiV7nI5dZPMoLyqI7e5FRNNOxF8Wpqc=",
"pom": "sha256-ov8zZnin9TpEOSv8bFK2gS7dxz5AghyQfyomQWeeDrs="
"org/jetbrains/kotlin#kotlin-compiler-runner/2.3.20": {
"jar": "sha256-wGnzCkA75wyBUviqnyXsy6GI7q1UJjrgKvFEIUN6Igg=",
"pom": "sha256-jYTqDt1gs4vOpWLeUXgVKiZxqaAFPWcPkxRSs9sBMig="
},
"org/jetbrains/kotlin#kotlin-daemon-client/2.3.0": {
"jar": "sha256-sr5naIyvEaE41a4M4SNTga2asN25OVqwb42EagtGYBc=",
"pom": "sha256-teLnTuXC+I/Qi/g+7GRx9rvKeqEhWYgCtsMsVuhwYCY="
"org/jetbrains/kotlin#kotlin-daemon-client/2.3.20": {
"jar": "sha256-xxp8G+j7/wTgr0XJ7oy3ph2JU7ymuL8iWlcZxyWpC0Q=",
"pom": "sha256-nnyLgHJBF/cqrOZfa+SNg224/Dl1OtlR8ruQhi1+cIA="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-annotations/2.3.0": {
"jar": "sha256-/HKYw2tF820WUscDuraT9f6bEVmOzZrH7J/f6IptsPA=",
"pom": "sha256-aQhDRFhvUkNNH7tRZmlgr/uHbGQ+gIYkXrgLpeREm7U="
"org/jetbrains/kotlin#kotlin-gradle-plugin-annotations/2.3.20": {
"jar": "sha256-4WYu10cyK2P2HU+t2Zq3gQTEXq8JwRp4mGJBXoHBjcQ=",
"pom": "sha256-aP+Cf8E1DZPw1nM2jAZHm2K31eXDBlipWM+TBmgx6Nk="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/2.3.0": {
"module": "sha256-BQ8eECIJAOR6MIkd1c/qg3pl27sNmjyxuFKRq6MmykE=",
"pom": "sha256-GeTwq/tcvwEdJZP1ZRV8jr9FkvMAhhS6LtsEinhRF10="
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/2.3.20": {
"module": "sha256-04UBEP9ajrcP7S1Xi0X7B+vESvaika5M88eUMMZRKLo=",
"pom": "sha256-AdVSITSRyFPVb4frdIEwON+e4dhekIaqN70GY7JJb4g="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/2.3.0/gradle813": {
"jar": "sha256-yh6tFJqMj0G6YKg5qDsjw6BiJ8RsYhJMUb6ZkDXerDE="
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/2.3.20/gradle813": {
"jar": "sha256-ybwX32m/OZB8WXweGb7EtHnHWqx1+/1jIeNEW0lxLog="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea-proto/2.3.0": {
"jar": "sha256-epBQPJ14f5vNLBd25MxSfrneeRLvecbJWPEwWi0cQ7o=",
"pom": "sha256-2bCOHuM4pjRhSanQIY+FHuPUfYu3fWEDJg8qhyauUl4="
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea-proto/2.3.20": {
"jar": "sha256-5Cicv5/0lAfwQd3GM24bV3pspM8r4dKjEzgnHBPu0+0=",
"pom": "sha256-9veHObqf4nEunwyeW8T16TcZzP6pW0fC9JslC+F2NX4="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea/2.3.0": {
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea/2.3.20": {
"jar": "sha256-lS5zlI4qINOYwmuHprtwzPZkGPuvFSfDUVsYjqnUvWA=",
"module": "sha256-kRUvrqO8DJTbZtPLWKrh2+rXyGC1dk5nsgC01N9M6rk=",
"pom": "sha256-BLSVrgZj7a3aSEBkZKzTlDGjysez6OjAlLdplu1BSaA="
"module": "sha256-b7XZcwCl5Vmv1Nn/msA1bE2Wb31pS2Yvrhaf2HQhUx4=",
"pom": "sha256-WROHIVGNgqND99wvCRK3BJjT7vM2PJ66wiCssPyTjsw="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin/2.3.0": {
"module": "sha256-vbMts6ongF80eewDPsY9PMq+sTuInYbavadCu+9TwJo=",
"pom": "sha256-h4cnvyGoOtrYnU5giEhN2/OfaoSpQoAiGm4cL4hBMD4="
"org/jetbrains/kotlin#kotlin-gradle-plugin/2.3.20": {
"module": "sha256-lVUmc7gbNXitmy86/xRUtjzoBsb9SrfGBJIx6GQKtHE=",
"pom": "sha256-EcMjwt2KgE6fWOBHwsAYZLKgHcDYEys2PApDEiFbwJs="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin/2.3.0/gradle813": {
"jar": "sha256-Os+X1zolgbAyhz+on1Z1DTazt21A1pLZg58kZ92uTWk="
"org/jetbrains/kotlin#kotlin-gradle-plugin/2.3.20/gradle813": {
"jar": "sha256-RuFu4mWU9ID+y5LJbarjdTDoNQJreON+8yUelX8D9vs="
},
"org/jetbrains/kotlin#kotlin-gradle-plugins-bom/2.3.0": {
"module": "sha256-/9anNzSypS+3Yz8WOVRL43HgYpxR2X+h5fteqTQ6Fwk=",
"pom": "sha256-cYYJKmnzaIQyxcCsuQtKZx/Y7oANhP5YT66P1TO6v4o="
"org/jetbrains/kotlin#kotlin-gradle-plugins-bom/2.3.20": {
"module": "sha256-+CvXZF0MPv609PZVIKPGWz6MMCsIMyIDegABuHsC6ZA=",
"pom": "sha256-3WuRkZfhMv5x3axw9vxdj65/Und6/YN7FN6HG4wKVAA="
},
"org/jetbrains/kotlin#kotlin-klib-commonizer-api/2.3.0": {
"jar": "sha256-m6V9kaveq5rNWIoUtfQiCbmWRMU0Ft/56X7LS/l/Ukg=",
"pom": "sha256-zTHw7NqCplEi/8alXehxE5S2GEtRRAK34RkZGqgJGoI="
"org/jetbrains/kotlin#kotlin-klib-commonizer-api/2.3.20": {
"jar": "sha256-vpN3SFQS0A8B54KZyzC+SAJZHCcwNCtuva/AiU91J0M=",
"pom": "sha256-IbFbpb1i0h1Ta7egyMtnQ1cfwPQwklSKQjWybyodIgs="
},
"org/jetbrains/kotlin#kotlin-native-utils/2.3.0": {
"jar": "sha256-7kvygz0Q5fN90haoMSn1nzx8vvXrrBMPcGZIOXCMgLc=",
"pom": "sha256-Rp6PYB/b34kP+ozXSOEQcCqkUxu7KbZOXnUD8O/lDZA="
"org/jetbrains/kotlin#kotlin-native-utils/2.3.20": {
"jar": "sha256-QxnCdkeV773/K3julUVRV9evC5FVaYuqG6Uqar46vy0=",
"pom": "sha256-LAp+ADViCIXUN+fxJidEdbpYqiJC+1279D+R8gyvpwg="
},
"org/jetbrains/kotlin#kotlin-sam-with-receiver/2.3.0": {
"module": "sha256-DCD2gdNvSnmRYiFYCYkpF5TmVlgvlJwGed+kNKAm9so=",
"pom": "sha256-DILmEXpGNhvUzF5iZV8rgC8Q9LfZJWpjaD0DSv0MDUM="
"org/jetbrains/kotlin#kotlin-sam-with-receiver/2.3.20": {
"module": "sha256-nhEhx/ZQMDvdx/BH/tMCf4FjuzZ1Gy3w+vNjfumFsh8=",
"pom": "sha256-Y/Gk4+TT3jrPghTwWgtW/5IM4L9ZYVSnkE8gVuP41RE="
},
"org/jetbrains/kotlin#kotlin-sam-with-receiver/2.3.0/gradle813": {
"jar": "sha256-r8iTlKUrUu8Lp6gpakJi0NOoo850CRXYfXE7CgFhMpg="
"org/jetbrains/kotlin#kotlin-sam-with-receiver/2.3.20/gradle813": {
"jar": "sha256-oHxdPMvaP8dWTkB0RybhNz5UvSXwVGPT9D1DnXeOy90="
},
"org/jetbrains/kotlin#kotlin-stdlib/2.3.0": {
"jar": "sha256-iHWHyRcTJQrVL+FK2RZtBCwzg1BJiQ6UN/NV/8WhlbE=",
"module": "sha256-CRCoo7aWD8eSxFxWqR18Oj8mKG8DKVVUtRnP83h1baI=",
"pom": "sha256-TVJW0+SETmVrDKQF9jUNbyF5XCQ3WzRSUmxUZ92ZtaI="
"org/jetbrains/kotlin#kotlin-stdlib/2.3.20": {
"jar": "sha256-CuElBKUEDrrzdwOQhINCDRpWJN0dk/NXZl+Md8hIoB4=",
"module": "sha256-9Os0T8TR46KK4WwIbsPkL1I3O0ZtQwgYL7OG45LA76M=",
"pom": "sha256-yDwC2afi6VRzBJHDPC8dwDwnZi4ntWbsK0TS0Bhjm5g="
},
"org/jetbrains/kotlin#kotlin-tooling-core/2.3.0": {
"org/jetbrains/kotlin#kotlin-tooling-core/2.3.20": {
"jar": "sha256-NnFCeBKZvA+RIMHe7A5ik0oa+ep/AaqpxaU1TcXY19k=",
"pom": "sha256-tQ6FtLEYwSIjge0c67K6lqfeLdrtti3aZ9SuBqGiXTc="
"pom": "sha256-R+Ou/SS1vmLYB7bLzXnFW4P5S1XP4Y79xuM84RvxkOQ="
},
"org/jetbrains/kotlin#kotlin-util-io/2.3.0": {
"jar": "sha256-HJEgPyfnO5aI3f4aiAIyjTXrcPpV9eE96ttyHnj5KqQ=",
"pom": "sha256-hvmuNH2YfMwY2aEJ7tLlVDvjj/SMgdUtKMf6HyBarK8="
"org/jetbrains/kotlin#kotlin-util-io/2.3.20": {
"jar": "sha256-DnbnRx6RxT6mjS0k7x8p+1kqxfuw0dEPqpFkMO/z2so=",
"pom": "sha256-lcKKgo/B8eWeZWOCR6ZPdm2B2LWfbY3r7y0YoMwyH4k="
},
"org/jetbrains/kotlin#kotlin-util-klib-metadata/2.3.0": {
"jar": "sha256-JZjCbDTMXGnrAEc0Y+lQrmfpuAln9DoBg8Vn7eZqlxc=",
"pom": "sha256-4EB9YmkdWjQWFh/YNztNt0o714bxtILghGGXUQL58+s="
"org/jetbrains/kotlin#kotlin-util-klib-metadata/2.3.20": {
"jar": "sha256-qJlOC8poRt+xn0WMTMFdexN3nKGw2fNIgLX/LCorc7M=",
"pom": "sha256-jxApEHGu+rvY5m/5r3dDojiB1pxqryjhNhbMDpW9F7c="
},
"org/jetbrains/kotlin#kotlin-util-klib/2.3.0": {
"jar": "sha256-ZLugCZZqAoGG2e5waw3ID+phwK5usXJe0dfXDvIrUuE=",
"pom": "sha256-lzWjPLZJg7qg0S3AyOGTSw5VLmvMh2chrFWKmCKFC/4="
"org/jetbrains/kotlin#kotlin-util-klib/2.3.20": {
"jar": "sha256-lWK407egS+uisUwFZx5xOFnqVLvAohB+ZbK88nP6hEg=",
"pom": "sha256-WlhMPMK6O0HR5c1+eiCDV2wbjDl6ebuBY2dtjvew6hc="
},
"org/jetbrains/kotlin/android#org.jetbrains.kotlin.android.gradle.plugin/2.3.10-RC": {
"pom": "sha256-p0/yoS/KLjABAqN1+7/O9sT75OaoBfyxZCxyZiIt5gw="
@@ -3117,9 +3117,9 @@
"org/jetbrains/kotlin#fus-statistics-gradle-plugin/2.3.10-RC/gradle813": {
"jar": "sha256-lW/RrbQXK6I9hwM12BUayFL2/DmqyAMfRptDoBNoLBg="
},
"org/jetbrains/kotlin#kotlin-assignment-compiler-plugin-embeddable/2.3.0": {
"jar": "sha256-1D+qszfzaY6NrOZSXSzXwq66ewNZOEhYZBZP5wLnM70=",
"pom": "sha256-UttpIUdRA18/LYUvJDCC5x566wenFs2eCHskuYJ6Uio="
"org/jetbrains/kotlin#kotlin-assignment-compiler-plugin-embeddable/2.3.20": {
"jar": "sha256-EjVTkgnMVtLi7G+XeYaHiHK3Cgh4H2Sv/0Ubwfe9VrE=",
"pom": "sha256-m9zHQ84iL4oxnuYJe2Cq7unmvqe1vzKXYVp1tLpsFDM="
},
"org/jetbrains/kotlin#kotlin-bom/2.0.21": {
"pom": "sha256-1Ufg3iVCLZY+IsepRPO13pQ8akmClbUtv/49KJXNm+g="
@@ -3128,66 +3128,70 @@
"jar": "sha256-QcD+zb7B4vUdXG96lyzMaSIVNhpXSU5rI+4xOeKyIpQ=",
"pom": "sha256-jbIqNqSFRiw9BdaOnnPwHqeDlovPlTeZWN8/zGeaSlQ="
},
"org/jetbrains/kotlin#kotlin-build-tools-api/2.3.0": {
"jar": "sha256-xsCc8oU0VySfcHyGOCESQJ1aVfULa4Vouk9TDdAD/tw=",
"pom": "sha256-FzTIvg4nFXJ3AkW01gbOW7iBbosNHA9+euEcEMLKF1s="
},
"org/jetbrains/kotlin#kotlin-build-tools-api/2.3.10-RC": {
"jar": "sha256-PaKI6nHlhcPNzNdz0cDdZ/+sGrxx77cWNp5+tma1pwM=",
"pom": "sha256-ZOHGPrbAdBbxcC3/ltSXayhERBNbsEN9rM47bWrmAFY="
},
"org/jetbrains/kotlin#kotlin-build-tools-compat/2.3.0": {
"jar": "sha256-AJST4crwTIKF8f7RV7uraINV2wTS3q7E9aD5tjX4ZuU=",
"pom": "sha256-ayMWTiKBY/1j+Bf7LF3ifW6cNAO3Y8y6BoBYTyF/jjI="
"org/jetbrains/kotlin#kotlin-build-tools-api/2.3.20": {
"jar": "sha256-IvGrIjhUuUkJn2slnO9UHVtYo2Q9+aScRXfGPEFuhDs=",
"pom": "sha256-G14LLDaQXcL1XgpLeBKuY+MSXe/PaG0sD0kPg7c9nV4="
},
"org/jetbrains/kotlin#kotlin-build-tools-compat/2.3.10-RC": {
"jar": "sha256-Cy5M/Ny64fh/Or9QicVqgwpMF5cLKOgktamabo2JFFQ=",
"pom": "sha256-wK1VOiQf6+HyYJcUPjMiRmO2REG6/XY/6Vm2Ae5mbwI="
},
"org/jetbrains/kotlin#kotlin-build-tools-impl/2.3.0": {
"jar": "sha256-k6Xo/7EACAHIMqhisjvZdm9ETm9sGFwysftXh3+1zqM=",
"pom": "sha256-AKelPNgr5ws234oCI6Wrhhoqb/txnZt3M3XId8idugQ="
"org/jetbrains/kotlin#kotlin-build-tools-compat/2.3.20": {
"jar": "sha256-RMMHtO3UysUflgqBNBEtZkyTB2cAzaXoZulNmkKWNA4=",
"pom": "sha256-rpC+JesEdhCNlo6+Mqjd9SXhQIhYj6BUc9sSgVoPG3Q="
},
"org/jetbrains/kotlin#kotlin-build-tools-cri-impl/2.3.20": {
"jar": "sha256-VOztYw8oEkzP4uRk5srMKB5SiopQqJclchVUyWk1SP4=",
"pom": "sha256-5zeMZYHvXw4stA46TOxR0rlj5iVkWpK2fqCVJa+XxMM="
},
"org/jetbrains/kotlin#kotlin-build-tools-impl/2.3.10-RC": {
"jar": "sha256-9n02tA24gnd7Bseg/hO/aGAnu6wlxfblGNJzZWwhZrY=",
"pom": "sha256-CMsXeW8qAa5vfqppz/F7bVzsr/tHxKBSpQWdiCJDC8w="
},
"org/jetbrains/kotlin#kotlin-compiler-embeddable/2.3.0": {
"jar": "sha256-jb2IL6WMPRfmg6JzkCiDFfi0kPjj47G+TcPigNN+KFo=",
"pom": "sha256-zOmxEfIRZgxcRTk+dI30aVC2HAEUfgdzttxxnui7d6g="
"org/jetbrains/kotlin#kotlin-build-tools-impl/2.3.20": {
"jar": "sha256-loG8IWSovZ9t30wIXPSoNrktJ1BmZ9c7q59thVM2yRA=",
"pom": "sha256-gswavl5j0/5nV+eXKE8F25r9fq3D6D0ROcOlW2TUstU="
},
"org/jetbrains/kotlin#kotlin-compiler-embeddable/2.3.10-RC": {
"jar": "sha256-r6+klWvxvWJX9wLPm5oonqviny9TDCM7pPgZptfno6I=",
"pom": "sha256-UyU8WscTHsSThFu1RsTY+79bu5WEF8KUBlFnLcmmKWA="
},
"org/jetbrains/kotlin#kotlin-compiler-runner/2.3.0": {
"jar": "sha256-hwl38pYFQ2xesiV7nI5dZPMoLyqI7e5FRNNOxF8Wpqc=",
"pom": "sha256-ov8zZnin9TpEOSv8bFK2gS7dxz5AghyQfyomQWeeDrs="
"org/jetbrains/kotlin#kotlin-compiler-embeddable/2.3.20": {
"jar": "sha256-l2+YnQtfXYDo6KitS3PaC/wn/dllufo4Nisr557MEzc=",
"pom": "sha256-DDWu7jcvB1FOvtN7lAe44RgdFCd1UTnlzudxnKBf5+g="
},
"org/jetbrains/kotlin#kotlin-compiler-runner/2.3.10-RC": {
"jar": "sha256-QqRjDDh2gXZkUOxQfriAelausTOw4G7RcDwEXorDfrM=",
"pom": "sha256-hynzbhVt8+C2rvQTCNJ2xDz01apFAWUW1taKrpJTeik="
},
"org/jetbrains/kotlin#kotlin-compiler-runner/2.3.20": {
"jar": "sha256-wGnzCkA75wyBUviqnyXsy6GI7q1UJjrgKvFEIUN6Igg=",
"pom": "sha256-jYTqDt1gs4vOpWLeUXgVKiZxqaAFPWcPkxRSs9sBMig="
},
"org/jetbrains/kotlin#kotlin-compose-compiler-plugin-embeddable/2.3.10-RC": {
"jar": "sha256-zy8oVmxarKIn07MOOzTP9mjQh4IEYcA6nuhTJLrDDA8=",
"pom": "sha256-REd2WqNlz5rxWBJ5kRx81qNxcwKp0fgVpeKVXZqQgS4="
},
"org/jetbrains/kotlin#kotlin-daemon-client/2.3.0": {
"jar": "sha256-sr5naIyvEaE41a4M4SNTga2asN25OVqwb42EagtGYBc=",
"pom": "sha256-teLnTuXC+I/Qi/g+7GRx9rvKeqEhWYgCtsMsVuhwYCY="
},
"org/jetbrains/kotlin#kotlin-daemon-client/2.3.10-RC": {
"jar": "sha256-C+suo6o9uyYgihTqpJs022QDETlZE6fOb5GDQQnGZsQ=",
"pom": "sha256-qG6d+5GGaQ5j/Z5ROCL2pkRT/QDvLPgG0P6+PgSUzYA="
},
"org/jetbrains/kotlin#kotlin-daemon-embeddable/2.3.0": {
"jar": "sha256-ObywLYwpOqZ4VUyLSdf/hGVwIXCSg8YYbjpAgGr5vRA=",
"pom": "sha256-TI3aucQLMNAbhc/qHxd31zUlybcWQ+YlDGV2/H0fwRI="
"org/jetbrains/kotlin#kotlin-daemon-client/2.3.20": {
"jar": "sha256-xxp8G+j7/wTgr0XJ7oy3ph2JU7ymuL8iWlcZxyWpC0Q=",
"pom": "sha256-nnyLgHJBF/cqrOZfa+SNg224/Dl1OtlR8ruQhi1+cIA="
},
"org/jetbrains/kotlin#kotlin-daemon-embeddable/2.3.10-RC": {
"jar": "sha256-QyoFSvwpRD1uVybcO3JKdrhDxR2yKEVbyogs3ANJhlk=",
"pom": "sha256-ek+lwRozmQ8U1JE43U3kAj/v4vLgCNqDRMPCuUfAPrY="
},
"org/jetbrains/kotlin#kotlin-daemon-embeddable/2.3.20": {
"jar": "sha256-iHC6uEC4CHyWxN3AYIi0rt9RMcQIrzZ0MGME8flq8/Q=",
"pom": "sha256-YVQOWzoywLEZYkSWZZJMbNdVTqmu4IVb2OT1t/YQoKs="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-annotations/2.3.10-RC": {
"jar": "sha256-LxUWxkToc3Rzi0QCsSPaeaA+KsQDXdAWXYtwFp6p6lA=",
"pom": "sha256-EgyPnAxIjfUm9JHJ9L1laYx1+uDKnVABKNAp0smxvmA="
@@ -3238,54 +3242,54 @@
"jar": "sha256-vNdaNspK2OBhFyFO2Af43qL+YaceB/kcoU9DNQJLhGM=",
"pom": "sha256-7XngK/COxxXsvNHi16RTYteqfDP5LvZ15t+kpJMbzF8="
},
"org/jetbrains/kotlin#kotlin-reflect/2.3.0": {
"jar": "sha256-cU30voGVRf9N4fNqohg+DeqUtMjN98op6ciZGbrzY2I=",
"pom": "sha256-89F2jvL7UxBIPb6R4w6fo2x7Pi/e5pRaCLujEBQtKcE="
"org/jetbrains/kotlin#kotlin-reflect/2.3.20": {
"jar": "sha256-40b6PD/0RR9fcHoxKIf9TIVV2kjMFfqdsrqTwz+J+BM=",
"pom": "sha256-iwC9L+srtVON85aVQXTZ3cDsVA00ElhjA1ObHpZVwzM="
},
"org/jetbrains/kotlin#kotlin-sam-with-receiver-compiler-plugin-embeddable/2.3.0": {
"jar": "sha256-QOPhi7jFUjLuZSXOV9F7hl5WcosFK/DBDnvsHQhJmMo=",
"pom": "sha256-BnzIEOCaYeFufoe1Kk3WR+FfYLd+PaDRsVPz+A7r8wM="
},
"org/jetbrains/kotlin#kotlin-script-runtime/2.3.0": {
"jar": "sha256-24JpYTcdZgUxjZxOS/zb+slMOgiSzcq9VSJIcP6tV/E=",
"pom": "sha256-20CN5tumaQeVvFOkoPhbM8en1qzLZ94ZAmQPr1QfL1s="
"org/jetbrains/kotlin#kotlin-sam-with-receiver-compiler-plugin-embeddable/2.3.20": {
"jar": "sha256-hvch6zOswK/QbdZoDnenZLY0qb2LEbc77yv8CQnxiUA=",
"pom": "sha256-Vg23nSOjmud5dqVmkZRw3sQazHeqUa6qVlzAKbkXGqw="
},
"org/jetbrains/kotlin#kotlin-script-runtime/2.3.10-RC": {
"jar": "sha256-vabutEYi4rlflkxb3MkPoWPNCgybtVabpd86MRwm8iA=",
"pom": "sha256-JH2OT7fPc1Wnr/gMRAHp2wXubkb6xoZKp5ebl7ehR70="
},
"org/jetbrains/kotlin#kotlin-scripting-common/2.3.0": {
"jar": "sha256-QlK3gs2lP8v9lTuQrwMlDiGX/+9uVavZsKLkj5Pv8lM=",
"pom": "sha256-9AuKrV3x68riUJLMM7hpP6Qw5TRCC6Wup/AGsvMrQw4="
"org/jetbrains/kotlin#kotlin-script-runtime/2.3.20": {
"jar": "sha256-b8232m5lz4zEPlqrq5S9zEiCXnkzaG+KG/aU64j44A4=",
"pom": "sha256-ZgmWdnA6CB/ZrEMTlmWIPlwUUCC2QHWd4FOdiRb/JH8="
},
"org/jetbrains/kotlin#kotlin-scripting-common/2.3.10-RC": {
"jar": "sha256-gbM3To+5LF1t82X13tIAW2Vb4rg3oNKjylND0/9tMCc=",
"pom": "sha256-FA4i/htI2X7VHlRWnAUw9fNxhCQhGyEXMOwOrxbnLcQ="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/2.3.0": {
"jar": "sha256-ZxRdvqkxlNuyJT4vNaCp/ngBfCy84+zbSx/0P/9HGNU=",
"pom": "sha256-FjR61xI8BuiaUu+twxjZaick9UqBx+xZTA1ALh8eZFk="
"org/jetbrains/kotlin#kotlin-scripting-common/2.3.20": {
"jar": "sha256-tMI52HsjvhgvBb9Xz16B+V1wv370qYnrmLczicbryJ8=",
"pom": "sha256-h+/vFa4RjxNDUmPrEJcAZGD7qDlph340uKcvDjPIOsk="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/2.3.10-RC": {
"jar": "sha256-WkVxf5DBowquk3ukcouU9cVjxp03s08671HP9OybPRg=",
"pom": "sha256-z75mf7STjoyR9BDJWbjM+Xksc0bD8CjVmOotzRxYGX0="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/2.3.0": {
"jar": "sha256-MsdCfxBeYtT07/MDXaHkKAsndxvkrWFDuoZV0Yh3IM0=",
"pom": "sha256-TPG5v5rmnHbz6nWnhW3GbeRGeKfHQXFa6cFdtA7Nfv0="
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/2.3.20": {
"jar": "sha256-vVX49hvUHOxSllbC1HeEvLpawmDpT0FWwnLDFJZu71k=",
"pom": "sha256-1l8YaBd9zkuKkv+93bVrFzH5+66IyOcw7XvLcAy7soo="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/2.3.10-RC": {
"jar": "sha256-ua86tjyjMwHLUfkBJZk5Xtjy64jjyWNQHOLriCv/12I=",
"pom": "sha256-gWW9J1eaLKO3r8ww5Swo6QfJECUg6yL+7QzS9rgtSuA="
},
"org/jetbrains/kotlin#kotlin-scripting-jvm/2.3.0": {
"jar": "sha256-NpM+uDYZqKZeBB36m2ktNOB9V8b9Yv43HIu/BYgL7Ec=",
"pom": "sha256-qemsNTtIBUA7A3spmZpUnxvESATniVnYT/sbwzBF8kc="
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/2.3.20": {
"jar": "sha256-gG/WOzvOxea17rGghD1qsJTVV4aoRl5HSiQ5KVocCiU=",
"pom": "sha256-xKkTo4XzTjKlbyBd8XoI3U4RfDBsV+XkfcXUlSPw6+E="
},
"org/jetbrains/kotlin#kotlin-scripting-jvm/2.3.10-RC": {
"jar": "sha256-7N5Qd0P8WB5wabFLHhohHK7MQ9fns7uZTrqEWqzAiag=",
"pom": "sha256-d5APHmelXOOo3SxxIPARd0N5hHIHfyywQQlN18hovqg="
},
"org/jetbrains/kotlin#kotlin-scripting-jvm/2.3.20": {
"jar": "sha256-cEfOA1P0kSXDx0Z5LU92wyZde3L+YmlLfuwHW7oCUow=",
"pom": "sha256-B8Ba4tHs4K4e1mAQ7TGNnN3LNYcEbGM8GGvRTM8EYdU="
},
"org/jetbrains/kotlin#kotlin-serialization-compiler-plugin-embeddable/2.3.10-RC": {
"jar": "sha256-v3uAa0GY+/4UnjfD10j0JVA+3CxOir/JsqvFEDWOQxM=",
"pom": "sha256-Ak0HyrVBLZHpPMmeZ5dbjC6fuWG3BpllagCE/MwBlF8="
@@ -3301,14 +3305,14 @@
"module": "sha256-b134r2M2AKa5z7D8x2SvPVEZ83Zndne5G2rugWsdMKs=",
"pom": "sha256-X0As+413MZW5ZwUBJMnom1+EsXJGThiUkpeJv1xMLyk="
},
"org/jetbrains/kotlin#kotlin-stdlib-common/2.3.0": {
"module": "sha256-/pAljbcTNVWBoBZDfQbAKdBpwgu93uE02R5LiHBz108=",
"pom": "sha256-J+2DQuBLgcqy0aP512D06/lQmG9n7Eme1y1cw4d+6NA="
},
"org/jetbrains/kotlin#kotlin-stdlib-common/2.3.10-RC": {
"module": "sha256-T7RK7JIrF+ytx62EMPj7cc0Cs0ZPLzNoPUEnau3/vPw=",
"pom": "sha256-aNb+8ejJzL7tNa7xZvY3SFDf690TNXpwDjKANiWDF7E="
},
"org/jetbrains/kotlin#kotlin-stdlib-common/2.3.20": {
"module": "sha256-fV4z3nFM3ddQeGQgmMvL7pfBg5jQNLd9MrSwdLlQOTk=",
"pom": "sha256-/Xtj7fb31urrwWoYVgu7koszQlYepcnR92kZiw/puYg="
},
"org/jetbrains/kotlin#kotlin-stdlib-jdk7/1.3.72": {
"pom": "sha256-nVoT2avDNEXhNm0livCnfkLwGUWs73wJF7nVOYVOL84="
},
@@ -3358,11 +3362,6 @@
"module": "sha256-v7xlfd06jjfkyK1BeWjV6wsLFxyfzkj5YsKtMu5DTCE=",
"pom": "sha256-zzH5IxlsY67ezQpXwkJpvTcCpOR8C/C9ZLWtpd5SInI="
},
"org/jetbrains/kotlin#kotlin-stdlib/2.3.0": {
"jar": "sha256-iHWHyRcTJQrVL+FK2RZtBCwzg1BJiQ6UN/NV/8WhlbE=",
"module": "sha256-CRCoo7aWD8eSxFxWqR18Oj8mKG8DKVVUtRnP83h1baI=",
"pom": "sha256-TVJW0+SETmVrDKQF9jUNbyF5XCQ3WzRSUmxUZ92ZtaI="
},
"org/jetbrains/kotlin#kotlin-stdlib/2.3.0-RC": {
"jar": "sha256-zDONZbvslLcwNvfDw6X28JrocFuVwPkg7DKHtGtolNM=",
"module": "sha256-j+uBo/Q5DDNtB8a3zz7kVQHpwF5zupBFU8UeJImo4VM=",
@@ -3376,14 +3375,19 @@
"org/jetbrains/kotlin#kotlin-stdlib/2.3.10-RC/all": {
"jar": "sha256-8tQNQce+hFtMQsSM0wFI9oNm6QnfgiBJo96d0VLUjAI="
},
"org/jetbrains/kotlin#kotlin-tooling-core/2.3.0": {
"jar": "sha256-NnFCeBKZvA+RIMHe7A5ik0oa+ep/AaqpxaU1TcXY19k=",
"pom": "sha256-tQ6FtLEYwSIjge0c67K6lqfeLdrtti3aZ9SuBqGiXTc="
"org/jetbrains/kotlin#kotlin-stdlib/2.3.20": {
"jar": "sha256-CuElBKUEDrrzdwOQhINCDRpWJN0dk/NXZl+Md8hIoB4=",
"module": "sha256-9Os0T8TR46KK4WwIbsPkL1I3O0ZtQwgYL7OG45LA76M=",
"pom": "sha256-yDwC2afi6VRzBJHDPC8dwDwnZi4ntWbsK0TS0Bhjm5g="
},
"org/jetbrains/kotlin#kotlin-tooling-core/2.3.10-RC": {
"jar": "sha256-NnFCeBKZvA+RIMHe7A5ik0oa+ep/AaqpxaU1TcXY19k=",
"pom": "sha256-JP5o1+ZtHKA6rzslyx5nPzE0F54G3Q8K0rQyaxCREyo="
},
"org/jetbrains/kotlin#kotlin-tooling-core/2.3.20": {
"jar": "sha256-NnFCeBKZvA+RIMHe7A5ik0oa+ep/AaqpxaU1TcXY19k=",
"pom": "sha256-R+Ou/SS1vmLYB7bLzXnFW4P5S1XP4Y79xuM84RvxkOQ="
},
"org/jetbrains/kotlin#kotlin-util-io/2.3.10-RC": {
"jar": "sha256-85zCXVt0ew16z7LloMQdTmhgCzwUyPnYF1dFmowN06o=",
"pom": "sha256-dvRuzCGOmDpVggzpv19r4OQfMybphgof78Ac8TCVeqI="
+4 -4
View File
@@ -25,14 +25,14 @@
};
"kicad-testing" = {
kicadVersion = {
version = "10.0-2026-06-20";
version = "10.0-2026-06-26";
src = {
rev = "ee60b9067e5da85187183afa9f86c8a829502380";
sha256 = "0ib4z4zxq8f49kag3ip60mxqgls1g6lz0vqb76aqcjvfpkz1als1";
rev = "688f1186b437515b35a0619c1d5e9df6171b80e3";
sha256 = "1n2qh2daz5avncwc0r65bwjdfrw7bzh11mzrwv57avl9bm2dk9mj";
};
};
libVersion = {
version = "10.0-2026-06-20";
version = "10.0-2026-06-26";
libSources = {
symbols.rev = "5a6700bbb3f2a3b05d123a1a1af770cfbb5bc7d3";
symbols.sha256 = "1ns0lg360h3h55w2xv5lyj0qzy6nc1cr02vll95c0vma34rc1qwa";
@@ -0,0 +1,61 @@
From acea6182e46fff3d1d64a3172cdff307b07ca441 Mon Sep 17 00:00:00 2001
From: Greg Hudson <ghudson@mit.edu>
Date: Wed, 8 Apr 2026 17:57:59 -0400
Subject: [PATCH] Fix two NegoEx parsing vulnerabilities
In parse_nego_message(), check the result of the second call to
vector_base() before dereferencing it. In parse_message(), check for
a short header_len to prevent an integer underflow when calculating
the remaining message length.
Reported by Cem Onat Karagun.
CVE-2026-40355:
In MIT krb5 release 1.18 and later, if an application calls
gss_accept_sec_context() on a system with a NegoEx mechanism
registered in /etc/gss/mech, an unauthenticated remote attacker can
trigger a null pointer dereference, causing the process to terminate.
CVE-2026-40356:
In MIT krb5 release 1.18 and later, if an application calls
gss_accept_sec_context() on a system with a NegoEx mechanism
registered in /etc/gss/mech, an unauthenticated remote attacker can
trigger a read overrun of up to 52 bytes, possibly causing the process
to terminate. Exfiltration of the bytes read does not appear
possible.
(cherry picked from commit 2e75f0d9362fb979f5fc92829431a590a130929f)
ticket: 9205
version_fixed: 1.22.3
---
lib/gssapi/spnego/negoex_util.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/lib/gssapi/spnego/negoex_util.c b/src/lib/gssapi/spnego/negoex_util.c
index edc5462e844..a65238e5730 100644
--- a/lib/gssapi/spnego/negoex_util.c
+++ b/lib/gssapi/spnego/negoex_util.c
@@ -253,6 +253,10 @@ parse_nego_message(OM_uint32 *minor, struct k5input *in,
offset = k5_input_get_uint32_le(in);
count = k5_input_get_uint16_le(in);
p = vector_base(offset, count, EXTENSION_LENGTH, msg_base, msg_len);
+ if (p == NULL) {
+ *minor = ERR_NEGOEX_INVALID_MESSAGE_SIZE;
+ return GSS_S_DEFECTIVE_TOKEN;
+ }
for (i = 0; i < count; i++) {
extension_type = load_32_le(p + i * EXTENSION_LENGTH);
if (extension_type & EXTENSION_FLAG_CRITICAL) {
@@ -391,7 +395,8 @@ parse_message(OM_uint32 *minor, spnego_gss_ctx_id_t ctx, struct k5input *in,
msg_len = k5_input_get_uint32_le(in);
conv_id = k5_input_get_bytes(in, GUID_LENGTH);
- if (in->status || msg_len > token_remaining || header_len > msg_len) {
+ if (in->status || msg_len > token_remaining ||
+ header_len < (size_t)(in->ptr - msg_base) || header_len > msg_len) {
*minor = ERR_NEGOEX_INVALID_MESSAGE_SIZE;
return GSS_S_DEFECTIVE_TOKEN;
}
+8 -3
View File
@@ -34,16 +34,20 @@
stdenv.mkDerivation (finalAttrs: {
pname = "krb5";
version = "1.22.1";
version = "1.22.2";
__structuredAttrs = true;
src = fetchurl {
url = "https://kerberos.org/dist/krb5/${lib.versions.majorMinor finalAttrs.version}/krb5-${finalAttrs.version}.tar.gz";
hash = "sha256-GogyuMrZI+u/E5T2fi789B46SfRgKFpm41reyPoAU68=";
hash = "sha256-MkP/vI6k1Kwi3cfdKh3FTFeHTEBki2D/lwCXY1VOrxM=";
};
patches = lib.optionals stdenv.hostPlatform.isFreeBSD [
patches = [
# https://github.com/krb5/krb5/pull/1506
./CVE-2026-40355-and-CVE-2026-40356.patch
]
++ lib.optionals stdenv.hostPlatform.isFreeBSD [
(fetchpatch {
name = "fix-missing-ENODATA.patch";
url = "https://cgit.freebsd.org/ports/plain/security/krb5-122/files/patch-lib_krad_packet.c?id=0501f716c4aff7880fde56e42d641ef504593b7d";
@@ -170,6 +174,7 @@ stdenv.mkDerivation (finalAttrs: {
];
meta = {
changelog = "https://web.mit.edu/Kerberos/krb5-${lib.versions.majorMinor finalAttrs.version}/";
description = "MIT Kerberos 5";
homepage = "http://web.mit.edu/kerberos/";
license = lib.licenses.mit;
+3 -3
View File
@@ -16,16 +16,16 @@
buildGoModule (finalAttrs: {
pname = "krillinai";
version = "1.4.0";
version = "2.1.0";
src = fetchFromGitHub {
owner = "krillinai";
repo = "KlicStudio";
tag = "v${finalAttrs.version}";
hash = "sha256-CMeF24BCJ+wbiXCl0iJm0acNoggVxeOu3Q/cXJY8aQo=";
hash = "sha256-k1p9v3MQklycW2FsDCyEWNwjLFSymxx1qVg5qhC8xgI=";
};
vendorHash = "sha256-bAKLNpt0K06egScyn7ImHV0csDsMQGUm92kU1PVQK+I=";
vendorHash = "sha256-OdmOalac4oked7vLGMWFCjjNU5TBq1P+HudE5a+bgq4=";
nativeBuildInputs = [ pkg-config ];
+57
View File
@@ -0,0 +1,57 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
versionCheckHook,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "layerx";
version = "1.5.0";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "deveshctl";
repo = "layerx";
tag = "v${finalAttrs.version}";
hash = "sha256-Bkz0ETQEdy0GOlyGFmP8y80NdmNgRvLV0xRf/zd91ZY=";
};
vendorHash = "sha256-7wbyz6fKB3HMFhKJVIWrOIczLfqF4yInyszdh2Ky8WU=";
ldflags = [
"-s"
"-w"
"-X=main.version=${finalAttrs.version}"
"-X=main.commit=${finalAttrs.src.rev}"
"-X=main.date=1970-01-01T00:00:00Z"
];
nativeBuildInputs = [ installShellFiles ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion \
--cmd layerx \
--bash <($out/bin/layerx completion bash) \
--fish <($out/bin/layerx completion fish) \
--zsh <($out/bin/layerx completion zsh)
'';
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
versionCheckProgramArg = [ "version" ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Terminal-based Docker image layer inspector";
homepage = "https://github.com/deveshctl/layerx";
changelog = "https://github.com/deveshctl/layerx/blob/${finalAttrs.src.rev}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ kpbaks ];
mainProgram = "layerx";
};
})
+3 -3
View File
@@ -10,16 +10,16 @@
buildGoModule (finalAttrs: {
pname = "lazyworktree";
version = "1.46.1";
version = "1.47.0";
src = fetchFromGitHub {
owner = "chmouel";
repo = "lazyworktree";
tag = "v${finalAttrs.version}";
hash = "sha256-S6Tv0g8C1B47UtZkmBy+DIcLhoSFLzIJ9EiRtbojqAI=";
hash = "sha256-aiObEOw+osGRzvkSwo/aWbby8eb/jPiruxcGehafUvw=";
};
vendorHash = "sha256-8zoomrS7neTvaCLRFJ4W8+mryEwHmu8VyKf81RRe4yE=";
vendorHash = "sha256-aQ0My2re9rCoU6EZ0VSyHYT1TMZEMAwnhmcqGBd95ks=";
nativeBuildInputs = [ installShellFiles ];
+2 -2
View File
@@ -23,7 +23,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libadwaita";
version = "1.9.0";
version = "1.9.1";
outputs = [
"out"
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "GNOME";
repo = "libadwaita";
tag = finalAttrs.version;
hash = "sha256-JAKP8CjLCKGZvHoB26ih/J3xAru4wiVf/ObG0L8r4pY=";
hash = "sha256-Oy3WcsymNbbmAacm5hEOrorI1wKXjSp063mh4jCJRAE=";
};
depsBuildBuild = [
+2 -2
View File
@@ -7,13 +7,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libaec";
version = "1.1.6";
version = "1.1.7";
src = fetchFromGitHub {
owner = "Deutsches-Klimarechenzentrum";
repo = "libaec";
tag = "v${finalAttrs.version}";
hash = "sha256-cxDP+JNwokxgzH9hO2zw+rIcz8XG7E8ujbAbWpgUEW8=";
hash = "sha256-aBm+CXCq7sdJb6Qq9sNuTzNj0nRwTJI20HsqUg1Qi/8=";
};
nativeBuildInputs = [
+1 -3
View File
@@ -44,9 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
fribidi
harfbuzz
]
++ lib.optional fontconfigSupport fontconfig
# TODO: remove dep after branchoff (in darwin stdenv)
++ lib.optional stdenv.hostPlatform.isDarwin libiconv.out;
++ lib.optional fontconfigSupport fontconfig;
meta = {
description = "Portable ASS/SSA subtitle renderer";
+9
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
autoreconfHook,
imlib2,
libxext,
@@ -23,6 +24,14 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-N0Lfi0d4kjxirEbIjdeearYWvStkKMyV6lgeyNKXcVw=";
};
patches = [
(fetchpatch {
name = "CVE-2026-42046.patch";
url = "https://github.com/cacalabs/libcaca/commit/fb77acff9ba6bb01d53940da34fb10f20b156a23.patch";
hash = "sha256-AdpiE5Gw/CVET//7TTYZCb0glW5HY+T8xZkYs1XCBvY=";
})
];
nativeBuildInputs = [
autoreconfHook
pkg-config

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