Package Details: electron15 15.5.7-1

Git Clone URL: https://aur.archlinux.org/electron15.git (read-only, click to copy)
Package Base: electron15
Description: Build cross platform desktop apps with web technologies
Upstream URL: https://electronjs.org/
Licenses: custom, MIT
Submitter: lkrms
Maintainer: Levitating
Last Packager: lkrms
Votes: 1
Popularity: 0.128052
First Submitted: 2022-08-31 15:30 (UTC)
Last Updated: 2022-08-31 15:30 (UTC)

Dependencies (35)

Sources (19)

Latest Comments

daryltucker commented on 2022-12-01 22:58 (UTC)

@lkrms

I can confirm that the package built after making the adjustment you suggested. Thanks for the solution.

lkrms commented on 2022-09-21 12:03 (UTC)

@daryltucker thanks for reporting this. I've not been able to replicate the error in a chroot build here so far, but my environment might be running an old version of Node somehow (it's supposed to install packages on-demand and perform a system upgrade with each build, but I haven't checked that's all happening correctly).

Meanwhile, there appear to be reports of Node 18 causing this error because of an underlying SSL change (there are recent posts here, for example), and from what I've found, patching PKGBUILD as below might solve it. Would you mind letting me know if it works for you?

diff --git a/PKGBUILD b/PKGBUILD
index 2f68bf7..f982c70 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -220,6 +220,7 @@ build() {
   export CXX=clang++
   export AR=ar
   export NM=nm
+  export NODE_OPTIONS=--openssl-legacy-provider

   CFLAGS="${CFLAGS/-fexceptions/}"
   CXXFLAGS="${CXXFLAGS/-fexceptions/}"

daryltucker commented on 2022-09-19 16:28 (UTC)

Having issues building as of today.

FAILED: gen/electron/js2c/sandbox_bundle.js 
python3 ../../electron/build/npm-run.py --silent webpack -- --config /home/daryl/.cache/yay/electron15/src/src/electron/build/webpack/webpack.config.sandboxed_renderer.js --output-filename=sandbox_bundle.js --output-path=/home/daryl/.cache/yay/electron15/src/src/out/Release/gen/electron/js2c --env.buildflags=/home/daryl/.cache/yay/electron15/src/src/out/Release/gen/electron/buildflags/buildflags.h --env.mode=production
NPM script 'webpack' failed with code '1':
/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/loader-runner/lib/LoaderRunner.js:133
                if(isError) throw e;
                            ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/webpack/lib/NormalModule.js:471:10)
    at /home/daryl/.cache/yay/electron15/src/src/electron/node_modules/webpack/lib/NormalModule.js:503:5
    at /home/daryl/.cache/yay/electron15/src/src/electron/node_modules/webpack/lib/NormalModule.js:358:12
    at /home/daryl/.cache/yay/electron15/src/src/electron/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at iterateNormalLoaders (/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
    at /home/daryl/.cache/yay/electron15/src/src/electron/node_modules/loader-runner/lib/LoaderRunner.js:236:3
    at context.callback (/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at makeSourceMapAndFinish (/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/ts-loader/dist/index.js:59:5)
    at successLoader (/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/ts-loader/dist/index.js:41:5)
    at Object.loader (/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/ts-loader/dist/index.js:24:5)
    at LOADER_EXECUTION (/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/loader-runner/lib/LoaderRunner.js:119:14)
    at runSyncOrAsync (/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/loader-runner/lib/LoaderRunner.js:120:4)
    at iterateNormalLoaders (/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
    at Array.<anonymous> (/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
    at Storage.finished (/home/daryl/.cache/yay/electron15/src/src/electron/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:43:16)
    at /home/daryl/.cache/yay/electron15/src/src/electron/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:79:9
    at /home/daryl/.cache/yay/electron15/src/src/electron/node_modules/graceful-fs/graceful-fs.js:90:16
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v18.7.0

[1401/41367] CXX obj/skia/skia_core_and_effects/SkDraw_vertices.o
ninja: build stopped: subcommand failed.

lkrms commented on 2022-09-07 16:32 (UTC)

@ogghi my understanding is that it's normal for Electron to take a few hours to build from source (I think it was 5+ on my system here), not that I've needed to do it previously. Installing a prebuilt -bin if you can't delegate the build to another system or leave it running overnight makes sense, especially if you're in a hurry.

I'd prefer Arch keep these packages online so we could avoid the time and cost and CPU cycles involved in completing such large builds for so few systems, but Electron's versioning doesn't make it easy, unfortunately :(

ogghi commented on 2022-09-04 20:09 (UTC)

Latest update here took ages to build, I actually interrupted it and installed the -bin version instead. Any specific reason?