diff options
Diffstat (limited to 'lib/spack/docs/build_systems/sourceforgepackage.rst')
-rw-r--r-- | lib/spack/docs/build_systems/sourceforgepackage.rst | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/lib/spack/docs/build_systems/sourceforgepackage.rst b/lib/spack/docs/build_systems/sourceforgepackage.rst new file mode 100644 index 0000000000..e5e7c592cf --- /dev/null +++ b/lib/spack/docs/build_systems/sourceforgepackage.rst @@ -0,0 +1,55 @@ +.. 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) + +.. _sourceforgepackage: + +------------------ +SourceforgePackage +------------------ + +``SourceforgePackage`` is a +`mixin-class <https://en.wikipedia.org/wiki/Mixin>`_. It automatically +sets the URL based on a list of Sourceforge mirrors listed in +`sourceforge_mirror_path`, which defaults to a half dozen known mirrors. +Refer to the package source +(`<https://github.com/spack/spack/blob/develop/lib/spack/spack/build_systems/sourceforge.py>`__) for the current list of mirrors used by Spack. + + +^^^^^^^ +Methods +^^^^^^^ + +This package provides a method for populating mirror URLs. + +**urls** + + This method returns a list of possible URLs for package source. + It is decorated with `property` so its results are treated as + a package attribute. + + Refer to + `<https://spack.readthedocs.io/en/latest/packaging_guide.html#mirrors-of-the-main-url>`__ + for information on how Spack uses the `urls` attribute during + fetching. + +^^^^^ +Usage +^^^^^ + +This helper package can be added to your package by adding it as a base +class of your package and defining the relative location of an archive +file for one version of your software. + +.. code-block:: python + :emphasize-lines: 1,3 + + class MyPackage(AutotoolsPackage, SourceforgePackage): + ... + sourceforge_mirror_path = "my-package/mypackage.1.0.0.tar.gz" + ... + +Over 40 packages are using ``SourceforcePackage`` this mix-in as of +July 2022 so there are multiple packages to choose from if you want +to see a real example. |