ayaports/backports/signal-desktop
2024-12-16 03:56:26 +00:00
..
APKBUILD backports/signal-desktop: build against clang-19 2024-12-16 03:56:26 +00:00
libsignal-auditable.patch backports/signal-desktop: upgrade to 7.34.0 2024-12-01 01:47:25 +00:00
README.md backports/signal-desktop: upgrade to 7.35.1 2024-12-07 13:50:12 +00:00
ringrtc-webrtc-renamed.patch backports/signal-desktop: upgrade to 7.34.0 2024-12-01 01:47:25 +00:00
signal-desktop 3.17 cleanup 2023-01-11 13:23:51 +00:00
signal-desktop.sh backports/signal-desktop: upgrade to 7.35.1 2024-12-07 13:50:12 +00:00
signal-disable-updates.patch backports/signal-desktop: upgrade to 7.35.1 2024-12-07 13:50:12 +00:00
signal-show-window-please.patch backports/signal-desktop: upgrade to 7.35.1 2024-12-07 13:50:12 +00:00
signal-update-links.patch backports/signal-desktop: upgrade to 7.35.1 2024-12-07 13:50:12 +00:00
signal-use-system-sqlcipher.patch backports/signal-desktop: upgrade to 7.35.1 2024-12-07 13:50:12 +00:00
webrtc-compiler.patch backports/signal-desktop: upgrade to 7.34.0 2024-12-01 01:47:25 +00:00
webrtc-gcc13.patch backports/signal-desktop: upgrade to 7.34.0 2024-12-01 01:47:25 +00:00
webrtc-shared-libs.patch backports/signal-desktop: upgrade to 7.34.0 2024-12-01 01:47:25 +00:00

signal-desktop

This is the signal-desktop package for Alpine Linux.

Please report any issues using Gitlab and tag @ayakael

Building signal-desktop

Signal-desktop is an electron application that is rather complex to build

The first layer of complexity is the use of dependencies that are themselves rather complex to build. Some are based on nodejs, others rust. Those dependencies are built before signal-desktop, like ringrtc, webrtc and libsignal. The versions of those dependencies are tracked in different files, which adds complexity when maintaining the package. Executing abuild _update_depends automatically fetches the expected versions and updates the relevant variables.

A second layer of complexity is that webrtc's source code isn't available as a downloadable tarball. It is only fetchable using Google's gclient available in depot_tools with a reimplemented version in the teapot package. By executing, abuild snapshot, webrtc tarball can be fetched and packaged, as long as gclient is in your path. For ease of maintenance, a workflow on Ayakael's Forge automatically fetches and packages the source code and makes it available in a generic Forgejo repository.

Updating signal-desktop

In a nutshell:

  1. Set pkgver to up-to-date version

  2. Update the dependency versions using abuild _update_depends

  3. Optional: fetch webrtc using abuild snapshot, making sure client is in your path

  4. Update source checksum using abuild checksum

Finding dependency version information

Here is where the version information is stored. It is different for every extra dependency.

  • _libsignalver: follow signal-desktop package.json -> @signalapp/libsignal-client
  • _ringrtcver: follow signal-desktop package.json -> @signalapp/ringrtc
  • _webrtcver: follow ringrtc (on version above) -> config/version.properties -> webrtc.version downloading tarball generated with abuild snapshot (with gclient dependencies fetched)
  • _stokenizerver: follow @signalapp/better-sqlite3 (on version in package.json) -> deps/download.js -> TOKENIZER_VERSION

Why is this package still in testing

As electron is still in testing, this package cannot yet be moved to community. Until that changes, this package is also kept-to-date against the latest release of Alpine Linux (along with electron) in Ayakael's Forge. This is true of all Ayakael's packages still in testing.