Bug 176432 - gcc4 and libtool RPM dependancies incorrectly specified
Summary: gcc4 and libtool RPM dependancies incorrectly specified
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: gcc4
Version: 4.0
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
: ---
Assignee: Jakub Jelinek
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2005-12-22 18:36 UTC by Gregory Ruiz-Ade
Modified: 2007-11-30 22:07 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2005-12-22 18:39:47 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Gregory Ruiz-Ade 2005-12-22 18:36:13 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050921 Red Hat/1.0.7-1.4.1 Firefox/1.0.7

Description of problem:
When trying to install a third-party RPM via apt, apt complains of unmet dependancies.  Examining these dependancies, it seems that they were not correctly specified.  Specifically, gcc4-c++ should list the libstdc++ dependancies as:

libstdc++ >= 3.4.3
libstdc++-devel >= 3.4.3

instead of:

libstdc++ = 3.4.3
libstdc++-devel = 3.4.3


Also, libtool should list it's gcc dependancy as:

gcc >= 3.4.3

instead of:

gcc = 3.4.3


Currently, examining dependancies of gcc4-c++-4.0.1-4.EL4.2 and libtool-1.5.6-4.EL4.1, we find that the versions of the packages (listed above) they depend on are older than what is installed, however the dependancies are specified as absolute, not "greater than or equal to."  In order to maintain strict dependancy compliance, the only solution is to uninstall these two packages if tools such as apt are used to install third-party RPMs.

This fix should be as simple as updating the RPM .spec files for these two packages to fix the specified dependancies as listed above.

Version-Release number of selected component (if applicable):
gcc4-c++-4.0.1-4.EL4.2, libtool-1.5.6-4.EL4.1

How reproducible:
Always

Steps to Reproduce:
1. Install RHEL 4 and up2date to latest patches.
2. rpm -qR gcc4-c++ and rpm -qR libtool.
3. compare to actual packages installed on system.

Alternatively, install apt from the RPMForge or DAG repositories, and run "apt-get install pine" (as an example) to get a detailed report of what packages have unmet dependancies.
  

Actual Results:  [root@cseapel01 /tmp]$ apt-get install pine
Reading Package Lists... Done
Building Dependency Tree... Done
You might want to run `apt-get -f install' to correct these:
The following packages have unmet dependencies:
  gcc4-c++: Depends: libstdc++ (= 3.4.3) but 3.4.4-2 is to be installed
            Depends: libstdc++-devel (= 3.4.3) but 3.4.4-2 is to be installed
  libtool: Depends: gcc (= 3.4.3) but 3.4.4-2 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
[root@cseapel01 /tmp]$ apt-get -f install
Reading Package Lists... Done
Building Dependency Tree... Done
Correcting dependencies... Done
The following packages will be REMOVED:
  gcc4-c++ libtool
0 upgraded, 0 newly installed, 2 removed and 13 not upgraded.
Need to get 0B of archives.
After unpacking 7655kB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.
[root@cseapel01 /tmp]$ rpm -q libstdc++ libstdc++-devel gcc
libstdc++-3.4.4-2
libstdc++-devel-3.4.4-2
gcc-3.4.4-2
[root@cseapel01 /tmp]$ rpm -qR gcc4-c++ | grep libstdc++
libstdc++ = 3.4.3
libstdc++-devel = 3.4.3
[root@cseapel01 /tmp]$ rpm -qR libtool | grep gcc
gcc = 3.4.3


Expected Results:  no dependancy problems from RHEL-supplied packages.

Additional info:

apt was the tool which happened to expose this dependancy issue.  up2date seemingly doesn't care, but we are purposely not including third-party repositories in up2date so that when we do use up2date to update the systems, we are getting only RHEL official packages.  Packages installed via apt are updated individually, and care is taken to not replace RHEL-supplied packages with third-party packages.

Comment 1 Jakub Jelinek 2005-12-22 18:39:47 UTC
That just means apt-rpm is broken.  gcc-3.4.4-X as well as gcc-3.4.5-X provides
gcc = 3.4.3.  rpm, up2date and yum at least handle this just fine.

Comment 2 Gregory Ruiz-Ade 2005-12-22 19:16:34 UTC
Ah, I hadn't looked at the packages' "provides" lists, which I suppose I should
have.

Thank you,

Gregory


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