Bug#808826: libkavorka-perl: FTBFS: Can't locate object method "_set_declared_name" via package "Kavorka::Sub::Fun"
Niko Tyni
ntyni at debian.org
Wed Dec 23 21:08:50 UTC 2015
retitle 808826 libparse-keyword-perl: breaks Moo::Role on Perl 5.22?
reassign 808826 libparse-keyword-perl 0.08-2
affects 808826 libmoops-perl libkavorka-perl
thanks
On Wed, Dec 23, 2015 at 08:03:33PM +0200, Niko Tyni wrote:
> On Wed, Dec 23, 2015 at 04:05:27PM +0200, Niko Tyni wrote:
> > Package: libkavorka-perl
> > Version: 0.036-1
> > Severity: serious
> > Forwarded: https://rt.cpan.org/Ticket/Display.html?id=109841
> >
> > This package fails to build on current sid.
>
> > Can't locate object method "_set_declared_name" via package "Kavorka::Sub::Fun" at /<<PKGBUILDDIR>>/blib/lib/Kavorka/Sub.pm line 182.
> > t/02named-functions.t ..........
> > Dubious, test returned 255 (wstat 65280, 0xff00)
>
> It's indeed a regression caused by the perl 5.20 -> 5.22 upgrade.
> Not sure why our rebuilds didn't catch it.
Evidence seems to be pointing at Parse::Keyword. This script:
#!/usr/bin/perl -w
use strict;
package M;
use Moo::Role;
has myattr => (is => 'rwp');
1;
package main;
use Parse::Keyword {};
my $m = bless {}, 'M';
$m->_set_myattr("foo");
print $m->myattr, "\n";
1;
outputs "foo" on 5.20 as expected, but dies on 5.22 with
Can't locate object method "_set_myattr" via package "M" at m.pl line 13.
Removing the "use Parse::Keyword {};" line makes it go away.
The only two reverse dependencies (both build and runtime) of libparse-keyword-perl,
libkavorka-perl and libmoops-perl, both currently fail to build from source with
similar messages.
I'm therefore tentatively reassigning this to libparse-keyword-perl,
although it would be nice to distill this further down to something that
takes Moo::Role out of the equation.
I note that Parse::Keyword is officially not recommended for use, so
it might not be worth it blocking the Perl 5.22 transition for this.
Quoting:
DESCRIPTION
DO NOT USE!
This module has fundamental errors in the way it handles closures,
which are not fixable. Runtime keywords will never be able to work
properly with the current design of this module. There are certain
cases where this module is still safe to use (keywords that only
have effect at compile time, or keywords that never call any of
the "parse_*" functions), but that is limiting enough to make
this module mostly worthless, and I likely won't be continuing
to maintain it. Be warned!
--
Niko Tyni ntyni at debian.org
More information about the pkg-perl-maintainers
mailing list