From 6b53d019df564362d2accb7ad8aeeb89a5599688 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Tue, 28 Jan 2025 11:23:53 +0100 Subject: [PATCH 1/3] fetchCrate: expose pname and version in passthru --- pkgs/build-support/rust/fetchcrate.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/build-support/rust/fetchcrate.nix b/pkgs/build-support/rust/fetchcrate.nix index 63a6295002534..b34f0336691b5 100644 --- a/pkgs/build-support/rust/fetchcrate.nix +++ b/pkgs/build-support/rust/fetchcrate.nix @@ -21,6 +21,8 @@ assert pname == null || pname == crateName; { name = "${crateName}-${version}.tar.gz"; url = "${registryDl}/${crateName}/${version}/download"; + + passthru = { inherit pname version; }; } // lib.optionalAttrs unpack { extension = "tar.gz"; From 42ddad0e584180edd10de106839fc50588d6205d Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Tue, 28 Jan 2025 11:24:22 +0100 Subject: [PATCH 2/3] buildWasmBindgenCli,wasm-bindgen-cli-*: init Exposing an overridable cargoHash parameter is problematic because it will produce silently broken FODs if we change the hashing scheme, which we are currently doing across the tree because Cargo 1.84.0 has changed the output of fetchCargoTarball, meaning all hashes have been invalidated. To avoid this happening in future, we are changing to the fetchCargoVendor mechanism, which does not depend on implementation details of Cargo. The future-proof way to override a package with Cargo dependencies is to pass a cargoDeps object. This is more verbose, and requires the caller to have access to the src object for the package. To compensate for this, I've introduced a buildWasmBindgenCli function that is nicer to use than wasm-bindgen-cli.overrideAttrs, and I've also introduced versioned attributes for wasm-bindgen-cli versions currently in use in Nixpkgs, so that each package that wants to use a particular version doesn't have to duplicate the src and cargoDeps definitions for that version. The unversioned "wasm-bindgen-cli" attribute is demoted to an alias, with a view to its eventual removal. --- pkgs/applications/misc/pagefind/default.nix | 10 ++---- .../wasm-bindgen-cli/default.nix} | 12 ++++--- pkgs/by-name/ll/lldap/package.nix | 10 ++---- pkgs/by-name/st/stalwart-mail/webadmin.nix | 9 ++---- pkgs/by-name/tp/tpsecore/package.nix | 10 ++---- .../wa/wasm-bindgen-cli_0_2_100/package.nix | 19 ++++++++++++ .../wa/wasm-bindgen-cli_0_2_92/package.nix | 19 ++++++++++++ .../wa/wasm-bindgen-cli_0_2_93/package.nix | 19 ++++++++++++ .../wa/wasm-bindgen-cli_0_2_95/package.nix | 19 ++++++++++++ pkgs/servers/teleport/15/default.nix | 9 +----- pkgs/servers/teleport/16/default.nix | 9 +----- pkgs/servers/teleport/default.nix | 31 ++++++++++++++++--- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 3 ++ 14 files changed, 125 insertions(+), 55 deletions(-) rename pkgs/{by-name/wa/wasm-bindgen-cli/package.nix => build-support/wasm-bindgen-cli/default.nix} (78%) create mode 100644 pkgs/by-name/wa/wasm-bindgen-cli_0_2_100/package.nix create mode 100644 pkgs/by-name/wa/wasm-bindgen-cli_0_2_92/package.nix create mode 100644 pkgs/by-name/wa/wasm-bindgen-cli_0_2_93/package.nix create mode 100644 pkgs/by-name/wa/wasm-bindgen-cli_0_2_95/package.nix diff --git a/pkgs/applications/misc/pagefind/default.nix b/pkgs/applications/misc/pagefind/default.nix index 84164c0b04f0c..f0096de5ae097 100644 --- a/pkgs/applications/misc/pagefind/default.nix +++ b/pkgs/applications/misc/pagefind/default.nix @@ -12,7 +12,7 @@ npmHooks, python3, rustc, - wasm-bindgen-cli, + wasm-bindgen-cli_0_2_92, wasm-pack, }: @@ -20,12 +20,6 @@ let - wasm-bindgen-92 = wasm-bindgen-cli.override { - version = "0.2.92"; - hash = "sha256-1VwY8vQy7soKEgbki4LD+v259751kKxSxmo/gqE6yV0="; - cargoHash = "sha256-aACJ+lYNEU8FFBs158G1/JG8sc6Rq080PeKCMnwdpH0="; - }; - # the lindera-unidic v0.32.2 crate uses [1] an outdated unidic-mecab fork [2] and builds it in pure rust # [1] https://github.com/lindera/lindera/blob/v0.32.2/lindera-unidic/build.rs#L5-L11 # [2] https://github.com/lindera/unidic-mecab @@ -121,7 +115,7 @@ rustPlatform.buildRustPackage rec { nodejs rustc rustc.llvmPackages.lld - wasm-bindgen-92 + wasm-bindgen-cli_0_2_92 wasm-pack httplz ] diff --git a/pkgs/by-name/wa/wasm-bindgen-cli/package.nix b/pkgs/build-support/wasm-bindgen-cli/default.nix similarity index 78% rename from pkgs/by-name/wa/wasm-bindgen-cli/package.nix rename to pkgs/build-support/wasm-bindgen-cli/default.nix index 9fd1db1cdcde6..4597009c387b8 100644 --- a/pkgs/by-name/wa/wasm-bindgen-cli/package.nix +++ b/pkgs/build-support/wasm-bindgen-cli/default.nix @@ -9,16 +9,18 @@ stdenv, curl, darwin, - version ? "0.2.100", - hash ? "sha256-3RJzK7mkYFrs7C/WkhW9Rr4LdP5ofb2FdYGz1P7Uxog=", - cargoHash ? "sha256-tD0OY2PounRqsRiFh8Js5nyknQ809ZcHMvCOLrvYHRE=", +}: + +{ + version ? src.version, + src, + cargoDeps, }: rustPlatform.buildRustPackage rec { pname = "wasm-bindgen-cli"; - inherit version hash cargoHash; - src = fetchCrate { inherit pname version hash; }; + inherit version src cargoDeps; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/by-name/ll/lldap/package.nix b/pkgs/by-name/ll/lldap/package.nix index 17d6aa009cf0d..e3092f19fbff3 100644 --- a/pkgs/by-name/ll/lldap/package.nix +++ b/pkgs/by-name/ll/lldap/package.nix @@ -5,19 +5,13 @@ , nixosTests , rustPlatform , rustc -, wasm-bindgen-cli +, wasm-bindgen-cli_0_2_95 , wasm-pack , which }: let - wasm-bindgen-95 = wasm-bindgen-cli.override { - version = "0.2.95"; - hash = "sha256-prMIreQeAcbJ8/g3+pMp1Wp9H5u+xLqxRxL+34hICss="; - cargoHash = "sha256-6iMebkD7FQvixlmghGGIvpdGwFNLfnUcFke/Rg8nPK4="; - }; - commonDerivationAttrs = rec { pname = "lldap"; version = "0.6.1"; @@ -44,7 +38,7 @@ let pname = commonDerivationAttrs.pname + "-frontend"; nativeBuildInputs = [ - wasm-pack wasm-bindgen-95 binaryen which rustc rustc.llvmPackages.lld + wasm-pack wasm-bindgen-cli_0_2_95 binaryen which rustc rustc.llvmPackages.lld ]; buildPhase = '' diff --git a/pkgs/by-name/st/stalwart-mail/webadmin.nix b/pkgs/by-name/st/stalwart-mail/webadmin.nix index 8776839677eb4..8cf8b5418d44f 100644 --- a/pkgs/by-name/st/stalwart-mail/webadmin.nix +++ b/pkgs/by-name/st/stalwart-mail/webadmin.nix @@ -9,7 +9,7 @@ nodejs, npmHooks, llvmPackages, - wasm-bindgen-cli, + wasm-bindgen-cli_0_2_93, binaryen, zip, }: @@ -46,11 +46,8 @@ rustPlatform.buildRustPackage rec { tailwindcss trunk # needs to match with wasm-bindgen version in upstreams Cargo.lock - (wasm-bindgen-cli.override { - version = "0.2.93"; - hash = "sha256-DDdu5mM3gneraM85pAepBXWn3TMofarVR4NbjMdz3r0="; - cargoHash = "sha256-birrg+XABBHHKJxfTKAMSlmTVYLmnmqMDfRnmG6g/YQ="; - }) + wasm-bindgen-cli_0_2_93 + zip ]; diff --git a/pkgs/by-name/tp/tpsecore/package.nix b/pkgs/by-name/tp/tpsecore/package.nix index 6d87efd6ec369..e8e50ea26e6aa 100644 --- a/pkgs/by-name/tp/tpsecore/package.nix +++ b/pkgs/by-name/tp/tpsecore/package.nix @@ -4,18 +4,12 @@ rustPlatform, rustc, wasm-pack, - wasm-bindgen-cli, + wasm-bindgen-cli_0_2_95, binaryen, }: let version = "0.1.1"; - - wasm-bindgen-cli-95 = wasm-bindgen-cli.override { - version = "0.2.95"; - hash = "sha256-prMIreQeAcbJ8/g3+pMp1Wp9H5u+xLqxRxL+34hICss="; - cargoHash = "sha256-6iMebkD7FQvixlmghGGIvpdGwFNLfnUcFke/Rg8nPK4="; - }; in rustPlatform.buildRustPackage { pname = "tpsecore"; @@ -32,7 +26,7 @@ rustPlatform.buildRustPackage { nativeBuildInputs = [ wasm-pack - wasm-bindgen-cli-95 + wasm-bindgen-cli_0_2_95 binaryen rustc.llvmPackages.lld ]; diff --git a/pkgs/by-name/wa/wasm-bindgen-cli_0_2_100/package.nix b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_100/package.nix new file mode 100644 index 0000000000000..cbcf8d30385ec --- /dev/null +++ b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_100/package.nix @@ -0,0 +1,19 @@ +{ + buildWasmBindgenCli, + fetchCrate, + rustPlatform, +}: + +buildWasmBindgenCli rec { + src = fetchCrate { + pname = "wasm-bindgen-cli"; + version = "0.2.100"; + hash = "sha256-3RJzK7mkYFrs7C/WkhW9Rr4LdP5ofb2FdYGz1P7Uxog="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + inherit (src) pname version; + hash = "sha256-tD0OY2PounRqsRiFh8Js5nyknQ809ZcHMvCOLrvYHRE="; + }; +} diff --git a/pkgs/by-name/wa/wasm-bindgen-cli_0_2_92/package.nix b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_92/package.nix new file mode 100644 index 0000000000000..b99c6e6ac2aed --- /dev/null +++ b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_92/package.nix @@ -0,0 +1,19 @@ +{ + buildWasmBindgenCli, + fetchCrate, + rustPlatform, +}: + +buildWasmBindgenCli rec { + src = fetchCrate { + pname = "wasm-bindgen-cli"; + version = "0.2.92"; + hash = "sha256-1VwY8vQy7soKEgbki4LD+v259751kKxSxmo/gqE6yV0="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + inherit (src) pname version; + hash = "sha256-aACJ+lYNEU8FFBs158G1/JG8sc6Rq080PeKCMnwdpH0="; + }; +} diff --git a/pkgs/by-name/wa/wasm-bindgen-cli_0_2_93/package.nix b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_93/package.nix new file mode 100644 index 0000000000000..0ae402f94d0d7 --- /dev/null +++ b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_93/package.nix @@ -0,0 +1,19 @@ +{ + buildWasmBindgenCli, + fetchCrate, + rustPlatform, +}: + +buildWasmBindgenCli rec { + src = fetchCrate { + pname = "wasm-bindgen-cli"; + version = "0.2.93"; + hash = "sha256-DDdu5mM3gneraM85pAepBXWn3TMofarVR4NbjMdz3r0="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + inherit (src) pname version; + hash = "sha256-birrg+XABBHHKJxfTKAMSlmTVYLmnmqMDfRnmG6g/YQ="; + }; +} diff --git a/pkgs/by-name/wa/wasm-bindgen-cli_0_2_95/package.nix b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_95/package.nix new file mode 100644 index 0000000000000..1061677a69559 --- /dev/null +++ b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_95/package.nix @@ -0,0 +1,19 @@ +{ + buildWasmBindgenCli, + fetchCrate, + rustPlatform, +}: + +buildWasmBindgenCli rec { + src = fetchCrate { + pname = "wasm-bindgen-cli"; + version = "0.2.95"; + hash = "sha256-prMIreQeAcbJ8/g3+pMp1Wp9H5u+xLqxRxL+34hICss="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + inherit (src) pname version; + hash = "sha256-6iMebkD7FQvixlmghGGIvpdGwFNLfnUcFke/Rg8nPK4="; + }; +} diff --git a/pkgs/servers/teleport/15/default.nix b/pkgs/servers/teleport/15/default.nix index 7df86df8c40d0..7062e418a6286 100644 --- a/pkgs/servers/teleport/15/default.nix +++ b/pkgs/servers/teleport/15/default.nix @@ -1,4 +1,4 @@ -{ wasm-bindgen-cli, ... }@args: +args: import ../generic.nix ( args // { @@ -14,12 +14,5 @@ import ../generic.nix ( "sspi-0.10.1" = "sha256-fkclC/plTh2d8zcmqthYmr5yXqbPTeFxI1VuaPX5vxk="; }; }; - - # wasm-bindgen-cli version must match the version of wasm-bindgen in Cargo.lock - wasm-bindgen-cli = wasm-bindgen-cli.override { - version = "0.2.92"; - hash = "sha256-1VwY8vQy7soKEgbki4LD+v259751kKxSxmo/gqE6yV0="; - cargoHash = "sha256-aACJ+lYNEU8FFBs158G1/JG8sc6Rq080PeKCMnwdpH0="; - }; } ) diff --git a/pkgs/servers/teleport/16/default.nix b/pkgs/servers/teleport/16/default.nix index 5ef66c9ce8a35..b13d176999439 100644 --- a/pkgs/servers/teleport/16/default.nix +++ b/pkgs/servers/teleport/16/default.nix @@ -1,4 +1,4 @@ -{ wasm-bindgen-cli, ... }@args: +args: import ../generic.nix ( args // { @@ -13,12 +13,5 @@ import ../generic.nix ( "ironrdp-async-0.1.0" = "sha256-DOwDHavDaEda+JK9M6kbvseoXe2LxJg3MLTY/Nu+PN0="; }; }; - - # wasm-bindgen-cli version must match the version of wasm-bindgen in Cargo.lock - wasm-bindgen-cli = wasm-bindgen-cli.override { - version = "0.2.93"; - hash = "sha256-DDdu5mM3gneraM85pAepBXWn3TMofarVR4NbjMdz3r0="; - cargoHash = "sha256-birrg+XABBHHKJxfTKAMSlmTVYLmnmqMDfRnmG6g/YQ="; - }; } ) diff --git a/pkgs/servers/teleport/default.nix b/pkgs/servers/teleport/default.nix index eb8f6fb4492e0..83c9844558832 100644 --- a/pkgs/servers/teleport/default.nix +++ b/pkgs/servers/teleport/default.nix @@ -1,11 +1,34 @@ -{ callPackages, lib, ... }@args: +{ + callPackages, + lib, + wasm-bindgen-cli_0_2_92, + wasm-bindgen-cli_0_2_93, + ... +}@args: let f = args: rec { - teleport_15 = import ./15 args; - teleport_16 = import ./16 args; + # wasm-bindgen-cli version must match the version of wasm-bindgen in Cargo.lock + teleport_15 = import ./15 ( + args + // { + wasm-bindgen-cli = wasm-bindgen-cli_0_2_92; + } + ); + teleport_16 = import ./16 ( + args + // { + wasm-bindgen-cli = wasm-bindgen-cli_0_2_93; + } + ); teleport = teleport_16; }; # Ensure the following callPackages invocation includes everything 'generic' needs. f' = lib.setFunctionArgs f (builtins.functionArgs (import ./generic.nix)); in -callPackages f' (builtins.removeAttrs args [ "callPackages" ]) +callPackages f' ( + builtins.removeAttrs args [ + "callPackages" + "wasm-bindgen-cli_0_2_92" + "wasm-bindgen-cli_0_2_93" + ] +) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index c286843179d90..1990a28896482 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1478,6 +1478,7 @@ mapAliases { wakatime = wakatime-cli; # 2024-05-30 wal_e = throw "wal_e was removed as it is unmaintained upstream and depends on the removed boto package; upstream recommends using wal-g or pgbackrest"; # Added 2024-09-22 wapp = tclPackages.wapp; # Added 2024-10-02 + wasm-bindgen-cli = wasm-bindgen-cli_0_2_100; wayfireApplications-unwrapped = throw '' 'wayfireApplications-unwrapped.wayfire' has been renamed to/replaced by 'wayfire' 'wayfireApplications-unwrapped.wayfirePlugins' has been renamed to/replaced by 'wayfirePlugins' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 24ca4786cd2b5..39c691e125b94 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5353,6 +5353,9 @@ with pkgs; webassemblyjs-cli = nodePackages."@webassemblyjs/cli-1.11.1"; webassemblyjs-repl = nodePackages."@webassemblyjs/repl-1.11.1"; + + buildWasmBindgenCli = callPackage ../build-support/wasm-bindgen-cli { }; + wasm-strip = nodePackages."@webassemblyjs/wasm-strip"; wasm-text-gen = nodePackages."@webassemblyjs/wasm-text-gen-1.11.1"; wast-refmt = nodePackages."@webassemblyjs/wast-refmt-1.11.1"; From c79f97c7874c8934be68ae34d4eac2613f9e375e Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Tue, 28 Jan 2025 11:35:59 +0100 Subject: [PATCH 3/3] wasm-bindgen-cli_*: fetchCargoTarball -> fetchCargoVendor Cargo 1.84.0 seems to have changed the output format of cargo vendor again, once again invalidating fetchCargoTarball FOD hashes. It's time to fix this once and for all, switching across the board to fetchCargoVendor, which is not dependent on cargo vendor's output format. --- pkgs/by-name/wa/wasm-bindgen-cli_0_2_100/package.nix | 4 ++-- pkgs/by-name/wa/wasm-bindgen-cli_0_2_92/package.nix | 4 ++-- pkgs/by-name/wa/wasm-bindgen-cli_0_2_93/package.nix | 4 ++-- pkgs/by-name/wa/wasm-bindgen-cli_0_2_95/package.nix | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/wa/wasm-bindgen-cli_0_2_100/package.nix b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_100/package.nix index cbcf8d30385ec..0def66ce256e2 100644 --- a/pkgs/by-name/wa/wasm-bindgen-cli_0_2_100/package.nix +++ b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_100/package.nix @@ -11,9 +11,9 @@ buildWasmBindgenCli rec { hash = "sha256-3RJzK7mkYFrs7C/WkhW9Rr4LdP5ofb2FdYGz1P7Uxog="; }; - cargoDeps = rustPlatform.fetchCargoTarball { + cargoDeps = rustPlatform.fetchCargoVendor { inherit src; inherit (src) pname version; - hash = "sha256-tD0OY2PounRqsRiFh8Js5nyknQ809ZcHMvCOLrvYHRE="; + hash = "sha256-qsO12332HSjWCVKtf1cUePWWb9IdYUmT+8OPj/XP2WE="; }; } diff --git a/pkgs/by-name/wa/wasm-bindgen-cli_0_2_92/package.nix b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_92/package.nix index b99c6e6ac2aed..3d908a9501ffd 100644 --- a/pkgs/by-name/wa/wasm-bindgen-cli_0_2_92/package.nix +++ b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_92/package.nix @@ -11,9 +11,9 @@ buildWasmBindgenCli rec { hash = "sha256-1VwY8vQy7soKEgbki4LD+v259751kKxSxmo/gqE6yV0="; }; - cargoDeps = rustPlatform.fetchCargoTarball { + cargoDeps = rustPlatform.fetchCargoVendor { inherit src; inherit (src) pname version; - hash = "sha256-aACJ+lYNEU8FFBs158G1/JG8sc6Rq080PeKCMnwdpH0="; + hash = "sha256-81vQkKubMWaX0M3KAwpYgMA1zUQuImFGvh5yTW+rIAs="; }; } diff --git a/pkgs/by-name/wa/wasm-bindgen-cli_0_2_93/package.nix b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_93/package.nix index 0ae402f94d0d7..a76e94595f735 100644 --- a/pkgs/by-name/wa/wasm-bindgen-cli_0_2_93/package.nix +++ b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_93/package.nix @@ -11,9 +11,9 @@ buildWasmBindgenCli rec { hash = "sha256-DDdu5mM3gneraM85pAepBXWn3TMofarVR4NbjMdz3r0="; }; - cargoDeps = rustPlatform.fetchCargoTarball { + cargoDeps = rustPlatform.fetchCargoVendor { inherit src; inherit (src) pname version; - hash = "sha256-birrg+XABBHHKJxfTKAMSlmTVYLmnmqMDfRnmG6g/YQ="; + hash = "sha256-s8srI+lu+DgQ+5BbaEXC4Ja/BL+K22LIl5Gd1PwNZZk="; }; } diff --git a/pkgs/by-name/wa/wasm-bindgen-cli_0_2_95/package.nix b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_95/package.nix index 1061677a69559..34c590a4a2501 100644 --- a/pkgs/by-name/wa/wasm-bindgen-cli_0_2_95/package.nix +++ b/pkgs/by-name/wa/wasm-bindgen-cli_0_2_95/package.nix @@ -11,9 +11,9 @@ buildWasmBindgenCli rec { hash = "sha256-prMIreQeAcbJ8/g3+pMp1Wp9H5u+xLqxRxL+34hICss="; }; - cargoDeps = rustPlatform.fetchCargoTarball { + cargoDeps = rustPlatform.fetchCargoVendor { inherit src; inherit (src) pname version; - hash = "sha256-6iMebkD7FQvixlmghGGIvpdGwFNLfnUcFke/Rg8nPK4="; + hash = "sha256-+h87/onAdpG0Jmeuy0Wd2djLFOAyaE52cAfxDVVcgP8="; }; }