Bug 437113

Summary: Conflicting files when upgrading perl from RHEL 5.1 to RHEL 5.2 beta
Product: Red Hat Enterprise Linux 5 Reporter: Alexander Todorov <atodorov>
Component: perlAssignee: Stepan Kasal <kasal>
Status: CLOSED NOTABUG QA Contact: desktop-bugs <desktop-bugs>
Severity: high Docs Contact:
Priority: low    
Version: 5.1CC: borgan, jlaska, kasal
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-03-13 12:27:07 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Alexander Todorov 2008-03-12 14:35:38 UTC
Description of problem:
I try to upgrade perl from a RHEL 5.1 GA install to RHEL 5.2 beta using http
repository. I get file conflicts.

Version-Release number of selected component (if applicable):
perl-5.8.8-10

How reproducible:
Always

Steps to Reproduce:
1. Configure a .repo to RHEL 5.2 beta
2. run 'yum update perl'

  
Actual results:
File conflicts

Expected results:
Perl is updated

Additional info:
yum output

# yum update perl
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package perl.x86_64 4:5.8.8-10.el5_0.2 set to be updated

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size 
=============================================================================
Updating:
 perl                    x86_64     4:5.8.8-10.el5_0.2  rhel5.2_server_server   12 M

Transaction Summary
=============================================================================
Install      0 Package(s)         
Update       1 Package(s)         
Remove       0 Package(s)         

Total download size: 12 M
Is this ok [y/N]: y
Downloading Packages:
Running Transaction Test
Finished Transaction Test


Transaction Check Error:
  file /usr/share/man/man1/c2ph.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/cpan.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/dprofpp.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/enc2xs.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/find2perl.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/h2ph.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/h2xs.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/instmodsh.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/libnetcfg.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/perlbug.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/perlcc.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/perlivp.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/piconv.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/pl2pm.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/pod2html.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/pod2latex.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/pod2man.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/pod2text.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/pod2usage.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/podchecker.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/podselect.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/prove.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/psed.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/pstruct.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/s2p.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/splain.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10
  file /usr/share/man/man1/xsubpp.1.gz from install of perl-5.8.8-10.el5_0.2
conflicts with file from package perl-5.8.8-10

Error Summary
-------------

File /usr/share/man/man1/cpan.1.gz is present in both perl.x86_64 and perl.i386
which I have installed.

Comment 1 Alexander Todorov 2008-03-12 14:37:45 UTC
Is this a multilib issue? 
Why not have the manuals in perl-manuals.noarch and add it as a dependency to
the actual perl packages?

Comment 2 Alexander Todorov 2008-03-12 14:42:56 UTC
workaround is to remove perl.i386 on the x86_64 system

Comment 3 Stepan Kasal 2008-03-12 17:24:55 UTC
The i386 package has version 5.8.8-10, which is not the same as 5.8.8-10.el5_0.2.
This is why I suspect this is not a bug.
I'll have an opportunity to discuss this with the reporter in person tomorrow.

Comment 4 Alexander Todorov 2008-03-13 10:13:17 UTC
Results from more testing:

1. Install RHEL-5-Server/U1/x86_64. perl-5.8.8-10.x86_64 is installed
2. Configure yum repo for RHEL-5-Server/U1/i386 and install perl-5.8.8-10.i386.
No file conflicts.
3. Configure yum repo for RHEL5.2 Server beta/x86_64. yum upgrade perl will try
to upgrade the x86_64 version of the package which leads to file conflicts
(probably with the i386 version of the old package)
4. Configure yum repo for RHEL5.2 Server beta i386. Both perl packages are
upgraded to perl-5.8.8-10.el5_0.2 without errors.


I agree that this is a corner case but will need answers to some questions
before we move this to NOTABUG.

Stepan,
I have some questions:

1) Why do not both perl packages conflict? If they are 32bit vs. 64bit then they
are different but contain the same manual pages. Is that by design?

2) How does perl-5.8.8-10.el5_0.2.x86_64 relate to perl-5.8.8-10.i386 wrt 1)?
i.e. how does the newer x86_64 package know that conflicting manual pages are
from the old i386 package but not from the old x86_64 package? That seems odd.

3) How is the upgrade of both 32/64 bit packages possible when they still have
the same man pages even in the new version? There is no conflict.

Comment 5 Stepan Kasal 2008-03-13 12:27:07 UTC
Alexander,
short answer for the record:

When you have foo-1.0-5.i386 and foo-1.0-5.x86_64, they are allowed to contain
the same file, if their content is identical.  This is because both packages
have the same name-version-release triple, the arch is the only difference.
When installed, the file is owned by these two packages, but iin this case, rpm
allows it.

I believe this answers bith 1) and 3).

About 2):
Upgrading the x86_64 package is very similar to uninstalling the old version and
installing the new version.
As explained above, the man pages were owned "twice" but that was not conflict.
When perl-5.8.8-10.x86_64 in uninstalled, these man pages are owned by only one
package (perl-5.8.8-10.i386), which is ok, of course.
Then, perl-5.8.8-10.el5_0.2.x86_64 is installed.  The manual page in this new
build differs from the manual page from the previous build, and this is the
conflict.


Comment 6 Alexander Todorov 2008-03-13 12:48:15 UTC
Stepan,
thank you for your explanation. As in comment #4 if both 32/64 bit packages are
present for upgrade they are upgraded without any errors.