Electron – devel/electron29 and greater

For reference


devel/electron28 is deprecated, will expire at the end of this month.

devel/electron29 alone is packaged by the FreeBSD Project.

Ports that require devel/electron30 include:
  • editors/vscode – Code - OSS
  • net-im/signal-desktop – Signal
– FreshPorts provides a full list.

devel/electron31 is not yet required by any other port.



Application-specific topics (please use these):






Package infrastructure report 270565 explains why no more than one version of Electron is built. It's discussed in the Signal topic above, and elsewhere.
 
Noted in logs for electron29-29.4.6 and electron31-31.4.0:

To build electron, you should have around 2GB of memory and around 14 GB of free disk space.

WANTSPACE values in the Makefile for each port are 14 GB and 21 GB.

14 may be an underestimate.

In my case, before and during build of electron29-29.4.6:

Code:
% zpool list -v internalssd
NAME          SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
internalssd   111G  79.6G  31.4G        -         -    59%    71%  1.00x    ONLINE  -
  gpt/112     112G  79.6G  31.4G        -         -    59%  71.8%      -    ONLINE
% …
% …
% zpool list -v internalssd
NAME          SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
internalssd   111G  77.8G  33.2G        -         -    57%    70%  1.00x    ONLINE  -
  gpt/112     112G  77.8G  33.2G        -         -    57%  70.1%      -    ONLINE
% …
% zpool list -v internalssd
NAME          SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
internalssd   111G  96.5G  14.5G        -         -    73%    86%  1.00x    ONLINE  -
  gpt/112     112G  96.5G  14.5G        -         -    73%  86.9%      -    ONLINE
%

Times:
  1. 23:43 yesterday – around five minutes before poudriere began at 2024-08-25_23h48m36s
  2. 23:52 – around two minutes after build started at Sun Aug 25 23:49:53 BST
  3. 06:52 this morning.
A small part of the 18.7 GiB reduction in free space may be ccache(1), this doesn't change my suspicion that 14 GB (13.04 GiB (gibibytes)) is an underestimate. ccache statistics now are not significantly different from what I recall with the previous view of stats, a few days ago.

Code:
% ccache --show-stats ; date ; uptime
Cacheable calls:   3532919 / 3913544 (90.27%)
  Hits:             869824 / 3532919 (24.62%)
    Direct:         669946 /  869824 (77.02%)
    Preprocessed:   199878 /  869824 (22.98%)
  Misses:          2663095 / 3532919 (75.38%)
Uncacheable calls:  380579 / 3913544 ( 9.72%)
Errors:                 46 / 3913544 ( 0.00%)
Local storage:
  Cache size (GB):     8.6 /    10.0 (86.10%)
  Cleanups:            139
  Hits:             202752 / 1395155 (14.53%)
  Misses:          1192403 / 1395155 (85.47%)
Mon 26 Aug 2024 07:32:36 BST
 7:32a.m.  up 22:43, 7 users, load averages: 1.45, 1.67, 1.75
%
 
… suspicion that 14 GB (13.04 GiB (gibibytes)) is an underestimate. …

The build was automatically killed after one day, free space rose from 13.3G to 34.0G – a rise of much more than 14 GB.

Code:
% zpool list -v
NAME                  SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
Transcend             928G   803G   125G        -         -    45%    86%  1.00x    ONLINE  -
  gpt/Transcend       932G   803G   125G        -         -    45%  86.5%      -    ONLINE
august                912G   565G   347G        -         -    55%    61%  1.00x    ONLINE  -
  ada1p3.eli          915G   565G   347G        -         -    55%  61.9%      -    ONLINE
cache                    -      -      -        -         -      -      -      -         -
  gpt/cache1-august  28.8G  2.12G  26.7G        -         -     0%  7.36%      -    ONLINE
  gpt/cache2-august  7.28G  3.01G  4.26G        -         -     0%  41.4%      -    ONLINE
internalssd           111G  97.7G  13.3G        -         -    74%    87%  1.00x    ONLINE  -
  gpt/112             112G  97.7G  13.3G        -         -    74%  88.0%      -    ONLINE
% zpool list -v internalssd
NAME          SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
internalssd   111G  97.7G  13.3G        -         -    74%    87%  1.00x    ONLINE  -
  gpt/112     112G  97.7G  13.3G        -         -    74%  88.0%      -    ONLINE
% zpool list -v internalssd
NAME          SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
internalssd   111G  77.0G  34.0G        -         -    56%    69%  1.00x    ONLINE  -
  gpt/112     112G  77.0G  34.0G        -         -    56%  69.3%      -    ONLINE
% history 3
  2026  20:42   zpool list -v internalssd
  2027  2:15    zpool list -v internalssd
  2028  2:16    history 3
% ccache --show-stats
Cacheable calls:   3540674 / 3921304 (90.29%)
  Hits:             869824 / 3540674 (24.57%)
    Direct:         669946 /  869824 (77.02%)
    Preprocessed:   199878 /  869824 (22.98%)
  Misses:          2670850 / 3540674 (75.43%)
Uncacheable calls:  380584 / 3921304 ( 9.71%)
Errors:                 46 / 3921304 ( 0.00%)
Local storage:
  Cache size (GB):     8.6 /    10.0 (86.10%)
  Cleanups:            139
  Hits:             202752 / 1395155 (14.53%)
  Misses:          1192403 / 1395155 (85.47%)
% history -S
% grep 86400 /usr/local/poudriere/data/logs/bulk/main-default/latest/logs/electron29-29.4.6.log
=>> Killing timed out build after 86400 seconds
% tail /usr/local/poudriere/data/logs/bulk/main-default/latest/logs/electron29-29.4.6.log
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
ninja: build stopped: subcommand failed.
*** Error code 1

Stop.
make: stopped in /usr/ports/devel/electron29
build of devel/electron29 | electron29-29.4.6 ended at Tue Aug 27 00:02:53 BST 2024
build time: 1D:00:12:59
!!! build failure encountered !!!
% zpool status -x ; date ; uptime
  pool: august
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-9P
  scan: scrub repaired 0B in 04:06:54 with 0 errors on Mon Aug 19 01:20:53 2024
config:

        NAME                 STATE     READ WRITE CKSUM
        august               ONLINE       0     0     0
          ada1p3.eli         ONLINE       0     0     0
        cache
          gpt/cache1-august  ONLINE       0     0     0
          gpt/cache2-august  ONLINE   6.08K 50.1K     0

errors: No known data errors
Tue 27 Aug 2024 02:20:55 BST
 2:20a.m.  up 1 day, 17:31, 4 users, load averages: 0.26, 0.51, 0.46
% su -
Password:
root@mowa219-gjp4-zbook-freebsd:~ # zpool clear august gpt/cache2-august
root@mowa219-gjp4-zbook-freebsd:~ # exit
logout
% zpool status -x ; date ; uptime
  pool: august
 state: ONLINE
status: One or more devices are faulted in response to persistent errors.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Replace the faulted device, or use 'zpool clear' to mark the device
        repaired.
  scan: scrub repaired 0B in 04:06:54 with 0 errors on Mon Aug 19 01:20:53 2024
config:

        NAME                 STATE     READ WRITE CKSUM
        august               ONLINE       0     0     0
          ada1p3.eli         ONLINE       0     0     0
        cache
          gpt/cache1-august  ONLINE       0     0     0
          gpt/cache2-august  FAULTED      3     0     0  too many errors

errors: No known data errors
Tue 27 Aug 2024 02:21:35 BST
 2:21a.m.  up 1 day, 17:32, 4 users, load averages: 0.19, 0.46, 0.44
% tail -f -n 0 /var/log/messages
Aug 27 02:22:03 mowa219-gjp4-zbook-freebsd kernel: ugen0.11: <Verbatim STORE N GO> at usbus0 (disconnected)
Aug 27 02:22:03 mowa219-gjp4-zbook-freebsd kernel: umass1: at uhub8, port 3, addr 2 (disconnected)
Aug 27 02:22:03 mowa219-gjp4-zbook-freebsd kernel: umass1: detached
Aug 27 02:22:10 mowa219-gjp4-zbook-freebsd kernel: sonewconn: pcb 0xfffff8010d51a900 (local:/var/run/devd.seqpacket.pipe): Listen queue overflow: 1 already in queue awaiting acceptance (60 occurrences), euid 0, rgid 0, jail 0
Aug 27 02:22:21 mowa219-gjp4-zbook-freebsd kernel: ugen0.11: <Verbatim STORE N GO> at usbus0
Aug 27 02:22:21 mowa219-gjp4-zbook-freebsd kernel: umass1 on uhub8
Aug 27 02:22:21 mowa219-gjp4-zbook-freebsd kernel: umass1: <Verbatim STORE N GO, class 0/0, rev 2.00/1.00, addr 10> on usbus0
Aug 27 02:22:21 mowa219-gjp4-zbook-freebsd kernel: da1 at umass-sim1 bus 1 scbus7 target 0 lun 0
Aug 27 02:22:21 mowa219-gjp4-zbook-freebsd kernel: da1: <Verbatim STORE N GO 8.07> Removable Direct Access SPC-2 SCSI device
Aug 27 02:22:21 mowa219-gjp4-zbook-freebsd kernel: da1: Serial Number A02BF982
Aug 27 02:22:21 mowa219-gjp4-zbook-freebsd kernel: da1: 40.000MB/s transfers
Aug 27 02:22:21 mowa219-gjp4-zbook-freebsd kernel: da1: 7455MB (15267840 512 byte sectors)
Aug 27 02:22:21 mowa219-gjp4-zbook-freebsd kernel: da1: quirks=0x2<NO_6_BYTE>
^C
% zpool status -x ; date ; uptime
  pool: august
 state: ONLINE
status: One or more devices are faulted in response to persistent errors.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Replace the faulted device, or use 'zpool clear' to mark the device
        repaired.
  scan: scrub repaired 0B in 04:06:54 with 0 errors on Mon Aug 19 01:20:53 2024
config:

        NAME                 STATE     READ WRITE CKSUM
        august               ONLINE       0     0     0
          ada1p3.eli         ONLINE       0     0     0
        cache
          gpt/cache1-august  ONLINE       0     0     0
          gpt/cache2-august  FAULTED      3     0     0  too many errors

errors: No known data errors
Tue 27 Aug 2024 02:22:40 BST
 2:22a.m.  up 1 day, 17:33, 4 users, load averages: 0.33, 0.45, 0.44
% su -
Password:
root@mowa219-gjp4-zbook-freebsd:~ # zpool clear august gpt/cache2-august
root@mowa219-gjp4-zbook-freebsd:~ # zpool status -x
all pools are healthy
root@mowa219-gjp4-zbook-freebsd:~ # exit
logout
% pkg iinfo poudriere
poudriere-devel-3.4.99.20240811
% uname -mvKU
FreeBSD 15.0-CURRENT main-n271827-c3516c6533a1 GENERIC-NODEBUG amd64 1500023 1500023
%

I doubled the MAX_EXECUTION_TIME, to allow two days.

Code:
% grep MAX_EXECUTION_TIME /usr/local/etc/poudriere.conf | grep -v \#
MAX_EXECUTION_TIME=172800
%
 
I temporarily enabled ALLOW_MAKE_JOBS (because lang/rust was to be built), the next run failed when usable free space was exhausted. Free space before and after killing the affected jail:
  • 03.34G
  • 33.0G
Code:
root@mowa219-gjp4-zbook-freebsd:~ # date ; uptime
Tue Aug 27 07:28:11 BST 2024
 7:28AM  up  3:09, 5 users, load averages: 0.42, 0.48, 1.17
root@mowa219-gjp4-zbook-freebsd:~ # zpool list -v internalssd
NAME          SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
internalssd   111G   108G  3.34G        -         -    90%    96%  1.00x    ONLINE  -
  gpt/112     112G   108G  3.34G        -         -    90%  97.0%      -    ONLINE
root@mowa219-gjp4-zbook-freebsd:~ # ccache --show-stats
Cacheable calls:   3555902 / 3942594 (90.19%)
  Hits:             877441 / 3555902 (24.68%)
    Direct:         675613 /  877441 (77.00%)
    Preprocessed:   201828 /  877441 (23.00%)
  Misses:          2678461 / 3555902 (75.32%)
Uncacheable calls:  386646 / 3942594 ( 9.81%)
Errors:                 46 / 3942594 ( 0.00%)
Local storage:
  Cache size (GB):     8.6 /    10.0 (85.94%)
  Cleanups:            139
  Hits:             202752 / 1395155 (14.53%)
  Misses:          1192403 / 1395155 (85.47%)
root@mowa219-gjp4-zbook-freebsd:~ # history 7
  2005  4:39    nano /usr/local/etc/poudriere.conf
  2006  4:39    poudriere bulk -j main -J 16 devel/electron29
  2007  7:27    mount
  2008  7:28    date ; uptime
  2009  7:28    zpool list -v internalssd
  2010  7:28    ccache --show-stats
  2011  7:29    history 7
root@mowa219-gjp4-zbook-freebsd:~ # grep ALLOW_MAKE_JOBS /usr/local/etc/poudriere.conf | grep -v \#
ALLOW_MAKE_JOBS=yes
ALLOW_MAKE_JOBS_PACKAGES="ccache pkg py* nvidia-driver-470"
root@mowa219-gjp4-zbook-freebsd:~ # poudriere jail -k -j main
main-default: removed
main-default-n: removed
[00:00:00] Unmounting file systems
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/usr/tests failed: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/usr/src failed: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/usr/share failed: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/usr/lib32 failed: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/rescue failed: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/usr/tests failed: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/usr/src failed: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/usr/share failed: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/usr/lib32 failed: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/rescue failed: Device busy
cannot unmount '/usr/local/poudriere/data/.m/main-default/ref': pool or dataset is busy
Error: (24793) rmdir:destroyfs:1472: /usr/local/poudriere/data/.m/main-default/ref: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/usr/tests failed: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/usr/src failed: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/usr/share failed: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/usr/lib32 failed: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref/rescue failed: Device busy
umount: unmount of /usr/local/poudriere/data/.m/main-default/ref failed: Device busy
/usr/local/poudriere/jails/main/usr/tests: unmount from /usr/local/poudriere/data/.m/main-default/ref/usr/tests
/usr/local/poudriere/jails/main/usr/src: unmount from /usr/local/poudriere/data/.m/main-default/ref/usr/src
/usr/local/poudriere/jails/main/usr/share: unmount from /usr/local/poudriere/data/.m/main-default/ref/usr/share
/usr/local/poudriere/jails/main/usr/lib32: unmount from /usr/local/poudriere/data/.m/main-default/ref/usr/lib32
/usr/local/poudriere/jails/main/rescue: unmount from /usr/local/poudriere/data/.m/main-default/ref/rescue
internalssd/poudriere/jails/main-default-ref: unmount from /usr/local/poudriere/data/.m/main-default/ref
root@mowa219-gjp4-zbook-freebsd:~ # zpool list -v internalssd
NAME          SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
internalssd   111G  78.1G  32.9G        -         -    56%    70%  1.00x    ONLINE  -
  gpt/112     112G  78.1G  32.9G        -         -    56%  70.3%      -    ONLINE
root@mowa219-gjp4-zbook-freebsd:~ # poudriere jail -k -j main
[00:00:00] Jail main-default not running, but cleaning up anyway
[00:00:00] Unmounting file systems
Error: (24981) rmdir:destroyfs:1472: /usr/local/poudriere/data/.m/main-default/ref: No such file or directory
root@mowa219-gjp4-zbook-freebsd:~ # zpool list -v internalssd ; date
NAME          SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
internalssd   111G  78.0G  33.0G        -         -    56%    70%  1.00x    ONLINE  -
  gpt/112     112G  78.0G  33.0G        -         -    56%  70.2%      -    ONLINE
Tue Aug 27 07:32:28 BST 2024
root@mowa219-gjp4-zbook-freebsd:~ # nano /usr/local/etc/poudriere.conf
root@mowa219-gjp4-zbook-freebsd:~ # grep ALLOW_MAKE_JOBS /usr/local/etc/poudriere.conf | grep -v \#
ALLOW_MAKE_JOBS=no
ALLOW_MAKE_JOBS_PACKAGES="ccache pkg py* nvidia-driver-470"
root@mowa219-gjp4-zbook-freebsd:~ # poudriere jail -u -j main
[00:00:00] Upgrading using pkgbase
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
Updating pkgbase repository catalogue...
pkgbase repository is up to date.
All repositories are up to date.
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
Updating pkgbase repository catalogue...
pkgbase repository is up to date.
All repositories are up to date.
Checking for upgrades (0 candidates): 100%
Processing candidates (0 candidates): 100%
Checking integrity... done (0 conflicting)
Your packages are up to date.
root@mowa219-gjp4-zbook-freebsd:~ # poudriere ports -u
[00:00:00] Updating portstree "default" with git+https... done
root@mowa219-gjp4-zbook-freebsd:~ #
 
devel/electron27 devel/electron28 have been removed.

My builds of versions 29 and 31 succeeded, eventually. I'll contact the maintainer re: possible changes to requirements.
 
Back
Top