diff --git a/backports/signal-desktop/APKBUILD b/backports/signal-desktop/APKBUILD index 0bfb575..850126f 100644 --- a/backports/signal-desktop/APKBUILD +++ b/backports/signal-desktop/APKBUILD @@ -2,7 +2,7 @@ # Contributor: Antoine Martin (ayakael) # Maintainer: Antoine Martin (ayakael) 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 diff --git a/backports/signal-desktop/README.md b/backports/signal-desktop/README.md new file mode 100644 index 0000000..fd9a775 --- /dev/null +++ b/backports/signal-desktop/README.md @@ -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`.