Fix crash when using ssh (from upstream).

reported by rpointel@
ok jasper@ (maintainer)
This commit is contained in:
ajacoutot 2015-02-07 11:23:43 +00:00
parent 40e7610747
commit ea12bc85d0
5 changed files with 99 additions and 37 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.14 2014/10/06 07:27:05 jasper Exp $
# $OpenBSD: Makefile,v 1.15 2015/02/07 11:23:43 ajacoutot Exp $
### from upstream, removed at next update
# +patch-remmina_src_remmina_protocol_widget_c
@ -22,7 +22,7 @@ DISTNAME= Remmina-${V}
PKGNAME= ${DISTNAME:L}
WRKDIST= ${WRKDIR}/FreeRDP-Remmina-356c033
REVISION= 8
REVISION= 9
CATEGORIES= x11 net

View File

@ -1,19 +1,29 @@
$OpenBSD: patch-cmake_FindVTE_cmake,v 1.1 2014/10/06 07:27:05 jasper Exp $
$OpenBSD: patch-cmake_FindVTE_cmake,v 1.2 2015/02/07 11:23:43 ajacoutot Exp $
Adjust to new VTE 2.91 API
From 9ec1aea54a4f8e6883f6d85627df66197b7487b4 Mon Sep 17 00:00:00 2001
From: Iain Lane <iain.lane@canonical.com>
Date: Mon, 10 Nov 2014 11:14:15 +0000
Subject: [PATCH] Update to work with vte 2.91 as well as 2.90
--- cmake/FindVTE.cmake.orig Mon Oct 6 09:05:19 2014
+++ cmake/FindVTE.cmake Mon Oct 6 09:05:57 2014
@@ -21,11 +21,9 @@ if(NOT _VTE_VERSION_NUM)
--- cmake/FindVTE.cmake.orig Fri Feb 10 19:54:23 2012
+++ cmake/FindVTE.cmake Sat Feb 7 11:46:15 2015
@@ -21,11 +21,17 @@ if(NOT _VTE_VERSION_NUM)
set(_VTE_LIB_NAME vte)
set(_VTE_VERSION vte)
else()
- set(_VTE_LIB_NAME vte${_VTE_VERSION_NUM})
+ set(_VTE_LIB_NAME vte-${_VTE_VERSION_NUM})
+ if(${_VTE_VERSION_NUM} VERSION_LESS 2.91)
+ set(_VTE_LIB_NAME vte${_VTE_VERSION_NUM})
+ else()
+ set(_VTE_LIB_NAME vte-${_VTE_VERSION_NUM})
+ endif()
set(_VTE_VERSION vte-${_VTE_VERSION_NUM})
endif()
-
-string(REPLACE . _ _VTE_LIB_NAME ${_VTE_LIB_NAME})
+if(${_VTE_VERSION_NUM} VERSION_LESS 2.91)
+ string(REPLACE . _ _VTE_LIB_NAME ${_VTE_LIB_NAME})
+endif()
pkg_check_modules(PC_VTE ${_VTE_VERSION})

View File

@ -1,15 +1,44 @@
$OpenBSD: patch-remmina_CMakeLists_txt,v 1.4 2014/10/06 07:27:05 jasper Exp $
$OpenBSD: patch-remmina_CMakeLists_txt,v 1.5 2015/02/07 11:23:43 ajacoutot Exp $
Adjust to new VTE 2.91 API
From 9ec1aea54a4f8e6883f6d85627df66197b7487b4 Mon Sep 17 00:00:00 2001
From: Iain Lane <iain.lane@canonical.com>
Date: Mon, 10 Nov 2014 11:14:15 +0000
Subject: [PATCH] Update to work with vte 2.91 as well as 2.90
--- remmina/CMakeLists.txt.orig Mon Oct 6 09:04:29 2014
+++ remmina/CMakeLists.txt Mon Oct 6 09:04:33 2014
@@ -120,7 +120,7 @@ if(AVAHI_FOUND)
--- remmina/CMakeLists.txt.orig Fri Feb 10 19:54:23 2012
+++ remmina/CMakeLists.txt Sat Feb 7 11:46:15 2015
@@ -110,17 +110,26 @@ if(AVAHI_FOUND)
target_link_libraries(remmina ${AVAHI_LIBRARIES})
endif()
-if(GTK3_FOUND)
- set(_VTE_VERSION_NUM 2.90)
-else()
+option(WITH_VTE "Build with support for VTE" ON)
+if(GTK3_FOUND AND WITH_VTE)
+ set(_VTE_VERSION_NUMS 2.91 2.90)
+ foreach(__VTE_VERSION ${_VTE_VERSION_NUMS})
+ set(_VTE_VERSION_NUM ${__VTE_VERSION})
+ find_package(VTE)
+ if(VTE_FOUND)
+ break()
+ endif()
+ message(STATUS "VTE ${__VTE_VERSION} not found")
+ endforeach(__VTE_VERSION)
+elseif(WITH_VTE)
set(_VTE_VERSION_NUM)
+ find_package(VTE)
endif()
-find_suggested_package(VTE _VTE_VERSION_NUM)
-if(VTE_FOUND)
- add_definitions(-DHAVE_LIBVTE)
- include_directories(${VTE_INCLUDE_DIRS})
- target_link_libraries(remmina ${VTE_LIBRARIES})
+if (VTE_FOUND)
+ add_definitions(-DHAVE_LIBVTE)
+ include_directories(${VTE_INCLUDE_DIRS})
+ target_link_libraries(remmina ${VTE_LIBRARIES})
endif()
if(GTK3_FOUND)
- set(_VTE_VERSION_NUM 2.90)
+ set(_VTE_VERSION_NUM 2.91)
else()
set(_VTE_VERSION_NUM)
endif()

View File

@ -1,37 +1,61 @@
$OpenBSD: patch-remmina_src_remmina_ssh_plugin_c,v 1.1 2014/10/06 07:27:05 jasper Exp $
$OpenBSD: patch-remmina_src_remmina_ssh_plugin_c,v 1.2 2015/02/07 11:23:43 ajacoutot Exp $
Port to new VTE 2.91 API
From 9ec1aea54a4f8e6883f6d85627df66197b7487b4 Mon Sep 17 00:00:00 2001
From: Iain Lane <iain.lane@canonical.com>
Date: Mon, 10 Nov 2014 11:14:15 +0000
Subject: [PATCH] Update to work with vte 2.91 as well as 2.90
--- remmina/src/remmina_ssh_plugin.c.orig Mon Oct 6 09:06:50 2014
+++ remmina/src/remmina_ssh_plugin.c Mon Oct 6 09:16:33 2014
@@ -122,7 +122,7 @@ remmina_plugin_ssh_main_thread (gpointer data)
--- remmina/src/remmina_ssh_plugin.c.orig Fri Feb 10 19:54:23 2012
+++ remmina/src/remmina_ssh_plugin.c Sat Feb 7 11:49:11 2015
@@ -122,9 +122,18 @@ remmina_plugin_ssh_main_thread (gpointer data)
THREADS_ENTER
if (charset && charset[0] != '\0')
{
- vte_terminal_set_encoding (VTE_TERMINAL (gpdata->vte), charset);
+#if !VTE_CHECK_VERSION(0,38,0)
vte_terminal_set_encoding (VTE_TERMINAL (gpdata->vte), charset);
+#else
+ vte_terminal_set_encoding (VTE_TERMINAL (gpdata->vte), charset, NULL);
+#endif
}
+#if !VTE_CHECK_VERSION(0,38,0)
vte_terminal_set_pty (VTE_TERMINAL (gpdata->vte), shell->slave);
+#else
+ vte_terminal_set_pty (VTE_TERMINAL (gpdata->vte),
+ vte_pty_new_foreign_sync (shell->slave, NULL, NULL));
+#endif
THREADS_LEAVE
@@ -169,7 +169,11 @@ remmina_plugin_ssh_set_vte_pref (RemminaProtocolWidget
remmina_plugin_service->protocol_plugin_emit_signal (gp, "connect");
@@ -169,7 +178,12 @@ remmina_plugin_ssh_set_vte_pref (RemminaProtocolWidget
gpdata = (RemminaPluginSshData*) g_object_get_data (G_OBJECT(gp), "plugin-data");
if (remmina_pref.vte_font && remmina_pref.vte_font[0])
{
- vte_terminal_set_font_from_string (VTE_TERMINAL (gpdata->vte), remmina_pref.vte_font);
+ PangoFontDescription *desc;
+
+ desc = pango_font_description_from_string(remmina_pref.vte_font);
+ vte_terminal_set_font(VTE_TERMINAL (gpdata->vte), desc);
+ pango_font_description_free(desc);
+#if !VTE_CHECK_VERSION(0,38,0)
vte_terminal_set_font_from_string (VTE_TERMINAL (gpdata->vte), remmina_pref.vte_font);
+#else
+ vte_terminal_set_font (VTE_TERMINAL (gpdata->vte),
+ pango_font_description_from_string (remmina_pref.vte_font));
+#endif
}
vte_terminal_set_allow_bold (VTE_TERMINAL (gpdata->vte), remmina_pref.vte_allow_bold_text);
if (remmina_pref.vte_lines > 0)
@@ -205,7 +209,7 @@ remmina_plugin_ssh_init (RemminaProtocolWidget *gp)
@@ -205,7 +219,19 @@ remmina_plugin_ssh_init (RemminaProtocolWidget *gp)
remmina_plugin_service->protocol_plugin_register_hostkey (gp, vte);
- vscrollbar = gtk_vscrollbar_new (vte_terminal_get_adjustment (VTE_TERMINAL (vte)));
+ vscrollbar = gtk_vscrollbar_new(gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(vte)));
+#if GTK_VERSION == 3
+#if VTE_CHECK_VERSION(0, 38, 0)
+ vscrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (vte)));
+#else
vscrollbar = gtk_vscrollbar_new (vte_terminal_get_adjustment (VTE_TERMINAL (vte)));
+#endif
+#elif GTK_VERSION == 2
+#if VTE_CHECK_VERSION(0, 38, 0)
+ vscrollbar = gtk_vscrollbar_new (gtk_scrollable_get_vadjustment (GTK_SCROLLABLE_TERMINAL (vte)));
+#else
+ vscrollbar = gtk_vscrollbar_new (vte_terminal_get_adjustment (VTE_TERMINAL (vte)));
+#endif
+#endif
gtk_widget_show(vscrollbar);
gtk_box_pack_start (GTK_BOX (hbox), vscrollbar, FALSE, TRUE, 0);
}

View File

@ -1,4 +1,4 @@
@comment $OpenBSD: PLIST,v 1.2 2012/06/15 08:30:24 ajacoutot Exp $
@comment $OpenBSD: PLIST,v 1.3 2015/02/07 11:23:43 ajacoutot Exp $
@conflict remmina-plugins-*
@conflict remmina-plugins-telepathy-*
@pkgpath x11/remmina,-rdp
@ -7,7 +7,6 @@
@pkgpath x11/remmina/plugins,-rdp
@pkgpath x11/remmina/plugins,-telepathy
@bin bin/remmina
include/remmina/
lib/pkgconfig/remmina.pc
lib/remmina/
lib/remmina/plugins/