Bug#548305: mpdtoys: mpstore fails with "Global symbol "$REUSE" requires explicit package name"

Joey Hess joeyh at debian.org
Mon Sep 28 02:15:41 UTC 2009


reassign 548305 libclass-accessor-perl
thanks

Turns out that libaudio-mpd-perl has somehow been broken by
the libclass-accessor-perl 0.33-1 -> 0.34-1 upgrade.

This is the relevant code:

use Readonly;

use base qw[ Class::Accessor::Fast Exporter ];
__PACKAGE__->mk_accessors(
    qw[ _conntype _host _password _port _socket
        collection playlist version ] );

Readonly our $REUSE => 0;
Readonly our $ONCE  => 1;

our @EXPORT = qw[ $REUSE $ONCE ];


Before upgrading libclass-accessor-perl, this exports $REUSE and $ONCE.
Afterwards, not. The reason seems to be that Class::Accessor interferes with
Exporter when multiple inheritence is used, as it is here. I was able to
work/around fix the bug in Audio::MPD by changing it like this:

use Exporter 'import';
use base qw[ Class::Accessor::Fast];


(mpdtoys 0.20 will work around this problem by using $Audio::MPD::REUSE.)

-- 
see shy jo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-perl-maintainers/attachments/20090927/a9a76b25/attachment.pgp>


More information about the pkg-perl-maintainers mailing list