Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
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/       2005-04-07 15:46:53.000000000 -0400
+++ rhpl-0.110.6/src/    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.