Bug#664214: libparse-recdescent-perl: should break libmail-imapclient-perl (<< 3.30-2)

Niko Tyni ntyni at debian.org
Fri Mar 16 18:20:16 UTC 2012


Package: libparse-recdescent-perl
Version: 1.967006+dfsg-1
X-Debbugs-Cc: debian-perl at lists.debian.org

[cc'ing the debian-perl list as this issue potentially
 affects many libparse-recdescent-perl reverse dependencies.]

As seen in #662599, recent libparse-recdescent-perl versions
introduced backwards incompatible changes that broke precompiled
grammar modules in the libmail-imapclient-perl package.

So it looks like libparse-recdescent-perl should break
libmail-imapclient-perl (<< 3.30-2) to make sure the regressions don't
occur with partial upgrades from squeeze.

The breakage also happens the other way around, so the
new libmail-imapclient-perl needs to depend on the newer
libparse-recdescent-perl. I'll clone and reassign this bug once I get
the ack.

This may well not be the only case of a precompiled grammar breaking on
Parse::RecDescent upgrades. The libtm-perl changelog indicates
that one had problems too, although I don't see a bug filed.

It would be good if somebody could go through the libparse-recdescent-perl
reverse dependencies and check if there are other ones with precompiled
grammars and if they're still working.

Fortunately things are improving; see the documentation quote below .
Embedding Parse::RecDescent and recompiling the grammars every time
during the Debian package build would be the best long term solution
AFAICS.

Due to the 'experimental' part, I suppose we should not adopt this in
Debian quite yet unless this kind breakage is very widespread, but it's
worth keeping an eye on.

       Standalone Precompiled Parsers

       Until version 1.967003 of Parse::RecDescent, parser modules built with
       "Precompile" were dependent on Parse::RecDescent.  Future
       Parse::RecDescent releases with different internal implementations
       would break pre-existing precompiled parsers.

       Version 1.967_005 added the ability for Parse::RecDescent to include
       itself in the resulting .pm file if you pass the boolean option
       "-standalone" to "Precompile":

           Parse::RecDescent->Precompile({ -standalone = 1, },
               $grammar, "My::New::Parser");

       Parse::RecDescent is included as Parse::RecDescent::_Runtime in order
       to avoid conflicts between an installed version of Parse::RecDescent
       and a precompiled, standalone parser made with another version of
       Parse::RecDescent.  This renaming is experimental, and is subject to
       change in future versions.

       Precompiled parsers remain dependent on Parse::RecDescent by default,
       as this feature is still considered experimental.  In the future,
       standalone parsers will become the default.

-- 
Niko Tyni   ntyni at debian.org





More information about the pkg-perl-maintainers mailing list