dennisameling/Signal-Desktop

Building on arm64 (Debian Bullseye) fails

Closed this issue · 2 comments

First, thank you for your excellent work @dennisameling.

Tried to take you up on your request for building an arm64 package, but being a "Windows guy" with my first chromebook, well let's say it is a ride to get this going 😅.

I just want to make clear, I am fully aware this is most likely an issue on my part, I just wanted to try to set up so I could compile this and share it since I both want it for myself and apparently others have requested it and instead of asking someone else to do it, I thought I'd give it a shot...

So, I'm running latest dev from Google, meaning Debian Bullseye (11.3)
I've downgraded Node to 16.13.0 as it appears that is necessary

[1/6] Validating package.json...
error signal-desktop@5.39.0-beta.1: The engine "node" is incompatible with this module. Expected version "16.13.0". Got "18.6.0"
error Found incompatible module.

After that I am able to run yarn, but it appears it does run into errors. From what I can read it appears it's with better-sqlite3 and s-xattr

yarn install v1.22.19
[1/6] Validating package.json...
[2/6] Resolving packages...
[3/6] Fetching packages...
warning url-loader@1.1.2: Invalid bin field for "url-loader".
[4/6] Linking dependencies...
warning " > focus-trap-react@8.8.1" has unmet peer dependency "prop-types@^15.7.2".
warning " > react-contextmenu@2.11.0" has unmet peer dependency "prop-types@^15.0.0".
warning " > react-sortable-hoc@1.9.1" has unmet peer dependency "prop-types@^15.5.7".
warning " > css-loader@3.2.0" has incorrect peer dependency "webpack@^4.0.0".
warning " > file-loader@4.2.0" has incorrect peer dependency "webpack@^4.0.0".
warning " > style-loader@1.0.0" has incorrect peer dependency "webpack@^4.0.0".
[5/6] Building fresh packages...
[8/31] ⢀ playwright
[2/31] ⢀ better-sqlite3
[12/31] ⢀ electron
[11/31] ⢀ core-js-pure
error /home/myuser/Signal/Signal-Desktop/node_modules/better-sqlite3: Command failed.
Exit code: 1
Command: npm run build-release
Arguments: 
Directory: /home/myuser/Signal/Signal-Desktop/node_modules/better-sqlite3
Output:
> better-sqlite3@7.1.4 build-release
> node-gyp rebuild --release

gyp info it worked if it ends with ok
gyp info using node-gyp@7.1.2
gyp info using node@16.13.0 | linux | arm64
gyp info find Python using Python version 3.9.2 found at "/usr/bin/python3"
gyp http GET https://nodejs.org/download/release/v16.13.0/node-v16.13.0-headers.tar.gz
gyp http 200 https://nodejs.org/download/release/v16.13.0/node-v16.13.0-headers.tar.gz
gyp http GET https://nodejs.org/download/release/v16.13.0/SHASUMS256.txt
gyp http 200 https://nodejs.org/download/release/v16.13.0/SHASUMS256.txt
(node:5274) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
(Use `node --trace-deprecation ...` to show where the warning was created)
gyp info spawn /usr/bin/python3
gyp info spawn args [
gyp info spawn args   '/home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/home/myuser/Signal/Signal-Desktop/node_modules/better-sqlite3/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/myuser/.cache/node-gyp/16.13.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/home/myuser/.cache/node-gyp/16.13.0',
gyp info spawn args   '-Dnode_gyp_dir=/home/myuser/Signal/Signal-Desktop/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/home/myuser/.cache/node-gyp/16.13.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/home/myuser/Signal/Signal-Desktop/node_modules/better-sqlite3',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp ERR! build error 
gyp ERR! stack Error: not found: make
gyp ERR! stack     at getNotFoundError (/home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/node_modules/which/which.js:10:17)
gyp ERR! stack     at /home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/node_modules/which/which.js:57:18
gyp ERR! stack     at new Promise (<anonymous>)
gyp ERR! stack     at step (/home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/node_modules/which/which.js:54:21)
gyp ERR! stack     at /home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/node_modules/which/which.js:71:22
gyp ERR! stack     at new Promise (<anonymous>)
gyp ERR! stack     at subStep (/home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/node_modules/which/which.js:69:33)
gyp ERR! stack     at /home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/node_modules/which/which.js:80:22
gyp ERR! stack     at /home/myuser/Signal/Signal-Desktop/node_modules/isexe/index.js:42:5
gyp ERR! stack     at /home/myuser/Signal/Signal-Desktop/node_modules/isexe/mode.js:8:5
gyp ERR! System Linux 5.10.130-18323-g72ac72cdffd2
gyp ERR! command "/home/myuser/.config/nvm/versions/node/v16.13.0/bin/node" "/home/myuser/Signal/Signal-Desktop/node_modules/.bin/node-gyp" "rebuild" "--release"
gyp ERR! cwd /home/myuser/Signal/Signal-Desktop/node_modules/better-sqlite3
gyp ERR! node -v v16.13.0
gyp ERR! node-gyp -v v7.1.2
gyp ERR! not ok 
npm notice 
npm notice New minor version of npm available! 8.1.0 -> 8.15.0




warning Error running install script for optional dependency: "/home/myuser/Signal/Signal-Desktop/node_modules/fs-xattr: Command failed.
Exit code: 1
Command: node-gyp rebuild
Arguments: 
Directory: /home/myuser/Signal/Signal-Desktop/node_modules/fs-xattr
Output:
gyp info it worked if it ends with ok
gyp info using node-gyp@8.2.0
gyp info using node@16.13.0 | linux | arm64
gyp info find Python using Python version 3.9.2 found at \"/usr/bin/python3\"
gyp info spawn /usr/bin/python3
gyp info spawn args [
gyp info spawn args   '/home/myuser/.config/nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/home/myuser/Signal/Signal-Desktop/node_modules/fs-xattr/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/myuser/.config/nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/myuser/.cache/node-gyp/16.13.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/home/myuser/.cache/node-gyp/16.13.0',
gyp info spawn args   '-Dnode_gyp_dir=/home/myuser/.config/nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/home/myuser/.cache/node-gyp/16.13.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/home/myuser/Signal/Signal-Desktop/node_modules/fs-xattr',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp ERR! build error 
gyp ERR! stack Error: not found: make
gyp ERR! stack     at getNotFoundError (/home/myuser/.config/nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/which/which.js:10:17)
gyp ERR! stack     at /home/myuser/.config/nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/which/which.js:57:18
gyp ERR! stack     at new Promise (<anonymous>)
gyp ERR! stack     at step (/home/myuser/.config/nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/which/which.js:54:21)
gyp ERR! stack     at /home/myuser/.config/nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/which/which.js:71:22
gyp ERR! stack     at new Promise (<anonymous>)
gyp ERR! stack     at subStep (/home/myuser/.config/nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/which/which.js:69:33)
gyp ERR! stack     at /home/myuser/.config/nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/which/which.js:80:22
gyp ERR! stack     at /home/myuser/.config/nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/isexe/index.js:42:5
gyp ERR! stack     at /home/myuser/.config/nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/isexe/mode.js:8:5
gyp ERR! System Linux 5.10.130-18323-g72ac72cdffd2
gyp ERR! command \"/home/myuser/.config/nvm/versions/node/v16.13.0/bin/node\" \"/home/myuser/.config/nvm/versions/node/v16.13.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"rebuild\"
gyp ERR! cwd /home/myuser/Signal/Signal-Desktop/node_modules/fs-xattr
gyp ERR! node -v v16.13.0
gyp ERR! node-gyp -v v8.2.0
gyp ERR! not ok"
info This module is OPTIONAL, you can safely ignore this error

Thinking: Well, I'll try to build anyway I ran yarn build and got the following, but no files in the release folder...

$ run-s --print-label generate build:typed-scss build:webpack build:release
[generate        ] $ npm-run-all build-protobuf build:esbuild sass get-expire-time copy-and-concat
[generate        ] $ yarn build-module-protobuf
[generate        ] $ pbjs --target static-module --force-long --no-verify --no-create --wrap commonjs --out ts/protobuf/compiled.js protos/*.proto && pbts --out ts/protobuf/compiled.d.ts ts/protobuf/compiled.js
[generate        ] installing semver@^7.1.2
[generate        ] installing chalk@^4.0.0
[generate        ] installing jsdoc@^3.6.3
[generate        ] installing escodegen@^2.0.0
[generate        ] installing estraverse@^5.1.0
[generate        ] $ node scripts/esbuild.js
[generate        ] 
[generate        ]   ts/groups.js                                        497.8kb
[generate        ]   ts/models/conversations.js                          463.6kb
[generate        ]   ts/background.js                                    329.2kb
[generate        ]   ts/sql/Server.js                                    309.5kb
[generate        ]   ts/views/conversation_view.js                       293.2kb
[generate        ]   ts/models/messages.js                               269.8kb
[generate        ]   ts/textsecure/WebAPI.js                             235.1kb
[generate        ]   ts/state/ducks/conversations.js                     234.0kb
[generate        ]   ts/textsecure/MessageReceiver.js                    233.5kb
[generate        ]   ts/components/conversation/Message.js               205.7kb
[generate        ]   ts/test-electron/state/ducks/calling_test.js        194.0kb
[generate        ]   ts/services/calling.js                              184.8kb
[generate        ]   ts/test-electron/state/ducks/conversations_test.js  182.0kb
[generate        ]   app/main.js                                         176.0kb
[generate        ]   ts/test-electron/SignalProtocolStore_test.js        171.5kb
[generate        ]   ts/textsecure/SendMessage.js                        169.6kb
[generate        ]   ts/test-both/state/selectors/conversations_test.js  159.0kb
[generate        ]   ts/SignalProtocolStore.js                           158.2kb
[generate        ]   ts/state/ducks/calling.js                           150.7kb
[generate        ]   ts/test-node/sql_migrations_test.js                 141.7kb
[generate        ]   ...and 1446 more output files...
[generate        ] 
[generate        ] 
[generate        ]   preload.bundle.js  29.2mb ⚠️
[generate        ] 
[generate        ] $ sass stylesheets/manifest.scss:stylesheets/manifest.css stylesheets/manifest_bridge.scss:stylesheets/manifest_bridge.css
[generate        ] $ node ts/scripts/get-expire-time.js
[generate        ] $ node ts/scripts/copy-and-concat.js
[generate        ] Concatenating...
[generate        ] Concatenating /home/myuser/Signal/Signal-Desktop/node_modules/jquery/dist/jquery.js
[generate        ] Concatenating /home/myuser/Signal/Signal-Desktop/node_modules/mustache/mustache.js
[generate        ] Concatenating /home/myuser/Signal/Signal-Desktop/node_modules/underscore/underscore.js
[generate        ] Concatenating /home/myuser/Signal/Signal-Desktop/components/webaudiorecorder/lib/WebAudioRecorder.js
[generate        ] Writing to /home/myuser/Signal/Signal-Desktop/js/components.js
[generate        ] 
[generate        ] Copying...
[generate        ] Copying /home/myuser/Signal/Signal-Desktop/components/mp3lameencoder/lib/Mp3LameEncoder.js to /home/myuser/Signal/Signal-Desktop/js/Mp3LameEncoder.min.js
[generate        ] Copying /home/myuser/Signal/Signal-Desktop/components/webaudiorecorder/lib/WebAudioRecorderMp3.js to /home/myuser/Signal/Signal-Desktop/js/WebAudioRecorderMp3.js
[build:typed-scss] $ tsm sticker-creator
[build:typed-scss] Found 27 files. Generating type definitions...
[build:typed-scss] [NO GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/_mixins.scss
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/app/stages/MetaStage.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/app/stages/DropStage.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/app/index.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/components/StickerPackPreview.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/Button.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/components/StickerFrame.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/components/ShareButtons.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/app/stages/UploadStage.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/app/stages/ShareStage.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/ConfirmDialog.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/components/StickerGrid.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/DropZone.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/LabeledCheckbox.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/MessageBubble.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/MessageSticker.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/CopyText.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/app/stages/AppStage.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/LabeledInput.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/ProgressBar.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/PageHeader.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/components/ConfirmModal.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/StickerPreview.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/MessageMeta.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/StoryRow.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/Typography.scss.d.ts
[build:typed-scss] [GENERATED TYPES] /home/myuser/Signal/Signal-Desktop/sticker-creator/elements/Toast.scss.d.ts
[build:webpack   ] $ run-p build:webpack:sticker-creator "build:esbuild --prod"
[build:webpack   ] $ cross-env NODE_ENV=production webpack
[build:webpack   ] $ node scripts/esbuild.js --prod
[build:webpack   ] 
[build:webpack   ]   ts/groups.js                                        148.7kb
[build:webpack   ]   ts/models/conversations.js                          134.3kb
[build:webpack   ]   ts/background.js                                    100.5kb
[build:webpack   ]   ts/sql/Server.js                                     91.9kb
[build:webpack   ]   ts/views/conversation_view.js                        88.1kb
[build:webpack   ]   ts/models/messages.js                                81.0kb
[build:webpack   ]   ts/textsecure/MessageReceiver.js                     69.2kb
[build:webpack   ]   ts/state/ducks/conversations.js                      65.0kb
[build:webpack   ]   ts/textsecure/WebAPI.js                              64.7kb
[build:webpack   ]   ts/test-electron/state/ducks/calling_test.js         64.4kb
[build:webpack   ]   ts/test-electron/state/ducks/conversations_test.js   63.8kb
[build:webpack   ]   ts/components/conversation/Message.js                63.2kb
[build:webpack   ]   ts/services/calling.js                               56.7kb
[build:webpack   ]   ts/test-electron/SignalProtocolStore_test.js         54.3kb
[build:webpack   ]   app/main.js                                          54.2kb
[build:webpack   ]   ts/test-both/state/selectors/conversations_test.js   54.0kb
[build:webpack   ]   ts/textsecure/SendMessage.js                         49.2kb
[build:webpack   ]   ts/components/conversation/Message.stories.js        47.4kb
[build:webpack   ]   ts/sql/migrations/index.js                           46.3kb
[build:webpack   ]   ts/SignalProtocolStore.js                            46.1kb
[build:webpack   ]   ...and 1446 more output files...
[build:webpack   ] 
[build:webpack   ] 
[build:webpack   ]   preload.bundle.js  7.7mb ⚠️
[build:webpack   ] 
[build:webpack   ] Browserslist: caniuse-lite is outdated. Please run:
[build:webpack   ] npx browserslist@latest --update-db
[build:webpack   ] 
[build:webpack   ] Why you should do it regularly:
[build:webpack   ] https://github.com/browserslist/browserslist#browsers-data-updating
[build:webpack   ] assets by chunk 4.83 MiB (auxiliary name: main)
[build:webpack   ]   assets by path *.woff2 2.48 MiB 21 assets
[build:webpack   ]   assets by path *.woff 2.35 MiB 18 assets
[build:webpack   ] asset bundle.js 2 MiB [emitted] [minimized] [big] (name: main) 1 related asset
[build:webpack   ] asset index.html 644 bytes [emitted]
[build:webpack   ] orphan modules 1.96 MiB [orphan] 233 modules
[build:webpack   ] runtime modules 1.28 KiB 7 modules
[build:webpack   ] modules by path ./node_modules/ 638 KiB 385 modules
[build:webpack   ] modules by path ./sticker-creator/ 1.97 MiB
[build:webpack   ]   modules by path ./sticker-creator/elements/*.scss 21.2 KiB 28 modules
[build:webpack   ]   modules by path ./sticker-creator/app/ 7.59 KiB
[build:webpack   ]     modules by path ./sticker-creator/app/stages/*.scss 6.71 KiB 10 modules
[build:webpack   ]     modules by path ./sticker-creator/app/*.scss 900 bytes
[build:webpack   ]       ./sticker-creator/app/index.scss 497 bytes [built] [code generated]
[build:webpack   ]       ./node_modules/css-loader/dist/cjs.js?modules=true&localsConvention=camelCaseOnly!./node_modules/sass-loader/dist/cjs.js!./sticker-creator/app/index.scss 403 bytes [built] [code generated]
[build:webpack   ]   modules by path ./sticker-creator/components/*.scss 8.34 KiB 10 modules
[build:webpack   ]   ./sticker-creator/index.tsx + 215 modules 1.93 MiB [built] [code generated]
[build:webpack   ] 
[build:webpack   ] WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
[build:webpack   ] This can impact web performance.
[build:webpack   ] Assets: 
[build:webpack   ]   4d584d5c2069f84a38aaf54e53271081.woff2 (293 KiB)
[build:webpack   ]   bundle.js (2 MiB)
[build:webpack   ] 
[build:webpack   ] WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
[build:webpack   ] Entrypoints:
[build:webpack   ]   main (2 MiB)
[build:webpack   ]       bundle.js
[build:webpack   ] 
[build:webpack   ] WARNING in webpack performance recommendations: 
[build:webpack   ] You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.
[build:webpack   ] For more info visit https://webpack.js.org/guides/code-splitting/
[build:webpack   ] 
[build:webpack   ] webpack 5.30.0 compiled with 3 warnings in 21798 ms
[build:release   ] $ cross-env SIGNAL_ENV=production yarn build:electron -- --config.directories.output=release
[build:release   ] warning From Yarn 1.0 onwards, scripts don't require "--" for options to be forwarded. In a future version, any explicit "--" will be forwarded as-is to the scripts.
[build:release   ] $ electron-builder --config.extraMetadata.environment=$SIGNAL_ENV --config.directories.output=release
[build:release   ]   • electron-builder  version=23.0.1 os=5.10.130-18323-g72ac72cdffd2
[build:release   ]   • loaded configuration  file=package.json ("build" field)
[build:release   ]   • rebuilding native dependencies  dependencies=better-sqlite3@7.1.4, mac-screen-capture-permissions@2.0.0, sharp@0.29.3, websocket@1.0.28 platform=linux arch=arm64
[build:release   ]   • install prebuilt binary  name=sharp version=0.29.3 platform=linux arch=arm64 napi= 
[build:release   ]   • install prebuilt binary  name=mac-screen-capture-permissions version=2.0.0 platform=linux arch=arm64 napi=
[build:release   ]   • build native dependency from sources  name=mac-screen-capture-permissions
[build:release   ]                                           version=2.0.0
[build:release   ]                                           platform=linux
[build:release   ]                                           arch=arm64
[build:release   ]                                           napi=
[build:release   ]                                           reason=prebuild-install failed with error (run with env DEBUG=electron-builder to get more information)
[build:release   ]                                           error=/home/myuser/Signal/Signal-Desktop/node_modules/node-abi/index.js:30
[build:release   ]       throw new Error('Could not detect abi for version ' + target + ' and runtime ' + runtime + '.  Updating "node-abi" might help solve this issue if it is a new release of ' + runtime)
[build:release   ]       ^
[build:release   ]     
[build:release   ]     Error: Could not detect abi for version 17.3.1 and runtime electron.  Updating "node-abi" might help solve this issue if it is a new release of electron
[build:release   ]         at getAbi (/home/myuser/Signal/Signal-Desktop/node_modules/node-abi/index.js:30:9)
[build:release   ]         at module.exports (/home/myuser/Signal/Signal-Desktop/node_modules/prebuild-install/rc.js:53:57)
[build:release   ]         at Object.<anonymous> (/home/myuser/Signal/Signal-Desktop/node_modules/prebuild-install/bin.js:8:25)
[build:release   ]         at Module._compile (node:internal/modules/cjs/loader:1101:14)
[build:release   ]         at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
[build:release   ]         at Module.load (node:internal/modules/cjs/loader:981:32)
[build:release   ]         at Function.Module._load (node:internal/modules/cjs/loader:822:12)
[build:release   ]         at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
[build:release   ]         at node:internal/main/run_main_module:17:47
[build:release   ]     
[build:release   ]   • rebuilding native dependency  name=mac-screen-capture-permissions version=2.0.0
[build:release   ]   • rebuilding native dependency  name=better-sqlite3 version=7.1.4
[build:release   ]   • rebuilding native dependency  name=websocket version=1.0.28
[build:release   ]   ⨯ cannot execute  cause=exit status 1
[build:release   ]                     out=$ npm run build-release
[build:release   ]     
[build:release   ]     > better-sqlite3@7.1.4 build-release
[build:release   ]     > node-gyp rebuild --release
[build:release   ]     
[build:release   ]     info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
[build:release   ]     
[build:release   ]                     errorOut=gyp info it worked if it ends with ok
[build:release   ]     gyp info using node-gyp@7.1.2
[build:release   ]     gyp info using node@16.13.0 | linux | arm64
[build:release   ]     gyp info find Python using Python version 3.9.2 found at "/usr/bin/python3"
[build:release   ]     gyp http GET https://electronjs.org/headers/v17.3.1/node-v17.3.1-headers.tar.gz
[build:release   ]     gyp http 200 https://electronjs.org/headers/v17.3.1/node-v17.3.1-headers.tar.gz
[build:release   ]     gyp http GET https://electronjs.org/headers/v17.3.1/SHASUMS256.txt
[build:release   ]     gyp http 200 https://electronjs.org/headers/v17.3.1/SHASUMS256.txt
[build:release   ]     (node:6062) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
[build:release   ]     (Use `node --trace-deprecation ...` to show where the warning was created)
[build:release   ]     gyp info spawn /usr/bin/python3
[build:release   ]     gyp info spawn args [
[build:release   ]     gyp info spawn args   '/home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/gyp/gyp_main.py',
[build:release   ]     gyp info spawn args   'binding.gyp',
[build:release   ]     gyp info spawn args   '-f',
[build:release   ]     gyp info spawn args   'make',
[build:release   ]     gyp info spawn args   '-I',
[build:release   ]     gyp info spawn args   '/home/myuser/Signal/Signal-Desktop/node_modules/better-sqlite3/build/config.gypi',
[build:release   ]     gyp info spawn args   '-I',
[build:release   ]     gyp info spawn args   '/home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/addon.gypi',
[build:release   ]     gyp info spawn args   '-I',
[build:release   ]     gyp info spawn args   '/home/myuser/.electron-gyp/17.3.1/include/node/common.gypi',
[build:release   ]     gyp info spawn args   '-Dlibrary=shared_library',
[build:release   ]     gyp info spawn args   '-Dvisibility=default',
[build:release   ]     gyp info spawn args   '-Dnode_root_dir=/home/myuser/.electron-gyp/17.3.1',
[build:release   ]     gyp info spawn args   '-Dnode_gyp_dir=/home/myuser/Signal/Signal-Desktop/node_modules/node-gyp',
[build:release   ]     gyp info spawn args   '-Dnode_lib_file=/home/myuser/.electron-gyp/17.3.1/<(target_arch)/node.lib',
[build:release   ]     gyp info spawn args   '-Dmodule_root_dir=/home/myuser/Signal/Signal-Desktop/node_modules/better-sqlite3',
[build:release   ]     gyp info spawn args   '-Dnode_engine=v8',
[build:release   ]     gyp info spawn args   '--depth=.',
[build:release   ]     gyp info spawn args   '--no-parallel',
[build:release   ]     gyp info spawn args   '--generator-output',
[build:release   ]     gyp info spawn args   'build',
[build:release   ]     gyp info spawn args   '-Goutput_dir=.'
[build:release   ]     gyp info spawn args ]
[build:release   ]     gyp ERR! build error 
[build:release   ]     gyp ERR! stack Error: not found: make
[build:release   ]     gyp ERR! stack     at getNotFoundError (/home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/node_modules/which/which.js:10:17)
[build:release   ]     gyp ERR! stack     at /home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/node_modules/which/which.js:57:18
[build:release   ]     gyp ERR! stack     at new Promise (<anonymous>)
[build:release   ]     gyp ERR! stack     at step (/home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/node_modules/which/which.js:54:21)
[build:release   ]     gyp ERR! stack     at /home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/node_modules/which/which.js:71:22
[build:release   ]     gyp ERR! stack     at new Promise (<anonymous>)
[build:release   ]     gyp ERR! stack     at subStep (/home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/node_modules/which/which.js:69:33)
[build:release   ]     gyp ERR! stack     at /home/myuser/Signal/Signal-Desktop/node_modules/node-gyp/node_modules/which/which.js:80:22
[build:release   ]     gyp ERR! stack     at /home/myuser/Signal/Signal-Desktop/node_modules/isexe/index.js:42:5
[build:release   ]     gyp ERR! stack     at /home/myuser/Signal/Signal-Desktop/node_modules/isexe/mode.js:8:5
[build:release   ]     gyp ERR! System Linux 5.10.130-18323-g72ac72cdffd2
[build:release   ]     gyp ERR! command "/home/myuser/.config/nvm/versions/node/v16.13.0/bin/node" "/home/myuser/Signal/Signal-Desktop/node_modules/.bin/node-gyp" "rebuild" "--release"
[build:release   ]     gyp ERR! cwd /home/myuser/Signal/Signal-Desktop/node_modules/better-sqlite3
[build:release   ]     gyp ERR! node -v v16.13.0
[build:release   ]     gyp ERR! node-gyp -v v7.1.2
[build:release   ]     gyp ERR! not ok 
[build:release   ]     error Command failed with exit code 1.
[build:release   ]     
[build:release   ]                     command=/home/myuser/.config/nvm/versions/node/v16.13.0/bin/node /home/myuser/.node/corepack/yarn/1.22.19/bin/yarn.js run install
[build:release   ]                     workingDir=/home/myuser/Signal/Signal-Desktop/node_modules/better-sqlite3
[build:release   ] error Command failed with exit code 1.
[build:release   ] info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
[build:release   ] error Command failed with exit code 1.
[build:release   ] info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
ERROR: "build:release" exited with 1.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

@werkstrom thanks for posting here and sorry for the late reply! Things have been quite busy lately 😅

Looking at your logs, this is the key issue:

[build:release   ]     gyp ERR! stack Error: not found: make

This means that make is not installed on your machine, so the native dependencies that Signal uses can't be built. Can you please try the following command?

sudo apt-get install make

If that's enough and it complains about other tools not being available, you might want to try:

sudo apt-get install build-essential

... which installs a brother set of tools like gcc. Please refer to Signal's contributing documentation for a list of all required tools.

Hope this helps!

Closing due to lack of response. Feel free to let me know if this is still an issue for you.