BSD Ports

devel/electron40 40.10.6 MidnightBSD

Build cross-platform desktop apps with JavaScript, HTML, and CSS

System
MidnightBSD
Repository
mports
Maintainer
[email protected]
Last update
Commit
da9bbc6996
License
bsd3, lgpl2.1, mit, MPL11
Categories
devel

Description

Build cross platform desktop apps with JavaScript, HTML, and CSS.

It's easier than you think.

If you can build a website, you can build a desktop app. Electron is a framework for creating native applications with web technologies like JavaScript, HTML, and CSS. It takes care of the hard parts so you can focus on the core of your application.

In the other systems

SystemPortVersion
MidnightBSDdevel/electron4040.10.6
GhostBSDdevel/electron4040.10.6_3

Install

Binary package:

mport install electron${ELECTRON_VER:C/\..*//}

From mports:

cd /usr/mports/devel/electron40 && make install clean

To depend on this port in another port's Makefile:

RUN_DEPENDS=	electron${ELECTRON_VER:C/\..*//}>0:devel/electron40

Dependencies

As this port's Makefile names them.

Build 8

Library 27

Runtime 1

Test 2

Fetch 1

Patch 2

Build dependencies 36
Run dependencies 27

No port depends on this one.

Configuration

Options name: devel_electron

OptionDefaultDescription
ALSAon
CODECSonCompile and enable patented codecs like H.264
CUPSon
DEBUGoff
DISToffBuild distribution zip files
DRIVERoffInstall chromedriver
HEIMDALoffHeimdal Kerberos (security/heimdal)
HEIMDAL_BASEoffHeimdal Kerberos (base)
KERBEROSon
LTOoff
MIToffMIT Kerberos (security/krb5)
PIPEWIREonScreen capture via PipeWire
PULSEAUDIOon
SNDIOon
USES
bison compiler:c++17-lang cpe display:test gettext-tools gl gmake gnome iconv:wchar_t jpeg localbase:ldflags ninja nodejs:build pkgconfig python:build,test qt:5 shebangfix tar:xz xorg
Service scripts
none

Files

pkg-plist 376
  • bin/electron
  • share/electron${ELECTRON_VER:C/\..*//}/LICENSE
  • share/electron${ELECTRON_VER:C/\..*//}/LICENSES.chromium.html
  • share/electron${ELECTRON_VER:C/\..*//}/chrome_100_percent.pak
  • share/electron${ELECTRON_VER:C/\..*//}/chrome_200_percent.pak
  • share/electron${ELECTRON_VER:C/\..*//}/chromedriver
  • share/electron${ELECTRON_VER:C/\..*//}/electron
  • share/electron${ELECTRON_VER:C/\..*//}/gen/electron/buildflags/buildflags.h
  • share/electron${ELECTRON_VER:C/\..*//}/gen/v8/embedded.S
  • share/electron${ELECTRON_VER:C/\..*//}/libEGL.so
  • share/electron${ELECTRON_VER:C/\..*//}/libGLESv2.so
  • share/electron${ELECTRON_VER:C/\..*//}/libffmpeg.so
  • share/electron${ELECTRON_VER:C/\..*//}/libvk_swiftshader.so
  • share/electron${ELECTRON_VER:C/\..*//}/libvulkan.so
  • share/electron${ELECTRON_VER:C/\..*//}/locales/af.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/af_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/af_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/af_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/am.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/am_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/am_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/am_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/ar.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/ar_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/ar_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/ar_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/bg.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/bg_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/bg_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/bg_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/bn.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/bn_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/bn_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/bn_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/ca.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/ca_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/ca_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/ca_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/cs.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/cs_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/cs_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/cs_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/da.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/da_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/da_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/da_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/de.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/de_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/de_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/de_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/el.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/el_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/el_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/el_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/en-GB.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/en-GB_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/en-GB_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/en-GB_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/en-US.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/en-US_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/en-US_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/en-US_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/es-419.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/es-419_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/es-419_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/es-419_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/es.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/es_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/es_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/es_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/et.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/et_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/et_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/et_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fa.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fa_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fa_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fa_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fi.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fi_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fi_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fi_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fil.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fil_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fil_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fil_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fr.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fr_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fr_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/fr_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/gu.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/gu_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/gu_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/gu_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/he.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/he_FEMININE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/he_MASCULINE.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/he_NEUTER.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/hi.pak
  • share/electron${ELECTRON_VER:C/\..*//}/locales/hi_FEMININE.pak

The first 100 are listed.

distinfo 14
FileSizeSHA256
electron/chromium-144.0.7559.236.tar.xz.02e+0921556e44d5f5e464a7603afc1e912127c4546d3c55d777055614b769247d2714
electron/chromium-144.0.7559.236.tar.xz.12e+09389e96ab80e7f3ea7a330060c51ed714f2277810b13bbd1d72bb9e6119dce3a2
electron/chromium-144.0.7559.236.tar.xz.23.09499476e+083783608e8c802c5660a7c2ea12d9e16ae6f534eb739c155c0de4b42eca358c3e
electron/pulseaudio-16.1.tar.gz2.763111e+06027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92
electron/yarn-4.12.0.tgz1.059585e+06c60829c8dbf2263e6c6be34c15ebb2830f67a267de4b7d646f4043680fe47a66
electron/electron40-40.10.6-node-modules.tar.xz3.512142e+07bd1d3ffcb827612e778bfc4458c982c2554ceb6a3d8f40023e2f8c489b7f58fe
electron/electron-electron-v40.10.6_GH0.tar.gz1.7554486e+073ce775708e56c20754d66f0e167d24329f51bc84a2245315def26b12ee9375b2
electron/nodejs-node-v24.15.0_GH0.tar.gz1.26716937e+085cfb169b21878f50876e0c6a77db1a5e40d733960232682bebb5e267246a2e80
electron/nodejs-nan-675cefebca42410733da8a454c8d9391fcebfbc2_GH0.tar.gz1113233983c68f19ed75dd37dc228eab385093ae2533132730f253f0c3d19ff10788e3
electron/Squirrel-Squirrel.Mac-0e5d146ba13101a1302d59ea6e6e0b3cace4ae38_GH0.tar.gz2.112918e+06f4ebb40a8d85dbb7ef02aa0571b2f8e22182c6d73b6992484a53c90047779d01
electron/ReactiveCocoa-ReactiveObjC-74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76_GH0.tar.gz1.136238e+0688e65f116c7a06fccedb43970fba63080a57a4e5dc29147d2cdfe1ee58dd0546
electron/Mantle-Mantle-78d3966b3c331292ea29ec38661b25df0a245948_GH0.tar.gz62962a365df6d83e0be3cc000b70bd39734d80c28f0d9983ebe44698337a2ca464bb1
electron/EngFlow-reclient-configs-955335c30a752e9ef7bff375baab5e0819b6c00d_GH0.tar.gz13014c148f76220fc41a89ffeaf370c2cc175577be184688b12aa6fec5f8ac6c714c4
electron/evanw-esbuild-v0.28.1_GH0.tar.gz1.997481e+0665c756fa87d43178ac4a5242454c2bd0fde325f8ecf77997f8fa4b88f94d5cd2
Master sites 2
  • https://github.com/tagattie/FreeBSD-Electron/releases/download/v40.8.0/:chromium
  • https://freedesktop.org/software/pulseaudio/releases/:pulseaudio

Commit history 5

DateCommitCreditsLog message
da9bbc6996 Lucas Holt devel/electron40: update to 40.10.6 (#1660)
a05b377b53 Lucas Holt *: bump PORTREVISION for the textproc/libxml2 2.15 shared library change (#848)
`textproc/libxml2` 2.15 changed SONAME from `libxml2.so.2` to `libxml2.so.16` **and** removed ELF symbol versioning entirely — the new library defines no `LIBXML2_*` versions at all. Consumers built against the old library were never rebuilt, so they still record a dependency on `libxml2.so.2` plus version requirements nothing can satisfy, and fail at load time: ``` ld-elf.so.1: /usr/local/lib/libxml2.so.2: version LIBXML2_2.4.30 required by /usr/local/lib/libevdocument3.so.4 not defined ``` ### Scope `Tools/scripts/bump_revision.pl -f -l textproc/libxml2` — **436 Makefiles**: 323 revisions incremented, 113 gained a `PORTREVISION` line. The diff touches nothing but `PORTREVISION` lines (verified: `git diff -U0` shows no other changed line), and spot-checked ports still …
9c80d16dd9 Lucas Holt devel/electron40: make the port buildable on MidnightBSD (#684)
`devel/electron40` has never been build-ported: it carried **no `midnightbsd` patches at all**. #671 fixed its fetch, which only got it as far as *starting* a build — configure then failed immediately on the first Python platform check. This applies the same set of changes that make #672/#682's `devel/electron41` build. ## MidnightBSD portability (6 patches) Only Python is affected. C and C++ are carried by the base compiler defining `__FreeBSD__` alongside `__MidnightBSD__`, and GN reports `host_os=freebsd` via `OS_FREEBSD`. | File | Failure | |---|---| | `build/config/linux/pkg-config.py` | early-returned on any platform not matching linux/openbsd/freebsd, so **every** `pkg_config` lookup silently produced empty results | …
e8bae317e7 Lucas Holt devel/electron40: fix fetch on clean builders (#671)
`devel/electron40` has never fetched successfully on a machine without a pre-populated `Distfiles` directory. Magus reports fetch failures on both 4.0/amd64 and 4.1/amd64, and the failure reproduces locally. ## Three separate defects **1. `pre-fetch` ordering.** `electron-fetch-node-modules` untars the Electron source tarball to read `package.json`/`yarn.lock`, but `pre-fetch` runs *before* `do-fetch`, so the tarball does not exist yet. It only appeared to work where the distfile happened to already be cached. Magus log: ``` ===> Prefetching node modules (offline cache) tar: Error opening archive: Failed to open '/magus/distfiles/electron/electron-electron-v40.9.2_GH0.tar.gz' ``` Fixed with a new `electron-fetch-source` target that fetches the tarball …
1c7e6ed56b Lucas Holt */*: bump PORTREVISION after multimedia/openh264 update to 2.6.0
openh264 2.6.0 changed its shared library version from libopenh264.so.6 to libopenh264.so.8, so every port that links against it must be rebuilt. Bump PORTREVISION on the direct consumers. www/ungoogled-chromium is not listed because it was updated to 149.0.7827.200 in the same batch and is already built against the new library. AI-Assisted-by: Claude Opus 4.8 (1M context) <[email protected]> Signed-off-by: Lucas Holt <[email protected]>