#842943 RFP: signal-desktop -- standalone JS desktop client for Signal Messenger

Package:
wnpp
Source:
wnpp
Submitter:
Hans-Christoph Steiner
Date:
2023-10-07 13:15:02 UTC
Severity:
wishlist
Blocked By:
Bug Title
923512

  0

node-sqlite3: please build with sqlcipher support

normal stable testing unstable over 7 years ago

842420

  13

RFP: electron -- Build cross platform desktop apps with JavaScript, HTML, and CSS

wishlist stable testing unstable 6 months ago

#842943#5
Date:
2016-11-02 12:56:29 UTC
From:
To:
* Package name    : signal-desktop
* Version         : 0.25.4
* Upstream Author : Open Whisper Systems / Lilia Kai
* URL             : https://signal.org/
* License         : gplv3
* Programming Lang: Javascript
* Description     : standalone JS desktop client for Signal Messenger

Signal is a private messaging app, with built-in end-to-end encrpytion
that is always on.  Signal Desktop is a chrome packaged app that links
with your Signal Android or Signal iOS app.

Here is instructions how to manually make a standalone version:
https://timtaubert.de/blog/2016/01/build-your-own-signal-desktop/

Here is the source code:
https://github.com/WhisperSystems/Signal-Desktop

Discussion of packaging:
https://github.com/WhisperSystems/Signal-Desktop/issues/871

#842943#10
Date:
2017-11-03 09:32:53 UTC
From:
To:
Note that the Chrome app is now deprecated and a standalone app is now
provided by Whisper Systems, see:

https://signal.org/blog/standalone-signal-desktop/
https://signal.org/download/

I'm unsure if the sources at https://github.com/WhisperSystems/Signal-Desktop
are for the old chrome app, for the new standalone apps or for both.

Regards,

#842943#15
Date:
2018-02-22 16:57:13 UTC
From:
To:
I'd love to see a package of the Signal standalone desktop client in
main.

As far as I can tell, the github repository at
https://github.com/signalapp/Signal-Desktop has the source of the
standalone desktop client.

- Josh Triplett

#842943#22
Date:
2018-03-28 08:07:46 UTC
From:
To:
AFAICT the signal desktop app has moved from chrome to electron:
https://electronjs.org/apps/signal

Packaging electron itself requires some work, see its RFP (I have added
it as blocker for this one)

Paolo

#842943#27
Date:
2018-04-11 09:26:22 UTC
From:
To:
Given how upstream (Moxie Marlinspike) opposed the redistribution of the
Signal Android app by third parties, and recently asked not to Debian
package libsignal-service-java:

https://github.com/signalapp/libsignal-service-java/issues/50

I suggest contacting him before doing any work towards the packaging of
Signal-Desktop, unless we want to work with an hostile upstream. In this
case, the least that would need to be done is renaming Signal-Desktop to
something else, and possibly changing its icon, as their redistribution
is considered a trademark violation.

Paride

#842943#32
Date:
2018-11-09 21:58:53 UTC
From:
To:
I would like just voice my support for Debian going ahead with packaging
this project, if someone still has the interest (I do not have the
know-how myself).

An issue has been open since August 3 and continues to garner attention
from the community which is a bug preventing old-stable (and downstream
distros) from working AT ALL with current AND past Signal clients (as
the old versions have been blocked). It is my understanding this issue
is eminently addressable by packaging. There has so far been no response
from Signal maintainers, despite being directly addressed in the issue
multiple times. Additionally, arguments made by the Signal developers
not to have external packaging have now been proven incorrect, in large
part due to the existence/lack of attention to this issue.

I managed to get it working fine with the workaround by "scarf" - so, it
can be made to work by performing one of the suggested build or library
substitution procedures. In summary: no version available via packaging
works, or has worked for as much as three months now (I don't know how
recently the old versions stopped working).

Please see:
https://github.com/signalapp/Signal-Desktop/issues/2604

Thank you,
Chris

#842943#37
Date:
2018-11-14 16:21:24 UTC
From:
To:
Hans-Christoph Steiner wrote:

Indeed, I would rather like to see this given the attached...


Best wishes,

#842943#46
Date:
2019-03-01 18:04:04 UTC
From:
To:
I have given signal-desktop a first look.

In terms of dependencies, apart from electron (ehm...) this is what I found:

- to be updated:
   1. node-chalk: 2.3.0 -> 2.4.1
   2. node-espree: 3.5.1 -> 3.5.4
   3. node-filesize: 3.5.11 -> 3.6.1
   4. node-got: 7.1.0 -> 8.2.0
   5. node-he: 1.1.1 -> 1.2.0
   6. node-jquery: 3.3.1 from experimental
   7. node-os-locale: 2.0.0 -> 2.1.0
   8. node-tar: 4.4.6 -> 4.4.8
   9. node-tmp: 0.0.31 -> 0.0.33

- should be possible to build from sources we already have:
   1. @scottnonnenberg-signal/node-sqlcipher: - we can use node-sqlite3, see: https://bugs.debian.org/923512
   2. react-dom: same upstream source as node-react, see: https://bugs.debian.org/923537

- can be probably patched away:
   1. electron-updater: we want to disable "auto-update"
   2. testcheck: clojure script ...

- can be bundled:
   1. electron-editor-context-menu: 104 LOC and 7 dependents
   2. electron-is-dev: 6 LOC and 88 dependents
   3. emoji-datasource: contains JSON data and static assets only, 21 dependents
   4. emoji-datasource-apple: same upstream as emoji-datasource
   5. firstline: 28 LOC and 26 dependents
   6. read-last-lines: 81 LOC and 30 dependents

- ITP existing but could be bundled:
   1. blueimp-canvas-to-blob: https://bugs.debian.org/802243 (102 LOC and builds with uglifyjs)

- to bundle or not to bundle:
   1. linkify-it: 123 LOC and 148 dependents
   2. proxy-agent: 168 LOC and 147 dependents

- ITP existing:
   1. blueimp-load-image: https://bugs.debian.org/802244
   2. bunyan: https://bugs.debian.org/902062
   3. node-sass: https://bugs.debian.org/885555
   4. node-jsdoc: https://bugs.debian.org/774565

- need ITP:
   1. @sindresorhus/is: https://github.com/sindresorhus/is BTW, could this replace all node-is* modules we have ?
   2. blob-util: https://github.com/nolanlawson/blob-util this is built using run-s and run-p commands from https://github.com/mysticatea/npm-run-all and rollup
   3. classnames: 143 LOC but 14000+ dependents
   4. config: 1471 LOC and 2756 dependents
   5. emoji-js: 2630 LOC and 23 dependents
   6. emoji-panel: 1 dependent but built with webpack
   7. google-libphonenumber: uses ant for building (?), 286 dependents
   8. intl-tel-input: built with grunt, 27 dependents
   9. protobufjs: built wih gulp and 967 dependents
   10. react-contextmenu: built with webpack and 67 dependents
   11. spellchecker: nodejs native addon

There is a WIP repo here:
https://salsa.debian.org/js-team/signal-desktop
of course it does not build yet !

Paolo

#842943#56
Date:
2023-10-07 13:13:27 UTC
From:
To:
I just ran ./js_task_edit against the cloned 6.33.0 branch of the
upstream repo to see what's missing for a debian package.

It's now available at
https://wiki.debian.org/Javascript/Nodejs/Tasks/signal-desktop

best,


werdahias