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
| System | Port | Version |
|---|---|---|
| MidnightBSD | devel/electron40 | 40.10.6 |
| GhostBSD | devel/electron40 | 40.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
esbuild: devel/esbuildgperf: devel/gperfbindgen: devel/rust-bindgen-cliyasm: devel/yasm${LOCALBASE}/libdata/pkgconfig/dri.pc: graphics/mesa-drirustc: lang/rust${LOCALBASE}/include/linux/videodev2.h: multimedia/v4l_compatclang21: devel/llvm21
Library 27
libatk-bridge-2.0.so: accessibility/at-spi2-corelibatspi.so: accessibility/at-spi2-corelibFLAC.so: audio/flaclibopus.so: audio/opuslibdbus-1.so: devel/dbuslibepoll-shim.so: devel/libepoll-shimlibevent.so: devel/libeventlibffi.so: devel/libffilibnotify.so: devel/libnotifylibpci.so: devel/libpcilibnspr4.so: devel/nsprlibre2.so: devel/re2libdrm.so: graphics/libdrmlibpng.so: graphics/pnglibwayland-client.so: graphics/waylandlibwebp.so: graphics/webplibdav1d.so: multimedia/dav1dlibva.so: multimedia/libvalibopenh264.so: multimedia/openh264libfreetype.so: print/freetype2libharfbuzz.so: print/harfbuzzlibsecret-1.so: security/libsecretlibnss3.so: security/nsslibexpat.so: textproc/expat2libxkbcommon.so: x11/libxkbcommonlibxshmfence.so: x11/libxshmfencelibfontconfig.so: x11-fonts/fontconfig
Runtime 1
xdg-open: devel/xdg-utils
Test 2
git: devel/git${PYTHON_PKGNAMEPREFIX}python-dbusmock>0: devel/py-python-dbusmock
Fetch 1
git: devel/git
Patch 2
git: devel/gitjq: textproc/jq
Build dependencies 36
- accessibility/at-spi2-core
- audio/flac
- audio/opus
- devel/dbus
- devel/esbuild
- devel/git
- devel/gperf
- devel/libepoll-shim
- devel/libevent
- devel/libffi
- devel/libnotify
- devel/libpci
- devel/llvm21
- devel/nspr
- devel/re2
- devel/rust-bindgen-cli
- devel/yasm
- graphics/libdrm
- graphics/mesa-dri
- graphics/png
- graphics/wayland
- graphics/webp
- lang/rust
- multimedia/dav1d
- multimedia/libva
- multimedia/openh264
- multimedia/v4l_compat
- print/freetype2
- print/harfbuzz
- security/libsecret
- security/nss
- textproc/expat2
- textproc/jq
- x11-fonts/fontconfig
- x11/libxkbcommon
- x11/libxshmfence
Run dependencies 27
- accessibility/at-spi2-core
- audio/flac
- audio/opus
- devel/dbus
- devel/libepoll-shim
- devel/libevent
- devel/libffi
- devel/libnotify
- devel/libpci
- devel/nspr
- devel/re2
- devel/xdg-utils
- graphics/libdrm
- graphics/png
- graphics/wayland
- graphics/webp
- multimedia/dav1d
- multimedia/libva
- multimedia/openh264
- print/freetype2
- print/harfbuzz
- security/libsecret
- security/nss
- textproc/expat2
- x11-fonts/fontconfig
- x11/libxkbcommon
- x11/libxshmfence
No port depends on this one.
Configuration
Options name: devel_electron
| Option | Default | Description |
|---|---|---|
| ALSA | on | |
| CODECS | on | Compile and enable patented codecs like H.264 |
| CUPS | on | |
| DEBUG | off | |
| DIST | off | Build distribution zip files |
| DRIVER | off | Install chromedriver |
| HEIMDAL | off | Heimdal Kerberos (security/heimdal) |
| HEIMDAL_BASE | off | Heimdal Kerberos (base) |
| KERBEROS | on | |
| LTO | off | |
| MIT | off | MIT Kerberos (security/krb5) |
| PIPEWIRE | on | Screen capture via PipeWire |
| PULSEAUDIO | on | |
| SNDIO | on |
- 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
| File | Size | SHA256 |
|---|---|---|
| electron/chromium-144.0.7559.236.tar.xz.0 | 2e+09 | 21556e44d5f5e464a7603afc1e912127c4546d3c55d777055614b769247d2714 |
| electron/chromium-144.0.7559.236.tar.xz.1 | 2e+09 | 389e96ab80e7f3ea7a330060c51ed714f2277810b13bbd1d72bb9e6119dce3a2 |
| electron/chromium-144.0.7559.236.tar.xz.2 | 3.09499476e+08 | 3783608e8c802c5660a7c2ea12d9e16ae6f534eb739c155c0de4b42eca358c3e |
| electron/pulseaudio-16.1.tar.gz | 2.763111e+06 | 027266c62f2a84422ac45fa721a649508f0f1628fb1fd9242315ac54ce2d7c92 |
| electron/yarn-4.12.0.tgz | 1.059585e+06 | c60829c8dbf2263e6c6be34c15ebb2830f67a267de4b7d646f4043680fe47a66 |
| electron/electron40-40.10.6-node-modules.tar.xz | 3.512142e+07 | bd1d3ffcb827612e778bfc4458c982c2554ceb6a3d8f40023e2f8c489b7f58fe |
| electron/electron-electron-v40.10.6_GH0.tar.gz | 1.7554486e+07 | 3ce775708e56c20754d66f0e167d24329f51bc84a2245315def26b12ee9375b2 |
| electron/nodejs-node-v24.15.0_GH0.tar.gz | 1.26716937e+08 | 5cfb169b21878f50876e0c6a77db1a5e40d733960232682bebb5e267246a2e80 |
| electron/nodejs-nan-675cefebca42410733da8a454c8d9391fcebfbc2_GH0.tar.gz | 111323 | 3983c68f19ed75dd37dc228eab385093ae2533132730f253f0c3d19ff10788e3 |
| electron/Squirrel-Squirrel.Mac-0e5d146ba13101a1302d59ea6e6e0b3cace4ae38_GH0.tar.gz | 2.112918e+06 | f4ebb40a8d85dbb7ef02aa0571b2f8e22182c6d73b6992484a53c90047779d01 |
| electron/ReactiveCocoa-ReactiveObjC-74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76_GH0.tar.gz | 1.136238e+06 | 88e65f116c7a06fccedb43970fba63080a57a4e5dc29147d2cdfe1ee58dd0546 |
| electron/Mantle-Mantle-78d3966b3c331292ea29ec38661b25df0a245948_GH0.tar.gz | 62962 | a365df6d83e0be3cc000b70bd39734d80c28f0d9983ebe44698337a2ca464bb1 |
| electron/EngFlow-reclient-configs-955335c30a752e9ef7bff375baab5e0819b6c00d_GH0.tar.gz | 13014 | c148f76220fc41a89ffeaf370c2cc175577be184688b12aa6fec5f8ac6c714c4 |
| electron/evanw-esbuild-v0.28.1_GH0.tar.gz | 1.997481e+06 | 65c756fa87d43178ac4a5242454c2bd0fde325f8ecf77997f8fa4b88f94d5cd2 |
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
| Date | Commit | Credits | Log 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]> |