Don't use @system in packages.yaml (#3472)
This commit is contained in:
committed by
Todd Gamblin
parent
5f13e40655
commit
10b767b93f
@@ -85,18 +85,8 @@ Check Installation
|
|||||||
With Spack installed, you should be able to run some basic Spack
|
With Spack installed, you should be able to run some basic Spack
|
||||||
commands. For example:
|
commands. For example:
|
||||||
|
|
||||||
.. code-block:: console
|
.. command-output:: spack spec netcdf
|
||||||
|
|
||||||
$ spack spec netcdf
|
|
||||||
...
|
|
||||||
netcdf@4.4.1%gcc@5.3.0~hdf4+mpi arch=linux-SuSE11-x86_64
|
|
||||||
^curl@7.50.1%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
|
||||||
^openssl@system%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
|
||||||
^zlib@1.2.8%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
|
||||||
^hdf5@1.10.0-patch1%gcc@5.3.0+cxx~debug+fortran+mpi+shared~szip~threadsafe arch=linux-SuSE11-x86_64
|
|
||||||
^openmpi@1.10.1%gcc@5.3.0~mxm~pmi~psm~psm2~slurm~sqlite3~thread_multiple~tm+verbs+vt arch=linux-SuSE11-x86_64
|
|
||||||
^m4@1.4.17%gcc@5.3.0+sigsegv arch=linux-SuSE11-x86_64
|
|
||||||
^libsigsegv@2.10%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
|
||||||
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
Optional: Alternate Prefix
|
Optional: Alternate Prefix
|
||||||
@@ -225,7 +215,7 @@ If you want to see specifics on a particular compiler, you can run
|
|||||||
f77 = /usr/local/bin/ifort-15.0.090
|
f77 = /usr/local/bin/ifort-15.0.090
|
||||||
fc = /usr/local/bin/ifort-15.0.090
|
fc = /usr/local/bin/ifort-15.0.090
|
||||||
modules = []
|
modules = []
|
||||||
operating system = centos6
|
operating_system = centos6
|
||||||
...
|
...
|
||||||
|
|
||||||
This shows which C, C++, and Fortran compilers were detected by Spack.
|
This shows which C, C++, and Fortran compilers were detected by Spack.
|
||||||
@@ -712,19 +702,22 @@ example:
|
|||||||
|
|
||||||
$ curl -O https://github.com/ImageMagick/ImageMagick/archive/7.0.2-7.tar.gz
|
$ curl -O https://github.com/ImageMagick/ImageMagick/archive/7.0.2-7.tar.gz
|
||||||
|
|
||||||
The recommended way to tell Spack to use the system-supplied OpenSSL is
|
To tell Spack to use the system-supplied OpenSSL, first determine what
|
||||||
to add the following to ``packages.yaml``. Note that the ``@system``
|
version you have:
|
||||||
"version" means "I don't care what version it is, just use what is
|
|
||||||
there." This is reasonable for OpenSSL, which has a stable API.
|
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
$ openssl version
|
||||||
|
OpenSSL 1.0.2g 1 Mar 2016
|
||||||
|
|
||||||
|
Then add the following to ``~/.spack/packages.yaml``:
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
openssl:
|
openssl:
|
||||||
paths:
|
paths:
|
||||||
openssl@system: /usr
|
openssl@1.0.2g: /usr
|
||||||
version: [system]
|
|
||||||
buildable: False
|
buildable: False
|
||||||
|
|
||||||
|
|
||||||
@@ -740,8 +733,7 @@ to add the following to ``packages.yaml``:
|
|||||||
packages:
|
packages:
|
||||||
netlib-lapack:
|
netlib-lapack:
|
||||||
paths:
|
paths:
|
||||||
netlib-lapack@system: /usr
|
netlib-lapack@3.6.1: /usr
|
||||||
version: [system]
|
|
||||||
buildable: False
|
buildable: False
|
||||||
all:
|
all:
|
||||||
providers:
|
providers:
|
||||||
@@ -750,11 +742,9 @@ to add the following to ``packages.yaml``:
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The ``@system`` "version" means "I don't care what version it is,
|
Above we pretend that the system-provided BLAS / LAPACK is ``netlib-lapack``
|
||||||
just use what is there." Above we pretend that the system-provided
|
only because it is the only BLAS / LAPACK provider which use standard names
|
||||||
Blas/Lapack is ``netlib-lapack`` only because it is the only BLAS / LAPACK
|
for libraries (as opposed to, for example, ``libopenblas.so``).
|
||||||
provider which use standard names for libraries (as opposed to, for example,
|
|
||||||
`libopenblas.so`).
|
|
||||||
|
|
||||||
Although we specify external package in ``/usr``, Spack is smart enough not
|
Although we specify external package in ``/usr``, Spack is smart enough not
|
||||||
to add ``/usr/lib`` to RPATHs, where it could cause unrelated system
|
to add ``/usr/lib`` to RPATHs, where it could cause unrelated system
|
||||||
@@ -909,7 +899,6 @@ with Spack:
|
|||||||
tcl:
|
tcl:
|
||||||
paths:
|
paths:
|
||||||
tcl@8.5: /usr
|
tcl@8.5: /usr
|
||||||
version: [8.5]
|
|
||||||
buildable: False
|
buildable: False
|
||||||
|
|
||||||
#. Install with:
|
#. Install with:
|
||||||
|
|||||||
@@ -3156,37 +3156,6 @@ Version Lists
|
|||||||
|
|
||||||
Spack packages should list supported versions with the newest first.
|
Spack packages should list supported versions with the newest first.
|
||||||
|
|
||||||
^^^^^^^^^^^^^^^^
|
|
||||||
Special Versions
|
|
||||||
^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
The following *special* version names may be used when building a package:
|
|
||||||
|
|
||||||
"""""""""""
|
|
||||||
``@system``
|
|
||||||
"""""""""""
|
|
||||||
|
|
||||||
Indicates a hook to the OS-installed version of the
|
|
||||||
package. This is useful, for example, to tell Spack to use the
|
|
||||||
OS-installed version in ``packages.yaml``:
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
|
|
||||||
openssl:
|
|
||||||
paths:
|
|
||||||
openssl@system: /usr
|
|
||||||
buildable: False
|
|
||||||
|
|
||||||
Certain Spack internals look for the ``@system`` version and do
|
|
||||||
appropriate things in that case.
|
|
||||||
|
|
||||||
""""""""""
|
|
||||||
``@local``
|
|
||||||
""""""""""
|
|
||||||
|
|
||||||
Indicates the version was built manually from some source
|
|
||||||
tree of unknown provenance (see ``spack setup``).
|
|
||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
Packaging workflow commands
|
Packaging workflow commands
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|||||||
@@ -33,24 +33,12 @@ possible realization of a particular package, out of combinatorially
|
|||||||
many other realizations. For example, here is a concrete spec
|
many other realizations. For example, here is a concrete spec
|
||||||
instantiated from ``curl``:
|
instantiated from ``curl``:
|
||||||
|
|
||||||
.. code-block:: console
|
.. command-output:: spack spec curl
|
||||||
|
|
||||||
curl@7.50.1%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
|
||||||
^openssl@system%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
|
||||||
^zlib@1.2.8%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
|
||||||
|
|
||||||
Spack's core concretization algorithm generates concrete specs by
|
Spack's core concretization algorithm generates concrete specs by
|
||||||
instantiating packages from its repo, based on a set of "hints",
|
instantiating packages from its repo, based on a set of "hints",
|
||||||
including user input and the ``packages.yaml`` file. This algorithm
|
including user input and the ``packages.yaml`` file. This algorithm
|
||||||
may be accessed at any time with the ``spack spec`` command. For
|
may be accessed at any time with the ``spack spec`` command.
|
||||||
example:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ spack spec curl
|
|
||||||
curl@7.50.1%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
|
||||||
^openssl@system%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
|
||||||
^zlib@1.2.8%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
|
||||||
|
|
||||||
Every time Spack installs a package, that installation corresponds to
|
Every time Spack installs a package, that installation corresponds to
|
||||||
a concrete spec. Only a vanishingly small fraction of possible
|
a concrete spec. Only a vanishingly small fraction of possible
|
||||||
@@ -68,7 +56,7 @@ variant, compiler, etc. For example, the following set is consistent:
|
|||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
curl@7.50.1%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
curl@7.50.1%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
||||||
^openssl@system%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
^openssl@1.0.2k%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
||||||
^zlib@1.2.8%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
^zlib@1.2.8%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
||||||
zlib@1.2.8%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
zlib@1.2.8%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
||||||
|
|
||||||
@@ -77,7 +65,7 @@ The following set is not consistent:
|
|||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
curl@7.50.1%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
curl@7.50.1%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
||||||
^openssl@system%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
^openssl@1.0.2k%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
||||||
^zlib@1.2.8%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
^zlib@1.2.8%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
||||||
zlib@1.2.7%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
zlib@1.2.7%gcc@5.3.0 arch=linux-SuSE11-x86_64
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user