spack.operating_systems package


spack.operating_systems.cray_backend module

class spack.operating_systems.cray_backend.CrayBackend

Bases: spack.operating_systems.linux_distro.LinuxDistro

Compute Node Linux (CNL) is the operating system used for the Cray XC series super computers. It is a very stripped down version of GNU/Linux. Any compilers found through this operating system will be used with modules. If updated, user must make sure that version and name are updated to indicate that OS has been upgraded (or downgraded)

make_compilers(compiler_id, paths)

Read the CLE release file and return a dict with its attributes.

This file is present on newer versions of Cray.

The release file looks something like this:


The dictionary we produce looks like this:

  "RELEASE": "6.0.UP07",
  "BUILD": "6.0.7424",
Returns:dictionary of release attributes
Return type:dict

Read the CLE release file and return the Cray OS version.

This file is present on older versions of Cray.

The release file looks something like this:

Returns:the Cray OS version
Return type:str

spack.operating_systems.cray_frontend module

class spack.operating_systems.cray_frontend.CrayFrontend

Bases: spack.operating_systems.linux_distro.LinuxDistro

Represents OS that runs on login and service nodes of the Cray platform. It acts as a regular Linux without Cray-specific modules and compiler wrappers.


Calls the default function but unloads Cray’s programming environments first.

This prevents from detecting Cray compiler wrappers and avoids possible false detections.


Context manager that unloads Cray Programming Environments.

spack.operating_systems.linux_distro module

class spack.operating_systems.linux_distro.LinuxDistro

Bases: spack.architecture.OperatingSystem

This class will represent the autodetected operating system for a Linux System. Since there are many different flavors of Linux, this class will attempt to encompass them all through autodetection using the python module platform and the method platform.dist()

spack.operating_systems.mac_os module

class spack.operating_systems.mac_os.MacOs

Bases: spack.architecture.OperatingSystem

This class represents the macOS operating system. This will be auto detected using the python platform.mac_ver. The macOS platform will be represented using the major version operating system name, i.e el capitan, yosemite…etc.


Return SDK path


temporary workaround to return a macOS version as a Version object

Module contents