Fix some bugs in architecture.
This commit is contained in:
		| @@ -487,25 +487,23 @@ def arch_from_dict(d): | |||||||
|  |  | ||||||
| @memoized | @memoized | ||||||
| def all_platforms(): | def all_platforms(): | ||||||
|     modules = [] |     classes = [] | ||||||
|  |  | ||||||
|     mod_path = spack.platform_path |     mod_path = spack.platform_path | ||||||
|     mod_string = "spack.platformss" |     parent_module = "spack.platforms" | ||||||
|  |  | ||||||
|     for name in list_modules(mod_path): |     for name in list_modules(mod_path): | ||||||
|         mod_name = mod_string + name |         mod_name = '%s.%s' % (parent_module, name) | ||||||
|         path = join_path(mod_path, name) + ".py" |  | ||||||
|         mod = imp.load_source(mod_name, path) |  | ||||||
|         class_name = mod_to_class(name) |         class_name = mod_to_class(name) | ||||||
|  |         mod = __import__(mod_name, fromlist=[class_name]) | ||||||
|         if not hasattr(mod, class_name): |         if not hasattr(mod, class_name): | ||||||
|             tty.die('No class %s defined in %s' % (class_name, mod_name)) |             tty.die('No class %s defined in %s' % (class_name, mod_name)) | ||||||
|         cls = getattr(mod, class_name) |         cls = getattr(mod, class_name) | ||||||
|         if not inspect.isclass(cls): |         if not inspect.isclass(cls): | ||||||
|             tty.die('%s.%s is not a class' % (mod_name, class_name)) |             tty.die('%s.%s is not a class' % (mod_name, class_name)) | ||||||
|  |  | ||||||
|         modules.append(cls) |         classes.append(cls) | ||||||
|  |  | ||||||
|     return modules |     return classes | ||||||
|  |  | ||||||
| @memoized | @memoized | ||||||
| def sys_type(): | def sys_type(): | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | import re | ||||||
| import platform as py_platform | import platform as py_platform | ||||||
| from spack.architecture import OperatingSystem | from spack.architecture import OperatingSystem | ||||||
|  |  | ||||||
| @@ -9,7 +10,13 @@ class LinuxDistro(OperatingSystem): | |||||||
|         platform.dist() |         platform.dist() | ||||||
|     """ |     """ | ||||||
|     def __init__(self): |     def __init__(self): | ||||||
|         name = py_platform.dist()[0] |         distname, version, _ = py_platform.linux_distribution( | ||||||
|         version = py_platform.dist()[1].split(".")[0] # Grabs major version from tuple  |             full_distribution_name=False) | ||||||
|  |  | ||||||
|         super(LinuxDistro, self).__init__(name, version) |         # Grabs major version from tuple on redhat; on other platforms | ||||||
|  |         # grab the first legal identifier in the version field.  On | ||||||
|  |         # debian you get things like 'wheezy/sid'; sid means unstable. | ||||||
|  |         # We just record 'wheezy' and don't get quite so detailed. | ||||||
|  |         version = re.split(r'[^\w-]', version)[0] | ||||||
|  |  | ||||||
|  |         super(LinuxDistro, self).__init__(distname, version) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Todd Gamblin
					Todd Gamblin