#1092721 rollup: please package v4.x

#1092721#5
Date:
2025-01-10 21:00:01 UTC
From:
To:
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.

#1092721#10
Date:
2026-02-08 06:04:19 UTC
From:
To:

We're having to switch chromium away from the system rollup at this
point, due to its age.

#1092721#15
Date:
2026-03-22 10:27:41 UTC
From:
To:
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

#1092721#20
Date:
2026-10-05 02:35:40 UTC
From:
To:
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.

#1092721#25
Date:
2026-10-05 04:50:54 UTC
From:
To:
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

#1092721#30
Date:
2026-10-05 06:27:52 UTC
From:
To:
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.

#1092721#35
Date:
2026-10-05 07:26:47 UTC
From:
To:
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

#1092721#40
Date:
2026-10-05 08:29:19 UTC
From:
To:
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