Bug 137452 - installation of i386 rpm on ia64 fails
Summary: installation of i386 rpm on ia64 fails
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: rpm
Version: 3.0
Hardware: ia64
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Panu Matilainen
QA Contact:
URL:
Whiteboard:
: 139915 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2004-10-28 16:18 UTC by Paul Clements
Modified: 2007-11-30 22:07 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-10-19 19:15:22 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Paul Clements 2004-10-28 16:18:54 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040116

Description of problem:
rpm v4.2.3 has broken backward compatibility with packages built with
older versions of rpm. The OS tag for linux used to be "Linux", now it
is "linux". This tag, which is contained in the rpm, is used to
construct the path to the ia32 emulation directory whenever an i386
rpm is installed on an ia64 machine.

Here is a snippet of the verbose output of a test rpm (built on Red
Hat 6.2, rpm v3.0.4) being installed on an ia64 RHEL 3, Update 3 machine:

[root@compaq2 root]# uname -a
Linux compaq2 2.4.21-20.EL #1 SMP Wed Aug 18 20:30:22 EDT 2004 ia64
ia64 ia64 GNU/Linux
[root@compaq2 root]# rpm -q rpm
rpm-4.2.3-10
[root@compaq2 root]# rpm -vv -U --force
/export/public/clemep/tmp/test-1.0.0-rh62.i386.rpm
D: ============== /export/public/clemep/tmp/test-1.0.0-rh62.i386.rpm
D: Expected size:         1585 = lead(96)+sigs(100)+pad(4)+data(1385)
D:   Actual size:         1553
D: /export/public/clemep/tmp/test-1.0.0-rh62.i386.rpm: MD5 digest: OK
(f1667c0dbe7d3dc1d788b428685c3059)
D: ========== relocations
D:     0 relocate / -> /emul/ia32-Linux
D: opening  db environment /var/lib/rpm/Packages joinenv
D: opening  db index       /var/lib/rpm/Packages rdonly mode=0x0
D: locked   db index       /var/lib/rpm/Packages
D: opening  db index       /var/lib/rpm/Providename rdonly mode=0x0
D:  read h#     811 Header SHA1 digest: OK
(2a1cf7a3fc3698bf63711eb66211f6ba6d0e2a33)
D:  read h#     826 Header SHA1 digest: OK
(90f7b7b714177249840c578966d57349fb4012a7)
D:      added binary package [0]
D: found 0 source and 1 binary packages
D: ========== +++ test-1.0.0-rh62 i386/Linux 0x0


Note the "Linux" tag above.

Here is the output from the installation of the same test rpm (but the
rpm was built with Red Hat 9, rpm v4.2, in this case):

[root@compaq2 root]# rpm -vv -U --force
/export/public/clemep/tmp/test-1.0.0-0.i386.rpm
D: ============== /export/public/clemep/tmp/test-1.0.0-0.i386.rpm
D: Expected size:         2056 = lead(96)+sigs(180)+pad(4)+data(1776)
D:   Actual size:         2056
D: /export/public/clemep/tmp/test-1.0.0-0.i386.rpm: MD5 digest: OK
(64191fa33b2371adcf7381bcc49f3268)
D: ========== relocations
D:     0 relocate / -> /emul/ia32-linux
D: opening  db environment /var/lib/rpm/Packages joinenv
D: opening  db index       /var/lib/rpm/Packages rdonly mode=0x0
D: locked   db index       /var/lib/rpm/Packages
D: opening  db index       /var/lib/rpm/Providename rdonly mode=0x0
D:  read h#     811 Header SHA1 digest: OK
(2a1cf7a3fc3698bf63711eb66211f6ba6d0e2a33)
D:  read h#     826 Header SHA1 digest: OK
(90f7b7b714177249840c578966d57349fb4012a7)
D:      added binary package [0]
D: found 0 source and 1 binary packages
D: ========== +++ test-1.0.0-0 i386/linux 0x0

This time, the OS tag is "linux".


So, we are forced to create a symlink:

ln -s /emul/ia32-linux /emul/ia32-Linux

in order to make the installation of our rpms succeed. 

I am not sure in which version of rpm the OS tag for linux was
changed. However, previous RHEL 3 releases did not exhibit this
installation failure. This installation failure appears to be limited
to the 4.2.3 version of rpm included with RHEL 3, Update 3.

There may well be broader implications to the OS tag discrepancy, but
the installation failures with i386 rpms on ia64 machines is currently
the only problem of which I am aware.

Version-Release number of selected component (if applicable):
rpm-4.2.3-10

How reproducible:
Always

Steps to Reproduce:
1. attempt to install an i386 rpm, built with an older version of rpm,
on an ia64 RHEL 3, Update 3 system (rpm v4.2.3)
    

Actual Results:  installation fails due to failure to run %pre
scriptlet -- rpm attempts to run /emul/ia32-Linux/bin/sh, which does
not exist -- the correct path is /emul/ia32-linux/bin/sh

Expected Results:  rpm installation should succeed

Additional info:

Comment 1 Jeff Johnson 2004-10-28 17:01:37 UTC
This is a configuration issue only. The [Ll]inux confusion
dates back to rpm-2.5.92 -- over 6 years ago -- and is due
to the use of a header query in setting the autorelocate path:
    %_autorelocate_path /emul/%%{arch}-%%{os}
rather than hardwiring the string "linux".

Put the following in /etc/rpm/macros
    %_autorelocate_path     /emul/ia32-linux
to work around.

Comment 2 Paul Clements 2004-10-28 17:14:03 UTC
is there anything that can be done on the rpm build machine to work
around this? a similar macro change perhaps? this would be far
preferable to requiring manual setup steps on the installation target
system prior to installation

Comment 3 Jeff Johnson 2004-10-28 19:17:53 UTC
Sure there will be a better fix at first opportunity.

Meanwhile it's too late for what is already shipped.

Comment 4 Jeff Johnson 2004-11-19 05:00:02 UTC
*** Bug 139915 has been marked as a duplicate of this bug. ***

Comment 5 David Lawrence 2006-04-18 20:28:54 UTC
NEEDINFO_ENG has been deprecated in favor of NEEDINFO or ASSIGNED. Changing
status to ASSIGNED for ENG review.

Comment 6 RHEL Program Management 2007-10-19 19:15:22 UTC
This bug is filed against RHEL 3, which is in maintenance phase.
During the maintenance phase, only security errata and select mission
critical bug fixes will be released for enterprise products. Since
this bug does not meet that criteria, it is now being closed.
 
For more information of the RHEL errata support policy, please visit:
http://www.redhat.com/security/updates/errata/
 
If you feel this bug is indeed mission critical, please contact your
support representative. You may be asked to provide detailed
information on how this bug is affecting you.


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