Chromium now requires rollup with native wasm support, which was introduced in Rollup 4. It would be great to get rollup 4.30 or newer in time for Trixie.
We're having to switch chromium away from the system rollup at this point, due to its age.
Rollup 4.x ships a Rust/WASM parser (based on SWC) that replaces the pure-JS parser from v3. Building the WASM module requires a significant number of Rust crate dependencies. Current status of the Rust dependency tree (207 external crates needed): - 157 crates are already available in Debian - 50 are missing, but ~20 of those are platform-specific (Windows, napi-native, mimalloc) and not needed for the WASM build target The main blockers for the WASM build are: 1. SWC ecma crates (~17 crates: swc_ecma_ast, swc_ecma_parser, swc_ecma_codegen, swc_ecma_minifier, etc.) — these could potentially be added to the existing rust-swc-core source package (which already provides swc_common, swc_atoms, etc. at v58) 2. SWC infra crates (swc_compiler_base, swc_config, swc_sourcemap, swc_timer) — same story 3. ICU4X crates (7 crates) — Blair Noctis has an ITP for icu4x (#1101486), experimental, not expected for trixie 4. Misc small crates (base-encode, radix_fmt, dragonbox_ecma, unicode-id-start, zerotrie, etc.) Related ITPs: - #991761 (swc) — Jérémy Lal / Jonas Smedegaard - #996634 (node-napi-rs) — Jonas Smedegaard - #1101486 (icu4x) — Blair Noctis
Rollup 4.63.3, which Chromium needs, is ready for another review in https://salsa.debian.org/js-team/node-rollup/-/merge_requests/8, which replaces https://salsa.debian.org/js-team/node-rollup/-/merge_requests/7. It builds the SWC parser from the archive's crates and vendors none. CI is red only because it needs rust-swc-core 77.1.2+ds-2, which adds swc_ecma_parser and swc_compiler_base and is not in unstable yet (https://bugs.debian.org/991761). Against those packages it builds and its autopkgtest passes.
Le 05/10/2026 à 04:35, Juan Manuel Méndez Rey a écrit : Hi, rollup-4.x is based on Rust, and it seems that many libraries are missing
Hi Xavier, That was the state in March, it has changed since. The Rust part of rollup 4.63.3 now build-depends only on these packages, all in unstable: librust-anyhow-dev, librust-base-encode-dev, librust-console-error-panic-hook-dev, librust-js-sys-dev, librust-parking-lot-dev, librust-swc-core-dev, librust-wasm-bindgen-dev, librust-xxhash-rust-dev The only gap is the rust-swc-core version: 77.1.2+ds-2 adds swc_ecma_parser and swc_compiler_base (with swc_ecma_codegen and swc_ecma_minifier, which swc_compiler_base needs). The rest of your March list is solved: base-encode, radix_fmt and dragonbox_ecma are in the archive, ICU4X is not needed because Debian's idna_adapter uses unicode-normalization, rust-swc-core replaces unicode-id-start with unicode-ident, and the napi and Windows crates are not used by the WASM build. The +ds tarball ships an empty rust/vendor, so no crate is vendored; debian/README.source on the MR branch explains how it is made.
Le 05/10/2026 à 08:27, Juan Manuel Méndez Rey a écrit : Thanks for the update, and sorry: my last message was based on the state in March. You've cleared most of that list since then, and building only the WASM parser to avoid napi/mimalloc is a nice approach. I checked the archive on my side, and it matches what you describe. Everything the Rust part needs is in unstable except the swc ecma crates. So the only blocker left is the rust-swc-core version that adds swc_ecma_parser and swc_compiler_base. I couldn't find 77.1.2+ds-2 anywhere, though. It's not in the NEW queue or on debian/rust-swc-core, and the debian/latest branch of your fork is still at 76.0.2. Could you push the branch you built it from (or open a MR on debian/rust-swc-core)? Then I can rebuild it locally and test MR !8 against it while we wait for the upload. I'll review MR !8 meanwhile. Since chromium needs it, I'd like node-rollup 4 to be ready to upload as soon as swc-core lands. Thanks again for all this work! Cheers, Xavier
Hi Xavier, Thanks, and no worries. debian/rust-swc-core has merge requests disabled, so the diff is in my fork, on top of 77.1.2+ds-1: https://salsa.debian.org/mendezr/rust-swc-core/-/merge_requests/2 Request to the maintainers: https://bugs.debian.org/1150006 The orig is the archive's rust-swc-core_77.1.2+ds.orig.tar.xz. For a local rebuild today: unstable now has prettyplease 0.3.0, which leaves libsqlite3-sys uninstallable, and with it the current swc-core-dev. A chroot from snapshot 20261005T000000Z builds it. MR !8 builds and passes autopkgtest against packages built from that branch. Thanks, Juan