Skip to content

Steam: Electron wrapper #159

Open
Open

Description

@ChefControl

Part of #142 · Milestone 3: Playable desktop build (Windows) · plan item 3.1

Size: M · Owner-only step: no · Blocks launch: yes

What

Electron 45 bundles Chromium 156 and gives the same WebGL and Web Audio everywhere. About a 100 MB download. No launcher window.

Decision / recommendation

Build on the spike's findings.

Done when

Sources

Plan page (owner only): https://claude.ai/artifact/Cf5SWQHzAKTy2uHCC1UQgw

Activity

  1. ChefControl commented on Oct 27, 2026

    @ChefControl
    OwnerAuthor

    Open-source licences: what the Electron wrapper must add (#149)

    #149's web part is in PR #209 (scripts/licences.ts): the build lists the licences of the packages it actually bundled under Settings → Credits & Copyrights, writes their full texts to licences.txt next to index.html, and fails on a GPL, LGPL or AGPL licence (or one it can't read) that isn't in APPROVED.

    The wrapper's build needs to:

    1. Hand in its own notices as licences({ extra: [...] }) in its Vite config. Each is { name, version, licence, text, url? }:
      • Electron: its LICENSE (MIT), from the electron package.
      • Chromium: the third-party notices Electron ships as LICENSES.chromium.html in its dist. It's very large, so one line in the list with a link to the file may be better than copying its text into licences.txt.
      • ffmpeg: Electron's ffmpeg.dll / libffmpeg.so is LGPL-2.1-or-later. Until it's approved, the build will stop on it, and it should.
    2. Get Valve's agreement for ffmpeg (LGPL), then add it to APPROVED with the licence and when Valve agreed. The LGPL also asks that players can swap the library, so it stays a separate ffmpeg.dll / libffmpeg.so (Electron's default), not linked in statically.
    3. Keep the licence files in the package. electron-builder copies LICENSE.electron.txt and LICENSES.chromium.html into the app by default. Don't filter them out.
    4. Open the Credits links. The list links to licences.txt and to project sites with target="_blank". The wrapper's setWindowOpenHandler should open web links in the player's browser and licences.txt (and the Chromium notices) in a window of its own.
    5. Steam build without Firebase (Steam: one build switch for web and Steam #160): nothing to do. The list comes from what's bundled, so Firebase drops out of it by itself.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageMaintainer needs to evaluate this issuesteam-readinessGetting Floe Market onto Steam

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions