Bug#758127: libwx-perl: FTBFS on arm*

gregor herrmann gregoa at debian.org
Thu Aug 14 16:46:12 UTC 2014


On Thu, 14 Aug 2014 17:21:03 +0300, Damyan Ivanov wrote:

> > libwx-perl has test failures on arm{el,hf}:
> > https://buildd.debian.org/status/logs.php?pkg=libwx-perl&ver=1%3A0.9923-2
> 
> Here's a backtrace on abel (armel):
> 
> ("BEGIN finished at t/01_load.t line 7." was inserted by me in the test.)
> 
> (gdb) run -I blib/lib -I blib/arch t/01_load.t
> Starting program: /usr/bin/debugperl -I blib/lib -I blib/arch t/01_load.t
> Cannot access memory at address 0x0
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/arm-linux-gnueabi/libthread_db.so.1".
> 1..6
> Xlib:  extension "RANDR" missing on display ":99".
> ok 1 - use Wx;
> BEGIN finished at t/01_load.t line 7.
> 
> Program received signal SIGSEGV, Segmentation fault.
> XS_Wx__load_plugin (my_perl=0x26b008, cv=<optimized out>) at Wx.c:646
> 646         RETVAL = PTR2IV( lib->GetLibHandle() );
> (gdb) bt
> #0  XS_Wx__load_plugin (my_perl=0x26b008, cv=<optimized out>) at Wx.c:646

CPAN RT has something which looks similar:
https://rt.cpan.org/Public/Bug/Display.html?id=90835
with no response.

svn diff svn://svn.code.sf.net/p/wxperl/code/wxPerl/tags/release-0.9923/ svn://svn.code.sf.net/p/wxperl/code/wxPerl/trunk
shows a new feature but nothing else.

And I can reproduce the bug in a raspbian jessie armhf cowbuilder chroot :)

> Oddly, a oneliner passes fine:
> 
> $ xvfb-run perl -Iblib/lib -Iblib/arch -we'use strict; use Test::More tests => 6; BEGIN { use_ok "Wx"; } use Wx "wxYES"; my $x = wxYES; ok(1, "export ok");'
> 1..6
> Xlib:  extension "RANDR" missing on display ":99".
> ok 1 - use Wx;
> ok 2 - export ok
> # Looks like you planned 6 tests but ran 2.

Same here.
That's really -- strange. 


This works:

# xvfb-run -a perl -Iblib/lib -Iblib/arch -e 'use strict; use Test::More tests => 1; use_ok "Wx";' ; echo $?
1..1
Xlib:  extension "RANDR" missing on display ":99".
ok 1 - use Wx;
0

This works as well:

# cat t/00_load.t 
#!/usr/bin/perl

use strict;
use Test::More tests => 1;
use_ok "Wx";

# xvfb-run -a prove --blib t/00_load.t 
t/00_load.t .. Xlib:  extension "RANDR" missing on display ":99".
t/00_load.t .. ok   
All tests successful.
Files=1, Tests=1,  1 wallclock secs ( 0.24 usr  0.00 sys +  1.04 cusr  0.04 csys =  1.32 CPU)
Result: PASS

And this as well:

# cat t/00_load.t 
#!/usr/bin/perl

use strict;
use Test::More tests => 1;
BEGIN { use_ok "Wx" }

# xvfb-run -a prove --blib t/00_load.t 
t/00_load.t .. Xlib:  extension "RANDR" missing on display ":99".
t/00_load.t .. ok   
All tests successful.
Files=1, Tests=1,  1 wallclock secs ( 0.24 usr  0.00 sys +  1.02 cusr  0.02 csys =  1.28 CPU)
Result: PASS

And this works too:

# cat t/00_load.t 
#!/usr/bin/perl -w

use strict;
use Test::More tests => 2;
BEGIN { use_ok "Wx" }

use Wx 'wxYES';
my $x = wxYES;

ok( 1, "Exported constant" );

# xvfb-run -a prove --blib t/00_load.t 
t/00_load.t .. Xlib:  extension "RANDR" missing on display ":99".
t/00_load.t .. ok   
All tests successful.
Files=1, Tests=2,  1 wallclock secs ( 0.23 usr  0.00 sys +  1.08 cusr  0.00 csys =  1.31 CPU)
Result: PASS


What?
Ok, after adjusting whitespace and quotation marks:


# diff -u t/01_load.t t/00_load.t
--- t/01_load.t 2014-08-14 16:01:38.000000000 +0000
+++ t/00_load.t 2014-08-14 16:02:06.000000000 +0000
@@ -1,7 +1,7 @@
 #!/usr/bin/perl -w
 
 use strict;
-use Test::More tests => 6;
+use Test::More tests => 2;
 
 BEGIN { use_ok 'Wx' }
 
@@ -9,23 +9,3 @@
 my $x = wxYES;
 
 ok( 1, "Exported constant" );
-
-SKIP: {
-  use Wx qw(:frame :allclasses wxNO_3D wxTAB_TRAVERSAL);
-
-  $x = wxTAB_TRAVERSAL();
-  $x = wxCAPTION();
-
-  ok( 1, "Export list with :allclasses" );
-  ok( Wx::HtmlWindow->isa( 'Wx::Window' ), "Wx::Html was loaded" );
-}
-
-eval "use Wx qw(wxNO_SUCH_CONSTANT)";
-ok( $@, "Error exporting missing constant: $@" );
-
-eval "Wx::wxNO_SUCH_CONSTANT()";
-ok( $@, "Error autoloading missing constant: $@" );
-
-# Local variables: #
-# mode: cperl #
-# End: #


So the original t/01_load.t and my t/00_load.t are identical before
the SKIP. And still:


# xvfb-run -a prove --blib --verbose t/00_load.t t/01_load.t
t/00_load.t .. 
1..2
Xlib:  extension "RANDR" missing on display ":99".
ok 1 - use Wx;
ok 2 - Exported constant
ok
t/01_load.t .. 
1..6
Xlib:  extension "RANDR" missing on display ":99".
ok 1 - use Wx;
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Failed 5/6 subtests 

Test Summary Report
-------------------
t/01_load.t (Wstat: 139 Tests: 1 Failed: 0)
  Non-zero wait status: 139
  Parse errors: Bad plan.  You planned 6 tests but ran 1.
Files=2, Tests=3,  3 wallclock secs ( 0.27 usr  0.00 sys +  2.71 cusr  0.06 csys =  3.04 CPU)
Result: FAIL


This is a bit mysterious ...


Building with DEB_BUILD_OPTIONS=noopt leads to the same result.


Cheers,
gregor

-- 
 .''`.  Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06
 : :' : Debian GNU/Linux user, admin, and developer  -  http://www.debian.org/
 `. `'  Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe
   `-   NP: Nguyên Lê: Thang Long
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 949 bytes
Desc: Digital Signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-perl-maintainers/attachments/20140814/520c0952/attachment-0001.sig>


More information about the pkg-perl-maintainers mailing list