# Copyright 2026 Gurov # Distributed under the terms of the GNU General Public License v2 require freedesktop-desktop freedesktop-mime gtk-icon-cache SUMMARY="Voice, video, and text chat client" HOMEPAGE="https://discord.com/" DISCORD_BASE="https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/${PV}" UPDATE_DISABLER_COMMIT="2f26748a667045d26bc19841f1a731b4be7a7514" DISCORD_MODULES=( discord_desktop_core discord_erlpack discord_spellcheck discord_utils discord_voice discord_zstd discord_rpc discord_game_utils discord_krisp ) DOWNLOADS=" ${DISCORD_BASE}/full.distro -> ${PNV}.distro https://github.com/flathub/com.discordapp.Discord/raw/${UPDATE_DISABLER_COMMIT}/disable-breaking-updates.py -> ${PN}-disable-breaking-updates-${UPDATE_DISABLER_COMMIT}.py " for module in "${DISCORD_MODULES[@]}"; do DOWNLOADS+=" ${DISCORD_BASE}/${module}/1/full.distro -> ${PNV}-${module}.distro " done LICENCES="all-rights-reserved" SLOT="0" PLATFORMS="~amd64" RESTRICT="mirror strip test" DEPENDENCIES=" build: app-arch/brotli app-arch/zip run: dev-lang/python:*[>=3] dev-libs/at-spi2-core dev-libs/expat dev-libs/glib:2 dev-libs/nspr dev-libs/nss media-libs/fontconfig net-print/cups sys-apps/dbus sys-apps/util-linux sys-libs/wayland sys-sound/alsa-lib x11-dri/libdrm x11-dri/mesa x11-libs/cairo x11-libs/gdk-pixbuf:2.0 x11-libs/gtk+:3 x11-libs/libX11 x11-libs/libXcomposite x11-libs/libXdamage x11-libs/libXext x11-libs/libXfixes x11-libs/libXrandr x11-libs/libxcb x11-libs/libxkbcommon x11-libs/libxshmfence x11-libs/pango " WORK="${WORKBASE}/discord" pkg_setup() { exdirectory --allow /opt } src_unpack() { edo mkdir -p "${WORK}" edo brotli -d "${FETCHEDDIR}/${PNV}.distro" -o "${WORKBASE}/${PNV}.tar" edo tar -xf "${WORKBASE}/${PNV}.tar" -C "${WORK}" edo rm "${WORKBASE}/${PNV}.tar" local module for module in "${DISCORD_MODULES[@]}"; do edo mkdir -p "${WORKBASE}/${module}" edo brotli -d "${FETCHEDDIR}/${PNV}-${module}.distro" -o "${WORKBASE}/${module}.tar" edo tar -xf "${WORKBASE}/${module}.tar" -C "${WORKBASE}/${module}" edo pushd "${WORKBASE}/${module}/files" edo zip -qr "${WORK}/files/resources/bootstrap/${module}.zip" . edo popd edo rm -r "${WORKBASE}/${module}" "${WORKBASE}/${module}.tar" done } src_prepare() { edo cp "${FILES}/manifest.json" "${WORK}/files/resources/bootstrap/manifest.json" } src_install() { edo mkdir -p "${IMAGE}/opt/discord" edo cp -r "${WORK}/files/." "${IMAGE}/opt/discord/" edo chmod 4755 "${IMAGE}/opt/discord/chrome-sandbox" insinto /opt/discord newins "${FETCHEDDIR}/${PN}-disable-breaking-updates-${UPDATE_DISABLER_COMMIT}.py" disable-breaking-updates.py edo chmod 755 "${IMAGE}/opt/discord/disable-breaking-updates.py" insinto /usr/share/icons/hicolor/256x256/apps newins "${WORK}/files/discord.png" discord.png insinto /usr/share/applications doins "${FILES}/discord.desktop" exeinto /usr/$(exhost --target)/bin newexe "${FILES}/discord-launcher" discord } pkg_postinst() { freedesktop-mime_pkg_postinst freedesktop-desktop_pkg_postinst gtk-icon-cache_pkg_postinst } pkg_postrm() { freedesktop-mime_pkg_postrm freedesktop-desktop_pkg_postrm gtk-icon-cache_pkg_postrm }