Files
omarchy-pkgs/pkgbuilds/signal-desktop/patches/aarch64.patch
T

54 lines
1.7 KiB
Diff

diff --git a/PKGBUILD b/PKGBUILD
index 98e2b17..c61fa48 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -8,7 +8,7 @@ pkgver=7.77.1
pkgrel=1
pkgdesc="Signal Private Messenger for Linux"
license=('AGPL-3.0-only')
-arch=('x86_64')
+arch=('aarch64') # Only for aarch64 - already in Arch extra repo for x86_64
url="https://signal.org"
depends=(
'alsa-lib' 'libasound.so'
@@ -67,6 +67,19 @@ prepare() {
# Allow higher Node versions
sed 's#"node": "#&>=#' -i package.json
+ # Disable .deb packaging to avoid fpm architecture mismatch in cross-compilation
+ # electron-builder will still create the unpacked directory we need for packaging
+ # Use node to properly modify the JSON structure
+ node -e "
+ const fs = require('fs');
+ const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
+ if (pkg.build && pkg.build.linux && pkg.build.linux.target) {
+ pkg.build.linux.target = ['dir'];
+ fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
+ console.log('Modified package.json to use dir target only');
+ }
+ "
+
# Install dependencies for sticker-creator
pnpm --prefix ./sticker-creator/ install
@@ -87,8 +100,18 @@ build() {
package() {
cd "${_pkgname}-${pkgver}"
+ # Determine the architecture-specific directory
+ case "${CARCH}" in
+ x86_64)
+ _releasedir="release/linux-unpacked"
+ ;;
+ aarch64)
+ _releasedir="release/linux-arm64-unpacked"
+ ;;
+ esac
+
install -d "${pkgdir}/usr/"{lib,bin}
- cp -a release/linux-unpacked "${pkgdir}/usr/lib/${pkgname}"
+ cp -a "${_releasedir}" "${pkgdir}/usr/lib/${pkgname}"
ln -s "/usr/lib/${pkgname}/${pkgname}" "${pkgdir}/usr/bin/"
chmod u+s "${pkgdir}/usr/lib/signal-desktop/chrome-sandbox"