Bug#707229:

Andrew Nicols andrew at nicols.co.uk
Thu Jun 6 11:26:03 UTC 2013


A friend and I got to the bottom of this one.
Basically, it looks like YAML started using Mo in 0.75 so Squeeze wasn't
affected (0.71). And then in 0.81, it moved to using Safe Mo with
Mo::Inline adding Mo to the YAML structure.
The way that Mo::Inline works is to add the Mo namespace and functions to
YAML::Mo. As part of that, it then effectively calls: (it's obfuscated so
this is paraphrasing)
no Mo::builder;
no Mo::default;

Unfortunately, in order to call no MODNAME, that module needs to be
installed and available. Since it's not packaged for debian, it isn't and
the errors are thrown. I'm not sure what causes it to be used in our
software.

So I guess this is technically a bug in Mo::Inline, but since we don't
package that, and the bug exhibits in libyaml-perl, this is probably the
most appropriate place to raise this issue.
This issue has also been reported against YAML in CPAN:
https://rt.cpan.org/Public/Bug/Display.html?id=75390

As a workaround you can add the following to your code:

BEGIN {

    $INC{'Mo/builder.pm'} = 1;
    $INC{'Mo/default.pm'} = 1;

}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-perl-maintainers/attachments/20130606/c362ed83/attachment.html>


More information about the pkg-perl-maintainers mailing list