[Yum-devel] [PATCH] Fix for /proc isn't mounted, continues as though cpuinfo was empty
James Antill
james at and.org
Wed Jul 14 17:09:25 UTC 2010
---
rpmUtils/arch.py | 34 +++++++++++++---------------------
1 files changed, 13 insertions(+), 21 deletions(-)
diff --git a/rpmUtils/arch.py b/rpmUtils/arch.py
index af0d782..5512ea6 100644
--- a/rpmUtils/arch.py
+++ b/rpmUtils/arch.py
@@ -202,15 +202,19 @@ def getArchList(thisarch=None):
archlist.append('noarch')
return archlist
-
+def _try_read_cpuinfo():
+ """ Try to read /proc/cpuinfo ... if we can't ignore errors (ie. proc not
+ mounted). """
+ try:
+ lines = open("/proc/cpuinfo", "r").readlines()
+ return lines
+ except:
+ return []
def getCanonX86Arch(arch):
#
if arch == "i586":
- f = open("/proc/cpuinfo", "r")
- lines = f.readlines()
- f.close()
- for line in lines:
+ for line in _try_read_cpuinfo():
if line.startswith("model name") and line.find("Geode(TM)") != -1:
return "geode"
return arch
@@ -219,10 +223,7 @@ def getCanonX86Arch(arch):
return arch
# if we're i686 and AuthenticAMD, then we should be an athlon
- f = open("/proc/cpuinfo", "r")
- lines = f.readlines()
- f.close()
- for line in lines:
+ for line in _try_read_cpuinfo():
if line.startswith("vendor") and line.find("AuthenticAMD") != -1:
return "athlon"
# i686 doesn't guarantee cmov, but we depend on it
@@ -237,10 +238,7 @@ def getCanonPPCArch(arch):
return arch
machine = None
- f = open("/proc/cpuinfo", "r")
- lines = f.readlines()
- f.close()
- for line in lines:
+ for line in _try_read_cpuinfo():
if line.find("machine") != -1:
machine = line.split(':')[1]
break
@@ -256,10 +254,7 @@ def getCanonPPCArch(arch):
def getCanonSPARCArch(arch):
# Deal with sun4v, sun4u, sun4m cases
SPARCtype = None
- f = open("/proc/cpuinfo", "r")
- lines = f.readlines()
- f.close()
- for line in lines:
+ for line in _try_read_cpuinfo():
if line.startswith("type"):
SPARCtype = line.split(':')[1]
break
@@ -285,10 +280,7 @@ def getCanonX86_64Arch(arch):
return arch
vendor = None
- f = open("/proc/cpuinfo", "r")
- lines = f.readlines()
- f.close()
- for line in lines:
+ for line in _try_read_cpuinfo():
if line.startswith("vendor_id"):
vendor = line.split(':')[1]
break
--
1.7.0.1
More information about the Yum-devel
mailing list