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

"Yixun Lan" <[email protected]>
Newsgroups gmane.linux.gentoo.cvs
Message-ID <1786020318.c6f12a528b3a41e9b8132bd614348ebf7991e272.dlan@gentoo>
commit:     c6f12a528b3a41e9b8132bd614348ebf7991e272
Author:     Yixun Lan <dlan <AT> gentoo <DOT> org>
AuthorDate: Thu Aug  6 12:42:22 2026 +0000
Commit:     Yixun Lan <dlan <AT> gentoo <DOT> org>
CommitDate: Thu Aug  6 12:45:18 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c6f12a52

net-im/telegram-desktop: add 7.0.8

Signed-off-by: Yixun Lan <dlan <AT> gentoo.org>

 net-im/telegram-desktop/Manifest                   |   1 +
 .../telegram-desktop/telegram-desktop-7.0.8.ebuild | 252 +++++++++++++++++++++
 2 files changed, 253 insertions(+)

diff --git a/net-im/telegram-desktop/Manifest b/net-im/telegram-desktop/Manifest
index 1c15bae30d72..05dd6949a818 100644
--- a/net-im/telegram-desktop/Manifest
+++ b/net-im/telegram-desktop/Manifest
@@ -1,2 +1,3 @@
 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

diff --git a/net-im/telegram-desktop/telegram-desktop-7.0.8.ebuild b/net-im/telegram-desktop/telegram-desktop-7.0.8.ebuild
new file mode 100644
index 000000000000..b014ec20c15d
--- /dev/null
+++ b/net-im/telegram-desktop/telegram-desktop-7.0.8.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/libfido2:=
+	dev-libs/glib:2
+	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.