backports/signal-desktop: upgrade to 7.35.1
Some checks failed
/ lint (pull_request) Successful in 30s
/ deploy-x86_64 (pull_request) Has been skipped
/ build-x86_64 (pull_request) Failing after 11m38s
/ deploy-aarch64 (pull_request) Has been skipped
/ build-aarch64 (pull_request) Failing after 37m55s

This commit is contained in:
Antoine Martin 2024-12-06 16:33:28 -05:00
parent 6240471d87
commit e27e0129f2
Signed by: forge
GPG key ID: D62A472A4AA7D541
2 changed files with 73 additions and 9 deletions

View file

@ -2,7 +2,7 @@
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
pkgname=signal-desktop
pkgver=7.34.0
pkgver=7.35.1
pkgrel=0
pkgdesc="A messaging app for simple private communication with friends"
url="https://github.com/signalapp/Signal-Desktop/"
@ -66,7 +66,7 @@ makedepends="
options="net !check"
# use _check_depends to validate this
_libsignalver=0.60.2
_libsignalver=0.62.0
_ringrtcver=2.48.7
_webrtcver=6723a
_stokenizerver=0.2.1
@ -112,7 +112,8 @@ export CARGO_PROFILE_RELEASE_STRIP="symbols"
export YARN_CACHE_FOLDER="$srcdir/.yarn"
_check_depends() {
_update_depends() {
msg "Updating extra dependencies version information in $APKBUILD..."
# _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
@ -126,10 +127,12 @@ _check_depends() {
local _extensionver=$(curl --silent https://raw.githubusercontent.com/signalapp/better-sqlite3/v$_bsqlitever/deps/download.js | grep "const EXTENSION_VERSION" | awk '{print $4}' | tr -d "'" | tr -d ';' | head -n 1)
local _stokenizerver=$(curl --silent https://raw.githubusercontent.com/signalapp/Signal-Sqlcipher-Extension/refs/tags/v$_extensionver/Cargo.lock | sed -n "/^name = \"signal-tokenizer\"$/,/^$/p" | awk -F ' = ' '{if($1=="version"){print $2}}' | tr -d '"')
echo _libsignalver=$_libsignalver
echo _ringrtcver=$_ringrtcver
echo _webrtcver=$_webrtcver
echo _stokenizerver=$_stokenizerver
sed -i \
-e "s|^_libsignalver=.*|_libsignalver=$_libsignalver|" \
-e "s|^_ringrtcver=.*|_ringrtcver=$_ringrtcver|" \
-e "s|^_webrtcver=.*|_webrtcver=$_webrtcver|" \
-e "s|^_stokenizerver=.*|_stokenizerver=$_stokenizerver|" \
APKBUILD
}
# webrtc only, the other dependencies are fine with tarballs
@ -447,8 +450,8 @@ package() {
}
sha512sums="
30e06721b01e580414c5e57b63350fc42edbe837b0a60a9cd100bc6ab1758fa6fd5744dc3a35d991db62f363eab791c45b43e1d9d5c81af9e67685114ae2e630 Signal-Desktop-7.34.0.tar.gz
26780a0a6a529cee18f5c3b58f0395c6b5b630dbc8d2bbaa345dd7dd319a0e8548575c915dc16de6ac5d421fffdbe898f2dedb1fa3b4eab5d26debdfc1da515b libsignal-0.60.2.tar.gz
9e780149b4734c6d9834606b0e15bedc99739ce9c637e69c9d0cedf9e3f870819bba411b7f192920ab4bc8adc9bd0ddccb0ca6790933f701c06b41175e3f7dce Signal-Desktop-7.35.1.tar.gz
2a1d171a6bf9f1dfea9fc1fbc4f200c8b9e2ccb30d9d63f29007f252ff79ae7d149ab5707a8e430010da90ad1e3112475bd0eba8efb5cc011d5e3098aa1e26de libsignal-0.62.0.tar.gz
e5e5ab27dc3bd37ef577c248d450e70fa11e72bdfab00fef233aad84d3d8aa3434166c03267f6b95b69d593e9da2f37017b5b7a0913f68499f387354742ba50a ringrtc-2.48.7.tar.gz
64eed5c2a6f5a505d014bc4fa80e15b21103df1ea27825eaa1dfecc23c269f198a7e98472f29de7cae4ac7fa4fede6e837c27494b8ec4d03e36b85b029c64831 webrtc-6723a.tar.zst
84a1f2fc29262a12842e94698d124a85b823128e72a493b0be8ea92fbb72c5c268499f4a6827cdedaae06ec73cce4039a39fe5c5d536cbef330e59ba0183da28 stokenizer-0.2.1.tar.gz

View file

@ -0,0 +1,61 @@
# signal-desktop
This is the `signal-desktop` package for Alpine Linux.
Please report any issues [using Gitlab](https://gitlab.alpinelinux.org/alpine/aports/-/issues/new) 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](https://ayakael.net/mirrors/signal-desktop) automatically
fetches and packages the source code and makes it available in a [generic
Forgejo repository](https://ayakael.net/mirrors/-/packages/generic/webrtc).
## 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 `gclient`
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 kept-to-date against the
latest release of Alpine Linux (along with `electron`) in
[Ayakael's Forge](https://ayakael.net/forge/-/packages/alpine/signal-desktop)
This is true of all Ayakael's packages still in `testing`.