clone 758127 -1
reassign -1 wxwidgets3.0 3.0.1-3
retitle -1 wxwidgets3.0: libwx_gtk2u_propgrid-3.0.so.0.1.0  is broken on arm*
block 758127 with -1
thanks

On Thu, Aug 14, 2014 at 11:55:11PM +0300, Damyan Ivanov wrote:

> Program received signal SIGSEGV, Segmentation fault.
> 0xb68e2614 in wxDynamicLibrary::GetLibHandle (this=0x0)
>     at /usr/include/wx-3.0/wx/dynlib.h:270
> 270         wxDllType GetLibHandle() const { return m_handle; }
> (gdb) bt
> #0  0xb68e2614 in wxDynamicLibrary::GetLibHandle (this=0x0)
>     at /usr/include/wx-3.0/wx/dynlib.h:270
> #1  0xb6857824 in XS_Wx__load_plugin (my_perl=0x12008, cv=0x1c3d60) at 
> Wx.c:646

This can be triggered with just

 % xvfb-run perl -Iblib/lib -Iblib/arch -e 'use Wx; use Wx::PropertyGrid'       
                     

The problem seems to be in the wxwidgets3.0 package, whose build logs
on armel and armhf have this:

 dpkg-shlibdeps: warning: symbol _ZNK14wxCommandEvent5CloneEv used by 
debian/libwxgtk3.0-0/usr/lib/arm-linux-gnueabi/libwx_gtk2u_propgrid-3.0.so.0.1.0
 found in none of the libraries

Olly says this is probably related to #752733 but he's not certain.
I'm cloning a separate bug against wxwidgets3.0 at this point.

The current plan for libwx-perl is to fix the test suite not to crash
but skip the failing tests, and then downgrade this to 'important'. The
attached patches are a first stab at this. I ran out of time tonight and
haven't even run a full 'make test' with these yet, but I don't really
expect problems.
-- 
Niko Tyni   nt...@debian.org
>From 95be329c6f7eaefda58edf4db4180a59f44ae9aa Mon Sep 17 00:00:00 2001
From: Niko Tyni <nt...@debian.org>
Date: Thu, 14 Aug 2014 21:50:00 +0000
Subject: [PATCH 1/2] Fix Wx::_load_plugin() segfaulting when
 wxPluginManager::LoadLibrary fails

FIXME: _load_plugin() is aliased to *DynaLoader::dl_load_file
in Wx::Mini, should this return undef somehow or does 0 work?

Bug-Debian: https://bugs.debian.org/758127
---
 Wx.xs | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/Wx.xs b/Wx.xs
index 01029fc..3f5dede 100644
--- a/Wx.xs
+++ b/Wx.xs
@@ -422,7 +422,10 @@ _load_plugin( string, int flags = 0 /* to be compatible with dl_load_file */ )
 #endif
 #endif
     wxDynamicLibrary *lib = wxPluginManager::LoadLibrary( string, wxDL_VERBATIM );
-    RETVAL = PTR2IV( lib->GetLibHandle() );
+    if (lib)
+        RETVAL = PTR2IV( lib->GetLibHandle() );
+    else
+        RETVAL = 0;
   OUTPUT:
     RETVAL
 
-- 
2.1.0.rc1

>From 6f28d00f4ad9db47f3c8df876e97154f07bdb206 Mon Sep 17 00:00:00 2001
From: Niko Tyni <nt...@debian.org>
Date: Thu, 14 Aug 2014 22:02:18 +0000
Subject: [PATCH 2/2] Temporarily skip tests when the 'use Wx qw(...)' fails

This is a workaround for wxwidgets3.0 breakage, see
https://bugs.debian.org/758127
---
 t/01_load.t | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/t/01_load.t b/t/01_load.t
index 2237a97..c4042c9 100755
--- a/t/01_load.t
+++ b/t/01_load.t
@@ -11,7 +11,8 @@ my $x = wxYES;
 ok( 1, "Exported constant" );
 
 SKIP: {
-  use Wx qw(:frame :allclasses wxNO_3D wxTAB_TRAVERSAL);
+  eval "use Wx qw(:frame :allclasses wxNO_3D wxTAB_TRAVERSAL)";
+  skip("loading :allclasses et al. failed: $@", 2) if $@;
 
   $x = wxTAB_TRAVERSAL();
   $x = wxCAPTION();
-- 
2.1.0.rc1

Reply via email to