summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgy Yakovlev <gyakovlev@gentoo.org>2020-10-31 14:06:29 -0700
committerGeorgy Yakovlev <gyakovlev@gentoo.org>2020-10-31 14:14:36 -0700
commit052e291b89bd1ccba37c8ba8cca4c4df8e5266c5 (patch)
treee0e417781d3b22bd1da90eb0a68e92191fce0e87 /net-im/telegram-desktop
parentx11-themes/kvantum: add ~ppc64 keyword (diff)
downloadgentoo-052e291b89bd1ccba37c8ba8cca4c4df8e5266c5.tar.gz
gentoo-052e291b89bd1ccba37c8ba8cca4c4df8e5266c5.tar.bz2
gentoo-052e291b89bd1ccba37c8ba8cca4c4df8e5266c5.zip
net-im/telegram-desktop: add webrtc flag back to 2.4.5
Closes: https://bugs.gentoo.org/751481 Thanks-to: Joe Kappus Package-Manager: Portage-3.0.8, Repoman-3.0.2 Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
Diffstat (limited to 'net-im/telegram-desktop')
-rw-r--r--net-im/telegram-desktop/files/no-webrtc-build.patch96
-rw-r--r--net-im/telegram-desktop/metadata.xml1
-rw-r--r--net-im/telegram-desktop/telegram-desktop-2.4.5.ebuild16
3 files changed, 110 insertions, 3 deletions
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<tgcalls::VideoCaptureInterface> Instance::getVideoCapture() {
+ return result;
+ }
+ auto result = std::shared_ptr<tgcalls::VideoCaptureInterface>(
++ #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<std::atomic<int>> _maxSample;
++#ifndef DESKTOP_APP_DISABLE_WEBRTC_INTEGRATION
+ crl::object_on_thread<Impl> _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<std::atomic<int>>(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<VideoInput> GetVideoInputList() { return std::vector<VideoInput>(); };
++std::vector<AudioInput> GetAudioInputList() { return std::vector<AudioInput>(); };
++std::vector<AudioOutput> GetAudioOutputList() { return std::vector<AudioOutput>(); };
++}
diff --git a/net-im/telegram-desktop/metadata.xml b/net-im/telegram-desktop/metadata.xml
index f7ab5b26ef9f..4e1022a426dd 100644
--- a/net-im/telegram-desktop/metadata.xml
+++ b/net-im/telegram-desktop/metadata.xml
@@ -9,5 +9,6 @@
<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="lto">Enable Link Time Optimization (LTO / IPO)</flag>
+ <flag name="webrtc">WebRTC based video call support</flag>
</use>
</pkgmetadata>
diff --git a/net-im/telegram-desktop/telegram-desktop-2.4.5.ebuild b/net-im/telegram-desktop/telegram-desktop-2.4.5.ebuild
index 953d58208648..ca2ff2db3afa 100644
--- a/net-im/telegram-desktop/telegram-desktop-2.4.5.ebuild
+++ b/net-im/telegram-desktop/telegram-desktop-2.4.5.ebuild
@@ -17,7 +17,7 @@ SRC_URI="https://github.com/telegramdesktop/tdesktop/releases/download/v${PV}/${
LICENSE="BSD GPL-3-with-openssl-exception LGPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~ppc64"
-IUSE="+dbus enchant +gtk +hunspell libressl lto pulseaudio +spell +X"
+IUSE="+dbus enchant +gtk +hunspell libressl lto pulseaudio +spell +webrtc +X"
RDEPEND="
!net-im/telegram-desktop-bin
@@ -35,11 +35,9 @@ RDEPEND="
media-fonts/open-sans
media-libs/alsa-lib
media-libs/fontconfig:=
- media-libs/libjpeg-turbo:=
~media-libs/libtgvoip-2.4.4_p20201030[pulseaudio=]
media-libs/openal[alsa]
media-libs/opus:=
- ~media-libs/tg_owt-0_pre20201030[pulseaudio=]
media-video/ffmpeg:=[alsa,opus]
sys-libs/zlib[minizip]
virtual/libiconv
@@ -58,6 +56,10 @@ RDEPEND="
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_pre20201030[pulseaudio=]
+ )
"
DEPEND="
@@ -77,6 +79,7 @@ REQUIRED_USE="
spell? (
^^ ( enchant hunspell )
)
+ webrtc? ( !libressl )
"
S="${WORKDIR}/${MY_P}"
@@ -91,6 +94,12 @@ pkg_pretend() {
fi
}
+src_prepare() {
+ # conditional patching is bad, but we want vanilla telegram with webrtc.
+ use webrtc || local PATCHES=( "${FILESDIR}/no-webrtc-build.patch" )
+ cmake_src_prepare
+}
+
src_configure() {
local mycxxflags=(
-Wno-deprecated-declarations
@@ -116,6 +125,7 @@ src_configure() {
-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" '')
)