git: f41ed7ed2222 - main - net/remmina: fix build with GVNC if gtk-vnc build without PULSEAUDIO and sort out dependencies
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 01 Mar 2024 08:33:37 UTC
The branch main has been updated by vvd:
URL: https://cgit.FreeBSD.org/ports/commit/?id=f41ed7ed222228ae1b76bfc88b17a3b1eaaee1be
commit f41ed7ed222228ae1b76bfc88b17a3b1eaaee1be
Author: Vladimir Druzenko <vvd@FreeBSD.org>
AuthorDate: 2024-03-01 08:15:28 +0000
Commit: Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2024-03-01 08:33:19 +0000
net/remmina: fix build with GVNC if gtk-vnc build without PULSEAUDIO and sort out dependencies
1. If net/gtk-vnc build with PULSEAUDIO off and GVNC option is on then remmina-plugin-gvnc.so plugin doesn't build and stage of the net/remmina fails:
pkg-static: Unable to access file /usr/ports/net/remmina/work-default/stage/usr/local/lib/remmina/plugins/remmina-plugin-gvnc.so:No such file or directory
pkg-static: Unable to access file /usr/ports/net/remmina/work-default/stage/usr/local/share/icons/hicolor/scalable/emblems/org.remmina.Remmina-gvnc-symbolic.svg:No such file or directory
2. Port have 2 options with same name GVNC.
3. Options GVNC and VNC are mixed up.
4. Removed unnecessary dependencies (from atk, pcre, jpeg, harfbuzz, gnutls, xkbfile and etc).
5. Moved dependency from libsoup to WWW only.
6. Replaced dependency from libfreerdp2.so (not linked) with libfreerdp-client2.so and libwinpr2.so.2 (linked).
Reviewed by: fernape (maintainer)
Approved by: fernape (maintainer), arrowd (mentor), tcberner (mentor)
Differential Revision: https://reviews.freebsd.org/D44152
---
net/remmina/Makefile | 35 +++++++++----------
net/remmina/files/extra-patch-nopulse | 66 +++++++++++++++++++++++++++++++++++
2 files changed, 83 insertions(+), 18 deletions(-)
diff --git a/net/remmina/Makefile b/net/remmina/Makefile
index 2ae5b54d9d83..c58ec23c91f3 100644
--- a/net/remmina/Makefile
+++ b/net/remmina/Makefile
@@ -1,5 +1,6 @@
PORTNAME= remmina
DISTVERSION= 1.4.35
+PORTREVISION= 1
CATEGORIES= net gnome
MAINTAINER= fernape@FreeBSD.org
@@ -12,9 +13,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS= libappindicator3.so:devel/libappindicator \
libcurl.so:ftp/curl \
libjson-glib-1.0.so:devel/json-glib \
- libpcre2-8.so:devel/pcre2 \
libsodium.so:security/libsodium \
- libsoup-2.4.so:devel/libsoup \
libwayland-client.so:graphics/wayland
FLAVORS= default lite
@@ -22,30 +21,29 @@ lite_PKGNAMESUFFIX= -lite
lite_DESCR= ${.CURDIR}/pkg-descr-lite
USES= cmake compiler:c11 desktop-file-utils gettext gnome localbase:ldflags pathfix \
- pkgconfig shared-mime-info ssl shebangfix xorg
+ pkgconfig shared-mime-info shebangfix ssl xorg
USE_GITLAB= yes
GL_ACCOUNT= Remmina
GL_PROJECT= Remmina
GL_TAGNAME= 2a455eadd6462457d08c2d066c5c245e0dee3bf9
-USE_GNOME= atk cairo gdkpixbuf2 glib20 gtk30 pango
+USE_GNOME= cairo gdkpixbuf2 glib20 gtk30 pango
USE_XORG= ice sm x11 xext
SHEBANG_FILES= data/desktop/remmina-file-wrapper.in
bash_CMD= ${SH}
-CMAKE_ARGS= -DWITH_APPINDICATOR:BOOL=false \
- -DLIBSOUP_LIBRARY=/usr/local/lib/libsoup-2.4.so
+CMAKE_OFF= WITH_APPINDICATOR
CONFLICTS_INSTALL= remmina-plugin*
-OPTIONS_DEFINE= AVAHI CUPS GCRYPT GVNC NLS PYTHON SSH TERM
+OPTIONS_DEFINE= AVAHI CUPS GCRYPT NLS PYTHON SSH TERM
OPTIONS_DEFAULT= AVAHI CUPS GCRYPT NLS SSH TERM \
- EXEC RDP SECRET SPICE VNC WWW BASH
+ EXEC PULSEAUDIO RDP SECRET SPICE VNC WWW BASH
OPTIONS_GROUP= PLUGINS
-OPTIONS_GROUP_PLUGINS= EXEC GVNC KWALLET RDP SECRET SPICE VNC WWW
+OPTIONS_GROUP_PLUGINS= EXEC GVNC KWALLET PULSEAUDIO RDP SECRET SPICE VNC WWW
OPTIONS_SINGLE= SHELL
OPTIONS_SINGLE_SHELL= BASH ZSH
OPTIONS_SUB= yes
@@ -60,6 +58,7 @@ BASH_DESC= Use BASH for shell wrapper scripts
EXEC_DESC= Plugin to execute a command
GCRYPT_DESC= Build with libgcrypt support for password encryption
GVNC_DESC= Build with Gnome VNC support
+PULSEAUDIO_DESC= PulseAudio sound support for GVNC: require net/gtk-vnc build with PULSEAUDIO
PYTHON_DESC= Build with support for Python plugins
RDP_DESC= Remote Desktop Protocol plugin
SECRET_DESC= GNOME Keyring plugin
@@ -85,7 +84,7 @@ GCRYPT_LIB_DEPENDS= libgcrypt.so:security/libgcrypt
GCRYPT_CMAKE_BOOL= WITH_GCRYPT
GVNC_LIB_DEPENDS= libgtk-vnc-2.0.so:net/gtk-vnc
-GVNC_CMAKE_BOOL= WITH_LIBVNCSERVER
+GVNC_CMAKE_BOOL= WITH_GVNC
KWALLET_USES= kde:5 qt:5
KWALLET_USE= kde=wallet qt=buildtools:build,core,gui,qmake:build
@@ -93,10 +92,13 @@ KWALLET_CMAKE_BOOL= WITH_KF5WALLET
NLS_CMAKE_BOOL= WITH_TRANSLATIONS
+PULSEAUDIO_EXTRA_PATCHES_OFF= ${FILESDIR}/extra-patch-nopulse
+
PYTHON_USES= python
PYTHON_CMAKE_BOOL= WITH_PYTHONLIBS
-RDP_LIB_DEPENDS= libfreerdp2.so:net/freerdp libxkbfile.so:x11/libxkbfile
+RDP_LIB_DEPENDS= libfreerdp-client2.so:net/freerdp \
+ libwinpr2.so.2:net/freerdp
SECRET_LIB_DEPENDS= libsecret-1.so:security/libsecret
SECRET_RUN_DEPENDS= gnome-keyring:security/gnome-keyring
@@ -112,16 +114,13 @@ SSH_LDFLAGS= -fstack-protector
TERM_USE= gnome=vte3
TERM_CMAKE_BOOL= WITH_VTE
-VNC_LIB_DEPENDS= libgnutls.so:security/gnutls \
- libvncserver.so:net/libvncserver
-VNC_USES= jpeg
-VNC_CMAKE_BOOL= WITH_GVNC
+VNC_LIB_DEPENDS= libvncserver.so:net/libvncserver
+VNC_CMAKE_BOOL= WITH_LIBVNCSERVER
-WWW_LIB_DEPENDS= libharfbuzz.so:print/harfbuzz \
- libsoup-2.4.so:devel/libsoup \
+WWW_LIB_DEPENDS= libsoup-2.4.so:devel/libsoup \
libwebkit2gtk-4.0.so:www/webkit2-gtk3
-
WWW_CMAKE_BOOL= WITH_WEBKIT2GTK
+WWW_CMAKE_ON= -DLIBSOUP_LIBRARY=${LOCALBASE}/lib/libsoup-2.4.so
ZSH_RUN_DEPENDS= zsh:shells/zsh
ZSH_VARS= SH_BIN=${PREFIX}/bin/zsh
diff --git a/net/remmina/files/extra-patch-nopulse b/net/remmina/files/extra-patch-nopulse
new file mode 100644
index 000000000000..96addddfac3a
--- /dev/null
+++ b/net/remmina/files/extra-patch-nopulse
@@ -0,0 +1,66 @@
+--- cmake/FindGTK-VNC.cmake.orig 2024-02-23 14:29:23 UTC
++++ cmake/FindGTK-VNC.cmake
+@@ -60,8 +60,8 @@ find_library(GTK-VNC_LIB gtk-vnc-2.0
+ ${COMMON_LIB_DIR}
+ )
+
+-if(GVNC_LIB AND GVNCPULSE_LIB AND GTK-VNC_LIB)
+- set(GTK-VNC_LIBRARIES ${GVNC_LIB} ${GVNCPULSE_LIB} ${GTK-VNC_LIB})
++if(GVNC_LIB AND GTK-VNC_LIB)
++ set(GTK-VNC_LIBRARIES ${GVNC_LIB} ${GTK-VNC_LIB})
+ message(STATUS "GTK-VNC-Libs: ${GTK-VNC_LIBRARIES}")
+ endif()
+
+@@ -86,8 +86,8 @@ find_path(GTK-VNC_INCLUDE_DIR gtk-vnc.h
+ ${COMMON_INCLUDE_DIR}
+ )
+
+-if(GVNC_INCLUDE_DIR AND GVNCPULSE_INCLUDE_DIR AND GTK-VNC_INCLUDE_DIR)
+- set(GTK-VNC_INCLUDE_DIRS ${GVNC_INCLUDE_DIR} ${GVNCPULSE_INCLUDE_DIR} ${GTK-VNC_INCLUDE_DIR})
++if(GVNC_INCLUDE_DIR AND GTK-VNC_INCLUDE_DIR)
++ set(GTK-VNC_INCLUDE_DIRS ${GVNC_INCLUDE_DIR} ${GTK-VNC_INCLUDE_DIR})
+ message(STATUS "GTK-VNC-Include-Dirs: ${GTK-VNC_INCLUDE_DIRS}")
+ endif()
+
+--- plugins/gvnc/gvnc_plugin.c.orig 2024-02-23 14:29:23 UTC
++++ plugins/gvnc/gvnc_plugin.c
+@@ -37,7 +37,7 @@
+
+ #include <vncdisplay.h>
+ #include <vncutil.h>
+-#include <vncaudiopulse.h>
++//#include <vncaudiopulse.h>
+
+ #define GVNC_DEFAULT_PORT 5900
+
+@@ -700,8 +700,8 @@ static void gvnc_plugin_init(RemminaProtocolWidget *gp
+ vnc_util_set_debug(TRUE);
+
+ gpdata->vnc = vnc_display_new();
+- if (remmina_plugin_service->file_get_int(remminafile, "enableaudio", FALSE))
+- gpdata->pa = vnc_audio_pulse_new();
++// if (remmina_plugin_service->file_get_int(remminafile, "enableaudio", FALSE))
++// gpdata->pa = vnc_audio_pulse_new();
+
+
+ g_signal_connect(gpdata->vnc, "vnc-auth-credential",
+--- plugins/gvnc/gvnc_plugin.h.orig 2024-02-28 20:33:54 UTC
++++ plugins/gvnc/gvnc_plugin.h
+@@ -37,7 +37,7 @@
+ #include <gdk/gdkkeysyms.h>
+ #include <vncdisplay.h>
+ #include <vncutil.h>
+-#include <vncaudiopulse.h>
++//#include <vncaudiopulse.h>
+
+
+ #ifndef GDK_Return
+@@ -113,7 +113,7 @@ typedef struct _GVncPluginData {
+ GtkWidget * box;
+ GtkWidget * vnc;
+ VncConnection * conn;
+- VncAudioPulse * pa;
++ /*VncAudioPulse*/ void * pa;
+ gchar * error_msg;
+ gchar * clipstr;
+ gulong signal_clipboard;