CPAN's XML::SAX update conflicts with libxml-sax-perl's XML::SAX
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libxml-sax-perl (Debian) |
Fix Released
|
Unknown
|
|||
libxml-sax-perl (Ubuntu) |
Fix Released
|
Medium
|
Unassigned |
Bug Description
POSSIBLE WORKAROUND
-------
If you're stuck in an upgrade you might be able to fool `dpkg`, by placing "PERL5LIB=
Such as `PERL5LIB=
SUMMARY
--------------
BUG: XML::SAX can not be updated with CPAN/CPANP without totally breaking dpkg or other debian components that assume debian modifications are in XML::SAX.
DESCRIPTION OF BUG
-------
The currently distributed libxml-sax-perl conflicts with upstream XML::SAX. The debian developers hacked libxml-sax-perl's XML::SAX and added the function save_parsers_
The precedence order of perl's @INC demands /usr/local/
The fix is to remove Debian's pollution of XML::SAX class and subclass it (XML::SAX), into XML::SAX::Debian with the added Debian functionality. This will permit CPAN and CPANP updates of XML::SAX, and it will permit Debian guys to extend XML::SAX as they wish
CLUE STRING:: Can't locate object method "save_parsers_
WORK AROUND:: `cpanp uninstall XML::SAX`
NOTES FROM README.debian: Original CPAN Package vs. Debian Package
-------
Installing the original package from CPAN into /usr/local breaks the
Debian package, since the former is in Perl's @INC before the latter.
So, please don't do this.
If there's a new version of XML::SAX simply file a wishlist against
the Debian package and wait for the update.
description: | updated |
description: | updated |
summary: |
- Doesn't install + CPAN's XML::SAX update conflicts with libxml-sax-perl's XML::SAX |
description: | updated |
Changed in libxml-sax-perl (Ubuntu): | |
status: | Incomplete → Confirmed |
tags: | added: debian perl |
Changed in libxml-sax-perl (Debian): | |
status: | Unknown → Fix Released |
description: | updated |
description: | updated |
Changed in libxml-sax-perl (Ubuntu): | |
assignee: | nobody → Ryan Niebur (ryan52) |
Changed in libxml-sax-perl (Ubuntu): | |
status: | Confirmed → In Progress |
Hi,
And all this would be a bug in libxml-sax-perl because of what exactly?
We don't have a policy about Debian and CPAN to coexist. This certainly
doesn't mean they should not, but it's not a requirement at this point in
time. Please bring this issue up at the debian-perl mailing list.
I've written a README.Debian for this module which I suggest you read. It perl-sax- parsers' script and the issues it solves. I'm working with
probably should be expanded to explain the background of why I wrote the
'update-
the upstream authors on a more widely usable solution for these issues (or at
least more support for it work smoothly in Debian).
The basic problem is that XML:SAX parsers are expected to register themselves perl-sax- parsers' script is a solution around this problem and every debian' and stubbed the original subroutine 'save_parsers'.
at installation time using the XML::SAX API resulting in a ParserDetails.ini
file originally in the same location where XML::SAX lives. Debian doesn't
allow package A to directly change a file owned by package B. Since the file
ParserDetails.ini is owned by XML::SAX, no other parser can register itself.
The 'update-
parser (including the one in XML::SAX) is expected to call this script in the
postinst and prerm scripts. I enhanced the XML::SAX API by a subroutine called
'save_parsers_
The Makefile.PL of local XML::SAX parsers has be to changed to comment out the perl-sax- parsers' script manually to register perl-sax- parsers' script for
part where it registers itself using the original XML::SAX API. After install
you then have to call the 'update-
the parser. I plan to put support in the 'update-
local ParserDetails.ini files (e.g. for users to have parsers under their home
directory).
So, unfortunately this is hopefully one of the rare occasions where Debian and
CPAN cannot coexist out of the box.
I'm not sure what to do exactly with this bug report. We don't have to support
/usr/local and you're responsible yourself for what you're doing there. If you
install software under /usr/local which also is already available under /usr and
made to work within the Debian framework, you're probably in for more situations
like this.
Thanks,
Ardo
Peter Sinnott (<email address hidden>) wrote: share/perl/ 5.6.1/XML/ SAX.pm perl5/XML/ SAX.pm. perl-sax- parsers: adding Perl SAX parser module info file of XML::SAX: :PurePerl. .. debian" via package "XML::SAX" (perhaps you forgot to load "XML::SAX"?) at /usr/bin/ update- perl-sax- parsers
> Package: libxml-sax-perl
> Version: 0.03-1
> Severity: important
>
> I installed the cpan version of XML::SAX after installing the
> debian packaged version. When the package was updated it failed to install
> because the cpan version at /usr/local/
> was found in the @INC before /usr/share/
> libxml-libxml-perl was also being updated at the time.
>
> Setting up libxml-sax-perl (0.03-1) ...
> update-
> Can't locate object method "save_parsers_
> line 96.
> dpkg: error processing libxml-sax-perl (--configure):
> subprocess post-installation script returned error exit status 255
> dpkg: dependency problems prevent configuration of libxml-libxml-perl:
> libxml-libxml-perl depends on lib...