diff --git a/pkgs/development/interpreters/wasmtime/default.nix b/pkgs/development/interpreters/wasmtime/default.nix index 816b854b99eb2..7f00faa76476b 100644 --- a/pkgs/development/interpreters/wasmtime/default.nix +++ b/pkgs/development/interpreters/wasmtime/default.nix @@ -1,31 +1,41 @@ -{ rustPlatform, fetchFromGitHub, lib, python3, cmake, llvmPackages, clang, stdenv, darwin }: +{ rustPlatform, fetchFromGitHub, lib, v8 }: rustPlatform.buildRustPackage rec { pname = "wasmtime"; - version = "0.21.0"; + version = "0.35.2"; src = fetchFromGitHub { owner = "bytecodealliance"; repo = pname; rev = "v${version}"; - sha256 = "0q7wsnq5zdskxwzsxwm98jfnv2frnwca1dkhwndcn9yyz2gyw57m"; + sha256 = "sha256-4oZglk7MInLIsvbeCfs4InAcmSmzZp16XL5+8eoYXJk="; fetchSubmodules = true; }; - cargoSha256 = "1wlig9gls7s1k1swxwhl82vfga30bady8286livxc4y2zp0vb18w"; + cargoSha256 = "sha256-IqFOw9bGdM3IEoMeqDlxKfLnZvR80PSnwP9kr1tI/h0="; - nativeBuildInputs = [ python3 cmake clang ]; - buildInputs = [ llvmPackages.libclang ] ++ - lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ]; - LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; + # This environment variable is required so that when wasmtime tries + # to run tests by using the rusty_v8 crate, it does not try to + # download a static v8 build from the Internet, what would break + # build hermetism. + RUSTY_V8_ARCHIVE = "${v8}/lib/libv8.a"; doCheck = true; + checkFlags = [ + "--skip=cli_tests::run_cwasm" + "--skip=commands::compile::test::test_successful_compile" + "--skip=commands::compile::test::test_aarch64_flags_compile" + "--skip=commands::compile::test::test_unsupported_flags_compile" + "--skip=commands::compile::test::test_x64_flags_compile" + "--skip=commands::compile::test::test_x64_presets_compile" + "--skip=traps::parse_dwarf_info" + ]; meta = with lib; { description = "Standalone JIT-style runtime for WebAssembly, using Cranelift"; homepage = "https://github.com/bytecodealliance/wasmtime"; license = licenses.asl20; maintainers = [ maintainers.matthewbauer ]; - platforms = platforms.unix; + platforms = platforms.linux; }; }