Add function to determine Linux kernel version (#27855)
This reports the kernel version (vs. the distro version) on Linux and returns a valid Version (stripping characters like '+' which may be present for custom-built kernels).
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user