- Package:
- src:libwx-perl-processstream-perl
- Source:
- libwx-perl-processstream-perl
- Submitter:
- Niko Tyni
- Date:
- 2022-07-15 19:51:04 UTC
- Severity:
- normal
- Tags:
This package fails to build from source with Perl 5.36 (currently in experimental.) Build log at http://perl.debian.net/rebuild-logs/perl-5.36-throwaway/libwx-perl-processstream-perl_0.32-1.1/libwx-perl-processstream-perl_0.32-1.1_amd64-2022-06-13T09:38:04Z.build Excerpt: t/00-load.t .... 1..1 ok 1 - use Wx::Perl::ProcessStream; ok # Failed test at t/01-events.t line 59. # got: undef # expected: '0' # Failed test at t/01-events.t line 80. # got: undef # expected: 'HELLO WORLD' # Failed test at t/01-events.t line 94. # got: undef # expected: 'HELLO WORLD' # Failed test at t/01-events.t line 117. # got: undef # expected: 'HELLO WORLD' # Failed test at t/01-events.t line 131. # got: undef # expected: 'HELLO WORLD' # Failed test at t/01-events.t line 152. # got: '' # expected: anything else # Failed test at t/01-events.t line 170. # got: '' # expected: 'ONE-TWO-THREE' # Failed test at t/01-events.t line 174. # got: '' # expected: 'FOUR' # Failed test at t/01-events.t line 192. # got: '' # expected: 'ECHO:TEST STDIN 1-TEST STDIN 2' E: Build killed with signal TERM after 150 minutes of inactivity
(Full quote for context, see below for discussion.)
This seems to be a bug in libwx-perl, triggered by changes in
Perl 5.35.9 or so.
From https://metacpan.org/dist/perl/view/pod/perldelta.pod#Internal-Changes :
Reading the string form of an integer value no longer sets the flag SVf_POK. [...]
Here's a snippet that shows the changed behaviour:
#!/usr/bin/perl -w
use Test::More tests => 3;
use Devel::Peek;
use Inline C => <<'EOC';
SV * myString() {
SV *ret;
ret = newSViv(0);
char *buf = SvPV_nolen(ret);
buf[0] = '1';
return ret;
}
EOC
my $val = myString();
is($val, "1", "XS return value equals the string 1");
is($val, 1, "XS return value equals numeric 1");
ok($val, "XS return value is true");
Dump $val;
__END__
The return value is created as the integer zero, then its string buffer
is changed but the corresponding SvPOK flag is not set. This passes all
the three tests on sid / Perl 5.34 fails the last one with Perl 5.36.
The Dump output shows
- FLAGS = (IOK,POK,pIOK,pPOK)
+ FLAGS = (IOK,pIOK,pPOK)
and explicitly declaring the variable a valid string by adding an
SvPOK_on(ret) call fixes the tests.
The above snippet was adapted from the Wx::InputStream::READLINE() method
in libwx-perl, which has the same issue. The Wx::Perl::ProcessStream
test suite tests if the return value is set, but sees it evaluate to
false and assumes an early EOF, breaking the tests.
Proposed patch attached. I've tested that it fixes the test suite with
Perl 5.36 without breaking it on sid / 5.34.
We believe that the bug you reported is fixed in the latest version of
libwx-perl, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 1014295@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
gregor herrmann <gregoa@debian.org> (supplier of updated libwx-perl package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Fri, 15 Jul 2022 21:19:56 +0200
Source: libwx-perl
Architecture: source
Version: 1:0.9932-7
Distribution: unstable
Urgency: medium
Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
Changed-By: gregor herrmann <gregoa@debian.org>
Closes: 1014295
Changes:
libwx-perl (1:0.9932-7) unstable; urgency=medium
.
* Add patch to fix regression with perl >= 5.35.9.
Thanks to Niko Tyni for the patch! (Closes: #1014295)
* Declare compliance with Debian Policy 4.6.1.
* Refresh lintian overrides.
Checksums-Sha1:
2fa646899bf8eb1a5ed3fcf8ce84eaf2b25648bd 2595 libwx-perl_0.9932-7.dsc
90118c6f0a5131e90791f6155b2fed1f2b81d4e0 14124 libwx-perl_0.9932-7.debian.tar.xz
Checksums-Sha256:
35b3cfbe9a5b4dbceb06cd5421f1b8e216e2d5b06760cb2387d27ee5fa10ee8a 2595 libwx-perl_0.9932-7.dsc
40b5649b979f23df91e3d7a8aebeb7d2844fd2291348399f1cce8be2a2a3291e 14124 libwx-perl_0.9932-7.debian.tar.xz
Files:
1a1e67ca8c4cee9d64e1e293a8ecc328 2595 perl optional libwx-perl_0.9932-7.dsc
ee2808a8b166874b55471d2efc461b96 14124 perl optional libwx-perl_0.9932-7.debian.tar.xz
-----BEGIN PGP SIGNATURE-----
iQKTBAEBCgB9FiEE0eExbpOnYKgQTYX6uzpoAYZJqgYFAmLRv0tfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEQx
RTEzMTZFOTNBNzYwQTgxMDREODVGQUJCM0E2ODAxODY0OUFBMDYACgkQuzpoAYZJ
qgbcGxAAlVYGnmNOEzue7SOcDi2kDmI5EMZt4pZj8GaG0dsCo+pSeFKjMAdUMh5v
Su/4GZQSu2V07EKRRReQ7pmoiiYMbwYMZh9bjk5dhhRAEJEDQHZqB8QjCogd7Rs/
DYKvIPeeCQgRQz6Y+r2WLAHZjytJBMLrmcmaA1zySAc21WjFlCmwSJK+8G/7LSy/
cdApBFtgiKiDeBkqsWJwbwI5t3avM/SesexJUinB8/U7KgM5W3YIpCxfdNIY9CYv
PsAMYlUeEhwRGLuR6YTtiRAkbajO1DvLsApKm2u8LO9PIChMwJk4KKcN3jfJqBNK
bK0d1IN79aROu4oPq24zZfHmwha/yUmcaBd8l3jIaHkKZ1nXcUxRPXqIp7eR3bGH
HNakSZDBncYWV9gpVmfF1ZftnpUpHPFA9+7zEnf52aPUbl5usxakNL/60gIcZljQ
VR9sQ8Azy55jXPzLNr9fHI432YguFhuhLPx0P2Wm1l8/wDXLQhFmmrggW4PJIngm
+nD47/8pQWTH/hb8xIpByZ15eTIKdbpD5uwLEwC9YnK0zMXrDM0a6WmDkngZdrXE
KmDlNeV3hT6dTqWxTKphJ3bD5/Oi+OHb45z5qrVLZTu0PwIL6K6SmXLUJVHi1fZs
d6Rtk+hNExLytbgNsITizyj+anxr/zI5MNyZh7XARuGsfD7uRKg=
=yXPi
-----END PGP SIGNATURE-----