Hello, people of nodejs. I would like to try to package an electron app.
I have read packaging-guidelines/Node.js and nodejs-packaging-bundler. As best I understand it, Fedora allows packaging Node.js applications which will bundle all of the required modules from npm, as long as they are JS modules and not pre-built ELF binaries. The electron npm module includes pre-build ELF binaries, so in order to package an electron application, I would need to:
1. build an rpm providing the electron npm module (and possibly other packages for modules containing binaries) 2. prepare a package of the electron app, using the packaging bundler script 3. indicate a dependency on the electron module rpm package 4. strip the electron module from the node_modules bundle 5. replace the pre-built electron module with a symlink to the location of the electron module, provided by an rpm package
Does that sound more or less correct?
Hi Gordon, and thanks for reaching out!
I have no experience packaging electron apps, but the list you provided looks correct, and actually would be the preferred approach – this way, we will end with an rpm for any binary component that can be reused by others.
Best of luck with packaging!
On Tue, Oct 14, 2025 at 2:40 AM Gordon Messmer gmessmer@redhat.com wrote:
Hello, people of nodejs. I would like to try to package an electron app.
I have read packaging-guidelines/Node.js and nodejs-packaging-bundler. As best I understand it, Fedora allows packaging Node.js applications which will bundle all of the required modules from npm, as long as they are JS modules and not pre-built ELF binaries. The electron npm module includes pre-build ELF binaries, so in order to package an electron application, I would need to:
build an rpm providing the electron npm module (and possibly other packages for modules containing binaries) prepare a package of the electron app, using the packaging bundler script indicate a dependency on the electron module rpm package strip the electron module from the node_modules bundle replace the pre-built electron module with a symlink to the location of the electron module, provided by an rpm package
Does that sound more or less correct?
It's largely correct. And the openSUSE folks have already done this work, so you can use it as the basis for doing this in Fedora.
https://build.opensuse.org/package/show/openSUSE:Factory/nodejs-electron https://build.opensuse.org/package/show/openSUSE:Factory/element-desktop
On Fri, Oct 17, 2025 at 9:25 PM Neal Gompa ngompa13@gmail.com wrote:
It's largely correct. And the openSUSE folks have already done this work, so you can use it as the basis for doing this in Fedora
Yep, I've seen those and I'm starting from there. nodejs-electron has required a couple of adjustments, and unfortunately takes a *long* time to build. I might have a successful build tomorrow.
On Sat, Oct 18, 2025 at 12:31 AM Gordon Messmer gmessmer@redhat.com wrote:
On Fri, Oct 17, 2025 at 9:25 PM Neal Gompa ngompa13@gmail.com wrote:
It's largely correct. And the openSUSE folks have already done this work, so you can use it as the basis for doing this in Fedora
Yep, I've seen those and I'm starting from there. nodejs-electron has required a couple of adjustments, and unfortunately takes a *long* time to build. I might have a successful build tomorrow.
You may also want to look at our CEF package for how we handle reusing chromium sources.
https://src.fedoraproject.org/rpms/cef
Hey Gordon,
I'm curious how are your nodejs-electron packaging efforts progressing?
Regards, Tadej
Hey!
If I'm reading openSUSE's updates regarding their Electron package correctly, they are finding a lot of difficulties and are currently stuck with version 37 (which is not supported by upstream anymore): https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/thread/U...
Are there perhaps any positive updates on the Fedora side?
Regards, Tadej
On Sat, 2025-11-15 at 14:45 +0000, Tadej Janež wrote:
Hey Gordon,
I'm curious how are your nodejs-electron packaging efforts progressing?
Regards, Tadej
would be great to have an official electron in fedora. i'm currently stuck with https://copr.fedorainfracloud.org/coprs/sergiomb/electrons/package/nodejs-el... (37.10.2) and using that for building podman-desktop, which works up to 1.24, but no longer with 1.25 upwards. electron seems to be very hard to package (lots of sources, lots of patches).
Hey Josef,
great to hear about trying to package Podman Desktop (for the reference, original RPM packaging issue is here: https://github.com/podman-desktop/podman-desktop/issues/112).
On Tue, 2026-05-19 at 10:15 +0000, josef radinger via nodejs wrote:
would be great to have an official electron in fedora. i'm currently stuck with https://copr.fedorainfracloud.org/coprs/sergiomb/electrons/package/nodejs-el... (37.10.2) and using that for building podman-desktop, which works up to 1.24, but no longer with 1.25 upwards. electron seems to be very hard to package (lots of sources, lots of patches).
Yes, Electron packaging looks super complicated. AFAICS, Sergio used openSUSE's SPEC file as the foundation: https://src.opensuse.org/nodejs/nodejs-electron/raw/branch/main/nodejs-elect...
I think the current major blocker preventing upgrading to a newer version of Electron is getting the Rust parts (e.g. AVIF, JSON parser, PNG decoder) built. See Bruno Pitrus' (long-time nodejs-electron maintainer in openSUSE) email from Dec 5, 2025: https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/thread/U...
Regards, Tadej
nodejs@lists.fedoraproject.org