From d934827bf44b7cfcf6711964418148fa60877668 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 25 Nov 2020 22:39:15 +0000 Subject: gentoo resync : 25.11.2020 --- net-im/telegram-desktop/Manifest | 11 +- .../telegram-desktop/files/no-webrtc-build.patch | 96 ++++++++++++ net-im/telegram-desktop/metadata.xml | 2 + .../telegram-desktop-2.1.13.ebuild | 145 ----------------- .../telegram-desktop-2.2.0-r1.ebuild | 153 ------------------ .../telegram-desktop-2.4.11.ebuild | 174 +++++++++++++++++++++ .../telegram-desktop-2.4.7-r1.ebuild | 173 ++++++++++++++++++++ 7 files changed, 451 insertions(+), 303 deletions(-) create mode 100644 net-im/telegram-desktop/files/no-webrtc-build.patch delete mode 100644 net-im/telegram-desktop/telegram-desktop-2.1.13.ebuild delete mode 100644 net-im/telegram-desktop/telegram-desktop-2.2.0-r1.ebuild create mode 100644 net-im/telegram-desktop/telegram-desktop-2.4.11.ebuild create mode 100644 net-im/telegram-desktop/telegram-desktop-2.4.7-r1.ebuild (limited to 'net-im/telegram-desktop') diff --git a/net-im/telegram-desktop/Manifest b/net-im/telegram-desktop/Manifest index 93faf6a570c9..4c65e9de7d4f 100644 --- a/net-im/telegram-desktop/Manifest +++ b/net-im/telegram-desktop/Manifest @@ -1,5 +1,6 @@ -DIST tdesktop-2.1.13-full.tar.gz 36549505 BLAKE2B 48514be8add4ad4491c8e81a868f140228787ee489de7cd90faf31dbee959b0fb87cf2c844bf98c5b62fd6de8e32f504a6d19b071c56e6a4c0cd489d7b283818 SHA512 f28ae7c8c9a9eb8094fc52784742b470235234a3df7487902152858bc7c297b2dcfe5c8b939cdb9653a356b3835609e7289f53cdf7d5fb3f009823d3dbeb1bd8 -DIST tdesktop-2.2.0-full.tar.gz 36612169 BLAKE2B dcc9d81da5d99552bea3139d595c7f1aca75464a19be34c880a93d27ddd8a58a01510efe8fde31104b13d50e34e944b05406e21bc96995e85cb95283ff8de08a SHA512 2aeca83be7bc385bd7537d56ecf66996facedd0af588e743fedbb08c3158fc76436d6cf3b1fb5dd7c8d37b4471f739872ca54ba300aa1d0e0202e87c005703fd -EBUILD telegram-desktop-2.1.13.ebuild 3887 BLAKE2B e69436b8a7bd74f12886266745d9caf82e6a826812c10017aac43c0093a01c87177e159bd134a611e8625c935d36a89b0208b5f95febcf4c5ab15366438b805f SHA512 86789ea69657cb77596bb183bc6a2cfcf032bba02ae3c286966d56c4a9caeff37a8d37057bbdbce541d5c7d641a503cefdd05a264aa3e32778be48a05ca19944 -EBUILD telegram-desktop-2.2.0-r1.ebuild 4210 BLAKE2B 87b1389b88a0692c1b571f9faa73ccc727d5d6ae3cf749a841bfc060f25903158ffde32c554cc2f982c64eaf1822f1b5ba045d60e67e3642cdc6de83f18abf75 SHA512 a69630212397dfdaa7dfe404b3e49a827e78b71417893f366af798b72ecfccb62961cd0dafb03d5e58d025130e3651a64b056c231e1652161bab1cd774ce0ef9 -MISC metadata.xml 429 BLAKE2B fd7c38c1636548f8fbd5b20f3c64681fd2e379dd6c1b9f25f159b15d4a287fd8cefaf11aa655784176990130f39ec7fcc6eb246a89c06c48e9480a1232c195a8 SHA512 b2ef15fa658070bca96cd00cb2dfb7d43befe9f1c06c0a6f2a3d29e85e8a90e626e782235379e500332ca9ca81cccc761793140c8d34791c57b2942aa0c76a88 +AUX no-webrtc-build.patch 3656 BLAKE2B b8a8da9e4e6762b2901c2e3307a0289eb32447bc8439c4a6e0aac8c11a4636f7b3de5d14aa98ea806003d6856058f4aefb7bbeae67d5235437b3f0918ae4de4c SHA512 26893ffa97538dfd060373dd052637513c6805c1e6b149a63f1c329a0da4f541f7457832d54397f19d5a3d54e1fbe39628697648f170801ed459fa4d84cb75f4 +DIST tdesktop-2.4.11-full.tar.gz 36405312 BLAKE2B 7c4239d4a2193c910aeb918f40d4c196702bffb4236f7702a5573840b8d4a1a9183e3c91fd97c5d9e4ab5950d96e99b427746ffb18ed5bbef16b240dfc873e2e SHA512 b6452c39ea1b1b794c61ec2fc700356c9ee314250d73b895d297ad66602a93676d3cf74d695ac53965719ddb54da9e290f4f638bbf2e0fb21fec8995b6788a1c +DIST tdesktop-2.4.7-full.tar.gz 36355613 BLAKE2B 5b60bddd81d5472aaa303817be280604d5dcb4a5f7260c6b6fbd7ca075a46972adb4439e58e2f5b7877c10b3cb6420a7bc95ffe36ab0b3cf531a46758046f7c1 SHA512 712ab6896f89f7df0c7ac297039ee3b3532c159e17f66e4539b701a35d04d4709b558755d592d3cd91df541a2d2ca9f0485cf073c32f0b69a18848ab2ccd1993 +EBUILD telegram-desktop-2.4.11.ebuild 4958 BLAKE2B 2c28fe9a6e28f5eaac308e27dbff4a80ccb68419418c2786070e77ca020f11e6a4c6ea9188be4ac68247fcc39f9246f00ff367b55a1f97b791e2af47a98bc22a SHA512 0fd7bd8e2394ad123ca6d67125d6dd44a8ca575fc1109450e4d883ad8c0d777de603c7d3ae606e1d8681afc741b6d31c85446f2e37e600eda009b55f10f0f278 +EBUILD telegram-desktop-2.4.7-r1.ebuild 4879 BLAKE2B 424614c2d79701c27eaa4c4d384511467567a5540bc5bbe46155f9eef2ef8003f5b8436e6dd2bab7b66ea3baa9993675caf1d1b551436bcd4a76f6ea66ba95bc SHA512 8b2d9207c431c98aef31703a2f20364249a8d274e2240255463a72238ab78ba0de4a9b33b0edfadb3477d65118b1997445e63c0f8e1f20d9bb3789ce76b0a2e0 +MISC metadata.xml 601 BLAKE2B 75c42198ceb24840124f7073da7a3bc1a41107fe3a66850213f3015ac6197fcc98a23a2fefb9b7cfa4744ab19a7a3f1e13f0a32e5f0add9967e3018c0938103d SHA512 3df5604a16b0ab69d89e7e3667c603393ee5bfb41f8394072c681f6e4f5599d5d4e88bf2a0b3ea6bfbda7ffb3dd0551baa2ef33a1d3d4637d24fd2bb720d0a5f diff --git a/net-im/telegram-desktop/files/no-webrtc-build.patch b/net-im/telegram-desktop/files/no-webrtc-build.patch new file mode 100644 index 000000000000..8ae4113f4406 --- /dev/null +++ b/net-im/telegram-desktop/files/no-webrtc-build.patch @@ -0,0 +1,96 @@ +diff --git a/Telegram/SourceFiles/calls/calls_instance.cpp b/Telegram/SourceFiles/calls/calls_instance.cpp +index e99958109..bb7678d3c 100644 +--- a/Telegram/SourceFiles/calls/calls_instance.cpp ++++ b/Telegram/SourceFiles/calls/calls_instance.cpp +@@ -350,8 +350,11 @@ std::shared_ptr Instance::getVideoCapture() { + return result; + } + auto result = std::shared_ptr( ++ #ifndef DESKTOP_APP_DISABLE_WEBRTC_INTEGRATION + tgcalls::VideoCaptureInterface::Create( +- Core::App().settings().callVideoInputDeviceId().toStdString())); ++ Core::App().settings().callVideoInputDeviceId().toStdString()) ++ #endif ++ ); + _videoCapture = result; + return result; + } +diff --git Telegram/lib_webrtc/CMakeLists.txt b/CMakeLists.txt +index 47796f1..1f54c21 100644 +--- a/Telegram/lib_webrtc/CMakeLists.txt ++++ b/Telegram/lib_webrtc/CMakeLists.txt +@@ -14,8 +14,10 @@ target_precompile_headers(lib_webrtc PRIVATE ${src_loc}/webrtc/webrtc_pch.h) + nice_target_sources(lib_webrtc ${src_loc} + PRIVATE + webrtc/webrtc_audio_input_tester.cpp ++ webrtc/webrtc_audio_input_tester_dummy.cpp + webrtc/webrtc_audio_input_tester.h + webrtc/webrtc_media_devices.cpp ++ webrtc/webrtc_media_devices_dummy.cpp + webrtc/webrtc_media_devices.h + webrtc/webrtc_video_track.cpp + webrtc/webrtc_video_track.h +@@ -40,10 +42,14 @@ PUBLIC + if (DESKTOP_APP_DISABLE_WEBRTC_INTEGRATION) + remove_target_sources(lib_webrtc ${src_loc} + webrtc/webrtc_video_track.cpp ++ webrtc/webrtc_media_devices.cpp ++ webrtc/webrtc_audio_input_tester.cpp + ) + else() + remove_target_sources(lib_webrtc ${src_loc} + webrtc/webrtc_video_track_dummy.cpp ++ webrtc/webrtc_media_devices_dummy.cpp ++ webrtc/webrtc_audio_input_tester_dummy.cpp + ) + target_link_libraries(lib_webrtc + PRIVATE +diff --git Telegram/lib_webrtc/webrtc/webrtc_audio_input_tester.h b/webrtc/webrtc_audio_input_tester.h +index 1ae8d30..008df7e 100644 +--- a/Telegram/lib_webrtc/webrtc/webrtc_audio_input_tester.h ++++ b/Telegram/lib_webrtc/webrtc/webrtc_audio_input_tester.h +@@ -20,11 +20,13 @@ public: + [[nodiscard]] float getAndResetLevel(); + + private: ++#ifndef DESKTOP_APP_DISABLE_WEBRTC_INTEGRATION + class Impl; +- ++#endif + std::shared_ptr> _maxSample; ++#ifndef DESKTOP_APP_DISABLE_WEBRTC_INTEGRATION + crl::object_on_thread _impl; +- ++#endif + }; + + } // namespace Webrtc +diff --git Telegram/lib_webrtc/webrtc/webrtc_audio_input_tester_dummy.cpp b/webrtc/webrtc_audio_input_tester_dummy.cpp +new file mode 100644 +index 0000000..4e47eaa +--- a//dev/null ++++ b/Telegram/lib_webrtc/webrtc/webrtc_audio_input_tester_dummy.cpp +@@ -0,0 +1,11 @@ ++#include "webrtc/webrtc_audio_input_tester.h" ++ ++namespace Webrtc { ++AudioInputTester::AudioInputTester(const QString &deviceId) ++: _maxSample(std::make_shared>(0)) {} ++AudioInputTester::~AudioInputTester() {} ++void AudioInputTester::setDeviceId(const QString &deviceId) {}; ++float AudioInputTester::getAndResetLevel() { ++ return _maxSample->exchange(0) / float(INT16_MAX);\ ++} ++} +diff --git Telegram/lib_webrtc/webrtc/webrtc_media_devices_dummy.cpp b/webrtc/webrtc_media_devices_dummy.cpp +new file mode 100644 +index 0000000..8d5d245 +--- a/dev/null ++++ b/Telegram/lib_webrtc/webrtc/webrtc_media_devices_dummy.cpp +@@ -0,0 +1,6 @@ ++#include "webrtc/webrtc_media_devices.h" ++namespace Webrtc { ++std::vector GetVideoInputList() { return std::vector(); }; ++std::vector GetAudioInputList() { return std::vector(); }; ++std::vector GetAudioOutputList() { return std::vector(); }; ++} diff --git a/net-im/telegram-desktop/metadata.xml b/net-im/telegram-desktop/metadata.xml index 5eb4b12ceaa6..a4e65f12defb 100644 --- a/net-im/telegram-desktop/metadata.xml +++ b/net-im/telegram-desktop/metadata.xml @@ -8,5 +8,7 @@ Enable the app-text/aspell spell-checking backend Enable the app-text/hunspell spell-checking backend + Enable Link Time Optimization (LTO / IPO) + WebRTC based audio/video call support ( via media-libs/tg_owt ) diff --git a/net-im/telegram-desktop/telegram-desktop-2.1.13.ebuild b/net-im/telegram-desktop/telegram-desktop-2.1.13.ebuild deleted file mode 100644 index fdbdccb40dcb..000000000000 --- a/net-im/telegram-desktop/telegram-desktop-2.1.13.ebuild +++ /dev/null @@ -1,145 +0,0 @@ -# Copyright 2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) - -inherit cmake desktop flag-o-matic python-any-r1 xdg-utils - -MY_P="tdesktop-${PV}-full" - -DESCRIPTION="Official desktop client for Telegram" -HOMEPAGE="https://desktop.telegram.org" -SRC_URI="https://github.com/telegramdesktop/tdesktop/releases/download/v${PV}/${MY_P}.tar.gz" - -LICENSE="GPL-3-with-openssl-exception" -SLOT="0" -KEYWORDS="amd64 ~ppc64" -IUSE="+alsa +dbus enchant +hunspell libressl pulseaudio +spell wayland +X" - -RDEPEND=" - !net-im/telegram-desktop-bin - app-arch/lz4:= - app-arch/xz-utils - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - dev-libs/xxhash - dev-qt/qtcore:5 - dev-qt/qtgui:5[jpeg,png,wayland?,X(-)?] - dev-qt/qtimageformats:5 - dev-qt/qtnetwork:5 - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5[png,X(-)?] - media-fonts/open-sans - media-libs/fontconfig:= - >=media-libs/libtgvoip-2.4.4_p20200525[alsa?,pulseaudio?] - media-libs/openal[alsa?,pulseaudio?] - media-libs/opus:= - media-video/ffmpeg:=[alsa?,opus,pulseaudio?] - sys-libs/zlib[minizip] - virtual/libiconv - x11-libs/gtk+:3 - dbus? ( - dev-qt/qtdbus:5 - dev-libs/libdbusmenu-qt[qt5(+)] - ) - enchant? ( app-text/enchant:= ) - hunspell? ( >=app-text/hunspell-1.7:= ) - pulseaudio? ( media-sound/pulseaudio ) -" - -DEPEND=" - ${PYTHON_DEPS} - ${RDEPEND} - dev-cpp/range-v3 - =dev-cpp/ms-gsl-3* -" - -BDEPEND=" - >=dev-util/cmake-3.16 - virtual/pkgconfig -" - -REQUIRED_USE=" - || ( alsa pulseaudio ) - || ( X wayland ) - spell? ( - ^^ ( enchant hunspell ) - ) -" - -S="${WORKDIR}/${MY_P}" - -pkg_pretend() { - if has ccache ${FEATURES}; then - ewarn - 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_configure() { - local mycxxflags=( - -Wno-deprecated-declarations - -Wno-error=deprecated-declarations - -Wno-switch - ) - - append-cxxflags "${mycxxflags[@]}" - - # TODO: unbundle header-only libs, ofc telegram uses git versions... - # it fals with tl-expected-1.0.0, so we use bundled for now to avoid git rev snapshots - # EXPECTED VARIANT - local mycmakeargs=( - -DDESKTOP_APP_DISABLE_CRASH_REPORTS=ON - -DDESKTOP_APP_USE_GLIBC_WRAPS=OFF - -DDESKTOP_APP_USE_PACKAGED=ON - -DDESKTOP_APP_USE_PACKAGED_EXPECTED=OFF - -DDESKTOP_APP_USE_PACKAGED_RLOTTIE=OFF - -DDESKTOP_APP_USE_PACKAGED_VARIANT=OFF - -DTDESKTOP_LAUNCHER_BASENAME="${PN}" - -DDESKTOP_APP_DISABLE_DBUS_INTEGRATION="$(usex dbus OFF ON)" - -DDESKTOP_APP_DISABLE_SPELLCHECK="$(usex spell OFF ON)" # enables hunspell (recommended) - -DDESKTOP_APP_USE_ENCHANT="$(usex enchant ON OFF)" # enables enchant and disables hunspell - ) - - 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_desktop_database_update - xdg_icon_cache_update - xdg_mimeinfo_database_update -} - -pkg_postrm() { - xdg_desktop_database_update - xdg_icon_cache_update - xdg_mimeinfo_database_update -} diff --git a/net-im/telegram-desktop/telegram-desktop-2.2.0-r1.ebuild b/net-im/telegram-desktop/telegram-desktop-2.2.0-r1.ebuild deleted file mode 100644 index 2db700903fcd..000000000000 --- a/net-im/telegram-desktop/telegram-desktop-2.2.0-r1.ebuild +++ /dev/null @@ -1,153 +0,0 @@ -# Copyright 2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) - -inherit cmake desktop flag-o-matic python-any-r1 xdg-utils - -MY_P="tdesktop-${PV}-full" - -DESCRIPTION="Official desktop client for Telegram" -HOMEPAGE="https://desktop.telegram.org" -SRC_URI="https://github.com/telegramdesktop/tdesktop/releases/download/v${PV}/${MY_P}.tar.gz" - -LICENSE="GPL-3-with-openssl-exception" -SLOT="0" -KEYWORDS="~amd64 ~ppc64" -IUSE="+alsa +dbus enchant +gtk +hunspell libressl pulseaudio +spell +X" - -RDEPEND=" - !net-im/telegram-desktop-bin - app-arch/lz4:= - app-arch/xz-utils - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - dev-libs/xxhash - dev-qt/qtcore:5 - dev-qt/qtgui:5[dbus?,jpeg,png,wayland,X(-)?] - dev-qt/qtimageformats:5 - dev-qt/qtnetwork:5 - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5[png,X(-)?] - media-fonts/open-sans - media-libs/fontconfig:= - ~media-libs/libtgvoip-2.4.4_p20200704[alsa?,pulseaudio?] - media-libs/openal[alsa?,pulseaudio?] - media-libs/opus:= - media-video/ffmpeg:=[alsa?,opus,pulseaudio?] - sys-libs/zlib[minizip] - virtual/libiconv - x11-libs/libxcb:= - dbus? ( - dev-qt/qtdbus:5 - dev-libs/libdbusmenu-qt[qt5(+)] - ) - enchant? ( app-text/enchant:= ) - gtk? ( - dev-libs/glib:2 - x11-libs/gdk-pixbuf:2[jpeg,X?] - x11-libs/gtk+:3[X?] - x11-libs/libX11 - ) - hunspell? ( >=app-text/hunspell-1.7:= ) - pulseaudio? ( media-sound/pulseaudio ) -" - -DEPEND=" - ${PYTHON_DEPS} - ${RDEPEND} - dev-cpp/range-v3 - =dev-cpp/ms-gsl-3* -" - -BDEPEND=" - >=dev-util/cmake-3.16 - virtual/pkgconfig -" - -REQUIRED_USE=" - || ( alsa pulseaudio ) - spell? ( - ^^ ( enchant hunspell ) - ) -" - -S="${WORKDIR}/${MY_P}" - -pkg_pretend() { - if has ccache ${FEATURES}; then - ewarn - 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_configure() { - local mycxxflags=( - -Wno-deprecated-declarations - -Wno-error=deprecated-declarations - -Wno-switch - ) - - append-cxxflags "${mycxxflags[@]}" - - # TODO: unbundle header-only libs, ofc telegram uses git versions... - # it fals with tl-expected-1.0.0, so we use bundled for now to avoid git rev snapshots - # EXPECTED VARIANT - # gtk is really needed for image copy-paste due to https://bugreports.qt.io/browse/QTBUG-56595 - local mycmakeargs=( - -DDESKTOP_APP_DISABLE_CRASH_REPORTS=ON - -DDESKTOP_APP_USE_GLIBC_WRAPS=OFF - -DDESKTOP_APP_USE_PACKAGED=ON - -DDESKTOP_APP_USE_PACKAGED_EXPECTED=OFF - -DDESKTOP_APP_USE_PACKAGED_RLOTTIE=OFF - -DDESKTOP_APP_USE_PACKAGED_VARIANT=OFF - -DTDESKTOP_DISABLE_GTK_INTEGRATION="$(usex gtk OFF ON)" - -DTDESKTOP_LAUNCHER_BASENAME="${PN}" - -DDESKTOP_APP_DISABLE_DBUS_INTEGRATION="$(usex dbus OFF ON)" - -DDESKTOP_APP_DISABLE_SPELLCHECK="$(usex spell OFF ON)" # enables hunspell (recommended) - -DDESKTOP_APP_USE_ENCHANT="$(usex enchant ON OFF)" # enables enchant and disables hunspell - ) - - 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_desktop_database_update - xdg_icon_cache_update - xdg_mimeinfo_database_update - use gtk || einfo "enable \'gtk\' useflag if you have image copy-paste problems" -} - -pkg_postrm() { - xdg_desktop_database_update - xdg_icon_cache_update - xdg_mimeinfo_database_update -} diff --git a/net-im/telegram-desktop/telegram-desktop-2.4.11.ebuild b/net-im/telegram-desktop/telegram-desktop-2.4.11.ebuild new file mode 100644 index 000000000000..7f66f02025aa --- /dev/null +++ b/net-im/telegram-desktop/telegram-desktop-2.4.11.ebuild @@ -0,0 +1,174 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7,8,9} ) + +inherit cmake desktop flag-o-matic ninja-utils python-any-r1 xdg-utils + +MY_P="tdesktop-${PV}-full" + +DESCRIPTION="Official desktop client for Telegram" +HOMEPAGE="https://desktop.telegram.org" +SRC_URI="https://github.com/telegramdesktop/tdesktop/releases/download/v${PV}/${MY_P}.tar.gz" + +LICENSE="BSD GPL-3-with-openssl-exception LGPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~ppc64" +IUSE="+dbus enchant +gtk +hunspell libressl lto pulseaudio +spell wayland +webrtc +X" + +RDEPEND=" + !net-im/telegram-desktop-bin + app-arch/lz4:= + app-arch/xz-utils + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + dev-libs/xxhash + dev-qt/qtcore:5 + dev-qt/qtgui:5[dbus?,jpeg,png,wayland?,X(-)?] + dev-qt/qtimageformats:5 + dev-qt/qtnetwork:5 + dev-qt/qtsvg:5 + dev-qt/qtwidgets:5[png,X(-)?] + media-fonts/open-sans + media-libs/alsa-lib + media-libs/fontconfig:= + ~media-libs/libtgvoip-2.4.4_p20201030[pulseaudio=] + media-libs/openal[alsa] + media-libs/opus:= + media-video/ffmpeg:=[alsa,opus] + sys-libs/zlib[minizip] + virtual/libiconv + x11-libs/libxcb:= + dbus? ( + dev-qt/qtdbus:5 + dev-libs/libdbusmenu-qt[qt5(+)] + ) + enchant? ( app-text/enchant:= ) + gtk? ( + dev-libs/glib:2 + x11-libs/gdk-pixbuf:2[jpeg] + x11-libs/gtk+:3[X?] + x11-libs/libX11 + ) + hunspell? ( >=app-text/hunspell-1.7:= ) + !pulseaudio? ( media-sound/apulse[sdk] ) + pulseaudio? ( media-sound/pulseaudio ) + webrtc? ( + media-libs/libjpeg-turbo:= + ~media-libs/tg_owt-0_pre20201112[pulseaudio=] + ) +" + +DEPEND=" + ${PYTHON_DEPS} + ${RDEPEND} + dev-cpp/range-v3 + =dev-cpp/ms-gsl-3* +" + +BDEPEND=" + >=dev-util/cmake-3.16 + virtual/pkgconfig + amd64? ( dev-lang/yasm ) +" + +REQUIRED_USE=" + spell? ( + ^^ ( enchant hunspell ) + ) + webrtc? ( !libressl ) +" + +S="${WORKDIR}/${MY_P}" + +pkg_pretend() { + if has ccache ${FEATURES}; then + ewarn + 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() { + # conditional patching is bad, but we want vanilla telegram with webrtc. + use webrtc || local PATCHES=( "${FILESDIR}/no-webrtc-build.patch" ) + + # no explicit toggle #752417 + sed -i 's/DESKTOP_APP_USE_PACKAGED/NO_ONE_WILL_EVER_SET_THIS/' \ + cmake/external/rlottie/CMakeLists.txt || die + + cmake_src_prepare +} + +src_configure() { + local mycxxflags=( + -Wno-deprecated-declarations + -Wno-error=deprecated-declarations + -Wno-switch + -Wno-unknown-warning-option + ) + + append-cxxflags "${mycxxflags[@]}" + + # TODO: unbundle header-only libs, ofc telegram uses git versions... + # it fals with tl-expected-1.0.0, so we use bundled for now to avoid git rev snapshots + # EXPECTED VARIANT + # gtk is really needed for image copy-paste due to https://bugreports.qt.io/browse/QTBUG-56595 + local mycmakeargs=( + -DCMAKE_DISABLE_FIND_PACKAGE_tl-expected=ON # header only lib, some git version. prevents warnings. + -DDESKTOP_APP_DISABLE_CRASH_REPORTS=ON + -DDESKTOP_APP_USE_GLIBC_WRAPS=OFF + -DDESKTOP_APP_USE_PACKAGED=ON + -DDESKTOP_APP_USE_PACKAGED_FONTS=ON + -DTDESKTOP_DISABLE_GTK_INTEGRATION="$(usex gtk OFF ON)" + -DTDESKTOP_LAUNCHER_BASENAME="${PN}" + -DDESKTOP_APP_DISABLE_DBUS_INTEGRATION="$(usex dbus OFF ON)" + -DDESKTOP_APP_DISABLE_SPELLCHECK="$(usex spell OFF ON)" # enables hunspell (recommended) + -DDESKTOP_APP_DISABLE_WAYLAND_INTEGRATION="$(usex wayland OFF ON)" + -DDESKTOP_APP_DISABLE_WEBRTC_INTEGRATION="$(usex webrtc OFF ON)" + -DDESKTOP_APP_USE_ENCHANT="$(usex enchant ON OFF)" # enables enchant and disables hunspell + $(usex lto "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON" '') + ) + + 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_desktop_database_update + xdg_icon_cache_update + xdg_mimeinfo_database_update + use gtk || einfo "enable 'gtk' useflag if you have image copy-paste problems" +} + +pkg_postrm() { + xdg_desktop_database_update + xdg_icon_cache_update + xdg_mimeinfo_database_update +} diff --git a/net-im/telegram-desktop/telegram-desktop-2.4.7-r1.ebuild b/net-im/telegram-desktop/telegram-desktop-2.4.7-r1.ebuild new file mode 100644 index 000000000000..57c34aa583f0 --- /dev/null +++ b/net-im/telegram-desktop/telegram-desktop-2.4.7-r1.ebuild @@ -0,0 +1,173 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7,8,9} ) + +inherit cmake desktop flag-o-matic ninja-utils python-any-r1 xdg-utils + +MY_P="tdesktop-${PV}-full" + +DESCRIPTION="Official desktop client for Telegram" +HOMEPAGE="https://desktop.telegram.org" +SRC_URI="https://github.com/telegramdesktop/tdesktop/releases/download/v${PV}/${MY_P}.tar.gz" + +LICENSE="BSD GPL-3-with-openssl-exception LGPL-2+" +SLOT="0" +KEYWORDS="amd64 ~ppc64" +IUSE="+dbus enchant +gtk +hunspell libressl lto pulseaudio +spell +webrtc +X" + +RDEPEND=" + !net-im/telegram-desktop-bin + app-arch/lz4:= + app-arch/xz-utils + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + dev-libs/xxhash + dev-qt/qtcore:5 + dev-qt/qtgui:5[dbus?,jpeg,png,wayland,X(-)?] + dev-qt/qtimageformats:5 + dev-qt/qtnetwork:5 + dev-qt/qtsvg:5 + dev-qt/qtwidgets:5[png,X(-)?] + media-fonts/open-sans + media-libs/alsa-lib + media-libs/fontconfig:= + ~media-libs/libtgvoip-2.4.4_p20201030[pulseaudio=] + media-libs/openal[alsa] + media-libs/opus:= + media-video/ffmpeg:=[alsa,opus] + sys-libs/zlib[minizip] + virtual/libiconv + x11-libs/libxcb:= + dbus? ( + dev-qt/qtdbus:5 + dev-libs/libdbusmenu-qt[qt5(+)] + ) + enchant? ( app-text/enchant:= ) + gtk? ( + dev-libs/glib:2 + x11-libs/gdk-pixbuf:2[jpeg] + x11-libs/gtk+:3[X?] + x11-libs/libX11 + ) + hunspell? ( >=app-text/hunspell-1.7:= ) + !pulseaudio? ( media-sound/apulse[sdk] ) + pulseaudio? ( media-sound/pulseaudio ) + webrtc? ( + media-libs/libjpeg-turbo:= + ~media-libs/tg_owt-0_pre20201105[pulseaudio=] + ) +" + +DEPEND=" + ${PYTHON_DEPS} + ${RDEPEND} + dev-cpp/range-v3 + =dev-cpp/ms-gsl-3* +" + +BDEPEND=" + >=dev-util/cmake-3.16 + virtual/pkgconfig + amd64? ( dev-lang/yasm ) +" + +REQUIRED_USE=" + spell? ( + ^^ ( enchant hunspell ) + ) + webrtc? ( !libressl ) +" + +S="${WORKDIR}/${MY_P}" + +pkg_pretend() { + if has ccache ${FEATURES}; then + ewarn + 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() { + # conditional patching is bad, but we want vanilla telegram with webrtc. + use webrtc || local PATCHES=( "${FILESDIR}/no-webrtc-build.patch" ) + + # no explicit toggle #752417 + sed -i 's/DESKTOP_APP_USE_PACKAGED/NO_ONE_WILL_EVER_SET_THIS/' \ + cmake/external/rlottie/CMakeLists.txt || die + + cmake_src_prepare +} + +src_configure() { + local mycxxflags=( + -Wno-deprecated-declarations + -Wno-error=deprecated-declarations + -Wno-switch + -Wno-unknown-warning-option + ) + + append-cxxflags "${mycxxflags[@]}" + + # TODO: unbundle header-only libs, ofc telegram uses git versions... + # it fals with tl-expected-1.0.0, so we use bundled for now to avoid git rev snapshots + # EXPECTED VARIANT + # gtk is really needed for image copy-paste due to https://bugreports.qt.io/browse/QTBUG-56595 + local mycmakeargs=( + -DCMAKE_DISABLE_FIND_PACKAGE_tl-expected=ON # header only lib, some git version. prevents warnings. + -DDESKTOP_APP_DISABLE_CRASH_REPORTS=ON + -DDESKTOP_APP_USE_GLIBC_WRAPS=OFF + -DDESKTOP_APP_USE_PACKAGED=ON + -DDESKTOP_APP_USE_PACKAGED_FONTS=ON + -DTDESKTOP_DISABLE_GTK_INTEGRATION="$(usex gtk OFF ON)" + -DTDESKTOP_LAUNCHER_BASENAME="${PN}" + -DDESKTOP_APP_DISABLE_DBUS_INTEGRATION="$(usex dbus OFF ON)" + -DDESKTOP_APP_DISABLE_SPELLCHECK="$(usex spell OFF ON)" # enables hunspell (recommended) + -DDESKTOP_APP_DISABLE_WEBRTC_INTEGRATION="$(usex webrtc OFF ON)" + -DDESKTOP_APP_USE_ENCHANT="$(usex enchant ON OFF)" # enables enchant and disables hunspell + $(usex lto "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON" '') + ) + + 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_desktop_database_update + xdg_icon_cache_update + xdg_mimeinfo_database_update + use gtk || einfo "enable 'gtk' useflag if you have image copy-paste problems" +} + +pkg_postrm() { + xdg_desktop_database_update + xdg_icon_cache_update + xdg_mimeinfo_database_update +} -- cgit v1.2.3