# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 MULTILIB_COMPAT=( abi_x86_64 ) inherit desktop multilib-build optfeature pax-utils unpacker xdg DESCRIPTION="Allows you to send and receive messages of Signal Messenger on your computer" HOMEPAGE="https://signal.org/ https://github.com/signalapp/Signal-Desktop" SRC_URI="https://updates.signal.org/desktop/apt/pool/s/${PN}/${PN}_${PV}_amd64.deb" S="${WORKDIR}" LICENSE="GPL-3 MIT MIT-with-advertising BSD-1 BSD-2 BSD Apache-2.0 ISC openssl ZLIB APSL-2 icu Artistic-2 LGPL-2.1" SLOT="0" KEYWORDS="-* ~amd64" IUSE="appindicator +seccomp wayland" RESTRICT="bindist splitdebug" RDEPEND="app-accessibility/at-spi2-core:2[${MULTILIB_USEDEP}] dev-libs/expat:0[${MULTILIB_USEDEP}] dev-libs/glib:2[${MULTILIB_USEDEP}] dev-libs/nspr:0[${MULTILIB_USEDEP}] dev-libs/nss:0[${MULTILIB_USEDEP}] dev-libs/wayland[${MULTILIB_USEDEP}] media-libs/alsa-lib:0[${MULTILIB_USEDEP}] media-libs/mesa:0[${MULTILIB_USEDEP}] net-print/cups:0[${MULTILIB_USEDEP}] sys-apps/dbus:0[${MULTILIB_USEDEP}] x11-libs/cairo:0[${MULTILIB_USEDEP}] x11-libs/gdk-pixbuf:2[${MULTILIB_USEDEP}] x11-libs/gtk+:3[${MULTILIB_USEDEP}] x11-libs/libdrm:0[${MULTILIB_USEDEP}] x11-libs/libX11:0[${MULTILIB_USEDEP}] x11-libs/libxcb:0/1.12[${MULTILIB_USEDEP}] x11-libs/libXcomposite:0[${MULTILIB_USEDEP}] x11-libs/libXdamage:0[${MULTILIB_USEDEP}] x11-libs/libXext:0[${MULTILIB_USEDEP}] x11-libs/libXfixes:0[${MULTILIB_USEDEP}] x11-libs/libxkbcommon:0[${MULTILIB_USEDEP}] x11-libs/libxkbfile:0[${MULTILIB_USEDEP}] x11-libs/libXrandr:0[${MULTILIB_USEDEP}] x11-libs/pango:0[${MULTILIB_USEDEP}] appindicator? ( dev-libs/libayatana-appindicator )" QA_PREBUILT="opt/Signal/chrome_crashpad_handler opt/Signal/chrome-sandbox opt/Signal/libEGL.so opt/Signal/libGLESv2.so opt/Signal/libffmpeg.so opt/Signal/libvk_swiftshader.so opt/Signal/libvulkan.so.1 opt/Signal/resources/app.asar.unpacked/node_modules/* opt/Signal/signal-desktop opt/Signal/swiftshader/libEGL.so opt/Signal/swiftshader/libGLESv2.so" src_prepare() { default sed -e "s|^Exec=/opt/Signal/signal-desktop|Exec=${PN}|" \ -i usr/share/applications/signal-desktop.desktop || die unpack usr/share/doc/signal-desktop/changelog.gz # https://github.com/signalapp/Signal-Desktop/issues/6239 # https://github.com/signalapp/Signal-Desktop/issues/6122 # fixes app icon issues on wayland because "app-id" is "signal" # and desktop file needs to match mv usr/share/applications/signal-desktop.desktop \ usr/share/applications/signal.desktop || die if use appindicator ; then sed -i '/Exec/s|=|=env XDG_CURRENT_DESKTOP=Unity |' \ usr/share/applications/signal.desktop \ || die "sed failed for appindicator" fi if ! use seccomp ; then sed -i '/Exec/s/%U/%U --disable-seccomp-filter-sandbox/' \ usr/share/applications/signal.desktop \ || die "sed failed for seccomp" fi if use wayland ; then sed -i '/Exec/s/%U/%U --enable-features=WebRTCPipeWireCapturer/' \ usr/share/applications/signal.desktop \ || die "sed failed for wayland" fi } src_install() { insinto / dodoc changelog doins -r opt insinto /usr/share doins -r usr/share/applications doins -r usr/share/icons fperms +x /opt/Signal/signal-desktop /opt/Signal/chrome-sandbox /opt/Signal/chrome_crashpad_handler fperms u+s /opt/Signal/chrome-sandbox pax-mark m opt/Signal/signal-desktop opt/Signal/chrome-sandbox opt/Signal/chrome_crashpad_handler newbin - signal-desktop <<- _EOF_ #!/bin/sh exec ${EPREFIX}/opt/Signal/signal-desktop --ozone-platform-hint=auto "\${@}" _EOF_ # https://bugs.gentoo.org/898912 if use appindicator; then dosym ../../usr/lib64/libayatana-appindicator3.so /opt/discord/libappindicator3.so fi } pkg_postinst() { xdg_pkg_postinst elog "For using the tray icon on compatible desktop environments, start Signal with" elog " '--start-in-tray' or '--use-tray-icon'." }