repo/gentoo:master commit in: net-im/telegram-desktop/

"Yixun Lan" <[email protected]>
Newsgroups gmane.linux.gentoo.cvs
Message-ID <1786278256.47ab0d53eac11cd4124dce93524957db3ab6f660.dlan@gentoo>
commit:     47ab0d53eac11cd4124dce93524957db3ab6f660
Author:     Esteve Varela Colominas <esteve.varela <AT> gmail <DOT> com>
AuthorDate: Sat Aug  8 17:10:29 2026 +0000
Commit:     Yixun Lan <dlan <AT> gentoo <DOT> org>
CommitDate: Sun Aug  9 12:24:16 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=47ab0d53

net-im/telegram-desktop: Bump to 7.0.9

Closes: https://github.com/gentoo/gentoo/pull/46662
Signed-off-by: Esteve Varela Colominas <esteve.varela <AT> gmail.com>
Signed-off-by: Yixun Lan <dlan <AT> gentoo.org>

 net-im/telegram-desktop/Manifest                   |   1 +
 net-im/telegram-desktop/metadata.xml               |   1 -
 .../telegram-desktop/telegram-desktop-7.0.9.ebuild | 252 +++++++++++++++++++++
 3 files changed, 253 insertions(+), 1 deletion(-)

diff --git a/net-im/telegram-desktop/Manifest b/net-im/telegram-desktop/Manifest
index 05dd6949a818..42bac9849bac 100644
--- a/net-im/telegram-desktop/Manifest
+++ b/net-im/telegram-desktop/Manifest
@@ -1,3 +1,4 @@
 DIST tdesktop-6.9.3-full.tar.gz 79533184 BLAKE2B 7a3d9c99f794a7c7aedb26ac62dc02aa9aa54a928c67c58f98fdb3e7a9f592948c7c9d9995b4017ce56be8c167b7c81d3bca03f1f117ca4cd87ef752fe8b9da1 SHA512 b3a570cc997c479cd746188f79749f1a163109b5bfe9eac372e295c837619bc2baba2b371581892830b8f60f901b0ed9d2473c5014697b332c12562dc6e1ea0c
 DIST tdesktop-7.0.2-full.tar.gz 80168405 BLAKE2B 17ddbee265ab5923324431e990907922147263c6d64b43d7ff62336f43d7fba62a0247478d40f8471489035eac044e0c6ca743ee2d83abc1fc81b7c931a4d346 SHA512 e3a99396dc710fb08aa6709904a9558aeb6953a160c23ccc1df00e4df5e1a1592145667c780fab676abe092848a6ec517981a25c35711e765769940218dd2a89
 DIST tdesktop-7.0.8-full.tar.gz 81342201 BLAKE2B 457c414fbaa5c86b104be7dfe262dc6a50a4a991c676d8e5c0a5da686ad1a85d05ac45f4cacc2a5e06e9f94221386cd17167e4671a7399bfcadc56a0f22106cf SHA512 3b42a27fe997da838352ce64ed0f975bb43634982bb7a6ed87a76d9d186bd82707b536a4450b84d790726c3f556eaa58f089a2ab79e742d4ef03f601efde53d5
+DIST tdesktop-7.0.9-full.tar.gz 81403059 BLAKE2B c7c0c82fb0795719652c87d3f707dcb6bf184e1b954032487140078d1f907790b865a73b6ff9f5ca090da737abd34ef0c89d6334f83a2d569d77ab235b4116d6 SHA512 c5e97a146c903b3398b53a7451d86efcbb5f87a989586d20753c83e2cb1452b964ab1175b88977eb590b04bcffc14fc678eb9f6a629b7f6f7af522a0da811780

diff --git a/net-im/telegram-desktop/metadata.xml b/net-im/telegram-desktop/metadata.xml
index c3c50aa74bfa..32611cc0c021 100644
--- a/net-im/telegram-desktop/metadata.xml
+++ b/net-im/telegram-desktop/metadata.xml
@@ -20,7 +20,6 @@
 	<use>
 		<flag name="enchant">Use the <pkg>app-text/enchant</pkg> spell-checking backend instead of <pkg>app-text/hunspell</pkg></flag>
 		<flag name="fonts">Use builtin patched copy of open-sans fonts (overrides fontconfig)</flag>
-		<flag name="libdispatch">Use <pkg>dev-libs/libdispatch</pkg> to speed up concurrent code execution</flag>
 	</use>
 	<upstream>
 		<remote-id type="github">telegramdesktop/tdesktop</remote-id>

diff --git a/net-im/telegram-desktop/telegram-desktop-7.0.9.ebuild b/net-im/telegram-desktop/telegram-desktop-7.0.9.ebuild
new file mode 100644
index 000000000000..44a659ffcddd
--- /dev/null
+++ b/net-im/telegram-desktop/telegram-desktop-7.0.9.ebuild
@@ -0,0 +1,252 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{12..15} )
+
+inherit xdg cmake python-any-r1 optfeature flag-o-matic
+
+DESCRIPTION="Official desktop client for Telegram"
+HOMEPAGE="https://desktop.telegram.org https://github.com/telegramdesktop/tdesktop"
+
+MY_P="tdesktop-${PV}-full"
+SRC_URI="https://github.com/telegramdesktop/tdesktop/releases/download/v${PV}/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD GPL-3-with-openssl-exception LGPL-2+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="dbus enchant +fonts screencast wayland webkit +X"
+
+CDEPEND="
+	!net-im/telegram-desktop-bin
+	app-arch/lz4:=
+	app-text/cmark-gfm:=
+	dev-cpp/abseil-cpp:=
+	dev-cpp/ada:=
+	dev-cpp/cld3:=
+	>=dev-cpp/glibmm-2.77:2.68
+	dev-cpp/toomanycooks
+	dev-libs/glib:2
+	dev-libs/libfido2:=
+	dev-libs/openssl:=
+	>=dev-libs/protobuf-21.12
+	dev-libs/qr-code-generator:=
+	dev-libs/xxhash
+	>=dev-qt/qtbase-6.5:6=[dbus?,gui,network,opengl,ssl,wayland?,widgets]
+	>=dev-qt/qtimageformats-6.5:6
+	>=dev-qt/qtsvg-6.5:6
+	kde-frameworks/kcoreaddons:6
+	media-libs/libjpeg-turbo:=
+	media-libs/openal
+	media-libs/opus
+	media-libs/rnnoise
+	>=media-libs/tg_owt-0_pre20241202:=[screencast=,X=]
+	>=media-video/ffmpeg-6:=[opus,vpx]
+	net-libs/tdlib:=[tde2e]
+	sys-apps/hwloc:=
+	virtual/minizip:=
+	!enchant? ( >=app-text/hunspell-1.7:= )
+	enchant? ( app-text/enchant:= )
+	webkit? ( wayland? (
+		>=dev-qt/qtdeclarative-6.5:6
+		>=dev-qt/qtwayland-6.5:6[compositor(+),qml]
+	) )
+"
+RDEPEND="${CDEPEND}
+	webkit? ( || ( net-libs/webkit-gtk:4.1 net-libs/webkit-gtk:6 ) )
+"
+DEPEND="${CDEPEND}
+	>=dev-cpp/cppgir-2.0_p20240315
+	dev-cpp/expected
+	dev-cpp/expected-lite
+	>=dev-cpp/ms-gsl-4.1.0
+	dev-cpp/range-v3
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	>=dev-build/cmake-3.16
+	>=dev-cpp/cppgir-2.0_p20260226
+	>=dev-libs/gobject-introspection-1.82.0-r2
+	dev-qt/qtshadertools
+	>=dev-util/gdbus-codegen-2.80.5-r1
+	virtual/pkgconfig
+	wayland? ( dev-util/wayland-scanner )
+"
+# NOTE: dev-cpp/expected-lite used indirectly by a dev-cpp/cppgir header file
+# NOTE: sys-apps/hwloc is depended upon by dev-cpp/toomanycooks, but needs to
+#       cause SLOT rebuilds here, as dev-cpp/toomanycooks is header-only
+
+PATCHES=(
+	"${FILESDIR}"/tdesktop-5.7.2-cstring.patch
+	"${FILESDIR}"/tdesktop-5.8.3-cstdint.patch
+	"${FILESDIR}"/tdesktop-5.14.3-system-cppgir.patch
+)
+
+pkg_pretend() {
+	if [[ ${MERGE_TYPE} != binary ]]; then
+		if has ccache ${FEATURES}; then
+			ewarn "ccache does not work with ${PN} out of the box"
+			ewarn "due to usage of precompiled headers"
+			ewarn "check bug https://bugs.gentoo.org/715114 for more info"
+			ewarn
+		fi
+	fi
+}
+
+src_prepare() {
+	# Happily fail if libraries aren't found...
+	find -type f \( -name 'CMakeLists.txt' -o -name '*.cmake' \) \
+		\! -path './cmake/external/qt/package.cmake' \
+		-print0 | xargs -0 sed -i \
+		-e '/pkg_check_modules(/s/[^ ]*)/REQUIRED &/' \
+		-e '/find_package(/s/)/ REQUIRED)/' \
+		-e '/find_library(/s/)/ REQUIRED)/' \
+		-e '/find_path(/s/)/ REQUIRED)/' || die
+	# Make sure to check the excluded files for new
+	# CMAKE_DISABLE_FIND_PACKAGE/CMAKE_REQUIRE_FIND_PACKAGE entries.
+
+	# Some packages are found through pkg_check_modules, rather than find_package
+	sed -e '/find_package(lz4 /d' -i cmake/external/lz4/CMakeLists.txt || die
+	sed -e '/find_package(Opus /d' -i cmake/external/opus/CMakeLists.txt || die
+	sed -e '/find_package(xxHash /d' -i cmake/external/xxhash/CMakeLists.txt || die
+	sed -e '/find_package(cmark-gfm\(-extensions\)\? /d' \
+		-i cmake/external/cmark_gfm/CMakeLists.txt || die
+
+	# Temporary workaround for https://bugs.gentoo.org/977603
+	sed -e '/find_package(minizip /d' \
+		-i cmake/external/minizip/CMakeLists.txt || die
+
+	# Greedily remove ThirdParty directories, keep only ones that interest us
+	local keep=(
+		rlottie  # Patched, not recommended to unbundle by upstream
+		libprisma  # Telegram-specific library, no stable releases
+		tgcalls  # Telegram-specific library, no stable releases
+		xdg-desktop-portal  # Only a few xml files are used with gdbus-codegen
+		MicroTeX  # Telegram-specific fork, no stable releases
+	)
+	for x in Telegram/ThirdParty/*; do
+		has "${x##*/}" "${keep[@]}" || rm -r "${x}" || die
+	done
+
+	# Control libdispatch dependency from here, as there's no
+	# CMAKE_DISABLE_FIND_PACKAGE for find_library
+	: > cmake/external/dispatch/CMakeLists.txt || die
+
+	# Control QtDBus dependency from here, to avoid messing with QtGui.
+	# QtGui will use find_package to find QtDbus as well, which
+	# conflicts with the -DCMAKE_DISABLE_FIND_PACKAGE method.
+	if ! use dbus; then
+		sed -e '/find_package(Qt[^ ]* OPTIONAL_COMPONENTS/s/DBus *//' \
+			-i cmake/external/qt/package.cmake || die
+	fi
+
+	# Control automagic dep only needed when USE="webkit wayland"
+	if ! use webkit || ! use wayland; then
+		sed -e 's/QT_CONFIG(wayland_compositor_quick)/0/' \
+			-i Telegram/lib_webview/webview/platform/linux/webview_linux_compositor.h || die
+	fi
+
+	# Shut the CMake 4 QA checker up by removing unused CMakeLists files
+	rm Telegram/ThirdParty/rlottie/CMakeLists.txt || die
+	rm cmake/external/glib/cppgir/expected-lite/example/CMakeLists.txt || die
+	rm cmake/external/glib/cppgir/expected-lite/test/CMakeLists.txt || die
+	rm cmake/external/glib/cppgir/expected-lite/CMakeLists.txt || die
+
+	cmake_src_prepare
+}
+
+src_configure() {
+	# Having user paths sneak into the build environment through the
+	# XDG_DATA_DIRS variable causes all sorts of weirdness with cppgir:
+	# - bug 909038: can't read from flatpak directories (fixed upstream)
+	# - bug 920819: system-wide directories ignored when variable is set
+	export XDG_DATA_DIRS="${ESYSROOT}/usr/share"
+
+	# Evil flag (See https://bugs.gentoo.org/919201)
+	filter-flags -fno-delete-null-pointer-checks
+
+	# The ABI of media-libs/tg_owt breaks if the -DNDEBUG flag doesn't keep
+	# the same state across both projects.
+	# See https://bugs.gentoo.org/866055
+	append-cppflags -DNDEBUG
+
+	local no_webkit_wayland=$(use webkit && use wayland && echo no || echo yes)
+	local use_webkit_wayland=$(use webkit && use wayland && echo yes || echo no)
+	local mycmakeargs=(
+		-DQT_VERSION_MAJOR=6
+
+		# Override new cmake.eclass defaults (https://bugs.gentoo.org/921939)
+		# Upstream never tests this any other way
+		-DCMAKE_DISABLE_PRECOMPILE_HEADERS=OFF
+
+		# Control automagic dependencies on certain packages
+		## These libraries are only used in lib_webview, for wayland
+		## See Telegram/lib_webview/webview/platform/linux/webview_linux_compositor.h
+		-DCMAKE_DISABLE_FIND_PACKAGE_Qt6Quick=${no_webkit_wayland}
+		-DCMAKE_DISABLE_FIND_PACKAGE_Qt6QuickWidgets=${no_webkit_wayland}
+		-DCMAKE_DISABLE_FIND_PACKAGE_Qt6WaylandCompositor=${no_webkit_wayland}
+
+		# Make sure dependencies that aren't patched to be REQUIRED in
+		# src_prepare, are found.  This was suggested to me by the telegram
+		# devs, in lieu of having explicit flags in the build system.
+		-DCMAKE_REQUIRE_FIND_PACKAGE_Qt6DBus=$(usex dbus)
+		-DCMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick=${use_webkit_wayland}
+		-DCMAKE_REQUIRE_FIND_PACKAGE_Qt6QuickWidgets=${use_webkit_wayland}
+		-DCMAKE_REQUIRE_FIND_PACKAGE_Qt6WaylandCompositor=${use_webkit_wayland}
+
+		-DDESKTOP_APP_DISABLE_QT_PLUGINS=ON
+		## Enables enchant and disables hunspell
+		-DDESKTOP_APP_USE_ENCHANT=$(usex enchant)
+		## Use system fonts instead of bundled ones
+		-DDESKTOP_APP_USE_PACKAGED_FONTS=$(usex !fonts)
+	)
+
+	if [[ -n ${MY_TDESKTOP_API_ID} && -n ${MY_TDESKTOP_API_HASH} ]]; then
+		einfo "Found custom API credentials"
+		mycmakeargs+=(
+			-DTDESKTOP_API_ID="${MY_TDESKTOP_API_ID}"
+			-DTDESKTOP_API_HASH="${MY_TDESKTOP_API_HASH}"
+		)
+	else
+		# https://github.com/telegramdesktop/tdesktop/blob/dev/snap/snapcraft.yaml
+		# Building with snapcraft API credentials by default
+		# Custom API credentials can be obtained here:
+		# https://github.com/telegramdesktop/tdesktop/blob/dev/docs/api_credentials.md
+		# After getting credentials you can export variables:
+		#  export MY_TDESKTOP_API_ID="17349""
+		#  export MY_TDESKTOP_API_HASH="344583e45741c457fe1862106095a5eb"
+		# and restart the build"
+		# you can set above variables (without export) in /etc/portage/env/net-im/telegram-desktop
+		# portage will use custom variable every build automatically
+		mycmakeargs+=(
+			-DTDESKTOP_API_ID="611335"
+			-DTDESKTOP_API_HASH="d524b414d21f4d37f08684c1df41ac9c"
+		)
+	fi
+
+	cmake_src_configure
+}
+
+src_compile() {
+	# The cppgir program causes the gen/gio/_types.hpp file to be updated.
+	# Since this program can usually be invoked anywhere in the build process,
+	# running it *after* some files depending on the header have been compiled
+	# causes Telegram to be linked again during src_install().  This is a slow
+	# process (especially with LTO), so we try to avoid it by running all
+	# cppgir targets upfront.
+	cmake_build $("${CMAKE_BINARY}" --build "${BUILD_DIR}" -t help | sed -n '/^[^/]*_cppgir:/s/:.*//p')
+	cmake_build
+	cmake_build  # Just in case, should say "no work to do"
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+	if ! use X && ! use screencast; then
+		ewarn "both the 'X' and 'screencast' USE flags are disabled, screen sharing won't work!"
+		ewarn
+	fi
+	optfeature_header
+	optfeature "AVIF, HEIF and JpegXL image support" kde-frameworks/kimageformats:6[avif,heif,jpegxl]
+}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.