diff --git a/lib/spack/spack/operating_systems/linux_distro.py b/lib/spack/spack/operating_systems/linux_distro.py index a1721d0623..70ea6a22b5 100644 --- a/lib/spack/spack/operating_systems/linux_distro.py +++ b/lib/spack/spack/operating_systems/linux_distro.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import platform as py_platform import re +from subprocess import check_output from spack.version import Version @@ -51,6 +52,17 @@ def __init__(self): if 'ubuntu' in distname: version = '.'.join(version[0:2]) + # openSUSE Tumbleweed is a rolling release which can change + # more than once in a week, so set version to tumbleweed$GLIBVERS + elif 'opensuse-tumbleweed' in distname or 'opensusetumbleweed' in distname: + distname = 'opensuse' + output = check_output(["ldd", "--version"]).decode() + libcvers = re.findall(r'ldd \(GNU libc\) (.*)', output) + if len(libcvers) == 1: + version = 'tumbleweed' + libcvers[0] + else: + version = 'tumbleweed' + version[0] + else: version = version[0]