Edit Package signal-desktop

Fast, simple and secure messaging app from your 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 0000001271 1.24 KB 9 months
Remove-build-time-dependencies.patch 0000001368 1.34 KB about 1 month
Signal-Desktop-5.53.0.tar.gz 0038326315 36.6 MB 6 days
Use-system-Inter-font.patch 0000002675 2.61 KB about 1 month
esbuild_version.patch 0000000805 805 Bytes 27 days
prepare_vendor.sh 0000006014 5.87 KB 6 days
signal-desktop-better-sqlite3-openssl.patch 0000001518 1.48 KB 4 months
signal-desktop-expire-from-source-date-epoch.patch 0000000649 649 Bytes 7 months
signal-desktop-remove-heif-support.patch 0000002144 2.09 KB 4 months
signal-desktop-webpack-openssl-3-0.patch 0000000903 903 Bytes 6 months
signal-desktop.changes 0000056166 54.8 KB 6 days
signal-desktop.desktop 0000000292 292 Bytes over 2 years
signal-desktop.spec 0000014304 14 KB 6 days
vendor.tar.zst 0270356501 258 MB 6 days
Comments 25

Bruno Pitrus's avatar

dziobian wrote 7 months ago

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

gladiac wrote 7 months ago

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

dziobian wrote 7 months ago

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

gladiac wrote 7 months ago

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

gladiac wrote 7 months ago

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

dziobian wrote 6 months ago

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

gladiac wrote 6 months ago

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


Jos Poortvliet's avatar

jos_poortvliet wrote 6 months ago

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

gladiac wrote 6 months ago

Tell your friends to use royalty free image formats.


P's avatar

Ceaus wrote 6 months ago

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


Ki Mi's avatar

kimi wrote about 2 months ago

Request: could you try to build signal-desktop also for Fedora 35? The reason is that although I tried Fedora 36 it is needed to backtrack to Fedora 35 for a while, until bugs are resolved.


Bruno Pitrus's avatar

dziobian wrote about 2 months ago

You need to ask the nodejs-electron maintainers first. Iirc Fedora 35 was disabled when electron moved from d:l:javascript to d:l:nodejs


i thod's avatar

ithod wrote about 2 months ago

For the current nodejs-electron 17.x some dependencies are not resolved https://build.opensuse.org/package/show/home:ithod:signal/nodejs-electron


Bruno Pitrus's avatar

dziobian wrote about 2 months ago

I think i can now guess what the problem was — fedora 35 does not have any ffmpeg AT ALL, and legal disapproved of the vendored ffmpeg copy in Chromium (it is remove from tarball, but spurious references remained in specfile)


Andreas Schneider's avatar

gladiac wrote about 2 months ago

Yes, I packaged ffmpeg in Fedora for 36. You can't build it for older versions.


Ki Mi's avatar

kimi wrote about 2 months ago

nodejs-electron has built on Fedora 35 using libavcodec-free.

Package libavcodec-free available for Fedora 36 and Fedora Rawhide compiles on Fedora 35.


Bruno Pitrus's avatar

dziobian wrote about 1 month ago

@gladiac @ithod We should switch to using system esbuild instead of a shipping a binary of unknown provenance in the vendor tarball.


i thod's avatar

ithod wrote about 1 month ago

Do you refer to signal-desktop only or also to electron and further dependencies? I am not so familiar with building js (and to me many parts like 1000 dependencies are still a mystery), but you are probably an expert. Please feel free to suggest changes or a simple example/links. (The current idea is that we provide the script to create the vendor so everyone can check/reproduce...)


Bruno Pitrus's avatar

dziobian wrote about 1 month ago

I'm talking about signal. I don't think electron uses esbuild anywhere. You can look at what i did for vscode.

IIRC there is also a precompiled app-builder binary somewhere (again without any source code) we should also remove!

Neither of these two tools is in Factory right now. Esbuild is available in d:l:javascript, and app-builder in my private repo.


i thod's avatar

ithod wrote about 1 month ago

I see and misunderstood you. Is there any thing that holds you back from submitting app-builder to d:l:javascript?


Bruno Pitrus's avatar

dziobian wrote about 1 month ago

It fits more in d:l:nodejs, but no. I should probably try submitting it to Factory.


Bruno Pitrus's avatar

dziobian wrote about 1 month ago

Ah, now i remember. I did not manage to get it to build on Fedora because the damn thing is written in Go, and later i lost interest because i managed to rip electron-builder out from Bitwarden completely.



openSUSE Build Service is sponsored by