aspect-build / rules_js

High-performance Bazel rules for running Node.js tools and building JavaScript projects
https://docs.aspect.build/rules/aspect_rules_js
Apache License 2.0
293 stars 98 forks source link

[Bug]: bsdtar.exe fails to run on Windows #1739

Open peakschris opened 1 month ago

peakschris commented 1 month ago

What happened?

With rules_js 1.42.1 on Windows, running js_test targets fails due to a missing crypto DLL:

D:\workspace>bazel test //src/test --verbose_failures WARNING: Streamed test output requested. All tests will be run locally, without sharding, one at a time INFO: Analyzed target //src/test:test (0 packages loaded, 0 targets configured). ERROR: D:/workspace/BUILD.bazel:6:22: Extracting npm package @types/node@20.12.12 failed: (Exit -1073741515): bsdtar.exe failed: error executing NpmPackageExtract command (from target //:.aspect_rules_js/node_modules/@types+node@20.12.12/pkg) cd /d D:/udu/b/nag22qmp/execroot/_main external\aspect_bazel_libtoolchains~bsd_tar_windows_amd64\libarchive\bin\bsdtar.exe --extract --no-same-owner --no-same-permissions --strip-components 1 --file external/aspect_rules_jsnpm~npmat_types_node20.12.12/package.tgz --directory bazel-out/x64_windows-opt/bin/node_modules/.aspect_rules_js/@types+node@20.12.12/node_modules/@types/node

Configuration: d850a7e5673f06961afdd7f68e62a46ae2620e12a4464604ad6d160b42ae6c5f

Execution platform: @@my_toolchain~//platforms:x64_windows

Target //src/test:test failed to build INFO: Elapsed time: 1.440s, Critical Path: 0.93s INFO: 41 processes: 41 internal. ERROR: Build did NOT complete successfully //src/test:test FAILED TO BUILD

Running the exe by double clicking is the easiest way to see what dependency is missing: image

The issue is that libcrypto-1_1-x64.dll is not found

Version

Development (host) and target OS/architectures:

Output of bazel --version: 7.2.0rc1

Version of the Aspect rules, or other relevant rules from your WORKSPACE or MODULE.bazel file: 1.42.1

Language(s) and/or frameworks involved: node 18.20.0

How to reproduce

No response

Any other information?

No response

alexeagle commented 1 month ago

This is blocked on upstream: https://github.com/bazelbuild/bazel-central-registry/pull/1916

stagnation commented 1 week ago

The upstream commit is merged. Do we expect this to work now? I'll look into overriding versions to see if there is something that hasn't trickled down to me yet, or whether something is held back that shouldn't be.

I can give you the mod graph if that helps.

ERROR: C:/tmp/eprbnvuo/external/com_github_buildbarn_bb_storage~/BUILD.bazel:28:22: Extracting npm package purgecss@6.0.0 [for tool] failed: (Exit -1073741515): bsdtar.exe failed: error executing NpmPackageExtract command (from target @@com_github_buildbarn_bb_storage~//:.aspect_rules_js/node_modules/purgecss@6.0.0/pkg)
  cd /d C:/tmp/eprbnvuo/execroot/_main
external\aspect_bazel_lib~~toolchains~bsd_tar_windows_amd64\libarchive\bin\bsdtar.exe --extract --no-same-owner --no-same-permissions --strip-components 1 --file external/aspect_rules_js~~npm~com_github_buildbarn_bb_storage_npm__purgecss__6.0.0/package.tgz --directory bazel-out/x64_windows-opt-exec-ST-d57f47055a04/bin/external/com_github_buildbarn_bb_storage~/node_modules/.aspect_rules_js/purgecss@6.0.0/node_modules/purgecss
$ external\\aspect_bazel_lib~~toolchains~bsd_tar_windows_amd64\\libarchive\\bin\\bsdtar.exe --extract --no-same-owner --no-same-permissions --strip-components 1 --file external/aspect_rules_js~~npm~com_github_buildbarn_bb_storage_npm__purgecss__6.0.0/package.tgz --directory bazel-out/x64_windows-opt-exec-ST-d57f47055a04/bin/external/com_github_buildbarn_bb_storage~/node_modules/.aspect_rules_js/purgecss@6.0.0/node_modules/purgecss
C:/tmp/eprbnvuo/execroot/_main/external/aspect_bazel_lib~~toolchains~bsd_tar_windows_amd64/libarchive/bin/bsdtar.exe: error while loading shared libraries: libcrypto-1_1-x64.dll: cannot open shared object file: No such file or directory
$ bazel mod graph | grep -e aspect_rules_js -e bazel_lib
├───aspect_bazel_lib@2.6.0                                                                                                                            
├───aspect_rules_js@1.42.3
│   ├───aspect_bazel_lib@2.6.0 (*)
│   ├───aspect_rules_js@1.42.3 (*)
│   ├───aspect_bazel_lib@2.6.0 (*)
│   ├───aspect_rules_js@1.42.3 (*)
│   ├───aspect_bazel_lib@2.6.0 (*)
│   ├───aspect_rules_js@1.42.3 (*)
│   ├───aspect_bazel_lib@2.6.0 (*)
stagnation commented 1 week ago

Do we expect this to work now?

No, https://github.com/aspect-build/bsdtar-prebuilt/issues/3