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
This commit is contained in:
Vladimir Druzenko 2024-03-01 11:15:28 +03:00
parent ff7cc7c719
commit f41ed7ed22
2 changed files with 83 additions and 18 deletions

View File

@ -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

View File

@ -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;