Merge staging-next into staging

Changed files
+524 -514
nixos
pkgs
build-support
fetchtorrent
by-name
al
albert
at
attic-client
ca
capnproto
db
dbeaver-bin
fl
flaresolverr
flexget
ko
kora-icon-theme
mi
microsoft-edge
mp
mpris-discord-rpc
ni
nixos-render-docs
src
nixos_render_docs
ol
ollama
pl
planify
st
structorizer
desktops
deepin
artwork
deepin-desktop-theme
deepin-icon-theme
development
php-packages
phpstan
python-modules
docplex
python-fx
sev-snp-measure
kde
servers
klipper
tools
+15 -1
nixos/modules/security/audit.nix
···
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.
···
};
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
nixos/modules/security/auditd.nix
···
}
];
-
# 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
nixos/modules/system/boot/networkd.nix
···
networkdOptions = {
networkConfig = mkOption {
default = { };
+
defaultText = lib.literalExpression ''
+
{
+
IPv6PrivacyExtensions = true;
+
}
+
'';
example = {
SpeedMeter = true;
ManageForeignRoutingPolicyRules = false;
···
};
config = {
-
networkConfig = optionalAttrs (config.routeTables != { }) {
+
networkConfig = {
+
IPv6PrivacyExtensions = lib.mkOptionDefault true;
+
}
+
// optionalAttrs (config.routeTables != { }) {
RouteTable = mapAttrsToList (name: number: "${name}:${toString number}") config.routeTables;
};
};
+133 -132
nixos/modules/tasks/network-interfaces.nix
···
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);
+
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
+
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;
+
# 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}
+
# 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
-
'')}
+
# 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}"}
-
'';
+
# 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 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;
+
# 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
-
''
-
# 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}"''
-
)}
+
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}
-
''
-
);
-
}
-
);
+
# 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
nixos/tests/audit.nix
···
rules = [
"-a always,exit -F exe=${lib.getExe pkgs.hello} -k nixos-test"
];
+
backlogLimit = 512;
};
security.auditd = {
enable = true;
···
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")
···
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
nixos/tests/systemd-journal.nix
···
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 = {
···
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
pkgs/README.md
···
(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
pkgs/build-support/fetchtorrent/tests.nix
···
-
{ 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
pkgs/by-name/al/albert/package.nix
···
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
pkgs/by-name/at/attic-client/package.nix
···
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
pkgs/by-name/ca/capnproto/package.nix
···
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
pkgs/by-name/db/dbeaver-bin/package.nix
···
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "dbeaver-bin";
-
version = "25.1.3";
+
version = "25.1.4";
src =
let
···
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
pkgs/by-name/fl/flaresolverr/package.nix
···
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
pkgs/by-name/fl/flexget/package.nix
···
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;
+3
pkgs/by-name/ko/kora-icon-theme/package.nix
···
hicolor-icon-theme
];
+
# breeze-icons propagates qtbase
+
dontWrapQtApps = true;
+
dontDropIconThemeCache = true;
installPhase = ''
+2 -2
pkgs/by-name/mi/microsoft-edge/package.nix
···
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
+3 -3
pkgs/by-name/mp/mpris-discord-rpc/package.nix
···
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
+7 -1
pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/redirects.py
···
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❭
···
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
pkgs/by-name/ol/ollama/package.nix
···
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
pkgs/by-name/pl/planify/package.nix
···
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
pkgs/by-name/st/structorizer/package.nix
···
stdenv.mkDerivation rec {
pname = "structorizer";
-
version = "3.32-27";
+
version = "3.32-30";
desktopItems = [
(makeDesktopItem {
···
owner = "fesch";
repo = "Structorizer.Desktop";
rev = version;
-
hash = "sha256-Z60HB0s2LkO/Vs/OaHWc969Y6H+wBiN5slRGFf4JCro=";
+
hash = "sha256-sv/Uoh1UPVsioKpeJeuqs+EPPsuQwO54WIUPyc8Fjco=";
};
patches = [
+3
pkgs/desktops/deepin/artwork/deepin-desktop-theme/default.nix
···
deepin-icon-theme
];
+
# breeze-icons propagates qtbase
+
dontWrapQtApps = true;
+
dontDropIconThemeCache = true;
preFixup = ''
+3
pkgs/desktops/deepin/artwork/deepin-icon-theme/default.nix
···
propagatedBuildInputs = [ papirus-icon-theme ];
+
# breeze-icons propagates qtbase
+
dontWrapQtApps = true;
+
dontDropIconThemeCache = true;
# Remove broken symbolic link(https://github.com/linuxdeepin/developer-center/issues/11245)
+3 -3
pkgs/development/php-packages/phpstan/default.nix
···
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;
+4 -6
pkgs/development/python-modules/docplex/default.nix
···
lib,
buildPythonPackage,
fetchPypi,
-
isPy27,
setuptools,
-
futures ? null,
docloud,
requests,
}:
···
version = "2.30.251";
pyproject = true;
-
# No source available from official repo
src = fetchPypi {
inherit pname version;
hash = "sha256-ZQMhn1tRJ1p+TnfKQzKQOw+Akl0gUDCkjT9qp8oNvyo=";
···
build-system = [ setuptools ];
-
propagatedBuildInputs = [
+
dependencies = [
docloud
requests
-
]
-
++ lib.optional isPy27 futures;
+
];
+
# PypI release does not include tests
doCheck = false;
+
pythonImportsCheck = [ "docplex" ];
meta = with lib; {
+3 -5
pkgs/development/python-modules/python-fx/default.nix
···
dacite,
decorator,
fetchFromGitHub,
-
future,
first,
jsonpath-ng,
loguru,
···
nativeBuildInputs = [ antlr4 ];
-
propagatedBuildInputs = [
+
dependencies = [
antlr4-python3-runtime
asciimatics
click
dacite
decorator
first
-
future
jsonpath-ng
loguru
overrides
···
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";
};
+3 -3
pkgs/development/python-modules/sev-snp-measure/default.nix
···
buildPythonPackage rec {
pname = "sev-snp-measure";
-
version = "0.0.11";
+
version = "0.0.12";
pyproject = true;
···
owner = "virtee";
repo = "sev-snp-measure";
tag = "v${version}";
-
hash = "sha256-M+d9uIAQvEmEsdhhjlwHbhB2RhlaGjphN4ov2ipzCFY=";
+
hash = "sha256-UcXU6rNjcRN1T+iWUNrqeJCkSa02WU1/pBwLqHVPRyw=";
};
nativeBuildInputs = [
···
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
pkgs/kde/frameworks/kpackage/default.nix
···
mkKdeDerivation {
pname = "kpackage";
-
# Follow symlinks when resolving packages
-
# FIXME(later): upstream
-
patches = [ ./follow-symlinks.patch ];
meta.mainProgram = "kpackagetool6";
}
-13
pkgs/kde/frameworks/kpackage/follow-symlinks.patch
···
-
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
pkgs/kde/frameworks/kservice/default.nix
···
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
];
-13
pkgs/kde/frameworks/kservice/qdiriterator-follow-symlinks.patch
···
-
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
pkgs/kde/frameworks/solid/default.nix
···
mkKdeDerivation {
pname = "solid";
-
patches = [
-
# Also search /run/wrappers for mount/umount
-
./fix-search-path.patch
-
];
-
extraNativeBuildInputs = [
qttools
bison
-17
pkgs/kde/frameworks/solid/fix-search-path.patch
···
-
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
pkgs/kde/generated/sources/frameworks.json
···
{
"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
pkgs/servers/klipper/default.nix
···
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";
+19 -12
pkgs/tools/package-management/lix/common-lix.nix
···
rustc,
toml11,
pegtl,
-
python3,
+
buildPackages,
pkg-config,
rapidcheck,
sqlite,
···
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.
···
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
···
++ 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 = [
···
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
···
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" \
+1 -1
pkgs/tools/package-management/lix/common-nix-eval-jobs.nix
···
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;
};
}
+4 -4
pkgs/tools/package-management/lix/default.nix
···
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=";
};
};
};