Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2025-08-09 18:05:59 +00:00
committed by GitHub
38 changed files with 528 additions and 518 deletions
+15 -1
View File
@@ -53,7 +53,9 @@ in
backlogLimit = lib.mkOption {
type = lib.types.int;
default = 64; # Apparently the kernel default
# Significantly increase from the kernel default of 64 because a
# normal systems generates way more logs.
default = 1024;
description = ''
The maximum number of outstanding audit buffers allowed; exceeding this is
considered a failure and handled in a manner specified by failureMode.
@@ -81,6 +83,18 @@ in
};
config = lib.mkIf (cfg.enable == "lock" || cfg.enable) {
boot.kernelParams = [
# A lot of audit events happen before the systemd service starts. Thus
# enable it via the kernel commandline to have the audit subsystem ready
# as soon as the kernel starts.
"audit=1"
# Also set the backlog limit because the kernel default is too small to
# capture all of them before the service starts.
"audit_backlog_limit=${toString cfg.backlogLimit}"
];
environment.systemPackages = [ pkgs.audit ];
systemd.services.audit-rules = {
description = "Load Audit Rules";
wantedBy = [ "sysinit.target" ];
+1 -3
View File
@@ -202,11 +202,9 @@ in
}
];
# Starting auditd should also enable loading the audit rules..
# Starting the userspace daemon should also enable audit in the kernel
security.audit.enable = lib.mkDefault true;
environment.systemPackages = [ pkgs.audit ];
# setting this to anything other than /etc/audit/plugins.d will break, so we pin it here
security.auditd.settings.plugin_dir = "/etc/audit/plugins.d";
+9 -1
View File
@@ -1884,6 +1884,11 @@ let
networkdOptions = {
networkConfig = mkOption {
default = { };
defaultText = lib.literalExpression ''
{
IPv6PrivacyExtensions = true;
}
'';
example = {
SpeedMeter = true;
ManageForeignRoutingPolicyRules = false;
@@ -3127,7 +3132,10 @@ let
};
config = {
networkConfig = optionalAttrs (config.routeTables != { }) {
networkConfig = {
IPv6PrivacyExtensions = lib.mkOptionDefault true;
}
// optionalAttrs (config.routeTables != { }) {
RouteTable = mapAttrsToList (name: number: "${name}:${toString number}") config.routeTables;
};
};
+137 -136
View File
@@ -1813,146 +1813,147 @@ in
virtualisation.vswitch = mkIf (cfg.vswitches != { }) { enable = true; };
services.udev.packages = [
(pkgs.writeTextFile rec {
name = "ipv6-privacy-extensions.rules";
destination = "/etc/udev/rules.d/98-${name}";
text =
let
sysctl-value = tempaddrValues.${cfg.tempAddresses}.sysctl;
in
''
# enable and prefer IPv6 privacy addresses by default
ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.bash}/bin/sh -c 'echo ${sysctl-value} > /proc/sys/net/ipv6/conf/$name/use_tempaddr'"
'';
})
(pkgs.writeTextFile rec {
name = "ipv6-privacy-extensions.rules";
destination = "/etc/udev/rules.d/99-${name}";
text = concatMapStrings (
i:
let
opt = i.tempAddress;
val = tempaddrValues.${opt}.sysctl;
msg = tempaddrValues.${opt}.description;
in
''
# override to ${msg} for ${i.name}
ACTION=="add", SUBSYSTEM=="net", NAME=="${i.name}", RUN+="${pkgs.procps}/bin/sysctl net.ipv6.conf.${
replaceStrings [ "." ] [ "/" ] i.name
}.use_tempaddr=${val}"
''
) (filter (i: i.tempAddress != cfg.tempAddresses) interfaces);
})
]
++ lib.optional (cfg.wlanInterfaces != { }) (
pkgs.writeTextFile {
name = "99-zzz-40-wlanInterfaces.rules";
destination = "/etc/udev/rules.d/99-zzz-40-wlanInterfaces.rules";
text =
let
# Collect all interfaces that are defined for a device
# as device:interface key:value pairs.
wlanDeviceInterfaces =
let
allDevices = unique (mapAttrsToList (_: v: v.device) cfg.wlanInterfaces);
interfacesOfDevice = d: filterAttrs (_: v: v.device == d) cfg.wlanInterfaces;
in
genAttrs allDevices (d: interfacesOfDevice d);
# Convert device:interface key:value pairs into a list, and if it exists,
# place the interface which is named after the device at the beginning.
wlanListDeviceFirst =
device: interfaces:
if hasAttr device interfaces then
mapAttrsToList (n: v: v // { _iName = n; }) (filterAttrs (n: _: n == device) interfaces)
++ mapAttrsToList (n: v: v // { _iName = n; }) (filterAttrs (n: _: n != device) interfaces)
else
mapAttrsToList (n: v: v // { _iName = n; }) interfaces;
# Udev script to execute for the default WLAN interface with the persistend udev name.
# The script creates the required, new WLAN interfaces interfaces and configures the
# existing, default interface.
curInterfaceScript =
device: current: new:
pkgs.writeScript "udev-run-script-wlan-interfaces-${device}.sh" ''
#!${pkgs.runtimeShell}
# Change the wireless phy device to a predictable name.
${pkgs.iw}/bin/iw phy `${pkgs.coreutils}/bin/cat /sys/class/net/$INTERFACE/phy80211/name` set name ${device}
# Add new WLAN interfaces
${flip concatMapStrings new (i: ''
${pkgs.iw}/bin/iw phy ${device} interface add ${i._iName} type managed
'')}
# Configure the current interface
${pkgs.iw}/bin/iw dev ${device} set type ${current.type}
${optionalString (
current.type == "mesh" && current.meshID != null
) "${pkgs.iw}/bin/iw dev ${device} set meshid ${current.meshID}"}
${optionalString (
current.type == "monitor" && current.flags != null
) "${pkgs.iw}/bin/iw dev ${device} set monitor ${current.flags}"}
${optionalString (
current.type == "managed" && current.fourAddr != null
) "${pkgs.iw}/bin/iw dev ${device} set 4addr ${if current.fourAddr then "on" else "off"}"}
${optionalString (
current.mac != null
) "${pkgs.iproute2}/bin/ip link set dev ${device} address ${current.mac}"}
'';
# Udev script to execute for a new WLAN interface. The script configures the new WLAN interface.
newInterfaceScript =
new:
pkgs.writeScript "udev-run-script-wlan-interfaces-${new._iName}.sh" ''
#!${pkgs.runtimeShell}
# Configure the new interface
${pkgs.iw}/bin/iw dev ${new._iName} set type ${new.type}
${optionalString (
new.type == "mesh" && new.meshID != null
) "${pkgs.iw}/bin/iw dev ${new._iName} set meshid ${new.meshID}"}
${optionalString (
new.type == "monitor" && new.flags != null
) "${pkgs.iw}/bin/iw dev ${new._iName} set monitor ${new.flags}"}
${optionalString (
new.type == "managed" && new.fourAddr != null
) "${pkgs.iw}/bin/iw dev ${new._iName} set 4addr ${if new.fourAddr then "on" else "off"}"}
${optionalString (
new.mac != null
) "${pkgs.iproute2}/bin/ip link set dev ${new._iName} address ${new.mac}"}
'';
# Udev attributes for systemd to name the device and to create a .device target.
systemdAttrs =
n:
''NAME:="${n}", ENV{INTERFACE}="${n}", ENV{SYSTEMD_ALIAS}="/sys/subsystem/net/devices/${n}", TAG+="systemd"'';
in
flip (concatMapStringsSep "\n") (attrNames wlanDeviceInterfaces) (
device:
services.udev.packages =
lib.optionals (!config.systemd.network.enable) [
(pkgs.writeTextFile rec {
name = "ipv6-privacy-extensions.rules";
destination = "/etc/udev/rules.d/98-${name}";
text =
let
interfaces = wlanListDeviceFirst device wlanDeviceInterfaces.${device};
curInterface = elemAt interfaces 0;
newInterfaces = drop 1 interfaces;
sysctl-value = tempaddrValues.${cfg.tempAddresses}.sysctl;
in
''
# It is important to have that rule first as overwriting the NAME attribute also prevents the
# next rules from matching.
${flip (concatMapStringsSep "\n") (wlanListDeviceFirst device wlanDeviceInterfaces.${device}) (
interface:
''ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", ENV{INTERFACE}=="${interface._iName}", ${systemdAttrs interface._iName}, RUN+="${newInterfaceScript interface}"''
)}
# Add the required, new WLAN interfaces to the default WLAN interface with the
# persistent, default name as assigned by udev.
ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", NAME=="${device}", ${systemdAttrs curInterface._iName}, RUN+="${
curInterfaceScript device curInterface newInterfaces
}"
# Generate the same systemd events for both 'add' and 'move' udev events.
ACTION=="move", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", NAME=="${device}", ${systemdAttrs curInterface._iName}
# enable and prefer IPv6 privacy addresses by default
ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.bash}/bin/sh -c 'echo ${sysctl-value} > /proc/sys/net/ipv6/conf/$name/use_tempaddr'"
'';
})
(pkgs.writeTextFile rec {
name = "ipv6-privacy-extensions.rules";
destination = "/etc/udev/rules.d/99-${name}";
text = concatMapStrings (
i:
let
opt = i.tempAddress;
val = tempaddrValues.${opt}.sysctl;
msg = tempaddrValues.${opt}.description;
in
''
);
}
);
# override to ${msg} for ${i.name}
ACTION=="add", SUBSYSTEM=="net", NAME=="${i.name}", RUN+="${pkgs.procps}/bin/sysctl net.ipv6.conf.${
replaceStrings [ "." ] [ "/" ] i.name
}.use_tempaddr=${val}"
''
) (filter (i: i.tempAddress != cfg.tempAddresses) interfaces);
})
]
++ lib.optional (cfg.wlanInterfaces != { }) (
pkgs.writeTextFile {
name = "99-zzz-40-wlanInterfaces.rules";
destination = "/etc/udev/rules.d/99-zzz-40-wlanInterfaces.rules";
text =
let
# Collect all interfaces that are defined for a device
# as device:interface key:value pairs.
wlanDeviceInterfaces =
let
allDevices = unique (mapAttrsToList (_: v: v.device) cfg.wlanInterfaces);
interfacesOfDevice = d: filterAttrs (_: v: v.device == d) cfg.wlanInterfaces;
in
genAttrs allDevices (d: interfacesOfDevice d);
# Convert device:interface key:value pairs into a list, and if it exists,
# place the interface which is named after the device at the beginning.
wlanListDeviceFirst =
device: interfaces:
if hasAttr device interfaces then
mapAttrsToList (n: v: v // { _iName = n; }) (filterAttrs (n: _: n == device) interfaces)
++ mapAttrsToList (n: v: v // { _iName = n; }) (filterAttrs (n: _: n != device) interfaces)
else
mapAttrsToList (n: v: v // { _iName = n; }) interfaces;
# Udev script to execute for the default WLAN interface with the persistend udev name.
# The script creates the required, new WLAN interfaces interfaces and configures the
# existing, default interface.
curInterfaceScript =
device: current: new:
pkgs.writeScript "udev-run-script-wlan-interfaces-${device}.sh" ''
#!${pkgs.runtimeShell}
# Change the wireless phy device to a predictable name.
${pkgs.iw}/bin/iw phy `${pkgs.coreutils}/bin/cat /sys/class/net/$INTERFACE/phy80211/name` set name ${device}
# Add new WLAN interfaces
${flip concatMapStrings new (i: ''
${pkgs.iw}/bin/iw phy ${device} interface add ${i._iName} type managed
'')}
# Configure the current interface
${pkgs.iw}/bin/iw dev ${device} set type ${current.type}
${optionalString (
current.type == "mesh" && current.meshID != null
) "${pkgs.iw}/bin/iw dev ${device} set meshid ${current.meshID}"}
${optionalString (
current.type == "monitor" && current.flags != null
) "${pkgs.iw}/bin/iw dev ${device} set monitor ${current.flags}"}
${optionalString (
current.type == "managed" && current.fourAddr != null
) "${pkgs.iw}/bin/iw dev ${device} set 4addr ${if current.fourAddr then "on" else "off"}"}
${optionalString (
current.mac != null
) "${pkgs.iproute2}/bin/ip link set dev ${device} address ${current.mac}"}
'';
# Udev script to execute for a new WLAN interface. The script configures the new WLAN interface.
newInterfaceScript =
new:
pkgs.writeScript "udev-run-script-wlan-interfaces-${new._iName}.sh" ''
#!${pkgs.runtimeShell}
# Configure the new interface
${pkgs.iw}/bin/iw dev ${new._iName} set type ${new.type}
${optionalString (
new.type == "mesh" && new.meshID != null
) "${pkgs.iw}/bin/iw dev ${new._iName} set meshid ${new.meshID}"}
${optionalString (
new.type == "monitor" && new.flags != null
) "${pkgs.iw}/bin/iw dev ${new._iName} set monitor ${new.flags}"}
${optionalString (
new.type == "managed" && new.fourAddr != null
) "${pkgs.iw}/bin/iw dev ${new._iName} set 4addr ${if new.fourAddr then "on" else "off"}"}
${optionalString (
new.mac != null
) "${pkgs.iproute2}/bin/ip link set dev ${new._iName} address ${new.mac}"}
'';
# Udev attributes for systemd to name the device and to create a .device target.
systemdAttrs =
n:
''NAME:="${n}", ENV{INTERFACE}="${n}", ENV{SYSTEMD_ALIAS}="/sys/subsystem/net/devices/${n}", TAG+="systemd"'';
in
flip (concatMapStringsSep "\n") (attrNames wlanDeviceInterfaces) (
device:
let
interfaces = wlanListDeviceFirst device wlanDeviceInterfaces.${device};
curInterface = elemAt interfaces 0;
newInterfaces = drop 1 interfaces;
in
''
# It is important to have that rule first as overwriting the NAME attribute also prevents the
# next rules from matching.
${flip (concatMapStringsSep "\n") (wlanListDeviceFirst device wlanDeviceInterfaces.${device}) (
interface:
''ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", ENV{INTERFACE}=="${interface._iName}", ${systemdAttrs interface._iName}, RUN+="${newInterfaceScript interface}"''
)}
# Add the required, new WLAN interfaces to the default WLAN interface with the
# persistent, default name as assigned by udev.
ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", NAME=="${device}", ${systemdAttrs curInterface._iName}, RUN+="${
curInterfaceScript device curInterface newInterfaces
}"
# Generate the same systemd events for both 'add' and 'move' udev events.
ACTION=="move", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", NAME=="${device}", ${systemdAttrs curInterface._iName}
''
);
}
);
};
}
+5 -2
View File
@@ -16,6 +16,7 @@
rules = [
"-a always,exit -F exe=${lib.getExe pkgs.hello} -k nixos-test"
];
backlogLimit = 512;
};
security.auditd = {
enable = true;
@@ -34,7 +35,9 @@
machine.wait_for_unit("auditd.service")
with subtest("Audit subsystem gets enabled"):
assert "enabled 1" in machine.succeed("auditctl -s")
audit_status = machine.succeed("auditctl -s")
t.assertIn("enabled 1", audit_status)
t.assertIn("backlog_limit 512", audit_status)
with subtest("unix socket plugin activated"):
machine.succeed("stat /var/run/audispd_events")
@@ -45,7 +48,7 @@
with subtest("Stopping audit-rules.service disables the audit subsystem"):
machine.succeed("systemctl stop audit-rules.service")
assert "enabled 0" in machine.succeed("auditctl -s")
t.assertIn("enabled 0", machine.succeed("auditctl -s"))
'';
}
-11
View File
@@ -12,16 +12,10 @@
nodes.auditd = {
security.auditd.enable = true;
security.audit.enable = true;
environment.systemPackages = [ pkgs.audit ];
boot.kernel.sysctl."kernel.printk_ratelimit" = 0;
boot.kernelParams = [ "audit_backlog_limit=8192" ];
};
nodes.journaldAudit = {
services.journald.audit = true;
security.audit.enable = true;
environment.systemPackages = [ pkgs.audit ];
boot.kernel.sysctl."kernel.printk_ratelimit" = 0;
boot.kernelParams = [ "audit_backlog_limit=8192" ];
};
nodes.containerCheck = {
containers.c1 = {
@@ -56,11 +50,6 @@
journaldAudit.succeed("journalctl _TRANSPORT=audit --grep 'unit=systemd-journald'")
# logs should NOT end up in audit log
journaldAudit.fail("grep 'unit=systemd-journald' /var/log/audit/audit.log")
# FIXME: If systemd fixes #15324 this test will start failing.
# You can fix this text by removing the below line.
# logs ideally should NOT end up in kmesg, but they do due to
# https://github.com/systemd/systemd/issues/15324
journaldAudit.succeed("journalctl _TRANSPORT=kernel --grep 'unit=systemd-journald'")
with subtest("container systemd-journald-audit not running"):
+21
View File
@@ -187,6 +187,27 @@ To add a package to Nixpkgs:
(using "→" instead of "->" is also accepted)
Using the `(pkg-name):` prefix is important beyond just being a convention: it queues automatic builds by CI.
More sophisticated prefixes are also possible:
| Message | Automatic Builds |
|--------------------------------------------------------------------------|------------------------------------------------------------|
| `vim: 1.0.0 -> 2.0.0` | `vim` |
| `vagrant: fix dependencies for version 2.0.2` | `vagrant` |
| `python3{9,10}Packages.requests: 1.0.0 -> 2.0.0` | `python39Packages.requests`, `python310Packages.requests` |
| `python312.pkgs.numpy,python313.pkgs.scipy: fix build` | `python312.pkgs.numpy` , `python313.pkgs.scipy` |
When opening a PR with multiple commits, CI creates a single build job for all detected packages.
If `passthru.tests` attributes are available, these will be built as well.
If the title of the _PR_ begins with `WIP:` or contains `[WIP]` anywhere, its packages are not built automatically.
Other than that, PR titles have meaning only for humans.
It is recommended to keep the PR title in sync with the commit title, to make it easier to find.
For PRs with multiple commits, the PR title should be a general summary of these commits.
[!NOTE]
Marking a PR as a draft does not prevent automatic builds.
## Category Hierarchy
[categories]: #category-hierarchy
+40 -29
View File
@@ -1,47 +1,58 @@
{ testers, fetchtorrent, ... }:
{
lib,
testers,
fetchtorrent,
...
}:
let
wired-cd.meta.license = [
# track 1, 4 and 11
{
spdxID = "CC NC-SAMPLING+ 1.0 Deed";
fullName = "NonCommercial Sampling Plus 1.0 Generic";
url = "https://creativecommons.org/licenses/nc-sampling+/1.0/";
free = false; # for noncommercial purposes only
}
# the rest
{
spdxID = "CC SAMPLING+ 1.0 Deed";
fullName = "Sampling Plus 1.0 Generic";
url = "https://creativecommons.org/licenses/sampling+/1.0/";
free = true; # no use in advertisement
}
];
sintel.meta = {
description = "An open source short film to show off open source technologies.";
longDescription = ''
An independently produced short film, initiated by the Blender Foundation
as a means to further improve andvalidate the free/open source 3D
creation suite Blender.
'';
license = lib.licenses.cc-by-30;
homepage = "https://durian.blender.org/";
};
# Via https://webtorrent.io/free-torrents
httpUrl = "https://webtorrent.io/torrents/sintel.torrent";
magnetUrl = "magnet:?xt=urn:btih:08ada5a7a6183aae1e09d831df6748d566095a10&dn=Sintel&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel.torrent";
# All routes to download the torrent should produce the same output and
# therefore have the same FOD hash.
hash = "sha256-EzbmBiTEWOlFUNaV5R4eDeD9EBbp6d93rfby88ACg0s=";
in
{
http-link = testers.invalidateFetcherByDrvHash fetchtorrent {
url = "https://webtorrent.io/torrents/wired-cd.torrent";
hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo=";
inherit hash;
url = httpUrl;
backend = "transmission";
inherit (wired-cd) meta;
inherit (sintel) meta;
};
magnet-link = testers.invalidateFetcherByDrvHash fetchtorrent {
url = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent";
hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo=";
inherit hash;
url = magnetUrl;
backend = "transmission";
inherit (wired-cd) meta;
inherit (sintel) meta;
};
http-link-rqbit = testers.invalidateFetcherByDrvHash fetchtorrent {
url = "https://webtorrent.io/torrents/wired-cd.torrent";
hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo=";
inherit hash;
url = httpUrl;
backend = "rqbit";
inherit (wired-cd) meta;
meta = sintel.meta // {
broken = true;
};
};
magnet-link-rqbit = testers.invalidateFetcherByDrvHash fetchtorrent {
url = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent";
hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo=";
inherit hash;
url = magnetUrl;
backend = "rqbit";
inherit (wired-cd) meta;
meta = sintel.meta // {
broken = true;
};
};
}
+2 -2
View File
@@ -15,13 +15,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "albert";
version = "0.30.1";
version = "0.31.1";
src = fetchFromGitHub {
owner = "albertlauncher";
repo = "albert";
tag = "v${finalAttrs.version}";
hash = "sha256-EscR31DZzLszs2jPQDDcB7SFtSuWPjSBpjJw8i+PsD0=";
hash = "sha256-7YtDC0Xkv2y7vF58j78GsOPAMSvuwTmEobHULDBt9BI=";
fetchSubmodules = true;
};
+3 -3
View File
@@ -21,13 +21,13 @@ in
rustPlatform.buildRustPackage {
pname = "attic";
version = "0-unstable-2025-07-11";
version = "0-unstable-2025-08-07";
src = fetchFromGitHub {
owner = "zhaofengli";
repo = "attic";
rev = "24fad0622fc9404c69e83bab7738359c5be4988e";
hash = "sha256-5TomR72rn4q+5poQcN6EnanxeXKqJSqWVAoDAFN0lUc=";
rev = "687dd7d607824edf11bf33e3d91038467e7fad43";
hash = "sha256-swR4GCqp5LHYJQ7pdePBtsqYyiyy+ASfUvhAgou23KI=";
};
nativeBuildInputs = [
+1 -1
View File
@@ -45,7 +45,7 @@ clangStdenv.mkDerivation rec {
openssl
zlib
]
++ lib.optional (clangStdenv.cc.isClang && clangStdenv.targetPlatform.isStatic) empty-libgcc_eh;
++ lib.optional (clangStdenv.cc.isClang && clangStdenv.hostPlatform.isStatic) empty-libgcc_eh;
# FIXME: separate the binaries from the stuff that user systems actually use
# This runs into a terrible UX issue in Lix and I just don't want to debug it
+5 -5
View File
@@ -18,7 +18,7 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "dbeaver-bin";
version = "25.1.3";
version = "25.1.4";
src =
let
@@ -31,10 +31,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
aarch64-darwin = "macos-aarch64.dmg";
};
hash = selectSystem {
x86_64-linux = "sha256-SJCm5HnyhhpFvAK5ei9rkjCKnv8k904Vy0mOqTNcZXM=";
aarch64-linux = "sha256-hE4Eu8eL4fJlCj7s+VM4moPBGleibg3nT363avB9gq4=";
x86_64-darwin = "sha256-RWewJ5A0j+W17bv0DtxHG1iEz6q87/FwOvn34tHoN7Q=";
aarch64-darwin = "sha256-vpVQF3o054s6ztpxJVGj8z3R4E2bc3LD+t8/4PO4hXw=";
x86_64-linux = "sha256-ZJUmuJqTD3cRMMdIIqbJRp6C2GacnRn1fxzL23Vg8og=";
aarch64-linux = "sha256-nHIk3MObHge5ACyype8HgFwvolPqrQ0BTDs/pYlsiW8=";
x86_64-darwin = "sha256-/dl3B2FLz7V27c5/q8L1HtssbT/lLAet0lhDvgGVqZM=";
aarch64-darwin = "sha256-/NClQkx6In9lS4vtk2lBhFHw0BLObmNqTIVJfhJcob4=";
};
in
fetchurl {
+3 -3
View File
@@ -32,13 +32,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "flaresolverr";
version = "3.3.21-unstable-2025-03-04";
version = "3.3.24";
src = fetchFromGitHub {
owner = "FlareSolverr";
repo = "FlareSolverr";
rev = "ce5369dd413cd71a81ce38a5ccd379f6c9352e23";
hash = "sha256-cZ/YT4H2OU5l3AosROnkoyT5qrva5lxKshQMS626f2E=";
rev = "v${finalAttrs.version}";
hash = "sha256-BIV5+yLTgVQJtxi/F9FwtZ4pYcE2vGHmEgwigMtqwD8=";
};
nativeBuildInputs = [ makeWrapper ];
+2 -2
View File
@@ -7,14 +7,14 @@
python3Packages.buildPythonApplication rec {
pname = "flexget";
version = "3.17.1";
version = "3.17.6";
pyproject = true;
src = fetchFromGitHub {
owner = "Flexget";
repo = "Flexget";
tag = "v${version}";
hash = "sha256-9Ba7VgVmy5FOnqzAB/ebTFeI892Y1G0R/UcNpkbNdGA=";
hash = "sha256-E0ytB30tiJgmdfpJ+KCy67enqmfZT7HjoZHlqtRQWsQ=";
};
pythonRelaxDeps = true;
@@ -30,6 +30,9 @@ stdenvNoCC.mkDerivation rec {
hicolor-icon-theme
];
# breeze-icons propagates qtbase
dontWrapQtApps = true;
dontDropIconThemeCache = true;
installPhase = ''
+2 -2
View File
@@ -178,11 +178,11 @@ in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "microsoft-edge";
version = "138.0.3351.121";
version = "139.0.3405.86";
src = fetchurl {
url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_${finalAttrs.version}-1_amd64.deb";
hash = "sha256-1Oi6Q2/2Pk0BG937Ij0zI7tgBSnwhPwGx34b+HlpXTU=";
hash = "sha256-S1/RUSwRQsBQno/I31xjw1CGs0tJpl5HRatat+wOqmE=";
};
# With strictDeps on, some shebangs were not being patched correctly
@@ -10,16 +10,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "mpris-discord-rpc";
version = "0.5.0";
version = "0.5.1";
src = fetchFromGitHub {
owner = "patryk-ku";
repo = "mpris-discord-rpc";
tag = "v${finalAttrs.version}";
hash = "sha256-CzIHmc1BfKlUjiNjgslNDt00Xwpkz5zoDpYMd0HnHxE=";
hash = "sha256-tPIm07q5HWosqhA3zefyuwM+fIztNZe1sSpB/NmUIoE=";
};
cargoHash = "sha256-RUebfsAzn93a0Ebp6cmzZWj72ivkaPzEaN6RIP4/WQM=";
cargoHash = "sha256-3MJAvCc0ekUQ+eM5n8MdPNxXJWUgV76vi/Rq7GhhEPE=";
nativeBuildInputs = [
pkg-config
@@ -59,6 +59,8 @@ This can happen when an identifier was added, renamed, or removed.
Added new content?
$ redirects add-content identifier path
often:
$ redirects add-content identifier index.html
Moved existing content to a different output path?
$ redirects move-content identifier path
@@ -69,7 +71,11 @@ This can happen when an identifier was added, renamed, or removed.
Removed content? Redirect to alternatives or relevant release notes.
$ redirects remove-and-redirect identifier target-identifier
NOTE: Run `nix-shell doc` or `nix-shell nixos/doc/manual` to make this command available.
NOTE: Run the right nix-shell to make this command available.
Nixpkgs:
$ nix-shell doc
NixOS:
$ nix-shell nixos/doc/manual
""")
error_messages.append("NOTE: If your build passes locally and you see this message in CI, you probably need a rebase.")
return "\n".join(error_messages)
+2 -2
View File
@@ -116,13 +116,13 @@ in
goBuild (finalAttrs: {
pname = "ollama";
# don't forget to invalidate all hashes each update
version = "0.11.3";
version = "0.11.4";
src = fetchFromGitHub {
owner = "ollama";
repo = "ollama";
tag = "v${finalAttrs.version}";
hash = "sha256-FghgCtVQIxc9qB5vZZlblugk6HLnxoT8xanZK+N8qEc=";
hash = "sha256-joIA/rH8j+SJH5EVMr6iqKLve6bkntPQM43KCN9JTZ8=";
};
vendorHash = "sha256-SlaDsu001TUW+t9WRp7LqxUSQSGDF1Lqu9M1bgILoX4=";
+2 -2
View File
@@ -29,13 +29,13 @@
stdenv.mkDerivation rec {
pname = "planify";
version = "4.13.0";
version = "4.13.2";
src = fetchFromGitHub {
owner = "alainm23";
repo = "planify";
rev = version;
hash = "sha256-4fsgXyIt5bhdbG0DRFYv6vrGagTyH5SAFcOaAV3uq0g=";
hash = "sha256-bQ7kKUdInf6ZYO0X6kwW0HbuciiXhGyAdvnPcT0MllM=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -11,7 +11,7 @@
stdenv.mkDerivation rec {
pname = "structorizer";
version = "3.32-27";
version = "3.32-30";
desktopItems = [
(makeDesktopItem {
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
owner = "fesch";
repo = "Structorizer.Desktop";
rev = version;
hash = "sha256-Z60HB0s2LkO/Vs/OaHWc969Y6H+wBiN5slRGFf4JCro=";
hash = "sha256-sv/Uoh1UPVsioKpeJeuqs+EPPsuQwO54WIUPyc8Fjco=";
};
patches = [
@@ -37,6 +37,9 @@ stdenv.mkDerivation rec {
deepin-icon-theme
];
# breeze-icons propagates qtbase
dontWrapQtApps = true;
dontDropIconThemeCache = true;
preFixup = ''
@@ -27,6 +27,9 @@ stdenvNoCC.mkDerivation rec {
propagatedBuildInputs = [ papirus-icon-theme ];
# breeze-icons propagates qtbase
dontWrapQtApps = true;
dontDropIconThemeCache = true;
# Remove broken symbolic link(https://github.com/linuxdeepin/developer-center/issues/11245)
@@ -7,16 +7,16 @@
php.buildComposerProject2 (finalAttrs: {
pname = "phpstan";
version = "2.1.21";
version = "2.1.22";
src = fetchFromGitHub {
owner = "phpstan";
repo = "phpstan-src";
tag = finalAttrs.version;
hash = "sha256-f+GxZPt5O++x0XKxdJqAiEfpgQYCN4uzDAzw20xd268=";
hash = "sha256-lhUsMDjfFOXdP3/HqPjaudXm5rugUo9tBaDPaI3CT20=";
};
vendorHash = "sha256-6jGZF10B9aCMgLUKXcckcPF96U8edsPaMAQ7egHAAQk=";
vendorHash = "sha256-wVCCWzW1A7asmxECx9Uk6PpThnrvhjTAEm689bKtHA0=";
composerStrictValidation = false;
doInstallCheck = true;
@@ -2,9 +2,7 @@
lib,
buildPythonPackage,
fetchPypi,
isPy27,
setuptools,
futures ? null,
docloud,
requests,
}:
@@ -14,7 +12,6 @@ buildPythonPackage rec {
version = "2.30.251";
pyproject = true;
# No source available from official repo
src = fetchPypi {
inherit pname version;
hash = "sha256-ZQMhn1tRJ1p+TnfKQzKQOw+Akl0gUDCkjT9qp8oNvyo=";
@@ -27,13 +24,14 @@ buildPythonPackage rec {
build-system = [ setuptools ];
propagatedBuildInputs = [
dependencies = [
docloud
requests
]
++ lib.optional isPy27 futures;
];
# PypI release does not include tests
doCheck = false;
pythonImportsCheck = [ "docplex" ];
meta = with lib; {
@@ -8,7 +8,6 @@
dacite,
decorator,
fetchFromGitHub,
future,
first,
jsonpath-ng,
loguru,
@@ -54,14 +53,13 @@ buildPythonPackage rec {
nativeBuildInputs = [ antlr4 ];
propagatedBuildInputs = [
dependencies = [
antlr4-python3-runtime
asciimatics
click
dacite
decorator
first
future
jsonpath-ng
loguru
overrides
@@ -88,8 +86,8 @@ buildPythonPackage rec {
meta = with lib; {
description = "Module to view JSON in a TUI";
homepage = "https://github.com/cielong/pyfx";
changelog = "https://github.com/cielong/pyfx/releases/tag/v${version}";
license = with licenses; [ mit ];
changelog = "https://github.com/cielong/pyfx/releases/tag/${src.tag}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
mainProgram = "pyfx";
};
@@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "sev-snp-measure";
version = "0.0.11";
version = "0.0.12";
pyproject = true;
@@ -16,7 +16,7 @@ buildPythonPackage rec {
owner = "virtee";
repo = "sev-snp-measure";
tag = "v${version}";
hash = "sha256-M+d9uIAQvEmEsdhhjlwHbhB2RhlaGjphN4ov2ipzCFY=";
hash = "sha256-UcXU6rNjcRN1T+iWUNrqeJCkSa02WU1/pBwLqHVPRyw=";
};
nativeBuildInputs = [
@@ -32,7 +32,7 @@ buildPythonPackage rec {
meta = {
description = "Calculate AMD SEV/SEV-ES/SEV-SNP measurement for confidential computing";
homepage = "https://github.com/virtee/sev-snp-measure";
changelog = "https://github.com/virtee/sev-snp-measure/releases/tag/v${version}";
changelog = "https://github.com/virtee/sev-snp-measure/releases/tag/${src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ msanft ];
mainProgram = "sev-snp-measure";
-3
View File
@@ -2,8 +2,5 @@
mkKdeDerivation {
pname = "kpackage";
# Follow symlinks when resolving packages
# FIXME(later): upstream
patches = [ ./follow-symlinks.patch ];
meta.mainProgram = "kpackagetool6";
}
@@ -1,13 +0,0 @@
diff --git a/src/kpackage/packageloader.cpp b/src/kpackage/packageloader.cpp
index 9dbd1f6..c50a6e5 100644
--- a/src/kpackage/packageloader.cpp
+++ b/src/kpackage/packageloader.cpp
@@ -128,7 +128,7 @@ QList<KPluginMetaData> PackageLoader::listPackages(const QString &packageFormat,
}
for (auto const &plugindir : std::as_const(paths)) {
- QDirIterator it(plugindir, QStringList{QStringLiteral("metadata.json")}, QDir::Files, QDirIterator::Subdirectories);
+ QDirIterator it(plugindir, QStringList{QStringLiteral("metadata.json")}, QDir::Files, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
std::unordered_set<QString> dirs;
while (it.hasNext()) {
it.next();
+1 -3
View File
@@ -2,10 +2,8 @@
mkKdeDerivation {
pname = "kservice";
# FIXME(later): upstream
# FIXME(later): the whole sycoca situation is very bad
patches = [
# follow symlinks when generating sycoca
./qdiriterator-follow-symlinks.patch
# explode less when sycoca is deleted
./handle-sycoca-deletion.patch
];
@@ -1,13 +0,0 @@
diff --git a/src/sycoca/kbuildsycoca.cpp b/src/sycoca/kbuildsycoca.cpp
index b125299..0682b90 100644
--- a/src/sycoca/kbuildsycoca.cpp
+++ b/src/sycoca/kbuildsycoca.cpp
@@ -207,7 +207,7 @@ bool KBuildSycoca::build()
const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, m_resourceSubdir, QStandardPaths::LocateDirectory);
qCDebug(SYCOCA) << "Looking for subdir" << m_resourceSubdir << "=>" << dirs;
for (const QString &dir : dirs) {
- QDirIterator it(dir, QDirIterator::Subdirectories);
+ QDirIterator it(dir, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
while (it.hasNext()) {
const QString filePath = it.next();
Q_ASSERT(filePath.startsWith(dir)); // due to the line below...
-5
View File
@@ -8,11 +8,6 @@
mkKdeDerivation {
pname = "solid";
patches = [
# Also search /run/wrappers for mount/umount
./fix-search-path.patch
];
extraNativeBuildInputs = [
qttools
bison
@@ -1,17 +0,0 @@
diff --git a/src/solid/devices/backends/fstab/fstabhandling.cpp b/src/solid/devices/backends/fstab/fstabhandling.cpp
index ac2a628..7ee46cc 100644
--- a/src/solid/devices/backends/fstab/fstabhandling.cpp
+++ b/src/solid/devices/backends/fstab/fstabhandling.cpp
@@ -275,7 +275,11 @@ bool Solid::Backends::Fstab::FstabHandling::callSystemCommand(const QString &com
const QObject *receiver,
std::function<void(QProcess *)> callback)
{
- static const QStringList searchPaths{QStringLiteral("/sbin"), QStringLiteral("/bin"), QStringLiteral("/usr/sbin"), QStringLiteral("/usr/bin")};
+ static const QStringList searchPaths{QStringLiteral("/run/wrappers/bin"),
+ QStringLiteral("/sbin"),
+ QStringLiteral("/bin"),
+ QStringLiteral("/usr/sbin"),
+ QStringLiteral("/usr/bin")};
static const QString joinedPaths = searchPaths.join(QLatin1Char(':'));
const QString exec = QStandardPaths::findExecutable(commandName, searchPaths);
if (exec.isEmpty()) {
+216 -216
View File
@@ -1,362 +1,362 @@
{
"attica": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/attica-6.16.0.tar.xz",
"hash": "sha256-XRyI9k0G942CWEtSdfIGI1aGb4K3/fuXKKxNxNUJvmo="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/attica-6.17.0.tar.xz",
"hash": "sha256-L6tKLTLpj2JGW4G9puQW/3+pnWqklMSyYfh3J1j2txo="
},
"baloo": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/baloo-6.16.0.tar.xz",
"hash": "sha256-jCf+7KJasHOGLkM8c1eC8ocTVo0TkKhHcbG6Q/YXH2U="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/baloo-6.17.0.tar.xz",
"hash": "sha256-IarD6V6gld8Cm74L1WY6o5ioiU6cMep/q7XNC5hIVEo="
},
"bluez-qt": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/bluez-qt-6.16.0.tar.xz",
"hash": "sha256-d/bDDzeou+z3PV849DCDh55CCJY50BeUU0V9O1h9pZQ="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/bluez-qt-6.17.0.tar.xz",
"hash": "sha256-c25rDDFYl8XqhEVE/u71L9HplI7E/yTyxSxf1xig5l0="
},
"breeze-icons": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/breeze-icons-6.16.0.tar.xz",
"hash": "sha256-lG55O2dBJtuYTi94O+SzSOnGjCUn003dcl+csIYpNrQ="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/breeze-icons-6.17.0.tar.xz",
"hash": "sha256-T/x1iG6aFKKgLaSHFgC4wLWkB1a46Zy+z7UVaW2Tw7g="
},
"extra-cmake-modules": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/extra-cmake-modules-6.16.0.tar.xz",
"hash": "sha256-6IHBnjNb64IybgLQAHZufugyTXzoWD3w9b/UwmmY+/4="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/extra-cmake-modules-6.17.0.tar.xz",
"hash": "sha256-3+yxfQI49N4d00hbkqZgYTfUqcZ7nkzkBAf+DyrsCkA="
},
"frameworkintegration": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/frameworkintegration-6.16.0.tar.xz",
"hash": "sha256-oOPixXdrGeLeYnOJPwySfvfq3qhqYwHyHhg3fLdZB/w="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/frameworkintegration-6.17.0.tar.xz",
"hash": "sha256-nZ4BH6ydmWfZTEPtKiE9hRJjgF4dtdrQjYEv4/DmrRI="
},
"kapidox": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kapidox-6.16.0.tar.xz",
"hash": "sha256-PNJqLDN0teZgMPhcxjTDeNihMYkkn64QNNZKdw3Fzhs="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kapidox-6.17.0.tar.xz",
"hash": "sha256-p6PCwgnPX4EK9IJko2HlJtuskfF5wsAgj6AtxBb58NI="
},
"karchive": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/karchive-6.16.0.tar.xz",
"hash": "sha256-26GP8r4dC1ehgSoz3mYNTPdiPc+qj5wNZO/eIVJAnP8="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/karchive-6.17.0.tar.xz",
"hash": "sha256-YGR8JGRqQ/Z96vN+ICRt+dN5+j91E/6FNqHfozCGW0A="
},
"kauth": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kauth-6.16.0.tar.xz",
"hash": "sha256-BPPoT9pejOt/EAJm41aaNOgomxBGr07HUFme+tYDSWM="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kauth-6.17.0.tar.xz",
"hash": "sha256-pWPMqqYVwfHb30tFrR2ic55A/ZSQvFkGr9WrXa41+TI="
},
"kbookmarks": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kbookmarks-6.16.0.tar.xz",
"hash": "sha256-ykZWrUmt1SS0tovChgcaWuR/g+xGof2ODDcT1wrWrbU="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kbookmarks-6.17.0.tar.xz",
"hash": "sha256-BBuWZ9PUhRsOb6Yqn8ESqZOKSHtMpSDu3eG1NWNiF/I="
},
"kcalendarcore": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kcalendarcore-6.16.0.tar.xz",
"hash": "sha256-Uh0dKzVuPXzS4L9oeRnJhlXGJs3p7VIOQvxzDnqVvZs="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kcalendarcore-6.17.0.tar.xz",
"hash": "sha256-SgZ1xiEcrxg6BnGUskCT3GMBWhpZvge4ZM9F96zRjhM="
},
"kcmutils": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kcmutils-6.16.0.tar.xz",
"hash": "sha256-QD9esyiP+7xky2dBBIAH3egr45DaLFC6FHy0dJIeM0Q="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kcmutils-6.17.0.tar.xz",
"hash": "sha256-j2XvD09PMlrW4qMMsUJCIg+BGrHgMUFv0/qlRKxoPoo="
},
"kcodecs": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kcodecs-6.16.0.tar.xz",
"hash": "sha256-2NI83IU6qDK/OYhsa2c/7ocnniWM8Bq+sKz+pfcY5ZU="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kcodecs-6.17.0.tar.xz",
"hash": "sha256-B7HG9sMJFWKamTRvn9WoVK/jZykZEfthAAkyd39+mPI="
},
"kcolorscheme": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kcolorscheme-6.16.0.tar.xz",
"hash": "sha256-RgJtCj1SKUM4n6PvZqEp2fx25eYpXIT4F9ErqqJocwM="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kcolorscheme-6.17.0.tar.xz",
"hash": "sha256-yL1F6ySPw42Bbk6w/ZSdkJwJo6WpCEjvbUBAw1lz97Q="
},
"kcompletion": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kcompletion-6.16.0.tar.xz",
"hash": "sha256-P3HX8kynBFKTIu6tfSEyMx6UYeuRq0idbj2ZDZ18oTM="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kcompletion-6.17.0.tar.xz",
"hash": "sha256-8i5Mb6zsgSveSrjVagWziiQ92TYsjetPE2fvsbbmRmM="
},
"kconfig": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kconfig-6.16.0.tar.xz",
"hash": "sha256-umzFjwJf75UlvGQPeWe3wJBTtZLEI2jgltl6lGYaNSU="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kconfig-6.17.0.tar.xz",
"hash": "sha256-BnQ1skyp989WqM5bEIQ4oVYHsm3FKQWuB9wYfH4pSd4="
},
"kconfigwidgets": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kconfigwidgets-6.16.0.tar.xz",
"hash": "sha256-YcAlb9rgSbElhr0eDZMegFFdPHAvF4WoiZTuVO7i1cU="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kconfigwidgets-6.17.0.tar.xz",
"hash": "sha256-C8U2bTjcvhKuoyqoTnfpwnjTxjru1vUJr1KEijCkHiE="
},
"kcontacts": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kcontacts-6.16.0.tar.xz",
"hash": "sha256-/1epqxGblYlTNdQnSBAJz/cq6c9tD8L6mlBPls+sal4="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kcontacts-6.17.0.tar.xz",
"hash": "sha256-GY2yW9x+f+4Rdm7/7ROtRDj2ohG+ihahzR6BXj688ho="
},
"kcoreaddons": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kcoreaddons-6.16.0.tar.xz",
"hash": "sha256-eYonRMKW0Tshbq3X5dgBpv1pVpRKIUerKDDDmZMK4qA="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kcoreaddons-6.17.0.tar.xz",
"hash": "sha256-AwPW0ennbPnsBqQazRpSCIpA3zooBel+HDJ7r2B4Qqo="
},
"kcrash": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kcrash-6.16.0.tar.xz",
"hash": "sha256-BuOhCbpZejlRVDMCUElcPgOndLfW8hOjUnia2cNpHcM="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kcrash-6.17.0.tar.xz",
"hash": "sha256-UvS93GQuaOlvjxizS7qAO4+fk8uM9eHRqrzP08UoXhM="
},
"kdav": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kdav-6.16.0.tar.xz",
"hash": "sha256-WKHHZkaztSdGp2kOy5hgRIpZ33f8ppGZgxNSdFcGsyU="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kdav-6.17.0.tar.xz",
"hash": "sha256-jYo7A8XFP1iiZgtYm4lzHRgro7xiLHbge/5sv1Cmk8c="
},
"kdbusaddons": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kdbusaddons-6.16.0.tar.xz",
"hash": "sha256-O6G5YoSDo4oTt7zmqsCuLW8Rb2JgGTB4biVNpN/V0UU="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kdbusaddons-6.17.0.tar.xz",
"hash": "sha256-V9ZAv6EcFmC13NPBxx1gWkBULRZX4E2b+Ge3Yb/ncvQ="
},
"kdeclarative": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kdeclarative-6.16.0.tar.xz",
"hash": "sha256-xY33ofUBKG+W0M8LOWWY7eFus8rbyKBdNSNs5N8xyA4="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kdeclarative-6.17.0.tar.xz",
"hash": "sha256-tTY9/HNU0foe1J1xdaAzSo72boK7OJukuv/m93jy4ro="
},
"kded": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kded-6.16.0.tar.xz",
"hash": "sha256-STcvsB3VPCWyeJYD7WroX+VKcS7X90JsiE0HXTE4Gyo="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kded-6.17.0.tar.xz",
"hash": "sha256-T18EudvPOgukKBVBnZabAaZiQCTRSZTVQKlzpjcc8nc="
},
"kdesu": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kdesu-6.16.0.tar.xz",
"hash": "sha256-+cv66IWWz9ALJpdEyJoELfvASCc+NfHH4VhCnbVcjWg="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kdesu-6.17.0.tar.xz",
"hash": "sha256-ZmiZrVRre9AC4/wWlwMviSDOcmHfLvUZ6B1KrpGXESM="
},
"kdnssd": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kdnssd-6.16.0.tar.xz",
"hash": "sha256-sIvfBcfZjjE2aZWiCHrHRxqJk8SZF9PNecC6HS9pqOA="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kdnssd-6.17.0.tar.xz",
"hash": "sha256-bhaBoBpM0JZQuk3hu61OwD0/ZFL8B/9PdOJLJAQPPgo="
},
"kdoctools": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kdoctools-6.16.0.tar.xz",
"hash": "sha256-XAxTGnl4ZQ9ZOmOiq6GmQdWQU350xkSqNhxjWEsRWqI="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kdoctools-6.17.0.tar.xz",
"hash": "sha256-J7DssCMieDcQPj+mrePeCqTV9W9PbJeplv5u50vonS8="
},
"kfilemetadata": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kfilemetadata-6.16.0.tar.xz",
"hash": "sha256-R9aAtiaXQhvf6j3L/rVjUo4+uo2vSFZMPD2lZON2QMU="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kfilemetadata-6.17.0.tar.xz",
"hash": "sha256-K7mpmEarD3NjbsNPuiRJCKEjWR9/dFi6uRuM+yOSMEQ="
},
"kglobalaccel": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kglobalaccel-6.16.0.tar.xz",
"hash": "sha256-ZmNGGoJ5i13MufROkcDDfhLJUfh+KVw7p/Rl2se9SqE="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kglobalaccel-6.17.0.tar.xz",
"hash": "sha256-/D1AVVQmORRbPkUGgmR0XGEfw+zw0BROqjUyA4+pcfE="
},
"kguiaddons": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kguiaddons-6.16.0.tar.xz",
"hash": "sha256-nh1TpPvh63zMEGEKFzfZslYHVvib9lCUCnQ1bap9suI="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kguiaddons-6.17.0.tar.xz",
"hash": "sha256-XQfbyOJKsQd951t4MKHzYt/zcQ+wQdYbjaAsV3BWq2s="
},
"kholidays": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kholidays-6.16.0.tar.xz",
"hash": "sha256-VwKcNb0Iw2D4hFOyAuDGe5qr3W+fk/LqBmtqhnjdBQE="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kholidays-6.17.0.tar.xz",
"hash": "sha256-W459+Ie/eQ7d1lM5EO76mwCnfyZ1Jg2nHza5XLdk+rI="
},
"ki18n": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/ki18n-6.16.0.tar.xz",
"hash": "sha256-xSrRCxQ2XmDEohnLZnBtEUR2ZFKXyyqfFUmHR89EIdc="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/ki18n-6.17.0.tar.xz",
"hash": "sha256-UPhn2UjBWq2Rw8V/4vZGLNvziB+rb9mbhbFWFvBzmD4="
},
"kiconthemes": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kiconthemes-6.16.0.tar.xz",
"hash": "sha256-pzopdsxJNhyPoMYS9TyoGvzyx0psTVWsiikW9X0H5AI="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kiconthemes-6.17.0.tar.xz",
"hash": "sha256-XPCyBijTAER3cMSrAO2yJezIVWF5KSPsAIP5vJ4LQkc="
},
"kidletime": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kidletime-6.16.0.tar.xz",
"hash": "sha256-V6ekDXCT16Zpf5pD/1XLyyYp7F0o7OSjeqQADvqmGy0="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kidletime-6.17.0.tar.xz",
"hash": "sha256-H2fSZ0nenwn0qw3Esj5T7LhNkhsdUtYSgi/cU8NMOzc="
},
"kimageformats": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kimageformats-6.16.0.tar.xz",
"hash": "sha256-ht+7BauEX3sZp/7IjhNdFOR68U3BcT2fs5GWZRDB3Es="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kimageformats-6.17.0.tar.xz",
"hash": "sha256-GAtnD3ZrrnQDQOWv0gROoIJC6pNUWbuVvIAxPQYgZqg="
},
"kio": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kio-6.16.0.tar.xz",
"hash": "sha256-Z16/igxyv9/UNO9zUwy3rpISeu/wloiW1nzFqiIzPow="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kio-6.17.0.tar.xz",
"hash": "sha256-0A1JUhmPjp/0QzWzQHFGFeASSFftvWfElktQ4MkT1i0="
},
"kirigami": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kirigami-6.16.0.tar.xz",
"hash": "sha256-FtEUKqzYUU+Vz5vbRLKnIPM5e17mikiaVMhqVgr1VRY="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kirigami-6.17.0.tar.xz",
"hash": "sha256-C3+3GaIx/+t/zETIupA+rRO0NYxBnV8LFVUtP8hO11s="
},
"kitemmodels": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kitemmodels-6.16.0.tar.xz",
"hash": "sha256-cXZuqeePcL1PYbFg9wsx94JcX0x8dNOXFmqdrnsdz1w="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kitemmodels-6.17.0.tar.xz",
"hash": "sha256-uQBEF7XpuzMJQ0q5CBmIlZD2v6MtSmU4jQUt9DLAsWY="
},
"kitemviews": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kitemviews-6.16.0.tar.xz",
"hash": "sha256-xFVB2F7BsG0WC4GcA/BzzwAaYEEfHUVwamEdnquSFN0="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kitemviews-6.17.0.tar.xz",
"hash": "sha256-MdHI/2Syju8hbmOkQ6zNxiHFP1HsI+ahN9nghil0L9E="
},
"kjobwidgets": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kjobwidgets-6.16.0.tar.xz",
"hash": "sha256-UXcD8BiOx911mvONosAyLuKnYxIlGJhTYmr5r/C5Syo="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kjobwidgets-6.17.0.tar.xz",
"hash": "sha256-DcVt4ZvON2m3jDTasTmViAFxgPKY3oQZ7aGQmkIRtiQ="
},
"knewstuff": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/knewstuff-6.16.0.tar.xz",
"hash": "sha256-U+QJqJvXqMHxWOKFG67gPutRZMn6Kp0MD5VtI9bhTmI="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/knewstuff-6.17.0.tar.xz",
"hash": "sha256-EFnLfNubqBcN6CoIxoM0kAB6FSpG5L2+JDBO7dwmPWY="
},
"knotifications": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/knotifications-6.16.0.tar.xz",
"hash": "sha256-Qj2kEFllekljRenXUoqw4N3lP2eBYPL64su8WDypO58="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/knotifications-6.17.0.tar.xz",
"hash": "sha256-t4AcVGk15ggqctTH3QOHQHtqGQWriN6b3a82mo7KQUE="
},
"knotifyconfig": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/knotifyconfig-6.16.0.tar.xz",
"hash": "sha256-kNgo39VsCWU7yVyR5yyQwBnUAhQ3dZ1B5eCay7GDypg="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/knotifyconfig-6.17.0.tar.xz",
"hash": "sha256-5aCPeHL/uDb7/pcm64bBBOMK/FWZYTjZZXMfV5SYEmM="
},
"kpackage": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kpackage-6.16.0.tar.xz",
"hash": "sha256-pF/OECbbO2XN0d0OETdICOJoaRSgYvZkTrqo7TCO48s="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kpackage-6.17.0.tar.xz",
"hash": "sha256-eNIxoiM5SSLQKVfheReiCN4OmCJPIfwQ5TislxvbQqQ="
},
"kparts": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kparts-6.16.0.tar.xz",
"hash": "sha256-3z40gzQPqeuyDlwL9VfOxI3r/Sr53TE70bxFUTHGu2c="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kparts-6.17.0.tar.xz",
"hash": "sha256-HmTUJs5HUBqP8brIwjZvDNFT5s1NRA6CfrABXZ44w+k="
},
"kpeople": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kpeople-6.16.0.tar.xz",
"hash": "sha256-9tT7agWVy7D7CiabFQT59fCkgWYyjIoujeWGFAOV+2o="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kpeople-6.17.0.tar.xz",
"hash": "sha256-3Q7EubrtQKL5YM5JA73HkHP1UZaTkzFOOql8dfcw978="
},
"kplotting": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kplotting-6.16.0.tar.xz",
"hash": "sha256-ohF+0QtcWZL5sWDLmLxTBCzdJX3mubny9bpKalwAvQY="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kplotting-6.17.0.tar.xz",
"hash": "sha256-ZlSWW2PQhXwxwhgX5WkxaEwy3d8DXoMWnKbqfWuaJkM="
},
"kpty": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kpty-6.16.0.tar.xz",
"hash": "sha256-l2Gx9a9/oQ5+PKi1KpoQ4kr5lN565kLBVdunyZsU6c8="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kpty-6.17.0.tar.xz",
"hash": "sha256-lqcWh6jeC+zDSoFXVy0kQLqNS5dv1dCBMzHf2GuSqrs="
},
"kquickcharts": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kquickcharts-6.16.0.tar.xz",
"hash": "sha256-A6cPpbWx8Ji7zAIN0XkrjAuZnYvnzNGzS3n1t6OfGD0="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kquickcharts-6.17.0.tar.xz",
"hash": "sha256-HiBqloTYgs4sFH5DY5LcPvbNp55Lwt31qgOY0uLdxaQ="
},
"krunner": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/krunner-6.16.0.tar.xz",
"hash": "sha256-8xF0ETFVLRSHWIBwfXBAICi/sADQ2W+Ac0ZDEfyrXbw="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/krunner-6.17.0.tar.xz",
"hash": "sha256-nUpcDHSwz6njXDHediYz3ewEOcUPpEvIW+woraAQaRI="
},
"kservice": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kservice-6.16.0.tar.xz",
"hash": "sha256-7l7J6pMVqdHlLT5t4duLuPPZRcQmCoUjy+NIl7HMCB4="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kservice-6.17.0.tar.xz",
"hash": "sha256-sBRpfqO6NZ9GpunPlQ17vXqc8J6Vs2cYw2tmBalCSu4="
},
"kstatusnotifieritem": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kstatusnotifieritem-6.16.0.tar.xz",
"hash": "sha256-c8JZCy9vtfYfw7fcAh33Y78POWnB6rjF0Lhd9EWsrSA="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kstatusnotifieritem-6.17.0.tar.xz",
"hash": "sha256-Z4qb/IcAZtVBO7z6CaVrgrCv/SvCIs5XAdAqixKe3ZE="
},
"ksvg": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/ksvg-6.16.0.tar.xz",
"hash": "sha256-7jvwcm6EE3wTHM1cYcF/CO3AwNjp+ifSbNOkUk9c9sM="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/ksvg-6.17.0.tar.xz",
"hash": "sha256-Nyjalmky8g8ZClRaf0Lt6i+b2+bXJ6W8G1V+9RVbf5Q="
},
"ktexteditor": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/ktexteditor-6.16.0.tar.xz",
"hash": "sha256-q+v+ep7kuhq44bG4A16UihdEUczoq0rYJ404mg5ZcSg="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/ktexteditor-6.17.0.tar.xz",
"hash": "sha256-mQTAxckzo2jW9JLZ4RbMziAQVNWgKbiw/gdZ/4frjKM="
},
"ktexttemplate": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/ktexttemplate-6.16.0.tar.xz",
"hash": "sha256-GIDPGokAMdxhclE9Pf54841XJhhJeCIMpxQqOm5A+bU="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/ktexttemplate-6.17.0.tar.xz",
"hash": "sha256-FddZQdFerDzRJDBmsTow1sFFHKYwsMKbNiS+NK1z6XI="
},
"ktextwidgets": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/ktextwidgets-6.16.0.tar.xz",
"hash": "sha256-y3GK4SwoobF/LlUvCPEhrqmabdX/Q3snBYGrknCgLqE="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/ktextwidgets-6.17.0.tar.xz",
"hash": "sha256-M9RuzdA/9oWC2lzvJRkhqMbnpdt62b/QQyywBxKsKeM="
},
"kunitconversion": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kunitconversion-6.16.0.tar.xz",
"hash": "sha256-paRy6b9YQZEZXdQH0JvEZ5o0uGmpern9+DqspY6LDg0="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kunitconversion-6.17.0.tar.xz",
"hash": "sha256-8mJaS6JbMyn7lzAkkHO800m3o0Y2IUjH+peYnvx+XMo="
},
"kuserfeedback": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kuserfeedback-6.16.0.tar.xz",
"hash": "sha256-9PdE4KqHikyYSZ7vp5jq7Z3ZzesZIYIpKlTf1+uB5vU="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kuserfeedback-6.17.0.tar.xz",
"hash": "sha256-DxtTYf+m//Euw9/Xo+SxsqpuutxK/MA6nTHC1JvsfK8="
},
"kwallet": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kwallet-6.16.0.tar.xz",
"hash": "sha256-2N0zDSxGQ9M1BQwXCSUilBCKdat3zbZytW9AvKaFTu0="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kwallet-6.17.0.tar.xz",
"hash": "sha256-RMr2kfR7okby77E/nI9xI8fmdF1CgVYCKLgVjMi5PX0="
},
"kwidgetsaddons": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kwidgetsaddons-6.16.0.tar.xz",
"hash": "sha256-dmP4gFL9jKlHuf4Lvq0E/yKOiE8SRJijKMww6fFykVw="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kwidgetsaddons-6.17.0.tar.xz",
"hash": "sha256-3LMzh5U80EKdQpfWKLSHLno6lwzOXqhLRGZ32LdIfqE="
},
"kwindowsystem": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kwindowsystem-6.16.0.tar.xz",
"hash": "sha256-3DtaxeXq6lt2r46F8GXdvOkf9+P8wTxtYArVO7U7GzE="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kwindowsystem-6.17.0.tar.xz",
"hash": "sha256-JZq+9YsJrRqAIrXLlIMamPPltcx8ZfegtAvmQ2F1b2M="
},
"kxmlgui": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/kxmlgui-6.16.0.tar.xz",
"hash": "sha256-Jv5TddlQKcWoKNW0f8SyDoaEvDvojfG8lAgoIc4yp04="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/kxmlgui-6.17.0.tar.xz",
"hash": "sha256-oYBxacosOGqNPiXLKwZlVOSWY6bj9jLxoZaO9UdkMOM="
},
"modemmanager-qt": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/modemmanager-qt-6.16.0.tar.xz",
"hash": "sha256-O5kp60TDNZpr6cX/D68oGKJ3E/4kfcJdSX87UfYi+J4="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/modemmanager-qt-6.17.0.tar.xz",
"hash": "sha256-tB/h3ZoOFGrbTYCY1WnWsRKR9AyQ33DfuqatFlThjXY="
},
"networkmanager-qt": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/networkmanager-qt-6.16.0.tar.xz",
"hash": "sha256-ue0LqpFZzFqsdlG+SKmAzHy1g5M8QSzvg4WWEoy9ZkU="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/networkmanager-qt-6.17.0.tar.xz",
"hash": "sha256-2Dvq6Gf7fWaYhvUTiT+O7Fi116JLQp2J3FxsCLej9OA="
},
"prison": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/prison-6.16.0.tar.xz",
"hash": "sha256-OCsrnjoAVcNLYCkDUrhWaov/dcqHNblTSgdjg9bk5RA="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/prison-6.17.0.tar.xz",
"hash": "sha256-VULdBzPga+rm+M+L8n/5gfNCBf6YEl2RC+LFP/9HAHw="
},
"purpose": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/purpose-6.16.0.tar.xz",
"hash": "sha256-qg/yyY4M1RfE2BkUuij0phAbJe6ayxd0gJZ/RbA5iL8="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/purpose-6.17.0.tar.xz",
"hash": "sha256-aJVl1esJmeHM2S6PhB/IJBqwJInKbDOfSNVBtbqTdko="
},
"qqc2-desktop-style": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/qqc2-desktop-style-6.16.0.tar.xz",
"hash": "sha256-OrEsPiMsbFvco5c4rG8aUXvv9tpY3jbhAUuDVf9jw+c="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/qqc2-desktop-style-6.17.0.tar.xz",
"hash": "sha256-YxvYnVyCp/k+omvCB50d+Bwy518XfTNGqcsQqc10d5c="
},
"solid": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/solid-6.16.0.tar.xz",
"hash": "sha256-AOxgnXmTNbr7l7an1KXAYatKDrEOQIno4QSUIyG+uKA="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/solid-6.17.0.tar.xz",
"hash": "sha256-F/BRDvE0tm5kfuIXtkhwUy11fHIcgV8gxJVnuXnJxyU="
},
"sonnet": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/sonnet-6.16.0.tar.xz",
"hash": "sha256-F0LNOh3Es7ejhx79lxXv0nEL/7eimg6rFdTBeqzKwrg="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/sonnet-6.17.0.tar.xz",
"hash": "sha256-Sv726cpy7bbCKAC0rPtFDfcSHlB3yFITrKX1arn0Fgs="
},
"syndication": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/syndication-6.16.0.tar.xz",
"hash": "sha256-kB9ScHIJEYGBdAJObNL+RMlMdS822wzhjTp9zZpstt4="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/syndication-6.17.0.tar.xz",
"hash": "sha256-1acUsJ72pQtn9V1Y+Mbu+hu6VSUn3tEUWEi1RmMw6pM="
},
"syntax-highlighting": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/syntax-highlighting-6.16.0.tar.xz",
"hash": "sha256-dKE3GbTz+l26cjUrVnPLbnu2EhveHiiG8dr/J+LyT1o="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/syntax-highlighting-6.17.0.tar.xz",
"hash": "sha256-PRa+wPvrhTvmhMNfR1UNWYFNsfS3B+x3uGLzZQ81P8w="
},
"threadweaver": {
"version": "6.16.0",
"url": "mirror://kde/stable/frameworks/6.16/threadweaver-6.16.0.tar.xz",
"hash": "sha256-6J0fJ2rvd0MN1X9/LlwZW3IBM06e0RTcJMe6WUMOFLY="
"version": "6.17.0",
"url": "mirror://kde/stable/frameworks/6.17/threadweaver-6.17.0.tar.xz",
"hash": "sha256-dx/4nBwBKj6iuu1YyAPs1+iwuJKOOuvBHAffXM8FT0Q="
}
}
+3 -3
View File
@@ -11,13 +11,13 @@
stdenv.mkDerivation rec {
pname = "klipper";
version = "0.13.0-unstable-2025-07-12";
version = "0.13.0-unstable-2025-08-03";
src = fetchFromGitHub {
owner = "KevinOConnor";
repo = "klipper";
rev = "9323a5dfe28619a53c7f350c2e894d299c342bca";
sha256 = "sha256-m6A8a3lR8aeMudA/kz1wCynm+6jZY3w6v2Pag54lQd8=";
rev = "5eb07966b5d7e1534aa40df3b0ea305f5c6d9ae2";
sha256 = "sha256-AUK0vGhz1ZvVtEpVto/Qlp4+3PGsjOTBzj8Ik8sfmRQ=";
};
sourceRoot = "${src.name}/klippy";
@@ -57,7 +57,7 @@ assert lib.assertMsg (
rustc,
toml11,
pegtl,
python3,
buildPackages,
pkg-config,
rapidcheck,
sqlite,
@@ -100,6 +100,7 @@ let
isLegacyParser = lib.versionOlder version "2.91";
hasDtraceSupport = lib.versionAtLeast version "2.93";
parseToYAML = lib.versionAtLeast version "2.93";
usesCapnp = lib.versionAtLeast version "2.94";
in
# gcc miscompiles coroutines at least until 13.2, possibly longer
# do not remove this check unless you are sure you (or your users) will not report bugs to Lix upstream about GCC miscompilations.
@@ -137,19 +138,25 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
# python3.withPackages does not splice properly, see https://github.com/NixOS/nixpkgs/issues/305858
(python3.pythonOnBuildForHost.withPackages (p: [
p.pytest
p.pytest-xdist
p.python-frontmatter
p.toml
]))
(buildPackages.python3.withPackages (
p:
[
p.python-frontmatter
p.toml
]
++ lib.optionals finalAttrs.doInstallCheck [
p.aiohttp
p.pytest
p.pytest-xdist
]
++ lib.optionals usesCapnp [ p.pycapnp ]
))
pkg-config
flex
jq
meson
ninja
cmake
python3
# Required for libstd++ assertions that leaks inside of the final binary.
removeReferencesTo
@@ -174,6 +181,7 @@ stdenv.mkDerivation (finalAttrs: {
++ lib.optionals (hasDtraceSupport && withDtrace) [ systemtap-sdt ]
++ lib.optionals pastaFod [ passt ]
++ lib.optionals parseToYAML [ yq ]
++ lib.optionals usesCapnp [ capnproto ]
++ lib.optionals stdenv.hostPlatform.isLinux [ util-linuxMinimal ];
buildInputs = [
@@ -229,7 +237,7 @@ stdenv.mkDerivation (finalAttrs: {
preConfigure =
# Copy libboost_context so we don't get all of Boost in our closure.
# https://github.com/NixOS/nixpkgs/issues/45462
lib.optionalString (!enableStatic) ''
lib.optionalString (lib.versionOlder version "2.91" && !enableStatic) ''
mkdir -p $out/lib
cp -pd ${boost}/lib/{libboost_context*,libboost_thread*,libboost_system*} $out/lib
rm -f $out/lib/*.a
@@ -290,16 +298,15 @@ stdenv.mkDerivation (finalAttrs: {
mkdir -p $devdoc/nix-support
echo "devdoc internal-api $devdoc/share/doc/nix/internal-api" >> $devdoc/nix-support/hydra-build-products
''
+ lib.optionalString (!hasExternalLixDoc) ''
+ lib.optionalString (lib.versionOlder version "2.94" && !hasExternalLixDoc) ''
# We do not need static archives.
# FIXME(Raito): why are they getting installed _at all_ ?
rm $out/lib/liblix_doc.a
''
+ lib.optionalString stdenv.hostPlatform.isStatic ''
mkdir -p $out/nix-support
echo "file binary-dist $out/bin/nix" >> $out/nix-support/hydra-build-products
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
+ lib.optionalString (lib.versionOlder version "2.91" && stdenv.hostPlatform.isDarwin) ''
for lib in liblixutil.dylib liblixexpr.dylib; do
install_name_tool \
-change "${lib.getLib boost}/lib/libboost_context.dylib" \
@@ -65,6 +65,6 @@ stdenv.mkDerivation {
license = lib.licenses.gpl3;
teams = [ lib.teams.lix ];
platforms = lib.platforms.unix;
broken = stdenv.hostPlatform.isStatic;
broken = lib.versionOlder version "2.94" && stdenv.hostPlatform.isStatic;
};
}
@@ -271,20 +271,20 @@ lib.makeExtensible (self: {
attrName = "git";
lix-args = rec {
version = "2.94.0-pre-20250704_${builtins.substring 0 12 src.rev}";
version = "2.94.0-pre-20250807_${builtins.substring 0 12 src.rev}";
src = fetchFromGitea {
domain = "git.lix.systems";
owner = "lix-project";
repo = "lix";
rev = "362bfd827f522b57062e4ebcb465bb51941632a4";
hash = "sha256-4CVRbeYExqIDpFH+QMZb5IeUGkP6kA/zHSuExYoZygk=";
rev = "8bbd5e1d0df9c31b4d86ba07bc85beb952e42ccb";
hash = "sha256-P+WiN95OjCqHhfygglS/VOFTSj7qNdL5XQDo2wxhQqg=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
name = "lix-${version}";
inherit src;
hash = "sha256-YMyNOXdlx0I30SkcmdW/6DU0BYc3ZOa2FMJSKMkr7I8=";
hash = "sha256-APm8m6SVEAO17BBCka13u85/87Bj+LePP7Y3zHA3Mpg=";
};
};
};