# Template file for 'Signal-Desktop' pkgname=Signal-Desktop version=7.28.0 revision=1 # Signal officially only supports x86_64 # x86_64-musl could potentially work based on the Alpine port: # https://git.alpinelinux.org/aports/tree/testing/signal-desktop # ARM: https://github.com/signalapp/Signal-Desktop/issues/3410 archs="x86_64" hostmakedepends="git git-lfs nodejs-lts python3 python3-distutils-extra tar" depends="cairo gtk+3 libvips pango" short_desc="Signal Private Messenger for Linux" maintainer="Orphaned " license="AGPL-3.0-only" homepage="https://github.com/signalapp/Signal-Desktop" distfiles="https://github.com/signalapp/Signal-Desktop/archive/v${version}.tar.gz" checksum=2d0d1f6bac0a12555b17ff9f6b97d874774fbe8c5bd28d8da629b2a13c7f9d37 nostrip_files="signal-desktop" post_extract() { # git-lfs hook needs to be installed for one of the dependencies git lfs install vsed 's/"node": ".*"/"node": ">=20.0.0"/' -i package.json # patch node fs with graceful-fs to avoid using too many file descriptors npm add -D graceful-fs@4.2.11 echo "require('graceful-fs').gracefulify(require('fs'));" > ${wrksrc}/use-graceful-fs.js export NODE_OPTIONS="--require ${wrksrc}/use-graceful-fs.js" # Install dependencies for sticker-creator npm --prefix ./sticker-creator/ install # Install dependencies for signal-desktop npm install --ignore-engines } do_build() { # Build the sticker creator npm --prefix ./sticker-creator/ run build # Build signal-desktop npm run build # Extract the generated .desktop file bsdtar xOf release/signal-desktop_*.deb data.tar.xz | \ bsdtar xO ./usr/share/applications/signal-desktop.desktop > signal-desktop.desktop vsed -i -e 's/\/opt\/Signal\///' signal-desktop.desktop } do_install() { vmkdir usr/lib/signal-desktop # Remove prebuilt binaries for foreign architectures (to not confuse strip) for prebin in darwin-x64 linux-arm64 win32-ia32 win32-x64; do rm -rf release/linux-unpacked/resources/app.asar.unpacked/node_modules/{ffi-napi,ref-napi}/prebuilds/$prebin rm -rf release/linux-unpacked/resources/app.asar.unpacked/node_modules/ffi-napi/node_modules/ref-napi/prebuilds/$prebin done vcopy release/linux-unpacked/* usr/lib/signal-desktop vmkdir usr/bin ln -s /usr/lib/signal-desktop/signal-desktop ${DESTDIR}/usr/bin/ vinstall signal-desktop.desktop 644 usr/share/applications vmkdir usr/share/icons/hicolor for size in 16 32 256; do vinstall images/icon_${size}.png 644 usr/share/icons/hicolor/${size}x${size}/apps/ signal-desktop.png done vlicense LICENSE }