summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/external/distro.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/spack/external/distro.py b/lib/spack/external/distro.py
index ca25339ec9..c4905c25a5 100644
--- a/lib/spack/external/distro.py
+++ b/lib/spack/external/distro.py
@@ -993,13 +993,18 @@ class LinuxDistribution(object):
continue
match = _DISTRO_RELEASE_BASENAME_PATTERN.match(basename)
if match:
- filepath = os.path.join(_UNIXCONFDIR, basename)
- distro_info = self._parse_distro_release_file(filepath)
- if 'name' in distro_info:
- # The name is always present if the pattern matches
- self.distro_release_file = filepath
- distro_info['id'] = match.group(1)
- return distro_info
+ try:
+ filepath = os.path.join(_UNIXCONFDIR, basename)
+ distro_info = self._parse_distro_release_file(filepath)
+ if 'name' in distro_info:
+ # The name is always present if the pattern matches
+ self.distro_release_file = filepath
+ distro_info['id'] = match.group(1)
+ return distro_info
+ except IOError:
+ # We found a file we do not have permission to read
+ # Continue checking candidate files for distro file.
+ continue
return {}
def _parse_distro_release_file(self, filepath):