Bug 462125 - Multilib conflict
Multilib conflict
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: libcdio (Show other bugs)
rawhide
x86_64 Linux
medium Severity medium
: ---
: ---
Assigned To: Adrian Reber
Fedora Extras Quality Assurance
: Reopened
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2008-09-12 15:51 EDT by Adam Huffman
Modified: 2008-10-07 16:36 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-10-07 16:36:04 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
Diff showing the differences between the man pages on i386 vs x86_64 (614 bytes, patch)
2008-10-06 02:57 EDT, Hans de Goede
no flags Details | Diff

  None (edit)
Description Adam Huffman 2008-09-12 15:51:26 EDT
Description of problem:
When trying the latest updates, there's a conflict between the two versions of libcdio:

  file /usr/share/man/man1/cd-drive.1.gz from install of libcdio-0.80-2.fc10.i386 conflicts with file from package libcdio-0.80-2.fc10.x86_64
  file /usr/share/man/man1/cd-info.1.gz from install of libcdio-0.80-2.fc10.i386 conflicts with file from package libcdio-0.80-2.fc10.x86_64
  file /usr/share/man/man1/iso-info.1.gz from install of libcdio-0.80-2.fc10.i386 conflicts with file from package libcdio-0.80-2.fc10.x86_64
  file /usr/share/man/man1/iso-read.1.gz from install of libcdio-0.80-2.fc10.i386 conflicts with file from package libcdio-0.80-2.fc10.x86_64


Version-Release number of selected component (if applicable):
libcdio-0.80.2

How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:
Comment 1 Adrian Reber 2008-09-12 17:02:47 EDT
Thanks for the bug report. Fixed in 0.80-3 which has just been built.
Comment 2 Erik van Pienbroek 2008-10-02 15:01:26 EDT
Looks like the file conflict still exists:

Transaction Check Error:
  file /usr/share/man/man1/cd-drive.1.gz conflicts between attempted installs of libcdio-0.80-3.fc10.x86_64 and libcdio-0.80-3.fc10.i386
  file /usr/share/man/man1/cd-info.1.gz conflicts between attempted installs of libcdio-0.80-3.fc10.x86_64 and libcdio-0.80-3.fc10.i386
  file /usr/share/man/man1/iso-info.1.gz conflicts between attempted installs of libcdio-0.80-3.fc10.x86_64 and libcdio-0.80-3.fc10.i386
  file /usr/share/man/man1/iso-read.1.gz conflicts between attempted installs of libcdio-0.80-3.fc10.x86_64 and libcdio-0.80-3.fc10.i386
Comment 3 Adrian Reber 2008-10-02 15:51:37 EDT
Thanks for the information. Although I touched all man pages using another file as reference, the file times in the RPM where still wrong because make install changed all the timestamps again.

In this release I am touching the files after make install and this time I have also verified that the files inside of the RPM have the correct timestamp. I hope it is really fixed this time. I have just requested a build for 0_80-4_fc10.

Let me know if it still is broken.
Comment 4 Erik van Pienbroek 2008-10-03 12:31:16 EDT
It's still broken with -4...
Comment 5 Adrian Reber 2008-10-03 16:34:10 EDT
I finally got access to x86_64 system and can install it without any problems. Both the i386 and x86_64 versions. I tried it with rpm and yum and both installation succeeded. What is the exact command you are using to update/install it?
Comment 6 Erik van Pienbroek 2008-10-03 18:40:53 EDT
[erik@localhost ~]$ sudo yum clean all
Loaded plugins: refresh-packagekit
Cleaning up Everything
[erik@localhost ~]$ sudo yum update
Loaded plugins: refresh-packagekit
<..retrieving repodata cut..>
Finished
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package libcdio.i386 0:0.80-4.fc10 set to be updated
---> Package libcdio.x86_64 0:0.80-4.fc10 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package          Arch            Version              Repository         Size 
================================================================================
Updating:
 libcdio          i386            0.80-4.fc10          rawhide            275 k
 libcdio          x86_64          0.80-4.fc10          rawhide            279 k

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

Total download size: 554 k
Downloading Packages:
(1/2): libcdio-0.80-4.fc10.i386.rpm                      | 275 kB     00:00     
(2/2): libcdio-0.80-4.fc10.x86_64.rpm                    | 279 kB     00:00     
--------------------------------------------------------------------------------
Total                                           260 kB/s | 554 kB     00:02     
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test


Transaction Check Error:
  file /usr/share/man/man1/cd-drive.1.gz conflicts between attempted installs of libcdio-0.80-4.fc10.i386 and libcdio-0.80-4.fc10.x86_64
  file /usr/share/man/man1/cd-info.1.gz conflicts between attempted installs of libcdio-0.80-4.fc10.i386 and libcdio-0.80-4.fc10.x86_64
  file /usr/share/man/man1/iso-info.1.gz conflicts between attempted installs of libcdio-0.80-4.fc10.i386 and libcdio-0.80-4.fc10.x86_64
  file /usr/share/man/man1/iso-read.1.gz conflicts between attempted installs of libcdio-0.80-4.fc10.i386 and libcdio-0.80-4.fc10.x86_64

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

[erik@localhost ~]$
Comment 7 Adrian Reber 2008-10-04 05:16:08 EDT
Hmm... What happens if you remove both libcdio's before installing it again?
Comment 8 Erik van Pienbroek 2008-10-04 15:23:38 EDT
Still the same

[erik@localhost ~]$ sudo rpm -e libcdio
fout: "libcdio" specifies multiple packages:
  libcdio-0.80-2.fc10.x86_64
  libcdio-0.80-2.fc10.i386
[erik@localhost ~]$ sudo rpm -e libcdio.i386 libcdio.x86_64
fout: Failed dependencies:
	libcdio.so.7 is needed by (geïnstalleerd) libcddb-1.3.0-4.fc9.i386
	libcdio.so.7 is needed by (geïnstalleerd) vlc-core-0.9.3-3.fc10.i386
	libcdio.so.7(CDIO_7) is needed by (geïnstalleerd) libcddb-1.3.0-4.fc9.i386
	libcdio.so.7(CDIO_7) is needed by (geïnstalleerd) vlc-core-0.9.3-3.fc10.i386
	libcdio_cdda.so.0 is needed by (geïnstalleerd) vlc-core-0.9.3-3.fc10.i386
	libcdio_cdda.so.0(CDIO_CDDA_0) is needed by (geïnstalleerd) vlc-core-0.9.3-3.fc10.i386
	libcdio_paranoia.so.0 is needed by (geïnstalleerd) vlc-core-0.9.3-3.fc10.i386
	libcdio_paranoia.so.0(CDIO_PARANOIA_0) is needed by (geïnstalleerd) vlc-core-0.9.3-3.fc10.i386
	libcdio.so.7()(64bit) is needed by (geïnstalleerd) libcddb-1.3.0-4.fc9.x86_64
	libcdio.so.7()(64bit) is needed by (geïnstalleerd) gstreamer-plugins-ugly-0.10.9-1.fc10.x86_64
	libcdio.so.7()(64bit) is needed by (geïnstalleerd) vlc-core-0.9.3-3.fc10.x86_64
	libcdio.so.7()(64bit) is needed by (geïnstalleerd) gvfs-1.0.1-4.fc10.x86_64
	libcdio.so.7(CDIO_7)(64bit) is needed by (geïnstalleerd) libcddb-1.3.0-4.fc9.x86_64
	libcdio.so.7(CDIO_7)(64bit) is needed by (geïnstalleerd) gstreamer-plugins-ugly-0.10.9-1.fc10.x86_64
	libcdio.so.7(CDIO_7)(64bit) is needed by (geïnstalleerd) vlc-core-0.9.3-3.fc10.x86_64
	libcdio_cdda.so.0()(64bit) is needed by (geïnstalleerd) vlc-core-0.9.3-3.fc10.x86_64
	libcdio_cdda.so.0()(64bit) is needed by (geïnstalleerd) gvfs-1.0.1-4.fc10.x86_64
	libcdio_cdda.so.0(CDIO_CDDA_0)(64bit) is needed by (geïnstalleerd) vlc-core-0.9.3-3.fc10.x86_64
	libcdio_cdda.so.0(CDIO_CDDA_0)(64bit) is needed by (geïnstalleerd) gvfs-1.0.1-4.fc10.x86_64
	libcdio_paranoia.so.0()(64bit) is needed by (geïnstalleerd) vlc-core-0.9.3-3.fc10.x86_64
	libcdio_paranoia.so.0()(64bit) is needed by (geïnstalleerd) gvfs-1.0.1-4.fc10.x86_64
	libcdio_paranoia.so.0(CDIO_PARANOIA_0)(64bit) is needed by (geïnstalleerd) vlc-core-0.9.3-3.fc10.x86_64
	libcdio_paranoia.so.0(CDIO_PARANOIA_0)(64bit) is needed by (geïnstalleerd) gvfs-1.0.1-4.fc10.x86_64
[erik@localhost ~]$ sudo rpm -e libcdio.i386 libcdio.x86_64 --nodeps
[erik@localhost ~]$ sudo yum install libcdio.i386 libcdio.x86_64
Loaded plugins: refresh-packagekit
Reducing RPM Fusion for Fedora 9.92 - Free - Rawhide to included packages only
Finished
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package libcdio.i386 0:0.80-4.fc10 set to be updated
---> Package libcdio.x86_64 0:0.80-4.fc10 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package          Arch            Version              Repository         Size 
================================================================================
Installing:
 libcdio          i386            0.80-4.fc10          rawhide            275 k
 libcdio          x86_64          0.80-4.fc10          rawhide            279 k

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

Total size: 554 k
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test


Transaction Check Error:
  file /usr/share/man/man1/cd-drive.1.gz conflicts between attempted installs of libcdio-0.80-4.fc10.i386 and libcdio-0.80-4.fc10.x86_64
  file /usr/share/man/man1/cd-info.1.gz conflicts between attempted installs of libcdio-0.80-4.fc10.i386 and libcdio-0.80-4.fc10.x86_64
  file /usr/share/man/man1/iso-info.1.gz conflicts between attempted installs of libcdio-0.80-4.fc10.i386 and libcdio-0.80-4.fc10.x86_64
  file /usr/share/man/man1/iso-read.1.gz conflicts between attempted installs of libcdio-0.80-4.fc10.i386 and libcdio-0.80-4.fc10.x86_64

Error Summary
-------------
Comment 9 Adrian Reber 2008-10-05 05:39:34 EDT
Very strange. This is the output of my F8 system enabling rawhide:

# yum --enablerepo=development install libcdio.i386 libcdio.x86_64
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package libcdio.i386 0:0.80-4.fc10 set to be updated
---> Package libcdio.x86_64 0:0.80-4.fc10 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package         Arch           Version             Repository            Size 
================================================================================
Installing:
 libcdio         x86_64         0.80-4.fc10         development           279 k
 libcdio         i386           0.80-4.fc10         development           275 k

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

Total download size: 554 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): libcdio-0.80-4.fc10.i386.rpm                      | 275 kB     00:00     
(2/2): libcdio-0.80-4.fc10.x86_64.rpm                    | 279 kB     00:00     
--------------------------------------------------------------------------------
Total                                            20 MB/s | 554 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : libcdio                                           [1/2] 
  Installing     : libcdio                                           [2/2] 

Installed: libcdio.x86_64 0:0.80-4.fc10 libcdio.i386 0:0.80-4.fc10
Complete!

So I really have no idea what should be done to get this fixed for you.
Comment 10 Adrian Reber 2008-10-06 01:23:58 EDT
Which version of yum and rpm do you have installed?
Comment 11 Panu Matilainen 2008-10-06 02:02:50 EDT
This is a behavior difference between rawhide and F9 (and older) rpm: the old rpm silently ignores file conflicts like this on multilib systems when you install the packages in a single transaction, but if you installed the packages on separate transactions you'd get conflicts there too. Rawhide rpm is stricter (well, more consistent) here and doesn't quietly swallow file conflicts.

Here's the problem:
--- 1.man	2008-10-06 08:40:02.000000000 +0300
+++ 2.man	2008-10-06 08:40:09.000000000 +0300
@@ -1,7 +1,7 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
-.TH LT-CD-DRIVE "1" "October 2008" "lt-cd-drive version 0.80 i386-redhat-linux-gnu" "User Commands"
+.TH LT-CD-DRIVE "1" "October 2008" "lt-cd-drive version 0.80 x86_64-redhat-linux-gnu" "User Commands"
 .SH NAME
-lt-cd-drive \- manual page for lt-cd-drive version 0.80 i386-redhat-linux-gnu
+lt-cd-drive \- manual page for lt-cd-drive version 0.80 x86_64-redhat-linux-gnu
 .SH SYNOPSIS
 .B cd-drive
 \fIOPTION\fR...

You'll need to coax help2man to not stick the platform string into the man pages to fix the conflicts. 

BTW there's another (unrelated) problem in the manuals: notice how it refers to "lt-cd-drive" as the program name instead of "cd-drive", another help2man quirk I guess.
Comment 12 Hans de Goede 2008-10-06 02:57:19 EDT
Created attachment 319519 [details]
Diff showing the differences between the man pages on i386 vs x86_64

For the cause, see attachment.

The best solution is probably to split libcdio in libcdio and libcdio-progs, 
with the utilities and the man-pages in -progs, then on x86_64 there will only 
be both an x86_64 and i386 version of libcdio and libcdio-devel but not of 
libcdio-progs. Added advantages of this approach are some saved diskspace for 
the 99% of users who only want the lib (mostly relevant for livecd's) and the 
rpm people want to get rid of the filecolor hack, where elf binaries may differ 
and this is not a file conflict but instead the 64 bits version gets used, in 
the future, so all packages will need a split between libs and progs in the 
future anyways.
Comment 13 Kevin Kofler 2008-10-06 15:17:38 EDT
Why not just kick the arch out of the version number, at least for the man page (a simple sed hack should do the trick there)?
Comment 14 Adrian Reber 2008-10-06 16:27:02 EDT
Thanks for all the help. For now I will remove the arch from the version number in the man pages with sed. Maybe for the next Fedora version I will move the helper binaries from libcdio to libcdio-utils (including the man pages).

The "lt-cd-drive" issue is a libtool problem. The binaries which are used by help2man are just libtool scripts which call the actual binaries with a changed argv[0] from "cd-drive" to "lt-cd-drive". No idea why they do it. But I will also clean up the man pages from the "lt-".
Comment 15 Adrian Reber 2008-10-07 16:36:04 EDT
Erik,

could you please test release -5. I think I finally fixed it. I was able (thanks Panu) to see the error on F8 by installing one package at a time instead at the same time. The new version (-5) can now be installed on my test system even if install one package at a time as well as if I install both packages at the same time. In addition to the now identical timestamps the man-pages do not contain the architecture information anymore. Thanks everyone.

Note You need to log in before you can comment on or make changes to this bug.