# Copyright 2020-2026 Gentoo Authors # Copyright 2026 Rosen Aleksandrov # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit optfeature unpacker xdg MY_PN="${PN/-bin}" MY_URI="https://packages.element.io/debian/pool/main/e/element-desktop" DESCRIPTION="A glossy Matrix collaboration client for desktop (binary package)" HOMEPAGE="https://element.io" SRC_URI=" amd64? ( ${MY_URI}/${MY_PN}_${PV}_amd64.deb ) arm64? ( ${MY_URI}/${MY_PN}_${PV}_arm64.deb ) " S="${WORKDIR}" LICENSE="Apache-2.0" SLOT="0" KEYWORDS="-* ~amd64 ~arm64" RESTRICT="splitdebug" RDEPEND=" >=app-accessibility/at-spi2-core-2.46.0:2 app-crypt/libsecret dev-db/sqlcipher dev-libs/expat dev-libs/glib:2 dev-libs/nettle dev-libs/nspr dev-libs/nss media-libs/alsa-lib media-libs/mesa[gbm(+)] net-print/cups sys-apps/dbus virtual/udev x11-libs/cairo x11-libs/gdk-pixbuf:2 x11-libs/gtk+:3 x11-libs/libX11 x11-libs/libXScrnSaver x11-libs/libXcomposite x11-libs/libXdamage x11-libs/libXext x11-libs/libXfixes x11-libs/libXrandr x11-libs/libXtst x11-libs/libdrm x11-libs/libnotify x11-libs/libxcb x11-libs/libxkbcommon x11-libs/pango x11-misc/xdg-utils" # Native modules (seshat, pkcs11js, ...) are matched by glob, because # upstream has already moved them around between releases. QA_PREBUILT=" opt/Element/chrome-sandbox opt/Element/chrome_crashpad_handler opt/Element/element-desktop opt/Element/libffmpeg.so opt/Element/libvk_swiftshader.so opt/Element/libvulkan.so.1 opt/Element/resources/app.asar.unpacked/node_modules/* " src_prepare() { default # Fix StartupWMClass in .desktop file if [[ -f usr/share/applications/element-desktop.desktop ]]; then sed -i 's/^StartupWMClass=Element/StartupWMClass=element/' \ usr/share/applications/element-desktop.desktop || die fi rm opt/Element/{LICENSE.electron.txt,LICENSES.chromium.html} || die } src_install() { mv usr/share/doc/${MY_PN} usr/share/doc/${PF} || die gunzip usr/share/doc/${PF}/changelog.gz || die insinto / doins -r usr doins -r opt fperms +x /opt/Element/${MY_PN} fperms +x /opt/Element/chrome_crashpad_handler fperms u+s /opt/Element/chrome-sandbox # doins drops the exec bit; restore it for all native node modules # without depending on their exact path find "${ED}"/opt/Element/resources/app.asar.unpacked -name '*.node' -type f \ -exec chmod +x {} + || die dosym ../../opt/Element/${MY_PN} /usr/bin/${MY_PN} dosym ${MY_PN} /usr/bin/riot-desktop } pkg_postinst() { xdg_pkg_postinst optfeature "emojis" media-fonts/noto-emoji }