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 [email protected]
>From 95be329c6f7eaefda58edf4db4180a59f44ae9aa Mon Sep 17 00:00:00 2001
From: Niko Tyni <[email protected]>
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 <[email protected]>
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