Skip to content

[ci skip] New package: electron42-42.11.3 - #62494

Open
ar-jan wants to merge 2 commits into
void-linux:masterfrom
ar-jan:electron42
Open

[ci skip] New package: electron42-42.11.3#62494
ar-jan wants to merge 2 commits into
void-linux:masterfrom
ar-jan:electron42

Conversation

@ar-jan

@ar-jan ar-jan commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Testing the changes

  • I tested the changes in this PR: YES

I built vscode (current outdated 1.100.3 xbps version) with electron42 and tested that locally (x86_64-glibc).

New package

Local build testing

  • I built this PR locally for my native architecture, x86_64-glibc.
  • I built this PR locally for these architectures:
    • x86_64-musl
    • cross: aarch64
    • cross: aarch64-musl

The template is even more involved than usual, because Electron v42 requires Chromium 148.0.7778.280, but for some reason no distribution tarball of .280 exists, the last available v148 distribution package is 148.0.7778.215. The most readable solution to get .280 seemed to be to start with .215 and merge changes from the .280 git archive into that tree. That meant deletion of some files from the .215 file tree and updating a number of the Chromium dependencies to the versions specified for .280.

Most of the patches are either identical to the ones used previously for Chromium 148 / Electron 35 / Electron 39 PR, or only rebased. A few patches contain further changes, and there are 3 new patches.

I've used AI assistance throughout for troubleshooting compilation issues, rebasing and adjusting the patches, and suggestions for fixes based on templates and patches for chromium, electron33, electron35, the electron39 PR, and from general AI review. I've read all the changes and checked that they resolve the build issues that prompted them. But while the changes look reasonable to me, I'm hoping someone with more expertise in these languages and compilers can verify they are the right approach. A table with an overview of all the patch sources and modifications follows.

I've not placed myself as maintainer, anyone up to take this over?

Electron 42 patches

Patch overview generated with gpt-6-astra@low:

  • C148: Void Chromium 148 at 8fcd9e06574.
  • E39: the unmerged electron39 PR branch.
  • E35: Void's current electron35.
  • As-is: byte-for-byte identical reuse from the named Void baseline.
  • Rebased: the same intended fix adapted to paths/context or removed upstream variables.
  • Further modified: the hunk selection or behavior changed; the reason is stated.
  • New: electron42-specific packaging fix.

Common Chromium patches — all targets

Patch Source Reuse and adaptation
angle-wayland-include.patch C148; identical in E35/E39. As-is.
chromium-138-rust-clang_lib.patch C148; equivalent original in E39. Rebased to the pinned target-layout context.
chromium-141-cssstylesheet-iwyu.patch C148. As-is.
chromium-143-revert-libpng_for_testonly.patch C148, including .patch.args. As-is, applied in reverse using the supplied -R -Np1 arguments.
chromium-145-iwyu-dev_t.patch C148. As-is.
chromium-146-sanitize-ignore-for-ubsan-feature.patch C148. As-is.
chromium-147-llvm-22.patch C148. As-is.
chromium-147-rust-1.95-bytemuck.patch C148. As-is.
chromium-148-rust-toolchain-var.patch C148. As-is.
chromium-148-sanitize-ignore-for-ubsan-feature.patch C148. As-is.
chromium-148-v8-no-san-trap.patch C148. As-is.
chromium-cross-toolchain.patch E39 files/patches/chromium-141-cross-toolchain.patch, adapted to Chromium 148. Further modified: rebase, correct host/target selection, and use complete installed Rust sysroots including .rmeta.
chromium-system-nodejs.patch C148; original also in E35/E39. Rebased for RunNodeRaw and the pinned indentation.
cr138-node-version-check.patch C148; identical in E39. As-is.

Musl compatibility patches — musl targets only

Patch Source Reuse and adaptation
chromium-138-rust-musl-targets.patch C148; original also in E39. Rebased after upstream removed cargo_target_abi; retain equivalent target selection.
chromium-140-musl-prctl.patch C148; identical in E39. As-is.
chromium-143--libsync-__BEGIN_DECLS.patch C148. As-is.
chromium-147-musl-toolchain.patch C148; supersedes older E39 toolchain/libc++ patches. Rebased across compiler/libc++ context and relocated creation of musl.gni; intended settings unchanged.
chromium-aarch64-musl.patch C148 chromium-147-aarch64-musl-no-memory-tagging.patch. Rebased with the same settings/import. The companion fix-aarch64-musl-memory-tagging-macros.patch is not imported because disabled tagging makes its fallback macros unnecessary.
chromium-cross-musl-toolchain.patch Electron42-specific extension of its E39-derived cross toolchains. New: propagate host-libc settings to host/snapshot/Rust toolchains and Node js2c's separate V8 toolchain.
electron-environ.patch Electron42-specific adaptation of Electron's environment implementation. New: remove the glibc version API, always use retained storage on musl, and match musl declarations without noexcept.
electron-file-dialog.patch E39 files/musl-patches/electron_shell-file-dialog-drop-glibc.patch. Rebased solely to apply from the Chromium source root.
fix-missing-TEMP_FAILURE_RETRY-macro.patch C148; identical in E35/E39. As-is.
fix-musl-missing-unistd_h-include.patch C148; identical in E35/E39. As-is.
fix-perfetto-GetThreadName-musl.patch C148; identical in E35/E39. As-is.
musl-no-execinfo.patch C148; older copies in E35/E39. Rebased for V8 and stack-trace/test context; intended guards unchanged.
musl-no-mallinfo.patch C148; older copies in E35/E39. Further modified: rebase, omit the existing upstream TFLite guard, and restrict the previously disabled allocator mallinfo export to glibc.
musl-no-sandbox-settls.patch C148; identical in E35/E39. As-is.
musl-partition-atfork.patch C148; older copies in E35/E39. Rebased for changed initialization context.
musl-sandbox.patch C148 files/musl-patches/musl-sandbox.patch; older copies in E35/E39. Further modified: rebase policy contexts and omit the sys/syscall.h include already upstream; retain C148's renderer pwritev2 and other musl syscall allowances.
musl-tid-caching.patch C148; identical in E39. As-is.
no-getcontext.patch C148; identical in E35/E39. As-is relative to the maintained C148 patch.
no-res-ninit-nclose.patch C148 files/musl-patches/no-res-ninit-nclose.patch; identical in E35/E39. As-is.
remove-sys-cdefs-includes.patch C148; earlier E35/E39 versions contained additional hunks. As-is from C148, rather than importing the older multi-file patch.
sandbox-membarrier.patch C148; identical in E35/E39. As-is.
systypes.patch C148; identical in E35/E39. As-is.

Development-header patch — installation only

Patch Source Reuse and adaptation
node-headers-nullptr.patch Electron42-specific packaging fix. New: include <cstddef> and qualify std::nullptr_t in installed headers to make generated V8 headers usable with addon compilers that do not expose global nullptr_t.

@tranzystorekk tranzystorekk added the new-package This PR adds a new package label Sep 12, 2026
@ar-jan
ar-jan marked this pull request as ready for review September 13, 2026 10:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-package This PR adds a new package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants