forgor that

This commit is contained in:
TheK0tYaRa 2025-03-06 12:34:44 +02:00
parent 2a34c396c2
commit 62993c74c5
9 changed files with 466 additions and 171 deletions

View file

@ -1 +0,0 @@
DIST kotatogram-desktop-1.4.9-full.tar.gz 50300404 SHA256 27d99f642939a9501bafe633c00b39983284f3fc7d84f0944f95adcbe9182d03 SHA512 eb46a6ea5e218ce0cffbc6a177a23d2d0ab1f133a412c72283715fbd3a9a2f51e27b03c5780080ab8717d7776e1f2f1e709495f4484198f9306c793a813021b5 WHIRLPOOL 803c2fa4553947f25aaf7486fe6b38349af96da97f6f5469ac0d093c878fb2a7de89bb61d514fcffd74044169ac2d1df3c9dbdee63497dbdb5ac2856aa1244c2

View file

@ -1,20 +0,0 @@
--- tdesktop-3.3.0-full.orig/Telegram/lib_spellcheck/spellcheck/platform/linux/spellcheck_linux.cpp
+++ tdesktop-3.3.0-full/Telegram/lib_spellcheck/spellcheck/platform/linux/spellcheck_linux.cpp
@@ -34,7 +34,7 @@
auto IsHebrew(const QString &word) {
// Words with mixed scripts will be automatically ignored,
// so this check should be fine.
- return ::Spellchecker::WordScript(&word) == QChar::Script_Hebrew;
+ return ::Spellchecker::WordScript(word) == QChar::Script_Hebrew;
}
class EnchantSpellChecker {
@@ -154,7 +154,7 @@
}
auto EnchantSpellChecker::findSuggestions(const QString &word) {
- const auto wordScript = ::Spellchecker::WordScript(&word);
+ const auto wordScript = ::Spellchecker::WordScript(word);
auto w = word.toStdString();
std::vector<QString> result;
if (!_validators.size()) {

View file

@ -1,34 +0,0 @@
Only link jemalloc for the Telegram binary
Some combination of factors is making the different codegen tools hang when
jemalloc is linked for those, and they're ran under portage's sandbox. Since
this is only used during build-time, and jemalloc is merely necessary to
improve runtime memory use, it's unnecessary to use it for anything else.
--- tdesktop-3.5.2-full.orig/Telegram/CMakeLists.txt
+++ tdesktop-3.5.2-full/Telegram/CMakeLists.txt
@@ -1357,6 +1357,12 @@
desktop-app::external_kwayland
)
endif()
+
+ target_link_libraries(Telegram
+ PRIVATE
+ desktop-app::linux_jemalloc_helper
+ $<TARGET_OBJECTS:desktop-app::linux_jemalloc_helper>
+ )
endif()
if (build_macstore)
--- a/cmake/options_linux.cmake 2022-03-12 13:44:31.415761980 +0100
+++ b/cmake/options_linux.cmake 2022-03-12 13:44:40.435301728 +0100
@@ -64,8 +64,6 @@
target_link_libraries(common_options
INTERFACE
- $<TARGET_OBJECTS:desktop-app::linux_jemalloc_helper>
- $<LINK_ONLY:desktop-app::external_jemalloc>
${CMAKE_DL_LIBS}
)

View file

@ -1,71 +0,0 @@
Optionally disable jemalloc
Telegram upstream heavily insists you use the jemalloc allocator. This is due
to the high memory usage resulting from the glibc allocator. It is unknown why
this affects telegram the way it does, but upstream solved the issue by using a
different allocator. Initially they used mallocng, now jemalloc.
However, other libcs don't necessarily need this, and as such this should be
optional. As mallocng is a fork of musl's allocator, and this was used before
the switch to jemalloc, the musl allocator should still be OK.
Please warn glibc users about disabling jemalloc, don't report bugs about
memory usage upstream unless you're using jemalloc.
Related info:
https://github.com/telegramdesktop/tdesktop/issues/16084
https://github.com/desktop-app/cmake_helpers/pull/91#issuecomment-881788003
--- tdesktop-3.5.2-full.orig/Telegram/CMakeLists.txt
+++ tdesktop-3.5.2-full/Telegram/CMakeLists.txt
@@ -1358,11 +1358,13 @@
)
endif()
- target_link_libraries(Telegram
- PRIVATE
- desktop-app::linux_jemalloc_helper
- $<TARGET_OBJECTS:desktop-app::linux_jemalloc_helper>
- )
+ if (NOT DESKTOP_APP_DISABLE_JEMALLOC)
+ target_link_libraries(Telegram
+ PRIVATE
+ desktop-app::linux_jemalloc_helper
+ $<TARGET_OBJECTS:desktop-app::linux_jemalloc_helper>
+ )
+ endif()
endif()
if (build_macstore)
--- tdesktop-3.5.2-full.orig/cmake/CMakeLists.txt
+++ tdesktop-3.5.2-full/cmake/CMakeLists.txt
@@ -5,7 +5,7 @@
# https://github.com/desktop-app/legal/blob/master/LEGAL
add_subdirectory(external)
-if (LINUX)
+if (LINUX AND NOT DESKTOP_APP_DISABLE_JEMALLOC)
add_subdirectory(linux_jemalloc_helper)
endif()
if (LINUX AND NOT DESKTOP_APP_USE_PACKAGED)
--- tdesktop-3.5.2-full.orig/cmake/external/CMakeLists.txt
+++ tdesktop-3.5.2-full/cmake/external/CMakeLists.txt
@@ -37,7 +37,7 @@
add_checked_subdirectory(hunspell)
endif()
add_checked_subdirectory(iconv)
-if (LINUX)
+if (LINUX AND NOT DESKTOP_APP_DISABLE_JEMALLOC)
add_checked_subdirectory(jemalloc)
endif()
add_checked_subdirectory(jpeg)
--- tdesktop-3.5.2-full.orig/cmake/variables.cmake
+++ tdesktop-3.5.2-full/cmake/variables.cmake
@@ -26,6 +26,7 @@
option(DESKTOP_APP_USE_PACKAGED_FONTS "Use preinstalled fonts instead of bundled patched ones." OFF)
option(DESKTOP_APP_USE_PACKAGED_RLOTTIE "Find rlottie using CMake instead of bundled patched one." OFF)
option(DESKTOP_APP_DISABLE_SPELLCHECK "Disable spellcheck library." OFF)
+option(DESKTOP_APP_DISABLE_JEMALLOC "Disable use of the jemalloc allocator (Linux only)." OFF)
option(DESKTOP_APP_DISABLE_CRASH_REPORTS "Disable crash report generation." ${no_special_target})
option(DESKTOP_APP_DISABLE_AUTOUPDATE "Disable autoupdate." ${disable_autoupdate})
option(DESKTOP_APP_USE_HUNSPELL_ONLY "Disable system spellchecker and use bundled Hunspell only. (For debugging purposes)" OFF)

View file

@ -1,33 +0,0 @@
Stub out some glibc-specific functions
This allows support for alternative libcs like musl
--- tdesktop-3.5.2-full.orig/Telegram/lib_base/base/platform/linux/base_info_linux.cpp
+++ tdesktop-3.5.2-full/Telegram/lib_base/base/platform/linux/base_info_linux.cpp
@@ -22,7 +22,7 @@
#include <sys/utsname.h>
-#ifdef Q_OS_LINUX
+#if defined(Q_OS_LINUX) && defined(__GLIBC__)
#include <gnu/libc-version.h>
#endif // Q_OS_LINUX
@@ -200,7 +200,7 @@
}
QString GetLibcName() {
-#ifdef Q_OS_LINUX
+#if defined(Q_OS_LINUX) && defined(__GLIBC__)
return "glibc";
#endif // Q_OS_LINUX
@@ -208,7 +208,7 @@
}
QString GetLibcVersion() {
-#ifdef Q_OS_LINUX
+#if defined(Q_OS_LINUX) && defined(__GLIBC__)
static const auto result = [&] {
const auto version = QString::fromLatin1(gnu_get_libc_version());
return QVersionNumber::fromString(version).isNull() ? QString() : version;

View file

@ -1 +0,0 @@
kotatogram-desktop-9999.ebuild

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<use>
<flag name="enchant">Enable the app-text/aspell spell-checking backend</flag>
<flag name="hunspell">Enable the app-text/hunspell spell-checking backend</flag>
<flag name="screencast">Enable support for remote desktop and screen cast using <pkg>media-video/pipewire</pkg></flag>
</use>
</pkgmetadata>

View file

@ -1 +0,0 @@
telegram-desktop-4.14.2.ebuild

View file

@ -0,0 +1,233 @@
# Copyright 2020-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
inherit xdg cmake python-any-r1 optfeature flag-o-matic
DESCRIPTION="Official desktop client for Telegram"
HOMEPAGE="https://desktop.telegram.org"
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 ~arm64 ~loong ~riscv"
IUSE="dbus enchant +fonts screencast qt6 qt6-imageformats wayland webkit +X"
REQUIRED_USE="
qt6-imageformats? ( qt6 )
"
KIMAGEFORMATS_RDEPEND="
media-libs/libavif:=
media-libs/libheif:=
>=media-libs/libjxl-0.8.0
"
CDEPEND="
!net-im/telegram-desktop-bin
app-arch/lz4:=
dev-cpp/abseil-cpp:=
>=dev-cpp/glibmm-2.77:2.68
dev-libs/glib:2
dev-libs/libdispatch
dev-libs/openssl:=
dev-libs/protobuf
dev-libs/xxhash
media-libs/libjpeg-turbo:=
~media-libs/libtgvoip-2.4.4_p20221208
media-libs/openal
media-libs/opus
media-libs/rnnoise
~media-libs/tg_owt-0_pre20230921:=[screencast=,X=]
media-video/ffmpeg:=[opus,vpx]
sys-libs/zlib:=[minizip]
virtual/opengl
!enchant? ( >=app-text/hunspell-1.7:= )
enchant? ( app-text/enchant:= )
!qt6? (
>=dev-qt/qtcore-5.15:5=
>=dev-qt/qtgui-5.15:5=[dbus?,jpeg,png,wayland?,X?]
>=dev-qt/qtimageformats-5.15:5
>=dev-qt/qtnetwork-5.15:5[ssl]
>=dev-qt/qtsvg-5.15:5
>=dev-qt/qtwidgets-5.15:5[png,X?]
kde-frameworks/kcoreaddons:5
webkit? (
>=dev-qt/qtdeclarative-5.15:5
>=dev-qt/qtwayland-5.15:5
)
)
qt6? (
>=dev-qt/qtbase-6.5:6=[dbus?,gui,network,opengl,wayland?,widgets,X?]
>=dev-qt/qtimageformats-6.5:6
>=dev-qt/qtsvg-6.5:6
webkit? (
>=dev-qt/qtdeclarative-6.5:6
>=dev-qt/qtwayland-6.5:6[compositor]
)
qt6-imageformats? (
>=dev-qt/qtimageformats-6.5:6=
${KIMAGEFORMATS_RDEPEND}
)
)
X? (
x11-libs/libxcb:=
x11-libs/xcb-util-keysyms
)
"
RDEPEND="${CDEPEND}
webkit? ( net-libs/webkit-gtk:4.1 net-libs/webkit-gtk:6 )
"
DEPEND="${CDEPEND}
>dev-cpp/cppgir-0_p20230926
>=dev-cpp/ms-gsl-4
dev-cpp/range-v3
"
BDEPEND="
${PYTHON_DEPS}
>dev-cpp/cppgir-0_p20230926
>=dev-build/cmake-3.16
dev-util/gdbus-codegen
virtual/pkgconfig
wayland? ( dev-util/wayland-scanner )
"
PATCHES=(
# "${FILESDIR}/tdesktop-4.10.0-system-cppgir.patch"
"${FILESDIR}/tdesktop-4.10.5-qt_compare.patch"
)
pkg_pretend() {
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
}
src_prepare() {
# Bundle kde-frameworks/kimageformats for qt6, since it's impossible to
# build in gentoo right now.
if use qt6-imageformats; then
sed -e 's/DESKTOP_APP_USE_PACKAGED_LAZY/TRUE/' -i \
cmake/external/kimageformats/CMakeLists.txt || die
printf '%s\n' \
'Q_IMPORT_PLUGIN(QAVIFPlugin)' \
'Q_IMPORT_PLUGIN(HEIFPlugin)' \
'Q_IMPORT_PLUGIN(QJpegXLPlugin)' \
>> cmake/external/qt/qt_static_plugins/qt_static_plugins.cpp || die
fi
# kde-frameworks/kcoreaddons is bundled when using qt6.
# Happily fail if libraries aren't found...
find -type f \( -name 'CMakeLists.txt' -o -name '*.cmake' \) \
\! -path './Telegram/lib_webview/CMakeLists.txt' \
\! -path './cmake/external/expected/CMakeLists.txt' \
\! -path './cmake/external/kcoreaddons/CMakeLists.txt' \
\! -path './cmake/external/qt/package.cmake' \
-print0 | xargs -0 sed -i \
-e '/pkg_check_modules(/s/[^ ]*)/REQUIRED &/' \
-e '/find_package(/s/)/ REQUIRED)/' || die
# Make sure to check the excluded files for new
# CMAKE_DISABLE_FIND_PACKAGE entries.
# Control QtDBus dependency from here, to avoid messing with QtGui.
if ! use dbus; then
sed -e '/find_package(Qt[^ ]* OPTIONAL_COMPONENTS/s/DBus *//' \
-i cmake/external/qt/package.cmake || die
fi
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="${EPREFIX}/usr/share"
# Evil flag (bug #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 qt=$(usex qt6 6 5)
local mycmakeargs=(
-DQT_VERSION_MAJOR=${qt}
# Control automagic dependencies on certain packages
## Header-only lib, some git version.
-DCMAKE_DISABLE_FIND_PACKAGE_tl-expected=ON
-DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}Quick=$(usex !webkit)
-DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}QuickWidgets=$(usex !webkit)
-DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}WaylandClient=$(usex !wayland)
## Only used in Telegram/lib_webview/CMakeLists.txt
-DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}WaylandCompositor=$(usex !webkit)
## KF6CoreAddons is currently unavailable in ::gentoo
-DCMAKE_DISABLE_FIND_PACKAGE_KF${qt}CoreAddons=$(usex qt6)
-DDESKTOP_APP_DISABLE_X11_INTEGRATION=$(usex !X)
-DDESKTOP_APP_DISABLE_WAYLAND_INTEGRATION=$(usex !wayland)
## 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
}
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
if use wayland && ! use qt6; then
ewarn "Wayland-specific integrations have been deprecated with Qt5."
ewarn "The app will continue to function under wayland, but some"
ewarn "functionality may be reduced."
ewarn "These integrations are only supported when built with Qt6."
ewarn
fi
if use qt6 && ! use qt6-imageformats; then
elog "Enable USE=qt6-imageformats for AVIF, HEIF and JpegXL support"
elog
fi
optfeature_header
if ! use qt6; then
optfeature "AVIF, HEIF and JpegXL image support" kde-frameworks/kimageformats[avif,heif,jpegxl]
fi
}

View file

@ -1 +0,0 @@
telegram-desktop-4.14.2.ebuild

View file

@ -0,0 +1,233 @@
# Copyright 2020-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
inherit xdg cmake python-any-r1 optfeature flag-o-matic
DESCRIPTION="Official desktop client for Telegram"
HOMEPAGE="https://desktop.telegram.org"
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 ~arm64 ~loong ~riscv"
IUSE="dbus enchant +fonts screencast qt6 qt6-imageformats wayland webkit +X"
REQUIRED_USE="
qt6-imageformats? ( qt6 )
"
KIMAGEFORMATS_RDEPEND="
media-libs/libavif:=
media-libs/libheif:=
>=media-libs/libjxl-0.8.0
"
CDEPEND="
!net-im/telegram-desktop-bin
app-arch/lz4:=
dev-cpp/abseil-cpp:=
>=dev-cpp/glibmm-2.77:2.68
dev-libs/glib:2
dev-libs/libdispatch
dev-libs/openssl:=
dev-libs/protobuf
dev-libs/xxhash
media-libs/libjpeg-turbo:=
~media-libs/libtgvoip-2.4.4_p20221208
media-libs/openal
media-libs/opus
media-libs/rnnoise
~media-libs/tg_owt-0_pre20230921:=[screencast=,X=]
media-video/ffmpeg:=[opus,vpx]
sys-libs/zlib:=[minizip]
virtual/opengl
!enchant? ( >=app-text/hunspell-1.7:= )
enchant? ( app-text/enchant:= )
!qt6? (
>=dev-qt/qtcore-5.15:5=
>=dev-qt/qtgui-5.15:5=[dbus?,jpeg,png,wayland?,X?]
>=dev-qt/qtimageformats-5.15:5
>=dev-qt/qtnetwork-5.15:5[ssl]
>=dev-qt/qtsvg-5.15:5
>=dev-qt/qtwidgets-5.15:5[png,X?]
kde-frameworks/kcoreaddons:5
webkit? (
>=dev-qt/qtdeclarative-5.15:5
>=dev-qt/qtwayland-5.15:5
)
)
qt6? (
>=dev-qt/qtbase-6.5:6=[dbus?,gui,network,opengl,wayland?,widgets,X?]
>=dev-qt/qtimageformats-6.5:6
>=dev-qt/qtsvg-6.5:6
webkit? (
>=dev-qt/qtdeclarative-6.5:6
>=dev-qt/qtwayland-6.5:6[compositor]
)
qt6-imageformats? (
>=dev-qt/qtimageformats-6.5:6=
${KIMAGEFORMATS_RDEPEND}
)
)
X? (
x11-libs/libxcb:=
x11-libs/xcb-util-keysyms
)
"
RDEPEND="${CDEPEND}
webkit? ( net-libs/webkit-gtk:4.1 net-libs/webkit-gtk:6 )
"
DEPEND="${CDEPEND}
>dev-cpp/cppgir-0_p20230926
>=dev-cpp/ms-gsl-4
dev-cpp/range-v3
"
BDEPEND="
${PYTHON_DEPS}
>dev-cpp/cppgir-0_p20230926
>=dev-build/cmake-3.16
dev-util/gdbus-codegen
virtual/pkgconfig
wayland? ( dev-util/wayland-scanner )
"
PATCHES=(
# "${FILESDIR}/tdesktop-4.10.0-system-cppgir.patch"
"${FILESDIR}/tdesktop-4.10.5-qt_compare.patch"
)
pkg_pretend() {
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
}
src_prepare() {
# Bundle kde-frameworks/kimageformats for qt6, since it's impossible to
# build in gentoo right now.
if use qt6-imageformats; then
sed -e 's/DESKTOP_APP_USE_PACKAGED_LAZY/TRUE/' -i \
cmake/external/kimageformats/CMakeLists.txt || die
printf '%s\n' \
'Q_IMPORT_PLUGIN(QAVIFPlugin)' \
'Q_IMPORT_PLUGIN(HEIFPlugin)' \
'Q_IMPORT_PLUGIN(QJpegXLPlugin)' \
>> cmake/external/qt/qt_static_plugins/qt_static_plugins.cpp || die
fi
# kde-frameworks/kcoreaddons is bundled when using qt6.
# Happily fail if libraries aren't found...
find -type f \( -name 'CMakeLists.txt' -o -name '*.cmake' \) \
\! -path './Telegram/lib_webview/CMakeLists.txt' \
\! -path './cmake/external/expected/CMakeLists.txt' \
\! -path './cmake/external/kcoreaddons/CMakeLists.txt' \
\! -path './cmake/external/qt/package.cmake' \
-print0 | xargs -0 sed -i \
-e '/pkg_check_modules(/s/[^ ]*)/REQUIRED &/' \
-e '/find_package(/s/)/ REQUIRED)/' || die
# Make sure to check the excluded files for new
# CMAKE_DISABLE_FIND_PACKAGE entries.
# Control QtDBus dependency from here, to avoid messing with QtGui.
if ! use dbus; then
sed -e '/find_package(Qt[^ ]* OPTIONAL_COMPONENTS/s/DBus *//' \
-i cmake/external/qt/package.cmake || die
fi
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="${EPREFIX}/usr/share"
# Evil flag (bug #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 qt=$(usex qt6 6 5)
local mycmakeargs=(
-DQT_VERSION_MAJOR=${qt}
# Control automagic dependencies on certain packages
## Header-only lib, some git version.
-DCMAKE_DISABLE_FIND_PACKAGE_tl-expected=ON
-DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}Quick=$(usex !webkit)
-DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}QuickWidgets=$(usex !webkit)
-DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}WaylandClient=$(usex !wayland)
## Only used in Telegram/lib_webview/CMakeLists.txt
-DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}WaylandCompositor=$(usex !webkit)
## KF6CoreAddons is currently unavailable in ::gentoo
-DCMAKE_DISABLE_FIND_PACKAGE_KF${qt}CoreAddons=$(usex qt6)
-DDESKTOP_APP_DISABLE_X11_INTEGRATION=$(usex !X)
-DDESKTOP_APP_DISABLE_WAYLAND_INTEGRATION=$(usex !wayland)
## 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
}
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
if use wayland && ! use qt6; then
ewarn "Wayland-specific integrations have been deprecated with Qt5."
ewarn "The app will continue to function under wayland, but some"
ewarn "functionality may be reduced."
ewarn "These integrations are only supported when built with Qt6."
ewarn
fi
if use qt6 && ! use qt6-imageformats; then
elog "Enable USE=qt6-imageformats for AVIF, HEIF and JpegXL support"
elog
fi
optfeature_header
if ! use qt6; then
optfeature "AVIF, HEIF and JpegXL image support" kde-frameworks/kimageformats[avif,heif,jpegxl]
fi
}