Bug 154154 - pkgorder fails on Opteron server when kernel.ia32e is the only kernel.$arch in the list
pkgorder fails on Opteron server when kernel.ia32e is the only kernel.$arch i...
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: anaconda (Show other bugs)
x86_64 Linux
medium Severity low
: ---
: ---
Assigned To: Anaconda Maintenance Team
Mike McLean
Depends On:
  Show dependency treegraph
Reported: 2005-04-07 17:11 EDT by James Olin Oden
Modified: 2007-11-30 17:07 EST (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2005-04-08 07:11:23 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description James Olin Oden 2005-04-07 17:11:28 EDT
Description of problem:
Basically, I am on an AMD64 system trying to build media that only contains the 
following kernels:

The goal of course is to have a distro I can use to install on ia32e and AMD 64 
systems but not contain the uniprocessor kernel.  I would like to be able to 
build from either ia32e or AMD 64 build servers.

When I do this pkgorder hurls as was mentioned in the following bug:


Only, unlike that bug I am on an x86_64 system (just not the x86_64 ia32e 
flavor...could this get any more complicated).  I know exactly where the 
problem is.  Bascily in rhpl.arch.archDifference() it does not understand the 
relatedness of the ia32e architecture to x86_64.  The problem is for the 
purpose of building a distro that has both an ia32e kernel and an x86_64 kernel 
(real AMD 64 kernel) this relationship exists (at build time) but it does not 
at install time. 

At anyrate I patched rhpl.arch with a quick hack I'm unhappy with.  Mainly 
because I don't know how to build in the symantic of build time vs install time.
It works for me, but I think there needs to be a better fix.

Anyway here is the patch:

--- rhpl-0.110.6/src/arch.py.orig       2005-04-07 15:46:53.000000000 -0400
+++ rhpl-0.110.6/src/arch.py    2005-04-07 15:48:37.000000000 -0400
@@ -48,6 +48,11 @@
 def archDifference(myarch, targetarch):
     if myarch == targetarch:
         return 1
+    #
+    # XXX: HACK!  This allows building distro with kernel-smp.x86_64
+    #      and kernel.ia32e but no kernel.x86_64
+    if targetarch == "ia32e" and myarch == "x86_64":
+        return 1
     if arches.has_key(myarch):
         ret = archDifference(arches[myarch], targetarch)
         if ret != 0:

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

How reproducible:

Steps to Reproduce:
1. Run pkgorder against a list of rpms that contain kernel.ia32e and 
kernel.x86_64 on an Opteron build server.
Actual results:
Will explode as in bugzilla 133157.

Expected results:
For it to handle this subtle situation (again, I am not sure what the right way
to do that is).

Additional Info:

Is the ia32e vs x86_64 kernels handeled better in RHEL 4?  Is there any 
documentation (official or otherwise) of RH's stratagy for supporting/dealing 
with the Intel and AMD's similar 64 bit archtitectures?

Comment 1 Jeremy Katz 2005-04-08 07:11:23 EDT
With RHEL4, they're both in the x86_64 kernel with run-time switching of the few
things that are needed.  For RHEL3, you really need to have kernel.x86_64
present.  Adding this hack is ... short-term and only a hack at best :)

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