[Bug 291321] Mk/Uses/electron.mk and companion scripts: Helper makefile and scripts for easily porting Electron-based applications

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 01 Dec 2025 07:13:15 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291321

            Bug ID: 291321
           Summary: Mk/Uses/electron.mk and companion scripts: Helper
                    makefile and scripts for easily porting Electron-based
                    applications
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
               URL: https://reviews.freebsd.org/D54005
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Ports Framework
          Assignee: portmgr@FreeBSD.org
          Reporter: tagattie@FreeBSD.org
                CC: ports-bugs@FreeBSD.org

Created attachment 265744
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=265744&action=edit
Patch to add electron.mk and companion scripts

I would like to propose a new electron.mk and companion scripts for making it
easier to port Electron-based applications.

There are a number of obstacles in porting Electron-based appications, namely:
- Need to adapt to different node package managers used in a project (npm,
yarn, and pnpm)
  Different package managers have different commands and options. With
electron.mk, porters don't have to worry about those differences using
USE_ELECTRON=npm feature.
- Need to create an archive of necessary node modules and host the file
somewhere online
  An Electron-based project usually tries to install npm install command during
the build phase. We can't allow this because npm install involves network
access. So we had to pre-generate an archive for necessary node modules and
host it somewhere online. electron.mk eliminates the necessity by locally
generating the distfile for node modules on-the-fly at a host building the port
during the fetch phase.
- Need to adapt to different package builders used (electron-builder,
electron-packager, and electron-forge)
  Different package builders have different commands and options. With
electron.mk, porters don't have to worry about those differences using
USE_ELECTRON=build feature.

In sumary, electron.mk hides the complexities of porting Electron-based
applications under the hood with USES=electron and USE_ELECTRON features.

-- 
You are receiving this mail because:
You are on the CC list for the bug.