Bug 154154 - pkgorder fails on Opteron server when kernel.ia32e is the only kernel.$arch in the list
Summary: pkgorder fails on Opteron server when kernel.ia32e is the only kernel.$arch i...
Alias: None
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: anaconda
Version: 3.0
Hardware: x86_64
OS: Linux
Target Milestone: ---
Assignee: Anaconda Maintenance Team
QA Contact: Mike McLean
Depends On:
TreeView+ depends on / blocked
Reported: 2005-04-07 21:11 UTC by James Olin Oden
Modified: 2007-11-30 22:07 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2005-04-08 11:11:23 UTC
Target Upstream Version:

Attachments (Terms of Use)

Description James Olin Oden 2005-04-07 21:11:28 UTC
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 11:11:23 UTC
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.