Bug 96995
Summary: | rpm -F *.rpm on all updates as of 6/08/2003 causes segfaults in scripts and unbootable system | ||
---|---|---|---|
Product: | [Retired] Red Hat Linux | Reporter: | Matthew Caron <matt> |
Component: | rpm | Assignee: | Jeff Johnson <jbj> |
Status: | CLOSED WORKSFORME | QA Contact: | Mike McLean <mikem> |
Severity: | high | Docs Contact: | |
Priority: | medium | ||
Version: | 9 | CC: | barryn |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | athlon | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2003-06-10 19:02:17 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
Matthew Caron
2003-06-08 04:59:47 UTC
Duplicate of bug 88456 . Replacing an i686 glibc package with an i386 one is not a good idea. Well than RedHat has suffered from a dumbass attack, and indeed, this is a
problem with rpm in general.
1.) It is not known what architecture a package is compiled for once it is
installed (the real bug that rpm should detect and complain about). Example:
> rpm -qa | grep glibc
glibc-devel-2.3.2-5
glibc-common-2.3.2-5
glibc-kernheaders-2.4-8.10
glibc-2.3.2-5
No information at all about target architecture.
rpm should detect this and error out.
2.) replacing the i686 packages with the i386 packages SHOULD work, since
anything that can run i686 code can run i386 code. Shouldn't both libraries
export the same functions? If the app is statically linked, it doesn't care, and
if it's dynamically linked, it should just get the new functions at runtime.
3.) I did not realize, and I wonder how many people actually do realize, that
different packages are installed based on architecture. I assumed that with this
release, like with the versions before it, everything was compiled for an i386.
This was obviously incorrect. However, it's news to many people.
1. There are legitimate reasons to replace packages of one sub-architecture with one of another sub-architecture. Typically it doesn't cause things to blow up either. So, it shouldn't be impossible to do this, but I guess it should be harder (for example, an extra command line option, or a confirmation prompt of some kind). 2. The i686 glibc packages have NPTL support. NPTL requires glibc to be compiled for i486 or up, so it's omitted from the i386 glibc packages. IIRC the problem is that the glibc package was leaving some old files behind when upgrading i686->i386. AFAIK the glibc packages in Rawhide fix that problem. 3. Different packages have been installed, based on sub-architecture, since Red Hat 6.0. (In particular: the kernel in 6.0 and up, glibc in 7.0 and up, and openssl in 7.2 and up.) This is nothing new. This problem appears resolved. Yes i686 has NPTL, i386 doesn't, life gets bumpy and weird when doing "rpm -Fvh /yadda/yadda/*" |