From 43367b302d58b444e536ed7aaee8b3bd642d1fb0 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Thu, 5 Sep 2024 17:12:22 -0400 Subject: [PATCH] backports/signal-desktop: upgrade to 7.22.2 --- backports/signal-desktop/APKBUILD | 72 +++++++++---------- .../signal-desktop/libsignal-auditable.patch | 8 ++- .../signal-show-window-please.patch | 14 ++-- ...l-c7019036-do-not-define-crypto_addc.patch | 25 +++++++ ...my-wife.patch => webrtc-shared-libs.patch} | 12 ++++ 5 files changed, 83 insertions(+), 48 deletions(-) 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 b252f1d..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.14.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.51.1 +_libsignalver=0.55.1 # follow signal-desktop package.json -> @signalapp/ringrtc -_ringrtcver=2.44.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=6261l +_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 @@ -89,9 +90,10 @@ source=" signal-update-links.patch signal-show-window-please.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 " @@ -194,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 @@ -282,7 +283,7 @@ prepare() { cd "$srcdir"/ringrtc-$_ringrtcver/src/node msg "Installing ringrtc js dependencies" - yarn --frozen-lockfile --ignore-scripts + npm ci --ignore-scripts ) ( @@ -292,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) @@ -358,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 @@ -369,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 ) ( @@ -391,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/ @@ -450,7 +443,7 @@ build() { check() { # tests run against downloaded build of electron for glibc, probably can be patched - yarn test + npm run test } package() { @@ -471,19 +464,20 @@ package() { } sha512sums=" -44374149f9e0e6ebad0e8f1e6bef3fd7b5d0d8d8f28b15e25b83270164eae2175e6932fccb3de505422e656f2b55bbcbb16e488f31ba47f1c0a0e220f22085fd Signal-Desktop-7.14.0.tar.gz -6fb2084cff88aa18019e7117cf06ff5c29e63c1de6a31caf38c1e3f07225919ca86085c46a99b13973b3626e833fc2bb28d2134a62a1cb707e38ddae3efb295a libsignal-0.51.1.tar.gz -097fe40bff8165f0e0f55790556d8b08d3ed8e4fa71dfa23be5e2cd88e5deaee4ae1029e64a75b72ac942cbd414a678e6950863523709294ebe6f7c02d86fae1 ringrtc-2.44.0.tar.gz -dc2acaf14b01821ae04d5fe578d37c09cda73191b76e94cce8c94558f944c61c95b092abf2c71a6eed1ae90ffc6990c5f258a957471e0e3981853efdb3fce18a webrtc-6261l.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 -fb7c5c193eb9256ca71b260dd58eaef180f8201b2b7660d6ba1c598213cdbadda5dd56823b8ecca739267fa9eeadaec9443cc678738f496725011492ebca7438 libsignal-auditable.patch +2e5fadff725f1d62e7134c8929c672ec88cae602b065480f1b799d34160daa0cb1ad0f5511e60676f81464ae8752c3bec7b3d7bc5a432533be004b4d20ac32c2 libsignal-auditable.patch 152435231cdcf52a17a9e24aadf95d77511258e818172941ba074a73a90a541f0136feb58868674f2bcb19191a6d12933fe6cd5baf3ee99e508915c72523163b signal-disable-updates.patch d50eb5724502df9ea4d795db8cfc27af767c25168d7db2af512e615be7cc2ca290210a9ae78e1abb153c0198677e858ad3d74926c958099d0319295e7d9e7f1d signal-update-links.patch -646d303fe58cae3f0896ae0275a66695b902fae6ddde7c568cc9798157dee9f45ceff907bc951fadc4c511d512a73d114b4e4f7c8914e2311c63929d29e1621a signal-show-window-please.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 c8dd4c5..c5c8f8a 100644 --- a/backports/signal-desktop/libsignal-auditable.patch +++ b/backports/signal-desktop/libsignal-auditable.patch @@ -1,6 +1,8 @@ ---- ./node/build_node_bridge.py.orig -+++ ./node/build_node_bridge.py -@@ -67,7 +67,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') 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", + ] + } +