Red Hat Bugzilla – Bug 154154
pkgorder fails on Opteron server when kernel.ia32e is the only kernel.$arch in the list
Last modified: 2007-11-30 17:07:06 EST
Description of problem:
Basically, I am on an AMD64 system trying to build media that only contains the
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:
+ # 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
ret = archDifference(arches[myarch], targetarch)
if ret != 0:
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Run pkgorder against a list of rpms that contain kernel.ia32e and
kernel.x86_64 on an Opteron build server.
Will explode as in bugzilla 133157.
For it to handle this subtle situation (again, I am not sure what the right way
to do that is).
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?
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 :)