Merge staging-next into staging

authored by

nixpkgs-ci[bot] and committed by
GitHub
cd0486dc 0d133d4a

+1240 -295
+2
nixos/doc/manual/release-notes/rl-2511.section.md
··· 48 48 49 49 [dwl](https://codeberg.org/dwl/dwl), a compact, hackable compositor for Wayland based on wlroots. Available as [programs.dwl](#opt-programs.dwl.enable). 50 50 51 + - [mautrix-discord](https://github.com/mautrix/discord), a Matrix-Discord puppeting/relay bridge. Available as [services.mautrix-discord](#opt-services.mautrix-discord.enable). 52 + 51 53 ## Backward Incompatibilities {#sec-release-25.11-incompatibilities} 52 54 53 55 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
+1
nixos/modules/module-list.nix
··· 767 767 ./services/matrix/lk-jwt-service.nix 768 768 ./services/matrix/matrix-alertmanager.nix 769 769 ./services/matrix/maubot.nix 770 + ./services/matrix/mautrix-discord.nix 770 771 ./services/matrix/mautrix-meta.nix 771 772 ./services/matrix/mautrix-signal.nix 772 773 ./services/matrix/mautrix-telegram.nix
+4 -1
nixos/modules/programs/yazi.nix
··· 118 118 }; 119 119 120 120 meta = { 121 - maintainers = with lib.maintainers; [ linsui ]; 121 + maintainers = with lib.maintainers; [ 122 + linsui 123 + ryan4yin 124 + ]; 122 125 }; 123 126 }
+538
nixos/modules/services/matrix/mautrix-discord.nix
··· 1 + { 2 + lib, 3 + config, 4 + pkgs, 5 + ... 6 + }: 7 + let 8 + cfg = config.services.mautrix-discord; 9 + dataDir = cfg.dataDir; 10 + format = pkgs.formats.yaml { }; 11 + 12 + registrationFile = "${dataDir}/discord-registration.yaml"; 13 + 14 + settingsFile = "${dataDir}/config.yaml"; 15 + settingsFileUnformatted = format.generate "discord-config-unsubstituted.yaml" cfg.settings; 16 + in 17 + { 18 + options = { 19 + services.mautrix-discord = { 20 + enable = lib.mkEnableOption "Mautrix-Discord, a Matrix-Discord puppeting/relay-bot bridge"; 21 + 22 + package = lib.mkOption { 23 + type = lib.types.package; 24 + default = pkgs.mautrix-discord; 25 + defaultText = lib.literalExpression "pkgs.mautrix-discord"; 26 + description = '' 27 + The mautrix-discord package to use. 28 + ''; 29 + }; 30 + 31 + settings = lib.mkOption { 32 + type = lib.types.submodule { 33 + freeformType = format.type; 34 + 35 + config = { 36 + _module.args = { inherit cfg lib; }; 37 + }; 38 + 39 + options = { 40 + homeserver = lib.mkOption { 41 + type = lib.types.attrs; 42 + default = { 43 + software = "standard"; 44 + status_endpoint = null; 45 + message_send_checkpoint_endpoint = null; 46 + async_media = false; 47 + websocket = false; 48 + ping_interval_seconds = 0; 49 + }; 50 + description = '' 51 + fullDataDiration. 52 + See [example-config.yaml](https://github.com/mautrix/discord/blob/main/example-config.yaml) 53 + for more information. 54 + ''; 55 + }; 56 + 57 + appservice = lib.mkOption { 58 + type = lib.types.attrs; 59 + default = { 60 + address = "http://localhost:8009"; 61 + port = 8009; 62 + id = "discord"; 63 + bot = { 64 + username = "discordbot"; 65 + displayname = "Discord bridge bot"; 66 + avatar = "mxc://maunium.net/nIdEykemnwdisvHbpxflpDlC"; 67 + }; 68 + as_token = "generate"; 69 + hs_token = "generate"; 70 + database = { 71 + type = "sqlite3"; 72 + uri = "file:/var/lib/mautrix-discord/mautrix-discord.db?_txlock=immediate"; 73 + }; 74 + }; 75 + defaultText = lib.literalExpression '' 76 + { 77 + address = "http://localhost:8009"; 78 + port = 8009; 79 + id = "discord"; 80 + bot = { 81 + username = "discordbot"; 82 + displayname = "Discord bridge bot"; 83 + avatar = "mxc://maunium.net/nIdEykemnwdisvHbpxflpDlC"; 84 + }; 85 + as_token = "generate"; 86 + hs_token = "generate"; 87 + database = { 88 + type = "sqlite3"; 89 + uri = "file:''${config.services.mautrix-discord.dataDir}/mautrix-discord.db?_txlock=immediate"; 90 + }; 91 + } 92 + ''; 93 + description = '' 94 + Appservice configuration. 95 + See [example-config.yaml](https://github.com/mautrix/discord/blob/main/example-config.yaml) 96 + for more information. 97 + ''; 98 + }; 99 + 100 + bridge = lib.mkOption { 101 + type = lib.types.attrs; 102 + default = { 103 + username_template = "discord_{{.}}"; 104 + displayname_template = "{{or .GlobalName .Username}}{{if .Bot}} (bot){{end}}"; 105 + channel_name_template = "{{if or (eq .Type 3) (eq .Type 4)}}{{.Name}}{{else}}#{{.Name}}{{end}}"; 106 + guild_name_template = "{{.Name}}"; 107 + private_chat_portal_meta = "default"; 108 + public_address = null; 109 + avatar_proxy_key = "generate"; 110 + portal_message_buffer = 128; 111 + startup_private_channel_create_limit = 5; 112 + delivery_receipts = false; 113 + message_status_events = false; 114 + message_error_notices = true; 115 + restricted_rooms = true; 116 + autojoin_thread_on_open = true; 117 + embed_fields_as_tables = true; 118 + mute_channels_on_create = false; 119 + sync_direct_chat_list = false; 120 + resend_bridge_info = false; 121 + custom_emoji_reactions = true; 122 + delete_portal_on_channel_delete = false; 123 + delete_guild_on_leave = true; 124 + federate_rooms = true; 125 + prefix_webhook_messages = false; 126 + enable_webhook_avatars = true; 127 + use_discord_cdn_upload = true; 128 + cache_media = "unencrypted"; 129 + direct_media = { 130 + enabled = false; 131 + server_name = "discord-media.example.com"; 132 + allow_proxy = true; 133 + server_key = "generate"; 134 + }; 135 + animated_sticker = { 136 + target = "webp"; 137 + args = { 138 + width = 320; 139 + height = 320; 140 + fps = 25; 141 + }; 142 + }; 143 + command_prefix = "!discord"; 144 + management_room_text = { 145 + welcome = "Hello, I'm a Discord bridge bot."; 146 + welcome_connected = "Use `help` for help."; 147 + welcome_unconnected = "Use `help` for help or `login` to log in."; 148 + additional_help = ""; 149 + }; 150 + backfill = { 151 + forward_limits = { 152 + initial = { 153 + dm = 0; 154 + channel = 0; 155 + thread = 0; 156 + }; 157 + missed = { 158 + dm = 0; 159 + channel = 0; 160 + thread = 0; 161 + }; 162 + max_guild_members = -1; 163 + }; 164 + }; 165 + encryption = { 166 + allow = false; 167 + default = false; 168 + appservice = false; 169 + msc4190 = false; 170 + require = false; 171 + allow_key_sharing = false; 172 + plaintext_mentions = false; 173 + delete_keys = { 174 + delete_outbound_on_ack = false; 175 + dont_store_outbound = false; 176 + ratchet_on_decrypt = false; 177 + delete_fully_used_on_decrypt = false; 178 + delete_prev_on_new_session = false; 179 + delete_on_device_delete = false; 180 + periodically_delete_expired = false; 181 + delete_outdated_inbound = false; 182 + }; 183 + verification_levels = { 184 + receive = "unverified"; 185 + send = "unverified"; 186 + share = "cross-signed-tofu"; 187 + }; 188 + rotation = { 189 + enable_custom = false; 190 + milliseconds = 604800000; 191 + messages = 100; 192 + disable_device_change_key_rotation = false; 193 + }; 194 + }; 195 + provisioning = { 196 + prefix = "/_matrix/provision"; 197 + shared_secret = "generate"; 198 + debug_endpoints = false; 199 + }; 200 + permissions = { 201 + "*" = "relay"; 202 + # "example.com" = "user"; 203 + # "@admin:example.com": "admin"; 204 + }; 205 + }; 206 + description = '' 207 + Bridge configuration. 208 + See [example-config.yaml](https://github.com/mautrix/discord/blob/main/example-config.yaml) 209 + for more information. 210 + ''; 211 + }; 212 + }; 213 + }; 214 + default = { }; 215 + example = lib.literalExpression '' 216 + { 217 + homeserver = { 218 + address = "http://localhost:8008"; 219 + domain = "public-domain.tld"; 220 + }; 221 + 222 + appservice.public = { 223 + prefix = "/public"; 224 + external = "https://public-appservice-address/public"; 225 + }; 226 + 227 + bridge.permissions = { 228 + "example.com" = "full"; 229 + "@admin:example.com" = "admin"; 230 + }; 231 + } 232 + ''; 233 + description = '' 234 + {file}`config.yaml` configuration as a Nix attribute set. 235 + Configuration options should match those described in 236 + [example-config.yaml](https://github.com/mautrix/discord/blob/main/example-config.yaml). 237 + ''; 238 + }; 239 + 240 + registerToSynapse = lib.mkOption { 241 + type = lib.types.bool; 242 + default = config.services.matrix-synapse.enable; 243 + defaultText = lib.literalExpression "config.services.matrix-synapse.enable"; 244 + description = '' 245 + Whether to add the bridge's app service registration file to 246 + `services.matrix-synapse.settings.app_service_config_files`. 247 + ''; 248 + }; 249 + 250 + dataDir = lib.mkOption { 251 + type = lib.types.path; 252 + default = "/var/lib/mautrix-discord"; 253 + defaultText = "/var/lib/mautrix-discord"; 254 + description = '' 255 + Directory to store the bridge's configuration and database files. 256 + This directory will be created if it does not exist. 257 + ''; 258 + }; 259 + 260 + # TODO: Get upstream to add an environment File option. Refer to https://github.com/NixOS/nixpkgs/pull/404871#issuecomment-2895663652 and https://github.com/mautrix/discord/issues/187 261 + environmentFile = lib.mkOption { 262 + type = lib.types.nullOr lib.types.path; 263 + default = null; 264 + description = '' 265 + File containing environment variables to substitute when copying the configuration 266 + out of Nix store to the `services.mautrix-discord.dataDir`. 267 + Can be used for storing the secrets without making them available in the Nix store. 268 + For example, you can set `services.mautrix-discord.settings.appservice.as_token = "$MAUTRIX_DISCORD_APPSERVICE_AS_TOKEN"` 269 + and then specify `MAUTRIX_DISCORD_APPSERVICE_AS_TOKEN="{token}"` in the environment file. 270 + This value will get substituted into the configuration file as a token. 271 + ''; 272 + }; 273 + 274 + serviceUnit = lib.mkOption { 275 + type = lib.types.str; 276 + readOnly = true; 277 + default = "mautrix-discord.service"; 278 + description = '' 279 + The systemd unit (a service or a target) for other services to depend on if they 280 + need to be started after matrix-synapse. 281 + This option is useful as the actual parent unit for all matrix-synapse processes 282 + changes when configuring workers. 283 + ''; 284 + }; 285 + 286 + registrationServiceUnit = lib.mkOption { 287 + type = lib.types.str; 288 + readOnly = true; 289 + default = "mautrix-discord-registration.service"; 290 + description = '' 291 + The registration service that generates the registration file. 292 + Systemd unit (a service or a target) for other services to depend on if they 293 + need to be started after mautrix-discord registration service. 294 + This option is useful as the actual parent unit for all matrix-synapse processes 295 + changes when configuring workers. 296 + ''; 297 + }; 298 + 299 + serviceDependencies = lib.mkOption { 300 + type = lib.types.listOf lib.types.str; 301 + default = 302 + [ cfg.registrationServiceUnit ] 303 + ++ (lib.lists.optional config.services.matrix-synapse.enable config.services.matrix-synapse.serviceUnit) 304 + ++ (lib.lists.optional config.services.matrix-conduit.enable "matrix-conduit.service") 305 + ++ (lib.lists.optional config.services.dendrite.enable "dendrite.service"); 306 + 307 + defaultText = '' 308 + [ cfg.registrationServiceUnit ] ++ 309 + (lib.lists.optional config.services.matrix-synapse.enable config.services.matrix-synapse.serviceUnit) ++ 310 + (lib.lists.optional config.services.matrix-conduit.enable "matrix-conduit.service") ++ 311 + (lib.lists.optional config.services.dendrite.enable "dendrite.service"); 312 + ''; 313 + description = '' 314 + List of Systemd services to require and wait for when starting the application service. 315 + ''; 316 + }; 317 + }; 318 + }; 319 + config = lib.mkIf cfg.enable { 320 + assertions = [ 321 + { 322 + assertion = 323 + cfg.settings.homeserver.domain or "" != "" && cfg.settings.homeserver.address or "" != ""; 324 + message = '' 325 + The options with information about the homeserver: 326 + `services.mautrix-discord.settings.homeserver.domain` and 327 + `services.mautrix-discord.settings.homeserver.address` have to be set. 328 + ''; 329 + } 330 + { 331 + assertion = cfg.settings.bridge.permissions or { } != { }; 332 + message = '' 333 + The option `services.mautrix-discord.settings.bridge.permissions` has to be set. 334 + ''; 335 + } 336 + { 337 + assertion = cfg.settings.appservice.id != ""; 338 + message = '' 339 + The option `services.mautrix-discord.settings.appservice.id` has to be set. 340 + ''; 341 + } 342 + { 343 + assertion = cfg.settings.appservice.bot.username != ""; 344 + message = '' 345 + The option `services.mautrix-discord.settings.appservice.bot.username` has to be set. 346 + ''; 347 + } 348 + ]; 349 + 350 + users.users.mautrix-discord = { 351 + isSystemUser = true; 352 + group = "mautrix-discord"; 353 + extraGroups = [ "mautrix-discord-registration" ]; 354 + home = dataDir; 355 + description = "Mautrix-Discord bridge user"; 356 + }; 357 + 358 + users.groups.mautrix-discord = { }; 359 + users.groups.mautrix-discord-registration = { 360 + members = lib.lists.optional config.services.matrix-synapse.enable "matrix-synapse"; 361 + }; 362 + 363 + services.matrix-synapse = lib.mkIf cfg.registerToSynapse { 364 + settings.app_service_config_files = [ registrationFile ]; 365 + }; 366 + 367 + systemd.tmpfiles.rules = [ 368 + "d ${cfg.dataDir} 770 mautrix-discord mautrix-discord -" 369 + ]; 370 + 371 + systemd.services = { 372 + matrix-synapse = lib.mkIf cfg.registerToSynapse { 373 + serviceConfig.SupplementaryGroups = [ "mautrix-discord-registration" ]; 374 + # Make synapse depend on the registration service when auto-registering 375 + wants = [ "mautrix-discord-registration.service" ]; 376 + after = [ "mautrix-discord-registration.service" ]; 377 + }; 378 + 379 + mautrix-discord-registration = { 380 + description = "Mautrix-Discord registration generation service"; 381 + 382 + wantedBy = lib.mkIf cfg.registerToSynapse [ "multi-user.target" ]; 383 + before = lib.mkIf cfg.registerToSynapse [ "matrix-synapse.service" ]; 384 + 385 + path = [ 386 + pkgs.yq 387 + pkgs.envsubst 388 + cfg.package 389 + ]; 390 + 391 + script = '' 392 + # substitute the settings file by environment variables 393 + # in this case read from EnvironmentFile 394 + rm -f '${settingsFile}' 395 + old_umask=$(umask) 396 + umask 0177 397 + envsubst \ 398 + -o '${settingsFile}' \ 399 + -i '${settingsFileUnformatted}' 400 + config_has_tokens=$(yq '.appservice | has("as_token") and has("hs_token")' '${settingsFile}') 401 + registration_already_exists=$([[ -f '${registrationFile}' ]] && echo "true" || echo "false") 402 + echo "There are tokens in the config: $config_has_tokens" 403 + echo "Registration already existed: $registration_already_exists" 404 + # tokens not configured from config/environment file, and registration file 405 + # is already generated, override tokens in config to make sure they are not lost 406 + if [[ $config_has_tokens == "false" && $registration_already_exists == "true" ]]; then 407 + echo "Copying as_token, hs_token from registration into configuration" 408 + yq -sY '.[0].appservice.as_token = .[1].as_token 409 + | .[0].appservice.hs_token = .[1].hs_token 410 + | .[0]' '${settingsFile}' '${registrationFile}' \ 411 + > '${settingsFile}.tmp' 412 + mv '${settingsFile}.tmp' '${settingsFile}' 413 + fi 414 + # make sure --generate-registration does not affect config.yaml 415 + cp '${settingsFile}' '${settingsFile}.tmp' 416 + echo "Generating registration file" 417 + mautrix-discord \ 418 + --generate-registration \ 419 + --config='${settingsFile}.tmp' \ 420 + --registration='${registrationFile}' 421 + rm '${settingsFile}.tmp' 422 + # no tokens configured, and new were just generated by generate registration for first time 423 + if [[ $config_has_tokens == "false" && $registration_already_exists == "false" ]]; then 424 + echo "Copying newly generated as_token, hs_token from registration into configuration" 425 + yq -sY '.[0].appservice.as_token = .[1].as_token 426 + | .[0].appservice.hs_token = .[1].hs_token 427 + | .[0]' '${settingsFile}' '${registrationFile}' \ 428 + > '${settingsFile}.tmp' 429 + mv '${settingsFile}.tmp' '${settingsFile}' 430 + fi 431 + # make sure --generate-registration does not affect config.yaml 432 + cp '${settingsFile}' '${settingsFile}.tmp' 433 + echo "Generating registration file" 434 + mautrix-discord \ 435 + --generate-registration \ 436 + --config='${settingsFile}.tmp' \ 437 + --registration='${registrationFile}' 438 + rm '${settingsFile}.tmp' 439 + # no tokens configured, and new were just generated by generate registration for first time 440 + if [[ $config_has_tokens == "false" && $registration_already_exists == "false" ]]; then 441 + echo "Copying newly generated as_token, hs_token from registration into configuration" 442 + yq -sY '.[0].appservice.as_token = .[1].as_token 443 + | .[0].appservice.hs_token = .[1].hs_token 444 + | .[0]' '${settingsFile}' '${registrationFile}' \ 445 + > '${settingsFile}.tmp' 446 + mv '${settingsFile}.tmp' '${settingsFile}' 447 + fi 448 + # Make sure correct tokens are in the registration file 449 + if [[ $config_has_tokens == "true" || $registration_already_exists == "true" ]]; then 450 + echo "Copying as_token, hs_token from configuration to the registration file" 451 + yq -sY '.[1].as_token = .[0].appservice.as_token 452 + | .[1].hs_token = .[0].appservice.hs_token 453 + | .[1]' '${settingsFile}' '${registrationFile}' \ 454 + > '${registrationFile}.tmp' 455 + mv '${registrationFile}.tmp' '${registrationFile}' 456 + fi 457 + umask $old_umask 458 + chown :mautrix-discord-registration '${registrationFile}' 459 + chmod 640 '${registrationFile}' 460 + ''; 461 + 462 + serviceConfig = { 463 + Type = "oneshot"; 464 + RemainAfterExit = true; 465 + UMask = 27; 466 + 467 + User = "mautrix-discord"; 468 + Group = "mautrix-discord"; 469 + 470 + SystemCallFilter = [ "@system-service" ]; 471 + 472 + ProtectSystem = "strict"; 473 + ProtectHome = true; 474 + 475 + ReadWritePaths = [ dataDir ]; 476 + StateDirectory = "mautrix-discord"; 477 + EnvironmentFile = cfg.environmentFile; 478 + }; 479 + 480 + restartTriggers = [ settingsFileUnformatted ]; 481 + }; 482 + 483 + mautrix-discord = { 484 + description = "Mautrix-Discord, a Matrix-Discord puppeting/relaybot bridge"; 485 + 486 + wantedBy = [ "multi-user.target" ]; 487 + wants = [ "network-online.target" ] ++ cfg.serviceDependencies; 488 + after = [ "network-online.target" ] ++ cfg.serviceDependencies; 489 + path = [ 490 + pkgs.lottieconverter 491 + pkgs.ffmpeg-headless 492 + ]; 493 + 494 + serviceConfig = { 495 + Type = "simple"; 496 + User = "mautrix-discord"; 497 + Group = "mautrix-discord"; 498 + PrivateUsers = true; 499 + Restart = "on-failure"; 500 + RestartSec = 30; 501 + WorkingDirectory = dataDir; 502 + ExecStart = '' 503 + ${lib.getExe cfg.package} \ 504 + --config='${settingsFile}' 505 + ''; 506 + EnvironmentFile = cfg.environmentFile; 507 + 508 + ProtectSystem = "strict"; 509 + ProtectHome = true; 510 + ProtectKernelTunables = true; 511 + ProtectKernelModules = true; 512 + ProtectControlGroups = true; 513 + PrivateDevices = true; 514 + PrivateTmp = true; 515 + RestrictSUIDSGID = true; 516 + RestrictRealtime = true; 517 + LockPersonality = true; 518 + ProtectKernelLogs = true; 519 + ProtectHostname = true; 520 + ProtectClock = true; 521 + 522 + SystemCallArchitectures = "native"; 523 + SystemCallErrorNumber = "EPERM"; 524 + SystemCallFilter = "@system-service"; 525 + ReadWritePaths = [ cfg.dataDir ]; 526 + }; 527 + 528 + restartTriggers = [ settingsFileUnformatted ]; 529 + }; 530 + }; 531 + 532 + meta = { 533 + maintainers = with lib.maintainers; [ 534 + mistyttm 535 + ]; 536 + }; 537 + }; 538 + }
+5 -5
nixos/modules/services/security/opensnitch.nix
··· 13 13 file = pkgs.writeText "rule" (builtins.toJSON cfg); 14 14 } 15 15 ); 16 - 17 16 in 18 17 { 19 18 options = { 20 19 services.opensnitch = { 21 20 enable = lib.mkEnableOption "Opensnitch application firewall"; 21 + package = lib.mkPackageOption pkgs "opensnitch" { }; 22 22 23 23 rules = lib.mkOption { 24 24 default = { }; ··· 192 192 services.opensnitch.settings = lib.mapAttrs (_: v: lib.mkDefault v) ( 193 193 builtins.fromJSON ( 194 194 builtins.unsafeDiscardStringContext ( 195 - builtins.readFile "${pkgs.opensnitch}/etc/opensnitchd/default-config.json" 195 + builtins.readFile "${cfg.package}/etc/opensnitchd/default-config.json" 196 196 ) 197 197 ) 198 198 ); 199 199 200 200 systemd = { 201 - packages = [ pkgs.opensnitch ]; 201 + packages = [ cfg.package ]; 202 202 services.opensnitchd = { 203 203 wantedBy = [ "multi-user.target" ]; 204 204 serviceConfig = { ··· 210 210 in 211 211 [ 212 212 "" 213 - "${pkgs.opensnitch}/bin/opensnitchd --config-file ${format.generate "default-config.json" preparedSettings}" 213 + "${cfg.package}/bin/opensnitchd --config-file ${format.generate "default-config.json" preparedSettings}" 214 214 ]; 215 215 }; 216 216 preStart = lib.mkIf (cfg.rules != { }) ( ··· 245 245 }; 246 246 tmpfiles.rules = [ 247 247 "d ${cfg.settings.Rules.Path} 0750 root root - -" 248 - "L+ /etc/opensnitchd/system-fw.json - - - - ${pkgs.opensnitch}/etc/opensnitchd/system-fw.json" 248 + "L+ /etc/opensnitchd/system-fw.json - - - - ${cfg.package}/etc/opensnitchd/system-fw.json" 249 249 ]; 250 250 }; 251 251
+1
nixos/modules/services/system/nix-daemon.nix
··· 230 230 IOSchedulingPriority = cfg.daemonIOSchedPriority; 231 231 LimitNOFILE = 1048576; 232 232 Delegate = "yes"; 233 + DelegateSubgroup = "supervisor"; 233 234 }; 234 235 235 236 restartTriggers = [ config.environment.etc."nix/nix.conf".source ];
+4 -1
nixos/modules/services/web-servers/minio.nix
··· 18 18 ''; 19 19 in 20 20 { 21 - meta.maintainers = [ maintainers.bachp ]; 21 + meta.maintainers = with maintainers; [ 22 + bachp 23 + ryan4yin 24 + ]; 22 25 23 26 options.services.minio = { 24 27 enable = mkEnableOption "Minio Object Storage";
+1
nixos/tests/all-tests.nix
··· 810 810 matrix-continuwuity = runTest ./matrix/continuwuity.nix; 811 811 matrix-synapse = runTest ./matrix/synapse.nix; 812 812 matrix-synapse-workers = runTest ./matrix/synapse-workers.nix; 813 + mautrix-discord = runTest ./matrix/mautrix-discord.nix; 813 814 mattermost = handleTest ./mattermost { }; 814 815 mautrix-meta-postgres = runTest ./matrix/mautrix-meta-postgres.nix; 815 816 mautrix-meta-sqlite = runTest ./matrix/mautrix-meta-sqlite.nix;
+1
nixos/tests/croc.nix
··· 13 13 maintainers = [ 14 14 equirosa 15 15 SuperSandro2000 16 + ryan4yin 16 17 ]; 17 18 }; 18 19
+5 -1
nixos/tests/installer.nix
··· 722 722 libxml2.bin 723 723 libxslt.bin 724 724 nixos-artwork.wallpapers.simple-dark-gray-bottom 725 + (nixos-rebuild-ng.override { 726 + withNgSuffix = false; 727 + withReexec = true; 728 + }) 725 729 ntp 726 730 perlPackages.ConfigIniFiles 727 731 perlPackages.FileSlurp ··· 1110 1114 simple = makeInstallerTest "simple" ( 1111 1115 simple-test-config 1112 1116 // { 1113 - passthru.override = args: makeInstallerTest "simple" simple-test-config // args; 1117 + passthru.override = args: makeInstallerTest "simple" (simple-test-config // args); 1114 1118 } 1115 1119 ); 1116 1120
+168
nixos/tests/matrix/mautrix-discord.nix
··· 1 + { pkgs, ... }: 2 + let 3 + homeserverUrl = "http://homeserver:8008"; 4 + in 5 + { 6 + name = "mautrix-discord"; 7 + meta.maintainers = pkgs.mautrix-discord.meta.maintainers; 8 + 9 + nodes = { 10 + homeserver = 11 + { pkgs, ... }: 12 + { 13 + services.matrix-synapse = { 14 + enable = true; 15 + settings = { 16 + server_name = "homeserver"; 17 + database.name = "sqlite3"; 18 + 19 + enable_registration = true; 20 + # don't use this in production, always use some form of verification 21 + enable_registration_without_verification = true; 22 + 23 + listeners = [ 24 + { 25 + bind_addresses = [ "0.0.0.0" ]; 26 + port = 8008; 27 + resources = [ 28 + { 29 + "compress" = true; 30 + "names" = [ "client" ]; 31 + } 32 + { 33 + "compress" = false; 34 + "names" = [ "federation" ]; 35 + } 36 + ]; 37 + tls = false; 38 + type = "http"; 39 + } 40 + ]; 41 + }; 42 + }; 43 + 44 + services.mautrix-discord = { 45 + enable = true; 46 + registerToSynapse = true; # Enable automatic registration 47 + 48 + settings = { 49 + homeserver = { 50 + address = homeserverUrl; 51 + domain = "homeserver"; 52 + }; 53 + 54 + appservice = { 55 + address = "http://homeserver:8009"; 56 + port = 8009; 57 + id = "discord"; 58 + bot = { 59 + username = "discordbot"; 60 + displayname = "Discord bridge bot"; 61 + avatar = "mxc://maunium.net/nIdEykemnwdisvHbpxflpDlC"; 62 + }; 63 + # These will be generated automatically 64 + as_token = "generate"; 65 + hs_token = "generate"; 66 + 67 + database = { 68 + type = "sqlite3"; 69 + uri = "file:/var/lib/mautrix-discord/mautrix-discord.db?_txlock=immediate"; 70 + }; 71 + }; 72 + 73 + bridge = { 74 + permissions = { 75 + "@alice:homeserver" = "user"; 76 + "*" = "relay"; 77 + }; 78 + }; 79 + }; 80 + }; 81 + 82 + networking.firewall.allowedTCPPorts = [ 83 + 8008 84 + 8009 85 + ]; 86 + }; 87 + 88 + client = 89 + { pkgs, ... }: 90 + { 91 + environment.systemPackages = [ 92 + (pkgs.writers.writePython3Bin "do_test" 93 + { 94 + libraries = [ pkgs.python3Packages.matrix-nio ]; 95 + flakeIgnore = [ 96 + "F401" # imported but unused 97 + "E302" # expected 2 blank lines 98 + ]; 99 + } 100 + '' 101 + import sys 102 + import asyncio 103 + from nio import AsyncClient, RoomMessageNotice, RoomCreateResponse 104 + 105 + 106 + async def message_callback(matrix: AsyncClient, msg: str, _r, e): 107 + print(f"Received message: {msg}") 108 + 109 + 110 + async def run(homeserver: str): 111 + client = AsyncClient(homeserver, "@test:homeserver") 112 + 113 + # Register a new user 114 + response = await client.register("test", "password123") 115 + if not response.transport_response.ok: 116 + print(f"Failed to register: {response}") 117 + return False 118 + 119 + # Login 120 + response = await client.login("password123") 121 + if not response.transport_response.ok: 122 + print(f"Failed to login: {response}") 123 + return False 124 + 125 + print("Successfully logged in and basic functionality works") 126 + await client.close() 127 + return True 128 + 129 + 130 + if __name__ == "__main__": 131 + if len(sys.argv) != 2: 132 + print("Usage: do_test <homeserver_url>") 133 + sys.exit(1) 134 + 135 + homeserver_url = sys.argv[1] 136 + success = asyncio.run(run(homeserver_url)) 137 + sys.exit(0 if success else 1) 138 + '' 139 + ) 140 + ]; 141 + }; 142 + }; 143 + 144 + testScript = '' 145 + start_all() 146 + 147 + with subtest("wait for homeserver and bridge to be ready"): 148 + homeserver.wait_for_unit("matrix-synapse.service") 149 + homeserver.wait_for_open_port(8008) 150 + homeserver.wait_for_unit("mautrix-discord.service") 151 + homeserver.wait_for_open_port(8009) 152 + 153 + with subtest("verify registration file was created"): 154 + homeserver.wait_until_succeeds("test -f /var/lib/mautrix-discord/discord-registration.yaml") 155 + homeserver.succeed("ls -la /var/lib/mautrix-discord/") 156 + 157 + with subtest("verify bridge connects to homeserver"): 158 + # Give the bridge a moment to connect 159 + homeserver.sleep(5) 160 + 161 + # Check that the bridge is running and listening 162 + homeserver.succeed("systemctl is-active mautrix-discord.service") 163 + homeserver.succeed("netstat -tlnp | grep :8009") 164 + 165 + with subtest("test basic matrix functionality"): 166 + client.succeed("do_test ${homeserverUrl} >&2") 167 + ''; 168 + }
+4 -1
nixos/tests/minio.nix
··· 48 48 { 49 49 name = "minio"; 50 50 meta = with pkgs.lib.maintainers; { 51 - maintainers = [ bachp ]; 51 + maintainers = [ 52 + bachp 53 + ryan4yin 54 + ]; 52 55 }; 53 56 54 57 nodes = {
+2 -2
pkgs/applications/audio/qpwgraph/default.nix
··· 14 14 15 15 stdenv.mkDerivation (finalAttrs: { 16 16 pname = "qpwgraph"; 17 - version = "0.9.3"; 17 + version = "0.9.4"; 18 18 19 19 src = fetchFromGitLab { 20 20 domain = "gitlab.freedesktop.org"; 21 21 owner = "rncbc"; 22 22 repo = "qpwgraph"; 23 23 rev = "v${finalAttrs.version}"; 24 - sha256 = "sha256-6aJymZjuUMezEbOosveXyiY7y+XgGk3E8Dd4tb8UyrU="; 24 + sha256 = "sha256-VvOdorj+CpFSI+iyVeMR0enXGO5mLPE8KiaHGuG/KDQ="; 25 25 }; 26 26 27 27 nativeBuildInputs = [
+3 -3
pkgs/applications/emulators/libretro/cores/flycast.nix
··· 8 8 }: 9 9 mkLibretroCore { 10 10 core = "flycast"; 11 - version = "0-unstable-2025-06-06"; 11 + version = "0-unstable-2025-06-20"; 12 12 13 13 src = fetchFromGitHub { 14 14 owner = "flyinghead"; 15 15 repo = "flycast"; 16 - rev = "8f033723a1b3437c8e3c8b42a92331eebe53ed0b"; 17 - hash = "sha256-RrWBN8RDAS7RcIOouU3x2Pv/RKrshrmmmCZCeXQ6upk="; 16 + rev = "449d256995de36de0629dd1b97f4d67a0e50c92e"; 17 + hash = "sha256-7+Dn7+AUnd3+eEKRMuahaxiEMWTT1uUEP2y0ZgIs81Q="; 18 18 fetchSubmodules = true; 19 19 }; 20 20
+2 -2
pkgs/applications/video/obs-studio/plugins/droidcam-obs/default.nix
··· 12 12 }: 13 13 stdenv.mkDerivation (finalAttrs: { 14 14 pname = "droidcam-obs"; 15 - version = "2.3.4"; 15 + version = "2.4.0"; 16 16 17 17 src = fetchFromGitHub { 18 18 owner = "dev47apps"; 19 19 repo = "droidcam-obs-plugin"; 20 20 tag = finalAttrs.version; 21 - sha256 = "sha256-KWMLhddK561xA+EjvoG4tXRW4xoLil31JcTTfppblmA="; 21 + sha256 = "sha256-rA+EMtAeM2LSUqtiYJt0hHZ85aZ+5bvVUUjIG2LC3pc="; 22 22 }; 23 23 24 24 preBuild = ''
+2 -2
pkgs/by-name/al/albert/package.nix
··· 15 15 16 16 stdenv.mkDerivation (finalAttrs: { 17 17 pname = "albert"; 18 - version = "0.28.0"; 18 + version = "0.28.2"; 19 19 20 20 src = fetchFromGitHub { 21 21 owner = "albertlauncher"; 22 22 repo = "albert"; 23 23 tag = "v${finalAttrs.version}"; 24 - hash = "sha256-ciqCNQD5S7qv9Ph6AgUpFB5Sphv6Eb1LR3Ap3bTd1EE="; 24 + hash = "sha256-FYl/S7+KoQ3kgUQX0hiv8B+AbTbyfmo1GX130G09bZ8="; 25 25 fetchSubmodules = true; 26 26 }; 27 27
+4 -1
pkgs/by-name/al/aliyun-cli/package.nix
··· 41 41 homepage = "https://github.com/aliyun/aliyun-cli"; 42 42 changelog = "https://github.com/aliyun/aliyun-cli/releases/tag/v${version}"; 43 43 license = lib.licenses.asl20; 44 - maintainers = with lib.maintainers; [ ornxka ]; 44 + maintainers = with lib.maintainers; [ 45 + ornxka 46 + ryan4yin 47 + ]; 45 48 mainProgram = "aliyun"; 46 49 }; 47 50 }
+4 -1
pkgs/by-name/aw/aws-iam-authenticator/package.nix
··· 37 37 mainProgram = "aws-iam-authenticator"; 38 38 changelog = "https://github.com/kubernetes-sigs/aws-iam-authenticator/releases/tag/v${version}"; 39 39 license = lib.licenses.asl20; 40 - maintainers = with lib.maintainers; [ srhb ]; 40 + maintainers = with lib.maintainers; [ 41 + srhb 42 + ryan4yin 43 + ]; 41 44 }; 42 45 }
+1
pkgs/by-name/bt/btop/package.nix
··· 60 60 maintainers = with lib.maintainers; [ 61 61 khaneliman 62 62 rmcgibbo 63 + ryan4yin 63 64 ]; 64 65 mainProgram = "btop"; 65 66 };
+1
pkgs/by-name/ca/caddy/package.nix
··· 91 91 Br1ght0ne 92 92 stepbrobd 93 93 techknowlogick 94 + ryan4yin 94 95 ]; 95 96 }; 96 97 }
+1
pkgs/by-name/ci/cilium-cli/package.nix
··· 56 56 bryanasdev000 57 57 humancalico 58 58 qjoly 59 + ryan4yin 59 60 ]; 60 61 mainProgram = "cilium"; 61 62 };
+1
pkgs/by-name/cr/croc/package.nix
··· 47 47 maintainers = with maintainers; [ 48 48 equirosa 49 49 SuperSandro2000 50 + ryan4yin 50 51 ]; 51 52 mainProgram = "croc"; 52 53 };
+2 -2
pkgs/by-name/dd/ddnet/package.nix
··· 32 32 33 33 stdenv.mkDerivation rec { 34 34 pname = "ddnet"; 35 - version = "19.2.1"; 35 + version = "19.3"; 36 36 37 37 src = fetchFromGitHub { 38 38 owner = "ddnet"; 39 39 repo = "ddnet"; 40 40 tag = version; 41 - hash = "sha256-0G0rVqkrIKjSGW7TF218TqakzJxiCzDipLGDzJvgdRg="; 41 + hash = "sha256-8mCkzZPdLFGIlOkMiNDOxiQeEHa+k0BX9PMIPbjmW5k="; 42 42 }; 43 43 44 44 cargoDeps = rustPlatform.fetchCargoVendor {
+4 -1
pkgs/by-name/di/dive/package.nix
··· 52 52 homepage = "https://github.com/wagoodman/dive"; 53 53 changelog = "https://github.com/wagoodman/dive/releases/tag/v${version}"; 54 54 license = lib.licenses.mit; 55 - maintainers = with lib.maintainers; [ SuperSandro2000 ]; 55 + maintainers = with lib.maintainers; [ 56 + SuperSandro2000 57 + ryan4yin 58 + ]; 56 59 }; 57 60 }
+1
pkgs/by-name/ek/eksctl/package.nix
··· 51 51 maintainers = with lib.maintainers; [ 52 52 xrelkd 53 53 Chili-Man 54 + ryan4yin 54 55 ]; 55 56 mainProgram = "eksctl"; 56 57 };
+2 -2
pkgs/by-name/ex/exploitdb/package.nix
··· 7 7 8 8 stdenv.mkDerivation rec { 9 9 pname = "exploitdb"; 10 - version = "2025-06-14"; 10 + version = "2025-06-21"; 11 11 12 12 src = fetchFromGitLab { 13 13 owner = "exploit-database"; 14 14 repo = "exploitdb"; 15 15 rev = "refs/tags/${version}"; 16 - hash = "sha256-znJZK7EhLFg2ImxWqEfvt7Em+M8lAly+oPzrmaGznRU="; 16 + hash = "sha256-6mXku+SW6xmSYxd40Ilis8H/2Ozm6eUecLQHy1xeKtM="; 17 17 }; 18 18 19 19 nativeBuildInputs = [ makeWrapper ];
+1
pkgs/by-name/fl/fluxcd/package.nix
··· 80 80 maintainers = with lib.maintainers; [ 81 81 bryanasdev000 82 82 jlesquembre 83 + ryan4yin 83 84 ]; 84 85 mainProgram = "flux"; 85 86 };
+4 -1
pkgs/by-name/go/go-containerregistry/package.nix
··· 69 69 homepage = "https://github.com/google/go-containerregistry"; 70 70 license = licenses.asl20; 71 71 mainProgram = "crane"; 72 - maintainers = with maintainers; [ yurrriq ]; 72 + maintainers = with maintainers; [ 73 + yurrriq 74 + ryan4yin 75 + ]; 73 76 }; 74 77 }
+1
pkgs/by-name/gr/grafana-loki/package.nix
··· 82 82 globin 83 83 mmahut 84 84 emilylange 85 + ryan4yin 85 86 ]; 86 87 }; 87 88 }
+11
pkgs/by-name/hu/hurl/package.nix
··· 2 2 lib, 3 3 rustPlatform, 4 4 fetchFromGitHub, 5 + fetchpatch2, 5 6 pkg-config, 6 7 installShellFiles, 7 8 libxml2, ··· 23 24 24 25 useFetchCargoVendor = true; 25 26 cargoHash = "sha256-WyNActmsHpr5fgN1a3X9ApEACWFVJMVoi4fBvKhGgZ0="; 27 + 28 + patches = [ 29 + # Fix build with libxml-2.14, remove after next hurl release 30 + # https://github.com/Orange-OpenSource/hurl/pull/3977 31 + (fetchpatch2 { 32 + name = "fix-libxml_2_14"; 33 + url = "https://github.com/Orange-OpenSource/hurl/commit/7c7b410c3017aeab0dfc74a6144e4cb8e186a10a.patch?full_index=1"; 34 + hash = "sha256-XjnCRIMwzfgUMIhm6pQ90pzA+c2U0EuhyvLUZDsI2GI="; 35 + }) 36 + ]; 26 37 27 38 nativeBuildInputs = [ 28 39 pkg-config
+4 -1
pkgs/by-name/hy/hyprshot/package.nix
··· 52 52 homepage = "https://github.com/Gustash/hyprshot"; 53 53 description = "Hyprshot is an utility to easily take screenshots in Hyprland using your mouse"; 54 54 license = licenses.gpl3Only; 55 - maintainers = with maintainers; [ Cryolitia ]; 55 + maintainers = with maintainers; [ 56 + Cryolitia 57 + ryan4yin 58 + ]; 56 59 mainProgram = "hyprshot"; 57 60 platforms = hyprland.meta.platforms; 58 61 };
+1
pkgs/by-name/is/istioctl/package.nix
··· 57 57 maintainers = with maintainers; [ 58 58 bryanasdev000 59 59 veehaitch 60 + ryan4yin 60 61 ]; 61 62 }; 62 63 }
+1
pkgs/by-name/ju/just/package.nix
··· 116 116 maintainers = with lib.maintainers; [ 117 117 xrelkd 118 118 jk 119 + ryan4yin 119 120 ]; 120 121 mainProgram = "just"; 121 122 };
+1
pkgs/by-name/k9/k9s/package.nix
··· 76 76 bryanasdev000 77 77 qjoly 78 78 devusb 79 + ryan4yin 79 80 ]; 80 81 }; 81 82 }
+11
pkgs/by-name/li/libvncserver/package.nix
··· 44 44 (lib.cmakeBool "WITH_SYSTEMD" withSystemd) 45 45 (lib.cmakeBool "BUILD_SHARED_LIBS" enableShared) 46 46 (lib.cmakeBool "WITH_EXAMPLES" buildExamples) 47 + (lib.cmakeBool "WITH_TESTS" finalAttrs.doCheck) 47 48 ]; 49 + 50 + # This test checks if using the **installed** headers works. 51 + # As it doesn't set the include paths correctly, and we have nixpkgs-review to check if 52 + # packages continue to build, patching it would serve no purpose, so we can just remove the test entirely. 53 + postPatch = '' 54 + substituteInPlace CMakeLists.txt \ 55 + --replace-fail 'add_test(NAME includetest COMMAND' '# add_test(NAME includetest COMMAND' 56 + ''; 48 57 49 58 buildInputs = 50 59 [ ··· 60 69 propagatedBuildInputs = [ 61 70 zlib 62 71 ]; 72 + 73 + doCheck = enableShared; 63 74 64 75 meta = with lib; { 65 76 description = "VNC server library";
+7 -6
pkgs/by-name/li/linux-firmware/package.nix
··· 1 1 { 2 2 stdenvNoCC, 3 - fetchzip, 3 + fetchFromGitLab, 4 4 lib, 5 5 python3, 6 6 rdfind, ··· 22 22 in 23 23 stdenvNoCC.mkDerivation rec { 24 24 pname = "linux-firmware"; 25 - version = "20250613"; 25 + version = "20250621"; # not a real tag, but the current stable tag breaks some AMD GPUs entirely 26 26 27 - src = fetchzip { 28 - url = "https://cdn.kernel.org/pub/linux/kernel/firmware/linux-firmware-${version}.tar.xz"; 29 - hash = "sha256-qygwQNl99oeHiCksaPqxxeH+H7hqRjbqN++Hf9X+gzs="; 27 + src = fetchFromGitLab { 28 + owner = "kernel-firmware"; 29 + repo = "linux-firmware"; 30 + rev = "49c833a10ad96a61a218d28028aed20aeeac124c"; 31 + hash = "sha256-Pz/k/ol0NRIHv/AdridwoBPDLsd0rfDAj31Paq4mPpU="; 30 32 }; 31 33 32 34 postUnpack = '' ··· 57 59 maintainers = with maintainers; [ fpletz ]; 58 60 priority = 6; # give precedence to kernel firmware 59 61 }; 60 - passthru.updateScript = ./update.sh; 61 62 }
-10
pkgs/by-name/li/linux-firmware/update.sh
··· 1 - #!/usr/bin/env nix-shell 2 - #!nix-shell -i bash -p git -p common-updater-scripts 3 - 4 - set -eu -o pipefail 5 - 6 - repo="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git" 7 - 8 - revision="$(git ls-remote --refs --tags --sort refname "$repo" | tail -n1 | cut -f2 | cut -d '/' -f3)" 9 - 10 - update-source-version linux-firmware "$revision"
+4 -4
pkgs/by-name/lu/lux-cli/package.nix
··· 17 17 rustPlatform.buildRustPackage rec { 18 18 pname = "lux-cli"; 19 19 20 - version = "0.7.1"; 20 + version = "0.7.3"; 21 21 22 22 src = fetchFromGitHub { 23 23 owner = "nvim-neorocks"; 24 24 repo = "lux"; 25 - tag = "v0.7.1"; 26 - hash = "sha256-x5Bs/Zq0gfJAC3VFKG1hCg95IZ0qpgf8kBfFccP5HgU="; 25 + tag = "v0.7.3"; 26 + hash = "sha256-d/WznA6BRduQJOFlE+ll1H7XtGXs9BPrhAKST09Lh0s="; 27 27 }; 28 28 29 29 buildAndTestSubdir = "lux-cli"; 30 30 useFetchCargoVendor = true; 31 - cargoHash = "sha256-lGQToe1nM6tjcoxYy94wiGMevm3/B7MD6NOIX61GpMA="; 31 + cargoHash = "sha256-B1Fu5KWLL/XuUvIROPh0huLw4/OHe/c+LC0/gRFpBnc="; 32 32 33 33 nativeInstallCheckInputs = [ 34 34 versionCheckHook
+4 -1
pkgs/by-name/mi/minio-client/package.nix
··· 36 36 meta = with lib; { 37 37 homepage = "https://github.com/minio/mc"; 38 38 description = "Replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage"; 39 - maintainers = with maintainers; [ bachp ]; 39 + maintainers = with maintainers; [ 40 + bachp 41 + ryan4yin 42 + ]; 40 43 mainProgram = "mc"; 41 44 license = licenses.asl20; 42 45 };
+1
pkgs/by-name/nc/ncdu/package.nix
··· 52 52 pSub 53 53 rodrgz 54 54 defelo 55 + ryan4yin 55 56 ]; 56 57 inherit (zig_0_14.meta) platforms; 57 58 mainProgram = "ncdu";
+8
pkgs/by-name/ni/niri/package.nix
··· 36 36 hash = "sha256-z4viQZLgC2bIJ3VrzQnR+q2F3gAOEQpU1H5xHtX/2fs="; 37 37 }; 38 38 39 + outputs = [ 40 + "out" 41 + "doc" 42 + ]; 43 + 39 44 postPatch = '' 40 45 patchShebangs resources/niri-session 41 46 substituteInPlace resources/niri.service \ ··· 78 83 79 84 postInstall = 80 85 '' 86 + install -Dm0644 README.md resources/default-config.kdl -t $doc/share/doc/niri 87 + mv wiki $doc/share/doc/niri/wiki 88 + 81 89 install -Dm0644 resources/niri.desktop -t $out/share/wayland-sessions 82 90 '' 83 91 + lib.optionalString withDbus ''
+2 -2
pkgs/by-name/no/notepad-next/package.nix
··· 7 7 8 8 stdenv.mkDerivation (finalAttrs: { 9 9 pname = "notepad-next"; 10 - version = "0.11"; 10 + version = "0.12"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "dail8859"; 14 14 repo = "NotepadNext"; 15 15 tag = "v${finalAttrs.version}"; 16 - hash = "sha256-qpJXby355iSyAGzj19jJJFmFkKeBRgOGod2rrZJqU9Y="; 16 + hash = "sha256-YD4tIPh5iJpbcDMZk334k2AV9jTVWCSGP34Mj2x0cJ0="; 17 17 # External dependencies - https://github.com/dail8859/NotepadNext/issues/135 18 18 fetchSubmodules = true; 19 19 };
+5 -5
pkgs/by-name/op/openmm/package.nix
··· 18 18 addDriverRunpath, 19 19 }: 20 20 21 - stdenv.mkDerivation rec { 21 + stdenv.mkDerivation (finalAttrs: { 22 22 pname = "openmm"; 23 - version = "8.2.0"; 23 + version = "8.3.0"; 24 24 25 25 src = fetchFromGitHub { 26 26 owner = "openmm"; 27 27 repo = "openmm"; 28 - rev = version; 29 - hash = "sha256-p0zjr8ONqGK4Vbnhljt16DeyeZ0bR1kE+YdiIlw/1L0="; 28 + rev = finalAttrs.version; 29 + hash = "sha256-wXk5s6OascFWjHs4WpxGU9TcX0gSiOZ3BRusIH1NjpI="; 30 30 }; 31 31 32 32 # "This test is stochastic and may occasionally fail". It does. ··· 128 128 platforms = platforms.linux; 129 129 maintainers = [ maintainers.sheepforce ]; 130 130 }; 131 - } 131 + })
+66
pkgs/by-name/pa/papirus-icon-theme/package.nix
··· 1 + { 2 + lib, 3 + stdenvNoCC, 4 + fetchFromGitHub, 5 + gtk3, 6 + kdePackages, 7 + hicolor-icon-theme, 8 + papirus-folders, 9 + color ? null, 10 + gitUpdater, 11 + }: 12 + 13 + stdenvNoCC.mkDerivation (finalAttrs: { 14 + pname = "papirus-icon-theme"; 15 + version = "20250501"; 16 + 17 + src = fetchFromGitHub { 18 + owner = "PapirusDevelopmentTeam"; 19 + repo = "papirus-icon-theme"; 20 + tag = finalAttrs.version; 21 + hash = "sha256-KbUjHmNzaj7XKj+MOsPM6zh2JI+HfwuXvItUVAZAClk="; 22 + }; 23 + 24 + nativeBuildInputs = [ 25 + gtk3 26 + papirus-folders 27 + ]; 28 + 29 + propagatedBuildInputs = [ 30 + kdePackages.breeze-icons 31 + hicolor-icon-theme 32 + ]; 33 + 34 + # breeze-icons propagates qtbase 35 + dontWrapQtApps = true; 36 + 37 + dontDropIconThemeCache = true; 38 + 39 + installPhase = '' 40 + runHook preInstall 41 + 42 + mkdir -p $out/share/icons 43 + mv Papirus* $out/share/icons 44 + 45 + for theme in $out/share/icons/*; do 46 + ${lib.optionalString (color != null) "papirus-folders -t $theme -o -C ${color}"} 47 + gtk-update-icon-cache --force $theme 48 + done 49 + 50 + runHook postInstall 51 + ''; 52 + 53 + passthru.updateScript = gitUpdater { }; 54 + 55 + meta = { 56 + description = "Pixel perfect icon theme for Linux"; 57 + homepage = "https://github.com/PapirusDevelopmentTeam/papirus-icon-theme"; 58 + license = lib.licenses.gpl3Only; 59 + # darwin gives hash mismatch in source, probably because of file names differing only in case 60 + platforms = lib.platforms.linux; 61 + maintainers = with lib.maintainers; [ 62 + romildo 63 + moni 64 + ]; 65 + }; 66 + })
+2 -2
pkgs/by-name/pa/passt/package.nix
··· 11 11 12 12 stdenv.mkDerivation (finalAttrs: { 13 13 pname = "passt"; 14 - version = "2025_05_03.587980c"; 14 + version = "2025_06_11.0293c6f"; 15 15 16 16 src = fetchurl { 17 17 url = "https://passt.top/passt/snapshot/passt-${finalAttrs.version}.tar.gz"; 18 - hash = "sha256-ussvShWxhR6ScBYiCJG0edrqS+W+74DSlsDRS1GCByA="; 18 + hash = "sha256-ovkFQlUa5gLYwCpNjwfGVJ055aDKCXIZou/t4pf6q5o="; 19 19 }; 20 20 21 21 separateDebugInfo = true;
+2 -2
pkgs/by-name/pm/pmbootstrap/package.nix
··· 15 15 16 16 python3Packages.buildPythonApplication rec { 17 17 pname = "pmbootstrap"; 18 - version = "3.4.2"; 18 + version = "3.5.0"; 19 19 pyproject = true; 20 20 21 21 src = fetchFromGitLab { 22 22 owner = "postmarketOS"; 23 23 repo = "pmbootstrap"; 24 24 tag = version; 25 - hash = "sha256-5N8yAd/1gSzHP2wXpqZb+LpylQ/LYspJ+YaY2YaWCSs="; 25 + hash = "sha256-wdJl7DrSm1Jht0KEqZ9+qjqlkE+Y6oBdzEHTCgIGJ84="; 26 26 domain = "gitlab.postmarketos.org"; 27 27 }; 28 28
+8 -6
pkgs/by-name/ps/psudohash/package.nix
··· 1 1 { 2 2 lib, 3 - stdenv, 4 3 fetchFromGitHub, 5 - python3, 4 + python3Packages, 6 5 }: 7 6 8 - stdenv.mkDerivation rec { 7 + python3Packages.buildPythonApplication rec { 9 8 pname = "psudohash"; 10 - version = "1.0.2"; 9 + version = "1.1.0"; 10 + pyproject = false; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "t3l3machus"; 14 14 repo = "psudohash"; 15 15 tag = "v${version}"; 16 - hash = "sha256-l/Rp9405Wf6vh85PFrRTtTLJE7GPODowseNqEw42J18="; 16 + hash = "sha256-I/vHQraGmIWmx/v+szL5ZQJpjkSBaCpEx0r4Mc6FgKA="; 17 17 }; 18 18 19 - buildInputs = [ python3 ]; 19 + dependencies = with python3Packages; [ 20 + tqdm 21 + ]; 20 22 21 23 installPhase = '' 22 24 runHook preInstall
+1
pkgs/by-name/qq/qq/package.nix
··· 54 54 bot-wxt1221 55 55 fee1-dead 56 56 prince213 57 + ryan4yin 57 58 ]; 58 59 }; 59 60 in
+4 -4
pkgs/by-name/re/readarr/package.nix
··· 24 24 ."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); 25 25 hash = 26 26 { 27 - x64-linux_hash = "sha256-3Oir/a5TwaCraYierE6pPPZWYObNOD6+V7olw/HmckM="; 28 - arm64-linux_hash = "sha256-B/Or5hdqMxqQEmBULG+Z1JqlL9Kdk5M6SBdjhbfMBZA="; 29 - x64-osx_hash = "sha256-FYfX50pomjlB/oGVeIHqYvZ00S1SSgBaVB7R8150rvY="; 27 + x64-linux_hash = "sha256-hCqxH6xPLhA+V7reqsHi1EY2sU3HJ6ESMJiiWXrcUUE="; 28 + arm64-linux_hash = "sha256-7NpH32tkEOYVyfwIBq9LCKAo0IQ1IehYfKi+qiBzf8o="; 29 + x64-osx_hash = "sha256-ypzOWXxtzvOTgTmU7pQ1cS+FcyNCOo5R2Z4l5Mk+4wA="; 30 30 } 31 31 ."${arch}-${os}_hash"; 32 32 in 33 33 stdenv.mkDerivation rec { 34 34 pname = "readarr"; 35 - version = "0.4.17.2801"; 35 + version = "0.4.18.2805"; 36 36 37 37 src = fetchurl { 38 38 url = "https://github.com/Readarr/Readarr/releases/download/v${version}/Readarr.develop.${version}.${os}-core-${arch}.tar.gz";
+4 -3
pkgs/by-name/re/restic/package.nix
··· 65 65 description = "Backup program that is fast, efficient and secure"; 66 66 platforms = platforms.linux ++ platforms.darwin; 67 67 license = licenses.bsd2; 68 - maintainers = [ 69 - maintainers.mbrgm 70 - maintainers.dotlambda 68 + maintainers = with maintainers; [ 69 + mbrgm 70 + dotlambda 71 + ryan4yin 71 72 ]; 72 73 mainProgram = "restic"; 73 74 };
+1 -1
pkgs/by-name/ry/ryubing/package.nix
··· 96 96 "Ryujinx" 97 97 ]; 98 98 99 - makeWrapperArgs = [ 99 + makeWrapperArgs = lib.optional stdenv.hostPlatform.isLinux [ 100 100 # Without this Ryujinx fails to start on wayland. See https://github.com/Ryujinx/Ryujinx/issues/2714 101 101 "--set SDL_VIDEODRIVER x11" 102 102 ];
+4 -1
pkgs/by-name/sa/sad/package.nix
··· 32 32 homepage = "https://github.com/ms-jpq/sad"; 33 33 changelog = "https://github.com/ms-jpq/sad/releases/tag/v${version}"; 34 34 license = lib.licenses.mit; 35 - maintainers = with lib.maintainers; [ fab ]; 35 + maintainers = with lib.maintainers; [ 36 + fab 37 + ryan4yin 38 + ]; 36 39 mainProgram = "sad"; 37 40 }; 38 41 }
+4 -1
pkgs/by-name/sf/sftpgo/package.nix
··· 63 63 agpl3Only 64 64 unfreeRedistributable 65 65 ]; # Software is AGPLv3, web UI is unfree 66 - maintainers = with lib.maintainers; [ thenonameguy ]; 66 + maintainers = with lib.maintainers; [ 67 + thenonameguy 68 + ryan4yin 69 + ]; 67 70 mainProgram = "sftpgo"; 68 71 }; 69 72 }
+3 -3
pkgs/by-name/sh/shopware-cli/package.nix
··· 10 10 11 11 buildGoModule rec { 12 12 pname = "shopware-cli"; 13 - version = "0.6.8"; 13 + version = "0.6.10"; 14 14 src = fetchFromGitHub { 15 15 repo = "shopware-cli"; 16 16 owner = "FriendsOfShopware"; 17 17 tag = version; 18 - hash = "sha256-vLy3HWHfsUaf80iuBUYYAP87wJNke8/h48r3Db18kFQ="; 18 + hash = "sha256-kzf54rPac/OYmmqEAoQPWFjtzMj0FOGOMoxdX2zlX8s="; 19 19 }; 20 20 21 21 nativeBuildInputs = [ ··· 27 27 dart-sass 28 28 ]; 29 29 30 - vendorHash = "sha256-pidR7b4k3PG9FVHJ5oWz2nYtCZwE8SlBjQqqvyFPNzM="; 30 + vendorHash = "sha256-gw0O9cLRkCo8FMlUSgVsL7c5xSSP7sAcwL/WUAy6MiI="; 31 31 32 32 postInstall = '' 33 33 installShellCompletion --cmd shopware-cli \
+4
pkgs/by-name/si/signal-desktop-bin/generic.nix
··· 51 51 libpulseaudio, 52 52 xdg-utils, 53 53 wayland, 54 + 55 + # command line arguments which are always set e.g "--password-store=kwallet6" 56 + commandLineArgs, 54 57 }: 55 58 56 59 { ··· 255 258 gappsWrapperArgs+=( 256 259 --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" 257 260 --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} 261 + --add-flags ${lib.escapeShellArg commandLineArgs} 258 262 ) 259 263 260 264 # Fix the desktop link
+7 -3
pkgs/by-name/si/signal-desktop-bin/package.nix
··· 1 - { stdenv, callPackage }: 1 + { 2 + stdenv, 3 + callPackage, 4 + commandLineArgs ? "", 5 + }: 2 6 if stdenv.hostPlatform.system == "aarch64-linux" then 3 - callPackage ./signal-desktop-aarch64.nix { } 7 + callPackage ./signal-desktop-aarch64.nix { inherit commandLineArgs; } 4 8 else if stdenv.hostPlatform.isDarwin then 5 9 callPackage ./signal-desktop-darwin.nix { } 6 10 else 7 - callPackage ./signal-desktop.nix { } 11 + callPackage ./signal-desktop.nix { inherit commandLineArgs; }
+5 -5
pkgs/by-name/si/signal-desktop-bin/signal-desktop-aarch64.nix
··· 1 - { callPackage }: 2 - callPackage ./generic.nix { } { 1 + { callPackage, commandLineArgs }: 2 + callPackage ./generic.nix { inherit commandLineArgs; } { 3 3 pname = "signal-desktop-bin"; 4 - version = "7.55.0"; 4 + version = "7.58.0"; 5 5 6 6 libdir = "usr/lib64/signal-desktop"; 7 7 bindir = "usr/bin"; ··· 10 10 bsdtar -xf $downloadedFile -C "$out" 11 11 ''; 12 12 13 - url = "https://download.copr.fedorainfracloud.org/results/useidel/signal-desktop/fedora-42-aarch64/09073923-signal-desktop/signal-desktop-7.55.0-1.fc42.aarch64.rpm"; 14 - hash = "sha256-rRt2hYyj6kyN0RCupy+hpRJuzq0aaUzP2tsVr2Qd5V4="; 13 + url = "https://download.copr.fedorainfracloud.org/results/useidel/signal-desktop/fedora-42-aarch64/09183198-signal-desktop/signal-desktop-7.58.0-1.fc42.aarch64.rpm"; 14 + hash = "sha256-0Ix+1SdvmKLVbtGzbjUupvVzdWAJFNQ6sSAIt+T9fHo="; 15 15 }
+2 -2
pkgs/by-name/si/signal-desktop-bin/signal-desktop-darwin.nix
··· 6 6 }: 7 7 stdenv.mkDerivation (finalAttrs: { 8 8 pname = "signal-desktop-bin"; 9 - version = "7.55.0"; 9 + version = "7.58.0"; 10 10 11 11 src = fetchurl { 12 12 url = "https://updates.signal.org/desktop/signal-desktop-mac-universal-${finalAttrs.version}.dmg"; 13 - hash = "sha256-9PD4SDTACjKSBqIdv3CFtKhRKA5ugbQe2AcWA4hFoqs="; 13 + hash = "sha256-yOPYG9bCSCIE1L8RgEXCy6pJUHONBh9SpPY4WDfZEho="; 14 14 }; 15 15 sourceRoot = "."; 16 16
+4 -4
pkgs/by-name/si/signal-desktop-bin/signal-desktop.nix
··· 1 - { callPackage }: 2 - callPackage ./generic.nix { } rec { 1 + { callPackage, commandLineArgs }: 2 + callPackage ./generic.nix { inherit commandLineArgs; } rec { 3 3 pname = "signal-desktop-bin"; 4 - version = "7.55.0"; 4 + version = "7.58.0"; 5 5 6 6 libdir = "opt/Signal"; 7 7 bindir = libdir; 8 8 extractPkg = "dpkg-deb -x $downloadedFile $out"; 9 9 10 10 url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb"; 11 - hash = "sha256-uc623M/GiIfED1mTFnXUggnFdvDBmngrsdTIlq6QxqM="; 11 + hash = "sha256-zZ63AE+qb0lrGtGUtU4FV6pHDO2DUV2vknz3a4+f4aA="; 12 12 }
+1
pkgs/by-name/sk/skopeo/package.nix
··· 92 92 maintainers = with maintainers; [ 93 93 lewo 94 94 developer-guy 95 + ryan4yin 95 96 ]; 96 97 teams = [ teams.podman ]; 97 98 license = licenses.asl20;
+1 -1
pkgs/by-name/so/socat/package.nix
··· 57 57 homepage = "http://www.dest-unreach.org/socat/"; 58 58 platforms = platforms.unix; 59 59 license = with licenses; [ gpl2Only ]; 60 - maintainers = [ ]; 60 + maintainers = with maintainers; [ ryan4yin ]; 61 61 mainProgram = "socat"; 62 62 }; 63 63 }
+3 -3
pkgs/by-name/sp/spytrap-adb/package.nix
··· 7 7 8 8 rustPlatform.buildRustPackage rec { 9 9 pname = "spytrap-adb"; 10 - version = "0.3.4"; 10 + version = "0.3.5"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "spytrap-org"; 14 14 repo = "spytrap-adb"; 15 15 tag = "v${version}"; 16 - hash = "sha256-Yqa+JmqYCmy9ehxmRebPNlU5U2RPHtnHDHiqSg8EvAo="; 16 + hash = "sha256-t5MNgsuH5FVEjUP9FFxbjXs5BVim0ZyfNKUTQOjKpqg="; 17 17 }; 18 18 19 19 useFetchCargoVendor = true; 20 - cargoHash = "sha256-hXDxo0b2nJbPyo99Qc39LM0P41SDbyfadHLIRrbQdj0="; 20 + cargoHash = "sha256-VoUzAHTxJLeyi60ftuOkI6PAuLUsSsQSUjk9rcGz86A="; 21 21 22 22 env.SPYTRAP_ADB_BINARY = lib.getExe' android-tools "adb"; 23 23
+1
pkgs/by-name/ss/ssm-session-manager-plugin/package.nix
··· 74 74 maintainers = with lib.maintainers; [ 75 75 amarshall 76 76 mbaillie 77 + ryan4yin 77 78 ]; 78 79 }; 79 80 }
+2 -2
pkgs/by-name/su/sudo/package.nix
··· 17 17 pname = "sudo"; 18 18 # be sure to check if nixos/modules/security/sudo.nix needs updating when bumping 19 19 # e.g. links to man pages, value constraints etc. 20 - version = "1.9.16p2"; 20 + version = "1.9.17"; 21 21 22 22 __structuredAttrs = true; 23 23 24 24 src = fetchurl { 25 25 url = "https://www.sudo.ws/dist/sudo-${finalAttrs.version}.tar.gz"; 26 - hash = "sha256-l2qlbT47KnVZMweGQoit23SMnBNuJdlanMaZqvp3I5w="; 26 + hash = "sha256-PyEsadU01YIrSS0JmrsCpZP5HKmfWv3ly5vT4dza0Gk="; 27 27 }; 28 28 29 29 prePatch = ''
+4 -1
pkgs/by-name/sw/swaybg/package.nix
··· 60 60 ''; 61 61 license = licenses.mit; 62 62 mainProgram = "swaybg"; 63 - maintainers = with maintainers; [ primeos ]; 63 + maintainers = with maintainers; [ 64 + primeos 65 + ryan4yin 66 + ]; 64 67 platforms = platforms.linux; 65 68 }; 66 69 }
+3 -3
pkgs/by-name/sy/sydbox/package.nix
··· 12 12 13 13 rustPlatform.buildRustPackage (finalAttrs: { 14 14 pname = "sydbox"; 15 - version = "3.35.1"; 15 + version = "3.35.2"; 16 16 17 17 outputs = [ 18 18 "out" ··· 24 24 owner = "Sydbox"; 25 25 repo = "sydbox"; 26 26 tag = "v${finalAttrs.version}"; 27 - hash = "sha256-EfsL8UEZdWRYqQ5QymteUBxtabfrHxq3WU4MMqsXWAg="; 27 + hash = "sha256-n3mvzYXb965eUWNJ5iHezqqAZj6v05gj092osYZuk5s="; 28 28 }; 29 29 30 30 useFetchCargoVendor = true; 31 - cargoHash = "sha256-ckeOk4/fpJ9J8JV/NT0D/0jXUOt4ub+m+6ZBUpBEs08="; 31 + cargoHash = "sha256-D0lUkiARl0QL2OsojaJqsACn2fmN9x8Jp7mZzyRjyWY="; 32 32 33 33 nativeBuildInputs = [ 34 34 mandoc
+1
pkgs/by-name/ta/tailscale/package.nix
··· 224 224 jk 225 225 mfrw 226 226 pyrox0 227 + ryan4yin 227 228 ]; 228 229 }; 229 230 }
+2 -2
pkgs/by-name/tb/tbb_2021/package.nix
··· 9 9 10 10 stdenv.mkDerivation (finalAttrs: { 11 11 pname = "tbb"; 12 - version = "2021.13.0"; 12 + version = "2021.12.0"; 13 13 14 14 outputs = [ 15 15 "out" ··· 20 20 owner = "oneapi-src"; 21 21 repo = "oneTBB"; 22 22 tag = "v${finalAttrs.version}"; 23 - hash = "sha256-ZoUzY71SweVQ8/1k09MNSXiEqab6Ae+QTbxORnar9JU="; 23 + hash = "sha256-yG/Fs+3f9hNKzZ8le+W7+JDZk9hMzPsVAzbq0yTcUTc="; 24 24 }; 25 25 26 26 nativeBuildInputs = [
+1
pkgs/by-name/te/tealdeer/package.nix
··· 47 47 davidak 48 48 newam 49 49 mfrw 50 + ryan4yin 50 51 ]; 51 52 license = with licenses; [ 52 53 asl20
+1 -1
pkgs/by-name/te/terraformer/package.nix
··· 24 24 mainProgram = "terraformer"; 25 25 homepage = "https://github.com/GoogleCloudPlatform/terraformer"; 26 26 license = licenses.asl20; 27 - maintainers = [ ]; 27 + maintainers = with maintainers; [ ryan4yin ]; 28 28 }; 29 29 }
+4 -1
pkgs/by-name/v2/v2ray/package.nix
··· 70 70 description = "Platform for building proxies to bypass network restrictions"; 71 71 mainProgram = "v2ray"; 72 72 license = with lib.licenses; [ mit ]; 73 - maintainers = with lib.maintainers; [ servalcatty ]; 73 + maintainers = with lib.maintainers; [ 74 + servalcatty 75 + ryan4yin 76 + ]; 74 77 }; 75 78 }
+2 -2
pkgs/by-name/wa/waydroid/package.nix
··· 21 21 22 22 python3Packages.buildPythonApplication rec { 23 23 pname = "waydroid"; 24 - version = "1.5.1"; 24 + version = "1.5.2"; 25 25 format = "other"; 26 26 27 27 src = fetchFromGitHub { 28 28 owner = "waydroid"; 29 29 repo = "waydroid"; 30 30 tag = version; 31 - hash = "sha256-G/JQR1C4osbZDUQSqLu48C468W6f2SeNkogVEiGhnmA="; 31 + hash = "sha256-wDLnkHcVdHqjaR1Sfu+bhfZO2nfHadG3LgJtYJw6bsQ="; 32 32 }; 33 33 34 34 patches = [
+1
pkgs/by-name/ze/zellij/package.nix
··· 92 92 abbe 93 93 pyrox0 94 94 matthiasbeyer 95 + ryan4yin 95 96 ]; 96 97 mainProgram = "zellij"; 97 98 };
+1
pkgs/by-name/zo/zoxide/package.nix
··· 50 50 cole-h 51 51 SuperSandro2000 52 52 matthiasbeyer 53 + ryan4yin 53 54 ]; 54 55 mainProgram = "zoxide"; 55 56 };
-71
pkgs/data/icons/papirus-icon-theme/default.nix
··· 1 - { 2 - lib, 3 - stdenvNoCC, 4 - fetchFromGitHub, 5 - gtk3, 6 - breeze-icons, 7 - elementary-icon-theme, 8 - hicolor-icon-theme, 9 - papirus-folders, 10 - color ? null, 11 - withElementary ? false, 12 - gitUpdater, 13 - }: 14 - 15 - stdenvNoCC.mkDerivation rec { 16 - pname = "papirus-icon-theme"; 17 - version = "20250501"; 18 - 19 - src = fetchFromGitHub { 20 - owner = "PapirusDevelopmentTeam"; 21 - repo = pname; 22 - rev = version; 23 - hash = "sha256-KbUjHmNzaj7XKj+MOsPM6zh2JI+HfwuXvItUVAZAClk="; 24 - }; 25 - 26 - nativeBuildInputs = [ 27 - gtk3 28 - papirus-folders 29 - ]; 30 - 31 - propagatedBuildInputs = 32 - [ 33 - breeze-icons 34 - hicolor-icon-theme 35 - ] 36 - ++ lib.optional withElementary [ 37 - elementary-icon-theme 38 - ]; 39 - 40 - dontDropIconThemeCache = true; 41 - 42 - installPhase = '' 43 - runHook preInstall 44 - 45 - mkdir -p $out/share/icons 46 - mv ${lib.optionalString withElementary "{,e}"}Papirus* $out/share/icons 47 - 48 - for theme in $out/share/icons/*; do 49 - ${lib.optionalString ( 50 - color != null 51 - ) "${papirus-folders}/bin/papirus-folders -t $theme -o -C ${color}"} 52 - gtk-update-icon-cache --force $theme 53 - done 54 - 55 - runHook postInstall 56 - ''; 57 - 58 - passthru.updateScript = gitUpdater { }; 59 - 60 - meta = with lib; { 61 - description = "Pixel perfect icon theme for Linux"; 62 - homepage = "https://github.com/PapirusDevelopmentTeam/papirus-icon-theme"; 63 - license = licenses.gpl3Only; 64 - # darwin gives hash mismatch in source, probably because of file names differing only in case 65 - platforms = platforms.linux; 66 - maintainers = with maintainers; [ 67 - romildo 68 - moni 69 - ]; 70 - }; 71 - }
+21
pkgs/development/interpreters/perl/cross-fdopendir.patch
··· 1 + From f702c387e6940fab3801d7562a668b974a2b3a8f Mon Sep 17 00:00:00 2001 2 + From: Audrey Dutcher <audrey@rhelmot.io> 3 + Date: Fri, 30 May 2025 12:29:54 -0700 4 + Subject: [PATCH] add d_fdopendir configuration 5 + 6 + --- 7 + cnf/configure_func.sh | 1 + 8 + 1 file changed, 1 insertion(+) 9 + 10 + diff --git a/cnf/configure_func.sh b/cnf/configure_func.sh 11 + index 4c13e4c..b24fe03 100644 12 + --- a/cnf/configure_func.sh 13 + +++ b/cnf/configure_func.sh 14 + @@ -83,6 +83,7 @@ checkfunc d_fchmodat 'fchmodat' "0,NULL,0,0" 'unistd.h sys/stat.h' 15 + checkfunc d_fchown 'fchown' "0,0,0" 'unistd.h' 16 + checkfunc d_fcntl 'fcntl' "0,0" 'unistd.h fcntl.h' 17 + checkfunc d_fdclose 'fdclose' "NULL,NULL" 'stdio.h' 18 + +checkfunc d_fdopendir 'fdopendir' "0" 'dirent.h' 19 + checkfunc d_ffs 'ffs' "0" 'strings.h' 20 + checkfunc d_ffsl 'ffsl' "0" 'strings.h' 21 + checkfunc d_fgetpos 'fgetpos' "NULL, 0" 'stdio.h'
+7 -2
pkgs/development/interpreters/perl/interpreter.nix
··· 317 317 }; 318 318 } 319 319 // lib.optionalAttrs crossCompiling rec { 320 - crossVersion = "1.6"; 320 + crossVersion = "1.6.2"; 321 321 322 322 perl-cross-src = fetchFromGitHub { 323 323 name = "perl-cross-${crossVersion}"; 324 324 owner = "arsv"; 325 325 repo = "perl-cross"; 326 326 rev = crossVersion; 327 - sha256 = "sha256-TVDLxw8ctl64LSfLfB4/WLYlSTO31GssSzmdVfqkBmg="; 327 + hash = "sha256-mG9ny+eXGBL4K/rXqEUPSbar+4Mq4IaQrGRFIHIyAAw="; 328 328 }; 329 + patches = [ 330 + # fixes build failure due to missing d_fdopendir/HAS_FDOPENDIR configure option 331 + # https://github.com/arsv/perl-cross/pull/159 332 + ./cross-fdopendir.patch 333 + ]; 329 334 330 335 depsBuildBuild = [ 331 336 buildPackages.stdenv.cc
+6 -2
pkgs/development/libraries/flint/3.nix
··· 5 5 gmp, 6 6 mpfr, 7 7 ntl, 8 + windows, 8 9 autoconf, 9 10 automake, 10 11 gettext, ··· 13 14 blas, 14 15 lapack, 15 16 withBlas ? true, 16 - withNtl ? true, 17 + withNtl ? !ntl.meta.broken, 17 18 }: 18 19 19 20 assert ··· 49 50 ] 50 51 ++ lib.optionals withNtl [ 51 52 ntl 53 + ] 54 + ++ lib.optionals stdenv.hostPlatform.isMinGW [ 55 + windows.mingw_w64_pthreads 52 56 ]; 53 57 54 58 # We're not using autoreconfHook because flint's bootstrap ··· 79 83 license = licenses.lgpl3Plus; 80 84 maintainers = with maintainers; [ smasher164 ]; 81 85 teams = [ teams.sage ]; 82 - platforms = platforms.unix; 86 + platforms = platforms.all; 83 87 homepage = "https://www.flintlib.org/"; 84 88 downloadPage = "https://www.flintlib.org/downloads.html"; 85 89 };
+1 -1
pkgs/development/libraries/java/rhino/default.nix
··· 63 63 to provide scripting to end users. 64 64 ''; 65 65 66 - homepage = "http://www.mozilla.org/rhino/"; 66 + homepage = "https://rhino.github.io/"; 67 67 68 68 license = with licenses; [ 69 69 mpl11 # or
+2 -2
pkgs/development/libraries/mpich/default.nix
··· 32 32 33 33 stdenv.mkDerivation rec { 34 34 pname = "mpich"; 35 - version = "4.3.0"; 35 + version = "4.3.1"; 36 36 37 37 src = fetchurl { 38 38 url = "https://www.mpich.org/static/downloads/${version}/mpich-${version}.tar.gz"; 39 - hash = "sha256-XgQTKYStg8q5zFP3YHLSte9abSSwqf+QR6j/lhIbzGM="; 39 + hash = "sha256-rMEcsr3Glnjci7p0fCSigjPFhZb4HwN4W/K3u3oO99w="; 40 40 }; 41 41 42 42 patches = [
+3 -3
pkgs/development/python-modules/djangocms-alias/default.nix
··· 17 17 18 18 buildPythonPackage rec { 19 19 pname = "djangocms-alias"; 20 - version = "2.0.3"; 20 + version = "2.0.4"; 21 21 pyproject = true; 22 22 23 23 disabled = pythonOlder "3.9"; ··· 26 26 owner = "django-cms"; 27 27 repo = "djangocms-alias"; 28 28 tag = version; 29 - hash = "sha256-q5iNTnoPto7jgxF/46I0oA8NYFBbDafsRUFmKMFoQM4="; 29 + hash = "sha256-0lIhPgI+HbAKX9wEpZ/v40OHvN6WWK9ehFxIcpzdcq8="; 30 30 }; 31 31 32 32 build-system = [ setuptools ]; ··· 59 59 meta = { 60 60 description = "Lean enterprise content management powered by Django"; 61 61 homepage = "https://django-cms.org"; 62 - changelog = "https://github.com/django-cms/django-cms/releases/tag/${src.tag}"; 62 + changelog = "https://github.com/django-cms/djangocms-alias/releases/tag/${src.tag}"; 63 63 license = lib.licenses.bsd3; 64 64 maintainers = [ lib.maintainers.onny ]; 65 65 };
+9 -11
pkgs/development/python-modules/doc8/default.nix
··· 16 16 17 17 buildPythonPackage rec { 18 18 pname = "doc8"; 19 - version = "1.1.2"; 20 - format = "pyproject"; 19 + version = "2.0.0"; 20 + pyproject = true; 21 21 22 - disabled = pythonOlder "3.7"; 22 + disabled = pythonOlder "3.10"; 23 23 24 24 src = fetchPypi { 25 25 inherit pname version; 26 - hash = "sha256-EiXzAUThzJfjiNuvf+PpltKJdHOlOm2uJo3d4hw1S5g="; 26 + hash = "sha256-EmetMnWJcfvPmRRCQXo5Nce8nlJVDnNiLg5WulXqHUA="; 27 27 }; 28 28 29 - nativeBuildInputs = [ 29 + build-system = [ 30 30 setuptools-scm 31 31 wheel 32 32 ]; 33 33 34 34 buildInputs = [ pbr ]; 35 35 36 - propagatedBuildInputs = [ 36 + dependencies = [ 37 37 docutils 38 38 chardet 39 39 stevedore ··· 43 43 44 44 nativeCheckInputs = [ pytestCheckHook ]; 45 45 46 - pythonRelaxDeps = [ "docutils" ]; 47 - 48 46 pythonImportsCheck = [ "doc8" ]; 49 47 50 - meta = with lib; { 48 + meta = { 51 49 description = "Style checker for Sphinx (or other) RST documentation"; 52 50 mainProgram = "doc8"; 53 51 homepage = "https://github.com/pycqa/doc8"; 54 52 changelog = "https://github.com/PyCQA/doc8/releases/tag/v${version}"; 55 - license = licenses.asl20; 56 - maintainers = with maintainers; [ onny ]; 53 + license = lib.licenses.asl20; 54 + maintainers = with lib.maintainers; [ onny ]; 57 55 }; 58 56 }
+4 -9
pkgs/development/python-modules/junitparser/default.nix
··· 2 2 lib, 3 3 buildPythonPackage, 4 4 fetchFromGitHub, 5 - future, 6 5 glibcLocales, 7 6 lxml, 8 - unittestCheckHook, 7 + pytestCheckHook, 9 8 }: 10 9 11 10 buildPythonPackage rec { 12 11 pname = "junitparser"; 13 - version = "2.8.0"; 12 + version = "3.2.0"; 14 13 format = "setuptools"; 15 14 16 15 src = fetchFromGitHub { 17 16 owner = "weiwei"; 18 17 repo = "junitparser"; 19 18 rev = version; 20 - hash = "sha256-rhDP05GSWT4K6Z2ip8C9+e3WbvBJOwP0vctvANBs7cw="; 19 + hash = "sha256-efP9t5eto6bcjk33wpJmunLlPH7wUwAa6/OjjYG/fgM="; 21 20 }; 22 21 23 - propagatedBuildInputs = [ future ]; 24 - 25 22 nativeCheckInputs = [ 26 - unittestCheckHook 23 + pytestCheckHook 27 24 lxml 28 25 glibcLocales 29 26 ]; 30 - 31 - unittestFlagsArray = [ "-v" ]; 32 27 33 28 meta = with lib; { 34 29 description = "Manipulates JUnit/xUnit Result XML files";
+6 -3
pkgs/development/python-modules/litemapy/default.nix
··· 11 11 12 12 buildPythonPackage rec { 13 13 pname = "litemapy"; 14 - version = "0.10.0b0"; 14 + version = "0.11.0b0"; 15 15 pyproject = true; 16 16 build-system = [ setuptools ]; 17 17 ··· 19 19 owner = "SmylerMC"; 20 20 repo = "litemapy"; 21 21 rev = "v${version}"; 22 - hash = "sha256-mGRnrFfrg0VD9pXs0WOuiP6QnYyu0Jbv/bqCWtkOie0="; 22 + hash = "sha256-jqJYiggAs/JA+CJ35HzpsIQA/5p8PRFkbmPlwJvTI28="; 23 23 }; 24 24 25 25 propagatedBuildInputs = [ ··· 34 34 homepage = "https://github.com/SmylerMC/litemapy"; 35 35 changelog = "https://github.com/SmylerMC/litemapy/blob/${src.rev}/CHANGELOG.md"; 36 36 license = licenses.gpl3Only; 37 - maintainers = with maintainers; [ gdd ]; 37 + maintainers = with maintainers; [ 38 + gdd 39 + kuflierl 40 + ]; 38 41 }; 39 42 }
+6 -2
pkgs/development/python-modules/pdbfixer/default.nix
··· 11 11 12 12 buildPythonPackage rec { 13 13 pname = "pdbfixer"; 14 - version = "1.10"; 14 + version = "1.11"; 15 15 pyproject = true; 16 16 17 17 src = fetchFromGitHub { 18 18 owner = "openmm"; 19 19 repo = "pdbfixer"; 20 20 tag = "v${version}"; 21 - hash = "sha256-7bg/i7nhbBw/DCc7Rabt5pwUUPF27Iiy2dMQnV6GTiM="; 21 + hash = "sha256-Xk3m2w1p3Wu4g6qKGOH679wkKT0LKZLgGn/ARn219fQ="; 22 22 }; 23 23 24 24 nativeBuildInputs = [ ··· 48 48 "test_mutate_multiple_copies_of_chain_A" 49 49 "test_pdbid" 50 50 "test_url" 51 + "test_charge_and_solvate" 52 + "test_download_template" 53 + "test_nonstandard" 54 + "test_leaving_atoms" 51 55 ]; 52 56 53 57 pythonImportsCheck = [ "pdbfixer" ];
+5 -3
pkgs/development/python-modules/qtile-extras/default.nix
··· 10 10 pulseaudio, 11 11 pytest-asyncio, 12 12 pytest-lazy-fixture, 13 + pytest-rerunfailures, 13 14 pytestCheckHook, 14 15 python-dateutil, 15 16 qtile, ··· 20 21 21 22 buildPythonPackage rec { 22 23 pname = "qtile-extras"; 23 - version = "0.31.0"; 24 + version = "0.32.0"; 24 25 pyproject = true; 25 26 26 27 src = fetchFromGitHub { 27 28 owner = "elParaguayo"; 28 29 repo = "qtile-extras"; 29 30 tag = "v${version}"; 30 - hash = "sha256-87xdSw4JKQyb/jpfTUkFDjHvKgPKzu+rKLGeaAzP8NI="; 31 + hash = "sha256-NMbgSStXJV8fVtula1cyIwFlD8WrO8kBnOphDxbig04="; 31 32 }; 32 33 33 34 build-system = [ setuptools-scm ]; ··· 41 42 pulseaudio 42 43 pytest-asyncio 43 44 pytest-lazy-fixture 45 + pytest-rerunfailures 44 46 pytestCheckHook 45 47 python-dateutil 46 48 qtile ··· 87 89 meta = with lib; { 88 90 description = "Extra modules and widgets for the Qtile tiling window manager"; 89 91 homepage = "https://github.com/elParaguayo/qtile-extras"; 90 - changelog = "https://github.com/elParaguayo/qtile-extras/blob/${src.rev}/CHANGELOG"; 92 + changelog = "https://github.com/elParaguayo/qtile-extras/blob/${src.tag}/CHANGELOG"; 91 93 license = licenses.mit; 92 94 maintainers = with maintainers; [ arjan-s ]; 93 95 };
+2 -2
pkgs/development/python-modules/qtile/default.nix
··· 35 35 36 36 buildPythonPackage rec { 37 37 pname = "qtile"; 38 - version = "0.31.0"; 38 + version = "0.32.0"; 39 39 pyproject = true; 40 40 41 41 src = fetchFromGitHub { 42 42 owner = "qtile"; 43 43 repo = "qtile"; 44 44 tag = "v${version}"; 45 - hash = "sha256-aBVIkyR906+vSLDNxvkmWu6DBujZHErSi+aZPVMRuCI="; 45 + hash = "sha256-UF4gRmcevtH9WNA7g/pwcciJcDariXcMNpqya68mQ38="; 46 46 }; 47 47 48 48 patches = [
+37
pkgs/development/python-modules/standard-nntplib/default.nix
··· 1 + { 2 + buildPythonPackage, 3 + fetchFromGitHub, 4 + lib, 5 + pytestCheckHook, 6 + pythonOlder, 7 + setuptools, 8 + }: 9 + 10 + buildPythonPackage rec { 11 + pname = "standard-nntplib"; 12 + version = "3.13.0"; 13 + pyproject = true; 14 + 15 + disabled = pythonOlder "3.13"; 16 + 17 + src = fetchFromGitHub { 18 + owner = "youknowone"; 19 + repo = "python-deadlib"; 20 + tag = "v${version}"; 21 + hash = "sha256-J8c55f527QGcK8p/QKJBZeZV0y9DU0iM1RUFVkWh2Hc="; 22 + sparseCheckout = [ "nntplib" ]; 23 + }; 24 + 25 + build-system = [ setuptools ]; 26 + sourceRoot = "${src.name}/nntplib"; 27 + 28 + nativeCheckInputs = [ pytestCheckHook ]; 29 + pythonImportsCheck = [ "nntplib" ]; 30 + 31 + meta = { 32 + description = "Standard library nntplib redistribution"; 33 + homepage = "https://github.com/youknowone/python-deadlib"; 34 + license = lib.licenses.psfl; 35 + maintainers = [ lib.maintainers.qyliss ]; 36 + }; 37 + }
+1 -1
pkgs/development/python-modules/yargy/default.nix
··· 23 23 24 24 meta = with lib; { 25 25 description = "Rule-based facts extraction for Russian language"; 26 - homepage = "https://github.com/natasha/yargu"; 26 + homepage = "https://github.com/natasha/yargy"; 27 27 license = licenses.mit; 28 28 maintainers = with maintainers; [ npatsakula ]; 29 29 };
+54 -28
pkgs/kde/plasma/kinfocenter/0001-tool-paths.patch
··· 1 1 diff --git a/kcms/audio_information/kcm_audio_information.json b/kcms/audio_information/kcm_audio_information.json 2 - index d94ef1d0..13f1c377 100644 2 + index 7ece92ee..a4fb6664 100644 3 3 --- a/kcms/audio_information/kcm_audio_information.json 4 4 +++ b/kcms/audio_information/kcm_audio_information.json 5 - @@ -80,7 +80,7 @@ 5 + @@ -82,7 +82,7 @@ 6 6 "Name[zh_CN]": "音频", 7 7 "Name[zh_TW]": "音訊" 8 8 }, ··· 25 25 CommandOutputContext *outputContext() const 26 26 { 27 27 diff --git a/kcms/block_devices/kcm_block_devices.json b/kcms/block_devices/kcm_block_devices.json 28 - index a73e33ad..3a1ab4da 100644 28 + index f73cf5a5..b18ecbfb 100644 29 29 --- a/kcms/block_devices/kcm_block_devices.json 30 30 +++ b/kcms/block_devices/kcm_block_devices.json 31 - @@ -80,7 +80,7 @@ 31 + @@ -82,7 +82,7 @@ 32 32 "Name[zh_CN]": "块设备", 33 33 "Name[zh_TW]": "區塊裝置" 34 34 }, ··· 51 51 CommandOutputContext *outputContext() const 52 52 { 53 53 diff --git a/kcms/cpu/kcm_cpu.json b/kcms/cpu/kcm_cpu.json 54 - index a783b5bc..5866c4d2 100644 54 + index e8fb086e..c87b98f8 100644 55 55 --- a/kcms/cpu/kcm_cpu.json 56 56 +++ b/kcms/cpu/kcm_cpu.json 57 - @@ -102,7 +102,7 @@ 57 + @@ -104,7 +104,7 @@ 58 58 "Name[zh_CN]": "CPU", 59 59 "Name[zh_TW]": "CPU" 60 60 }, ··· 90 90 printf "%s\n\n" "$data" 91 91 done 92 92 diff --git a/kcms/edid/kcm_edid.json b/kcms/edid/kcm_edid.json 93 - index 68e4e670..19dfdc59 100644 93 + index e180df8d..3d5bbd0b 100644 94 94 --- a/kcms/edid/kcm_edid.json 95 95 +++ b/kcms/edid/kcm_edid.json 96 - @@ -64,7 +64,7 @@ 97 - "Name[x-test]": "xxEDIDxx", 98 - "Name[zh_CN]": "EDID" 96 + @@ -72,7 +72,7 @@ 97 + "Name[zh_CN]": "EDID", 98 + "Name[zh_TW]": "EDID" 99 99 }, 100 100 - "TryExec": "di-edid-decode", 101 101 + "TryExec": "@di_edid_decode@", ··· 116 116 [[nodiscard]] CommandOutputContext *outputContext() const 117 117 { 118 118 diff --git a/kcms/egl/kcm_egl.json b/kcms/egl/kcm_egl.json 119 - index 1cc89eb2..f1aed6c3 100644 119 + index 02a90071..64bfb609 100644 120 120 --- a/kcms/egl/kcm_egl.json 121 121 +++ b/kcms/egl/kcm_egl.json 122 - @@ -102,7 +102,7 @@ 122 + @@ -104,7 +104,7 @@ 123 123 "Name[zh_CN]": "OpenGL (EGL)", 124 124 "Name[zh_TW]": "OpenGL (EGL)" 125 125 }, ··· 155 155 {executable}, 156 156 Qt::TextFormat::RichText, 157 157 diff --git a/kcms/glx/kcm_glx.json b/kcms/glx/kcm_glx.json 158 - index 640ef4a5..791e8ce9 100644 158 + index 8a56690a..e2caaec7 100644 159 159 --- a/kcms/glx/kcm_glx.json 160 160 +++ b/kcms/glx/kcm_glx.json 161 - @@ -101,7 +101,7 @@ 161 + @@ -103,7 +103,7 @@ 162 162 "Name[zh_CN]": "OpenGL (GLX)", 163 163 "Name[zh_TW]": "OpenGL (GLX)" 164 164 }, ··· 197 197 198 198 KAuth::ActionReply DMIDecodeHelper::memoryinformation(const QVariantMap &args) 199 199 diff --git a/kcms/kwinsupportinfo/kcm_kwinsupportinfo.json.in b/kcms/kwinsupportinfo/kcm_kwinsupportinfo.json.in 200 - index 24dc11a7..bc72f2af 100644 200 + index 9e502d52..f9f26cbd 100644 201 201 --- a/kcms/kwinsupportinfo/kcm_kwinsupportinfo.json.in 202 202 +++ b/kcms/kwinsupportinfo/kcm_kwinsupportinfo.json.in 203 - @@ -93,6 +93,6 @@ 203 + @@ -95,6 +95,6 @@ 204 204 "Name[zh_CN]": "窗口管理器", 205 205 "Name[zh_TW]": "視窗管理員" 206 206 }, ··· 222 222 parent); 223 223 } 224 224 diff --git a/kcms/memory/kcm_memory.json b/kcms/memory/kcm_memory.json 225 - index 54f729ec..8e7aeb57 100644 225 + index 20df9662..6a64c762 100644 226 226 --- a/kcms/memory/kcm_memory.json 227 227 +++ b/kcms/memory/kcm_memory.json 228 - @@ -132,7 +132,7 @@ 228 + @@ -134,7 +134,7 @@ 229 229 "Name[zh_CN]": "内存", 230 230 "Name[zh_TW]": "記憶體" 231 231 }, ··· 235 235 "X-KDE-Keywords": "Memory,RAM,dmidecode", 236 236 "X-KDE-Keywords[ar]": "Memory,RAM,dmidecode,رام,ذاكرة,ذاكرة حية", 237 237 diff --git a/kcms/network/kcm_network.json b/kcms/network/kcm_network.json 238 - index 65e929e2..20bc2289 100644 238 + index 5fc677a5..59ec49da 100644 239 239 --- a/kcms/network/kcm_network.json 240 240 +++ b/kcms/network/kcm_network.json 241 - @@ -147,7 +147,7 @@ 241 + @@ -148,7 +148,7 @@ 242 242 "Name[zh_CN]": "网络接口", 243 243 "Name[zh_TW]": "網路介面" 244 244 }, ··· 261 261 CommandOutputContext *outputContext() const 262 262 { 263 263 diff --git a/kcms/opencl/kcm_opencl.json b/kcms/opencl/kcm_opencl.json 264 - index 774dd42e..40e2076a 100644 264 + index 61706cb9..b7fb9c59 100644 265 265 --- a/kcms/opencl/kcm_opencl.json 266 266 +++ b/kcms/opencl/kcm_opencl.json 267 - @@ -90,7 +90,7 @@ 267 + @@ -92,7 +92,7 @@ 268 268 "Name[zh_CN]": "OpenCL", 269 269 "Name[zh_TW]": "OpenCL" 270 270 }, ··· 299 299 set(PCI_BACKEND_ARGUMENTS "-v") 300 300 endif() 301 301 302 + diff --git a/kcms/sensors/kcm_sensors.json b/kcms/sensors/kcm_sensors.json 303 + index e1994f2c..e1c27245 100644 304 + --- a/kcms/sensors/kcm_sensors.json 305 + +++ b/kcms/sensors/kcm_sensors.json 306 + @@ -58,7 +58,7 @@ 307 + "Name[zh_CN]": "传感器", 308 + "Name[zh_TW]": "感測器" 309 + }, 310 + - "TryExec": "sensors", 311 + + "TryExec": "@sensors@", 312 + "X-KDE-KInfoCenter-Category": "device_information", 313 + "X-KDE-Keywords": "lm_sensors,sensors,temp,temperature,volt,voltage,sensors,fan,fan speed,monitoring,amp,amps,current,power", 314 + "X-KDE-Keywords[ar]": "مستشعرات lm,مستشعرات,درجة الحرارة,درجة الحرارة,فولت,جهد,مستشعرات,مروحة,سرعة المروحة,مراقبة,أمبير,أمبير,تيار,طاقة", 315 + diff --git a/kcms/sensors/main.cpp b/kcms/sensors/main.cpp 316 + index 8dae9f8f..ee70f381 100644 317 + --- a/kcms/sensors/main.cpp 318 + +++ b/kcms/sensors/main.cpp 319 + @@ -18,7 +18,7 @@ public: 320 + explicit KCMSensors(QObject *parent, const KPluginMetaData &data) 321 + : KQuickConfigModule(parent, data) 322 + { 323 + - m_outputContext = new CommandOutputContext(u"sensors"_s, {}, parent); 324 + + m_outputContext = new CommandOutputContext(u"@sensors@"_s, {}, parent); 325 + m_outputContext->setAutoRefreshMs(1000); 326 + } 327 + CommandOutputContext *outputContext() const 302 328 diff --git a/kcms/vulkan/kcm_vulkan.json b/kcms/vulkan/kcm_vulkan.json 303 - index 78b42cfd..1ec93c91 100644 329 + index 9a297a07..2c30b20a 100644 304 330 --- a/kcms/vulkan/kcm_vulkan.json 305 331 +++ b/kcms/vulkan/kcm_vulkan.json 306 - @@ -100,7 +100,7 @@ 332 + @@ -102,7 +102,7 @@ 307 333 "Name[zh_CN]": "Vulkan", 308 334 "Name[zh_TW]": "Vulkan" 309 335 }, ··· 326 352 CommandOutputContext *outputContext() const 327 353 { 328 354 diff --git a/kcms/wayland/kcm_wayland.json b/kcms/wayland/kcm_wayland.json 329 - index 9ae953bb..27d98104 100644 355 + index 66022b79..1756eb0e 100644 330 356 --- a/kcms/wayland/kcm_wayland.json 331 357 +++ b/kcms/wayland/kcm_wayland.json 332 - @@ -107,7 +107,7 @@ 358 + @@ -108,7 +108,7 @@ 333 359 "Name[zh_CN]": "Wayland", 334 360 "Name[zh_TW]": "Wayland" 335 361 }, ··· 352 378 CommandOutputContext *outputContext() const 353 379 { 354 380 diff --git a/kcms/xserver/kcm_xserver.json b/kcms/xserver/kcm_xserver.json 355 - index f5642e25..11f108a7 100644 381 + index a5e64d94..81190779 100644 356 382 --- a/kcms/xserver/kcm_xserver.json 357 383 +++ b/kcms/xserver/kcm_xserver.json 358 - @@ -147,7 +147,7 @@ 384 + @@ -148,7 +148,7 @@ 359 385 "Name[zh_CN]": "X 服务器", 360 386 "Name[zh_TW]": "X 伺服器" 361 387 },
+2
pkgs/kde/plasma/kinfocenter/default.nix
··· 6 6 lib, 7 7 libdisplay-info, 8 8 libusb1, 9 + lm_sensors, 9 10 mesa-demos, 10 11 mkKdeDerivation, 11 12 pkg-config, ··· 33 34 lscpu = lib.getExe' util-linux "lscpu"; 34 35 pactl = lib.getExe' pulseaudio "pactl"; 35 36 qdbus = lib.getExe' qttools "qdbus"; 37 + sensors = lib.getExe' lm_sensors "sensors"; 36 38 vulkaninfo = lib.getExe' vulkan-tools "vulkaninfo"; 37 39 waylandinfo = lib.getExe wayland-utils; 38 40 xdpyinfo = lib.getExe xdpyinfo;
+4 -4
pkgs/os-specific/linux/rtl8821cu/default.nix
··· 9 9 10 10 stdenv.mkDerivation { 11 11 pname = "rtl8821cu"; 12 - version = "${kernel.version}-unstable-2024-09-27"; 12 + version = "${kernel.version}-unstable-2025-05-08"; 13 13 14 14 src = fetchFromGitHub { 15 15 owner = "morrownr"; 16 16 repo = "8821cu-20210916"; 17 - rev = "2dce552dc6aa0cdab427bfa810c3df002eab0078"; 18 - hash = "sha256-8hGAfZyDCGl0RnPnYjc7iMEulZvoIGe2ghfIfoiz7ZI="; 17 + rev = "d74134a1c68f59f2b80cdd6c6afb8c1a8a687cbf"; 18 + hash = "sha256-ExT7ONQeejFoMwUUXKua7wMnRi+3IYayLmlWIEWteK4="; 19 19 }; 20 20 21 21 hardeningDisable = [ "pic" ]; ··· 38 38 39 39 meta = with lib; { 40 40 description = "Realtek rtl8821cu driver"; 41 - homepage = "https://github.com/morrownr/8821cu"; 41 + homepage = "https://github.com/morrownr/8821cu-20210916"; 42 42 license = licenses.gpl2Only; 43 43 platforms = platforms.linux; 44 44 maintainers = [ maintainers.contrun ];
+9 -8
pkgs/os-specific/linux/ryzen-smu/default.nix
··· 6 6 }: 7 7 8 8 let 9 - version = "0.1.5-unstable-2024-01-03"; 9 + version = "0.1.5-unstable-2025-06-04"; 10 10 11 11 ## Upstream has not been merging PRs. 12 12 ## Nixpkgs maintainers are providing a 13 13 ## repo with PRs merged until upstream is 14 14 ## updated. 15 15 src = fetchFromGitHub { 16 - owner = "Cryolitia"; 16 + owner = "amkillam"; 17 17 repo = "ryzen_smu"; 18 - rev = "ce1aa918efa33ca79998f0f7d467c04d4b07016c"; 19 - hash = "sha256-s9SSmbL6ixWqZUKEhrZdxN4xoWgk+8ClZPoKq2FDAAE="; 18 + rev = "9f9569f889935f7c7294cc32c1467e5a4081701a"; 19 + hash = "sha256-i8T0+kUYsFMzYO3h6ffUXP1fgGOXymC4Ml2dArQLOdk="; 20 20 }; 21 21 22 22 monitor-cpu = stdenv.mkDerivation { ··· 59 59 runHook postInstall 60 60 ''; 61 61 62 - meta = with lib; { 62 + meta = { 63 63 description = "Linux kernel driver that exposes access to the SMU (System Management Unit) for certain AMD Ryzen Processors"; 64 - homepage = "https://gitlab.com/leogx9r/ryzen_smu"; 65 - license = licenses.gpl2Plus; 66 - maintainers = with maintainers; [ 64 + homepage = "https://github.com/amkillam/ryzen_smu"; 65 + license = lib.licenses.gpl2Plus; 66 + maintainers = with lib.maintainers; [ 67 67 Cryolitia 68 68 phdyellow 69 + aleksana 69 70 ]; 70 71 platforms = [ "x86_64-linux" ]; 71 72 mainProgram = "monitor_cpu";
+5 -2
pkgs/os-specific/linux/shufflecake/default.nix
··· 9 9 }: 10 10 stdenv.mkDerivation (finalAttrs: { 11 11 name = "shufflecake"; 12 - version = "0.5.1"; 12 + version = "0.5.2"; 13 13 src = fetchFromGitea { 14 14 domain = "codeberg.org"; 15 15 owner = "shufflecake"; 16 16 repo = "shufflecake-c"; 17 17 rev = "v${finalAttrs.version}"; 18 - hash = "sha256-ULRx+WEz7uQ1C0JDaXORo6lmiwBAwD20j/XP92YE/K0="; 18 + hash = "sha256-EF9VKaqcNJt3hd/CUT+QeW17tc5ByStDanGGwi4uL4s="; 19 19 }; 20 20 21 21 nativeBuildInputs = kernel.moduleBuildDependencies; ··· 26 26 makeFlags = kernelModuleMakeFlags ++ [ 27 27 "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" 28 28 ]; 29 + 30 + # GCC 14 makes this an error by default, remove when fixed upstream 31 + env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types"; 29 32 30 33 outputs = [ 31 34 "out"
+15 -9
pkgs/os-specific/linux/veikk-linux-driver/default.nix
··· 6 6 kernelModuleMakeFlags, 7 7 }: 8 8 9 - stdenv.mkDerivation rec { 9 + stdenv.mkDerivation (finalAttrs: { 10 10 pname = "veikk-linux-driver"; 11 11 version = "2.0"; 12 12 13 13 src = fetchFromGitHub { 14 14 owner = "jlam55555"; 15 - repo = pname; 16 - rev = "v${version}"; 17 - sha256 = "11mg74ds58jwvdmi3i7c4chxs6v9g09r9ll22pc2kbxjdnrp8zrn"; 15 + repo = "veikk-linux-driver"; 16 + tag = "v${finalAttrs.version}"; 17 + sha256 = "sha256-Nn90s22yrynYFYLSlBN4aRvdISPsxBFr21yiohs5r4Y="; 18 18 }; 19 + 20 + patches = [ ./fix-6.12-build.patch ]; 19 21 20 22 nativeBuildInputs = kernel.moduleBuildDependencies; 21 23 ··· 26 28 ]; 27 29 28 30 installPhase = '' 31 + runHook preInstall 32 + 29 33 mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/veikk 30 34 install -Dm755 veikk.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/veikk 35 + 36 + runHook postInstall 31 37 ''; 32 38 33 - meta = with lib; { 39 + meta = { 34 40 description = "Linux driver for VEIKK-brand digitizers"; 35 41 homepage = "https://github.com/jlam55555/veikk-linux-driver/"; 36 - license = licenses.gpl2Only; 37 - platforms = platforms.linux; 38 - maintainers = with maintainers; [ nicbk ]; 42 + license = lib.licenses.gpl2Only; 43 + platforms = lib.platforms.linux; 44 + maintainers = with lib.maintainers; [ nicbk ]; 39 45 broken = kernel.kernelOlder "4.19"; 40 46 }; 41 - } 47 + })
+26
pkgs/os-specific/linux/veikk-linux-driver/fix-6.12-build.patch
··· 1 + https://github.com/torvalds/linux/commit/5f60d5f6bbc12e782fac78110b0ee62698f3b576 2 + --- 3 + veikk_vdev.c | 6 ++++++ 4 + 1 file changed, 6 insertions(+) 5 + 6 + diff --git a/veikk_vdev.c b/veikk_vdev.c 7 + index 9d0b49f..83e9efa 100644 8 + --- a/veikk_vdev.c 9 + +++ b/veikk_vdev.c 10 + @@ -6,7 +6,13 @@ 11 + * - Set up the module parameters 12 + */ 13 + 14 + +#include <linux/version.h> 15 + + 16 + +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0) 17 + #include <asm/unaligned.h> 18 + +#else 19 + +#include <linux/unaligned.h> 20 + +#endif 21 + #include <linux/module.h> 22 + #include "veikk.h" 23 + 24 + -- 25 + 2.49.0 26 +
+6
pkgs/servers/mail/mailman/package.nix
··· 42 42 python-dateutil 43 43 requests 44 44 sqlalchemy 45 + standard-nntplib 45 46 zope-component 46 47 zope-configuration 47 48 ]; ··· 58 59 (fetchpatch { 59 60 url = "https://gitlab.com/mailman/mailman/-/commit/9613154f3c04fa2383fbf017031ef263c291418d.patch"; 60 61 sha256 = "0vyw87s857vfxbf7kihwb6w094xyxmxbi1bpdqi3ybjamjycp55r"; 62 + }) 63 + (fetchpatch { 64 + name = "python-3.13.patch"; 65 + url = "https://gitlab.com/mailman/mailman/-/commit/685d9a7bdbd382d9e8d4a2da74bd973e93356e05.patch"; 66 + hash = "sha256-KCXVP+5zqgluUXQCGmMRC+G1hEDnFBlTUETGpmFDOOk="; 61 67 }) 62 68 ./log-stderr.patch 63 69 ];
+4 -1
pkgs/servers/minio/default.nix
··· 68 68 homepage = "https://www.minio.io/"; 69 69 description = "S3-compatible object storage server"; 70 70 changelog = "https://github.com/minio/minio/releases/tag/RELEASE.${version}"; 71 - maintainers = with maintainers; [ bachp ]; 71 + maintainers = with maintainers; [ 72 + bachp 73 + ryan4yin 74 + ]; 72 75 license = licenses.agpl3Plus; 73 76 mainProgram = "minio"; 74 77 };
+1
pkgs/servers/monitoring/grafana/default.nix
··· 161 161 globin 162 162 ma27 163 163 Frostman 164 + ryan4yin 164 165 ]; 165 166 platforms = [ 166 167 "x86_64-linux"
+6 -6
pkgs/servers/web-apps/lemmy/pin.json
··· 1 1 { 2 - "serverVersion": "0.19.11", 3 - "uiVersion": "0.19.11", 4 - "serverHash": "sha256-veF+fJTjsB543PyBnnBN4rmejTWrnlnLghnP6mLDP7U=", 5 - "serverCargoHash": "sha256-H9Eu/nKxK27OXvzPi5ItTbKcHqISKAjN17MRWsw5xlc=", 6 - "uiHash": "sha256-K8nNb/HQy/s5S5h9Ndt3t8F9/h1D2zOGrTEKhv+Z4Ks=", 7 - "uiPNPMDepsHash": "sha256-SqU/kYadwszogaBErP2v1VXIMhJj9AHRKdrHLc99fMw=" 2 + "serverVersion": "0.19.12", 3 + "uiVersion": "0.19.12", 4 + "serverHash": "sha256-1xkm2iKoeNXuTW5ZMKPQyqePTUqKXJ5upz97MVwqjzo=", 5 + "serverCargoHash": "sha256-QnDN0Lvfw8d5SF7nrb8hBVG2gwT1xgEhYlLElfR15Z0=", 6 + "uiHash": "sha256-bxppQtDFgxvdeBE/8PsfBNpnEdvX8AoELyhrwEV8Hsg=", 7 + "uiPNPMDepsHash": "sha256-tuarUG1uKx6Q1O+rF6DHyK8MEseF9lKk34qtRWWScAg=" 8 8 }
+1
pkgs/shells/nushell/default.nix
··· 95 95 Br1ght0ne 96 96 johntitor 97 97 joaquintrinanes 98 + ryan4yin 98 99 ]; 99 100 mainProgram = "nu"; 100 101 };
+1
pkgs/tools/admin/google-cloud-sdk/default.nix
··· 182 182 pradyuman 183 183 stephenmw 184 184 zimbatm 185 + ryan4yin 185 186 ]; 186 187 platforms = builtins.attrNames data.googleCloudSdkPkgs; 187 188 mainProgram = "gcloud";
+7 -7
pkgs/tools/misc/qt6gtk2/default.nix
··· 6 6 pkg-config, 7 7 qmake, 8 8 qtbase, 9 - unstableGitUpdater, 9 + nix-update-script, 10 10 }: 11 11 12 - stdenv.mkDerivation { 12 + stdenv.mkDerivation (finalAttrs: { 13 13 pname = "qt6gtk2"; 14 - version = "0.4-unstable-2025-05-11"; 14 + version = "0.5"; 15 15 16 16 src = fetchFromGitLab { 17 17 domain = "opencode.net"; 18 18 owner = "trialuser"; 19 19 repo = "qt6gtk2"; 20 - rev = "a95d620193bfc3a2d5e17c3d1c883849182f77b8"; 21 - hash = "sha256-gcCujWImw7WOnz7QI4h4ye/v5EZWVIq5eFLYoOxYoog="; 20 + tag = finalAttrs.version; 21 + hash = "sha256-G2TQ4LU8Cmvd+u6/s1ugbUkZcRXHTBm3+ISY0g/5/60="; 22 22 }; 23 23 24 24 buildInputs = [ ··· 36 36 "PLUGINDIR=${placeholder "out"}/${qtbase.qtPluginPrefix}" 37 37 ]; 38 38 39 - passthru.updateScript = unstableGitUpdater { }; 39 + passthru.updateScript = nix-update-script { }; 40 40 41 41 meta = { 42 42 description = "GTK+2.0 integration plugins for Qt6"; ··· 45 45 maintainers = [ lib.maintainers.misterio77 ]; 46 46 platforms = lib.platforms.linux; 47 47 }; 48 - } 48 + })
+1
pkgs/tools/networking/mtr/default.nix
··· 68 68 orivej 69 69 raskin 70 70 globin 71 + ryan4yin 71 72 ]; 72 73 mainProgram = "mtr"; 73 74 platforms = platforms.unix;
+1
pkgs/tools/package-management/lix/common-lix.nix
··· 140 140 p.pytest 141 141 p.pytest-xdist 142 142 p.python-frontmatter 143 + p.toml 143 144 ])) 144 145 pkg-config 145 146 flex
+3 -3
pkgs/tools/package-management/lix/default.nix
··· 234 234 attrName = "git"; 235 235 236 236 lix-args = rec { 237 - version = "2.94.0-pre-20250516_${builtins.substring 0 12 src.rev}"; 237 + version = "2.94.0-pre-20250621_${builtins.substring 0 12 src.rev}"; 238 238 239 239 src = fetchFromGitea { 240 240 domain = "git.lix.systems"; 241 241 owner = "lix-project"; 242 242 repo = "lix"; 243 - rev = "a7634f87aac545fa01fa19878cc5ad2c994e2116"; 244 - hash = "sha256-+yX+xF1cZUd1Pub7MJ7uGcC6JQ0FN+CsEmBg6rGLfjU="; 243 + rev = "242a228124f77b57c2e3b3aedb259ffb7913cd3c"; 244 + hash = "sha256-hCbhc9P+UmIlYv81+vs6v3bDqviCUhwPH3XqClZdfSk="; 245 245 }; 246 246 247 247 cargoDeps = rustPlatform.fetchCargoVendor {
+1
pkgs/tools/security/pass/default.nix
··· 197 197 tadfisher 198 198 globin 199 199 ma27 200 + ryan4yin 200 201 ]; 201 202 platforms = platforms.unix; 202 203
+1
pkgs/top-level/aliases.nix
··· 624 624 EmptyEpsilon = empty-epsilon; # Added 2024-07-14 625 625 enyo-doom = enyo-launcher; # Added 2022-09-09 626 626 eolie = throw "'eolie' has been removed due to being unmaintained"; # Added 2025-04-15 627 + epapirus-icon-theme = throw "'epapirus-icon-theme' has been removed because 'papirus-icon-theme' no longer supports building with elementaryOS icon support"; # Added 2025-06-15 627 628 epdfview = throw "'epdfview' has been removed due to lack of maintenance upstream. Consider using 'qpdfview' instead"; # Added 2024-10-19 628 629 ephemeral = throw "'ephemeral' has been archived upstream since 2022-04-02"; # added 2025-04-12 629 630 epoxy = throw "'epoxy' has been renamed to/replaced by 'libepoxy'"; # Converted to throw 2024-10-17
-7
pkgs/top-level/all-packages.nix
··· 11535 11535 11536 11536 documentation-highlighter = callPackage ../misc/documentation-highlighter { }; 11537 11537 11538 - epapirus-icon-theme = papirus-icon-theme.override { withElementary = true; }; 11539 - 11540 11538 moeli = eduli; 11541 11539 11542 11540 emojione = callPackage ../data/fonts/emojione { ··· 11669 11667 openmoji-color = callPackage ../data/fonts/openmoji { fontFormats = [ "glyf_colr_0" ]; }; 11670 11668 11671 11669 openmoji-black = callPackage ../data/fonts/openmoji { fontFormats = [ "glyf" ]; }; 11672 - 11673 - papirus-icon-theme = callPackage ../data/icons/papirus-icon-theme { 11674 - inherit (pantheon) elementary-icon-theme; 11675 - inherit (plasma5Packages) breeze-icons; 11676 - }; 11677 11670 11678 11671 papirus-maia-icon-theme = callPackage ../data/icons/papirus-maia-icon-theme { 11679 11672 inherit (plasma5Packages) breeze-icons;
+3
pkgs/top-level/python-packages.nix
··· 16958 16958 standard-mailcap = 16959 16959 if pythonOlder "3.13" then null else callPackage ../development/python-modules/standard-mailcap { }; 16960 16960 16961 + standard-nntplib = 16962 + if pythonOlder "3.13" then null else callPackage ../development/python-modules/standard-nntplib { }; 16963 + 16961 16964 standard-pipes = 16962 16965 if pythonAtLeast "3.13" then callPackage ../development/python-modules/standard-pipes { } else null; 16963 16966