[yum-cvs] yum/rpmUtils arch.py,1.13,1.13.4.1
Jeremy Katz
katzj at linux.duke.edu
Wed Jan 3 18:13:46 UTC 2007
Update of /home/groups/yum/cvs/yum/rpmUtils
In directory login1.linux.duke.edu:/tmp/cvs-serv19842/rpmUtils
Modified Files:
Tag: yum-3_0_X
arch.py
Log Message:
sparc support from spot (rh#220953)
Index: arch.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/rpmUtils/arch.py,v
retrieving revision 1.13
retrieving revision 1.13.4.1
diff -u -r1.13 -r1.13.4.1
--- arch.py 23 Oct 2005 16:03:42 -0000 1.13
+++ arch.py 3 Jan 2007 18:13:44 -0000 1.13.4.1
@@ -5,7 +5,8 @@
# dict mapping arch -> ( multicompat, best personality, biarch personality )
multilibArches = { "x86_64": ( "athlon", "x86_64", "athlon" ),
- "sparc64": ( "sparc", "sparc", "sparc64" ),
+ "sparc64v": ( "sparc", "sparcv9v", "sparc64v" ),
+ "sparc64": ( "sparc", "sparcv9", "sparc64" ),
"ppc64": ( "ppc", "ppc", "ppc64" ),
"s390x": ( "s390", "s390x", "s390" ),
"ia64": ( "i686", "ia64", "i686" )
@@ -38,7 +39,10 @@
"s390": "noarch",
# sparc
+ "sparc64v": "sparc64",
+ "sparc64v": "sparcv9v",
"sparc64": "sparcv9",
+ "sparcv9v": "sparcv9",
"sparcv9": "sparcv8",
"sparcv8": "sparc",
"sparc": "noarch",
@@ -125,6 +129,11 @@
while arches.has_key(thisarch):
thisarch = arches[thisarch]
archlist.append(thisarch)
+
+ # hack hack hack
+ # sparc64v is also sparc64 compat
+ if archlist[0] == "sparc64v":
+ archlist.insert(1,"sparc64")
return archlist
@@ -170,6 +179,29 @@
return "ppc64iseries"
return arch
+def getCanonSPARCArch(arch):
+ # Deal with sun4v, sun4u, sun4m cases
+ f = open("/proc/cpuinfo", "r")
+ lines = f.readlines()
+ f.close()
+ for line in lines:
+ if line.startswith("type"):
+ SPARCtype = line.split(':')[1]
+ break
+ if SPARCtype.find("sun4v") != -1:
+ if arch.startswith("sparc64"):
+ return "sparc64v"
+ else:
+ return "sparcv9v"
+ if SPARCtype.find("sun4u") != -1:
+ if arch.startswith("sparc64"):
+ return "sparc64"
+ else:
+ return "sparcv9"
+ if SPARCtype.find("sun4m") != -1:
+ return "sparcv8"
+ return arch
+
def getCanonX86_64Arch(arch):
if arch != "x86_64":
return arch
@@ -209,6 +241,8 @@
if arch.startswith("ppc"):
return getCanonPPCArch(arch)
+ if arch.startswith("sparc"):
+ return getCanonSPARCArch(arch)
if arch == "x86_64":
return getCanonX86_64Arch(arch)
@@ -228,7 +262,7 @@
def getBestArch():
arch = canonArch
- if arch == "sparc64":
+ if arch.startswith("sparc64"):
arch = "sparc"
if arch.startswith("ppc64"):
@@ -247,7 +281,7 @@
if not arches.has_key(myarch): # this is dumb, but <shrug>
return myarch
- if myarch == "sparc64":
+ if myarch.startswith("sparc64"):
return "sparc"
elif myarch.startswith("ppc64"):
return "ppc"
More information about the Yum-cvs-commits
mailing list