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