You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
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.
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.
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.
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.
Activity
ChefControl commentedon Oct 27, 2026
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.txtnext toindex.html, and fails on a GPL, LGPL or AGPL licence (or one it can't read) that isn't inAPPROVED.The wrapper's build needs to:
licences({ extra: [...] })in its Vite config. Each is{ name, version, licence, text, url? }:LICENSE(MIT), from theelectronpackage.LICENSES.chromium.htmlin 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 intolicences.txt.ffmpeg.dll/libffmpeg.sois LGPL-2.1-or-later. Until it's approved, the build will stop on it, and it should.APPROVEDwith the licence and when Valve agreed. The LGPL also asks that players can swap the library, so it stays a separateffmpeg.dll/libffmpeg.so(Electron's default), not linked in statically.LICENSE.electron.txtandLICENSES.chromium.htmlinto the app by default. Don't filter them out.licences.txtand to project sites withtarget="_blank". The wrapper'ssetWindowOpenHandlershould open web links in the player's browser andlicences.txt(and the Chromium notices) in a window of its own.