#842420 RFP: electron -- Build cross platform desktop apps with JavaScript, HTML, and CSS

Package:
wnpp
Source:
wnpp
Submitter:
Jeffrey Cliff
Date:
2025-12-30 09:09:11 UTC
Severity:
wishlist
Blocked By:
Bug Title
859361

  0

RFP: asar -- Simple extensive tar-like archive format with indexing

wishlist stable testing unstable over 7 years ago

809692

  4

RFP: libchromiumcontent -- content module

wishlist stable testing unstable 10 months ago

909459

  1

RFP: crashpad -- a crash-reporting system

wishlist stable testing unstable 7 months ago

926677

  1

RFP: node-evacuated-electron-download -- downloads an electron release zip

wishlist stable testing unstable 7 months ago

926284

  1

RFP: node-evacuated-tweetnacl-js -- node-evacuated-tweetnacl-js

wishlist stable testing unstable 7 months ago

909458

  2

RFP: chromium-breakpad -- NSA/Microsoft GitHub clone of the breakpad used by NSA/Alphabet Chromium

wishlist stable testing unstable 7 months ago

#842420#5
Date:
2016-10-28 23:03:54 UTC
From:
To:
The Electron framework lets you write cross-platform desktop applications
using JavaScript, HTML and CSS. It is based on Node.js <https://nodejs.org/>
and Chromium <http://www.chromium.org> and is used by the Atom editor
<https://github.com/atom/atom> and many other apps
<http://electron.atom.io/apps>.

Website: https://github.com/electron/electron

License: MIT https://github.com/electron/electron/blob/master/LICENSE

#842420#10
Date:
2017-04-02 19:28:16 UTC
From:
To:
Electron appears to depend on asar, which is in RFP ( #859361 /
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859361 ).

#842420#21
Date:
2018-03-28 08:04:47 UTC
From:
To:
To get a full picture of the effort required to package electron, have a look
at the electron task page in the wiki, which I have just updated to the
current status:

https://wiki.debian.org/Javascript/Nodejs/Tasks/electron

Paolo

#842420#44
Date:
2019-04-08 20:15:53 UTC
From:
To:
there is a non-NSA/Microsoft upstream repo available for this project at
https://notabug.org/themusicgod1/electron

#842420#59
Date:
2019-06-14 10:57:15 UTC
From:
To:
I just filed a couple of RFPs for electron apps and immediately added this one as a blocker:
https://bugs.debian.org/842420

So yes there are some trending messaging apps and code editors built with electron !

Packaging it would be a huge task also because it is a mixed-language project.
sloccount reports:
cpp:          59225 (61.39%)
javascript:   29379 (30.46%)
ansic:         3833 (3.97%)
python:        3205 (3.32%)
sh:             824 (0.85%)
But electron is definitely part of the js ecosystem (exactly as nodejs) so we should be brave and pick it up.

The first step would be to evaluate which of the electron apps we (as js-team) want to focus on.
Next find out if a single electron version can be used.
 From a first look, it seems problematic:

- atom: "electronVersion": "3.1.10"
- beaker: "electron": "5.0.0"
- franz: "electron": "5.0.2",
- mattermost-desktop: "electron": "^4.0.0"
- riot-web: "electronVersion": "4.2.4",
- signal-desktop: "electron": "4.2.2"
- ssb-patchwork: "electron": "^4.2.4",
- vscode: target "4.2.4"
(for vscode it is not in package.json, I found it here (?): https://github.com/microsoft/vscode/blob/master/.yarnrc)

Paolo

#842420#64
Date:
2019-11-20 06:23:39 UTC
From:
To:
Hi Paolo,

any news on this bug? I'm willing to help if needed.

Cheers and thanks

Matteo

#842420#75
Date:
2021-04-12 16:12:46 UTC
From:
To:
Could this be a goal for Debian 12? I'm not sure what kind of load the js
team is under, but it would be great to see this package in bookworm.

Jonathan Rubenstein
jrubcop@gmail.com

#842420#102
Date:
2024-01-15 06:38:13 UTC
From:
To:
Hi!

I am a big fan of Pulsar[1] so I filed the ITP[2] for it which led me
to dive into the status of Electron[3] and NodeJS and JavaScript in
Debian in general.

Electron seems already to be shipped[4] among others in FreeBSD ports,
Arch, Manjaro, Nix and OpenSUSE, but not in Fedora or Debian. The
approach in Debian seems to be that each npm module is converted into
a deb package, and thus the JS team has 1700+ packages to maintain[5].
Electron packaging has been pending for the past 7 years due to this
packaging dependency requirement I assume.

So I guess the logical next step is just to map out all dependencies
of Electron (and Pulsar) and then simply get each npm module they
depend on packaged one-by-one?

Can somebody who has a working setup of js_task_edit.py[6] update the
Electron wiki page and also create a new one for Pulsar?

And once we have the list we can start using npm2deb[7] and following
the NodeJS packaging guide[8] we just package the modules and see how
far we get with reasonable effort?

- Otto

[1] https://optimizedbyotto.com/post/pulsar-best-text-file-and-code-editor/
[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1060778
[3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=842420
[4] https://repology.org/project/electron/versions
[5] https://qa.debian.org/developer.php?login=pkg-javascript-devel@lists.alioth.debian.org
[6] https://wiki.debian.org/Javascript/Nodejs/Tasks
[7] https://wiki.debian.org/Javascript/Nodejs/Npm2Deb
[8] https://wiki.debian.org/Javascript/Nodejs/Manual

#842420#107
Date:
2024-01-15 11:49:13 UTC
From:
To:
This requirement is relaxed these days, see
https://salsa.debian.org/js-team/node-yarnpkg/-/blob/master/debian/watch?ref_type=heads
for example. Some of the modules that are only useful to electron/pulsar
could be included directly in that source package.

You can also try to create a package in contrib first which will install
dependencies via npm in postinst and gradually package the modules and
later move to main.

See
https://salsa.debian.org/ruby-team/gitlab/-/blob/master/debian/rake-tasks.sh?ref_type=heads#L48

We also have yarn-plugin-apt which can take the apt installed modules
when available and only remaining needs to be installed from npmjs.com

#842420#112
Date:
2025-08-21 08:49:52 UTC
From:
To:
Things that are good to know about electron's architecture:

It's documented here:
https://github.com/electron/electron/blob/main/docs/development/source-code-directory-structure.md

They need many patches to upstream projects:
https://github.com/electron/electron/tree/main/patches

In particular, the amound of patches on chromium, on node, is huge,
with no hope of them being upstreamed.

However, copying from debian chromium and nodejs source packages could
be a good idea to leverage the work that has been done there to ensure they
build against debian shared libraries.

On the positive side, I think that several dependencies should be
bundled as Multiple Upstream Tarballs.
Typically the ones under the @electron/ namespace, and maybe some others.

I reviewed quickly the current blocking RFP/ITP, some of them are
no longer needed (because package is available, or because electron
dropped it).

#842420#121
Date:
2025-12-30 04:16:35 UTC
From:
To:
Hi!

Resurrecting this old thread - Electron is still not packaged in
Debian. A lot of popular apps use it, e.g. Signal desktop, Element the
Matrix client, Telegram.

Are there any people here who would be interested in teaming up to
package Electron for Debian? The task is probably too big for a single
person.

#842420#126
Date:
2025-12-30 09:01:15 UTC
From:
To:
Le mardi 30 décembre 2025, 05:16:35 heure normale d’Europe centrale Otto Kekäläinen a écrit :

I can help you to package and get the stuff team maintained, could you add a wiki page with the npm2deb tree depends ?

rouca

#842420#131
Date:
2025-12-30 09:08:08 UTC
From:
To:
Le 30/12/2025 à 10:00, Bastien Roucaries a écrit :

here is the pkgjs-depends response:

$ pkgjs-depends electron
# electron@39.2.7
# 8 missing npm module(s)

DEPENDENCIES:
   ava (serialize-error)
   node-debug (debug)
   node-deep-equal (gopd)
   node-define-properties (define-properties)
   node-es6-error (es6-error)
   node-extract-zip (extract-zip)
   node-fs-extra (fs-extra)
   node-got (got)
   node-json-stringify-safe (json-stringify-safe)
   node-matcher (matcher)
   node-progress (progress)
   node-semver (semver)
   node-sprintf-js (sprintf-js)
   node-sumchecker (sumchecker)
   nodejs (@types/node)

MISSING:
electron@39.2.7
  └── @electron/get (2.0.3)
      └── env-paths (2.2.1)
      └── global-agent (3.0.0)
          └── boolean (3.2.0)
          └── roarr (2.15.4)
              └── (^) boolean (3.2.0)
              └── detect-node (2.1.0)
              └── globalthis (1.0.4)
              └── semver-compare (1.0.0)