forgor that
This commit is contained in:
parent
2a34c396c2
commit
62993c74c5
9 changed files with 466 additions and 171 deletions
|
|
@ -1 +0,0 @@
|
|||
DIST kotatogram-desktop-1.4.9-full.tar.gz 50300404 SHA256 27d99f642939a9501bafe633c00b39983284f3fc7d84f0944f95adcbe9182d03 SHA512 eb46a6ea5e218ce0cffbc6a177a23d2d0ab1f133a412c72283715fbd3a9a2f51e27b03c5780080ab8717d7776e1f2f1e709495f4484198f9306c793a813021b5 WHIRLPOOL 803c2fa4553947f25aaf7486fe6b38349af96da97f6f5469ac0d093c878fb2a7de89bb61d514fcffd74044169ac2d1df3c9dbdee63497dbdb5ac2856aa1244c2
|
||||
|
|
@ -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()) {
|
||||
|
|
@ -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}
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -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)
|
||||
|
|
@ -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;
|
||||
|
|
@ -1 +0,0 @@
|
|||
kotatogram-desktop-9999.ebuild
|
||||
|
|
@ -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>
|
||||
|
|
@ -1 +0,0 @@
|
|||
telegram-desktop-4.14.2.ebuild
|
||||
233
net-im/telegram-desktop/telegram-desktop-4.14.0.ebuild
Normal file
233
net-im/telegram-desktop/telegram-desktop-4.14.0.ebuild
Normal 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
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
telegram-desktop-4.14.2.ebuild
|
||||
233
net-im/telegram-desktop/telegram-desktop-4.14.1.ebuild
Normal file
233
net-im/telegram-desktop/telegram-desktop-4.14.1.ebuild
Normal 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
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue