aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharlie Li <vishwin@FreeBSD.org>2021-05-12 04:21:02 +0000
committerCharlie Li <vishwin@FreeBSD.org>2021-05-14 02:48:39 +0000
commit80762637bb7d34dcc3e8049b869db0908f404b2c (patch)
tree687bdce316ce08221df21e1e6d9eaa7e09e7f3af
parent787986542265d73c9bf89573cbb53acfd59ba635 (diff)
downloadports-80762637bb7d34dcc3e8049b869db0908f404b2c.tar.gz
ports-80762637bb7d34dcc3e8049b869db0908f404b2c.zip
net-im/telegram-desktop: fix build with GTK option
Telegram now includes a WebView feature when GTK is enabled, which uses www/webkit2-gtk3. While here, fix the following minor items: - allow building with Python newer than 3.7 - devel/dee is not needed for build, remove - clean up USES= syntax in the GTK option Obtained from: https://github.com/desktop-app/lib_webview/commit/0b4100d7cecc4e748c51f3f51ebfd1392ec3978a https://github.com/desktop-app/lib_webview/commit/48d70e5258754b2415b07c88f0376212596e09a7 Approved by: Henry Hu <henry.hu.sh@gmail.com> (maintainer), arrowd (mentor), fluffy (mentor) PR: 255719 Differential Revision: https://reviews.freebsd.org/D30224
-rw-r--r--net-im/telegram-desktop/Makefile11
-rw-r--r--net-im/telegram-desktop/files/patch-Telegram_lib__webview_webview_platform_linux_webview__linux__webkit__gtk.cpp20
-rw-r--r--net-im/telegram-desktop/files/patch-Telegram_lib__webview_webview_platform_linux_webview__linux__webkit__gtk.h13
3 files changed, 36 insertions, 8 deletions
diff --git a/net-im/telegram-desktop/Makefile b/net-im/telegram-desktop/Makefile
index ddbc4ec6c8e9..b635bbefee83 100644
--- a/net-im/telegram-desktop/Makefile
+++ b/net-im/telegram-desktop/Makefile
@@ -16,7 +16,6 @@ NOT_FOR_ARCHS= powerpc powerpc64 powerpcspe
NOT_FOR_ARCHS_REASON= Only little endian is supported
BUILD_DEPENDS= alsa-lib>0:audio/alsa-lib \
- dee>0:devel/dee \
microsoft-gsl>0:devel/microsoft-gsl \
pulseaudio>0:audio/pulseaudio \
range-v3>0:devel/range-v3 \
@@ -40,7 +39,7 @@ LIB_DEPENDS= libavformat.so:multimedia/ffmpeg \
libxxhash.so:devel/xxhash
USES= cmake compiler:c++17-lang desktop-file-utils gl \
- gnome pkgconfig python:3.7,build qt:5 ssl xorg
+ gnome pkgconfig python:3.7+,build qt:5 ssl xorg
USE_GITHUB= nodefault
GH_ACCOUNT= telegramdesktop
@@ -81,16 +80,12 @@ GTK_DESC= Gtk integration (Use Gtk dialogs, etc.)
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
GTK_CMAKE_BOOL_OFF= DESKTOP_APP_DISABLE_GTK_INTEGRATION
+GTK_LIB_DEPENDS= libwebkit2gtk-4.0.so:www/webkit2-gtk3
+GTK_USE= GNOME=gtk30
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
# Telegram asks each custom build to have its own API ID and hash.
TELEGRAM_API_HASH= 20a3432aab43f24bb4460fceac5ba38d
TELEGRAM_API_ID= 601761
-.include <bsd.port.options.mk>
-
-.if ${PORT_OPTIONS:MGTK}
-USE_GNOME+= gtk30
-.endif
-
.include <bsd.port.mk>
diff --git a/net-im/telegram-desktop/files/patch-Telegram_lib__webview_webview_platform_linux_webview__linux__webkit__gtk.cpp b/net-im/telegram-desktop/files/patch-Telegram_lib__webview_webview_platform_linux_webview__linux__webkit__gtk.cpp
new file mode 100644
index 000000000000..55842e691436
--- /dev/null
+++ b/net-im/telegram-desktop/files/patch-Telegram_lib__webview_webview_platform_linux_webview__linux__webkit__gtk.cpp
@@ -0,0 +1,20 @@
+--- Telegram/lib_webview/webview/platform/linux/webview_linux_webkit_gtk.cpp.orig 2021-04-14 05:42:51 UTC
++++ Telegram/lib_webview/webview/platform/linux/webview_linux_webkit_gtk.cpp
+@@ -26,7 +26,7 @@ bool Resolve() {
+ auto &gtk = BaseGtkIntegration::Instance()->library();
+
+ auto webkit2gtk = QLibrary();
+- const auto result = LOAD_GTK_SYMBOL(gtk, gtk_widget_get_type)
++ const auto result = LOAD_GTK_SYMBOL(gtk, gtk_widget_get_type)
+ && LOAD_GTK_SYMBOL(gtk, gtk_widget_grab_focus)
+ && LOAD_GTK_SYMBOL(gtk, gtk_container_get_type)
+ && LOAD_GTK_SYMBOL(gtk, gtk_container_add)
+@@ -38,7 +38,7 @@ bool Resolve() {
+ && LOAD_GTK_SYMBOL(gtk, gtk_window_get_type)
+ && LOAD_GTK_SYMBOL(gtk, gtk_window_set_decorated)
+ && LOAD_GTK_SYMBOL(gtk, gdk_x11_window_get_xid)
+- && base::Platform::Gtk::LoadLibrary(webkit2gtk, "libwebkit2gtk-4.0.so.37", 0)
++ && base::Platform::Gtk::LoadGtkLibrary(webkit2gtk, "libwebkit2gtk-4.0.so.37")
+ && LOAD_GTK_SYMBOL(webkit2gtk, webkit_web_view_new)
+ && LOAD_GTK_SYMBOL(webkit2gtk, webkit_web_view_get_type)
+ && LOAD_GTK_SYMBOL(webkit2gtk, webkit_web_view_get_user_content_manager)
diff --git a/net-im/telegram-desktop/files/patch-Telegram_lib__webview_webview_platform_linux_webview__linux__webkit__gtk.h b/net-im/telegram-desktop/files/patch-Telegram_lib__webview_webview_platform_linux_webview__linux__webkit__gtk.h
new file mode 100644
index 000000000000..64864b80978b
--- /dev/null
+++ b/net-im/telegram-desktop/files/patch-Telegram_lib__webview_webview_platform_linux_webview__linux__webkit__gtk.h
@@ -0,0 +1,13 @@
+--- Telegram/lib_webview/webview/platform/linux/webview_linux_webkit_gtk.h.orig 2021-04-14 05:42:51 UTC
++++ Telegram/lib_webview/webview/platform/linux/webview_linux_webkit_gtk.h
+@@ -11,9 +11,9 @@
+ extern "C" {
+ #undef signals
+ #include <JavaScriptCore/JavaScript.h>
++#include <gdk/gdkx.h>
+ #include <gtk/gtk.h>
+ #include <webkit2/webkit2.h>
+-#include <X11/Xlib.h>
+ #define signals public
+ } // extern "C"
+