diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 80391cb6b370..493de8029459 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -10049,6 +10049,13 @@ github = "HadziqM"; githubId = 50319538; }; + haennetz = { + name = "Hännetz"; + email = "me@haennetz.net"; + matrix = "@me:haennetz.net"; + github = "Haennetz"; + githubId = 34142036; + }; hagl = { email = "harald@glie.be"; github = "hagl"; diff --git a/nixos/doc/manual/release-notes/rl-2605.section.md b/nixos/doc/manual/release-notes/rl-2605.section.md index 5ef93e7e8fce..0011534ca895 100644 --- a/nixos/doc/manual/release-notes/rl-2605.section.md +++ b/nixos/doc/manual/release-notes/rl-2605.section.md @@ -10,6 +10,10 @@ +- [Meshtastic](https://meshtastic.org), an open-source, off-grid, decentralised mesh network + designed to run on affordable, low-power devices. Available as [services.meshtasticd] + (#opt-services.meshtasticd.enable). + - [knot-resolver](https://www.knot-resolver.cz/) in version 6. Available as `services.knot-resolver`. A module for knot-resolver 5 was already available as `services.kresd`. - [ImmichFrame](https://immichframe.dev/), display your photos from Immich as a digital photo frame. Available as `services.immichframe`. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index ad90be849271..2df1045248b5 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1248,6 +1248,7 @@ ./services/networking/lxd-image-server.nix ./services/networking/magic-wormhole-mailbox-server.nix ./services/networking/matterbridge.nix + ./services/networking/meshtasticd.nix ./services/networking/microsocks.nix ./services/networking/mihomo.nix ./services/networking/minidlna.nix diff --git a/nixos/modules/services/audio/snapserver.nix b/nixos/modules/services/audio/snapserver.nix index 84904d920870..5f66948174ed 100644 --- a/nixos/modules/services/audio/snapserver.nix +++ b/nixos/modules/services/audio/snapserver.nix @@ -29,51 +29,50 @@ let in { imports = [ - (mkRenamedOptionModule - [ "services" "snapserver" "controlPort" ] - [ "services" "snapserver" "tcp" "port" ] - ) - (mkRenamedOptionModule [ "services" "snapserver" "listenAddress" ] - [ "services" "snapserver" "settings" "stream" "bind_to_address" ] + [ "services" "snapserver" "settings" "tcp-streaming" "bind_to_address" ] ) (mkRenamedOptionModule [ "services" "snapserver" "port" ] - [ "services" "snapserver" "settings" "stream" "port" ] + [ "services" "snapserver" "settings" "tcp-streaming" "port" ] ) (mkRenamedOptionModule [ "services" "snapserver" "sampleFormat" ] - [ "services" "snapserver" "settings" "stream" "sampleformat" ] + [ "services" "snapserver" "settings" "tcp-streaming" "sampleformat" ] ) (mkRenamedOptionModule [ "services" "snapserver" "codec" ] - [ "services" "snapserver" "settings" "stream" "codec" ] + [ "services" "snapserver" "settings" "tcp-streaming" "codec" ] ) (mkRenamedOptionModule [ "services" "snapserver" "streamBuffer" ] - [ "services" "snapserver" "settings" "stream" "chunk_ms" ] + [ "services" "snapserver" "settings" "tcp-streaming" "chunk_ms" ] ) (mkRenamedOptionModule [ "services" "snapserver" "buffer" ] - [ "services" "snapserver" "settings" "stream" "buffer" ] + [ "services" "snapserver" "settings" "tcp-streaming" "buffer" ] ) (mkRenamedOptionModule [ "services" "snapserver" "send" ] - [ "services" "snapserver" "settings" "stream" "chunk_ms" ] + [ "services" "snapserver" "settings" "tcp-streaming" "chunk_ms" ] ) + (mkRenamedOptionModule + [ "services" "snapserver" "controlPort" ] + [ "services" "snapserver" "settings" "tcp-control" "port" ] + ) (mkRenamedOptionModule [ "services" "snapserver" "tcp" "enable" ] - [ "services" "snapserver" "settings" "tcp" "enabled" ] + [ "services" "snapserver" "settings" "tcp-control" "enabled" ] ) (mkRenamedOptionModule [ "services" "snapserver" "tcp" "listenAddress" ] - [ "services" "snapserver" "settings" "tcp" "bind_to_address" ] + [ "services" "snapserver" "settings" "tcp-control" "bind_to_address" ] ) (mkRenamedOptionModule [ "services" "snapserver" "tcp" "port" ] - [ "services" "snapserver" "settings" "tcp" "port" ] + [ "services" "snapserver" "settings" "tcp-control" "port" ] ) (mkRenamedOptionModule @@ -121,6 +120,20 @@ in freeformType = format.type; options = { stream = { + source = mkOption { + type = with types; either str (listOf str); + example = "pipe:///tmp/snapfifo?name=default"; + description = '' + One or multiple URIs to PCM input streams. + ''; + }; + }; + + tcp-streaming = { + enabled = mkEnableOption "streaming via TCP" // { + default = true; + }; + bind_to_address = mkOption { default = "::"; description = '' @@ -135,17 +148,9 @@ in Port to listen on for snapclient connections. ''; }; - - source = mkOption { - type = with types; either str (listOf str); - example = "pipe:///tmp/snapfifo?name=default"; - description = '' - One or multiple URIs to PCM inpuit streams. - ''; - }; }; - tcp = { + tcp-control = { enabled = mkEnableOption "the TCP JSON-RPC"; bind_to_address = mkOption { @@ -245,8 +250,10 @@ in }; networking.firewall.allowedTCPPorts = - lib.optionals cfg.openFirewall [ cfg.settings.stream.port ] - ++ lib.optional (cfg.openFirewall && cfg.settings.tcp.enabled) cfg.settings.tcp.port + lib.optionals (cfg.openFirewall && cfg.settings.tcp-streaming.enabled) [ + cfg.settings.tcp-streaming.port + ] + ++ lib.optional (cfg.openFirewall && cfg.settings.tcp-control.enabled) cfg.settings.tcp-control.port ++ lib.optional (cfg.openFirewall && cfg.settings.http.enabled) cfg.settings.http.port; }; diff --git a/nixos/modules/services/desktop-managers/pantheon.nix b/nixos/modules/services/desktop-managers/pantheon.nix index ef2d8ff30fdc..974ad1a1be41 100644 --- a/nixos/modules/services/desktop-managers/pantheon.nix +++ b/nixos/modules/services/desktop-managers/pantheon.nix @@ -43,6 +43,8 @@ in enable = mkEnableOption "contractor, a desktop-wide extension service used by Pantheon"; }; + parental-controls.enable = mkEnableOption "Pantheon parental controls daemon"; + apps.enable = mkEnableOption "Pantheon default applications"; }; @@ -162,6 +164,7 @@ in ]; services.pantheon.apps.enable = mkDefault true; services.pantheon.contractor.enable = mkDefault true; + services.pantheon.parental-controls.enable = mkDefault true; services.gnome.at-spi2-core.enable = true; services.gnome.evolution-data-server.enable = true; services.gnome.glib-networking.enable = true; @@ -360,5 +363,14 @@ in ]; }) + (mkIf serviceCfg.parental-controls.enable { + services.malcontent.enable = mkDefault true; + + environment.systemPackages = [ pkgs.pantheon.switchboard-plug-parental-controls ]; + + services.dbus.packages = [ pkgs.pantheon.switchboard-plug-parental-controls ]; + + systemd.packages = [ pkgs.pantheon.switchboard-plug-parental-controls ]; + }) ]; } diff --git a/nixos/modules/services/networking/meshtastic.md b/nixos/modules/services/networking/meshtastic.md new file mode 100644 index 000000000000..d16c59fe3917 --- /dev/null +++ b/nixos/modules/services/networking/meshtastic.md @@ -0,0 +1,57 @@ +# Meshtasticd {#module-services-meshtasticd} + +[Meshtasticd](https://meshtastic.org/) daemon. + +Meshtastic is an open-source, off-grid, decentralised mesh network designed to +run on affordable, low-power devices. + +Meshtastic is a project that enables you to use inexpensive LoRa radios as a +long range off-grid communication platform in areas without existing or reliable +communications infrastructure. This project is 100% community driven and open +source! + +## Quickstart {#module-services-meshtasticd-quickstart} + +A minimal configuration: + +```nix +{ + services.meshtasticd = { + enable = true; + port = 4403; + settings = { + Lora = { + Module = "auto"; + }; + Webserver = { + Port = 9443; + RootPath = pkgs.meshtastic-web; + }; + General = { + MaxNodes = 200; + MaxMessageQueue = 100; + MACAddressSource = "eth0"; + }; + }; + }; +} +``` + +By default Meshtasticd listens on all network interfaces. The example above +binds the daemon to port `4403` and the web UI to `9443`. This module +intentionally does not configure an reverse proxy for you, keeping the module +focused on the Meshtastic service itself. If you need to restrict access, use +firewall rules or put the web UI behind a reverse proxy (e.g.: Caddy, Nginx) +that binds to `127.0.0.1` and exposes only the proxy. This approach leaves proxy +choice and TLS configuration to the operator while documenting how to securely +expose the web UI when required. + +## Configuration {#module-services-meshtasticd-config} + +All available configuration directives are documented in the +[standard Meshtastic configuration file](https://github.com/meshtastic/firmware/blob/develop/bin/config-dist.yaml). + +The service uses a dedicated user and group account (`meshtasticd`) by default. +If you override the service user, ensure it is a member of the `spi` and `gpio` +groups so it can access the required hardware devices, as mandated by +Meshtastic’s default `udev` rules. diff --git a/nixos/modules/services/networking/meshtasticd.nix b/nixos/modules/services/networking/meshtasticd.nix new file mode 100644 index 000000000000..d72affb8b6df --- /dev/null +++ b/nixos/modules/services/networking/meshtasticd.nix @@ -0,0 +1,124 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + cfg = config.services.meshtasticd; + format = pkgs.formats.yaml { }; + configFile = format.generate "config.yaml" cfg.settings; +in +{ + options.services.meshtasticd = { + enable = lib.mkEnableOption "Meshtastic daemon"; + package = lib.mkPackageOption pkgs "meshtasticd" { }; + + user = lib.mkOption { + default = "meshtasticd"; + description = "User meshtasticd runs as."; + type = lib.types.str; + }; + + group = lib.mkOption { + default = "meshtasticd"; + description = "Group meshtasticd runs as."; + type = lib.types.str; + }; + + port = lib.mkOption { + type = lib.types.port; + default = 4403; + description = "Port to listen on"; + }; + + settings = lib.mkOption { + type = format.type; + example = lib.literalExpression '' + Lora = { + Module = "auto"; + }; + Webserver = { + Port = 9443; + RootPath = pkgs.meshtastic-web; + }; + General = { + MaxNodes = 200; + MaxMessageQueue = 100; + MACAddressSource = "eth0"; + }; + ''; + description = '' + The Meshtastic configuration file. + + An example of configuration can be found at + ''; + }; + + dataDir = lib.mkOption { + default = "/var/lib/meshtasticd"; + type = lib.types.path; + description = '' + The data directory. + ''; + }; + }; + + config = lib.mkIf cfg.enable { + # Creation of the `meshtasticd` privilege user. + users = { + users = lib.mkIf (cfg.user == "meshtasticd") { + meshtasticd = { + home = cfg.dataDir; + description = "meshtasticd-daemon privilege user"; + group = cfg.group; + isSystemUser = true; + extraGroups = [ + "spi" + "gpio" + ]; + }; + }; + groups = lib.mkIf (cfg.group == "meshtasticd") { + meshtasticd = { }; + # These groups are required for udev rules to work properly. + spi = { }; + gpio = { }; + }; + }; + + # The `meshtasticd` package provides udev rules. + services.udev.packages = [ + cfg.package + ]; + + # Creation of the `meshtasticd` service. + # Based on the official meshtasticd service file: https://github.com/meshtastic/firmware/blob/develop/bin/meshtasticd.service + systemd.services.meshtasticd = { + description = "Meshtastic Native Daemon"; + after = [ + "network-online.target" + "network.target" + ]; + wants = [ + "network-online.target" + "network.target" + ]; + wantedBy = [ "multi-user.target" ]; + + serviceConfig = { + User = cfg.user; + Group = cfg.group; + Type = "simple"; + StateDirectory = "meshtasticd"; + AmbientCapabilities = [ + "CAP_NET_BIND_SERVICE" + ]; + ExecStart = "${lib.getExe cfg.package} --port=${builtins.toString cfg.port} --fsdir=${cfg.dataDir} --config=${configFile} --verbose"; + Restart = "always"; + RestartSec = "3"; + }; + }; + }; +} diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix index c2563b575ebc..363bdbbc92cc 100644 --- a/nixos/modules/services/x11/display-managers/lightdm.nix +++ b/nixos/modules/services/x11/display-managers/lightdm.nix @@ -282,6 +282,11 @@ in account include login password substack login session include login + '' + # https://github.com/elementary/switchboard-plug-parental-controls/blob/8.0.1/src/daemon/Server.vala#L325 + # Must specify conffile since pam_time defaults to ${linux-pam}/etc/security/time.conf. + + lib.optionalString config.services.pantheon.parental-controls.enable '' + account required pam_time.so conffile=/etc/security/time.conf ''; security.pam.services.lightdm-greeter.text = '' diff --git a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py index d99c52d50793..90241b92cd5f 100644 --- a/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py +++ b/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py @@ -222,7 +222,7 @@ def write_entry(profile: str | None, generation: int, specialisation: str | None if machine_id is not None: f.write("machine-id %s\n" % machine_id) if devicetree is not None: - f.write("devicetree %s\n" % devicetree) + f.write(f"devicetree /{devicetree}\n") f.flush() os.fsync(f.fileno()) tmp_path.rename(entry_file) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 11c166082f5a..fc153e0b4e40 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -941,6 +941,7 @@ in meilisearch = runTest ./meilisearch.nix; memcached = runTest ./memcached.nix; merecat = runTest ./merecat.nix; + meshtasticd = runTest ./networking/meshtasticd.nix; metabase = runTest ./metabase.nix; mihomo = runTest ./mihomo.nix; mimir = runTest ./mimir.nix; diff --git a/nixos/tests/networking/meshtasticd.nix b/nixos/tests/networking/meshtasticd.nix new file mode 100644 index 000000000000..121886e7910a --- /dev/null +++ b/nixos/tests/networking/meshtasticd.nix @@ -0,0 +1,45 @@ +{ + lib, + pkgs, + ... +}: +let + mainPort = 9445; + webPort = 9446; +in +{ + name = "meshtasticd"; + meta.maintainers = [ lib.maintainers.drupol ]; + + nodes.machine = { + services.meshtasticd = { + enable = true; + port = mainPort; + + settings = { + Lora = { + Module = "sim"; + DIO2_AS_RF_SWITCH = false; + spiSpeed = "2000000"; + }; + Webserver = { + Port = webPort; + RootPath = pkgs.meshtastic-web; + }; + General = { + MaxNodes = 200; + MaxMessageQueue = 100; + MACAddressSource = "eth0"; + }; + }; + }; + }; + + testScript = '' + with subtest("Test meshtasticd service"): + machine.wait_for_unit("meshtasticd.service") + machine.wait_for_open_port(${builtins.toString mainPort}) + machine.wait_for_open_port(${builtins.toString webPort}) + machine.succeed("curl -fvvv -Ls http://localhost:${builtins.toString webPort} | grep -q 'Meshtastic Web Client'") + ''; +} diff --git a/nixos/tests/snapcast.nix b/nixos/tests/snapcast.nix index 2856fc5515e5..b7b3ded22394 100644 --- a/nixos/tests/snapcast.nix +++ b/nixos/tests/snapcast.nix @@ -23,7 +23,6 @@ in enable = true; settings = { stream = { - port = port; source = [ "pipe:///run/snapserver/mpd?name=mpd&mode=create" "pipe:///run/snapserver/bluetooth?name=bluetooth" @@ -32,7 +31,11 @@ in ]; buffer = bufferSize; }; - tcp = { + tcp-streaming = { + enabled = true; + port = port; + }; + tcp-control = { enabled = true; port = tcpPort; }; @@ -76,6 +79,8 @@ in ) with subtest("test a ipv6 connection"): + # URI scheme does not support IPv6 literals + # https://github.com/snapcast/snapcast/issues/1472 server.execute("systemd-run --unit=snapcast-local-client snapclient -h ::1 -p ${toString port}") server.wait_until_succeeds( "journalctl -o cat -u snapserver.service | grep -q 'Hello from'" @@ -83,7 +88,7 @@ in server.wait_until_succeeds("journalctl -o cat -u snapcast-local-client | grep -q 'buffer: ${toString bufferSize}'") with subtest("test a connection"): - client.execute("systemd-run --unit=snapcast-client snapclient -h server -p ${toString port}") + client.execute("systemd-run --unit=snapcast-client snapclient 'tcp://server:${toString port}'") server.wait_until_succeeds( "journalctl -o cat -u snapserver.service | grep -q 'Hello from'" ) diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix index f2957e2865c1..5d7e327670e7 100644 --- a/pkgs/applications/editors/android-studio/default.nix +++ b/pkgs/applications/editors/android-studio/default.nix @@ -24,8 +24,8 @@ let sha256Hash = "sha256-ciu+To5Kcus8FPDz1D43AD+qOqfPHaW4JsEBr9fx2PE="; }; latestVersion = { - version = "2025.2.3.3"; # "Android Studio Otter 3 Feature Drop | 2025.2.3 Canary 3" - sha256Hash = "sha256-cU6EFqmM1GsaWdGE1sbR/9eHXiYXKYV/m1/H0a+A1Bw="; + version = "2025.2.3.4"; # "Android Studio Otter 3 Feature Drop | 2025.2.3 Canary 4" + sha256Hash = "sha256-Oi+sGK8d7ms/BYt7F9xwEFGPdQUEHhfdclKQi9vAxgU="; }; in { diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index ee28ad0c4c01..596b82a05ace 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -2808,8 +2808,8 @@ let mktplcRef = { name = "vscord"; publisher = "leonardssh"; - version = "5.3.5"; - hash = "sha256-b5osn7UeSkr8gnLZ/PkrxS0WmgHUwfS0jnwTc1Uw0Sg="; + version = "5.3.8"; + hash = "sha256-tqyhu6pa+UFwCYpS3xioeSw4oET0TFfQmJ8hsSz3q/k="; }; meta = { description = "Highly customizable Discord Rich Presence extension for Visual Studio Code"; diff --git a/pkgs/by-name/ch/cherry-studio/package.nix b/pkgs/by-name/ch/cherry-studio/package.nix index 546f30af7439..f757bf2f5188 100644 --- a/pkgs/by-name/ch/cherry-studio/package.nix +++ b/pkgs/by-name/ch/cherry-studio/package.nix @@ -19,13 +19,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "cherry-studio"; - version = "1.7.1"; + version = "1.7.2"; src = fetchFromGitHub { owner = "CherryHQ"; repo = "cherry-studio"; tag = "v${finalAttrs.version}"; - hash = "sha256-A+J00wHJyCrxZSG80FKHw/c9EUfJP53v0KLjE9Jgmp8="; + hash = "sha256-Y60SW97584LTZXD4tJbr3Sv/6etKtTjr+3xfYBvKDWY="; }; postPatch = '' @@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: { offlineCache = yarn-berry.fetchYarnBerryDeps { inherit (finalAttrs) src missingHashes; - hash = "sha256-UZm0XJ/pjfADETd6sFoMCRB0axod3WybVW+RcPuX8ms="; + hash = "sha256-KggPuCeezgXhfMctR6NndTwvsNq9StQNAXVEOWLMt50="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/cl/cloudlog/package.nix b/pkgs/by-name/cl/cloudlog/package.nix index 43401869f0d9..ec44be4f80a7 100644 --- a/pkgs/by-name/cl/cloudlog/package.nix +++ b/pkgs/by-name/cl/cloudlog/package.nix @@ -9,13 +9,13 @@ stdenvNoCC.mkDerivation rec { pname = "cloudlog"; - version = "2.7.6"; + version = "2.8.1"; src = fetchFromGitHub { owner = "magicbug"; repo = "Cloudlog"; rev = version; - hash = "sha256-p9PmWRKvKGGZrexZJwYtb+LYto9npZ606QVo4pvDBak="; + hash = "sha256-F8iEs7pQmdzQFajg+auA9cAvVzeL7fE1Zk/xXXO7xOQ="; }; postPatch = '' @@ -40,6 +40,9 @@ stdenvNoCC.mkDerivation rec { license = lib.licenses.mit; homepage = "https://www.magicbug.co.uk/cloudlog"; platforms = php.meta.platforms; - maintainers = with lib.maintainers; [ melling ]; + maintainers = with lib.maintainers; [ + melling + haennetz + ]; }; } diff --git a/pkgs/by-name/cr/crocoddyl/package.nix b/pkgs/by-name/cr/crocoddyl/package.nix index 5810ea69a711..8dbcf7d3f087 100644 --- a/pkgs/by-name/cr/crocoddyl/package.nix +++ b/pkgs/by-name/cr/crocoddyl/package.nix @@ -4,7 +4,7 @@ doxygen, example-robot-data, fetchFromGitHub, - fetchpatch, + ffmpeg, ipopt, lapack, lib, @@ -15,24 +15,15 @@ stdenv.mkDerivation (finalAttrs: { pname = "crocoddyl"; - version = "3.1.0"; + version = "3.2.0"; src = fetchFromGitHub { owner = "loco-3d"; repo = "crocoddyl"; tag = "v${finalAttrs.version}"; - hash = "sha256-m7UiCa8ydjsAIhsFiShTi3/JaKgq2TCQ1XYAMyTNg1U="; + hash = "sha256-EYvakM81Ot/AtXElJbcQNo7IydBtRgy+8a0cY06CzQ8="; }; - patches = [ - # ref. https://github.com/loco-3d/crocoddyl/pull/1440 merged upstream - (fetchpatch { - name = "add-missing-include.patch"; - url = "https://github.com/loco-3d/crocoddyl/commit/6994bea7bb3ae6027f5b611ef1635768538150fd.patch"; - hash = "sha256-XbQKRWpWm5Rk4figoA2swId4Pz2xKDpU4NFP46p8WO0="; - }) - ]; - outputs = [ "out" "doc" @@ -54,6 +45,10 @@ stdenv.mkDerivation (finalAttrs: { pinocchio ]; + checkInputs = [ + ffmpeg + ]; + cmakeFlags = [ (lib.cmakeBool "INSTALL_DOCUMENTATION" true) (lib.cmakeBool "BUILD_EXAMPLES" false) @@ -72,6 +67,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { description = "Crocoddyl optimal control library"; homepage = "https://github.com/loco-3d/crocoddyl"; + changelog = "https://github.com/loco-3d/crocoddyl/blob/devel/CHANGELOG.md"; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ nim65s diff --git a/pkgs/by-name/de/desync/package.nix b/pkgs/by-name/de/desync/package.nix index 4774a38a0fff..66ada1106567 100644 --- a/pkgs/by-name/de/desync/package.nix +++ b/pkgs/by-name/de/desync/package.nix @@ -21,21 +21,8 @@ buildGoModule rec { nativeBuildInputs = [ installShellFiles ]; - # required for TestHTTPHandlerReadWrite and other tests - __darwinAllowLocalNetworking = true; - - checkFlags = - let - skippedTests = [ - "TestMountIndex" # FUSE does not work in sandbox - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - # sendfile is not permitted in Darwin sandbox - "TestS3StoreGetChunk/fail" - "TestS3StoreGetChunk/recover" - ]; - in - [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ]; + # nix builder doesn't have access to test data; tests fail for reasons unrelated to binary being bad. + doCheck = false; postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' installShellCompletion --cmd desync \ diff --git a/pkgs/by-name/el/eloquent/package.nix b/pkgs/by-name/el/eloquent/package.nix index ec5117a6736b..2979daf0c3aa 100644 --- a/pkgs/by-name/el/eloquent/package.nix +++ b/pkgs/by-name/el/eloquent/package.nix @@ -28,14 +28,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "eloquent"; - version = "1.3"; + version = "1.4"; src = fetchFromGitHub { owner = "sonnyp"; repo = "Eloquent"; tag = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-+XAiRB5dRq2A2XP9ZdmIfxLjhCXb72TXRxnLnOprNT4="; + hash = "sha256-wY/blD399GhEOdnQf/uVLHSmYUZTO1ZnL6+oOAhVqFA="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/em/emmylua-check/package.nix b/pkgs/by-name/em/emmylua-check/package.nix index c6535f045d99..c45066eebc08 100644 --- a/pkgs/by-name/em/emmylua-check/package.nix +++ b/pkgs/by-name/em/emmylua-check/package.nix @@ -7,18 +7,18 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "emmylua_check"; - version = "0.17.0"; + version = "0.18.0"; src = fetchFromGitHub { owner = "EmmyLuaLs"; repo = "emmylua-analyzer-rust"; tag = finalAttrs.version; - hash = "sha256-CAYSaRjpQwnPZojeX/VyV9/xz8SY8Lt+e1wc79qvGZg="; + hash = "sha256-JXe+I0CViJAXOnWzilYpjWquYFzZGIP5y6HS6KosYPU="; }; buildAndTestSubdir = "crates/emmylua_check"; - cargoHash = "sha256-nGSN7LqvAwYg2Z+2tTAc+vIwrYmb+W0OLw9EeG7e/V8="; + cargoHash = "sha256-UVuXeGmSvAwHs/U0s/mByiZCwa2refz1l8eJvcCoagk="; nativeInstallCheckInputs = [ versionCheckHook diff --git a/pkgs/by-name/ex/exabgp/package.nix b/pkgs/by-name/ex/exabgp/package.nix index bf01869f9ce7..b7a589938f54 100644 --- a/pkgs/by-name/ex/exabgp/package.nix +++ b/pkgs/by-name/ex/exabgp/package.nix @@ -1,24 +1,31 @@ { lib, - python3, + python3Packages, fetchFromGitHub, exabgp, testers, }: -python3.pkgs.buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "exabgp"; - version = "4.2.25"; - format = "pyproject"; + version = "5.0.1"; + pyproject = true; src = fetchFromGitHub { owner = "Exa-Networks"; repo = "exabgp"; tag = version; - hash = "sha256-YBxRDcm4Qt44W3lBHDwdvZq2pXEujbqJDh24JbXthMg="; + hash = "sha256-UFo92jS/QmwTUEAhxQnbtY9K905jiBrJujfqGIUCUOg="; }; - nativeBuildInputs = with python3.pkgs; [ + postPatch = '' + # https://github.com/Exa-Networks/exabgp/pull/1344 + substituteInPlace src/exabgp/application/healthcheck.py --replace-fail \ + "f'/sbin/ip -o address show dev {ifname}'.split()" \ + '["ip", "-o", "address", "show", "dev", ifname]' + ''; + + build-system = with python3Packages; [ setuptools ]; @@ -26,13 +33,31 @@ python3.pkgs.buildPythonApplication rec { "exabgp" ]; - nativeCheckInputs = with python3.pkgs; [ + nativeCheckInputs = with python3Packages; [ + hypothesis + psutil + pytest-asyncio + pytest-benchmark + pytest-timeout + pytest-xdist pytestCheckHook ]; + __darwinAllowLocalNetworking = true; + + pytestFlags = [ "--benchmark-disable" ]; + + enabledTests = [ "tests" ]; + + disabledTests = [ + # AssertionError: Server should receive connection + "test_outgoing_connection_establishment" + ]; + passthru.tests = { version = testers.testVersion { package = exabgp; + command = "exabgp version"; }; }; diff --git a/pkgs/by-name/fl/flaresolverr/package.nix b/pkgs/by-name/fl/flaresolverr/package.nix index 58451a6f13aa..8375fe0d3601 100644 --- a/pkgs/by-name/fl/flaresolverr/package.nix +++ b/pkgs/by-name/fl/flaresolverr/package.nix @@ -31,13 +31,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "flaresolverr"; - version = "3.4.3"; + version = "3.4.6"; src = fetchFromGitHub { owner = "FlareSolverr"; repo = "FlareSolverr"; rev = "v${finalAttrs.version}"; - hash = "sha256-5insO3XfIN9vGuPIeVBcLhsYPCO29mR41MFtIy8jeXE="; + hash = "sha256-DeFp76VwMGBAWOsI3S3jm1qNbPw554zJZfE7hotUedY="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/by-name/ge/gemstash/Gemfile.lock b/pkgs/by-name/ge/gemstash/Gemfile.lock index 92112368f9a2..5d3a888f6df8 100644 --- a/pkgs/by-name/ge/gemstash/Gemfile.lock +++ b/pkgs/by-name/ge/gemstash/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - activesupport (7.2.2.1) + activesupport (7.2.3) base64 benchmark (>= 0.3) bigdecimal @@ -13,14 +13,14 @@ GEM minitest (>= 5.1) securerandom (>= 0.3) tzinfo (~> 2.0, >= 2.0.5) - base64 (0.2.0) - benchmark (0.4.0) - bigdecimal (3.1.9) + base64 (0.3.0) + benchmark (0.5.0) + bigdecimal (3.3.1) concurrent-ruby (1.3.5) - connection_pool (2.5.0) + connection_pool (2.5.5) dalli (3.2.8) - date (3.4.1) - drb (2.2.1) + date (3.5.0) + drb (2.2.3) faraday (1.10.4) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -34,10 +34,10 @@ GEM faraday-retry (~> 1.0) ruby2_keywords (>= 0.0.4) faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) + faraday-em_synchrony (1.0.1) faraday-excon (1.1.0) faraday-httpclient (1.0.1) - faraday-multipart (1.1.0) + faraday-multipart (1.1.1) multipart-post (~> 2.0) faraday-net_http (1.0.2) faraday-net_http_persistent (1.2.0) @@ -62,26 +62,26 @@ GEM thor (~> 1.0) i18n (1.14.7) concurrent-ruby (~> 1.0) - logger (1.6.6) + logger (1.7.0) lru_redux (1.1.0) - mini_portile2 (2.8.8) - minitest (5.25.5) + mini_portile2 (2.8.9) + minitest (5.26.2) multipart-post (2.4.1) - mustermann (3.0.3) + mustermann (3.0.4) ruby2_keywords (~> 0.0.1) - nio4r (2.7.4) - psych (5.2.3) + nio4r (2.7.5) + psych (5.2.6) date stringio - puma (6.6.0) + puma (6.6.1) nio4r (~> 2.0) - rack (2.2.13) + rack (2.2.21) rack-protection (3.2.0) base64 (>= 0.1.0) rack (~> 2.2, >= 2.2.4) ruby2_keywords (0.0.5) securerandom (0.4.1) - sequel (5.90.0) + sequel (5.98.0) bigdecimal server_health_check (1.0.2) server_health_check-rack (0.1.0) @@ -93,11 +93,11 @@ GEM tilt (~> 2.0) sqlite3 (1.7.3) mini_portile2 (~> 2.8.0) - stringio (3.1.5) + stringio (3.1.8) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) - thor (1.3.2) - tilt (2.6.0) + thor (1.4.0) + tilt (2.6.1) tzinfo (2.0.6) concurrent-ruby (~> 1.0) unicode-display_width (2.6.0) @@ -109,4 +109,4 @@ DEPENDENCIES gemstash BUNDLED WITH - 2.6.2 + 2.7.2 diff --git a/pkgs/by-name/ge/gemstash/gemset.nix b/pkgs/by-name/ge/gemstash/gemset.nix index afa40fa2c182..def339240325 100644 --- a/pkgs/by-name/ge/gemstash/gemset.nix +++ b/pkgs/by-name/ge/gemstash/gemset.nix @@ -17,40 +17,40 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1xa7hr4gp2p86ly6n1j2skyx8pfg6yi621kmnh7zhxr9m7wcnaw4"; + sha256 = "043vbilaw855c91n5l7g0k0wxj63kngj911685qy74xc1mvwjxan"; type = "gem"; }; - version = "7.2.2.1"; + version = "7.2.3"; }; base64 = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g"; + sha256 = "0yx9yn47a8lkfcjmigk79fykxvr80r4m1i35q82sxzynpbm7lcr7"; type = "gem"; }; - version = "0.2.0"; + version = "0.3.0"; }; benchmark = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0jl71qcgamm96dzyqk695j24qszhcc7liw74qc83fpjljp2gh4hg"; + sha256 = "0v1337j39w1z7x9zs4q7ag0nfv4vs4xlsjx2la0wpv8s6hig2pa6"; type = "gem"; }; - version = "0.4.0"; + version = "0.5.0"; }; bigdecimal = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1k6qzammv9r6b2cw3siasaik18i6wjc5m0gw5nfdc6jj64h79z1g"; + sha256 = "0612spks81fvpv2zrrv3371lbs6mwd7w6g5zafglyk75ici1x87a"; type = "gem"; }; - version = "3.1.9"; + version = "3.3.1"; }; concurrent-ruby = { groups = [ "default" ]; @@ -67,10 +67,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1z7bag6zb2vwi7wp2bkdkmk7swkj6zfnbsnc949qq0wfsgw94fr3"; + sha256 = "1b8nlxr5z843ii7hfk6igpr5acw3k2ih9yjrgkyz2gbmallgjkz5"; type = "gem"; }; - version = "2.5.0"; + version = "2.5.5"; }; dalli = { groups = [ "default" ]; @@ -87,20 +87,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0kz6mc4b9m49iaans6cbx031j9y7ldghpi5fzsdh0n3ixwa8w9mz"; + sha256 = "1rbfqkzr6i8b6538z16chvrkgywf5p5vafsgmnbmvrmh0ingsx2y"; type = "gem"; }; - version = "3.4.1"; + version = "3.5.0"; }; drb = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0h5kbj9hvg5hb3c7l425zpds0vb42phvln2knab8nmazg2zp5m79"; + sha256 = "0wrkl7yiix268s2md1h6wh91311w95ikd8fy8m5gx589npyxc00b"; type = "gem"; }; - version = "2.2.1"; + version = "2.2.3"; }; faraday = { dependencies = [ @@ -140,10 +140,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6"; + sha256 = "0l0pz1wk2mk6p6hbfd86jfad59jyk201y1db379qhc2lrxfy8g5z"; type = "gem"; }; - version = "1.0.0"; + version = "1.0.1"; }; faraday-excon = { groups = [ "default" ]; @@ -171,10 +171,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0l87r9jg06nsh24gwwd1jdnxb1zq89ffybnxab0dd90nfcf0ysw5"; + sha256 = "00w9imp55hi81q0wsgwak90ldkk7gbyb8nzmmv8hy0s907s8z8bp"; type = "gem"; }; - version = "1.1.0"; + version = "1.1.1"; }; faraday-net_http = { groups = [ "default" ]; @@ -278,10 +278,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "05s008w9vy7is3njblmavrbdzyrwwc1fsziffdr58w9pwqj8sqfx"; + sha256 = "00q2zznygpbls8asz5knjvvj2brr3ghmqxgr83xnrdj4rk3xwvhr"; type = "gem"; }; - version = "1.6.6"; + version = "1.7.0"; }; lru_redux = { groups = [ "default" ]; @@ -298,20 +298,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0x8asxl83msn815lwmb2d7q5p29p7drhjv5va0byhk60v9n16iwf"; + sha256 = "12f2830x7pq3kj0v8nz0zjvaw02sv01bqs1zwdrc04704kwcgmqc"; type = "gem"; }; - version = "2.8.8"; + version = "2.8.9"; }; minitest = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0mn7q9yzrwinvfvkyjiz548a4rmcwbmz2fn9nyzh4j1snin6q6rr"; + sha256 = "1qyda32pf9jivaw2m7yymxshqxxd0fhjn7zpbagvmfc5c65128gh"; type = "gem"; }; - version = "5.25.5"; + version = "5.26.2"; }; multipart-post = { groups = [ "default" ]; @@ -329,20 +329,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "123ycmq6pkivv29bqbv79jv2cs04xakzd0fz1lalgvfs5nxfky6i"; + sha256 = "08ma2fmxlm6i7lih4mc3har2fzsbj1pl4hhva65kljf6nfvdryl5"; type = "gem"; }; - version = "3.0.3"; + version = "3.0.4"; }; nio4r = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1a9www524fl1ykspznz54i0phfqya4x45hqaz67in9dvw1lfwpfr"; + sha256 = "18fwy5yqnvgixq3cn0h63lm8jaxsjjxkmj8rhiv8wpzv9271d43c"; type = "gem"; }; - version = "2.7.4"; + version = "2.7.5"; }; psych = { dependencies = [ @@ -353,10 +353,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1vjrx3yd596zzi42dcaq5xw7hil1921r769dlbz08iniaawlp9c4"; + sha256 = "0vii1xc7x81hicdbp7dlllhmbw5w3jy20shj696n0vfbbnm2hhw1"; type = "gem"; }; - version = "5.2.3"; + version = "5.2.6"; }; puma = { dependencies = [ "nio4r" ]; @@ -364,20 +364,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "11xd3207k5rl6bz0qxhcb3zcr941rhx7ig2f19gxxmdk7s3hcp7j"; + sha256 = "07pajhv7pqz82kcjc6017y4d0hwz5kp746cydpx1npd79r56xddr"; type = "gem"; }; - version = "6.6.0"; + version = "6.6.1"; }; rack = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1yzhcwvfkrlb8l79w24yjclv636jn6rnznp95shmssk934bi1vnc"; + sha256 = "0fgpa9qm5qgza69fjnagg2alxs2wmj41aq7z4kj5yib50wpzgqhl"; type = "gem"; }; - version = "2.2.13"; + version = "2.2.21"; }; rack-protection = { dependencies = [ @@ -419,10 +419,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1s5qhylirrmfbjhdjdfqaiksjlaqmgixl25sxd8znq8dqwqlrydz"; + sha256 = "0irbjils48r7w14jacka3l96jzh534d98vb88yj1qc9nl43r3r2g"; type = "gem"; }; - version = "5.90.0"; + version = "5.98.0"; }; server_health_check = { groups = [ "default" ]; @@ -477,10 +477,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1j1mgvrgkxhadi6nb6pz1kcff7gsb5aivj1vfhsia4ssa5hj9adw"; + sha256 = "1v74k5yw7ndikr53wgbjn6j51p83qnzqbn9z4b53r102jcx3ri4r"; type = "gem"; }; - version = "3.1.5"; + version = "3.1.8"; }; terminal-table = { dependencies = [ "unicode-display_width" ]; @@ -498,20 +498,20 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1nmymd86a0vb39pzj2cwv57avdrl6pl3lf5bsz58q594kqxjkw7f"; + sha256 = "0gcarlmpfbmqnjvwfz44gdjhcmm634di7plcx2zdgwdhrhifhqw7"; type = "gem"; }; - version = "1.3.2"; + version = "1.4.0"; }; tilt = { groups = [ "default" ]; platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "0szpapi229v3scrvw1pgy0vpjm7z3qlf58m1198kxn70cs278g96"; + sha256 = "0w27v04d7rnxjr3f65w1m7xyvr6ch6szjj2v5wv1wz6z5ax9pa9m"; type = "gem"; }; - version = "2.6.0"; + version = "2.6.1"; }; tzinfo = { dependencies = [ "concurrent-ruby" ]; diff --git a/pkgs/by-name/hy/hydralauncher/package.nix b/pkgs/by-name/hy/hydralauncher/package.nix index d53ffa4fe712..dc24d414a84f 100644 --- a/pkgs/by-name/hy/hydralauncher/package.nix +++ b/pkgs/by-name/hy/hydralauncher/package.nix @@ -6,10 +6,10 @@ }: let pname = "hydralauncher"; - version = "3.7.5"; + version = "3.7.6"; src = fetchurl { url = "https://github.com/hydralauncher/hydra/releases/download/v${version}/hydralauncher-${version}.AppImage"; - hash = "sha256-wYhkuDA+Fxj4blVBw670UQ3uAvBfM5suWq5LOixI9Ps="; + hash = "sha256-6ERgFwJkRZH1Cj6ucswLU0EpwmjDE0gcmFYm5JbLuK0="; }; appimageContents = appimageTools.extractType2 { inherit pname src version; }; diff --git a/pkgs/by-name/me/meshtastic-web/package.nix b/pkgs/by-name/me/meshtastic-web/package.nix new file mode 100644 index 000000000000..ff09475e3425 --- /dev/null +++ b/pkgs/by-name/me/meshtastic-web/package.nix @@ -0,0 +1,41 @@ +{ + stdenv, + lib, + fetchurl, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "meshtastic-web"; + version = "2.6.7"; + + src = fetchurl { + url = "https://github.com/meshtastic/web/releases/download/v${finalAttrs.version}/build.tar"; + hash = "sha256-o09DYKBIZUOmmN4g3lM1V0kudjq0Wfwn/OqV0ElRRO0="; + }; + + sourceRoot = "."; + + buildPhase = '' + runHook preBuild + + gzip -dr . + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out + cp -ar . $out/ + + runHook postInstall + ''; + + meta = { + description = "Meshtastic Web Client/JS Monorepo"; + homepage = "https://github.com/meshtastic/web"; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ drupol ]; + }; +}) diff --git a/pkgs/by-name/me/meshtastic/package.nix b/pkgs/by-name/me/meshtastic/package.nix new file mode 100644 index 000000000000..a30cef9d3dd1 --- /dev/null +++ b/pkgs/by-name/me/meshtastic/package.nix @@ -0,0 +1,7 @@ +{ lib, python3Packages }: + +python3Packages.toPythonApplication ( + python3Packages.meshtastic.overridePythonAttrs (prev: { + dependencies = prev.dependencies ++ lib.concatAttrValues prev.optional-dependencies; + }) +) diff --git a/pkgs/by-name/me/meshtasticd/package.nix b/pkgs/by-name/me/meshtasticd/package.nix index ff15a311da20..0c72b014b9d0 100644 --- a/pkgs/by-name/me/meshtasticd/package.nix +++ b/pkgs/by-name/me/meshtasticd/package.nix @@ -1,9 +1,13 @@ { - lib, stdenv, - fetchurl, - autoPatchelfHook, - dpkg, + lib, + fetchFromGitHub, + fetchzip, + libarchive, + pkg-config, + platformio-core, + writableTmpDirAsHomeHook, + bluez, i2c-tools, libX11, libgpiod_1, @@ -11,65 +15,146 @@ libusb1, libuv, libxkbcommon, - udevCheckHook, ulfius, + openssl, + gnutls, + jansson, + zlib, + libmicrohttpd, + orcania, + yder, yaml-cpp, + udevCheckHook, + versionCheckHook, + makeBinaryWrapper, + python3Packages, + enableDefaultConfig ? false, + meshtastic-web, # Only used when `enableDefaultConfig` is set to `true`. + nixosTests, }: + +assert builtins.isBool enableDefaultConfig; + +let + version = "2.7.16.a597230"; + + platformio-deps-native = fetchzip { + url = "https://github.com/meshtastic/firmware/releases/download/v${version}/platformio-deps-native-tft-${version}.zip"; + hash = "sha256-Jo7e6zsCaiJs6NyIRmD6BWJFwbs0xVlUih206ePUpwk="; + }; +in stdenv.mkDerivation (finalAttrs: { pname = "meshtasticd"; - version = "2.6.11.25"; + inherit version; - src = fetchurl { - url = "https://download.opensuse.org/repositories/network:/Meshtastic:/beta/Debian_12/amd64/meshtasticd_${finalAttrs.version}~obs60ec05e~beta_amd64.deb"; - hash = "sha256-7JCv+1YgsCLwboGE/2f+8iyLLoUsKn3YdJ9Atnfj7Zw="; + src = fetchFromGitHub { + owner = "meshtastic"; + repo = "firmware"; + hash = "sha256-oU3Z8qjBNeNGPGT74VStAPHgsGqsQJKngHJR6m2CBa0="; + tag = "v${finalAttrs.version}"; + fetchSubmodules = true; }; - nativeBuildInputs = [ - autoPatchelfHook - dpkg - ]; - - dontConfigure = true; - dontBuild = true; - strictDeps = true; + nativeBuildInputs = [ + libarchive + pkg-config + # This has been advised by the Meshtastic's developer. + # Without it, it will try to install grpcio-tools by itself and fail. + (platformio-core.overridePythonAttrs (oldAttrs: { + dependencies = oldAttrs.dependencies ++ [ + python3Packages.grpcio-tools + ]; + })) + writableTmpDirAsHomeHook + makeBinaryWrapper + ]; + buildInputs = [ + bluez + gnutls i2c-tools + jansson libX11 libgpiod_1 libinput + libmicrohttpd libusb1 libuv libxkbcommon + openssl + orcania ulfius yaml-cpp + yder + zlib ]; - autoPatchelfIgnoreMissingDeps = [ - "libyaml-cpp.so.0.7" - ]; + preConfigure = '' + mkdir -p platformio-deps-native + cp -ar ${platformio-deps-native}/. platformio-deps-native + chmod +w -R platformio-deps-native + + export PLATFORMIO_CORE_DIR=platformio-deps-native/core + export PLATFORMIO_LIBDEPS_DIR=platformio-deps-native/libdeps + export PLATFORMIO_PACKAGES_DIR=platformio-deps-native/packages + ''; + + buildPhase = '' + runHook preBuild + + platformio run --environment native-tft + + runHook postBuild + ''; installPhase = '' runHook preInstall - mkdir -p {$out,$out/bin} - cp -r {usr,lib} $out/ + install -d $out/share/meshtasticd/config.d + install -d $out/share/meshtasticd/available.d + cp -R bin/config.d/* $out/share/meshtasticd/available.d - patchelf --replace-needed libyaml-cpp.so.0.7 libyaml-cpp.so.0.8 $out/usr/bin/meshtasticd + install -Dm644 bin/org.meshtastic.meshtasticd.svg -t $out/share/icons/hicolor/scalable/apps/ + install -Dm644 bin/org.meshtastic.meshtasticd.desktop -t $out/share/applications/ + install -Dm755 .pio/build/native-tft/program $out/bin/meshtasticd - ln -s $out/usr/bin/meshtasticd $out/bin/meshtasticd - - substituteInPlace $out/lib/systemd/system/meshtasticd.service \ - --replace-fail "/usr/bin/meshtasticd" "$out/bin/meshtasticd" \ - --replace-fail 'User=meshtasticd' 'DynamicUser=yes' \ - --replace-fail 'Group=meshtasticd' "" + install -Dm644 bin/99-meshtasticd-udev.rules -t $out/etc/udev/rules.d + '' + + lib.optionalString enableDefaultConfig '' + install -Dm644 bin/config-dist.yaml $out/share/meshtasticd/config.yaml + substituteInPlace $out/share/meshtasticd/config.yaml \ + --replace-fail "/etc/meshtasticd/config.d" "$out/share/meshtasticd/config.d" \ + --replace-fail "/etc/meshtasticd/available.d" "$out/share/meshtasticd/available.d" + wrapProgram $out/bin/meshtasticd \ + --add-flags "-c $out/share/meshtasticd/config.yaml" + install -Dm644 bin/config.d/MUI/X11_480x480.yaml $out/share/meshtasticd/config.d/MUI.yaml + substituteInPlace $out/share/meshtasticd/config.yaml \ + --replace-fail "/usr/share/meshtasticd/web" "${meshtastic-web}" + install -d $out/share/meshtasticd/maps + for file in pio/libdeps/native-tft/meshtastic-device-ui/maps/*.zip; do + bsdtar -xf "$file" --no-same-owner --strip-components=1 -C $out/share/meshtasticd/maps; + done + '' + + '' runHook postInstall ''; doInstallCheck = true; - nativeInstallCheckInputs = [ udevCheckHook ]; + nativeInstallCheckInputs = [ + udevCheckHook + versionCheckHook + ]; + versionCheckProgramArg = "--version"; + preVersionCheck = '' + version="${lib.versions.major finalAttrs.version}.${lib.versions.minor finalAttrs.version}.${lib.versions.patch finalAttrs.version}" + ''; + + passthru.tests = { + inherit (nixosTests) meshtasticd; + }; meta = { description = "Meshtastic daemon for communicating with Meshtastic devices"; @@ -77,12 +162,13 @@ stdenv.mkDerivation (finalAttrs: { This package has `udev` rules installed as part of the package. Add `services.udev.packages = [ pkgs.meshtasticd ]` into your NixOS configuration to enable them. + + To enable the default configuration, set the `enableDefaultConfig` parameter to true. ''; homepage = "https://github.com/meshtastic/firmware"; mainProgram = "meshtasticd"; license = lib.licenses.gpl3Plus; - platforms = [ "x86_64-linux" ]; - sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + platforms = lib.platforms.linux; maintainers = with lib.maintainers; [ drupol ]; }; }) diff --git a/pkgs/by-name/mo/monophony/package.nix b/pkgs/by-name/mo/monophony/package.nix index 0729a3d69453..529ff04a6cab 100644 --- a/pkgs/by-name/mo/monophony/package.nix +++ b/pkgs/by-name/mo/monophony/package.nix @@ -12,14 +12,14 @@ }: python3Packages.buildPythonApplication rec { pname = "monophony"; - version = "4.2.0"; + version = "4.2.1"; pyproject = true; src = fetchFromGitLab { owner = "zehkira"; repo = "monophony"; tag = "v${version}"; - hash = "sha256-SrRWMbI+seA7LlOU6dxlbhRKM8Ufa3KLo1tjeCtBWEY="; + hash = "sha256-3RuAFg+9Mi+tBuLmXyWlFFNOfrUvrkNvedo9Au3tMYU="; }; sourceRoot = "${src.name}/source"; diff --git a/pkgs/by-name/ox/oxidized/Gemfile b/pkgs/by-name/ox/oxidized/Gemfile index b53b3a66b17a..a7d824ee67ae 100644 --- a/pkgs/by-name/ox/oxidized/Gemfile +++ b/pkgs/by-name/ox/oxidized/Gemfile @@ -1,6 +1,6 @@ source 'https://rubygems.org' -gem 'oxidized', '0.34.3' -gem 'oxidized-web', '0.17.1' +gem 'oxidized', '0.35.0' +gem 'oxidized-web', '0.18.0' gem 'oxidized-script', '0.7.0' gem 'psych', '~> 5.0' diff --git a/pkgs/by-name/ox/oxidized/Gemfile.lock b/pkgs/by-name/ox/oxidized/Gemfile.lock index d07391659612..9dd1cba4846d 100644 --- a/pkgs/by-name/ox/oxidized/Gemfile.lock +++ b/pkgs/by-name/ox/oxidized/Gemfile.lock @@ -31,7 +31,7 @@ GEM net-ssh (7.3.0) net-telnet (0.2.0) nio4r (2.7.4) - oxidized (0.34.3) + oxidized (0.35.0) asetus (~> 0.4) bcrypt_pbkdf (~> 1.0) ed25519 (~> 1.2) @@ -49,16 +49,16 @@ GEM oxidized-script (0.7.0) oxidized (~> 0.29) slop (~> 4.6) - oxidized-web (0.17.1) + oxidized-web (0.18.0) charlock_holmes (>= 0.7.5, < 0.8.0) emk-sinatra-url-for (~> 0.2) - haml (>= 6.0.0, < 6.4.0) - htmlentities (>= 4.3.0, < 4.4.0) - json (>= 2.3.0, < 2.14.0) - oxidized (~> 0.34.1) - puma (~> 6.6.0) - sinatra (~> 4.1.1) - sinatra-contrib (~> 4.1.1) + haml (>= 6.0.0, < 7.0.0) + htmlentities (>= 4.3.0, < 4.5.0) + json (>= 2.3.0, < 2.17.0) + oxidized (>= 0.34.1) + puma (>= 6.6, < 7.2) + sinatra (>= 4.1.1, < 4.3.0) + sinatra-contrib (>= 4.1.1, < 4.3.0) psych (5.2.6) date stringio @@ -105,9 +105,9 @@ PLATFORMS ruby DEPENDENCIES - oxidized (= 0.34.3) + oxidized (= 0.35.0) oxidized-script (= 0.7.0) - oxidized-web (= 0.17.1) + oxidized-web (= 0.18.0) psych (~> 5.0) BUNDLED WITH diff --git a/pkgs/by-name/ox/oxidized/gemset.nix b/pkgs/by-name/ox/oxidized/gemset.nix index 7ced50f6feab..2f22f3817c98 100644 --- a/pkgs/by-name/ox/oxidized/gemset.nix +++ b/pkgs/by-name/ox/oxidized/gemset.nix @@ -243,10 +243,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "16k60qxp2lw8l4ny21rk0m6vx3lipdhxp0lslmwn7gqi8wyw6ra8"; + sha256 = "1s7v9w357bc5xb89an4kclqmfjv2j6p9gnvsf7s2mnrgg482j76v"; type = "gem"; }; - version = "0.34.3"; + version = "0.35.0"; }; oxidized-script = { dependencies = [ @@ -278,10 +278,10 @@ platforms = [ ]; source = { remotes = [ "https://rubygems.org" ]; - sha256 = "1kcc7qlz3w530ssfnc7rgqhcwc4f4k3lbgayffwhnzl73s8mdld9"; + sha256 = "19sz075liiqim98jvnb3jawxdpd8kk146bwvqzwvmimbgdzf8xfr"; type = "gem"; }; - version = "0.17.1"; + version = "0.18.0"; }; psych = { dependencies = [ diff --git a/pkgs/by-name/pa/paperless-ngx/package.nix b/pkgs/by-name/pa/paperless-ngx/package.nix index 47dabbea41c3..984063fdd74c 100644 --- a/pkgs/by-name/pa/paperless-ngx/package.nix +++ b/pkgs/by-name/pa/paperless-ngx/package.nix @@ -28,13 +28,13 @@ xorg, }: let - version = "2.20.0"; + version = "2.20.1"; src = fetchFromGitHub { owner = "paperless-ngx"; repo = "paperless-ngx"; tag = "v${version}"; - hash = "sha256-uf6/cl41lp2zEp3+gTbTYQlJcM3bdLTtOo+vEUrGIco="; + hash = "sha256-16eW8Yca/HgIr0wiFQq6Q5czCgA7gac1sR1q2g+ZkEc="; }; python = python3.override { @@ -80,7 +80,7 @@ let pnpmDeps = pnpm.fetchDeps { inherit (finalAttrs) pname version src; fetcherVersion = 2; - hash = "sha256-JqFkA8t5D0SmhlKwhiKIztzWGXf+vO0Ro1ABVGXVzS8="; + hash = "sha256-+fE+IUyhoENnweFggLuS9LHwcLTZrLS1TBzuXHkaNAk="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/sp/speakeasy-cli/package.nix b/pkgs/by-name/sp/speakeasy-cli/package.nix new file mode 100644 index 000000000000..2cb42d7d631a --- /dev/null +++ b/pkgs/by-name/sp/speakeasy-cli/package.nix @@ -0,0 +1,83 @@ +{ + lib, + stdenv, + fetchurl, + unzip, + curl, + jq, + installShellFiles, + writeShellScript, + common-updater-scripts, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "speakeasy-cli"; + version = "1.636.3"; + + sourceRoot = "."; + src = + finalAttrs.passthru.sources.${stdenv.hostPlatform.system} + or (throw "Unsupported System: ${stdenv.hostPlatform.system}"); + + nativeBuildInputs = [ + unzip + installShellFiles + ]; + + installPhase = '' + runHook preInstall + install -Dm 755 ./speakeasy $out/bin/speakeasy + runHook postInstall + ''; + + passthru = { + sources = { + "x86_64-darwin" = fetchurl { + url = "https://github.com/speakeasy-api/speakeasy/releases/download/v${finalAttrs.version}/speakeasy_darwin_amd64.zip"; + hash = "sha256-Q1m4g5XBNAaxJZyYz6cD/7asTUGZMa493XVVJ9s0byE="; + }; + "x86_64-linux" = fetchurl { + url = "https://github.com/speakeasy-api/speakeasy/releases/download/v${finalAttrs.version}/speakeasy_linux_amd64.zip"; + hash = "sha256-H1c+b4/fBWudc3tAHTNdWwa9aoe8HpffRaLRU7OOWs4="; + }; + "aarch64-darwin" = fetchurl { + url = "https://github.com/speakeasy-api/speakeasy/releases/download/v${finalAttrs.version}/speakeasy_darwin_arm64.zip"; + hash = "sha256-xO9S9gjiMel2ZB8Dq2nN5O+zIB/4qf5Z2xeXS0wiprc="; + }; + "aarch64-linux" = fetchurl { + url = "https://github.com/speakeasy-api/speakeasy/releases/download/v${finalAttrs.version}/speakeasy_linux_arm64.zip"; + hash = "sha256-zH/HyA6MrrCh9j53hoqfVSiRqIoL6IOCV/nsAwRlgjg="; + }; + }; + updateScript = writeShellScript "update-speakeasy" '' + set -o errxt + export PATH="${ + lib.makeBinPath [ + curl + jq + common-updater-scripts + ] + }" + + NEW_VERSION=$(curl --silent https://api.github.com/repos/speakeasy-api/speakeasy/releases/latest | jq '.tag_name' | ltrimstr("v") --raw-output) + if [[ ${finalAttrs.version} = "$NEW_VERSION"]]; then + echo "The new version is the same as old" + exit 0 + fi + for platfrom in ${lib.escapeShellArgs finalAttrs.meta.platforms}; do + update-source-version "speakeasy-cli" "$NEW_VERSION" --ignore-same-version --source-key="sources.$platform" + ''; + }; + + meta = { + description = "CLI tool for Speakeasy"; + homepage = "https://www.speakeasyapi.dev/"; + changelog = "https://github.com/speakeasy-api/speakeasy/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.elastic20; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + maintainers = with lib.maintainers; [ + eveeifyeve + ]; + mainProgram = "speakeasy"; + platforms = builtins.attrNames finalAttrs.passthru.sources; + }; +}) diff --git a/pkgs/by-name/sp/spigot/package.nix b/pkgs/by-name/sp/spigot/package.nix index 4b86a7b6beab..09c726871872 100644 --- a/pkgs/by-name/sp/spigot/package.nix +++ b/pkgs/by-name/sp/spigot/package.nix @@ -12,11 +12,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "spigot"; - version = "20220606.eb585f8"; + version = "20240909.f158e08"; src = fetchurl { url = "https://www.chiark.greenend.org.uk/~sgtatham/spigot/spigot-${finalAttrs.version}.tar.gz"; - hash = "sha256-JyNNZo/HUPWv5rYtlNYp8Hl0C7i3yxEyKm+77ysN7Ao="; + hash = "sha256-8re4ubDgsTjc/WrE60b6eXBrGEJSKJTEXd/XMdJ79nM="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/tu/tun2proxy/package.nix b/pkgs/by-name/tu/tun2proxy/package.nix index 65a6c7c45920..eba43cc309b7 100644 --- a/pkgs/by-name/tu/tun2proxy/package.nix +++ b/pkgs/by-name/tu/tun2proxy/package.nix @@ -6,15 +6,15 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "tun2proxy"; - version = "0.7.16"; + version = "0.7.17"; src = fetchCrate { pname = "tun2proxy"; inherit (finalAttrs) version; - hash = "sha256-VO0dxX2FVKFSW157HYJxvlc2Xe6W+npw+4ls/1ePu80="; + hash = "sha256-QcXFDR5JbjGX2KjGBD2Wd5eSFVTxfXUkSCWhV5QO+r4="; }; - cargoHash = "sha256-CWaHHKuDr731cf3tms4Sg9NvCjW0TgmxG3vO37z/UrE="; + cargoHash = "sha256-jzUL342AOgaWnS1NBbI/WMXiGHht+eva3yGVlAQeJfo="; env.GIT_HASH = "000000000000000000000000000000000000000000000000000"; diff --git a/pkgs/by-name/va/vacuum-go/package.nix b/pkgs/by-name/va/vacuum-go/package.nix index 191b00800098..78939e752ea8 100644 --- a/pkgs/by-name/va/vacuum-go/package.nix +++ b/pkgs/by-name/va/vacuum-go/package.nix @@ -7,14 +7,14 @@ buildGoModule (finalAttrs: { pname = "vacuum-go"; - version = "0.20.4"; + version = "0.20.5"; src = fetchFromGitHub { owner = "daveshanley"; repo = "vacuum"; # using refs/tags because simple version gives: 'the given path has multiple possibilities' error tag = "v${finalAttrs.version}"; - hash = "sha256-HJ14pMY7XUWN6E0rcrAkJFc0g1prezPD5Y+F5Gc0bII="; + hash = "sha256-q/AavjPq6+dkBIxU4PyhvNcRlTbZAQny8qEFdeTy/kA="; }; vendorHash = "sha256-MAYm6qMNB9c6o4nSclVed4g9ToOjiAItTUMAsJgEBok="; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/parental-controls/create-pam-time-conf.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/parental-controls/create-pam-time-conf.patch new file mode 100644 index 000000000000..eca0875c805e --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/parental-controls/create-pam-time-conf.patch @@ -0,0 +1,21 @@ +diff --git a/src/common/PAM/Writer.vala b/src/common/PAM/Writer.vala +index 6b80269..063f3b0 100644 +--- a/src/common/PAM/Writer.vala ++++ b/src/common/PAM/Writer.vala +@@ -25,6 +25,17 @@ namespace PC.PAM { + private string filename; + + public static Writer new_for_time () { ++ var time_file = File.new_for_path (Constants.PAM_TIME_CONF_PATH); ++ if (!time_file.query_exists ()) { ++ var security_dir = time_file.get_parent (); ++ try { ++ security_dir.make_directory_with_parents (); ++ time_file.create (FileCreateFlags.NONE); ++ } catch (Error err) { ++ critical ("Could not create \"%s\": %s", Constants.PAM_TIME_CONF_PATH, err.message); ++ } ++ } ++ + return new Writer (Constants.PAM_TIME_CONF_PATH); + } diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/parental-controls/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/parental-controls/default.nix new file mode 100644 index 000000000000..88750cafc278 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/parental-controls/default.nix @@ -0,0 +1,106 @@ +{ + stdenv, + lib, + fetchFromGitHub, + fetchpatch, + gettext, + gtk4, + meson, + ninja, + pkg-config, + vala, + wrapGAppsHook4, + accountsservice, + dbus, + flatpak, + glib, + granite7, + libadwaita, + libgee, + malcontent, + polkit, + switchboard, + systemd, + iptables, + nix-update-script, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "switchboard-plug-parental-controls"; + version = "8.0.1"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = "switchboard-plug-parental-controls"; + tag = finalAttrs.version; + hash = "sha256-yxQZSbbtWP0+gMu4cZt4bKZC7z8iZILAILYnn9ExnJY="; + }; + + patches = [ + # Change default config file path and separate default and run-time config file + # https://github.com/elementary/switchboard-plug-parental-controls/pull/206 + (fetchpatch { + url = "https://github.com/elementary/switchboard-plug-parental-controls/commit/1e5a08c1c3b0a5503e9d3f6858047d53ed8188f7.patch"; + hash = "sha256-daP/nBmrUw8b3UytIZz3bKdM+lIgAIQ/DJP0h9sdXmc="; + }) + (fetchpatch { + url = "https://github.com/elementary/switchboard-plug-parental-controls/commit/51f027657616a5d4a6bd24478a5b94fad12edb95.patch"; + hash = "sha256-JOogF1ychF7MAJdrKT4eiUgM8+Y7CN9nxnRNidRoMOk="; + }) + + # See the nixos/lightdm module for corresponding PAM files. + # Since we override conffile path we need to create time.conf ourselves. + ./create-pam-time-conf.patch + + # We cannot really setfacl on read-only desktop files. + ./disable-applications-tab.patch + ]; + + nativeBuildInputs = [ + gettext + gtk4 # gtk4-update-icon-cache + meson + ninja + pkg-config + vala + wrapGAppsHook4 + ]; + + buildInputs = [ + accountsservice + dbus + flatpak + glib + granite7 + gtk4 + libadwaita + libgee + malcontent + polkit + switchboard + systemd + ]; + + mesonFlags = [ + # For /var/lib/pantheon-parental-controls/daemon.conf + "-Dsharedstatedir=/var/lib" + "-Dsystemdunitdir=${placeholder "out"}/etc/systemd/system" + ]; + + preFixup = '' + # For WebRestriction. + gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ iptables ]}) + ''; + + passthru = { + updateScript = nix-update-script { }; + }; + + meta = { + description = "Switchboard Screen Time & Limits Plug"; + homepage = "https://github.com/elementary/switchboard-plug-parental-controls"; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.linux; + teams = [ lib.teams.pantheon ]; + }; +}) diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/parental-controls/disable-applications-tab.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/parental-controls/disable-applications-tab.patch new file mode 100644 index 000000000000..d36c5a7f07cc --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/parental-controls/disable-applications-tab.patch @@ -0,0 +1,12 @@ +diff --git a/src/plug/Widgets/ControlPage.vala b/src/plug/Widgets/ControlPage.vala +index 7d1a17d..0d37da2 100644 +--- a/src/plug/Widgets/ControlPage.vala ++++ b/src/plug/Widgets/ControlPage.vala +@@ -36,7 +36,6 @@ public class PC.Widgets.ControlPage : Switchboard.SettingsPage { + stack = new Gtk.Stack (); + stack.add_titled (time_limit_view, "general", _("Screen Time")); + stack.add_titled (internet_box, "internet", _("Internet")); +- stack.add_titled (apps_box, "apps", _("Applications")); + + var switcher = new Gtk.StackSwitcher () { + halign = CENTER, diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix index 9b2b97dc3fc4..2b3b53bc6e4d 100644 --- a/pkgs/desktops/pantheon/default.nix +++ b/pkgs/desktops/pantheon/default.nix @@ -20,6 +20,7 @@ lib.makeScope pkgs.newScope ( switchboard-plug-notifications switchboard-plug-onlineaccounts switchboard-plug-pantheon-shell + switchboard-plug-parental-controls switchboard-plug-power switchboard-plug-printers switchboard-plug-security-privacy @@ -201,6 +202,8 @@ lib.makeScope pkgs.newScope ( switchboard-plug-pantheon-shell = callPackage ./apps/switchboard-plugs/pantheon-shell { }; + switchboard-plug-parental-controls = callPackage ./apps/switchboard-plugs/parental-controls { }; + switchboard-plug-power = callPackage ./apps/switchboard-plugs/power { }; switchboard-plug-printers = callPackage ./apps/switchboard-plugs/printers { }; diff --git a/pkgs/development/compilers/dotnet/versions/9.0.nix b/pkgs/development/compilers/dotnet/versions/9.0.nix index 3fd8b3057ad0..bc254f4367cb 100644 --- a/pkgs/development/compilers/dotnet/versions/9.0.nix +++ b/pkgs/development/compilers/dotnet/versions/9.0.nix @@ -482,39 +482,39 @@ rec { }; sdk_9_0_3xx = buildNetSdk { - version = "9.0.307"; + version = "9.0.308"; srcs = { linux-arm = { - url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-linux-arm.tar.gz"; - hash = "sha512-zda8G93uT68VB+E9bbPk6TrLBf4rn7eh9uXOTuz2OylTMwWTPtUDhuh5Rf3Uybr2KR32OjGvi9mbadIs++uJCQ=="; + url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-linux-arm.tar.gz"; + hash = "sha512-3iUHh7vk+fs4t20fC+1rO42O1Rs9KJ26aPGkljzM6S/lTpQPItlw/S9SCfEjEToRSZqYcQWE1Tu10hSg+3Z5KQ=="; }; linux-arm64 = { - url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-linux-arm64.tar.gz"; - hash = "sha512-Rr+wvT6BJPD6vdI0vPIDg6hkWdVfPT1zF4oLziiLQLgsXf0XJYa+RHUg4hH9z9qGkCyxBrXsxNMVI02cj4vLcA=="; + url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-linux-arm64.tar.gz"; + hash = "sha512-Ifvc3Lh2LzV57yqKxdkssNuWCQHxww0Df6FlIjjvYGv8e/+i5R/Mg/lPPCx9W+5dz+1LZrqkVa49OGgeJk0j/w=="; }; linux-x64 = { - url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-linux-x64.tar.gz"; - hash = "sha512-/MF4rAAmz+oes3Mg+yX/0y5rwrHUjAkfYIW4ihXyQIDa4qMyNDxRyiQh9hPV96veiYNGWJ9JWfHlHWGcIkfSFg=="; + url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-linux-x64.tar.gz"; + hash = "sha512-Oqz/CWUkodrpvANfcaaAX6fsNDDTlXcfwchVBRZaeDYc4sycnDVDM3blwwrsN+LrLnfeCmun3dfcYFO68sJwmg=="; }; linux-musl-arm = { - url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-linux-musl-arm.tar.gz"; - hash = "sha512-sKtwAvYOqUtoFAXEh2yxUtZckUH0QMrO+MzG09LovW7tBC4cp1W7gs9Apjzhm+JUUEKzrysh+KkeBaumgh5XGQ=="; + url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-linux-musl-arm.tar.gz"; + hash = "sha512-czH5OG5VAo/DyiE+1Vi8bmH9MrubkAQmy60aOrZ42oqe2hNeBzwxiHR0GoAuJZjwyZ+T0WHLSGGlnLtjlMZIyA=="; }; linux-musl-arm64 = { - url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-linux-musl-arm64.tar.gz"; - hash = "sha512-iL/jBb+g4cHS7bhwEhnUpm/eeDzAQt/yAlKn7hvQp5Zo1MLbgnbv73VgGbZ0glgpkHOC8w0wGUDqLlxYff8JQg=="; + url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-linux-musl-arm64.tar.gz"; + hash = "sha512-AI71i0T7HHZbiMjGaH2WzqN8/bjHEUFhQgdD/5FrYr1n/+4MmBNb6gXZwigwbvHtEU8tgV3LW4s8txf5xROmMg=="; }; linux-musl-x64 = { - url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-linux-musl-x64.tar.gz"; - hash = "sha512-iqHqLRnQjvzxN28vg3bYovyC/Hef9vFQ4K7jBoqa+HAR7RWQJ2ty8E408wEK309Vbx1GYUKRdqTidZWSSGrN7A=="; + url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-linux-musl-x64.tar.gz"; + hash = "sha512-zq1a7hEPUnmO1CDK9J3Q9HaOFamd7Da0EXTmszEgjV2L5ePtRAvtFtG4XPkGCRvaaK9bzbA4PDU+nmH/ayTfNg=="; }; osx-arm64 = { - url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-osx-arm64.tar.gz"; - hash = "sha512-LSlLg23Yu0ihX6v/KQdruc6+V4Yp5ty+YMw7Lq8GBx6hl+Aw+lCxuXFMvHAwRWrOLDgPxWnhw+7R7IqqGLWIQg=="; + url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-osx-arm64.tar.gz"; + hash = "sha512-jUsh/6gEfrxEWbIqYJDkIh/Is8q0WrY43MYfGl6zvy3/nzTbMFtAx5WuK68XMroV+Rzl371xip9EVWFZTZwhng=="; }; osx-x64 = { - url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.307/dotnet-sdk-9.0.307-osx-x64.tar.gz"; - hash = "sha512-05ZabtZ07zCJ7iJaopmIUmTQg0e+CotOwQN//xMWzLulIja2JZUNv3M+2UxYlobMHWrcMScejyMikEmVVd1h7g=="; + url = "https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.308/dotnet-sdk-9.0.308-osx-x64.tar.gz"; + hash = "sha512-49Y+BmkCtQ/jIfztg7wk/QQN9ZHDxYknyyB9y5UFRDn4WYfRuFMyONVy742766gSJiKvecnvrHqUdtiIQrfLdg=="; }; }; inherit commonPackages hostPackages targetPackages; diff --git a/pkgs/development/compilers/llvm/common/clang/default.nix b/pkgs/development/compilers/llvm/common/clang/default.nix index 9d0441dd50b3..aca810bce2bc 100644 --- a/pkgs/development/compilers/llvm/common/clang/default.nix +++ b/pkgs/development/compilers/llvm/common/clang/default.nix @@ -160,7 +160,11 @@ stdenv.mkDerivation ( mv $out/bin/set-xcode-analyzer $python/bin fi mv $out/share/clang/*.py $python/share/clang + '' + + lib.optionalString (lib.versionOlder release_version "22") '' rm $out/bin/c-index-test + '' + + '' patchShebangs $python/bin mkdir -p $dev/bin diff --git a/pkgs/development/compilers/llvm/default.nix b/pkgs/development/compilers/llvm/default.nix index d1b7213a1964..b6c7f2693c07 100644 --- a/pkgs/development/compilers/llvm/default.nix +++ b/pkgs/development/compilers/llvm/default.nix @@ -27,9 +27,9 @@ let "20.1.8".officialRelease.sha256 = "sha256-ysyB/EYxi2qE9fD5x/F2zI4vjn8UDoo1Z9ukiIrjFGw="; "21.1.7".officialRelease.sha256 = "sha256-SaRJ7+iZMhhBdcUDuJpMAY4REQVhrvYMqI2aq3Kz08o="; "22.0.0-git".gitRelease = { - rev = "81c5d468cf00d6e41112fba6c89d6c40013bcbda"; - rev-version = "22.0.0-unstable-2025-11-30"; - sha256 = "sha256-aZdPGmj+02pQPjvIlJyn9DEKCiIHjLaethxRUa2MWHE="; + rev = "fc92e4dec9a6dfcb4fb77d863d0bf1dbc53033e5"; + rev-version = "22.0.0-unstable-2025-12-07"; + sha256 = "sha256-ntcaJgSG22tIDTBUVEwx+6ksQrWR6YHDwbUOls06JEE="; }; } // llvmVersions; diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix index 41b81b6ba15f..1ae029d0e519 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix @@ -217,6 +217,7 @@ in apply-refact = addBuildDepend self.data-default-class super.apply-refact; floskell = doJailbreak super.floskell; fourmolu = dontCheck (doJailbreak self.fourmolu_0_15_0_0); + ghcide = super.ghcide; haskell-language-server = addBuildDepends [ self.retrie self.floskell @@ -224,6 +225,7 @@ in ] super.haskell-language-server; hls-plugin-api = super.hls-plugin-api; hlint = self.hlint_3_8; + lsp-types = super.lsp-types; ormolu = self.ormolu_0_7_4_0; retrie = doJailbreak (unmarkBroken super.retrie); stylish-haskell = self.stylish-haskell_0_14_6_0; @@ -232,9 +234,11 @@ in apply-refact floskell fourmolu + ghcide haskell-language-server hls-plugin-api hlint + lsp-types ormolu retrie stylish-haskell diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix index 8b430b143451..1786e56c482c 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix @@ -121,6 +121,7 @@ in apply-refact = addBuildDepend self.data-default-class super.apply-refact; floskell = doJailbreak super.floskell; fourmolu = dontCheck (doJailbreak self.fourmolu_0_15_0_0); + ghcide = super.ghcide; haskell-language-server = addBuildDepends [ self.retrie self.floskell @@ -128,6 +129,7 @@ in ] super.haskell-language-server; hls-plugin-api = super.hls-plugin-api; hlint = self.hlint_3_8; + lsp-types = super.lsp-types; ormolu = self.ormolu_0_7_4_0; retrie = doJailbreak (unmarkBroken super.retrie); stylish-haskell = self.stylish-haskell_0_14_6_0; @@ -136,9 +138,11 @@ in apply-refact floskell fourmolu + ghcide haskell-language-server hls-plugin-api hlint + lsp-types ormolu retrie stylish-haskell diff --git a/pkgs/development/libraries/kquickimageedit/default.nix b/pkgs/development/libraries/kquickimageedit/default.nix index b2f8c06ad2bd..66dc6981c355 100644 --- a/pkgs/development/libraries/kquickimageedit/default.nix +++ b/pkgs/development/libraries/kquickimageedit/default.nix @@ -6,18 +6,19 @@ kdePackages, qtbase, qtdeclarative, + opencv, }: stdenv.mkDerivation rec { pname = "kquickimageeditor"; - version = "0.5.1"; + version = "0.6.0"; src = fetchFromGitLab { domain = "invent.kde.org"; owner = "libraries"; repo = "kquickimageeditor"; rev = "v${version}"; - sha256 = "sha256-8TJBg42E9lNbLpihjtc5Z/drmmSGQmic8yO45yxSNQ4="; + sha256 = "sha256-NhZ9aAZuIk9vUL2X7eivNbEs0zahuQpy8kl6dSdy5Lo="; }; nativeBuildInputs = [ extra-cmake-modules ]; @@ -25,6 +26,14 @@ stdenv.mkDerivation rec { kdePackages.kirigami qtbase qtdeclarative + (opencv.override { + enableCuda = false; # fails to compile, disabled in case someone sets config.cudaSupport + enabledModules = [ + "core" + "imgproc" + ]; + runAccuracyTests = false; # tests will fail because of missing plugins but that's okay + }) ]; dontWrapQtApps = true; diff --git a/pkgs/development/ocaml-modules/crowbar/default.nix b/pkgs/development/ocaml-modules/crowbar/default.nix index 70a22674185f..279fdb8a392b 100644 --- a/pkgs/development/ocaml-modules/crowbar/default.nix +++ b/pkgs/development/ocaml-modules/crowbar/default.nix @@ -3,7 +3,6 @@ stdenv, buildDunePackage, fetchFromGitHub, - ocplib-endian, cmdliner, afl-persistent, calendar, @@ -14,24 +13,21 @@ uucp, }: -buildDunePackage rec { +buildDunePackage (finalAttrs: { pname = "crowbar"; - version = "0.2.1"; + version = "0.2.2"; src = fetchFromGitHub { owner = "stedolan"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-0jjwiOZ9Ut+dv5Iw4xNvf396WTehT1VClxY9VHicw4U="; + repo = "crowbar"; + tag = "v${finalAttrs.version}"; + hash = "sha256-KGDOm9PMymFwyHoe7gp+rl+VxbbkLvnb8ypTXbImSgs="; }; - minimalOCamlVersion = "4.08"; - # disable xmldiff tests, so we don't need to package unmaintained and legacy pkgs postPatch = "rm -rf examples/xmldiff"; propagatedBuildInputs = [ - ocplib-endian cmdliner afl-persistent ]; @@ -50,6 +46,6 @@ buildDunePackage rec { description = "Property fuzzing for OCaml"; homepage = "https://github.com/stedolan/crowbar"; license = lib.licenses.mit; - maintainers = [ lib.maintainers.sternenseemann ]; + maintainers = with lib.maintainers; [ sternenseemann ]; }; -} +}) diff --git a/pkgs/development/python-modules/disposable-email-domains/default.nix b/pkgs/development/python-modules/disposable-email-domains/default.nix index 8f8bab47230e..d460f9ea9510 100644 --- a/pkgs/development/python-modules/disposable-email-domains/default.nix +++ b/pkgs/development/python-modules/disposable-email-domains/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "disposable-email-domains"; - version = "0.0.151"; + version = "0.0.152"; pyproject = true; # No tags on GitHub src = fetchPypi { pname = "disposable_email_domains"; inherit version; - hash = "sha256-jXtOepZPvp2jlOWJ1Lp2ltnrWU3qL5jHunPRcPLZc8E="; + hash = "sha256-5F3ZC9tZ1cpX6qTvDm74bTEJQRYWEn1+QI0d04Yry8M="; }; build-system = [ diff --git a/pkgs/development/python-modules/esp-idf-size/default.nix b/pkgs/development/python-modules/esp-idf-size/default.nix index 65d56e7f6aa7..cf253d2ad7da 100644 --- a/pkgs/development/python-modules/esp-idf-size/default.nix +++ b/pkgs/development/python-modules/esp-idf-size/default.nix @@ -19,14 +19,14 @@ buildPythonPackage rec { pname = "esp-idf-size"; - version = "2.0.0"; + version = "2.1.0"; pyproject = true; src = fetchFromGitHub { owner = "espressif"; repo = "esp-idf-size"; tag = "v${version}"; - hash = "sha256-LnaS6lm2/fy9aWiV/MuRKegDAmjljQFvp+uI8FmEpdI="; + hash = "sha256-A78sbuxn26gJqZ84EhYWKCVtkZE3gRT3jbjWLpwjXpQ="; }; patches = [ diff --git a/pkgs/development/python-modules/ezdxf/default.nix b/pkgs/development/python-modules/ezdxf/default.nix index fdc2702fc878..1b3d99e467be 100644 --- a/pkgs/development/python-modules/ezdxf/default.nix +++ b/pkgs/development/python-modules/ezdxf/default.nix @@ -1,7 +1,7 @@ { lib, + stdenv, buildPythonPackage, - pythonOlder, fetchFromGitHub, pyparsing, typing-extensions, @@ -15,29 +15,34 @@ matplotlib, pymupdf, pyqt5, + withGui ? false, + qt6, + librecad, + gitUpdater, }: buildPythonPackage rec { - version = "1.3.2"; + version = "1.4.3"; pname = "ezdxf"; pyproject = true; - disabled = pythonOlder "3.5"; - src = fetchFromGitHub { owner = "mozman"; repo = "ezdxf"; tag = "v${version}"; - hash = "sha256-BzdLl2GjLh2ABJzJ6bhdbic9jlSABIVR3XGrYiLJHa0="; + hash = "sha256-v/xW/Tg3OgzwvSNy3cfkxzf6R33ZvW4VE8k7MB+rM+w="; }; + nativeBuildInputs = lib.optionals withGui [ qt6.wrapQtAppsHook ]; + dependencies = [ pyparsing typing-extensions numpy fonttools - ]; + ] + ++ lib.optionals withGui ([ qt6.qtbase ] ++ optional-dependencies.draw); optional-dependencies = { draw = [ @@ -59,6 +64,12 @@ buildPythonPackage rec { cython ]; + dontWrapQtApps = true; + + preFixup = lib.optionalString withGui '' + makeWrapperArgs+=("''${qtWrapperArgs[@]}") + ''; + checkInputs = [ pillow ]; nativeCheckInputs = [ pytestCheckHook ]; @@ -68,10 +79,26 @@ buildPythonPackage rec { "ezdxf.addons" ]; + preCheck = '' + ln -s "${librecad}/${ + if stdenv.hostPlatform.isDarwin then + "Applications/LibreCAD.app/Contents/Resources" + else + "share/librecad" + }/fonts" fonts/librecad + ''; + + # The default updateScript of Python packages does not filter prerelease versions. + passthru.updateScript = gitUpdater { + rev-prefix = "v"; + allowedVersions = "^[0-9]+\\.[0-9]+\\.[0-9]+$"; + }; + meta = { description = "Python package to read and write DXF drawings (interface to the DXF file format)"; mainProgram = "ezdxf"; - homepage = "https://github.com/mozman/ezdxf/"; + homepage = "https://ezdxf.mozman.at/"; + changelog = "https://github.com/mozman/ezdxf/blob/${src.rev}/notes/pages/CHANGELOG.md"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ hodapp ]; platforms = lib.platforms.unix; diff --git a/pkgs/development/python-modules/iamdata/default.nix b/pkgs/development/python-modules/iamdata/default.nix index f991b776c43c..8a789969500a 100644 --- a/pkgs/development/python-modules/iamdata/default.nix +++ b/pkgs/development/python-modules/iamdata/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "iamdata"; - version = "0.1.202512091"; + version = "0.1.202512111"; pyproject = true; src = fetchFromGitHub { owner = "cloud-copilot"; repo = "iam-data-python"; tag = "v${version}"; - hash = "sha256-y6DlcmPRC/yG++ejpbzVCOgPmj53pKwEWilxdep6x7Q="; + hash = "sha256-4bOrVi8RpoVw+jzB7pMUnFx6FtyICCaVL4gO1ljJGsI="; }; __darwinAllowLocalNetworking = true; diff --git a/pkgs/development/python-modules/sshfs/default.nix b/pkgs/development/python-modules/sshfs/default.nix index 1e89d88034d7..256eb69a9b71 100644 --- a/pkgs/development/python-modules/sshfs/default.nix +++ b/pkgs/development/python-modules/sshfs/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "sshfs"; - version = "2025.10.0"; + version = "2025.11.0"; pyproject = true; src = fetchFromGitHub { owner = "fsspec"; repo = "sshfs"; tag = version; - hash = "sha256-IG+/aXM6F+sNtxmhgiaD6OXhRpbiCm0zW2ki0y8nuLE="; + hash = "sha256-TrFrjORH6VebTBq+OHJUEr55DtjL58/b+qQLpbSU7MU="; }; build-system = [ diff --git a/pkgs/development/python-modules/yt-dlp-ejs/default.nix b/pkgs/development/python-modules/yt-dlp-ejs/default.nix index 98c54a6b1c8c..cd4f11303a3d 100644 --- a/pkgs/development/python-modules/yt-dlp-ejs/default.nix +++ b/pkgs/development/python-modules/yt-dlp-ejs/default.nix @@ -40,6 +40,8 @@ buildPythonPackage rec { pnpm.configHook ]; + pythonImportsCheck = [ "yt_dlp_ejs" ]; + meta = { changelog = "https://github.com/yt-dlp/ejs/releases/tag/${version}"; description = "External JavaScript for yt-dlp supporting many runtimes"; diff --git a/pkgs/development/web/nodejs/update.nix b/pkgs/development/web/nodejs/update.nix index fbe2f5474299..c4810232d588 100644 --- a/pkgs/development/web/nodejs/update.nix +++ b/pkgs/development/web/nodejs/update.nix @@ -13,10 +13,10 @@ }: let - rev = "901fc09b83c686693be51b3c9a13578929cbc1ab"; # should be the HEAD of nodejs/release-keys + rev = "b362bd15f2ac7ce350d7563fc03e0c625e455e5f"; # should be the HEAD of nodejs/release-keys pubring = fetchurl { url = "https://github.com/nodejs/release-keys/raw/${rev}/gpg-only-active-keys/pubring.kbx"; - hash = "sha256-r/thHVLDlMVRN3Ahr5Apivy+h2IuvPm4QhYFoAmms3E="; + hash = "sha256-ZnapJ9YmGnq2u03caWFII1Z0Jruax3ruSEz7XWb0oUg="; }; in writeScript "update-nodejs" '' diff --git a/pkgs/kde/default.nix b/pkgs/kde/default.nix index 03436b9bf0e6..cbb0d5fff6cf 100644 --- a/pkgs/kde/default.nix +++ b/pkgs/kde/default.nix @@ -37,8 +37,6 @@ let inherit (v) version; } ) allUrls; - - debugAlias = set: lib.dontRecurseIntoAttrs (lib.filterAttrs (k: v: !v.meta.broken) set); in ( qt6Packages @@ -46,12 +44,13 @@ let // gear // plasma // { - inherit sources; - # Aliases to simplify test-building entire package sets - frameworks = debugAlias frameworks; - gear = debugAlias gear; - plasma = debugAlias plasma; + inherit + sources + frameworks + gear + plasma + ; mkKdeDerivation = self.callPackage (import ./lib/mk-kde-derivation.nix self) { }; diff --git a/pkgs/kde/gear/calligra/default.nix b/pkgs/kde/gear/calligra/default.nix index b0d1e99c9b0c..6cbdeb223aa4 100644 --- a/pkgs/kde/gear/calligra/default.nix +++ b/pkgs/kde/gear/calligra/default.nix @@ -1,7 +1,6 @@ { mkKdeDerivation, lib, - fetchpatch, boost, eigen, gsl, @@ -27,14 +26,6 @@ mkKdeDerivation { pname = "calligra"; - patches = [ - # Fix build with Poppler 25.10 - (fetchpatch { - url = "https://invent.kde.org/office/calligra/-/commit/45e8b302bce1d318f310ea13599d7ce84acc477e.patch"; - hash = "sha256-TECB3eo24+gI8TXL8gw9BIdFWqw0JBKCWpoNVqBSan8="; - }) - ]; - extraBuildInputs = [ boost eigen diff --git a/pkgs/kde/gear/ffmpegthumbs/default.nix b/pkgs/kde/gear/ffmpegthumbs/default.nix index 71740192c421..aefd1fffd60f 100644 --- a/pkgs/kde/gear/ffmpegthumbs/default.nix +++ b/pkgs/kde/gear/ffmpegthumbs/default.nix @@ -1,9 +1,11 @@ { mkKdeDerivation, + pkg-config, ffmpeg, }: mkKdeDerivation { pname = "ffmpegthumbs"; + extraNativeBuildInputs = [ pkg-config ]; extraBuildInputs = [ ffmpeg ]; } diff --git a/pkgs/kde/gear/itinerary/default.nix b/pkgs/kde/gear/itinerary/default.nix index 0b2292a2ada3..63a587ecdee0 100644 --- a/pkgs/kde/gear/itinerary/default.nix +++ b/pkgs/kde/gear/itinerary/default.nix @@ -3,6 +3,7 @@ pkg-config, qtlocation, qtpositioning, + qcoro, shared-mime-info, libical, }: @@ -19,6 +20,7 @@ mkKdeDerivation { extraBuildInputs = [ qtlocation qtpositioning + qcoro libical ]; meta.mainProgram = "itinerary"; diff --git a/pkgs/kde/gear/kalarm/default.nix b/pkgs/kde/gear/kalarm/default.nix index f20edc090438..a00a04569d1b 100644 --- a/pkgs/kde/gear/kalarm/default.nix +++ b/pkgs/kde/gear/kalarm/default.nix @@ -1,6 +1,7 @@ { mkKdeDerivation, pkg-config, + kauth, mpv, }: mkKdeDerivation { @@ -11,5 +12,8 @@ mkKdeDerivation { ]; extraNativeBuildInputs = [ pkg-config ]; - extraBuildInputs = [ mpv ]; + extraBuildInputs = [ + kauth + mpv + ]; } diff --git a/pkgs/kde/gear/kamoso/default.nix b/pkgs/kde/gear/kamoso/default.nix index 11c8dff098b2..160eacf6ac7a 100644 --- a/pkgs/kde/gear/kamoso/default.nix +++ b/pkgs/kde/gear/kamoso/default.nix @@ -1,6 +1,7 @@ { mkKdeDerivation, pkg-config, + kirigami-addons, gst_all_1, frei0r, }: @@ -9,6 +10,7 @@ mkKdeDerivation { extraNativeBuildInputs = [ pkg-config ]; extraBuildInputs = [ + kirigami-addons gst_all_1.gst-plugins-base (gst_all_1.gst-plugins-good.override { qt6Support = true; }) gst_all_1.gst-plugins-bad diff --git a/pkgs/kde/gear/kclock/default.nix b/pkgs/kde/gear/kclock/default.nix index 56ec55e885da..f81311026c67 100644 --- a/pkgs/kde/gear/kclock/default.nix +++ b/pkgs/kde/gear/kclock/default.nix @@ -1,13 +1,19 @@ { mkKdeDerivation, + pkg-config, qtsvg, qtmultimedia, + wayland-protocols, }: mkKdeDerivation { pname = "kclock"; + extraNativeBuildInputs = [ pkg-config ]; + extraBuildInputs = [ qtsvg qtmultimedia + + wayland-protocols ]; } diff --git a/pkgs/kde/gear/kdeconnect-kde/default.nix b/pkgs/kde/gear/kdeconnect-kde/default.nix index 795cc5b7106e..a9c95f7b6fb5 100644 --- a/pkgs/kde/gear/kdeconnect-kde/default.nix +++ b/pkgs/kde/gear/kdeconnect-kde/default.nix @@ -10,7 +10,6 @@ wayland, wayland-protocols, libfakekey, - fetchpatch, }: mkKdeDerivation { pname = "kdeconnect-kde"; @@ -19,12 +18,6 @@ mkKdeDerivation { (replaceVars ./hardcode-sshfs-path.patch { sshfs = lib.getExe sshfs; }) - # Fix CVE-2025-66270 (https://kde.org/info/security/advisory-20251128-1.txt) - (fetchpatch { - name = "CVE-2025-66270.patch"; - url = "https://invent.kde.org/network/kdeconnect-kde/-/commit/4e53bcdd5d4c28bd9fefd114b807ce35d7b3373e.patch"; - hash = "sha256-qtcXNJ5qL4xtZQ70R/wWVCzFGzXNltr6XTgs0fpkTi4="; - }) ]; # Hardcoded as a QString, which is UTF-16 so Nix can't pick it up automatically diff --git a/pkgs/kde/gear/kdenetwork-filesharing/dependency-paths.patch b/pkgs/kde/gear/kdenetwork-filesharing/dependency-paths.patch index f5716e663162..69cee3936072 100644 --- a/pkgs/kde/gear/kdenetwork-filesharing/dependency-paths.patch +++ b/pkgs/kde/gear/kdenetwork-filesharing/dependency-paths.patch @@ -1,71 +1,57 @@ diff --git a/samba/filepropertiesplugin/authhelper.cpp b/samba/filepropertiesplugin/authhelper.cpp -index 6cbbd90..ae1d696 100644 +index b45b25f..b71554f 100644 --- a/samba/filepropertiesplugin/authhelper.cpp +++ b/samba/filepropertiesplugin/authhelper.cpp -@@ -49,7 +49,7 @@ ActionReply AuthHelper::isuserknown(const QVariantMap &args) +@@ -50,7 +50,7 @@ ActionReply AuthHelper::isuserknown(const QVariantMap &args) } QProcess p; - const auto program = QStringLiteral("pdbedit"); + const auto program = QStringLiteral("@samba@/bin/pdbedit"); - const auto arguments = QStringList({QStringLiteral("--debuglevel=0"), QStringLiteral("--user"), username }); + const auto arguments = QStringList({QStringLiteral("--debuglevel=0"), QStringLiteral("--user"), username}); p.setProgram(program); p.setArguments(arguments); -@@ -88,7 +88,7 @@ ActionReply AuthHelper::createuser(const QVariantMap &args) +@@ -92,7 +92,7 @@ ActionReply AuthHelper::createuser(const QVariantMap &args) } QProcess p; - p.setProgram(QStringLiteral("smbpasswd")); + p.setProgram(QStringLiteral("@samba@/bin/smbpasswd")); - p.setArguments({ - QStringLiteral("-L"), /* local mode */ - QStringLiteral("-s"), /* read from stdin */ -@@ -152,7 +152,7 @@ ActionReply AuthHelper::addtogroup(const QVariantMap &args) - QStringLiteral("-m"), - QStringLiteral("{%1}").arg(user.value()) }); + p.setArguments({QStringLiteral("-L"), /* local mode */ + QStringLiteral("-s"), /* read from stdin */ + QStringLiteral("-D"), +@@ -155,7 +155,7 @@ ActionReply AuthHelper::addtogroup(const QVariantMap &args) + p.setArguments( + {QStringLiteral("group"), QStringLiteral("mod"), QStringLiteral("{%1}").arg(group), QStringLiteral("-m"), QStringLiteral("{%1}").arg(user.value())}); #elif defined(Q_OS_LINUX) || defined(Q_OS_HURD) - p.setProgram(QStringLiteral("/usr/sbin/usermod")); + p.setProgram(QStringLiteral("@usermod@")); - p.setArguments({ - QStringLiteral("--append"), - QStringLiteral("--groups"), + p.setArguments({QStringLiteral("--append"), QStringLiteral("--groups"), group, user.value()}); + #else + #error "Platform lacks group management support. Please add support." diff --git a/samba/filepropertiesplugin/groupmanager.cpp b/samba/filepropertiesplugin/groupmanager.cpp -index a2ba851..d54f6ce 100644 +index 948f428..f25e549 100644 --- a/samba/filepropertiesplugin/groupmanager.cpp +++ b/samba/filepropertiesplugin/groupmanager.cpp @@ -18,7 +18,7 @@ GroupManager::GroupManager(QObject *parent) { - metaObject()->invokeMethod(this, [this] { + QMetaObject::invokeMethod(this, [this] { auto proc = new QProcess; - proc->setProgram(QStringLiteral("testparm")); + proc->setProgram(QStringLiteral("@samba@/bin/testparm")); proc->setArguments({QStringLiteral("--debuglevel=0"), QStringLiteral("--suppress-prompt"), QStringLiteral("--verbose"), -diff --git a/samba/filepropertiesplugin/sambausershareplugin.cpp b/samba/filepropertiesplugin/sambausershareplugin.cpp -index 4f6642e..86ea121 100644 ---- a/samba/filepropertiesplugin/sambausershareplugin.cpp -+++ b/samba/filepropertiesplugin/sambausershareplugin.cpp -@@ -112,7 +112,8 @@ SambaUserSharePlugin::SambaUserSharePlugin(QObject *parent) - bool SambaUserSharePlugin::isSambaInstalled() - { - return QFile::exists(QStringLiteral("/usr/sbin/smbd")) -- || QFile::exists(QStringLiteral("/usr/local/sbin/smbd")); -+ || QFile::exists(QStringLiteral("/usr/local/sbin/smbd")) -+ || QFile::exists(QStringLiteral("/run/current-system/sw/bin/smbd")); - } - - void SambaUserSharePlugin::showSambaStatus() diff --git a/samba/filepropertiesplugin/usermanager.cpp b/samba/filepropertiesplugin/usermanager.cpp -index 29238ce..ff20fcb 100644 +index 3be3b8c..66fd965 100644 --- a/samba/filepropertiesplugin/usermanager.cpp +++ b/samba/filepropertiesplugin/usermanager.cpp -@@ -138,7 +138,7 @@ bool UserManager::canManageSamba() const +@@ -134,7 +134,7 @@ bool UserManager::canManageSamba() const void UserManager::load() { auto proc = new QProcess(this); - proc->setProgram(QStringLiteral("testparm")); + proc->setProgram(QStringLiteral("@samba@/bin/testparm")); - proc->setArguments({ - QStringLiteral("--debuglevel=0"), - QStringLiteral("--suppress-prompt"), + proc->setArguments({QStringLiteral("--debuglevel=0"), + QStringLiteral("--suppress-prompt"), + QStringLiteral("--verbose"), diff --git a/pkgs/kde/gear/kdenlive/default.nix b/pkgs/kde/gear/kdenlive/default.nix index 2b6ce0de6fc5..965325788e58 100644 --- a/pkgs/kde/gear/kdenlive/default.nix +++ b/pkgs/kde/gear/kdenlive/default.nix @@ -9,6 +9,7 @@ qtsvg, qtmultimedia, qtnetworkauth, + kddockwidgets, qqc2-desktop-style, libv4l, opentimelineio, @@ -38,6 +39,7 @@ mkKdeDerivation { qtmultimedia qtnetworkauth + kddockwidgets qqc2-desktop-style ffmpeg-full diff --git a/pkgs/kde/gear/kpkpass/default.nix b/pkgs/kde/gear/kpkpass/default.nix index 662873300447..d248d7964f68 100644 --- a/pkgs/kde/gear/kpkpass/default.nix +++ b/pkgs/kde/gear/kpkpass/default.nix @@ -1,9 +1,11 @@ { mkKdeDerivation, shared-mime-info, + qtdeclarative, }: mkKdeDerivation { pname = "kpkpass"; extraNativeBuildInputs = [ shared-mime-info ]; + extraBuildInputs = [ qtdeclarative ]; } diff --git a/pkgs/kde/gear/kpublictransport/default.nix b/pkgs/kde/gear/kpublictransport/default.nix index 40f0587d3024..6fe3e4c60cae 100644 --- a/pkgs/kde/gear/kpublictransport/default.nix +++ b/pkgs/kde/gear/kpublictransport/default.nix @@ -1,11 +1,15 @@ { mkKdeDerivation, qtdeclarative, + qtlocation, pkg-config, }: mkKdeDerivation { pname = "kpublictransport"; extraNativeBuildInputs = [ pkg-config ]; - extraBuildInputs = [ qtdeclarative ]; + extraBuildInputs = [ + qtdeclarative + qtlocation + ]; } diff --git a/pkgs/kde/gear/lokalize/default.nix b/pkgs/kde/gear/lokalize/default.nix index 28fd32734933..a60773656050 100644 --- a/pkgs/kde/gear/lokalize/default.nix +++ b/pkgs/kde/gear/lokalize/default.nix @@ -1,11 +1,16 @@ { mkKdeDerivation, pkg-config, + kddockwidgets, hunspell, }: mkKdeDerivation { pname = "lokalize"; extraNativeBuildInputs = [ pkg-config ]; - extraBuildInputs = [ hunspell ]; + extraBuildInputs = [ + kddockwidgets + + hunspell + ]; } diff --git a/pkgs/kde/gear/qrca/default.nix b/pkgs/kde/gear/qrca/default.nix index 4cf0386c553e..0c3dcd1b2c39 100644 --- a/pkgs/kde/gear/qrca/default.nix +++ b/pkgs/kde/gear/qrca/default.nix @@ -2,10 +2,14 @@ mkKdeDerivation, pkg-config, qtmultimedia, + kirigami-addons, }: mkKdeDerivation { pname = "qrca"; extraNativeBuildInputs = [ pkg-config ]; - extraBuildInputs = [ qtmultimedia ]; + extraBuildInputs = [ + qtmultimedia + kirigami-addons + ]; } diff --git a/pkgs/kde/gear/rocs/default.nix b/pkgs/kde/gear/rocs/default.nix index 0e368461a770..7b0e805ff812 100644 --- a/pkgs/kde/gear/rocs/default.nix +++ b/pkgs/kde/gear/rocs/default.nix @@ -6,6 +6,4 @@ mkKdeDerivation { pname = "rocs"; extraBuildInputs = [ boost ]; - # FIXME(qt5) - meta.broken = true; } diff --git a/pkgs/kde/gear/umbrello/default.nix b/pkgs/kde/gear/umbrello/default.nix index 836ae577c7f4..8a8ea205797b 100644 --- a/pkgs/kde/gear/umbrello/default.nix +++ b/pkgs/kde/gear/umbrello/default.nix @@ -1,6 +1,4 @@ { mkKdeDerivation }: mkKdeDerivation { pname = "umbrello"; - # FIXME(qt5) - meta.broken = true; } diff --git a/pkgs/kde/generated/sources/gear.json b/pkgs/kde/generated/sources/gear.json index 98fd3024c74e..d89f3e1af8ac 100644 --- a/pkgs/kde/generated/sources/gear.json +++ b/pkgs/kde/generated/sources/gear.json @@ -1,1247 +1,1247 @@ { "accessibility-inspector": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/accessibility-inspector-25.08.3.tar.xz", - "hash": "sha256-qu5u3kDAOYIAffLouVLn/mxTFOFBhFCU4ox1U3NEeQA=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/accessibility-inspector-25.12.0.tar.xz", + "hash": "sha256-bFlWQfUKjbYUmStf1uWrCmScIm/cabHdmQkNr2Yk/Kc=" }, "akonadi": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/akonadi-25.08.3.tar.xz", - "hash": "sha256-+Gf9HhbZ1jepLaszTcQXDyD1i+EzZzkglOxTnj7uAXo=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/akonadi-25.12.0.tar.xz", + "hash": "sha256-idD/yebwZYV+XW/7CF81LJmK4vMcnd+BL1aW09FmYNw=" }, "akonadi-calendar": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/akonadi-calendar-25.08.3.tar.xz", - "hash": "sha256-vuMRKJCiHyq2AFholD0lbHnFGPwbWyR/AUy4vazdQMI=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/akonadi-calendar-25.12.0.tar.xz", + "hash": "sha256-uPmLZTFUQuO4Zt2gLs19itxYxJdBPMh/GFzPOCqw6RI=" }, "akonadi-calendar-tools": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/akonadi-calendar-tools-25.08.3.tar.xz", - "hash": "sha256-jHkM7gF8fMMx97aQqCe9MsW0kmB5Z47CS7gA0mxPHqY=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/akonadi-calendar-tools-25.12.0.tar.xz", + "hash": "sha256-rHvUxuHSyBfPE+VpXyL6eCjRosK3wULe131WO2Nqh3o=" }, "akonadi-contacts": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/akonadi-contacts-25.08.3.tar.xz", - "hash": "sha256-OEAOvm4cudm/U2vNwym9ZI0r2HviMn0EtJNhxmzz0k0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/akonadi-contacts-25.12.0.tar.xz", + "hash": "sha256-X1KBhu7Dim+drR2cNn9ZQbnMve531hKfHG5dbxNSVHU=" }, "akonadi-import-wizard": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/akonadi-import-wizard-25.08.3.tar.xz", - "hash": "sha256-X9O1offbeIUoyXR/70tz8KjKfHvCzw41uC3ODK/tE5k=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/akonadi-import-wizard-25.12.0.tar.xz", + "hash": "sha256-7lNnh/jKT4KZvnKZC5TPJLYWNOTIMY489bahKtUTYos=" }, "akonadi-mime": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/akonadi-mime-25.08.3.tar.xz", - "hash": "sha256-ciKSy8ewUeaLC3wFo3H6VarzHqi8Z/LdHOcz4O2xImY=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/akonadi-mime-25.12.0.tar.xz", + "hash": "sha256-jd3yQCVfSzLkaX5dqgS8LxTbeJAbUiThvimTWrME9fg=" }, "akonadi-search": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/akonadi-search-25.08.3.tar.xz", - "hash": "sha256-PI19LYADtJYBgxaA/BG6kNp5xRaYbMJscWALud5531E=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/akonadi-search-25.12.0.tar.xz", + "hash": "sha256-jcSc9/NAiObeuxOHMU0DO7fc3k2vrXwRe3039KVMuPY=" }, "akonadiconsole": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/akonadiconsole-25.08.3.tar.xz", - "hash": "sha256-CJAdImBZ5k6kcUXw/g6XEEqf7no9SbHWnOeVxGnvRNo=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/akonadiconsole-25.12.0.tar.xz", + "hash": "sha256-GINFkQ9xjxDJ3BG9i3RcGPCr8+Yr40x5eqXugeYehVU=" }, "akregator": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/akregator-25.08.3.tar.xz", - "hash": "sha256-HGe7qUnvN2xwfUOV5qo3mNFy67cwOuNHIt/m1cCbD4M=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/akregator-25.12.0.tar.xz", + "hash": "sha256-d1LeUp3D0FL0E4nSxup2jHEKztmnaKiKlatQJy3UUZ0=" }, "alligator": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/alligator-25.08.3.tar.xz", - "hash": "sha256-OAbXqoE/jrw061PPelDgaXObSbaR1Yt8kGOAXDTcuPo=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/alligator-25.12.0.tar.xz", + "hash": "sha256-5eTAFkch+ywWMYUTiWyrea/OZshSIxRYObTszMDqnRQ=" }, "analitza": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/analitza-25.08.3.tar.xz", - "hash": "sha256-Gr50HD8Ymz2MuM80tRaJD9ZM8hunXQ9VizcRlWuD5NE=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/analitza-25.12.0.tar.xz", + "hash": "sha256-7XXsx+hn2A+2wjtAtXzXlL47ebF9OnvdCBqGioqgHr0=" }, "angelfish": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/angelfish-25.08.3.tar.xz", - "hash": "sha256-ccSns9ZlDrW9mn0ILOA++s4LtegG2POZ561nW7BkN2w=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/angelfish-25.12.0.tar.xz", + "hash": "sha256-XIBKUQMtpgM3bh/wcQ+t+A1a7oFxUoeLdatRMYtSJcs=" }, "arianna": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/arianna-25.08.3.tar.xz", - "hash": "sha256-Ou6H67yjIW6oZ2A2JmMSpeekrzQGwg3soS76n4tb2rQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/arianna-25.12.0.tar.xz", + "hash": "sha256-A0Mot3MJ+lz85SVLkJs67jaHDlw3KWuQK0pfSH2+Hkg=" }, "ark": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ark-25.08.3.tar.xz", - "hash": "sha256-yk+3KV8JAoDfAtJLZPET4QxvYYE4s4e8H9eixWHeVU8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ark-25.12.0.tar.xz", + "hash": "sha256-oRB+AQSfNFeCwgsquuMXHstuljuwL/u4FOA1ewJLtcA=" }, "artikulate": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/artikulate-25.08.3.tar.xz", - "hash": "sha256-B8BF81lWTN5ri6U4xtDCq72pKDQekypFy0CBxMFdqOU=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/artikulate-25.12.0.tar.xz", + "hash": "sha256-wAslVXw1WVp1rrQe6WmlUCKe/UXu3T2rceYPM3asYaY=" }, "audex": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/audex-25.08.3.tar.xz", - "hash": "sha256-eaECo9FOa12Sa+DQpmNF/VtYHDwCHlqbZSCBfugT7I4=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/audex-25.12.0.tar.xz", + "hash": "sha256-imIVuFoxXh1eSOfYetYapZadbCtUOokUJt5TSVm6fLg=" }, "audiocd-kio": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/audiocd-kio-25.08.3.tar.xz", - "hash": "sha256-buOBRu17YVBH2wPhQgXqkiEknm64RyS9ZgmvmC9X7qw=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/audiocd-kio-25.12.0.tar.xz", + "hash": "sha256-6QrXfkbPXKkfkcnq6k8hQghU0Sv5LpHxBAW0ogSVVoo=" }, "audiotube": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/audiotube-25.08.3.tar.xz", - "hash": "sha256-7g7PpDufa5qrtYPe4OIB8paScfp3ua28HauzSsFJte4=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/audiotube-25.12.0.tar.xz", + "hash": "sha256-LYfq20L+RS0BcSBs46HmACZ64VLHWrWH1L9glPS/G3M=" }, "baloo-widgets": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/baloo-widgets-25.08.3.tar.xz", - "hash": "sha256-/AqOxTIbP0uw4fFlzY51dwGbkNV1UXCAJjSmjfw858s=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/baloo-widgets-25.12.0.tar.xz", + "hash": "sha256-jt+FX7k0e+00jIviuvwB0YOAp4h6Javi5xbAoR2ab4M=" }, "blinken": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/blinken-25.08.3.tar.xz", - "hash": "sha256-dwWY8ifoy7abSw3eTjum3qEHTj4Kin8H5CQ6GL+HbW0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/blinken-25.12.0.tar.xz", + "hash": "sha256-qIeNVt18MbXV1T6A4juQEAqZkVLjh9CNqtoFh7LDVts=" }, "bomber": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/bomber-25.08.3.tar.xz", - "hash": "sha256-eMHM10FRXCpUIJATB7hz/FLIb0xaHlGHBHIhX4zpzJs=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/bomber-25.12.0.tar.xz", + "hash": "sha256-OEz4Ai0LVBvuCFETWXdBfFogW6Knhp+YZvwFTCFNHh0=" }, "bovo": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/bovo-25.08.3.tar.xz", - "hash": "sha256-3+YkhXzh3seAlgygDr7mFe5rULouf6DBSF7NGFVxzeY=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/bovo-25.12.0.tar.xz", + "hash": "sha256-dtvYXrqSYpUJWVBEfSt5Ya+INfE6DDb5d8nDeOECJ5s=" }, "calendarsupport": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/calendarsupport-25.08.3.tar.xz", - "hash": "sha256-g0NzWYHoxBRm1w06SOcOHOIyipKO3QvtLa6QOaPPna0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/calendarsupport-25.12.0.tar.xz", + "hash": "sha256-G2+fEWsXZ0dXYgDk5xwnlD18LlbtjT1QdF3epOBmtnE=" }, "calindori": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/calindori-25.08.3.tar.xz", - "hash": "sha256-t7ylpu88XTa6qK6cVg+/V9mlPmkl1qJIYa7MKn3mzLw=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/calindori-25.12.0.tar.xz", + "hash": "sha256-hgcVWX0hGhDMG+4tyjVOLm/F0jWwg3cfVX6JxFc/m7U=" }, "calligra": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/calligra-25.08.3.tar.xz", - "hash": "sha256-dPrHglPEKYU+mfrgC88rhDMtvDqPU4zPcGdCWSZrklE=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/calligra-25.12.0.tar.xz", + "hash": "sha256-DhWQlhExxcp2kPbWkRMSObaFQD0U80bAE428fi+Kafs=" }, "cantor": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/cantor-25.08.3.tar.xz", - "hash": "sha256-VjUAf7nFDYLojez5Jk/0D7n07mWydHTFkwsbUZ6yS3I=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/cantor-25.12.0.tar.xz", + "hash": "sha256-Byo7viOGVEBPF/71HE4KrbG3hi7tjrj5/tfUJiiALYk=" }, "colord-kde": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/colord-kde-25.08.3.tar.xz", - "hash": "sha256-KaawondaAKO9WxsTjHc3LlOviARYDB5BK4edSOXQrt8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/colord-kde-25.12.0.tar.xz", + "hash": "sha256-c8FCQeseaI9KIxOJtywmZHqfOngfpI34wZy5Cs6izIM=" }, "dolphin": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/dolphin-25.08.3.tar.xz", - "hash": "sha256-Gr1jLr44N99WFiFvacPKn2JAFl+fhFAkIiAydeqo7gk=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/dolphin-25.12.0.tar.xz", + "hash": "sha256-AtZwWcE8Wkz3SEfw8cDPmm3kc0XKgPLjuluo9AhIG/8=" }, "dolphin-plugins": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/dolphin-plugins-25.08.3.tar.xz", - "hash": "sha256-KESdFeCqzndWPztvE/R7oGhUFgoHXfQjh/wD9nCousU=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/dolphin-plugins-25.12.0.tar.xz", + "hash": "sha256-9u42YKdGvT0JPECs0QKy4e6kUWHNBh1upNwYc8sqnGw=" }, "dragon": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/dragon-25.08.3.tar.xz", - "hash": "sha256-nh0v6TAYFmQYy/yC/C+ThNHFyZvBtQDGkHLI/iz50Dg=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/dragon-25.12.0.tar.xz", + "hash": "sha256-zvMmhMwZfwxWGysY3fU7s6ms8KjJziKY3IhJMe9G7pk=" }, "elisa": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/elisa-25.08.3.tar.xz", - "hash": "sha256-Y2dLvQWKUY10C9mIDWWpr2qBb8M/uQTMHwwMJIRH3RM=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/elisa-25.12.0.tar.xz", + "hash": "sha256-3EcGcueQztHkyqzub7QWVVUmgvNLGj6iq/4ACd0yogs=" }, "eventviews": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/eventviews-25.08.3.tar.xz", - "hash": "sha256-6hbNGZOcfU9bna+575N2PosvJsLfIsZw9qV4LdEOOD4=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/eventviews-25.12.0.tar.xz", + "hash": "sha256-OZlITWv03dYRnbYHrLXdfYHG3qt/j1G6nRz5Ao8Yh0A=" }, "falkon": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/falkon-25.08.3.tar.xz", - "hash": "sha256-FiUtikICi/VLiOHkpa+5WHUwneRPIDFWyZxKZDcg4Sk=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/falkon-25.12.0.tar.xz", + "hash": "sha256-bZtNuhveDQRXBzbte7m8EojNf7lLT/6TSpkJErm3qVk=" }, "ffmpegthumbs": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ffmpegthumbs-25.08.3.tar.xz", - "hash": "sha256-hOzRMaUHmYFfQUUi/BJwxW4O5Fu/r5b54dLJJ43ISWI=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ffmpegthumbs-25.12.0.tar.xz", + "hash": "sha256-5HhO79GvV+0GYJLOWRvOhRXP/aXZlmjX5xka8FzMa88=" }, "filelight": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/filelight-25.08.3.tar.xz", - "hash": "sha256-ijqCXFocTzZi17eG91v4+u9qyfZyPI6M0p5s8VvagIA=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/filelight-25.12.0.tar.xz", + "hash": "sha256-NVOGzBDoiAjuv3b7yECUvCS5DXav4oqb2kG2tJOBpas=" }, "francis": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/francis-25.08.3.tar.xz", - "hash": "sha256-o71EolKHj7XhRRZYBqG6pxt+QL6T7ZTVvYd3GHWV/jE=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/francis-25.12.0.tar.xz", + "hash": "sha256-jgLEvfXEoubuxM8j0gAw+a1Nrgz96frVOlInrDdu+Os=" }, "ghostwriter": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ghostwriter-25.08.3.tar.xz", - "hash": "sha256-OZlp7wcHz0iD/OFy1qIt+vKSlKmw+tLnFq1oBFICsAY=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ghostwriter-25.12.0.tar.xz", + "hash": "sha256-1enTy230FTxkM7dnLQEYpinbbL2skv4V+18j6CTBGhI=" }, "granatier": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/granatier-25.08.3.tar.xz", - "hash": "sha256-9JMa+NH6DVZaEsPsiANiSih1cWxalCsWzIgZOuEBYm8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/granatier-25.12.0.tar.xz", + "hash": "sha256-p0ns1FsrV3e7F/ZxhVcsTfengwu74JJi8kzdF7Y4DkY=" }, "grantlee-editor": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/grantlee-editor-25.08.3.tar.xz", - "hash": "sha256-atnws3Sd5VfsR8SdqRR1Q5JIWmZGHA1o9R/XcYhaVbU=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/grantlee-editor-25.12.0.tar.xz", + "hash": "sha256-R9LNJq93FlS0gjXA45kvlugtV1mgYNRw/LyCKOeKuzw=" }, "grantleetheme": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/grantleetheme-25.08.3.tar.xz", - "hash": "sha256-ZJ3pmbthKI/JtK7T6+Ix5FIBzWz9TyR2Nqf9Jw74euA=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/grantleetheme-25.12.0.tar.xz", + "hash": "sha256-H+Se8Ebf93LjcARfOccLyYcxDoY/nSDZRs03y7OLXEc=" }, "gwenview": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/gwenview-25.08.3.tar.xz", - "hash": "sha256-IADELUDuPpLONV+C0v3dB9J/YT9xzy5laZz+eUp27KE=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/gwenview-25.12.0.tar.xz", + "hash": "sha256-zzKKVoxe84XIrQUAuIXRMEndWZSS0kefXYMeI0EL94w=" }, "incidenceeditor": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/incidenceeditor-25.08.3.tar.xz", - "hash": "sha256-0MFcN1FyOrzxAaI6axYtMp4IkknpS9/UKD1o3s8hGpg=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/incidenceeditor-25.12.0.tar.xz", + "hash": "sha256-baIc5GY64RuvAGh9QiXGXMqBzq6cpDaqz7aE5xca588=" }, "isoimagewriter": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/isoimagewriter-25.08.3.tar.xz", - "hash": "sha256-hhC0t4mo11DG9PKOHStfmE7/1+uCKDJeZzrU9CJRLi4=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/isoimagewriter-25.12.0.tar.xz", + "hash": "sha256-uqqMYZdHy/emW26D6kUJIaE3/j43QomoC3zJ2o5187k=" }, "itinerary": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/itinerary-25.08.3.tar.xz", - "hash": "sha256-KPjO9H+UnOSDJvbSiC1YwceXpuMkxR9dNRDn2yIWH4c=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/itinerary-25.12.0.tar.xz", + "hash": "sha256-9kxjS7UhpGBKTrKNoqmkmJqe/byBsKOdepwjiQXioLw=" }, "juk": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/juk-25.08.3.tar.xz", - "hash": "sha256-uVwfu1rgZ0U7KrUrnA6MCNW7V+4+Xtyx0fsMcC+P/ok=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/juk-25.12.0.tar.xz", + "hash": "sha256-qy1yAc1LD2TOjeXOXrOBrnwyOtiGckh0alPGwbteS9o=" }, "k3b": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/k3b-25.08.3.tar.xz", - "hash": "sha256-Vx4fWYGeYwv/2pbJbGMm1fEoqkVW4oK+UZ9MhAkQXSU=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/k3b-25.12.0.tar.xz", + "hash": "sha256-XS3LLHBysYLqAlbzuE/3gIexorBpm9+1c3ChaX7z9YM=" }, "kaccounts-integration": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kaccounts-integration-25.08.3.tar.xz", - "hash": "sha256-f6A0Pww/WTdcSBfL0psP7X5Fy7MfSVbm0/YsCr4qHIs=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kaccounts-integration-25.12.0.tar.xz", + "hash": "sha256-1sY+V3duOFG1WabmS/DeRl0sx1HvoH0SsMKpBB6/RxE=" }, "kaccounts-providers": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kaccounts-providers-25.08.3.tar.xz", - "hash": "sha256-EipO8htZau91+iu0HM2XxzMt/NYjSiYCrubBPFhFEG8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kaccounts-providers-25.12.0.tar.xz", + "hash": "sha256-qR+2aQR8ZFYR0St3El1gvGsT9lBDvUN7vmi5A1f9sow=" }, "kaddressbook": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kaddressbook-25.08.3.tar.xz", - "hash": "sha256-hTXzTM0UKGKQcq/V4uc5xZ4p5KDGfkRPCZF8pDAXqlc=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kaddressbook-25.12.0.tar.xz", + "hash": "sha256-j8lxInwa4dBZrfjk0hfy0/rKymn91Jea9z8Je5QX2V4=" }, "kajongg": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kajongg-25.08.3.tar.xz", - "hash": "sha256-R9WGyP0U6ZG/snih9ahTOH681PEhgdLVyc3rQ9+udXg=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kajongg-25.12.0.tar.xz", + "hash": "sha256-slektzNijcAte+/NzkqXpTljpnQPO3ERuZBYC+S2mBs=" }, "kalarm": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kalarm-25.08.3.tar.xz", - "hash": "sha256-NHufVkcecLTDNe6WvHan1cFIut/RRgzQDoi9s/9sZ1k=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kalarm-25.12.0.tar.xz", + "hash": "sha256-gL2cxV/KkWU8F1fx9ReyeyPQxeKHlvhMg9OWEofh8d4=" }, "kalgebra": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kalgebra-25.08.3.tar.xz", - "hash": "sha256-PcUwwsjUpIuhwtcRfS3hxH4GVCVfo8jUX2xtqs+bHUE=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kalgebra-25.12.0.tar.xz", + "hash": "sha256-+1eV2e/gPe2Pi2sZ12cwIEkThB3ICfBvpFP2mudDfNU=" }, "kalk": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kalk-25.08.3.tar.xz", - "hash": "sha256-8hip+c2oPhJECwgyxb7V18VNgLM1vHeFpjT4eSm53NA=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kalk-25.12.0.tar.xz", + "hash": "sha256-bwNpkZYUatnk568gyOxBAKCQu+HOsWWEuW1P2WqjKc0=" }, "kalm": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kalm-25.08.3.tar.xz", - "hash": "sha256-z9QK5UcuKGaN295py/dxCV6eKP/oDPMHxDl1MiSnT2k=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kalm-25.12.0.tar.xz", + "hash": "sha256-2PUuRVtrhDkZK5SSNkE7jmH23pTZ1KHl33vFwfl0Y2M=" }, "kalzium": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kalzium-25.08.3.tar.xz", - "hash": "sha256-NubE9G4aXaqs4U67Wx9trDQprV3z1PwfCt6uw+KOQgs=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kalzium-25.12.0.tar.xz", + "hash": "sha256-n/U6WOZVpnQFZhhSK3oqRPpUt+H3L5G00gEEwo/oKws=" }, "kamera": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kamera-25.08.3.tar.xz", - "hash": "sha256-Tca4sPtHkoi2V3tEbEVDF14hM2THkb1lC2HsevhV7RI=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kamera-25.12.0.tar.xz", + "hash": "sha256-CyQC61dh+cbTNQOYoLepdhURw9+eqcUS8SA8aA/YIrY=" }, "kamoso": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kamoso-25.08.3.tar.xz", - "hash": "sha256-QhlpQxS3w15yyFAI++GFmuKLuAIHsdI/tHf5v8LzGLc=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kamoso-25.12.0.tar.xz", + "hash": "sha256-641Zoq7kP1mKNv+2uyc+zNAWflBR9m1wEa90yNcN5q8=" }, "kanagram": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kanagram-25.08.3.tar.xz", - "hash": "sha256-wVoqCywIzvdFUiDu3fzDCV027qFNaE/F+5/y8dCly7w=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kanagram-25.12.0.tar.xz", + "hash": "sha256-cXXBoQlyOXqCr7D+lW9X2WMlFX+b/VxXQ3mVxUs/udI=" }, "kapman": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kapman-25.08.3.tar.xz", - "hash": "sha256-m2RJ6npbJ9Ih50cU3aLyd2Rcz0MJFVJGhD6lv/9FKXM=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kapman-25.12.0.tar.xz", + "hash": "sha256-SlTWgNNDoe1H/LCYzOtQmeMLpCEbe0dLLL0Ap8XeMyY=" }, "kapptemplate": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kapptemplate-25.08.3.tar.xz", - "hash": "sha256-NQbkTNMLdIgsoQgkqsUsXOJqs5axBSqOVSQcU20MXno=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kapptemplate-25.12.0.tar.xz", + "hash": "sha256-cNaaScUz04cYDocHuHUeUPthW/tgUjHhk+miPZ68u34=" }, "kasts": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kasts-25.08.3.tar.xz", - "hash": "sha256-zMyOMsnPIG8t/J2zYZaGQ5w+BbnTUr6KyVHJnJrYYnM=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kasts-25.12.0.tar.xz", + "hash": "sha256-z/JTdCKpdSnlWjwrn1fjPgrmdXSWWD+xK0UCZklpUoI=" }, "kate": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kate-25.08.3.tar.xz", - "hash": "sha256-yS64tbgcm13JG1xG0gtPOuC3gREUd5/Y+S8VMjP8qQs=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kate-25.12.0.tar.xz", + "hash": "sha256-6kFCxA7rOSrtUzVIVaAOPIFsRX3+JVtAfF0wyGk3f1Y=" }, "katomic": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/katomic-25.08.3.tar.xz", - "hash": "sha256-kCG+G+/Nog0lOCy1xiDNZsu/DqOqYhsKrkCpBVOrQsw=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/katomic-25.12.0.tar.xz", + "hash": "sha256-M/oDzHmfc4HQ4CgXnEUVlPIi6fqkjaaWBgaD7Py8fBE=" }, "kbackup": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kbackup-25.08.3.tar.xz", - "hash": "sha256-/4keGs/pu0IApPaBZUAlWbsAzs2HkTQc1NQClpVf/CQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kbackup-25.12.0.tar.xz", + "hash": "sha256-kWYcBkqXv///TxnbHU2k6geTxoTRrJEyHFgdMAoxTNA=" }, "kblackbox": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kblackbox-25.08.3.tar.xz", - "hash": "sha256-7wCVZaokDWZI4FF7vp7Sh7wfWkpEBdbyHT7t4+2/oV8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kblackbox-25.12.0.tar.xz", + "hash": "sha256-y6V3DhsCuQtPMiYjwA54lQwfzPFq+YyOC123QxZnggI=" }, "kblocks": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kblocks-25.08.3.tar.xz", - "hash": "sha256-CRr+lf/Wh/tIU1d1X3QbRKQYCZOhZpUvtbopUO7OBK0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kblocks-25.12.0.tar.xz", + "hash": "sha256-nU9498kODpAz4jADTlJ9ZLu2rnBVL/QmrUByeJkeUFg=" }, "kbounce": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kbounce-25.08.3.tar.xz", - "hash": "sha256-8UGeSUSGMiO1ontayzIo61giS26vTwyUFkwEYaw9kBo=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kbounce-25.12.0.tar.xz", + "hash": "sha256-xWFE0Cu55SSwz7JkpQ4CNvHMJkARgcSyfywzxSDImKg=" }, "kbreakout": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kbreakout-25.08.3.tar.xz", - "hash": "sha256-BYvwHpN/rc0ykS6ARVh1ZulPfAXQrXE/TmXW01GwT0A=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kbreakout-25.12.0.tar.xz", + "hash": "sha256-9VDPh1Dn+BjmtbYMBOFAJO12CorOcPe5zku4XT1cbR4=" }, "kbruch": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kbruch-25.08.3.tar.xz", - "hash": "sha256-j9VTZXEbvtWe285Mg5fqPoMWyASGYnyiky095Eg7s1w=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kbruch-25.12.0.tar.xz", + "hash": "sha256-A0q3SYD57FiX65bbT20+SlPD1N53NglCYzDyxmcENr4=" }, "kcachegrind": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kcachegrind-25.08.3.tar.xz", - "hash": "sha256-rsg436gGtDjRmPW7ZqKpkl7NuG0J2obFk6ITAgUrC74=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kcachegrind-25.12.0.tar.xz", + "hash": "sha256-dmlv3t0K3WJpEZG8xR7eOc1C7jGhck3kPziky7W9/Ag=" }, "kcalc": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kcalc-25.08.3.tar.xz", - "hash": "sha256-DoQslASW5H9avR7GCB9cbPKIvh3XPttQcdhPBOyhg4o=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kcalc-25.12.0.tar.xz", + "hash": "sha256-QxgTaPYwMFAyFyK2NEihFUgH00AT35l+DorIsdBdPww=" }, "kcalutils": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kcalutils-25.08.3.tar.xz", - "hash": "sha256-zqA3tnpRC6TjwJE6kLor/3JAcLKSUSSN8jr1+wuxii0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kcalutils-25.12.0.tar.xz", + "hash": "sha256-QwSBNOBV/6PnV/3jTr0b7eyN/28mjnPscMjO/7lDPMA=" }, "kcharselect": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kcharselect-25.08.3.tar.xz", - "hash": "sha256-r+4jbl4Dda7gOO1CkqOhiPpRJR2Sq46HLNn+cTzeOuM=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kcharselect-25.12.0.tar.xz", + "hash": "sha256-yudTTHgwmYtUheV+wrMxwSsN9gIhNRbAu422guNP+NM=" }, "kclock": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kclock-25.08.3.tar.xz", - "hash": "sha256-2Kz8qjb/jdQk3oKuFja63Zqi9QpsTj41eI7VzDliduI=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kclock-25.12.0.tar.xz", + "hash": "sha256-iUekqVEOLZ+uSSOMwmfAFcwbHJHgLNBy8C2n8CBSryM=" }, "kcolorchooser": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kcolorchooser-25.08.3.tar.xz", - "hash": "sha256-as7OA7OASmEIItBY+7vNq+w/4a2mqL/+1tNpUmkwvmc=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kcolorchooser-25.12.0.tar.xz", + "hash": "sha256-+emXHtoXXLQG5sCSqlS3Tgi7hPC2PJya+uoRAf83Z/Y=" }, "kcron": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kcron-25.08.3.tar.xz", - "hash": "sha256-UqVAID6bKN6+UkBefDEpzia1OvHdwXFlt7UlVcx1e2c=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kcron-25.12.0.tar.xz", + "hash": "sha256-7y1o2rqiNGGKpn5pB3+ZOmySAXsdR0/DPFXgMAaHGIA=" }, "kde-dev-scripts": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kde-dev-scripts-25.08.3.tar.xz", - "hash": "sha256-8J52s97VzHa5nCa8sCdVONWQJn8IySG1JAwISjy75H0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kde-dev-scripts-25.12.0.tar.xz", + "hash": "sha256-cds7BjeemO+nZWHwjFzYyngKXWRGXkbVUIopny92BJw=" }, "kde-dev-utils": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kde-dev-utils-25.08.3.tar.xz", - "hash": "sha256-6BlfM4lgpNXvJHxmDkYrntQFPGB40jrtN8AptiWBKkM=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kde-dev-utils-25.12.0.tar.xz", + "hash": "sha256-oORc3CBpsRGJWiuPnV+yr9Q2zDi0lrw7ow0umk3vQAw=" }, "kde-inotify-survey": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kde-inotify-survey-25.08.3.tar.xz", - "hash": "sha256-s5wSm5a4CQT0p7X4KOzZiJHDK2G5SW6NYxBYnakeuVs=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kde-inotify-survey-25.12.0.tar.xz", + "hash": "sha256-zyTNVgmvuy88cKDBAbxBoeUKrt5LFUT5GGEZ7l1+Ua4=" }, "kdebugsettings": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdebugsettings-25.08.3.tar.xz", - "hash": "sha256-dpkOq4FsRfEWyCMdsz8Wr5VezHM8TrfIn+g5d/MpPaA=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdebugsettings-25.12.0.tar.xz", + "hash": "sha256-0ZfGsVJJNRGyMlQ9OujHTs43tb2zjdbXyjiaJwnQyck=" }, "kdeconnect-kde": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdeconnect-kde-25.08.3.tar.xz", - "hash": "sha256-bkHx8i6F9ecKkt1so+aWg2SJbeN6/l2ut82lmfA+Xis=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdeconnect-kde-25.12.0.tar.xz", + "hash": "sha256-D/8k03HM/vyFjX1uAThcTVfcQL9G1nAqNNG/ZyfMcqg=" }, "kdeedu-data": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdeedu-data-25.08.3.tar.xz", - "hash": "sha256-cfhXK1fQ7bBzQp4vOUFFkRwINosgyqNoXPZMrbxvoqo=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdeedu-data-25.12.0.tar.xz", + "hash": "sha256-FAjaXTEzFFs7AiwTQ0diCYUBHKCBXZn2yAWx/CRIrh4=" }, "kdegraphics-mobipocket": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdegraphics-mobipocket-25.08.3.tar.xz", - "hash": "sha256-pPj/FjInDBFpUJVzJmGZXZY5+DM8jWNzBlTXh9zDtVQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdegraphics-mobipocket-25.12.0.tar.xz", + "hash": "sha256-9RX2Qn4lP4xYuaj+ZP5uplqsnngOSxm14M4pnzKScA0=" }, "kdegraphics-thumbnailers": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdegraphics-thumbnailers-25.08.3.tar.xz", - "hash": "sha256-FfwrsleMfFhGNTPr1tjU6j7D2er0fgT3TpMiwTXJfoQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdegraphics-thumbnailers-25.12.0.tar.xz", + "hash": "sha256-Hn7mYg2e8Cq87tW66xJ1YK9T/n6zeMoWkrEv2knN2rU=" }, "kdenetwork-filesharing": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdenetwork-filesharing-25.08.3.tar.xz", - "hash": "sha256-0s71ZEOEO4KlwhDsWm5MKh7RoqhtUX5Xc4VZU7qWpI8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdenetwork-filesharing-25.12.0.tar.xz", + "hash": "sha256-GvHw8VddWUc6paLKg2r83xcMHCLhXCmMXt0Ap9H9TLA=" }, "kdenlive": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdenlive-25.08.3.tar.xz", - "hash": "sha256-gbpOkRFH1dvTO89GSy8K6fV7iCTb/H+rIfPBG7ZDN4M=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdenlive-25.12.0.tar.xz", + "hash": "sha256-yv7p2Owp6Z9QdyDyjWC/wJY6hzP2eg/9amhCc7gkLKU=" }, "kdepim-addons": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdepim-addons-25.08.3.tar.xz", - "hash": "sha256-uqhcF0fJ54ly0aVNe7ezAN2/VAc0UsM4g1a8V21HnNc=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdepim-addons-25.12.0.tar.xz", + "hash": "sha256-vWdpqeyLlOLLsMsIm1EIyOkH9eL3HIx/Oq9zsQJvD8c=" }, "kdepim-runtime": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdepim-runtime-25.08.3.tar.xz", - "hash": "sha256-mLes8HJxZY09kWmlEWdlE74GWbc/XLH7RjCutU+mX4U=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdepim-runtime-25.12.0.tar.xz", + "hash": "sha256-F1noziYQWXrkR8baZPAreTsKdwK6u0Enoe1xap4OQUg=" }, "kdesdk-kio": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdesdk-kio-25.08.3.tar.xz", - "hash": "sha256-QKNbsC0nMV0BKbgYHnpvy47k9MDMa4T4GMEPo/i31nE=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdesdk-kio-25.12.0.tar.xz", + "hash": "sha256-OtvMhClEPMmcCjagsQjfC1uFI7b48eahK3Rw9LPCUfU=" }, "kdesdk-thumbnailers": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdesdk-thumbnailers-25.08.3.tar.xz", - "hash": "sha256-QWKweV1VrfvJ98G6jpZaYYqleygFiPQ9CkrbRc4I6HQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdesdk-thumbnailers-25.12.0.tar.xz", + "hash": "sha256-f01Ck+PmfN0D0ZcchfSPTCp4jCmV3g9ewf+76iS9ct0=" }, "kdev-php": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdev-php-25.08.3.tar.xz", - "hash": "sha256-9S7yko0u+dyyHzGtKNuc5DCcatT0+8ap0J6gc3KG1MY=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdev-php-25.12.0.tar.xz", + "hash": "sha256-f76Pa2gUY29mQPKzFDaaIlUeNP9ab7fSZuFOIPKCO80=" }, "kdev-python": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdev-python-25.08.3.tar.xz", - "hash": "sha256-VroTp+FyGuF6AVE4ZJ7270lw6Z1/9HMi8pamnxc0+z4=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdev-python-25.12.0.tar.xz", + "hash": "sha256-+zezaFVkgzZGbs3JSLNx6w2r4wsS4xMTfKL2nbYCuR0=" }, "kdevelop": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdevelop-25.08.3.tar.xz", - "hash": "sha256-TSuSzzepozJN2RNwdcX1UgR72IpnNCCqFIT83nm6zpI=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdevelop-25.12.0.tar.xz", + "hash": "sha256-7/91i9WGr12CMp0vNAq/5kZnPYn8b1dwg4rqSfc/P18=" }, "kdf": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdf-25.08.3.tar.xz", - "hash": "sha256-fldlaE/uQm/eytp6lJoXF/maikdnsv1mnJoDZrFF+mU=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdf-25.12.0.tar.xz", + "hash": "sha256-RfipRdjlkcqSry6iGioCz3kymmuBHvZ5y5X8Af+gk9Q=" }, "kdialog": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdialog-25.08.3.tar.xz", - "hash": "sha256-0sn8M+y0ii0TVkO4PnALkhLR6A/WUZccA1v68yjfurQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdialog-25.12.0.tar.xz", + "hash": "sha256-7wZLPnuoPhrBhhR7QwxELEchOAHm9mwNPjYXRooAdKE=" }, "kdiamond": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kdiamond-25.08.3.tar.xz", - "hash": "sha256-6iRNvZWgW+NJLqNH2wOFeAAuYCRa4EsJBt4MErgrN1U=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kdiamond-25.12.0.tar.xz", + "hash": "sha256-ar+Ypho/oI926Z/LsUn1++m5ZQZplDA3oPW7HCJRGes=" }, "keditbookmarks": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/keditbookmarks-25.08.3.tar.xz", - "hash": "sha256-T1ehKu1z/OzDBZoGRZMdG4NrRCZxlClHY3QhMbIdOvo=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/keditbookmarks-25.12.0.tar.xz", + "hash": "sha256-674VmMxtvXinLWNWb9jksISb9LXjvLS7e4tXjxewokc=" }, "keysmith": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/keysmith-25.08.3.tar.xz", - "hash": "sha256-wYi87L4GV7fNU6bcZKLyyvveFH58m9LJC1hFr9CMFSU=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/keysmith-25.12.0.tar.xz", + "hash": "sha256-KhIlCibBGCXiSlDOsupTj4X5pRvRci5dZVTacl9tzpA=" }, "kfind": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kfind-25.08.3.tar.xz", - "hash": "sha256-dW1PmJOSCGzSEVU9WGE9X+tBMQczuOo1xQxYaTgMlRg=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kfind-25.12.0.tar.xz", + "hash": "sha256-U9B9zF8ZeRWgcDpbqok41zhhlh2cWaM7yyGdulF26n4=" }, "kfourinline": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kfourinline-25.08.3.tar.xz", - "hash": "sha256-xVivDA8SiiV0wTNwsLIiWJ4tTKV4pUE6qDWmENyplxI=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kfourinline-25.12.0.tar.xz", + "hash": "sha256-wOaQ3mJRHkfj8jhiUgRXMo3f4XOTli6Dk8EXHAZQxaI=" }, "kgeography": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kgeography-25.08.3.tar.xz", - "hash": "sha256-jIBortFwkZanbey9t33GHyq/U5vzwrJgcCR1vy4sZ7I=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kgeography-25.12.0.tar.xz", + "hash": "sha256-jJQVRc3u2UfyI6DC/F4iLldIBVnlmG1yj+JjXAnC158=" }, "kget": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kget-25.08.3.tar.xz", - "hash": "sha256-veDkZTVSqOs5qNMiCs214QQsdv7XcbgWJ4lTPwOn440=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kget-25.12.0.tar.xz", + "hash": "sha256-vRDCZsXyK7cWt1WcG5qobNEcKF++dkitDysK6PNXmSE=" }, "kgoldrunner": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kgoldrunner-25.08.3.tar.xz", - "hash": "sha256-7l+twe+Oytb2acTGLnZ6NwrzQPDAkoL/m/V6gL+Jtcw=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kgoldrunner-25.12.0.tar.xz", + "hash": "sha256-7oIxDl5KXzR5RvTWMn0Lppy/iCjvXJJVM9ertQFoirU=" }, "kgpg": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kgpg-25.08.3.tar.xz", - "hash": "sha256-5B6fbhRohlNM2G8UnlgWyiz2bavHuCTw81AGkxhC+K8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kgpg-25.12.0.tar.xz", + "hash": "sha256-XjIuvUlXH6OBxPG5mz70Qdf/rtw1ZOOPNV/FNqSFpeA=" }, "kgraphviewer": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kgraphviewer-25.08.3.tar.xz", - "hash": "sha256-jyT6eUpePzAig6CHv2y81QqYxAI646ol4ve0lx6oZgU=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kgraphviewer-25.12.0.tar.xz", + "hash": "sha256-wmqy8cY/MO+Qm/Yt0/h4gpR+JDJWtTwB3H1BQscFOPY=" }, "khangman": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/khangman-25.08.3.tar.xz", - "hash": "sha256-tF9Vxx+l4tBbyPmM/anQduONRlwyXLQ9OZQu62dBr3I=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/khangman-25.12.0.tar.xz", + "hash": "sha256-A0G3/p4ROqMZYClDpiyiqq/9iMiASa/xCYzSJCA0Gvw=" }, "khealthcertificate": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/khealthcertificate-25.08.3.tar.xz", - "hash": "sha256-bO0XoVXevMHhn0DO4sccX0g882bUgx3rxewyI/slbdo=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/khealthcertificate-25.12.0.tar.xz", + "hash": "sha256-R8VKrGOqPVIaCCazGvzDXi/PjH9yTXWUeKLYO6zDWJA=" }, "khelpcenter": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/khelpcenter-25.08.3.tar.xz", - "hash": "sha256-T7S7Qk2u8xUxtR0fr5NZTIdvMBwP0gsIzXiFwT1Jm6A=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/khelpcenter-25.12.0.tar.xz", + "hash": "sha256-B6UXRIfHYTsVDZiw32G05lcmxJfKOBHiwFTyVJSSfag=" }, "kidentitymanagement": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kidentitymanagement-25.08.3.tar.xz", - "hash": "sha256-+7Ie/0TQAgZuOsSmkFrZFeetNVqn00+OYwcwizhP99s=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kidentitymanagement-25.12.0.tar.xz", + "hash": "sha256-eY4Fm7kiGKJ+/+RArWYWIDpD4E/lUtenuNnpnu8Gtts=" }, "kig": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kig-25.08.3.tar.xz", - "hash": "sha256-ETHgBXmdAOo0/q2zlMaPj7hrvbwBuYLNKjD3BsV1ToY=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kig-25.12.0.tar.xz", + "hash": "sha256-0KSiBtBp3ef62PHNOD5phSTqBb1QI4pnPylCdpHQqLs=" }, "kigo": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kigo-25.08.3.tar.xz", - "hash": "sha256-BTrTCeGvGk9rQVOv7D/qqUhm+x6V08ag/FLH9jV/OTs=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kigo-25.12.0.tar.xz", + "hash": "sha256-Ion2IHHyRjpuupBRyHrYskV+kxaOluAxSr7tbC6E95U=" }, "killbots": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/killbots-25.08.3.tar.xz", - "hash": "sha256-yqVxIJ52AmiLaAS3o44ET9IkVhaOYdwXWFqBFWSqOqs=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/killbots-25.12.0.tar.xz", + "hash": "sha256-aHFbEtKMOWA8VNpyBIl6GcAvg7+HP1Ek+GZFHl4cLog=" }, "kimagemapeditor": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kimagemapeditor-25.08.3.tar.xz", - "hash": "sha256-tmqzf7iiIBTjkxCY9fRU/TDJHHcr94sV1Hqm0BlMVpI=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kimagemapeditor-25.12.0.tar.xz", + "hash": "sha256-4beaQRRyrHtXwHI9hqHbvCuoV0An9cFXpcgjFQ/f+dM=" }, "kimap": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kimap-25.08.3.tar.xz", - "hash": "sha256-1rgwfLK4gzqN9IW4d4PVgVGiiQW3tueQgnxSQzSJqz0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kimap-25.12.0.tar.xz", + "hash": "sha256-xSD02tZMPHGQNbjw7WhCVRqFAIw2U4PLoi7GTMmXo7Q=" }, "kio-admin": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kio-admin-25.08.3.tar.xz", - "hash": "sha256-WrOsvyja0G9myC+mhqVaFKAT9cXFbsFgfKhHp/RtIU0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kio-admin-25.12.0.tar.xz", + "hash": "sha256-YbsmucNd0j0YnagF7OlhdKRDI6UmIqnVxiJK1byNWxQ=" }, "kio-extras": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kio-extras-25.08.3.tar.xz", - "hash": "sha256-mflm3MZjvoyzyQZ3jIKzLaSxeL0pbYzYW54/VujpwtI=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kio-extras-25.12.0.tar.xz", + "hash": "sha256-RTVj/vhWPmdoDa9azhe08aWr0svfgNUOHPm9rb3o30E=" }, "kio-gdrive": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kio-gdrive-25.08.3.tar.xz", - "hash": "sha256-LA8ct2X1wA3B6f77GEnscJ4zTi9WGO3k3UqGzeLkS5M=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kio-gdrive-25.12.0.tar.xz", + "hash": "sha256-Z7PiJj/IxpwGGwllj9d+1QxNjWmjWNQMDm1N3qb5R34=" }, "kio-zeroconf": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kio-zeroconf-25.08.3.tar.xz", - "hash": "sha256-3nuyMp3bkMBKjBt6t+EiXico7Yu3VUAp5LS0HkS1c+A=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kio-zeroconf-25.12.0.tar.xz", + "hash": "sha256-InyT4BZz1+tpYG5F/J8QYLDygOh5MTxiOx8kI0U84qg=" }, "kirigami-gallery": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kirigami-gallery-25.08.3.tar.xz", - "hash": "sha256-3+flmIXsSBpn6IeivvGgkSj8OoYuALRKTJYv2HJmFoY=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kirigami-gallery-25.12.0.tar.xz", + "hash": "sha256-0Yc5AJ66t3paoMXKDj4wU/9UkWTGpSJmlnlbVjhzplQ=" }, "kiriki": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kiriki-25.08.3.tar.xz", - "hash": "sha256-gmEkYfdbe/aT9Vf5PbxsAncG+8Kv5mpcqSUWmWchYxU=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kiriki-25.12.0.tar.xz", + "hash": "sha256-Vll995EfPKpwv0UnWJqcPnslMj0orKWETcrjT2IJTn8=" }, "kiten": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kiten-25.08.3.tar.xz", - "hash": "sha256-7pUwcbfbzCkMg32KHlF3ZCELpdWJim8VcAgTF28LvFQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kiten-25.12.0.tar.xz", + "hash": "sha256-mFY7Of6uC+AzoPM7tCY3ndif8rPTcgnuvbVZSZC6mYI=" }, "kitinerary": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kitinerary-25.08.3.tar.xz", - "hash": "sha256-s3QG/balE1+8F8iMy38tCIjm1T4W9C2BlOphiRH0ciA=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kitinerary-25.12.0.tar.xz", + "hash": "sha256-dQlqSVJjQ15uHfrvj5+0j60hUwxIrq66kfc+DThNXww=" }, "kjournald": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kjournald-25.08.3.tar.xz", - "hash": "sha256-Ce6AgQJxJgc/jP6/v7+Jh+PQsGEsHnxSXa3Tt8w6X24=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kjournald-25.12.0.tar.xz", + "hash": "sha256-vohxKqHQf81lGfqc9wFByAsmybLdyzEbf4F1oJjJXgk=" }, "kjumpingcube": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kjumpingcube-25.08.3.tar.xz", - "hash": "sha256-oAWb720t3hH0WNbd9NXqnoCfcyPC9nsEG9tByJr0QOM=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kjumpingcube-25.12.0.tar.xz", + "hash": "sha256-l2Q7vpuaFSoCnavBY90s6P1gSNgnH0EX20NTOz2+kTQ=" }, "kldap": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kldap-25.08.3.tar.xz", - "hash": "sha256-YheAQ/cjuVme+G1EZmJ9VTeAd4LJzu/kq3lZGxr3wDI=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kldap-25.12.0.tar.xz", + "hash": "sha256-sSWbBK+cUD0dmXpx+MlAXCuJlvJ+6O46ZnRj7CYzSlc=" }, "kleopatra": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kleopatra-25.08.3.tar.xz", - "hash": "sha256-PC9lIH7KzW9yYx6DKpM0KmxDJg6JevzChdGAO1HMZ2Y=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kleopatra-25.12.0.tar.xz", + "hash": "sha256-A1yXfWLmsmNYe5aefe+jGLAXu5pgtzzYEpkHU1jSu9o=" }, "klettres": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/klettres-25.08.3.tar.xz", - "hash": "sha256-cGUurM+AAXa6P1Ep/ROoKSuXF8MISYgBtV5VOk8XmHM=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/klettres-25.12.0.tar.xz", + "hash": "sha256-MRjc1fvkNFgVEKRMFajV49n27+gZWB7DXnoXgiUETpc=" }, "klickety": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/klickety-25.08.3.tar.xz", - "hash": "sha256-/GWRi1rRBOVXLmG/xa+kbWi6MU0V8gjukGBEPJEv7Jg=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/klickety-25.12.0.tar.xz", + "hash": "sha256-+VsNmGIM8v6l008SRO+p58VzKjznmb41o+4YBJIBhNg=" }, "klines": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/klines-25.08.3.tar.xz", - "hash": "sha256-CRE1uZF2YFpBpHI3L0umm8vqLzYFMTEEmu2ecYfJmnc=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/klines-25.12.0.tar.xz", + "hash": "sha256-5wLwTfYRJbnJ29udwPY3xzHmN86vZ5hWJmVlSBWGxcA=" }, "kmag": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kmag-25.08.3.tar.xz", - "hash": "sha256-xDB5Dlk7g0ZXFyuUq9oP8MElv2rESUayR8c32yGqtGg=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kmag-25.12.0.tar.xz", + "hash": "sha256-Cnx+Pse80mOZFYctBXFlN+6nhUvtLCmXJer8+ky1dG0=" }, "kmahjongg": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kmahjongg-25.08.3.tar.xz", - "hash": "sha256-KWpQulk5yUiDSoUU8u9rr7E3auUFpc+CmO7sMRnp8SM=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kmahjongg-25.12.0.tar.xz", + "hash": "sha256-ivJK0EZA2jB2zBVV+hsBQ4S5Bre0EaNWZubQB/pU7ro=" }, "kmail": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kmail-25.08.3.tar.xz", - "hash": "sha256-pUTofOL63026oJnAGKGeWTu7gC4KmTAWvD6RTt1qkfQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kmail-25.12.0.tar.xz", + "hash": "sha256-YskEthSRsOmJAq7o2GxaSZ6wZw6Zr7d9xP4luv8mZl0=" }, "kmail-account-wizard": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kmail-account-wizard-25.08.3.tar.xz", - "hash": "sha256-M2XxYVMgGinDF5mxCPwI4/aUwjOuFwQmiJ+BUcSYw0Q=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kmail-account-wizard-25.12.0.tar.xz", + "hash": "sha256-yFExJKdfb9R7C06E0H1mzt+DtSO3yVBW1Yz4VYGnZb4=" }, "kmailtransport": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kmailtransport-25.08.3.tar.xz", - "hash": "sha256-IfuF62TtJcrtJx0plwDxBmqTQxKYZH9drDbotvMlN64=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kmailtransport-25.12.0.tar.xz", + "hash": "sha256-SA/92S1lfSrbv44v4Xs/cj/INcE/rD1RnuJlG/wt4b8=" }, "kmbox": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kmbox-25.08.3.tar.xz", - "hash": "sha256-MWGF+jh+OFYb3S4KC5hKP8AIMqYicdBtz+vOHcfwVYw=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kmbox-25.12.0.tar.xz", + "hash": "sha256-OmoQm9xKFkiRjU0zKqrCRH9ncQ2H7pobz6wWmRuOk+g=" }, "kmime": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kmime-25.08.3.tar.xz", - "hash": "sha256-H0/KO/+Zn9hNnPPYBz3308FpOthVS1YAF05KmqGDfwE=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kmime-25.12.0.tar.xz", + "hash": "sha256-wh8XsfymgmSHzY4izVUd7pNApSI3xZZwzIxDJlsPRjU=" }, "kmines": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kmines-25.08.3.tar.xz", - "hash": "sha256-mfDaPNivn6Y0qPfTTkM77bxL+9okiGzV4L3eSOCtSj8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kmines-25.12.0.tar.xz", + "hash": "sha256-wVYaXrSW24/H1i1V9DUqYYXt3dUYUxTVfZwVx3Ndyfs=" }, "kmix": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kmix-25.08.3.tar.xz", - "hash": "sha256-+EKMFgrbaM2foA026VQ65PRPNk/VmTJ+dpSrYzEI95w=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kmix-25.12.0.tar.xz", + "hash": "sha256-r/bALcEd/ULFdVnMTCnZ6mwO3FwYRK52LKcxU7zWVT4=" }, "kmousetool": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kmousetool-25.08.3.tar.xz", - "hash": "sha256-edPgAyHPZPEONVe1MdELxYc11r6qI3JDv3mG43Ak4I8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kmousetool-25.12.0.tar.xz", + "hash": "sha256-lt8RjeXDHSGzNvAIjMSteBD29+VsWlRrLKhsT1WZDJ0=" }, "kmouth": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kmouth-25.08.3.tar.xz", - "hash": "sha256-L+9tjvkyAqLaysO7l/AtN3kMxiFMxtlJY7G7M7Hu034=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kmouth-25.12.0.tar.xz", + "hash": "sha256-84zSe28eMgvDgC/QhFu0/j5tYjol+6KaPEsZ3Ohu+R8=" }, "kmplot": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kmplot-25.08.3.tar.xz", - "hash": "sha256-JCNo7aVqMy9SmVKvC2JYw67GpZuQNQzfb+/OoNpnuIM=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kmplot-25.12.0.tar.xz", + "hash": "sha256-ivi2IT32qdsCjhSJxKB7+w+zTyiMax6dG7bhXC68Rm4=" }, "knavalbattle": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/knavalbattle-25.08.3.tar.xz", - "hash": "sha256-DYbxF2HZhYrbqgFua+uGfibr+f9SsxLXnNIm/xi+1i8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/knavalbattle-25.12.0.tar.xz", + "hash": "sha256-2+vQ0jdO0CoNRwtV1FYTTpwRiXFA/GhzNbIFl1+9Rmw=" }, "knetwalk": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/knetwalk-25.08.3.tar.xz", - "hash": "sha256-z62yo0fxZqLOPpG2InFkXj7FSQb99tgCaS2aLhSjoW8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/knetwalk-25.12.0.tar.xz", + "hash": "sha256-CHJYt6EfpTxf9zd9z4nKkyJoO9WHEEKN5bUaH9U45Jk=" }, "knights": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/knights-25.08.3.tar.xz", - "hash": "sha256-ygibJTDdrR6CVpWgVwnGi6pwO5lu61hjrSabY30RKD0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/knights-25.12.0.tar.xz", + "hash": "sha256-tvWcVbikCqWEjimH4fpPwlzGRyN25dgIjCt9HIgHlG8=" }, "koko": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/koko-25.08.3.tar.xz", - "hash": "sha256-zWcEO5aclGnZ6cEGfPQsLqPiLgInq+86d2INj80ll1c=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/koko-25.12.0.tar.xz", + "hash": "sha256-XWwAgrY/hipu/7SZYzstpP1J3W1lEOrnryEYOLS6j58=" }, "kolf": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kolf-25.08.3.tar.xz", - "hash": "sha256-PZStjMm19A8cMJj7UPm1ZPbVlwhDaqo8G6ouXpR0UJ0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kolf-25.12.0.tar.xz", + "hash": "sha256-AuyOEPR5SG3CpmJnSV625LtBtZ7bv8/FcNOMVWOiZPQ=" }, "kollision": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kollision-25.08.3.tar.xz", - "hash": "sha256-nfXBZsVK6K14Y8fxV06df7C2V8HfXNzuTk/1Dtyilzo=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kollision-25.12.0.tar.xz", + "hash": "sha256-ms6zjg/DMPVNaoseiP6ulmK8vO+D3jVeDezu4ntHVvU=" }, "kolourpaint": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kolourpaint-25.08.3.tar.xz", - "hash": "sha256-7ffBmyNhxQ2VVknbE8/JOVIwi1mpQKCUWO2JjE6xtAw=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kolourpaint-25.12.0.tar.xz", + "hash": "sha256-sFlSRZJ18lgPk+EV7BUhqUnf3DrAYstDtcYi4tQg478=" }, "kompare": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kompare-25.08.3.tar.xz", - "hash": "sha256-zkMG4+6PIQ0f64h+SZgVcCt9OMT9OioKp1BJWc1BT+I=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kompare-25.12.0.tar.xz", + "hash": "sha256-hI9cGeXQVHgYRDI89v5bs+p+BVgy2Ef40JvxNymUH0g=" }, "kongress": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kongress-25.08.3.tar.xz", - "hash": "sha256-nX9eeJU1U6Z/GAPe57DG4xgmhtwXPHZU8j86wtxVVds=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kongress-25.12.0.tar.xz", + "hash": "sha256-nBQcxDwTHnXKkvM6We0fXXq6PbybheIuKIhETUcgPBM=" }, "konqueror": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/konqueror-25.08.3.tar.xz", - "hash": "sha256-PPJVeXyJh2kuq+/pS4bibpSurJB/ZZMISOB/YQRMQmQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/konqueror-25.12.0.tar.xz", + "hash": "sha256-MuX2Jwm/rHfOBB/P7+o8yVKvC6a4MrKLTG9lIAHDOKA=" }, "konquest": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/konquest-25.08.3.tar.xz", - "hash": "sha256-CpDVgw6MY22JJWByJS453CkPZ81ZC1yDv0W+RO/DXvk=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/konquest-25.12.0.tar.xz", + "hash": "sha256-KAcn3u9BTUE3Uy62E4u8Xo1j7OccW2N85z0/zHL83qQ=" }, "konsole": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/konsole-25.08.3.tar.xz", - "hash": "sha256-CVp/8Q3zxwd5s1b7O1mEBiu8aYu+2WYjDj28z2rzZhU=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/konsole-25.12.0.tar.xz", + "hash": "sha256-v+Oe0iuDDJnjdYOtDmfrKOkSxDI1s6tHiYY3RnYjSjQ=" }, "kontact": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kontact-25.08.3.tar.xz", - "hash": "sha256-qEEb6WO4KCFWcStbsgs93mo743dpg3VY5ZCm1e0Fsvo=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kontact-25.12.0.tar.xz", + "hash": "sha256-xGkWtpF9KWIdKZeN9T469/KxmmaPTuyRvB9tbIpP+S8=" }, "kontactinterface": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kontactinterface-25.08.3.tar.xz", - "hash": "sha256-e1nQOAevvoku0A58Im/Yft6Mp+Ond6EcIoaYs9gFl4g=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kontactinterface-25.12.0.tar.xz", + "hash": "sha256-sPL1yhcXhRgsU7DF97E7/WZ++9EWt2MHNTWF9hl/AmY=" }, "kontrast": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kontrast-25.08.3.tar.xz", - "hash": "sha256-UgvgiPpNWS34GYRybm5Ti3hvOx7MYoE/soArpzh1nGo=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kontrast-25.12.0.tar.xz", + "hash": "sha256-tz0LU7UKimYCz6Bnlj2Ey++DZ80A+lwER9N1zmH9I1g=" }, "konversation": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/konversation-25.08.3.tar.xz", - "hash": "sha256-XkW3jDLY9ydczcUNl4DFrpA0GO2MeXTV2Ylo3DaFgI0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/konversation-25.12.0.tar.xz", + "hash": "sha256-vIqO9JAMB9Jf1VAEmZS1fC0/xy/zcM3plt9XUggaWGg=" }, "kopeninghours": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kopeninghours-25.08.3.tar.xz", - "hash": "sha256-DmCIXSzbiP4L9C/jnwHJ4oTddVcnxYVxSDLrqYwRy3M=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kopeninghours-25.12.0.tar.xz", + "hash": "sha256-pOQoDJW9fxt4eSWw4rjFvA6H5ex/NYt/18i3yt+3+kc=" }, "korganizer": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/korganizer-25.08.3.tar.xz", - "hash": "sha256-YqGg0VhbkthlL/GU/Mlrsog7zAGOy9T16u9ukPawuXU=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/korganizer-25.12.0.tar.xz", + "hash": "sha256-Az+F9h1eaBuqX6S2NfQ5UsxOcf7knl+H7hB2FZauUSE=" }, "kosmindoormap": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kosmindoormap-25.08.3.tar.xz", - "hash": "sha256-Giziw+UUv+Aeex/elDvwmRIcrYKoj0RL2sA7V1Cb498=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kosmindoormap-25.12.0.tar.xz", + "hash": "sha256-PLtCGuLkQuv/QYjx1IvLgOXq7CDpmu3hi/kZbR87TtQ=" }, "kpat": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kpat-25.08.3.tar.xz", - "hash": "sha256-ZeAz17mquql1cBLUtQurzJG1wslBdMM05wQ7Z4WDJu4=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kpat-25.12.0.tar.xz", + "hash": "sha256-SF+G3Z7hA+1eTxAcRWKBva9Qotv9pgKh5UEfsNb9gXA=" }, "kpimtextedit": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kpimtextedit-25.08.3.tar.xz", - "hash": "sha256-Qpv/phStKz6nQkcCwcSBL4zC5C7iEM1av3yd1//kbUY=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kpimtextedit-25.12.0.tar.xz", + "hash": "sha256-T69psp1pR0Zl4PYtq6MnmjJXa7/z33Z2Z/+BdLn19i4=" }, "kpkpass": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kpkpass-25.08.3.tar.xz", - "hash": "sha256-OAKm8j7dkBvpdcA7PrY+R46ThDhtiDsiiftZjt8+dYs=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kpkpass-25.12.0.tar.xz", + "hash": "sha256-WSz6Fuj3x6tpx0mMD6zelyxdmOnPPhmdn109qZs/U/Y=" }, "kpmcore": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kpmcore-25.08.3.tar.xz", - "hash": "sha256-QwIiSYs6DdS7YdryYfBkg4+NHoNzMGOk9je1knHtaOM=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kpmcore-25.12.0.tar.xz", + "hash": "sha256-9pz8LrA718PA/hxWVUM43TGbub18OgnuhjH+5yDkzsw=" }, "kpublictransport": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kpublictransport-25.08.3.tar.xz", - "hash": "sha256-7Yh98j0EoevRcbWcmd+uwm1iJU6aesT4pwhLowFYbBc=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kpublictransport-25.12.0.tar.xz", + "hash": "sha256-Xbu/ojE5UKDU4MuHyMkaJD3mTjeGQ46+kkBUUFfgWjU=" }, "kqtquickcharts": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kqtquickcharts-25.08.3.tar.xz", - "hash": "sha256-jympyxr341HoW7d+ZtCC0wToWdJbtVDnTWX3WfARDBE=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kqtquickcharts-25.12.0.tar.xz", + "hash": "sha256-touLBPK65GuMxgMeXbX5cT0OAaNwlqKtV8bbo9qMaFM=" }, "krdc": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/krdc-25.08.3.tar.xz", - "hash": "sha256-qjF7iiHANitt3WnxIsoX9ETt/uui9CK3XOUcZmlQkGo=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/krdc-25.12.0.tar.xz", + "hash": "sha256-kgzAwFA9FRsAxrWnjH4RDhtZjXdSiMm/0uYRGAC1lkU=" }, "krecorder": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/krecorder-25.08.3.tar.xz", - "hash": "sha256-Mnj73af7xEC2+SK2RKyNMtzGPU1EO3ecwssIMXomM2E=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/krecorder-25.12.0.tar.xz", + "hash": "sha256-yBTLW2R0+5tmCvtyF4S5BTdY5bxYeNa8MdJ+6a2pkrU=" }, "kreversi": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kreversi-25.08.3.tar.xz", - "hash": "sha256-gf/rj2ABjRLqKCvgKhd0Xkv2ofFsBnWulyG9+cNSlSQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kreversi-25.12.0.tar.xz", + "hash": "sha256-cKWVUCsM6IwtPw5dTbXlRpIedFpJepZRDxiWtd11gac=" }, "krfb": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/krfb-25.08.3.tar.xz", - "hash": "sha256-4S+HkIm2qdS4/HK4IB5SIj6kUGZNKLo6Qxk6Yeud/0I=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/krfb-25.12.0.tar.xz", + "hash": "sha256-AWoK9UtFHixrRY/4IBDh3qUcXVCL+rMCSLz78lBJLY0=" }, "kruler": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kruler-25.08.3.tar.xz", - "hash": "sha256-lrIrTlkMtnaGcfEZlOENqUL4JS+sYvq57/0VYR0seaw=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kruler-25.12.0.tar.xz", + "hash": "sha256-xezV9nT+fYW/RPO1O6QwkP6vyOykdbe2oZUfbQQWc9w=" }, "ksanecore": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ksanecore-25.08.3.tar.xz", - "hash": "sha256-4VZZmUGT7mDSn64J4n0uRT/DLkSfr4gIpXysip6rqZc=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ksanecore-25.12.0.tar.xz", + "hash": "sha256-YX0B2W6ni61MPWgVF+ZLFvA3+co4fCWgXs77xZ482zI=" }, "kshisen": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kshisen-25.08.3.tar.xz", - "hash": "sha256-0P9OhTLCd7Mptkd25Ye/dacIbX20RkL3cCve7GcIHqg=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kshisen-25.12.0.tar.xz", + "hash": "sha256-z1WXo+QDXpNP5ayF21hBELJXcpeVjRa0ktuCtcZyZag=" }, "ksirk": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ksirk-25.08.3.tar.xz", - "hash": "sha256-mSoRZ1ldy2px3lORdTFeQ0W3mSYu6Wa3UYv3c21N58Y=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ksirk-25.12.0.tar.xz", + "hash": "sha256-TxbwaAyj8gX0S1OM+jGdGHq65oNwIpRIlhEAKfebItQ=" }, "ksmtp": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ksmtp-25.08.3.tar.xz", - "hash": "sha256-FQdBgHcj8c7ka8HoY5TXhf79ffgiUj1f5TgyouQVzOY=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ksmtp-25.12.0.tar.xz", + "hash": "sha256-FdZuzdxX/jw2ABvsUsc6jGgF4E/oQ9KxM1Oj8/UGGkU=" }, "ksnakeduel": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ksnakeduel-25.08.3.tar.xz", - "hash": "sha256-G/5kAJ9iPfUDr1cZxzquUJNO31jBl3RjGGp8/8mjxsY=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ksnakeduel-25.12.0.tar.xz", + "hash": "sha256-MmIpP4MVPKOUSef67huo072B+8OUg5vEjaWObhzFvJ0=" }, "kspaceduel": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kspaceduel-25.08.3.tar.xz", - "hash": "sha256-txLcpESv/zejpFdAwDcJSHwjaj+cjb4NiaezzFPz1P4=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kspaceduel-25.12.0.tar.xz", + "hash": "sha256-CL3NpOYYfS7JxAPD3iwZt/m5Cni7OzeUpUGPbBEmsDM=" }, "ksquares": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ksquares-25.08.3.tar.xz", - "hash": "sha256-Wnc8jDtRj6LMXYzfvlBe6C1sDCvSeCiTeyKXcwrdtc8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ksquares-25.12.0.tar.xz", + "hash": "sha256-YDLtgqAjPT7W0jE36Jp2Rf8HHJB3djaiJPgXx44VDQE=" }, "ksudoku": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ksudoku-25.08.3.tar.xz", - "hash": "sha256-1XexTOqFRtyLdIC1K5PT4LV+coySYjfVxoQQ7Ll9vdQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ksudoku-25.12.0.tar.xz", + "hash": "sha256-Y1XhFpMjKwbwwEiOkEkp+nlYL5miiLzHi/o/C6DTdsc=" }, "ksystemlog": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ksystemlog-25.08.3.tar.xz", - "hash": "sha256-41APVe04Ju1RhPzzd6R2ISHTbTBIso9DfVLeZZKzPnE=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ksystemlog-25.12.0.tar.xz", + "hash": "sha256-xnKH2bgATtR4dRgVOZjeM7ytEBXZiWvySQDh8FVX3yU=" }, "kteatime": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kteatime-25.08.3.tar.xz", - "hash": "sha256-aKghjWcg/U4zlTJwdZbX0e7l7xizFE448nZW8Ntqp80=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kteatime-25.12.0.tar.xz", + "hash": "sha256-6ydf5em3hz5rPsdGKEhs+BHBD3+93X4vBB7kq+QQh5I=" }, "ktimer": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ktimer-25.08.3.tar.xz", - "hash": "sha256-pLQm1jQcE9i0yYO2JBjK2npmA8c4E1chOgPIXfmF4hg=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ktimer-25.12.0.tar.xz", + "hash": "sha256-kt4eFpn6WpMEwpHfL5Tf6JMfxbueqJ1nX7RVLn+OglE=" }, "ktnef": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ktnef-25.08.3.tar.xz", - "hash": "sha256-cBVHeVARnN252bTmuUMGsbaHb0YE9Jb+voJMpicF4hM=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ktnef-25.12.0.tar.xz", + "hash": "sha256-y/f92975QpZaT9mUHc2X0hEAK0YS8NcLZz9D4DQ8sPA=" }, "ktorrent": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ktorrent-25.08.3.tar.xz", - "hash": "sha256-YsslNCYnT3YZYCgn0d4kaf/+2kN+9dlNyqTXyi3/TT4=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ktorrent-25.12.0.tar.xz", + "hash": "sha256-w9O03t4XwCwBloaBVAQzGeYksPM83O2V9s17wJt9dOM=" }, "ktouch": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ktouch-25.08.3.tar.xz", - "hash": "sha256-RxvGm+NjhpVzekatA4FHHVLy/desOfZIaxgIChqZ+Bw=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ktouch-25.12.0.tar.xz", + "hash": "sha256-wz/NiA5wtQP31aSgy2ugHDIY2bPPjAIxUFYC8nKm9K0=" }, "ktrip": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ktrip-25.08.3.tar.xz", - "hash": "sha256-67XWgzjhKR80NFaRfB0nfelXJWRjv390MAXUUnUCIL8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ktrip-25.12.0.tar.xz", + "hash": "sha256-M7X46XhVV3tlTLfMdV4u3b9TTOApDWglguKUhpLWC30=" }, "ktuberling": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/ktuberling-25.08.3.tar.xz", - "hash": "sha256-kn2uK63lPdEODGRlKSX34qr94ELSTuc8McfguntAYU0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/ktuberling-25.12.0.tar.xz", + "hash": "sha256-7pbaNLUz674MH0aU+jXBP4WSiAiXeOerSVQKtyBhN6g=" }, "kturtle": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kturtle-25.08.3.tar.xz", - "hash": "sha256-niNZcCEncHPReW2prJ7ejD2G+huipyN+NyvBGuJrDgs=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kturtle-25.12.0.tar.xz", + "hash": "sha256-wZYktzqGQR7r4C3haKYRPlbOniQd65XoInLpoBOurZ4=" }, "kubrick": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kubrick-25.08.3.tar.xz", - "hash": "sha256-wv90F0c7FKK17TONQ5AnsHGdM8CNnflPOa0SGfLsmRI=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kubrick-25.12.0.tar.xz", + "hash": "sha256-fg0UyulR2FqIFgFd3txzQeKRxxXBuhWPIx1siYhGWgs=" }, "kunifiedpush": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kunifiedpush-25.08.3.tar.xz", - "hash": "sha256-6MkkQ41TWfD6CTCrNREQEgduOg/06VnWkpWVVxODMgo=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kunifiedpush-25.12.0.tar.xz", + "hash": "sha256-N1kdHdEpFnjg00Rw7Pp/bPGIo3I6sNsRcELRHUO2D/4=" }, "kwalletmanager": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kwalletmanager-25.08.3.tar.xz", - "hash": "sha256-VLa2PrVf1VTTEhUxnCC7r9Lhv5SKtrT6TYS1YUttxS0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kwalletmanager-25.12.0.tar.xz", + "hash": "sha256-X2Uv6WJTnYkd25zD6qh+CsnME0CNl2WG4zkc+DHEnXg=" }, "kwave": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kwave-25.08.3.tar.xz", - "hash": "sha256-SNx4aADdyclG/OxxJY8896Ot7pHBMEuF2gVtJs6MolQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kwave-25.12.0.tar.xz", + "hash": "sha256-xlu8gj+UMkntBd7Xvltit/daa89pcin3MzMt4Px8f6g=" }, "kweather": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kweather-25.08.3.tar.xz", - "hash": "sha256-KNoeLq1scm5iMiMOqo8eDluaa5C3VgMOx/kVHRkNcy0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kweather-25.12.0.tar.xz", + "hash": "sha256-5jO6SCr97Yuj6wD625DrTQY0LeOLm/KxZvWnV4EfSbE=" }, "kweathercore": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kweathercore-25.08.3.tar.xz", - "hash": "sha256-aTVzoCRb9l2s6rEnrEXJrPuznmt8UW2BevVBzTElsls=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kweathercore-25.12.0.tar.xz", + "hash": "sha256-LDDxTJcPeVSezbeYvMGVIhxzxBkjoQRMeK1ttdLIgBI=" }, "kwordquiz": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/kwordquiz-25.08.3.tar.xz", - "hash": "sha256-FD3tCu6gIDbeeq29O2zoENAGanPcyC02excZYqgSFoQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/kwordquiz-25.12.0.tar.xz", + "hash": "sha256-UjAt4NlTXAPiWXj0YYF/1V65W0yApj+7DLIIHr5tESg=" }, "libgravatar": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libgravatar-25.08.3.tar.xz", - "hash": "sha256-lMd3JgKzraqLTUSiJ2mdlDCXAFrr/u9WPK6tt15vI/s=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libgravatar-25.12.0.tar.xz", + "hash": "sha256-5EtXOj3iXMWcx+FH6FeZOa73LEV74uPkrUwW09n0r34=" }, "libkcddb": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libkcddb-25.08.3.tar.xz", - "hash": "sha256-HYXr8890TjVv8g/fADgyeUT+pDN4Yo2jvYuZDmXTdpc=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libkcddb-25.12.0.tar.xz", + "hash": "sha256-ffJehHxE8IqwmYXMsJdfKTMux7FgSbVppy4k4ZNKEZs=" }, "libkcompactdisc": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libkcompactdisc-25.08.3.tar.xz", - "hash": "sha256-PXqeirTcFJcIukWb7gumW+hU6ux4yX97p/j2YyrjhnA=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libkcompactdisc-25.12.0.tar.xz", + "hash": "sha256-105+BD4Xy9k7tdX+Nazjb/pJbiBZPZcvrpMQp7+XdWE=" }, "libkdcraw": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libkdcraw-25.08.3.tar.xz", - "hash": "sha256-Uvp40BPhPHLGL7TWho7xCowR2JlIptJEFWR+kXqnLN8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libkdcraw-25.12.0.tar.xz", + "hash": "sha256-UVZAGll4QxOmYO7A3FUzJ8Ie8K8Cj8MUUlkm0Sr4T9Q=" }, "libkdegames": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libkdegames-25.08.3.tar.xz", - "hash": "sha256-RvMFZ3+zeXjGtHvRerZVO1chUaYymbt7jccY03+0SKQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libkdegames-25.12.0.tar.xz", + "hash": "sha256-Goj5mjoHo3RcGng8MC1UYc04wdp4Le4eGjZcRbdQBvE=" }, "libkdepim": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libkdepim-25.08.3.tar.xz", - "hash": "sha256-OspVtxvjWrNpkwXy9/x2bUvQDETrt2Mb/WQcEkzQsek=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libkdepim-25.12.0.tar.xz", + "hash": "sha256-HApcy/vfS+Uzvx5S/hemNNc2aH4qlJqxH+mh+b0qjbw=" }, "libkeduvocdocument": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libkeduvocdocument-25.08.3.tar.xz", - "hash": "sha256-tNzEPB2PcR1bmsCinXji7HcQtbzYDx7GJTTosbDr3cU=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libkeduvocdocument-25.12.0.tar.xz", + "hash": "sha256-YVmOx6PKCCZT+wlyVgc4mhCJHYBO5kGJ08max9AvrnA=" }, "libkexiv2": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libkexiv2-25.08.3.tar.xz", - "hash": "sha256-CAaJhVS2Km+DTTO7SBkj2CvekbFpK6exRv7JS5pQPQM=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libkexiv2-25.12.0.tar.xz", + "hash": "sha256-HesPpvJwtYiqPd2UbEKwCpdPedL8B58RJczI/w6ZuZY=" }, "libkgapi": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libkgapi-25.08.3.tar.xz", - "hash": "sha256-WmWQ2gTPSgw7U/Kgx9fJfN9X9jhUoKSXjAhZJDv70V4=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libkgapi-25.12.0.tar.xz", + "hash": "sha256-KJ3JHa/+AusaUk1sgo/0upc8zWHRYQgF1zhtmdm0pL4=" }, "libkleo": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libkleo-25.08.3.tar.xz", - "hash": "sha256-BVOxiilctfv/X66ZA0p4KuTQfUPSwWN+r2ejHKZQuBY=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libkleo-25.12.0.tar.xz", + "hash": "sha256-/7qb1WPtI7rdxiR0dgr6JiogEGTOH1FMHyaRA/E1qtk=" }, "libkmahjongg": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libkmahjongg-25.08.3.tar.xz", - "hash": "sha256-SC+c76Nbpi0ScbOpsvC+zPDpVOt/2ECmHeTMSxi9xlc=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libkmahjongg-25.12.0.tar.xz", + "hash": "sha256-fbBVPEc5BRWrk2nEKhV/IlHD9mUj1y+WVinp9cO528c=" }, "libkomparediff2": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libkomparediff2-25.08.3.tar.xz", - "hash": "sha256-bpNvhmHzNsuaz/eeJG4d+yhPnNVmoBxlq1oliec2yew=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libkomparediff2-25.12.0.tar.xz", + "hash": "sha256-k/pswsXsX+DFpOIiL1djWxj9w1meoiI1u7EMe4zqoHk=" }, "libksane": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libksane-25.08.3.tar.xz", - "hash": "sha256-cwv078ybgjupjGgUkuQTk3mrDD5gLh5u/ynATxdtb2g=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libksane-25.12.0.tar.xz", + "hash": "sha256-tP3kxqkVFnntUuTVcu1miN1LSJqiojU02PEyz73Tq5A=" }, "libksieve": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libksieve-25.08.3.tar.xz", - "hash": "sha256-bgZj63oMQAfFZE+rg8Q2cTO7YbeuO3J4vINpcXdf/5k=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libksieve-25.12.0.tar.xz", + "hash": "sha256-vl7+L+rSoPJ6I74/R8qGwKjpC1TElt9toCYBP9grhCE=" }, "libktorrent": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/libktorrent-25.08.3.tar.xz", - "hash": "sha256-z6TZb062gnpK1mzAr3JNF3PLUW3uKYgjIEzEXgrRzWk=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/libktorrent-25.12.0.tar.xz", + "hash": "sha256-+1lz0jE5LCcRhlndRG+roSPJnNbHfCfettqW7w44MEw=" }, "lokalize": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/lokalize-25.08.3.tar.xz", - "hash": "sha256-B54/zaOnTvessbMGPu6xAjfnNkZr1JlTdipl0I7xFIM=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/lokalize-25.12.0.tar.xz", + "hash": "sha256-56XfxtrcEhfj1/kmzh5rLsNBlap7z5+vSTqoB/aw6i4=" }, "lskat": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/lskat-25.08.3.tar.xz", - "hash": "sha256-lTKIRVfvJGj4K2WmzlT9y8DfPKGS/njKy44k97coKb0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/lskat-25.12.0.tar.xz", + "hash": "sha256-Mva6n3swC5c/pRqK+jxVFvSJ8ns+u/P/jbbQwbJkKAA=" }, "mailcommon": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/mailcommon-25.08.3.tar.xz", - "hash": "sha256-PEaG+HOUDgC3UlmT+s1aU+LH8tlECMb2inaqE7EXQ/o=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/mailcommon-25.12.0.tar.xz", + "hash": "sha256-GIMa1akrLIcFhz1Hdq1GDTs4y85gD25g/rYJO+Sx1lI=" }, "mailimporter": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/mailimporter-25.08.3.tar.xz", - "hash": "sha256-8MsBq+JLOlMydW3tUZMSgT/w43lx1r+xk3wLe8xv2qk=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/mailimporter-25.12.0.tar.xz", + "hash": "sha256-tmmsiTFdr8H0Lrl4pkNmxPdRYl8zuo6yqqiB+PJmShU=" }, "marble": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/marble-25.08.3.tar.xz", - "hash": "sha256-ZcA02sx6LVu/U0/KZXQonosdvyvVDk9j/00atk/wcZg=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/marble-25.12.0.tar.xz", + "hash": "sha256-rim9mbCe7zUHn/bFj180wb6/i3cIvLeOtnBAlQyq3Hs=" }, "markdownpart": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/markdownpart-25.08.3.tar.xz", - "hash": "sha256-WVJLI3e+0JYjSotHHzwXVFU9HT8SI53rN3ycAtVDZT0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/markdownpart-25.12.0.tar.xz", + "hash": "sha256-riIRwD/muwq6Vw6QUXV9PYuxOdIRwxU/yc4R3hIEKeg=" }, "massif-visualizer": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/massif-visualizer-25.08.3.tar.xz", - "hash": "sha256-Bx3Rj+LLsJIkmDpmByXVlvCbauZwM+7ATilZQbQAZ3U=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/massif-visualizer-25.12.0.tar.xz", + "hash": "sha256-8GdN8bd+SwyPeMBtLux8OrfvSsRP1zPVwQFWGoFvYGg=" }, "mbox-importer": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/mbox-importer-25.08.3.tar.xz", - "hash": "sha256-vULK64dpOrPKzHxC2flA4iyHWvTU0wSyZWCT3kjZuCI=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/mbox-importer-25.12.0.tar.xz", + "hash": "sha256-LyBqLejhqXO4V4KTSWMGU5IzEdhp9kXhtQij1vxkdRk=" }, "merkuro": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/merkuro-25.08.3.tar.xz", - "hash": "sha256-oCHLfVogUZN1pWv/hUH8Kzvd1evkhaub0l4wayETEq0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/merkuro-25.12.0.tar.xz", + "hash": "sha256-WVSX3BGr4vxQ98NJVD9YhtxxdnU4pk9JALLov2N5LAg=" }, "messagelib": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/messagelib-25.08.3.tar.xz", - "hash": "sha256-p8h4gwpdeQdSyYs9lWPHbhowtqKM7FPL1Ka2ATL1Z/g=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/messagelib-25.12.0.tar.xz", + "hash": "sha256-mku/7JeHAID1K6nQt89N9o4/tC8Xk1Hgr5QK1mxzz3w=" }, "mimetreeparser": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/mimetreeparser-25.08.3.tar.xz", - "hash": "sha256-6hbPP8h+HKlQpBSUvRbvoHBdAGG1W1RaiZeYQ8g1uXc=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/mimetreeparser-25.12.0.tar.xz", + "hash": "sha256-Y2YjZ4QuJbjhPHUj0FQoR6HP+zbHIHK/47KULszdeEE=" }, "minuet": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/minuet-25.08.3.tar.xz", - "hash": "sha256-ECs5JaDltDem8+Ezq8roZ2I4lyqdaMRmbBqnblG5ukQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/minuet-25.12.0.tar.xz", + "hash": "sha256-nywTq0fYgZOOJO8UuvxxXoISGsFkRyj5EHlj0OtXizw=" }, "neochat": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/neochat-25.08.3.tar.xz", - "hash": "sha256-X62WRyoLV3qfK9fMVe1/b0gcRIv3duPVlsoJV6/MjDU=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/neochat-25.12.0.tar.xz", + "hash": "sha256-pS0SAtU9obupnVa30EhjjkDoFnXPdzdZGp2k2n4n/vw=" }, "okular": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/okular-25.08.3.tar.xz", - "hash": "sha256-Ay496PxUZ5YUGFlpEYjm+ALG3kmLZczLzmCqYNhlcU8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/okular-25.12.0.tar.xz", + "hash": "sha256-zwWlFbunjuXn+1qgnmesQv55bz9kWkNTxrblVeYchJA=" }, "palapeli": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/palapeli-25.08.3.tar.xz", - "hash": "sha256-j8fuZ+QiXLEvFh4ePo3evMLuH1Bo/eEM/QbuWkFgiUU=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/palapeli-25.12.0.tar.xz", + "hash": "sha256-SF0B5gCYqshClw/eLR8S8P+B1kYPO4rFhs2ji134VnU=" }, "parley": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/parley-25.08.3.tar.xz", - "hash": "sha256-BMtueE6ChA1sp3mvriE+baW/7k3Kgrl3Er+4/RrFBWQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/parley-25.12.0.tar.xz", + "hash": "sha256-KcW/Bq0GSmwjd3haeRhWf7kLh9ugzUJ5d9/yekcfO94=" }, "partitionmanager": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/partitionmanager-25.08.3.tar.xz", - "hash": "sha256-19HbCJIZgzqVzt0yp3hZxziuzqh6smc6ym5oCaH3sXE=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/partitionmanager-25.12.0.tar.xz", + "hash": "sha256-OuYDBPc4MHE0illufysAKWNb9WhlT1duE/vKAlaVovo=" }, "picmi": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/picmi-25.08.3.tar.xz", - "hash": "sha256-3VzAh7jTcPHiWpNvsKjqzupoel/UnzDQASNItedoqXA=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/picmi-25.12.0.tar.xz", + "hash": "sha256-6SIgMwsJyjyZt8qlZJRi4vhh5jTS4FbT5NlR3eAh1xg=" }, "pim-data-exporter": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/pim-data-exporter-25.08.3.tar.xz", - "hash": "sha256-dHbHp7hZT53QhllmCh7zBCDIDUiWFIkjDMhQVosjags=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/pim-data-exporter-25.12.0.tar.xz", + "hash": "sha256-So83Fpc35yrHyXim43JZhrbbGOffps1HeLoxey48bBQ=" }, "pim-sieve-editor": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/pim-sieve-editor-25.08.3.tar.xz", - "hash": "sha256-nqMohVofxgLs4gvODqLJ4zHzvkFsbmro+YUYsCkqJoQ=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/pim-sieve-editor-25.12.0.tar.xz", + "hash": "sha256-P+vvIebqSetFx9o4kS4RnhGxIHJsIaF5Oudl+/Cajqc=" }, "pimcommon": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/pimcommon-25.08.3.tar.xz", - "hash": "sha256-/oIGtot4tVXO7YPPLmjlNIQGxZrBW8Qzkotlv56He4g=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/pimcommon-25.12.0.tar.xz", + "hash": "sha256-EeD66gk6hjS7zK14jjHbvvrwKHUeXRMThO9IDN8LC7I=" }, "plasmatube": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/plasmatube-25.08.3.tar.xz", - "hash": "sha256-qJ4ZBtN7Fvp2+ACWQO69jj29hzp+tjly594Jhj6MO1g=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/plasmatube-25.12.0.tar.xz", + "hash": "sha256-SaFfmzhASozSSwOyIAEXopg+RPgww4U9v6jjr6QP0rI=" }, "poxml": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/poxml-25.08.3.tar.xz", - "hash": "sha256-EpZ7UxNgVADo3jzzlHgTb1tmFrK0V3TcGFu2tcuue30=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/poxml-25.12.0.tar.xz", + "hash": "sha256-7xSZAE4h2Fm9ZS7gn/ElemC6ZHjvq2oO2FLbtKIXyMw=" }, "qmlkonsole": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/qmlkonsole-25.08.3.tar.xz", - "hash": "sha256-SFD6lJeC2zMctKqFz2fXJ+3YBrd3Gr6C1KfVag6+/E0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/qmlkonsole-25.12.0.tar.xz", + "hash": "sha256-lsFvEUsPmJUX6nP7NWpV8IO8nzMcTthzTIaoRvSlucI=" }, "qrca": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/qrca-25.08.3.tar.xz", - "hash": "sha256-6lwXkYjD2pI5o1Ayw2USltVXtT2r5RNNpMFNi+qCMtc=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/qrca-25.12.0.tar.xz", + "hash": "sha256-X0UjexAV9NISxs1MCza2W6GvKk7cmwk4yBdSvu14e8M=" }, "rocs": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/rocs-25.08.3.tar.xz", - "hash": "sha256-R6dDofPt1J2LZwKjXyoOBV0E4FB7/wCf/dteQmEySss=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/rocs-25.12.0.tar.xz", + "hash": "sha256-Ym1haoir3En9Eg0xs4kWeAp6ub1Q36DKuQrbexTMf4c=" }, "signon-kwallet-extension": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/signon-kwallet-extension-25.08.3.tar.xz", - "hash": "sha256-R+ee39uX2SQOIu2fpiTrrDzSGeSi7ncMaGm4abU7mv8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/signon-kwallet-extension-25.12.0.tar.xz", + "hash": "sha256-MMGHVBeGa27jz8sgh9odafybAxbvmAVyhwy3wtF6tx4=" }, "skanlite": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/skanlite-25.08.3.tar.xz", - "hash": "sha256-ga/hMhLF7a7sSlfBChBdMdwg2jteCO9l+/P3Q8CPAnY=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/skanlite-25.12.0.tar.xz", + "hash": "sha256-UlKHu5A4aL51uWMLNMEa5f1s4FvhP8YW2jAxXlINRs0=" }, "skanpage": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/skanpage-25.08.3.tar.xz", - "hash": "sha256-6EMcc/YpAduT5HAM7LdieZq94Far+P2Ar4cH0SnG1Fg=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/skanpage-25.12.0.tar.xz", + "hash": "sha256-IwQuJ92shpEq4vCn8gCM4IdVOQz4QEsSyC1ejwJo7Ik=" }, "skladnik": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/skladnik-25.08.3.tar.xz", - "hash": "sha256-5NjDXHJpOcnaeX4c1F1W0KDQSnnasfwtp6ztZqMPzo8=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/skladnik-25.12.0.tar.xz", + "hash": "sha256-aujdElYk1uS6yGZrIAJ78Rh5sh+m24TEUfz9cAJbx0M=" }, "step": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/step-25.08.3.tar.xz", - "hash": "sha256-sd3OT1Kgt1GIYWwGK+T6etXT13JcIR7AEXGamtJ+hvk=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/step-25.12.0.tar.xz", + "hash": "sha256-yAxU2LbWHhpwtjEkHMQKymk2jQyV5AQI/DNCo5zLCyM=" }, "svgpart": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/svgpart-25.08.3.tar.xz", - "hash": "sha256-l/b9tP8xEOQdjfayXw0YT1I12InYx8FcfGu7Gi8G3hc=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/svgpart-25.12.0.tar.xz", + "hash": "sha256-ifp+VexoAURe0iAFL34cRkdNvSk79VRyi4mP6FTqOjg=" }, "sweeper": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/sweeper-25.08.3.tar.xz", - "hash": "sha256-brC3wxqfvh+Q5NRyVIj4KFStA4lPnp/rVvYdOdBFZZ0=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/sweeper-25.12.0.tar.xz", + "hash": "sha256-4HIhmnX71iK3O15nBvgqUjPrlsald2N+xupAms7ieW8=" }, "telly-skout": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/telly-skout-25.08.3.tar.xz", - "hash": "sha256-RP12+uGbvD+ApoylGFN7n3B7SIQDBWSmmGYYM7RvYXA=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/telly-skout-25.12.0.tar.xz", + "hash": "sha256-QYvME03/D4OENlqVPSEI4381Ssr1mN/XpS4ptP2gT04=" }, "tokodon": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/tokodon-25.08.3.tar.xz", - "hash": "sha256-MyaPh3sIWJ6QF2UwsVr6u9V6uuZodPSQc+3zcGreoiE=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/tokodon-25.12.0.tar.xz", + "hash": "sha256-ciPNOVfoR1Xw+3OHFRDAg0VLwElSL7rMiFDWG711XG8=" }, "umbrello": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/umbrello-25.08.3.tar.xz", - "hash": "sha256-kEimFZyEhiSKlblW7QjBlUrCFwi4moH+ajsKp6Ugeiw=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/umbrello-25.12.0.tar.xz", + "hash": "sha256-G2Jk3qLJKuRCDDhWfUegufDGFj6n7/Zvg1T50Zgnk/c=" }, "yakuake": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/yakuake-25.08.3.tar.xz", - "hash": "sha256-2NPw/+z9mPAMhhin3PXPhe90X3BHF9+BmPYyHYNFHuw=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/yakuake-25.12.0.tar.xz", + "hash": "sha256-Wj+IVOdAlLFhzR1ih0WxdUW1qcQcst/hHHROUkv7PJ4=" }, "zanshin": { - "version": "25.08.3", - "url": "mirror://kde/stable/release-service/25.08.3/src/zanshin-25.08.3.tar.xz", - "hash": "sha256-3A0QGC8qE1f+8jlbXo79rsTsTl9hZVEKNRKDjAspbYE=" + "version": "25.12.0", + "url": "mirror://kde/stable/release-service/25.12.0/src/zanshin-25.12.0.tar.xz", + "hash": "sha256-1Hn+ZRqMs2PCopa6hdGLu31AnGjPPTiQry0p/9KlW/E=" } } \ No newline at end of file