From d4635a9b064604da84eb3fe372c5fe70b1d891ed Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 10 Nov 2024 15:39:13 -0500 Subject: [PATCH] backports/signal-desktop: upgrade to 7.32.0, use default_prepare --- backports/signal-desktop/APKBUILD | 121 +++++++----------- .../bettersqlite-use-system-sqlcipher.patch | 56 -------- .../signal-desktop/libsignal-auditable.patch | 6 +- .../ringrtc-webrtc-renamed.patch | 4 +- .../signal-use-system-sqlcipher.patch | 43 +++++++ .../signal-desktop/webrtc-compiler.patch | 4 +- backports/signal-desktop/webrtc-gcc13.patch | 8 +- .../signal-desktop/webrtc-shared-libs.patch | 22 ++-- 8 files changed, 112 insertions(+), 152 deletions(-) delete mode 100644 backports/signal-desktop/bettersqlite-use-system-sqlcipher.patch create mode 100644 backports/signal-desktop/signal-use-system-sqlcipher.patch diff --git a/backports/signal-desktop/APKBUILD b/backports/signal-desktop/APKBUILD index 391adef..cd24150 100644 --- a/backports/signal-desktop/APKBUILD +++ b/backports/signal-desktop/APKBUILD @@ -2,13 +2,14 @@ # Contributor: Antoine Martin (ayakael) # Maintainer: Antoine Martin (ayakael) pkgname=signal-desktop -pkgver=7.31.0 +pkgver=7.32.0 pkgrel=0 pkgdesc="A messaging app for simple private communication with friends" url="https://github.com/signalapp/Signal-Desktop/" # same as electron arch="aarch64 x86_64" license="AGPL-3.0-only" +_llvmver=18 depends=" electron font-barlow @@ -24,7 +25,7 @@ makedepends=" cargo cargo-auditable cbindgen - clang-dev + clang$_llvmver-dev cmake crc32c-dev dav1d-dev @@ -44,8 +45,8 @@ makedepends=" libvpx-dev libwebp-dev libxml2-dev - lld - llvm-dev + lld$_llvmver + llvm$_llvmver-dev mesa-dev nodejs npm @@ -65,9 +66,9 @@ makedepends=" options="net !check" # use _check_depends to validate this -_libsignalver=0.58.0 -_ringrtcver=2.48.3 -_webrtcver=6613c +_libsignalver=0.59.0 +_ringrtcver=2.48.4 +_webrtcver=6723a _stokenizerver=0.2.1 source=" @@ -77,8 +78,8 @@ source=" https://ayakael.net/api/packages/mirrors/generic/webrtc/$_webrtcver/webrtc-$_webrtcver.tar.zst https://github.com/signalapp/Signal-FTS5-Extension/archive/refs/tags/v$_stokenizerver/stokenizer-$_stokenizerver.tar.gz - bettersqlite-use-system-sqlcipher.patch libsignal-auditable.patch + signal-use-system-sqlcipher.patch signal-disable-updates.patch signal-update-links.patch signal-show-window-please.patch @@ -122,7 +123,8 @@ _check_depends() { local _ringrtcver=$(curl --silent https://raw.githubusercontent.com/signalapp/Signal-Desktop/v$pkgver/package-lock.json | grep "@signalapp/ringrtc\": \"" | awk '{print $2}' | tr -d ',' | tr -d '"' | head -n 1) local _bsqlitever=$(curl --silent https://raw.githubusercontent.com/signalapp/Signal-Desktop/v$pkgver/package-lock.json | grep "@signalapp/better-sqlite3\": \"" | awk '{print $2}' | tr -d ',' | tr -d '"' | head -n 1) local _webrtcver=$(curl --silent https://raw.githubusercontent.com/signalapp/ringrtc/v$_ringrtcver/config/version.properties | awk -F '=' '{if($1 == "webrtc.version"){print $2}}' | head -n 1) - local _stokenizerver=$(curl --silent https://raw.githubusercontent.com/signalapp/better-sqlite3/v$_bsqlitever/deps/download.js | grep "const TOKENIZER_VERSION" | awk '{print $4}' | tr -d "'" | tr -d ';' | head -n 1) + 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 @@ -179,38 +181,19 @@ target_cpu_only = True mcli cp "$SRCDEST"/webrtc-$_webrtcver.tar.zst "$_distbucket" } -# manual patches -default_prepare() { :; } - prepare() { - default_prepare - msg "Applying patches" - for x in $source; do - case "$x" in - signal-*.patch) - msg "$x" - patch -p1 -i "$srcdir"/$x -d "$srcdir"/Signal-Desktop-$pkgver - ;; - libsignal-*.patch) - msg "$x" - patch -p1 -i "$srcdir"/$x -d "$srcdir"/libsignal-$_libsignalver - ;; - ringrtc-*.patch) - msg "$x" - patch -p1 -i "$srcdir"/$x -d "$srcdir"/ringrtc-$_ringrtcver - ;; - webrtc-*.patch) - msg "$x" - patch -p1 -i "$srcdir"/$x -d "$srcdir"/webrtc-$_webrtcver - ;; - esac + # Moves to builddir to use abuild patch logics + for i in libsignal-$_libsignalver ringrtc-$_ringrtcver webrtc-$_webrtcver Signal-FTS5-Extension-$_stokenizerver; do + mv "$srcdir"/$i "$builddir"/${i%-*} done msg "Installing signal-desktop JS dependencies" npm ci --ignore-scripts + default_prepare + ( - cd "$srcdir"/webrtc-$_webrtcver + cd "$builddir"/webrtc local use_system=" brotli @@ -271,35 +254,35 @@ prepare() { ) ( - cd "$srcdir"/ringrtc-$_ringrtcver/src/rust + cd "$builddir"/ringrtc/src/rust msg "Installing ringrtc rust dependencies" cargo fetch --target="$CTARGET" --locked ) ( - cd "$srcdir"/libsignal-$_libsignalver + cd "$builddir"/libsignal msg "Installing libsignal rust dependencies" cargo fetch --target="$CTARGET" --locked ) ( - cd "$srcdir"/Signal-FTS5-Extension-$_stokenizerver + cd "$builddir"/Signal-FTS5-Extension msg "Installing signal tokenizer rust dependencies" cargo fetch --target="$CTARGET" --locked ) ( - cd "$srcdir"/ringrtc-$_ringrtcver/src/node + cd "$builddir"/ringrtc/src/node msg "Installing ringrtc js dependencies" npm ci --ignore-scripts ) ( - cd "$srcdir"/libsignal-$_libsignalver/node + cd "$builddir"/libsignal/node # fix target sed -i 's/unknown-linux-gnu/alpine-linux-musl/g' binding.gyp @@ -317,7 +300,7 @@ build() { # required dependency of ringrtc ( - cd "$srcdir"/webrtc-$_webrtcver + cd "$builddir"/webrtc export PATH="$PWD/path:$PATH" # shellcheck disable=2089 @@ -349,18 +332,18 @@ build() { use_lld=true use_sysroot=false " - mkdir -p "$srcdir"/ringrtc-$_ringrtcver/out/release + mkdir -p "$builddir"/ringrtc/out/release msg "Building signal's webrtc" # shellcheck disable=2090,2116 - gn gen "$srcdir"/ringrtc-$_ringrtcver/out/release --args="$(echo $webrtc_args)" - ninja -C "$srcdir"/ringrtc-$_ringrtcver/out/release signaldeswebrtc + gn gen "$builddir"/ringrtc/out/release --args="$(echo $webrtc_args)" + ninja -C "$builddir"/ringrtc/out/release signaldeswebrtc ) ( - cd "$srcdir"/ringrtc-$_ringrtcver + cd "$builddir"/ringrtc msg "Building libringrtc" - OUTPUT_DIR="$srcdir"/ringrtc-$_ringrtcver/out \ + OUTPUT_DIR="$builddir"/ringrtc/out \ cargo auditable build --features electron --release -p ringrtc mkdir -p src/node/build/linux @@ -369,7 +352,7 @@ build() { ) ( - cd "$srcdir"/ringrtc-$_ringrtcver/src/node + cd "$builddir"/ringrtc/src/node msg "Building ringrtc JS glue code" npm run build @@ -379,7 +362,7 @@ build() { # module on npm intentionally unbuildable: https://github.com/signalapp/libsignal/issues/464#issuecomment-1160665052 ( - cd "$srcdir"/libsignal-$_libsignalver/node + cd "$builddir"/libsignal/node msg "Building libsignal" node-gyp configure --nodedir=/usr/include/electron/node_headers --build-from-source @@ -396,7 +379,7 @@ build() { ) ( - cd "$srcdir"/Signal-FTS5-Extension-$_stokenizerver + cd "$builddir"/Signal-FTS5-Extension msg "Building signal tokenizer" cargo auditable build --features extension --release --frozen @@ -422,25 +405,15 @@ build() { # use our libsignal rm -rf node_modules/@signalapp/libsignal-client/ - mv "$srcdir"/libsignal-$_libsignalver/node/ node_modules/@signalapp/libsignal-client + mv libsignal/node/ node_modules/@signalapp/libsignal-client # use our libringrtc rm -rf node_modules/@signalapp/ringrtc/ - mv "$srcdir"/ringrtc-$_ringrtcver/src/node/ node_modules/@signalapp/ringrtc - - # patch the sqlcipher module - for x in $source; do - case "$x" in - bettersqlite-*.patch) - msg "$x" - patch -Np1 -i "$srcdir"/$x -d "$srcdir"/Signal-Desktop-$pkgver/node_modules/@signalapp/better-sqlite3/ - ;; - esac - done + mv ringrtc/src/node/ node_modules/@signalapp/ringrtc mkdir node_modules/@signalapp/better-sqlite3/tokenizer - mv "$srcdir"/Signal-FTS5-Extension-$_stokenizerver/target/release/libsignal_tokenizer.a node_modules/@signalapp/better-sqlite3/tokenizer/ - mv "$srcdir"/Signal-FTS5-Extension-$_stokenizerver/target/release/signal-tokenizer.h node_modules/@signalapp/better-sqlite3/tokenizer/ + mv Signal-FTS5-Extension/target/release/libsignal_tokenizer.a node_modules/@signalapp/better-sqlite3/tokenizer/ + mv Signal-FTS5-Extension/target/release/signal-tokenizer.h node_modules/@signalapp/better-sqlite3/tokenizer/ npm rebuild \ sharp @signalapp/better-sqlite3 spellchecker websocket \ @@ -464,9 +437,9 @@ package() { install -Dm644 signal.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop # this should be in /usr/lib/signal-desktop. however, it does not simply work and I stopped to care - install -Dm755 "$srcdir"/ringrtc-$_ringrtcver/out/release/libsignaldeswebrtc.so "$pkgdir"/usr/lib/libsignaldeswebrtc.so + install -Dm755 "$builddir"/ringrtc/out/release/libsignaldeswebrtc.so "$pkgdir"/usr/lib/libsignaldeswebrtc.so - install -Dm755 "$srcdir"/$pkgname "$pkgdir"/usr/bin/$pkgname + install -Dm755 "$srcdir"/signal-desktop "$pkgdir"/usr/bin/signal-desktop while read -r size; do install -Dm644 icons/$size.png "$pkgdir"/usr/share/icons/hicolor/$size/apps/$pkgname.png @@ -474,19 +447,19 @@ package() { } sha512sums=" -ed9acf4f9effbd4bb6cf66d7057ce9faf63ec456d0874620424067a7c1f1832ccc865993f2644dd72384d8d051c01933da8f15aa5eefc7ddf995aeeef183a899 Signal-Desktop-7.31.0.tar.gz -6fb62213d8177ac5abe83ea71a18ea4b1c7b323983c41087166658fe9c47c1fd39e5323ca6acefe3db2a9a9376b6f385b5f2c006154da3ab705741d848b28943 libsignal-0.58.0.tar.gz -6777354b60650c6c3d359714f3aff92a315996f3725ba05c74ed054d3c4ba5506406b30c940853b5ba426ac0271cdb4dd930a759c570f486a70e1f5adc5a2aae ringrtc-2.48.3.tar.gz -fe04fcf13f55b124f03ce9d516b1c53fc4f20c6a016819c62eeaa0500eda92c5a0c0d7dc5d1e360a27691dfd404c254e91bed9fb25d0fc40a27795c1b674a82e webrtc-6613c.tar.zst +dc934e3f189f20fedd4610f81b11c75c0210d1b0291c55a02fa17fc041ac27c31e2da3435f9c576f530e83057dc0339459a73d81f17378a437df466c6955cbf1 Signal-Desktop-7.32.0.tar.gz +4c586c465c9222bdb40b526fe899ed546f9f6f027353860ed9d78356af915b9b77391f0282e971213606e61eb33e4b19107e5a63cdb54b8dbc48a9bca5389eec libsignal-0.59.0.tar.gz +f4ec5c946f06bb634852efb36c02dbe692cad784360e4c8c8619d82c26cb41dc60137403e1f7b8fb523b6acf00703286544c4c4c11c47c4be903e587fc9f5c8f ringrtc-2.48.4.tar.gz +64eed5c2a6f5a505d014bc4fa80e15b21103df1ea27825eaa1dfecc23c269f198a7e98472f29de7cae4ac7fa4fede6e837c27494b8ec4d03e36b85b029c64831 webrtc-6723a.tar.zst 84a1f2fc29262a12842e94698d124a85b823128e72a493b0be8ea92fbb72c5c268499f4a6827cdedaae06ec73cce4039a39fe5c5d536cbef330e59ba0183da28 stokenizer-0.2.1.tar.gz -be5b4e823543b79175a12314f10c6326d9f0d59f470136962daed4665887006acc05b48b40dc1b67747396d8f6f7d23be298c1e110ccdd35ff9b09d5e6b80bab bettersqlite-use-system-sqlcipher.patch -2e5fadff725f1d62e7134c8929c672ec88cae602b065480f1b799d34160daa0cb1ad0f5511e60676f81464ae8752c3bec7b3d7bc5a432533be004b4d20ac32c2 libsignal-auditable.patch +8d2d2d82c8546c2dd1fef161b61df79918f8c22235a56a46adb375a0beb4acef12c5fe53e67242a4be97f77adc522ff79b47949c352956c742a70d50f4179f7f libsignal-auditable.patch +cee74edb504ee5ae685e8a449ac35fabf949c33bfee5905778f850c3b18e17f9ae9bd501c89a7fd2c9c81a5bb2b0af0c0b3c72e32128603b3923c32d2a493ce9 signal-use-system-sqlcipher.patch 152435231cdcf52a17a9e24aadf95d77511258e818172941ba074a73a90a541f0136feb58868674f2bcb19191a6d12933fe6cd5baf3ee99e508915c72523163b signal-disable-updates.patch d50eb5724502df9ea4d795db8cfc27af767c25168d7db2af512e615be7cc2ca290210a9ae78e1abb153c0198677e858ad3d74926c958099d0319295e7d9e7f1d signal-update-links.patch bfc8acdd13aa48d29c7657311733cc9d33c4899782efbd1ef6d25ad1698be4de7cc67e829324bc0309715d69ae37ea9f782cf54887317e817213e110d73d68e7 signal-show-window-please.patch -b11fdd930943ca327650e4738ed85cd6b5eea779455a5895bccebba98e449bafc6b0f09bcf4545f2b2e16644355664e9768dd6d4d62f87619207c430367f72c5 ringrtc-webrtc-renamed.patch -0888673ba687747beda61cd50efbc25095f4a3d26f1dd58bf003e3a0bf1d302c3f2ebd1deecf630fbf04aedb7b8cd409e9efda4d1e6fda63234c9a9b9755bff4 webrtc-shared-libs.patch -e07ae8544988d402aaf0fbd95ea36a64c94c59566c561132578aa6dcf8ff11a34058530e64dc204e5cadc2482f1401e74b32384a144e5e08017c663d0cf7c2fc webrtc-compiler.patch -88515d8b8cc82355c9f9b0f44fac83b7ff149b13e9fb102fd46036ec5234cfb2385fa5ad58a0520ee604b93dc4ddd6ae18a7005978ef207841645724ef7a9749 webrtc-gcc13.patch +10284e0d86ab88de161ae689871082194f689ce416f3ebada8991d5db707994ea1cb8b4212756dd93ba5a3469964050988220f18afc37e38f3404a6e17ec8caf ringrtc-webrtc-renamed.patch +98a7e4df27c3ed56c5968ebc3ae8e08bfb54362d0c910f9af1d414079a6d5fe0f18aa570ae3c38042f4691af6a130cb3ff689625e26a3987720dd319a5f587b1 webrtc-shared-libs.patch +fe78cdc58c18826fc4227cc8e9377980766229390544578f6a1a6f7322bc3243c066963b589323dbfe4f2bfd37f8859ad84f63cb3783317892e5ae3652270a3a webrtc-compiler.patch +48ab5c733e643eaff08ccbe839086bebbb68d397984ad7c5c5b68df8071f75d2dfe92c3f52d9fbf9b81754934bdfa8a67c69addd476ce4265b978592fb4ff9bd webrtc-gcc13.patch 87534e7b5ad7365509eab75629e6bd1a9ed61ee92f7e358405a0abaf0df57de14623fb3894eb082f8785422e5c087e1c50f9e2e5cafbb2529591fd7bf447f7f5 signal-desktop " diff --git a/backports/signal-desktop/bettersqlite-use-system-sqlcipher.patch b/backports/signal-desktop/bettersqlite-use-system-sqlcipher.patch deleted file mode 100644 index f0dfe0d..0000000 --- a/backports/signal-desktop/bettersqlite-use-system-sqlcipher.patch +++ /dev/null @@ -1,56 +0,0 @@ ---- a/binding.gyp -+++ b/binding.gyp -@@ -7,7 +7,16 @@ - 'targets': [ - { - 'target_name': 'better_sqlite3', -- 'dependencies': ['deps/sqlite3.gyp:sqlite3'], -+ 'include_dirs': [ -+ '/usr/include/sqlcipher', -+ 'tokenizer', -+ ], -+ 'link_settings': { -+ 'libraries': [ -+ '-lsqlcipher', -+ ' int: if 'npm_config_libsignal_debug_level_logs' not in os.environ: features.append('log/release_max_level_info') diff --git a/backports/signal-desktop/ringrtc-webrtc-renamed.patch b/backports/signal-desktop/ringrtc-webrtc-renamed.patch index 228c308..6f8a2b3 100644 --- a/backports/signal-desktop/ringrtc-webrtc-renamed.patch +++ b/backports/signal-desktop/ringrtc-webrtc-renamed.patch @@ -1,5 +1,5 @@ ---- ./src/rust/build.rs.orig -+++ ./src/rust/build.rs +--- ./ringrtc/src/rust/build.rs.orig ++++ ./ringrtc/src/rust/build.rs @@ -79,6 +79,7 @@ if cfg!(feature = "native") { diff --git a/backports/signal-desktop/signal-use-system-sqlcipher.patch b/backports/signal-desktop/signal-use-system-sqlcipher.patch new file mode 100644 index 0000000..22b2e2f --- /dev/null +++ b/backports/signal-desktop/signal-use-system-sqlcipher.patch @@ -0,0 +1,43 @@ +diff --git a/node_modules/@signalapp/better-sqlite3/binding.gyp.orig b/node_modules/@signalapp/better-sqlite3/binding.gyp +index c370c30b309..bf0207e6fec 100644 +--- a/node_modules/@signalapp/better-sqlite3/binding.gyp.orig ++++ b/node_modules/@signalapp/better-sqlite3/binding.gyp +@@ -7,7 +7,16 @@ + 'targets': [ + { + 'target_name': 'better_sqlite3', +- 'dependencies': ['deps/sqlite3.gyp:sqlite3'], ++ 'include_dirs': [ ++ '/usr/include/sqlcipher', ++ 'tokenizer', ++ ], ++ 'link_settings': { ++ 'libraries': [ ++ '-lsqlcipher', ++ ' @@ -8,8 +8,8 @@ #include ---- ./modules/audio_coding/neteq/reorder_optimizer.cc.orig -+++ ./modules/audio_coding/neteq/reorder_optimizer.cc +--- ./webrtc/modules/audio_coding/neteq/reorder_optimizer.cc.orig ++++ ./webrtc/modules/audio_coding/neteq/reorder_optimizer.cc @@ -11,6 +11,7 @@ #include "modules/audio_coding/neteq/reorder_optimizer.h" diff --git a/backports/signal-desktop/webrtc-shared-libs.patch b/backports/signal-desktop/webrtc-shared-libs.patch index 3916fe0..f4bf714 100644 --- a/backports/signal-desktop/webrtc-shared-libs.patch +++ b/backports/signal-desktop/webrtc-shared-libs.patch @@ -1,5 +1,5 @@ ---- ./BUILD.gn.orig -+++ ./BUILD.gn +--- ./webrtc/BUILD.gn.orig ++++ ./webrtc/BUILD.gn @@ -38,7 +38,7 @@ # 'ninja default' and then 'ninja all', the second build should do no work. group("default") { @@ -26,10 +26,10 @@ suppressed_configs += [ "//build/config/compiler:thin_archive" ] defines = [] -diff --git a/third_party/googletest/BUILD.gn.orig b/third_party/googletest/BUILD.gn +diff --git a/webrtc/third_party/googletest/BUILD.gn.orig b/webrtc/third_party/googletest/BUILD.gn index 14089f0..b7dc621 100644 ---- a/third_party/googletest/BUILD.gn.orig -+++ b/third_party/googletest/BUILD.gn +--- a/webrtc/third_party/googletest/BUILD.gn.orig ++++ b/webrtc/third_party/googletest/BUILD.gn @@ -48,7 +48,6 @@ config("gtest_config") { configs = [ @@ -38,10 +38,10 @@ index 14089f0..b7dc621 100644 ] } -diff --git a/third_party/googletest/BUILD.gn.orig b/third_party/googletest/BUILD.gn +diff --git a/webrtc/third_party/googletest/BUILD.gn.orig b/webrtc/third_party/googletest/BUILD.gn index b7dc621..367f929 100644 ---- a/third_party/googletest/BUILD.gn.orig -+++ b/third_party/googletest/BUILD.gn +--- a/webrtc/third_party/googletest/BUILD.gn.orig ++++ b/webrtc/third_party/googletest/BUILD.gn @@ -133,7 +133,6 @@ source_set("gtest") { # googletest only needs `absl`, but this makes gn check happier. @@ -50,10 +50,10 @@ index b7dc621..367f929 100644 if (is_nacl || !build_with_chromium) { defines += [ "GTEST_DISABLE_PRINT_STACK_TRACE" ] sources -= [ -diff --git a/third_party/fuzztest/BUILD.gn.orig b/third_party/fuzztest/BUILD.gn +diff --git a/webrtc/third_party/fuzztest/BUILD.gn.orig b/webrtc/third_party/fuzztest/BUILD.gn index 57ee790..ba1d297 100644 ---- a/third_party/fuzztest/BUILD.gn.orig -+++ b/third_party/fuzztest/BUILD.gn +--- a/webrtc/third_party/fuzztest/BUILD.gn.orig ++++ b/webrtc/third_party/fuzztest/BUILD.gn @@ -309,7 +309,6 @@ source_set("fuzztest_internal") { # For RE2 mutators. It's questionable whether we want to pull this library # into every fuzztest target, but this is the approach used in other