FS#8389 - perlxml broken after upgrading perl

Attached to Project: Arch Linux
Opened by Dincer Celik (roadboy) - Tuesday, 23 October 2007, 17:21 GMT
Last edited by Kevin Piche (kpiche) - Saturday, 19 January 2008, 03:26 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Kevin Piche (kpiche)
Tom Killian (tomk)
Architecture All
Severity Critical
Priority Normal
Reported Version 2007.08-2
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 7
Private No

Details

After upgrading perl to 5.8.8-8, perlxml 2.34-4 got broken. When I run ./configure I got the error below however I tried reinstalling it.

checking for XML::Parser... configure: error: XML::Parser perl module is required for intltool
This task depends upon

Closed by  Kevin Piche (kpiche)
Saturday, 19 January 2008, 03:26 GMT
Reason for closing:  Fixed
Additional comments about closing:  No longer a problem.
Comment by Hussam Al-Tayeb (hussam) - Tuesday, 23 October 2007, 17:54 GMT
Confirmed here. This is very critical. Broken perlxml also breaks intltool. Intltool is required to build many packages.
Comment by Francois Charette (Firmicus) - Wednesday, 24 October 2007, 09:41 GMT
I still have 5.8.8-7, so I cannot confirm this.
But looking with viewcvs at the diffs between 5.8.8-7 and 5.8.8-8, the only change of any consequence is in the PKGBUILD (version 1.51, 2007/10/22 10:50:47, committed by tpowa),
with
options=('emptydirs')
becoming
options=('!emptydirs')

The reason given in the log for that change is "don't remove empty dirs, it breaks installation of perl".
Comment by Roman Kyrylych (Romashka) - Wednesday, 24 October 2007, 10:02 GMT
you've made a typo, in fact it's options=('!emptydirs') to options=('emptydirs') change (emptydirs means "keep directories" in makepkg)
Comment by Roman Kyrylych (Romashka) - Wednesday, 24 October 2007, 10:04 GMT
I cannot confirm this bug. I can compile packages that depend on perlxml without any problems here.
$ pacman -Q perl perlxml
perl 5.8.8-8
perlxml 2.34-4
Comment by Francois Charette (Firmicus) - Wednesday, 24 October 2007, 10:19 GMT
Sorry for the typo :-§ /My brain =~ amiba this morning/
Perhaps this explains why I cannot understand why update to 5.8.8-8 would have caused the reported bug... ;)
Comment by Tom Killian (tomk) - Wednesday, 24 October 2007, 10:34 GMT
Brief update, still investigating:

With 5.8.8-8, perl -e "require XML::Parser" gives
Can't locate XML/Parser.pm in @INC (@INC contains: /usr/lib/perl5/5.8.8/i686-linux-thread-multi /usr/lib/perl5/5.8.8 /usr/lib/perl5/site_perl/5.8.8/i686-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl .) at -e line 1.

With 5.8.8-7, it works.

This also seems to affect other modules installed in /usr/lib/perl5/site_perl/current/.. , but not modules installed in /usr/lib/perl5/current e.g.
perl -e "require CPAN" works with 5.8.8-8

More to follow....
Comment by Tom Killian (tomk) - Wednesday, 24 October 2007, 11:58 GMT
Brief update, still investigating:

With 5.8.8-8, perl -e "require XML::Parser" gives
Can't locate XML/Parser.pm in @INC (@INC contains: /usr/lib/perl5/5.8.8/i686-linux-thread-multi /usr/lib/perl5/5.8.8 /usr/lib/perl5/site_perl/5.8.8/i686-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl .) at -e line 1.

With 5.8.8-7, it works.

This also seems to affect other modules installed in /usr/lib/perl5/site_perl/current/.. , but not modules installed in /usr/lib/perl5/current e.g.
perl -e "require CPAN" works with 5.8.8-8

More to follow....
Comment by Roman Kyrylych (Romashka) - Wednesday, 24 October 2007, 14:14 GMT Comment by Aaron Griffin (phrakture) - Wednesday, 24 October 2007, 17:25 GMT
This is the same old goofy perl symlink bug we always have had, I think.

Whenever I see the "Can't locate <X> in @INC", reinstalling the perl package usually fixes it.

Can someone confirm?
Comment by Tom Killian (tomk) - Wednesday, 24 October 2007, 18:05 GMT
Not the case here - reinstalling doesn't fix it. As per Romashka's ML link, the 5.8.8 -> current symlink is missing from this package, seemingly as a result of tpowa's addition of options=('emptydirs') in the PKGBUILD. The install script does the symlinking, so I'll be looking at that later this evening.
Comment by Roman Kyrylych (Romashka) - Thursday, 25 October 2007, 10:23 GMT
It doesn't seem like it's options=('emptydirs') that caused the breakage. It was intended to fix breakage in -7. And in -6 it was options=('emptydirs') too, and that version is reported to be ok.
I suggest to do perl installation in chroot, and also examine perl.install which seems suspicious to me.
Comment by waldek (waldek_a) - Thursday, 25 October 2007, 20:39 GMT
recompiling perl from ABS helped. The error is gone: perl -e "require XML::Parser" returns no error.

Comment by XazZ (XazZ) - Friday, 26 October 2007, 12:23 GMT
I can confirm what waldek said
Rebuilding the package from ABS helped (nothing modified)
Comment by Dincer Celik (roadboy) - Friday, 26 October 2007, 14:06 GMT
I also confirm waldek. Recompiling from ABS fixed the problem for me.
Comment by Flavien Bridault (vlaaad) - Monday, 29 October 2007, 08:58 GMT
I got the same problem when compiling gnome-system-tools from ABS.

The path to the module is simply missing, at least on my box. I added :

export PERL5LIB="/usr/lib/perl5/site_perl/current/i686-linux-thread-multi/"

and then it worked.
Comment by Lucas Hermann Negri (kknd) - Thursday, 01 November 2007, 00:55 GMT
Confirmed here. I could not compile Bluefish cvs.
Comment by Graziano Giuliani (Graziano) - Thursday, 01 November 2007, 18:42 GMT
clearsilver or git?

I did find existing /usr/lib/perl5/site_perl/5.8.8, and 5.8.8 does not point anymore to /usr/lib/perl5/site_perl/current. All I can see is clearsilver package perl interface and Git.pm, installed after git upgrade in the 5.8.8 directory.
The clearsilver package has /usr/lib/perl5/site_perl/5.8.8 as a directory (rebuilt from aur), have not tested git.
Placing those two package files in current, removing 5.8.8 directory and remaking the link 5.8.8 -> current fixes all missing modules.
Comment by Graziano Giuliani (Graziano) - Thursday, 01 November 2007, 18:52 GMT
Update to previous post:

Git has perl library link OK (/usr/lib/perl5/site_perl/current).
Comment by Graziano Giuliani (Graziano) - Thursday, 01 November 2007, 19:14 GMT
clearsilver was on my laptop updated on 2007-10-02 16:53
git was updated on 2007-10-04 16:47
perl was updated to 5.8.8-8 on 2007-10-23 08:57

so link was broken BEFORE upgrade of perl... I am not a HUGE perl user, but seems some package break perl before perl upgrade.
Both clearsiler and git installed in wrong place... That package was installed BEFORE 2007-10-02.

Haven't got any other hints...
Comment by Graziano Giuliani (Graziano) - Saturday, 03 November 2007, 07:51 GMT
Can confirm that if link 5.8.8 -> current is OK, upgrade of perl to 5.8.8-8 does not break site_perl modules.
Tested on x86_64, with upgrade on 15/10 and then today.
Comment by DaNiMoTh (DaNiMoTh) - Wednesday, 07 November 2007, 14:33 GMT
Confirmed here.

checking for intltool >= 0.23... 0.35.5 found
checking for perl... /usr/bin/perl
checking for XML::Parser... configure: error: XML::Parser perl module is required for intltool.

This is the error that I get when I try to compile compiz.
Last time that I successiful compiled compiz was Wed, 24 Oct 2007 13:31:01 +0000 ( I can't remember if I was sync with main repo )
Comment by Roman Kyrylych (Romashka) - Wednesday, 07 November 2007, 14:59 GMT
Check if /usr/lib/perl5/site_perl/5.8.8 points to current or is a directory.
I think the cause of all breakages reported here is that some perl-* package that doesn't follow Perl Policy breaks that symlink.
This could be fixed by hand.
But it would be nice to know the list of perl-* packages that was installed on all reporter's systems (including those that were installed but then removed).
Comment by Francois Charette (Firmicus) - Wednesday, 07 November 2007, 15:24 GMT
I think Roman is right. The problem is not perl or perlxml, but incorrect installation of perl-related packages (such as git) in previous versions, which changed the symlink 5.8.8 -> current into a regular dir. See  bug 7530  and  bug 7587 .

I had fixed these by hand before the upgrade to perl 5.8.8-8 and never experienced any problem.
Comment by DaNiMoTh (DaNiMoTh) - Wednesday, 07 November 2007, 16:00 GMT
Confirmed here.

checking for intltool >= 0.23... 0.35.5 found
checking for perl... /usr/bin/perl
checking for XML::Parser... configure: error: XML::Parser perl module is required for intltool.

This is the error that I get when I try to compile compiz.
Last time that I successiful compiled compiz was Wed, 24 Oct 2007 13:31:01 +0000 ( I can't remember if I was sync with main repo )
Comment by Hussam Al-Tayeb (hussam) - Friday, 09 November 2007, 08:57 GMT
Perl 5.8.8-9 in testing fixes this bug for me.
Comment by DaNiMoTh (DaNiMoTh) - Saturday, 10 November 2007, 10:23 GMT
Bug fixed also for me with perl -9 in testing.
Comment by Lukas Miczka (cpu) - Saturday, 29 December 2007, 06:14 GMT
For me on pure install with perl-5.8.8-9 problem still exists
Comment by Hussam Al-Tayeb (hussam) - Tuesday, 01 January 2008, 23:11 GMT
Bug is back in 5.10.0 in testing with the same Intltool breakage.
Comment by Roman Kyrylych (Romashka) - Tuesday, 08 January 2008, 01:42 GMT
@Hussam & all others who have things broken with perl-5.10.0 again:
please check if you have any perl module packages installed that are not yet packaged using the new perl policy.
Comment by Kevin Piche (kpiche) - Wednesday, 09 January 2008, 02:51 GMT
I've just built intltool with perl 5.10.0-1 and perlxml 2.36-1 and found no problems.

checking whether make sets $(MAKE)... yes
checking for perl... /usr/bin/perl
checking for XML::Parser... ok
configure: creating ./config.status

Make sure you have the latest pkgs for both.
Comment by Kevin Piche (kpiche) - Saturday, 19 January 2008, 03:25 GMT
Haven't heard anything further on this so closing.

Loading...