Description of problem: Basically, I am on an AMD64 system trying to build media that only contains the following kernels: kernel.ia32e kernel-smp.x86_64 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: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=133157 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): 9.1.4.1 How reproducible: Very 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? Thanks...james
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 :)