diff --git a/nixos/doc/manual/release-notes/rl-2511.section.md b/nixos/doc/manual/release-notes/rl-2511.section.md index 0053b51c607c..412ddc6f3a58 100644 --- a/nixos/doc/manual/release-notes/rl-2511.section.md +++ b/nixos/doc/manual/release-notes/rl-2511.section.md @@ -250,6 +250,8 @@ - `services.gitea` supports sending notifications with sendmail again. To do this, activate the parameter `services.gitea.mailerUseSendmail` and configure SMTP server. +- `networking.wireless.networks.` now has an option to specify SSID, hence allowing duplicated SSID setup. The BSSID option is added along side with this. + - Revamp of the ACME certificate acquisication and renewal process to help scale systems with lots (100+) of certificates. Units and targets have been reshaped to better support more specific dependency propagation and avoid diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix index 88eaffdc1ee1..8564295551a5 100644 --- a/nixos/modules/services/networking/wpa_supplicant.nix +++ b/nixos/modules/services/networking/wpa_supplicant.nix @@ -37,7 +37,9 @@ let mkWPA2Fallback = opts: opts // { authProtocols = subtractLists wpa3Protocols opts.authProtocols; }; # Networks attrset as a list - networkList = mapAttrsToList (ssid: opts: opts // { inherit ssid; }) cfg.networks; + # We use the ssid from the options, which defaults to the ssid but can be overridden. + # The ssid in attrNames is hence unused here. + networkList = attrValues cfg.networks; # List of all networks (normal + generated fallbacks) allNetworks = @@ -89,6 +91,7 @@ let "key_mgmt=NONE" ) ] + ++ optional (opts.bssid != null) "bssid=${opts.bssid}" ++ optional opts.hidden "scan_ssid=1" ++ optional (pskString != null) "psk=${pskString}" ++ optionals (opts.auth != null) (filter (x: x != "") (splitString "\n" opts.auth)) @@ -280,170 +283,195 @@ in networks = mkOption { type = types.attrsOf ( - types.submodule { - options = { - psk = mkOption { - type = types.nullOr (types.strMatching "[[:print:]]{8,63}"); - default = null; - description = '' - The network's pre-shared key in plaintext defaulting - to being a network without any authentication. + types.submodule ( + { name, ... }: + { + options = { + ssid = mkOption { + type = types.str; + default = name; + description = '' + You could use this field to override the network's ssid. + This can be useful to, for example, specify two networks + that share the same SSID but not the same password. + Specifying the BSSID of the network can make two entries of + the same SSID show up as different ones in wpa_cli. + ''; + }; - ::: {.warning} - Be aware that this will be written to the Nix store - in plaintext! Use {var}`pskRaw` with an external - reference to keep it safe. - ::: + bssid = mkOption { + type = types.nullOr types.str; + default = null; + example = "02:00:00:00:00:01"; + description = '' + If set, this network block is used only when associating with + the AP using the configured BSSID. + ''; + }; - ::: {.note} - Mutually exclusive with {var}`pskRaw`. - ::: - ''; - }; + psk = mkOption { + type = types.nullOr (types.strMatching "[[:print:]]{8,63}"); + default = null; + description = '' + The network's pre-shared key in plaintext defaulting + to being a network without any authentication. - pskRaw = mkOption { - type = types.nullOr (types.strMatching "([[:xdigit:]]{64})|(ext:[^=]+)"); - default = null; - example = "ext:name_of_the_secret_here"; - description = '' - Either the raw pre-shared key in hexadecimal format - or the name of the secret (as defined inside - [](#opt-networking.wireless.secretsFile) and prefixed - with `ext:`) containing the network pre-shared key. + ::: {.warning} + Be aware that this will be written to the Nix store + in plaintext! Use {var}`pskRaw` with an external + reference to keep it safe. + ::: - ::: {.warning} - Be aware that this will be written to the Nix store - in plaintext! Always use an external reference. - ::: + ::: {.note} + Mutually exclusive with {var}`pskRaw`. + ::: + ''; + }; - ::: {.note} - The external secret can be either the plaintext - passphrase or the raw pre-shared key. - ::: + pskRaw = mkOption { + type = types.nullOr (types.strMatching "([[:xdigit:]]{64})|(ext:[^=]+)"); + default = null; + example = "ext:name_of_the_secret_here"; + description = '' + Either the raw pre-shared key in hexadecimal format + or the name of the secret (as defined inside + [](#opt-networking.wireless.secretsFile) and prefixed + with `ext:`) containing the network pre-shared key. - ::: {.note} - Mutually exclusive with {var}`psk` and {var}`auth`. - ::: - ''; - }; + ::: {.warning} + Be aware that this will be written to the Nix store + in plaintext! Always use an external reference. + ::: - authProtocols = mkOption { - default = [ - # WPA2 and WPA3 - "WPA-PSK" - "WPA-EAP" - "SAE" - # 802.11r variants of the above - "FT-PSK" - "FT-EAP" - "FT-SAE" - ]; - # The list can be obtained by running this command - # awk ' - # /^# key_mgmt: /{ run=1 } - # /^#$/{ run=0 } - # /^# [A-Z0-9-]{2,}/{ if(run){printf("\"%s\"\n", $2)} } - # ' /run/current-system/sw/share/doc/wpa_supplicant/wpa_supplicant.conf.example - type = types.listOf ( - types.enum [ + ::: {.note} + The external secret can be either the plaintext + passphrase or the raw pre-shared key. + ::: + + ::: {.note} + Mutually exclusive with {var}`psk` and {var}`auth`. + ::: + ''; + }; + + authProtocols = mkOption { + default = [ + # WPA2 and WPA3 "WPA-PSK" "WPA-EAP" - "IEEE8021X" - "NONE" - "WPA-NONE" + "SAE" + # 802.11r variants of the above "FT-PSK" "FT-EAP" - "FT-EAP-SHA384" - "WPA-PSK-SHA256" - "WPA-EAP-SHA256" - "SAE" "FT-SAE" - "WPA-EAP-SUITE-B" - "WPA-EAP-SUITE-B-192" - "OSEN" - "FILS-SHA256" - "FILS-SHA384" - "FT-FILS-SHA256" - "FT-FILS-SHA384" - "OWE" - "DPP" - ] - ); - description = '' - The list of authentication protocols accepted by this network. - This corresponds to the `key_mgmt` option in wpa_supplicant. - ''; + ]; + # The list can be obtained by running this command + # awk ' + # /^# key_mgmt: /{ run=1 } + # /^#$/{ run=0 } + # /^# [A-Z0-9-]{2,}/{ if(run){printf("\"%s\"\n", $2)} } + # ' /run/current-system/sw/share/doc/wpa_supplicant/wpa_supplicant.conf.example + type = types.listOf ( + types.enum [ + "WPA-PSK" + "WPA-EAP" + "IEEE8021X" + "NONE" + "WPA-NONE" + "FT-PSK" + "FT-EAP" + "FT-EAP-SHA384" + "WPA-PSK-SHA256" + "WPA-EAP-SHA256" + "SAE" + "FT-SAE" + "WPA-EAP-SUITE-B" + "WPA-EAP-SUITE-B-192" + "OSEN" + "FILS-SHA256" + "FILS-SHA384" + "FT-FILS-SHA256" + "FT-FILS-SHA384" + "OWE" + "DPP" + ] + ); + description = '' + The list of authentication protocols accepted by this network. + This corresponds to the `key_mgmt` option in wpa_supplicant. + ''; + }; + + auth = mkOption { + type = types.nullOr types.str; + default = null; + example = '' + eap=PEAP + identity="user@example.com" + password=ext:example_password + ''; + description = '' + Use this option to configure advanced authentication methods + like EAP. See {manpage}`wpa_supplicant.conf(5)` for example + configurations. + + ::: {.warning} + Be aware that this will be written to the Nix store + in plaintext! Use an external reference like + `ext:secretname` for secrets. + ::: + + ::: {.note} + Mutually exclusive with {var}`psk` and {var}`pskRaw`. + ::: + ''; + }; + + hidden = mkOption { + type = types.bool; + default = false; + description = '' + Set this to `true` if the SSID of the network is hidden. + ''; + example = literalExpression '' + { echelon = { + hidden = true; + psk = "abcdefgh"; + }; + } + ''; + }; + + priority = mkOption { + type = types.nullOr types.int; + default = null; + description = '' + By default, all networks will get same priority group (0). If + some of the networks are more desirable, this field can be used + to change the order in which wpa_supplicant goes through the + networks when selecting a BSS. The priority groups will be + iterated in decreasing priority (i.e., the larger the priority + value, the sooner the network is matched against the scan + results). Within each priority group, networks will be selected + based on security policy, signal strength, etc. + ''; + }; + + extraConfig = mkOption { + type = types.str; + default = ""; + example = '' + bssid_blacklist=02:11:22:33:44:55 02:22:aa:44:55:66 + ''; + description = '' + Extra configuration lines appended to the network block. + See {manpage}`wpa_supplicant.conf(5)` for available options. + ''; + }; + }; - - auth = mkOption { - type = types.nullOr types.str; - default = null; - example = '' - eap=PEAP - identity="user@example.com" - password=ext:example_password - ''; - description = '' - Use this option to configure advanced authentication methods - like EAP. See {manpage}`wpa_supplicant.conf(5)` for example - configurations. - - ::: {.warning} - Be aware that this will be written to the Nix store - in plaintext! Use an external reference like - `ext:secretname` for secrets. - ::: - - ::: {.note} - Mutually exclusive with {var}`psk` and {var}`pskRaw`. - ::: - ''; - }; - - hidden = mkOption { - type = types.bool; - default = false; - description = '' - Set this to `true` if the SSID of the network is hidden. - ''; - example = literalExpression '' - { echelon = { - hidden = true; - psk = "abcdefgh"; - }; - } - ''; - }; - - priority = mkOption { - type = types.nullOr types.int; - default = null; - description = '' - By default, all networks will get same priority group (0). If - some of the networks are more desirable, this field can be used - to change the order in which wpa_supplicant goes through the - networks when selecting a BSS. The priority groups will be - iterated in decreasing priority (i.e., the larger the priority - value, the sooner the network is matched against the scan - results). Within each priority group, networks will be selected - based on security policy, signal strength, etc. - ''; - }; - - extraConfig = mkOption { - type = types.str; - default = ""; - example = '' - bssid_blacklist=02:11:22:33:44:55 02:22:aa:44:55:66 - ''; - description = '' - Extra configuration lines appended to the network block. - See {manpage}`wpa_supplicant.conf(5)` for available options. - ''; - }; - - }; - } + } + ) ); description = '' The network definitions to automatically connect to when diff --git a/nixos/tests/wpa_supplicant.nix b/nixos/tests/wpa_supplicant.nix index d893885ae65b..f2a0c13de47c 100644 --- a/nixos/tests/wpa_supplicant.nix +++ b/nixos/tests/wpa_supplicant.nix @@ -13,8 +13,31 @@ let naughtyPassphrase = ''!,./;'[]\-=<>?:"{}|_+@$%^&*()`~ # ceci n'est pas un commentaire''; + runBssidTest = + name: expectedBssid: extraConfig: + runSimulatorTest name extraConfig '' + with subtest("Daemon can connect to the right access point"): + machine.wait_for_unit("wpa_supplicant-wlan1.service") + machine.wait_until_succeeds( + "wpa_cli -i wlan1 status | grep -q wpa_state=COMPLETED" + ) + machine.wait_until_succeeds( + "wpa_cli -i wlan1 status | grep -q bssid=${expectedBssid}" + ) + ''; + runConnectionTest = name: extraConfig: + runSimulatorTest name extraConfig '' + with subtest("Daemon can connect to the access point"): + machine.wait_for_unit("wpa_supplicant-wlan1.service") + machine.wait_until_succeeds( + "wpa_cli -i wlan1 status | grep -q wpa_state=COMPLETED" + ) + ''; + + runSimulatorTest = + name: extraConfig: extraTestScript: runTest { name = "wpa_supplicant-${name}"; inherit meta; @@ -50,12 +73,22 @@ let bssid = "02:00:00:00:00:01"; }; wlan0-2 = { + ssid = "nixos-test-mixed"; + authentication = { + mode = "wpa3-sae-transition"; + saeAddToMacAllow = true; + saePasswordsFile = pkgs.writeText "password" naughtyPassphrase; + wpaPasswordFile = pkgs.writeText "password" naughtyPassphrase; + }; + bssid = "02:00:00:00:00:02"; + }; + wlan0-3 = { ssid = "nixos-test-wpa2"; authentication = { mode = "wpa2-sha256"; wpaPassword = naughtyPassphrase; }; - bssid = "02:00:00:00:00:02"; + bssid = "02:00:00:00:00:03"; }; }; }; @@ -85,11 +118,7 @@ let machine.wait_for_unit("hostapd.service") machine.copy_from_vm("/run/hostapd/wlan0.hostapd.conf") - with subtest("Daemon can connect to the access point"): - machine.wait_for_unit("wpa_supplicant-wlan1.service") - machine.wait_until_succeeds( - "wpa_cli -i wlan1 status | grep -q wpa_state=COMPLETED" - ) + ${extraTestScript} ''; }; @@ -129,6 +158,18 @@ in psk = "password"; authProtocols = [ "SAE" ]; }; + + # Test duplicate SSID generation + duplicate1 = { + ssid = "duplicate"; + bssid = "00:00:00:00:00:01"; + psk = "password"; + }; + duplicate2 = { + ssid = "duplicate"; + bssid = "00:00:00:00:00:02"; + psk = "password"; + }; }; }; }; @@ -148,6 +189,12 @@ in assert int(machine.succeed(f"grep -c sae-only {config_file}")) == 1 assert int(machine.succeed(f"grep -c mixed-wpa {config_file}")) == 2 + with subtest("Duplicate SSID network blocks have been generated"): + # more duplication due to fallbacks + assert int(machine.succeed(f"grep -c duplicate {config_file}")) == 4 + assert int(machine.succeed(f"grep -c bssid=00:00:00:00:00:01 {config_file}")) == 2 + assert int(machine.succeed(f"grep -c bssid=00:00:00:00:00:02 {config_file}")) == 2 + # save file for manual inspection machine.copy_from_vm(config_file) ''; @@ -222,4 +269,23 @@ in authProtocols = [ "WPA-PSK-SHA256" ]; }; }; + + # Test connection with the highest prio "matching" network block found. + # "Matching" meaning with the right SSID and BSSID + bssidGuard = runBssidTest "bssid-guard" "02:00:00:00:00:02" { + networks = { + "1_first" = { + ssid = "nixos-test-mixed"; + bssid = "02:00:00:00:00:01"; + pskRaw = "ext:psk_nixos_test"; + }; + "2_second" = { + ssid = "nixos-test-mixed"; + bssid = "02:00:00:00:00:02"; + pskRaw = "ext:psk_nixos_test"; + priority = 1; + }; + }; + }; + } diff --git a/pkgs/applications/editors/vscode/extensions/pkief.material-icon-theme/default.nix b/pkgs/applications/editors/vscode/extensions/pkief.material-icon-theme/default.nix index 5df3dee79ce4..109e1ffdf423 100644 --- a/pkgs/applications/editors/vscode/extensions/pkief.material-icon-theme/default.nix +++ b/pkgs/applications/editors/vscode/extensions/pkief.material-icon-theme/default.nix @@ -6,8 +6,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "material-icon-theme"; publisher = "PKief"; - version = "5.26.0"; - hash = "sha256-AXQ2md1lApIFW1NIY5gjVIWdKOv0fxs0rRpIbjmCgwM="; + version = "5.27.0"; + hash = "sha256-vP5jMijMIKHUmvSaTX+eEO6Z3dzUCR6S/ZdPxjJHIT8="; }; meta = { description = "Material Design Icons for Visual Studio Code"; diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index 95d46e185019..d4c624a07b9c 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -54,11 +54,11 @@ "vendorHash": "sha256-WT4sjem80445Qwlr3i/OuQMujrxEKqhws1GLpvbqKaU=" }, "alicloud": { - "hash": "sha256-pCGmH70Ro4QSpcHBhUpoQtQBTos3QluJxfPJkJP3+ng=", + "hash": "sha256-zh90t+oPTiQ7S3F3H00Y3/cGj1Dx3Jd8wZZ4CpuNVYQ=", "homepage": "https://registry.terraform.io/providers/aliyun/alicloud", "owner": "aliyun", "repo": "terraform-provider-alicloud", - "rev": "v1.258.0", + "rev": "v1.259.0", "spdx": "MPL-2.0", "vendorHash": "sha256-+Hc2NCCnJ0fB86fvgE4Kak8fwlsXIiv8avIhE/RoWeM=" }, @@ -840,11 +840,11 @@ "vendorHash": "sha256-33hZ+MB96pFkHCG3UkKcnPp8wpE8POEHLz12OSF8ujI=" }, "minio": { - "hash": "sha256-XYo+nn9rgK9OtwdowqcTyuMir+7KPPjVeMLwFeWvdEQ=", + "hash": "sha256-+I1nTNxLVny0pgdMF7vXPC3WxkInSXnbeHcqgrWG55s=", "homepage": "https://registry.terraform.io/providers/aminueza/minio", "owner": "aminueza", "repo": "terraform-provider-minio", - "rev": "v3.6.4", + "rev": "v3.6.5", "spdx": "AGPL-3.0", "vendorHash": "sha256-QWBzQXx/dzWZr9dn3LHy8RIvZL1EA9xYqi7Ppzvju7g=" }, @@ -1111,11 +1111,11 @@ "vendorHash": "sha256-j+3qtGlueKZgf0LuNps4Wc9G3EmpSgl8ZNSLqslyizI=" }, "rancher2": { - "hash": "sha256-DIYIfBjNBt+GKflmgHeAEC3uqD/JZ7FhT77lV4J9w+0=", + "hash": "sha256-durRRgJmbGK0GBvlzzeq7stic8fzxBMmswYhMYnEL6E=", "homepage": "https://registry.terraform.io/providers/rancher/rancher2", "owner": "rancher", "repo": "terraform-provider-rancher2", - "rev": "v8.0.0", + "rev": "v8.1.0", "spdx": "MPL-2.0", "vendorHash": "sha256-M2lJKmIR66lQKFkInjizn68ax2Gq4sim5Y3vZKyDhZ8=" }, @@ -1345,20 +1345,20 @@ "vendorHash": "sha256-J2fLyYvlnefFIaJ6UwRfJ5nas86JCuOHAdWalr9T9fw=" }, "temporalcloud": { - "hash": "sha256-tXNnDoUskOcmOKPpgBIcLcup0jMqRVWkhwSU3GKjAFI=", + "hash": "sha256-MnfGps/PeTjhLXXcy37JHy38R3zDqjdLv99SY/F+jGM=", "homepage": "https://registry.terraform.io/providers/temporalio/temporalcloud", "owner": "temporalio", "repo": "terraform-provider-temporalcloud", - "rev": "v1.0.0", + "rev": "v1.1.0", "spdx": "MPL-2.0", "vendorHash": "sha256-M3wnvRxMyU0Yo733E9e8Q++xVTuSXD0W3fB2C14RDNU=" }, "tencentcloud": { - "hash": "sha256-5Ue8PCe4RPA9ImzAuWj2LlxBbRCc0VQBb1AhX4vFB3g=", + "hash": "sha256-Tw7fMcUZMn41nbiPoxJNyYkLte9T8AgU9Qy6HiqTDzY=", "homepage": "https://registry.terraform.io/providers/tencentcloudstack/tencentcloud", "owner": "tencentcloudstack", "repo": "terraform-provider-tencentcloud", - "rev": "v1.82.20", + "rev": "v1.82.22", "spdx": "MPL-2.0", "vendorHash": null }, diff --git a/pkgs/by-name/dj/django-upgrade/package.nix b/pkgs/by-name/dj/django-upgrade/package.nix index 91d506341631..14c3220ae07a 100644 --- a/pkgs/by-name/dj/django-upgrade/package.nix +++ b/pkgs/by-name/dj/django-upgrade/package.nix @@ -7,14 +7,14 @@ python3Packages.buildPythonApplication rec { pname = "django-upgrade"; - version = "1.27.0"; + version = "1.28.0"; pyproject = true; src = fetchFromGitHub { owner = "adamchainz"; repo = "django-upgrade"; tag = version; - hash = "sha256-QvjXDnXQuRqnpWbnmqeDL3gNFiYIlG87QQVXsYc99YQ="; + hash = "sha256-GX8qIpkXD/XTxj5fp46xG+ZVEDnkuOeBJm4tS9uXC6Q="; }; build-system = [ python3Packages.setuptools ]; diff --git a/pkgs/by-name/gi/gitea-actions-runner/package.nix b/pkgs/by-name/gi/gitea-actions-runner/package.nix index 08338d917e2d..a934276ed32b 100644 --- a/pkgs/by-name/gi/gitea-actions-runner/package.nix +++ b/pkgs/by-name/gi/gitea-actions-runner/package.nix @@ -8,17 +8,17 @@ buildGoModule (finalAttrs: { pname = "gitea-actions-runner"; - version = "0.2.12"; + version = "0.2.13"; src = fetchFromGitea { domain = "gitea.com"; owner = "gitea"; repo = "act_runner"; rev = "v${finalAttrs.version}"; - hash = "sha256-z/wEs110Y2IZ2Jm6bayxlD2sjyl2V/v+gP6l9pwGi5o="; + hash = "sha256-S0pZddExNw4RQvigWJh4r1CPDS+eOCa1n/8278J3wR4="; }; - vendorHash = "sha256-HuiL6OLShSeGtHb4dOeOFOpOgl55s3x18uYgM4X8G7M="; + vendorHash = "sha256-F+rFv0s/GBY3InWiofk3MCADfyauAmL/TpilWhZB5vE="; ldflags = [ "-s" diff --git a/pkgs/by-name/li/libcpuid/package.nix b/pkgs/by-name/li/libcpuid/package.nix index 39af93507db1..a757fb275278 100644 --- a/pkgs/by-name/li/libcpuid/package.nix +++ b/pkgs/by-name/li/libcpuid/package.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "libcpuid"; - version = "0.8.0"; + version = "0.8.1"; src = fetchFromGitHub { owner = "anrieff"; repo = "libcpuid"; rev = "v${version}"; - hash = "sha256-m/4PJGknuoiWR40aIHtkaHuMEROjsYQ9ZgmJtHdzeSU="; + hash = "sha256-+/TTlGk1ePPTHrSTSZmPHT2h3gKs9ouCF4ElvLWHF/g="; }; nativeBuildInputs = [ autoreconfHook ]; diff --git a/pkgs/by-name/ru/ruffle/package.nix b/pkgs/by-name/ru/ruffle/package.nix index 62c2eb292691..78b7a5d9c540 100644 --- a/pkgs/by-name/ru/ruffle/package.nix +++ b/pkgs/by-name/ru/ruffle/package.nix @@ -21,16 +21,16 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "ruffle"; - version = "0.2-nightly-2025-09-02"; + version = "0.2-nightly-2025-09-13"; src = fetchFromGitHub { owner = "ruffle-rs"; repo = "ruffle"; tag = lib.strings.removePrefix "0.2-" finalAttrs.version; - hash = "sha256-QpX30big3hEL2KaUo6M4BfWrQOGMfnrxSluOQKoveaE="; + hash = "sha256-Mzb5Ki6RyQIpeHRGtfGVURmvVMNuBBIjp+31M0m7oGw="; }; - cargoHash = "sha256-celZXTEzjxDm804D39LE1MSsrGcqIZE9o6ZmoNgIMnA="; + cargoHash = "sha256-y65rM5sfSN8OA13Dwrt1VhiiODzdF0UmAA1IJwycfL0="; cargoBuildFlags = lib.optional withRuffleTools "--workspace"; env = diff --git a/pkgs/by-name/ru/rustic/package.nix b/pkgs/by-name/ru/rustic/package.nix index d36140e462e0..381f3fc265ca 100644 --- a/pkgs/by-name/ru/rustic/package.nix +++ b/pkgs/by-name/ru/rustic/package.nix @@ -9,16 +9,16 @@ rustPlatform.buildRustPackage rec { pname = "rustic"; - version = "0.9.5"; + version = "0.10.0"; src = fetchFromGitHub { owner = "rustic-rs"; repo = "rustic"; tag = "v${version}"; - hash = "sha256-HYPzgynCeWDRRNyACHqnzkjn6uZWS0TDHuJE9STJxbQ="; + hash = "sha256-KyJce0pTTpPv3K0WXWQv2MPx8dDGhUVYEIjTeYH1KPY="; }; - cargoHash = "sha256-+BlLVnvI2qBfwEtyxmZFNhR9MEzs0/a1Ce6ALOKtoPU="; + cargoHash = "sha256-Axiq1Yu5pg3fZ/E8aYFGAuPi3KVIlotQ2TZs0pczG+4="; nativeBuildInputs = [ installShellFiles ]; diff --git a/pkgs/by-name/te/terminus_font/package.nix b/pkgs/by-name/te/terminus_font/package.nix index 7236c493bbcf..05a7ff355f3d 100644 --- a/pkgs/by-name/te/terminus_font/package.nix +++ b/pkgs/by-name/te/terminus_font/package.nix @@ -55,6 +55,6 @@ stdenv.mkDerivation rec { EGA/VGA-bold for 8x14 and 8x16. ''; homepage = "https://terminus-font.sourceforge.net/"; - license = licenses.gpl2Plus; + license = licenses.ofl; }; } diff --git a/pkgs/by-name/vo/vopono/package.nix b/pkgs/by-name/vo/vopono/package.nix index ad838165b7c4..cc0f669b0203 100644 --- a/pkgs/by-name/vo/vopono/package.nix +++ b/pkgs/by-name/vo/vopono/package.nix @@ -6,14 +6,14 @@ rustPlatform.buildRustPackage rec { pname = "vopono"; - version = "0.10.14"; + version = "0.10.15"; src = fetchCrate { inherit pname version; - hash = "sha256-EfbRSQtJA2ktpFzWnJWbUFLajdpaDdbpKeOykrorl2Q="; + hash = "sha256-78G0Dm0WAEjjud+vrl7n3Uh6NnMQhs3uY4DIeSTKTJs="; }; - cargoHash = "sha256-j7KFlFaxgXvrEzuknBTzfYgU1S57YhvVXkP73u888rc="; + cargoHash = "sha256-2CeaDoDl8QyDXN8FHfHm6WRsJOfRiq6yRCKHsXXUV0w="; meta = with lib; { description = "Run applications through VPN connections in network namespaces"; diff --git a/pkgs/by-name/xd/xdg-desktop-portal-termfilechooser/package.nix b/pkgs/by-name/xd/xdg-desktop-portal-termfilechooser/package.nix index ca19d549ebd9..41894e85ae5e 100644 --- a/pkgs/by-name/xd/xdg-desktop-portal-termfilechooser/package.nix +++ b/pkgs/by-name/xd/xdg-desktop-portal-termfilechooser/package.nix @@ -13,13 +13,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "xdg-desktop-portal-termfilechooser"; - version = "1.2.0"; + version = "1.2.1"; src = fetchFromGitHub { owner = "hunkyburrito"; repo = "xdg-desktop-portal-termfilechooser"; tag = "v${finalAttrs.version}"; - hash = "sha256-3w6O9Su9COz5dKM8O8wGhSPJ4Cdb9nCU8oIBvuC6qC4="; + hash = "sha256-IlPNNuQaGVW5QXcyA8cWiFJxwgXmviQoisDUWX9QP2s="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/xr/xremap/package.nix b/pkgs/by-name/xr/xremap/package.nix index b0e83c49a198..1f4ebe8fac54 100644 --- a/pkgs/by-name/xr/xremap/package.nix +++ b/pkgs/by-name/xr/xremap/package.nix @@ -6,16 +6,16 @@ }: let pname = "xremap"; - version = "0.10.16"; + version = "0.11.0"; src = fetchFromGitHub { owner = "xremap"; repo = "xremap"; tag = "v${version}"; - hash = "sha256-rBzjHrwAwFzHaF6JJzZDlfEFp+rSAkKaprOQk3kyDk8="; + hash = "sha256-Uzs1Pao/CV0pQd8AAk8FXD2v0O/wlFvmZkbHlqYCOEQ="; }; - cargoHash = "sha256-vGCoQG162riXe9zCh9IRWLmq5zgcNnYBnh44+2BNvwk="; + cargoHash = "sha256-F1ao5YJv9UiU53Hg3UunE2gZc6iiB95zmCWjiHSkmHk="; buildXremap = { diff --git a/pkgs/development/compilers/rust/rustc.nix b/pkgs/development/compilers/rust/rustc.nix index 089ef040e2a7..d8f25d52d850 100644 --- a/pkgs/development/compilers/rust/rustc.nix +++ b/pkgs/development/compilers/rust/rustc.nix @@ -291,11 +291,11 @@ stdenv.mkDerivation (finalAttrs: { runHook preInstall python ./x.py --keep-stage=0 --stage=1 install library/std - mkdir -v $out/bin $doc $man - ln -s ${rustc.unwrapped}/bin/{rustc,rustdoc} $out/bin - ln -s ${rustc.unwrapped}/libexec $out + mkdir -v $doc $man + ln -s ${rustc.unwrapped}/{bin,libexec} $out rm -rf -v $out/lib/rustlib/{manifest-rust-std-,}${stdenv.hostPlatform.rust.rustcTargetSpec} ln -s ${rustc.unwrapped}/lib/rustlib/{manifest-rust-std-,}${stdenv.hostPlatform.rust.rustcTargetSpec} $out/lib/rustlib/ + ln -s ${rustc.unwrapped}/lib/rustlib/etc $out/lib/rustlib/ echo rust-std-${stdenv.hostPlatform.rust.rustcTargetSpec} >> $out/lib/rustlib/components lndir ${rustc.doc} $doc lndir ${rustc.man} $man diff --git a/pkgs/development/python-modules/eth-utils/default.nix b/pkgs/development/python-modules/eth-utils/default.nix index 78a10d9a4c3d..556a2df20827 100644 --- a/pkgs/development/python-modules/eth-utils/default.nix +++ b/pkgs/development/python-modules/eth-utils/default.nix @@ -18,14 +18,14 @@ buildPythonPackage rec { pname = "eth-utils"; - version = "5.3.0"; + version = "5.3.1"; pyproject = true; src = fetchFromGitHub { owner = "ethereum"; repo = "eth-utils"; tag = "v${version}"; - hash = "sha256-VWNQyLfOEQTusdNHO/8/fWyGVFVwr1Cg1IfyNMSsfGQ="; + hash = "sha256-uyUsX9jX2KumrERrIc6nXloH0G+rQeKzFMwex+Mh3eM="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/imeon-inverter-api/default.nix b/pkgs/development/python-modules/imeon-inverter-api/default.nix index 5290f7b6bb40..6eb1bcacc2f3 100644 --- a/pkgs/development/python-modules/imeon-inverter-api/default.nix +++ b/pkgs/development/python-modules/imeon-inverter-api/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "imeon-inverter-api"; - version = "0.3.16"; + version = "0.4.0"; pyproject = true; src = fetchFromGitHub { owner = "Imeon-Inverters-for-Home-Assistant"; repo = "inverter-api"; tag = version; - hash = "sha256-zaGmzp9uOzjtDxca1EWGKQ/PYsKqMldv5mnxQlwfcX4="; + hash = "sha256-8tecWWDYFq+kAqWM9vKhM15LKnEVqaDBkH6jh0xwIsE="; }; build-system = [ pdm-pep517 ]; diff --git a/pkgs/development/python-modules/simsimd/default.nix b/pkgs/development/python-modules/simsimd/default.nix index 168390c25c89..43ea46749d15 100644 --- a/pkgs/development/python-modules/simsimd/default.nix +++ b/pkgs/development/python-modules/simsimd/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "simsimd"; - version = "6.5.2"; + version = "6.5.3"; pyproject = true; src = fetchFromGitHub { owner = "ashvardanian"; repo = "SimSIMD"; tag = "v${version}"; - hash = "sha256-1x0uRFjoNoGkQv4YwQ/84lR8k1Z9wy5X9ZlwO3q6wqo="; + hash = "sha256-vEtMBpBoPbnBjGaxGw7ApGTJ8RFJ7vQcAH0DF4AOIEE="; }; build-system = [ diff --git a/pkgs/development/python-modules/spyder-kernels/default.nix b/pkgs/development/python-modules/spyder-kernels/default.nix index 993a6ce62554..e9f655a617af 100644 --- a/pkgs/development/python-modules/spyder-kernels/default.nix +++ b/pkgs/development/python-modules/spyder-kernels/default.nix @@ -18,14 +18,14 @@ buildPythonPackage rec { pname = "spyder-kernels"; - version = "3.1.0a3"; + version = "3.1.0b1"; pyproject = true; src = fetchFromGitHub { owner = "spyder-ide"; repo = "spyder-kernels"; tag = "v${version}"; - hash = "sha256-7WFHvFf2L5/m/H0CNwkZHdJZd/jrEAXmmTcfRWQ+++w="; + hash = "sha256-bYpNWE6KHDD9CkDmTDIX3gZumLOhAyxITCGyWuSU2+o="; }; build-system = [ setuptools ];