Source code for spack.build_systems.xorg

# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

import spack.package
import spack.util.url

[docs]class XorgPackage(spack.package.PackageBase): """Mixin that takes care of setting url and mirrors for packages.""" #: Path of the package in a mirror xorg_mirror_path = None #: List of mirrors used by Spack # Note: mirrors are a bit tricky, since many are out-of-sync or off. # A good package to test with is `util-macros`, which had a "recent" # release. base_mirrors = [ '', '', '', '', '' ] @property def urls(self): self._ensure_xorg_mirror_path_is_set_or_raise() return [ spack.util.url.join(m, self.xorg_mirror_path, resolve_href=True) for m in self.base_mirrors ] def _ensure_xorg_mirror_path_is_set_or_raise(self): if self.xorg_mirror_path is None: cls_name = type(self).__name__ msg = ('{0} must define a `xorg_mirror_path` attribute' ' [none defined]') raise AttributeError(msg.format(cls_name))