commit: e07ad087d541b5aee7901f91f669a21a12311921 Author: Alfred Wingate <parona <AT> protonmail <DOT> com> AuthorDate: Mon May 6 21:10:13 2024 +0000 Commit: Nick Sarnie <sarnex <AT> gentoo <DOT> org> CommitDate: Mon Nov 24 14:40:40 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e07ad087
net-im/discord: disable updater * Taken from Flatpak as suggested by i.Dark_Templar. Bug: https://bugs.gentoo.org/905289 Signed-off-by: Alfred Wingate <parona <AT> protonmail.com> Part-of: https://github.com/gentoo/gentoo/pull/36592 Closes: https://github.com/gentoo/gentoo/pull/36592 Signed-off-by: Nick Sarnie <sarnex <AT> gentoo.org> net-im/discord/Manifest | 1 + net-im/discord/discord-0.0.115-r1.ebuild | 164 +++++++++++++++++++++++++++++++ net-im/discord/files/launcher-r1.sh | 24 +++++ 3 files changed, 189 insertions(+) diff --git a/net-im/discord/Manifest b/net-im/discord/Manifest index 695539b214ce..85bf81bd9cd5 100644 --- a/net-im/discord/Manifest +++ b/net-im/discord/Manifest @@ -1 +1,2 @@ DIST discord-0.0.115.tar.gz 108661985 BLAKE2B 139002dbaa98bafe48b5c8f75e49114e5d6dbc920ac342a397f9276e39215af7ed647368910371d7bafbd509b77e80e581c08c6f9351bc575df8fefb5bfc2767 SHA512 92fea8b546027d972901cf7773f0736f61b66b8b0d7f96b0b18f0a65a6299983d29a9b630970f9ce0216b39d6148bed37e67274ae8a4fbdc54937d11b3cf222f +DIST discord-disable-breaking-updates-2f26748a667045d26bc19841f1a731b4be7a7514.py 1299 BLAKE2B b6c923c450a28405e2a439e0d1b8a83e01e0536c62095fafbae74612aa4e891df733aa13999ce6a8be3618fd14e154aec802aa4ee21aad1303b05626ffd23314 SHA512 a7ef493a216c71a5b02685cff6866bfc3940aaf9cdc73b58859c962d0d33b613349289ef7027359f184f42dddaed486b84f6d85b9023ab8530ab7ba66431c3c7 diff --git a/net-im/discord/discord-0.0.115-r1.ebuild b/net-im/discord/discord-0.0.115-r1.ebuild new file mode 100644 index 000000000000..92b45af3dd96 --- /dev/null +++ b/net-im/discord/discord-0.0.115-r1.ebuild @@ -0,0 +1,164 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PN="${PN/-bin/}" +MY_PV="${PV/-r*/}" + +CHROMIUM_LANGS=" + af am ar bg bn ca cs da de el en-GB en-US es es-419 et fa fi fil fr gu he hi + hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr sv + sw ta te th tr uk ur vi zh-CN zh-TW +" +PYTHON_COMPAT=( python3_{11..14} ) +UPDATE_DISABLER_COMMIT="2f26748a667045d26bc19841f1a731b4be7a7514" + +inherit chromium-2 desktop linux-info optfeature python-single-r1 unpacker xdg + +DESCRIPTION="All-in-one voice and text chat for gamers" +HOMEPAGE="https://discord.com/" +SRC_URI=" + https://dl.discordapp.net/apps/linux/${MY_PV}/${MY_PN}-${MY_PV}.tar.gz + https://github.com/flathub/com.discordapp.Discord/raw/${UPDATE_DISABLER_COMMIT}/disable-breaking-updates.py + -> discord-disable-breaking-updates-${UPDATE_DISABLER_COMMIT}.py +" +S="${WORKDIR}/${MY_PN^}" + +LICENSE="all-rights-reserved" +SLOT="0" +KEYWORDS="~amd64" + +IUSE="appindicator +seccomp wayland" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="bindist mirror strip test" + +RDEPEND=" + ${PYTHON_DEPS} + >=app-accessibility/at-spi2-core-2.46.0:2 + dev-libs/expat + dev-libs/glib:2 + dev-libs/nspr + dev-libs/nss + media-libs/alsa-lib + media-libs/fontconfig + media-libs/mesa[gbm(+)] + net-print/cups + sys-apps/dbus + sys-apps/util-linux + sys-libs/glibc + x11-libs/cairo + x11-libs/libdrm + 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/libxcb + x11-libs/libxkbcommon + x11-libs/libxshmfence + x11-libs/pango + appindicator? ( dev-libs/libayatana-appindicator ) +" + +DESTDIR="/opt/${MY_PN}" + +QA_PREBUILT="*" + +CONFIG_CHECK="~USER_NS" + +src_unpack() { + unpack ${MY_PN}-${MY_PV}.tar.gz +} + +src_configure() { + default + chromium_suid_sandbox_check_kernel_config +} + +src_prepare() { + default + # remove post-install script + rm postinst.sh || die "the removal of the unneeded post-install script failed" + # cleanup languages + pushd "locales/" >/dev/null || die "location change for language cleanup failed" + chromium_remove_language_paks + popd >/dev/null || die "location reset for language cleanup failed" + + # fix .desktop exec location + sed --in-place --expression "/^Exec=/s:/usr/share/discord/Discord:/usr/bin/${MY_PN}:" \ + "${MY_PN}.desktop" || + die "fixing of exec location on .desktop failed" + + # Update exec location in launcher + sed --expression "s:@@DESTDIR@@:${DESTDIR}:" \ + "${FILESDIR}/launcher-r1.sh" > "${T}/launcher.sh" || die "updating of exec location in launcher failed" + + # USE seccomp in launcher + if use seccomp; then + sed --in-place --expression '/^EBUILD_SECCOMP=/s/false/true/' \ + "${T}/launcher.sh" || die "sed failed for seccomp" + fi + + # USE wayland in launcher + if use wayland; then + sed --in-place --expression '/^EBUILD_WAYLAND=/s/false/true/' \ + "${T}/launcher.sh" || die "sed failed for wayland" + fi +} + +src_install() { + doicon -s 256 "${MY_PN}.png" + + # install .desktop file + domenu "${MY_PN}.desktop" + + exeinto "${DESTDIR}" + + doexe "${MY_PN^}" chrome-sandbox libEGL.so libffmpeg.so libGLESv2.so libvk_swiftshader.so + + insinto "${DESTDIR}" + doins chrome_100_percent.pak chrome_200_percent.pak icudtl.dat resources.pak snapshot_blob.bin v8_context_snapshot.bin + insopts -m0755 + doins -r locales resources + + # Chrome-sandbox requires the setuid bit to be specifically set. + # see https://github.com/electron/electron/issues/17972 + fowners root "${DESTDIR}/chrome-sandbox" + fperms 4711 "${DESTDIR}/chrome-sandbox" + + # Crashpad is included in the package once in a while and when it does, it must be installed. + # See #903616 and #890595 + [[ -x chrome_crashpad_handler ]] && doins chrome_crashpad_handler + + # https://bugs.gentoo.org/905289 + newins "${DISTDIR}/discord-disable-breaking-updates-${UPDATE_DISABLER_COMMIT}.py" disable-breaking-updates.py + python_fix_shebang "${ED}/${DESTDIR}/disable-breaking-updates.py" + + exeinto "/usr/bin" + newexe "${T}/launcher.sh" "discord" || die "failing to install launcher" + + # 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 + + optfeature_header "Install the following packages for additional support:" + optfeature "sound support" \ + media-sound/pulseaudio media-sound/apulse[sdk] media-video/pipewire + optfeature "emoji support" media-fonts/noto-emoji + if has_version kde-plasma/kwin[-screencast] && use wayland; then + einfo " " + einfo "When using KWin on Wayland, the kde-plasma/kwin[screencast] USE flag" + einfo "must be enabled for screensharing." + einfo " " + fi +} diff --git a/net-im/discord/files/launcher-r1.sh b/net-im/discord/files/launcher-r1.sh new file mode 100644 index 000000000000..b3a9f1b5bc72 --- /dev/null +++ b/net-im/discord/files/launcher-r1.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# coding: UTF-8 + + +declare -a discord_parameters + +# Variables set during ebuild configuration +EBUILD_SECCOMP=false +EBUILD_WAYLAND=false + +"${EBUILD_SECCOMP}" || discord_parameters+=( --disable-seccomp-filter-sandbox ) + +"${EBUILD_WAYLAND}" && \ +[[ -n "${WAYLAND_DISPLAY}" ]] && discord_parameters+=( + --enable-features=UseOzonePlatform + --ozone-platform=wayland + --enable-wayland-ime +) + + +# https://bugs.gentoo.org/905289 +@@DESTDIR@@/disable-breaking-updates.py + +@@DESTDIR@@/Discord "${discord_parameters[@]}" "$@"
