Fast, simple and secure messaging app from your desktop

Edit Package signal-desktop
https://github.com/signalapp/Signal-Desktop/

Signal Desktop is an Electron application that links with your Signal Android
or Signal iOS app.

Refresh
Refresh
Source Files
Filename Size Changed
0001-ts-log-Avoid-log-spam-for-ResizeObserver-loop-limit-.patch 0000001234 1.21 KB
7za-path.patch 0000000643 643 Bytes
AttachmentBackupManager_test-skip.patch 0000000737 737 Bytes
Remove-build-time-dependencies.patch 0000001463 1.43 KB
Signal-Desktop-7.63.0.tar.gz 0045967096 43.8 MB
Use-system-Inter-font.patch 0000003123 3.05 KB
electron-builder-no-pnpm.patch 0000000509 509 Bytes
electron-winstaller-install.patch 0000000419 419 Bytes
esbuild_version.patch 0000001677 1.64 KB
locale-isPackaged.patch 0000000758 758 Bytes
migration_1100_test-flaky.patch 0000000393 393 Bytes
mocha-increase-timeout.patch 0000000354 354 Bytes
no-comments-pretty-printing-and-sourcemaps.patch 0000003023 2.95 KB
prepare_vendor.sh 0000003706 3.62 KB
remove-fuses.patch 0000001562 1.53 KB
resolveCanonicalLocales_test-skip.patch 0000000576 576 Bytes
ringrtc-no-download.patch 0000000389 389 Bytes
scrollUtil_test-disable.patch 0000001215 1.19 KB
signal-desktop-remove-heif-support.patch 0000002254 2.2 KB
signal-desktop.changes 0000118247 115 KB
signal-desktop.desktop 0000000404 404 Bytes
signal-desktop.spec 0000022630 22.1 KB
sqlcipher-install.patch 0000000811 811 Bytes
system-esbuild.patch 0000001956 1.91 KB
test-mock-flaky.patch 0000001949 1.9 KB
vendor.tar.zst 0184146628 176 MB
Comments 18

Bruno Pitrus's avatar

Do you know how often electron makes ABI-breaking changes? If minor updates are OK, it might be worth doing something like this:

Requires: nodejs-electron%{?_isa} >= %{electron_req_version}

Requires: nodejs-electron%{?_isa} < 17 (or whatever is current version + 1)

My Bitwarden binaries built with Electron 13 ( https://build.opensuse.org/package/show/home:dziobian:gulgul-ultron/bitwarden ) work fine on 16, but Signal does not, so there seem to be at least two types of binary Node modules.


Andreas Schneider's avatar

Signal requires header files for electron which are being downloaded. Same for nodejs, so the header files in the vendor tarball need to match exactly the nodejs and electron version to be able to build it.

Yes, it is quite a mess.


Bruno Pitrus's avatar

The nodejs headers are provided in nodejs16-devel and can be used adding --nodedir=/usr/include/node16 to npm command line. Unfortunately the SuSE distribution of electron does not include devel headers. Ouch.

My question was different tho. I was asking whether binaries built against electron 16.0.1 can run with electron 16.0.2.


Andreas Schneider's avatar

Yes, that should work. I was even able to run signal-desktop built against electron 13 with electron 15. However signal-desktop build with 15 and running with 16 doesn't work. Minor version updates should work.

I will look into node includes soon. However it still downloads electron headers from the web. Maybe we can package them too.


Andreas Schneider's avatar

If I do export npm_config_nodedir=/usr/include/node16

node-gyp doesn't find the header:

make: Entering directory '/tmp/signal-desktop-1Tah1oUK/Signal-Desktop-5.29.0/node_modules/fs-xattr/build'
  CC(target) Release/obj.target/xattr/src/async.o
In file included from ../src/async.c:6:
../src/error.h:5:10: fatal error: node_api.h: No such file or directory
    5 | #include <node_api.h>
      |  


Bruno Pitrus's avatar

The environment variable seems to not work, you need to use --prefix=…. See how i did it in my spec for bitwarden


Andreas Schneider's avatar

That's just a workaround. I think right fix is that the common.gypi sets the include path correctly.


Jos Poortvliet's avatar

I also see the remove-heif support patch, that's uncool, I'll miss out on lots of dog and food pictures!

Seriously, anything that can be done to have working heif support? As disabling that means 99% of the pics I get don't show :D Or does it work and does this patch do something else... Sorry, just curious I guess.


Andreas Schneider's avatar

Tell your friends to use royalty free image formats.


P's avatar

Thank you for your dedication and hard work! This is so much appreciated!!!


Will McCullen's avatar

I agree. Thank you for all you do. Just out of curiosity, is anyone else having issues with spellcheck working?


Eyad Issa's avatar

Hello everybody, why is signal not submitted to Factory? Just a curious question


i thod's avatar

https://build.opensuse.org/package/show/home:ithod:signal/signal-desktop#comment-1649266

@dziobian Have you reconsidered this after submitting bitwarden?


Bruno Pitrus's avatar

I heavily prune bitwarden's node_modules, and don't run the test suite there. Also they're not as code-bloat-happy as signal.

Also bitwarden now is at risk of getting stuck with an outdated version due to the wasm module. (The licensing situation got resolved with upstream, but i did not have enough free time to get it to build yet)


Scott Deagan's avatar

Hi. It looks like one or more of the packages have been signed using an expired GPG key. This causes installation on Fedora to fail. At the moment the (horrible) workaround is to ignore GPG checks:

sudo dnf --nogpgcheck install signal-desktop

I have filed a bug here:

https://bugzilla.opensuse.org/show_bug.cgi?id=1245441


i thod's avatar

As this is done automatic by the build service, could you check/compare to https://build.opensuse.org/projects/network:im:signal/signing_keys


Scott Deagan's avatar

Hi. I'm not confident with certificate management/querying, but after some Googling and help from someone in the Fedora discussion groups:

$ gpg --list-keys
[keyboxd]
---------
pub   rsa2048 2013-09-24 [SC] [expired: 2024-08-02]
      0080689BE757A876CB7DC26962EB1A0917280DDF
uid           [ expired] network OBS Project <network@build.opensuse.org>

pub   rsa4096 2025-06-17 [SC] [expires: 2027-08-26]
      426AA6B0285C2096B70D9FC2528423A469A77D9A
uid           [ unknown] network OBS Project <network@build.opensuse.org>


$ rpm -q --qf="%{RSAHEADER:pgpsig}\n" signal-sqlcipher libsignal
RSA/SHA256, Thu 29 May 2025 13:16:10 BST, Key ID 62eb1a0917280ddf
RSA/SHA256, Thu 29 May 2025 13:41:30 BST, Key ID 62eb1a0917280ddf

$ gpg --recv-keys 62eb1a0917280ddf
gpg: key 62EB1A0917280DDF: public key "network OBS Project <network@build.opensuse.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1

$ gpg --list-keys 62eb1a0917280ddf
pub   rsa2048 2013-09-24 [SC] [expired: 2024-08-02]
      0080689BE757A876CB7DC26962EB1A0917280DDF
uid           [ expired] network OBS Project <network@build.opensuse.org>

Is this what you were after? If not, please let me know what commands to run.

Also, should I update the ticket with the above?

Again - many thanks.

openSUSE Build Service is sponsored by