From 743ceb8dbe6cae3c4e95d2a57072f7b6f19e2141 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 5 Sep 2024 16:05:34 -0400 Subject: [PATCH] backports/signal-desktop: upgrade to 7.22.2 --- backports/signal-desktop/APKBUILD | 74 +++++++++---------- .../signal-desktop/libsignal-auditable.patch | 16 ++-- .../signal-fix-dns-fallback.patch | 12 --- .../signal-show-window-please.patch | 14 ++-- ...l-c7019036-do-not-define-crypto_addc.patch | 25 +++++++ ...my-wife.patch => webrtc-shared-libs.patch} | 12 +++ 6 files changed, 87 insertions(+), 66 deletions(-) delete mode 100644 backports/signal-desktop/signal-fix-dns-fallback.patch create mode 100644 backports/signal-desktop/webrtc-boringssl-c7019036-do-not-define-crypto_addc.patch rename backports/signal-desktop/{webrtc-shared-like-my-wife.patch => webrtc-shared-libs.patch} (68%) diff --git a/backports/signal-desktop/APKBUILD b/backports/signal-desktop/APKBUILD index b804d51..ce68f67 100644 --- a/backports/signal-desktop/APKBUILD +++ b/backports/signal-desktop/APKBUILD @@ -1,7 +1,7 @@ # Contributor: lauren n. liberda # Maintainer: lauren n. liberda pkgname=signal-desktop -pkgver=7.11.0 +pkgver=7.22.2 pkgrel=0 pkgdesc="A messaging app for simple private communication with friends" url="https://github.com/signalapp/Signal-Desktop/" @@ -42,6 +42,7 @@ makedepends=" libsecret-dev libvpx-dev libwebp-dev + libxml2-dev lld llvm-dev mesa-dev @@ -63,14 +64,14 @@ makedepends=" options="net !check" # follow signal-desktop package.json -> @signalapp/libsignal-client -_libsignalver=0.46.2 +_libsignalver=0.55.1 # follow signal-desktop package.json -> @signalapp/ringrtc -_ringrtcver=2.42.0 +_ringrtcver=2.46.1 # follow ringrtc (on version above) -> config/version.properties -> webrtc.version # downloading tarball generated with abuild snapshot (with gclient dependencies fetched) -_webrtcver=6261i +_webrtcver=6478j # follow @signalapp/better-sqlite3 (on version in package.json) -> deps/download.js -> TOKENIZER_VERSION # last bsqlite version: 8.7.1 @@ -80,7 +81,7 @@ source=" https://github.com/signalapp/Signal-Desktop/archive/refs/tags/v$pkgver/Signal-Desktop-$pkgver.tar.gz https://github.com/signalapp/libsignal/archive/refs/tags/v$_libsignalver/libsignal-$_libsignalver.tar.gz https://github.com/signalapp/ringrtc/archive/refs/tags/v$_ringrtcver/ringrtc-$_ringrtcver.tar.gz - https://ab-sn.lnl.gay/webrtc-$_webrtcver.tar.zst + 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 @@ -88,11 +89,11 @@ source=" signal-disable-updates.patch signal-update-links.patch signal-show-window-please.patch - signal-fix-dns-fallback.patch ringrtc-webrtc-renamed.patch - webrtc-shared-like-my-wife.patch + webrtc-shared-libs.patch webrtc-compiler.patch webrtc-gcc13.patch + webrtc-boringssl-c7019036-do-not-define-crypto_addc.patch signal-desktop " @@ -195,8 +196,7 @@ prepare() { done msg "Installing signal-desktop JS dependencies" - echo 'ignore-engines true' > .yarnrc - yarn --ignore-scripts --frozen-lockfile + npm ci --ignore-scripts ( cd "$srcdir"/webrtc-$_webrtcver @@ -283,7 +283,7 @@ prepare() { cd "$srcdir"/ringrtc-$_ringrtcver/src/node msg "Installing ringrtc js dependencies" - yarn --frozen-lockfile --ignore-scripts + npm ci --ignore-scripts ) ( @@ -293,7 +293,7 @@ prepare() { sed -i 's/unknown-linux-gnu/alpine-linux-musl/g' binding.gyp msg "Installing libsignal js dependencies" - yarn --ignore-scripts --frozen-lockfile + npm install --ignore-scripts ) # remove shipped fonts for system-provided (part 1) @@ -359,10 +359,11 @@ build() { ( cd "$srcdir"/ringrtc-$_ringrtcver/src/node msg "Building ringrtc JS glue code" - yarn build + npm ci --ignore-scripts + npm run build msg "Cleaning dev dependencies for ringrtc" - yarn --ignore-scripts --frozen-lockfile --production + npm prune --ignore-scripts --omit=dev ) # module on npm intentionally unbuildable: https://github.com/signalapp/libsignal/issues/464#issuecomment-1160665052 @@ -370,17 +371,18 @@ build() { cd "$srcdir"/libsignal-$_libsignalver/node msg "Building libsignal" - yarn node-gyp configure --nodedir=/usr/include/electron/node_headers --build-from-source - yarn node-gyp build --nodedir=/usr/include/electron/node_headers --build-from-source + node-gyp configure --nodedir=/usr/include/electron/node_headers --build-from-source + node-gyp build --nodedir=/usr/include/electron/node_headers --build-from-source mkdir -p prebuilds/linux-$chromium_arch mv build/Release/libsignal_client_linux_$chromium_arch.node prebuilds/linux-$chromium_arch/node.napi.node msg "Building libsignal glue code" - yarn tsc + npm ci --ignore-scripts + npm run tsc msg "Cleaning dev dependencies for libsignal" - yarn --ignore-scripts --frozen-lockfile --production + npm prune -ignore-scripts --omit=dev ) ( @@ -392,31 +394,21 @@ build() { ) # from package.json postinstall - yarn build:acknowledgments - yarn patch-package + npm run build:acknowledgments + npm exec patch-package rm -rf node_modules/dtrace-provider # get esbuild installed (needed for next step) - npm rebuild esbuild + npm install esbuild # build front NODE_ENV=production \ SIGNAL_ENV=production \ NODE_OPTIONS=--openssl-legacy-provider \ - yarn build:dev + npm run build:dev # purge non-production deps - yarn install --ignore-scripts --frozen-lockfile --production - - # XXX: the previous step undoes the patches. and removes the patch applier. - # please force me to just implement packaging without dev modules in tasje. -lnl - for x in patches/*.patch; do - # some of these patches are made for devDependencies - if [ -d "$(grep -Eo 'node_modules/(@[a-z\d_-]+/)?[a-z\d_-]+/' "$x" | head -n1)" ]; then - msg "$x" - patch -Np1 -i ./"$x" - fi - done + npm prune --ignore-scripts --omit=dev # use our libsignal rm -rf node_modules/@signalapp/libsignal-client/ @@ -451,7 +443,7 @@ build() { check() { # tests run against downloaded build of electron for glibc, probably can be patched - yarn test + npm run test } package() { @@ -472,20 +464,20 @@ package() { } sha512sums=" -cebb1c8412089fe6f5faa9d4bfcb8bb4e8c9d2f3e4a13eef15e8f36d97b4bc65eae3c0865af0a7c82a0af2fd0597482b3d7c1f25e7d51465ea2589c817183b19 Signal-Desktop-7.11.0.tar.gz -6be40fcfbcb9bd20c51dd9ef1c65e7f586fbbee04af66af89a5b8c0ce3fa2ce5efd586e10de1d6d5c579126ed4bb2f31e50a8448ed5390d12e226cd075537007 libsignal-0.46.2.tar.gz -5cb7e88e8c04244a8f4727237dd0662357eb84dfb384de57c6579f01f0c53944d019a2af29efe37c4d30993fdba4be6f9bd9f7975ac24e43207fe814e0b95f95 ringrtc-2.42.0.tar.gz -89796d611bd7cda7c0e98318826753b1acc373396d77f2a0a826bf95e9e28d2c0f33181705b50b1afc52fdf12dbf3d35e30ad86b0ce3052ed9131ea20c842d04 webrtc-6261i.tar.zst +20d09f64ddb8e42f314aa1538df55e4fa18b1b1b647a1434bd38122fe26cbf18c699f81d415e751dbec1888d0eb5020fb366129bf293cd28e26eaacf456bcbfb Signal-Desktop-7.22.2.tar.gz +2179eb6862ceb9e3a1df04a4e9b9bb3d64ce84f017d3048f0aaafdd4960843230216443139ff1a8127b6901e9859a2f2ed59e12f2ba9ffc906f79107d7fc161f libsignal-0.55.1.tar.gz +c941e7016e96acbba615a9ba12d91882f83b64656b40b6de26e1dc21abf4aea29ed49459c5bd60e43df65a93103cb6878d3d7bb17c597fd88a807c3f6e71c41e ringrtc-2.46.1.tar.gz +0de4999800eea98bd38d785fcf6683a6f431f98483ca91dcf8ca721d5eecd197043db564bacd2dc583442fe3b43affda61c02230b044b4d4c05fbb6e11741ea5 webrtc-6478j.tar.zst 84a1f2fc29262a12842e94698d124a85b823128e72a493b0be8ea92fbb72c5c268499f4a6827cdedaae06ec73cce4039a39fe5c5d536cbef330e59ba0183da28 stokenizer-0.2.1.tar.gz be5b4e823543b79175a12314f10c6326d9f0d59f470136962daed4665887006acc05b48b40dc1b67747396d8f6f7d23be298c1e110ccdd35ff9b09d5e6b80bab bettersqlite-use-system-sqlcipher.patch -92de6fc7cc5f2b6d65bedbd74cc733dd86dafc9cbfb9b727c3267aef63a71a07247cde9b163c68fddfeb9096dcd7f554d36d0b2de078d8905e3825645ddbd6eb libsignal-auditable.patch +2e5fadff725f1d62e7134c8929c672ec88cae602b065480f1b799d34160daa0cb1ad0f5511e60676f81464ae8752c3bec7b3d7bc5a432533be004b4d20ac32c2 libsignal-auditable.patch 152435231cdcf52a17a9e24aadf95d77511258e818172941ba074a73a90a541f0136feb58868674f2bcb19191a6d12933fe6cd5baf3ee99e508915c72523163b signal-disable-updates.patch d50eb5724502df9ea4d795db8cfc27af767c25168d7db2af512e615be7cc2ca290210a9ae78e1abb153c0198677e858ad3d74926c958099d0319295e7d9e7f1d signal-update-links.patch -646d303fe58cae3f0896ae0275a66695b902fae6ddde7c568cc9798157dee9f45ceff907bc951fadc4c511d512a73d114b4e4f7c8914e2311c63929d29e1621a signal-show-window-please.patch -3df878d259cdc12fe116651e9978deb6c15b5bce477d692b2301f17bc660327b29ac4412cfd6966bd0cef15c90675c56ce7c3abd8e2119899cc5d281ab1d9474 signal-fix-dns-fallback.patch +bfc8acdd13aa48d29c7657311733cc9d33c4899782efbd1ef6d25ad1698be4de7cc67e829324bc0309715d69ae37ea9f782cf54887317e817213e110d73d68e7 signal-show-window-please.patch b11fdd930943ca327650e4738ed85cd6b5eea779455a5895bccebba98e449bafc6b0f09bcf4545f2b2e16644355664e9768dd6d4d62f87619207c430367f72c5 ringrtc-webrtc-renamed.patch -9d92389637cdda83a0a7039fa6c52516d7bc491d0b1e42d5374b9d1f4fa7b9c930642f2dca896da17a2dc3344fa1bb97434c8dddd0539a4fedfd0dec809fc875 webrtc-shared-like-my-wife.patch +f4e80ed7e67b98d6988c69ab5025286be17db29dc90f90bf837133cd8ae737f46293e6a2432b02f98c300ed461653b5a66801ff957a418c6a7c33877e3fe0443 webrtc-shared-libs.patch e07ae8544988d402aaf0fbd95ea36a64c94c59566c561132578aa6dcf8ff11a34058530e64dc204e5cadc2482f1401e74b32384a144e5e08017c663d0cf7c2fc webrtc-compiler.patch 88515d8b8cc82355c9f9b0f44fac83b7ff149b13e9fb102fd46036ec5234cfb2385fa5ad58a0520ee604b93dc4ddd6ae18a7005978ef207841645724ef7a9749 webrtc-gcc13.patch +2721dce75ed1b6cd8bff129cd90d05ea07ce61cafd9145913748cb1f4e58d4c042c3c43efc578ad84e15624937b7ed67b8d5fec3d764e7feb26ff28f86cacd77 webrtc-boringssl-c7019036-do-not-define-crypto_addc.patch 87534e7b5ad7365509eab75629e6bd1a9ed61ee92f7e358405a0abaf0df57de14623fb3894eb082f8785422e5c087e1c50f9e2e5cafbb2529591fd7bf447f7f5 signal-desktop " diff --git a/backports/signal-desktop/libsignal-auditable.patch b/backports/signal-desktop/libsignal-auditable.patch index bdf59ab..c5c8f8a 100644 --- a/backports/signal-desktop/libsignal-auditable.patch +++ b/backports/signal-desktop/libsignal-auditable.patch @@ -1,11 +1,13 @@ ---- ./node/build_node_bridge.py.orig -+++ ./node/build_node_bridge.py -@@ -63,7 +63,7 @@ +diff --git a/node/build_node_bridge.py.orig b/node/build_node_bridge.py +index e75c2d0..3bdb328 100755 +--- a/node/build_node_bridge.py.orig ++++ b/node/build_node_bridge.py +@@ -97,7 +97,7 @@ def main(args: Optional[List[str]] = None) -> int: + if 'npm_config_libsignal_debug_level_logs' not in os.environ: + features.append('log/release_max_level_info') - out_dir = options.out_dir.strip('"') or os.path.join('build', configuration_name) - -- cmdline = ['cargo', 'build', '--target', cargo_target, '-p', 'libsignal-node', '--features', 'testing-fns'] -+ cmdline = ['cargo', 'auditable', 'build', '--target', cargo_target, '-p', 'libsignal-node', '--features', 'testing-fns'] +- cmdline = ['cargo', 'build', '--target', cargo_target, '-p', 'libsignal-node', '--features', ','.join(features)] ++ cmdline = ['cargo', 'auditable', 'build', '--target', cargo_target, '-p', 'libsignal-node', '--features', ','.join(features)] if configuration_name == 'Release': cmdline.append('--release') print("Running '%s'" % (' '.join(cmdline))) diff --git a/backports/signal-desktop/signal-fix-dns-fallback.patch b/backports/signal-desktop/signal-fix-dns-fallback.patch deleted file mode 100644 index b4f54be..0000000 --- a/backports/signal-desktop/signal-fix-dns-fallback.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/ts/scripts/generate-dns-fallback.ts.orig b/ts/scripts/generate-dns-fallback.ts -index dec7023..39f442f 100644 ---- a/ts/scripts/generate-dns-fallback.ts.orig -+++ b/ts/scripts/generate-dns-fallback.ts -@@ -20,7 +20,6 @@ const FALLBACK_DOMAINS = [ - 'cdn3.signal.org', - 'updates2.signal.org', - 'sfu.voip.signal.org', -- 'create.signal.art', - ]; - - async function main() { diff --git a/backports/signal-desktop/signal-show-window-please.patch b/backports/signal-desktop/signal-show-window-please.patch index 39c8381..73c94af 100644 --- a/backports/signal-desktop/signal-show-window-please.patch +++ b/backports/signal-desktop/signal-show-window-please.patch @@ -1,11 +1,13 @@ ---- ./app/main.ts.orig -+++ ./app/main.ts -@@ -721,7 +721,7 @@ - const titleBarOverlay = await getTitleBarOverlay(); +diff --git a/app/main.ts.orig b/app/main.ts +index aa1bec8..bd7c1d5 100644 +--- a/app/main.ts.orig ++++ b/app/main.ts +@@ -690,7 +690,7 @@ async function createWindow() { + : DEFAULT_HEIGHT; const windowOptions: Electron.BrowserWindowConstructorOptions = { - show: false, + show: true, - width: DEFAULT_WIDTH, - height: DEFAULT_HEIGHT, + width, + height, minWidth: MIN_WIDTH, diff --git a/backports/signal-desktop/webrtc-boringssl-c7019036-do-not-define-crypto_addc.patch b/backports/signal-desktop/webrtc-boringssl-c7019036-do-not-define-crypto_addc.patch new file mode 100644 index 0000000..5eb6919 --- /dev/null +++ b/backports/signal-desktop/webrtc-boringssl-c7019036-do-not-define-crypto_addc.patch @@ -0,0 +1,25 @@ +diff --git a/third_party/boringssl/src/crypto/internal.h b/third_party/boringssl/src/crypto/internal.h +index a77102d76..a45f97bcc 100644 +--- a/third_party/boringssl/src/crypto/internal.h ++++ b/third_party/boringssl/src/crypto/internal.h +@@ -1174,6 +1174,11 @@ static inline uint64_t CRYPTO_rotr_u64(uint64_t value, int shift) { + + // Arithmetic functions. + ++// The most efficient versions of these functions on GCC and Clang depend on C11 ++// |_Generic|. If we ever need to call these from C++, we'll need to add a ++// variant that uses C++ overloads instead. ++#if !defined(__cplusplus) ++ + // CRYPTO_addc_* returns |x + y + carry|, and sets |*out_carry| to the carry + // bit. |carry| must be zero or one. + #if OPENSSL_HAS_BUILTIN(__builtin_addc) +@@ -1275,6 +1280,8 @@ static inline uint64_t CRYPTO_subc_u64(uint64_t x, uint64_t y, uint64_t borrow, + #define CRYPTO_subc_w CRYPTO_subc_u32 + #endif + ++#endif // !__cplusplus ++ + + // FIPS functions. + diff --git a/backports/signal-desktop/webrtc-shared-like-my-wife.patch b/backports/signal-desktop/webrtc-shared-libs.patch similarity index 68% rename from backports/signal-desktop/webrtc-shared-like-my-wife.patch rename to backports/signal-desktop/webrtc-shared-libs.patch index bd7115a..7bfbd7f 100644 --- a/backports/signal-desktop/webrtc-shared-like-my-wife.patch +++ b/backports/signal-desktop/webrtc-shared-libs.patch @@ -26,3 +26,15 @@ suppressed_configs += [ "//build/config/compiler:thin_archive" ] defines = [] +diff --git a/third_party/googletest/BUILD.gn.orig b/third_party/googletest/BUILD.gn +index 14089f0..b7dc621 100644 +--- a/third_party/googletest/BUILD.gn.orig ++++ b/third_party/googletest/BUILD.gn +@@ -48,7 +48,6 @@ config("gtest_config") { + + configs = [ + "//third_party/abseil-cpp:absl_include_config", +- "//third_party/re2:re2_config", + ] + } +