diff options
-rw-r--r-- | lib/spack/spack/operating_systems/linux_distro.py | 20 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/qt/package.py | 3 |
2 files changed, 22 insertions, 1 deletions
diff --git a/lib/spack/spack/operating_systems/linux_distro.py b/lib/spack/spack/operating_systems/linux_distro.py index 8bb2aa7749..c03e85ccba 100644 --- a/lib/spack/spack/operating_systems/linux_distro.py +++ b/lib/spack/spack/operating_systems/linux_distro.py @@ -2,11 +2,31 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import platform as py_platform import re +from spack.version import Version + from ._operating_system import OperatingSystem +def kernel_version(): + """Return the kernel version as a Version object. + Note that the kernel version is distinct from OS and/or + distribution versions. For instance: + >>> external.distro.id() + 'centos' + >>> external.distro.version() + '7' + >>> platform.release() + '5.10.84+' + """ + # Strip '+' characters just in case we're running a + # version built from git/etc + clean_version = re.sub(r'\+', r'', py_platform.release()) + return Version(clean_version) + + class LinuxDistro(OperatingSystem): """ This class will represent the autodetected operating system for a Linux System. Since there are many different flavors of diff --git a/var/spack/repos/builtin/packages/qt/package.py b/var/spack/repos/builtin/packages/qt/package.py index e79a72c842..47339df1f8 100644 --- a/var/spack/repos/builtin/packages/qt/package.py +++ b/var/spack/repos/builtin/packages/qt/package.py @@ -10,10 +10,11 @@ import sys import llnl.util.tty as tty from spack import * +from spack.operating_systems.linux_distro import kernel_version from spack.operating_systems.mac_os import macos_version MACOS_VERSION = macos_version() if sys.platform == 'darwin' else None -LINUX_VERSION = Version(platform.release()) if platform.system() == 'Linux' else None +LINUX_VERSION = kernel_version() if platform.system() == 'Linux' else None class Qt(Package): |