Bug 6273

Summary: Cannot upgrade Cauldron, because perl 5.16 conflicts with perl-Archive-Tar, perl-CPANPLUS and perl-Module-Build
Product: Mageia Reporter: Frédéric "LpSolit" Buclin <LpSolit>
Component: Release (media or process)Assignee: Mageia Bug Squad <bugsquad>
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: High CC: jquelin, pterjan
Version: Cauldron   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Source RPM: perl CVE:
Status comment:

Description Frédéric "LpSolit" Buclin 2012-05-31 21:12:55 CEST
Since Jérôme upgraded Perl to 5.16, I can no longer upgrade Cauldron, because urpmi tries to first install packages with higher priority and throws the following errors:

1 transactions d'installation ont échoué

Une erreur est survenue pendant l'installation des paquetages :

le fichier /usr/bin/ptar de l'installation de perl-2:5.16.0-1.mga3.i586 entre en conflit avec le fichier du paquetage perl-Archive-Tar-1.840.0-1.mga2.noarch

le fichier /usr/bin/ptardiff de l'installation de perl-2:5.16.0-1.mga3.i586 entre en conflit avec le fichier du paquetage perl-Archive-Tar-1.840.0-1.mga2.noarch

le fichier /usr/bin/ptargrep de l'installation de perl-2:5.16.0-1.mga3.i586 entre en conflit avec le fichier du paquetage perl-Archive-Tar-1.840.0-1.mga2.noarch

le fichier /usr/bin/cpan2dist de l'installation de perl-devel-2:5.16.0-1.mga3.i586 entre en conflit avec le fichier du paquetage perl-CPANPLUS-0.912.0-1.mga2.noarch

le fichier /usr/bin/cpanp de l'installation de perl-devel-2:5.16.0-1.mga3.i586 entre en conflit avec le fichier du paquetage perl-CPANPLUS-0.912.0-1.mga2.noarch

le fichier /usr/bin/cpanp-run-perl de l'installation de perl-devel-2:5.16.0-1.mga3.i586 entre en conflit avec le fichier du paquetage perl-CPANPLUS-0.912.0-1.mga2.noarch

le fichier /usr/bin/config_data de l'installation de perl-devel-2:5.16.0-1.mga3.i586 entre en conflit avec le fichier du paquetage perl-Module-Build-1:0.380.0-2.mga2.noarch


I checked, and the mirror is up-to-date, and newer packages for perl-Archive-Tar, perl-CPANPLUS and perl-Module-Build are available, but they cannot be installed because uprmi first wants to upgrade Perl, which fails due to the conflicts mentioned above.

<pterjan> LpSolit: what happens if you urpmi perl-Archive-Tar ?
<tmb> pterjan: it tries to pull perl because of perlapi
<LpSolit> pterjan: it refuses to do so, because it says it must first upgrade Perl
<LpSolit> which is exactly the problem
<pterjan> hmm is it a priority upgrade pb ?
<LpSolit> IMO, these modules should be marked as needed to be installed first
<pterjan> it should not be needed
<pterjan> this looks like a bug in urpmi
<LpSolit> well, without that, you get the errors I reported
<tmb> maybe those packages need conflicts on old perl to force them in same transaction
<pterjan> well it _should_ work but a hint may help
<pterjan> we can try adding to other packages to help urpmi to figure out what it has to do...
<tmb> pterjan: yep, I assume urpmi gets lost with the priority upgrade so it needs some help
Comment 1 Pascal Terjan 2012-05-31 22:00:50 CEST
For some reason urpmi does not update perl-Archive-Tar even when requested to do so...

urpmi --debug --no-priority-upgrade perl-Archive-Tar will start with:

getting exclusive lock on rpm
search_packages: found perl-Archive-Tar-1.860.0-1.mga3.noarch matching perl-Archive-Tar
search_packages: found perl-Archive-Tar-1.840.0-1.mga2.noarch matching perl-Archive-Tar
found package(s): perl-Archive-Tar-1.860.0-1.mga3.noarch perl-Archive-Tar-1.840.0-1.mga2.noarch
opening rpmdb (root=, write=)
chosen perl-Archive-Tar-1.860.0-1.mga3.noarch for perl-Archive-Tar|perl-Archive-Tar
selecting perl-Archive-Tar-1.860.0-1.mga3.noarch
set_rejected: perl-Archive-Tar-1.840.0-1.mga2.noarch
requiring perl-base[>= 2:5.16.0] for perl-Archive-Tar-1.860.0-1.mga3.noarch
chosen perl-base-5.16.0-1.mga3.x86_64 for perl-base[>= 2:5.16.0]

then does not mention perl-Archive-Tar again, but it does not end up in the list of packages to install...
Comment 2 Pascal Terjan 2012-05-31 22:04:36 CEST
The only scheduled transaction:

remove=2=apache-mod_perl-2.0.5-15.mga2.x86_64,apache-mod_perl-devel-2.0.5-15.mga2.x86_64 update=68=perl-Variable-Magic,perl-DBI,perl-Text-CSV_XS,perl-Gtk2,perl-base,perl-devel,perl-File-Lockf,perl-Net-SSLeay,vim-enhanced,perl-List-MoreUtils,perl-WWW-Curl,perl-Linux-Pid,perl-PerlIO-eol,perl-XML-LibXML,perl-Template-Toolkit,perl-IO-Tty,perl-File-Sync,perl-Date-Simple,perl-Class-Load-XS,perl,perl-String-CRC32,perl-Net-DBus,perl-Crypt-SSLeay,perl-Cairo,perl-B-Hooks-OP-Check,perl-Sub-Name,perl-HTML-Parser,perl-Time-Piece,perl-DateTime,perl-Glib,perl-JSON-XS,perl-Gtk2-SourceView2,perl-Params-Util,perl-PadWalker,perl-Locale-gettext,perl-Want,perl-Clone,perl-Devel-Cover,perl-Moose,drakxtools,perl-Devel-NYTProf,perl-Package-Stash-XS,perl-Net-DNS,perl-Gtk2-Notify,perl-Module-CoreList,perl-MooseX-Role-WithOverloading,perl-autobox,perl-SVN,perl-Filesys-Df,perl-XML-Parser,perl-Term-ReadKey,perl-Params-Validate,perl-RPM4,perl-Curses,perl-File-FnMatch,drakxtools-backend,perl-version,subversion,perl-Pango,perl-Devel-Declare,perl-Tk,vim-common,perl-Digest-SHA1,drakxtools-curses,perl-Devel-Caller,perl-YAML-Syck,perl-Gtk2-WebKit,perl-URPM
Pascal Terjan 2012-05-31 22:06:03 CEST

Hardware: i586 => All
Source RPM: (none) => urpmi

Pascal Terjan 2012-05-31 22:06:24 CEST

CC: sysadmin-bugs => (none)

Comment 3 Pascal Terjan 2012-05-31 22:15:42 CEST
OK adding some debug, it seems --no-priority-upgrade does not help as it enters this block:

if (my @l = grep { $state->{selected}{$_->id} } _priority_upgrade_pkgs($urpm, $options{priority_upgrade})) {
        $need_restart = _resolve_priority_upgrades($urpm, $db, $state, $state->{selected}, \@l, %options);
}

Anyway the real bug is that it should upgrades packages conflicting inside the priority upgrade and I think it is because of the conflict not correct:

perl:perl-Archive-Tar[<= 1.840.0-1]

perl-Archive-Tar-1.840.0-1.mga2

1.840.0-1.mga2 is probably > 1.840.0-1
Pascal Terjan 2012-05-31 22:16:21 CEST

Source RPM: urpmi => perl

Comment 4 Pascal Terjan 2012-05-31 22:52:26 CEST
Fixed with perl-5.16.0-4.mga3

Status: NEW => RESOLVED
Resolution: (none) => FIXED