94 строки
3.1 KiB
Plaintext
94 строки
3.1 KiB
Plaintext
Open MPI specfile generator
|
|
===========================
|
|
|
|
The Open MPI specfile generator is a tool that scans the Open MPI
|
|
source tree for package description files. Based on this file a
|
|
specfile will be generated which will produce a RPM for each specified
|
|
package (if the corresponding files have been created). All files that
|
|
are not specified to belong to a package will be put in the base
|
|
package.
|
|
|
|
The produced specfile is able to detect at build time if a package RPM
|
|
should be build or not (e.g. if the gm component hasn't been build the
|
|
gm package section will be skipped). This approach allows to have one
|
|
big specfile for all possible build systems. The specfile also
|
|
dynamically extracts the version information for each package at build
|
|
time. This is necessary because a static approach would require to
|
|
know the exact low level library version we want to use for this
|
|
package.
|
|
|
|
-- Naming Convention
|
|
The base RPM will have the following naming convention:
|
|
|
|
<OMPI_NAME>-<OMPI_VERSION>-<OMPI_RELEASE>.<ARCH>.rpm
|
|
e.g. openmpi-1.2a1r10877M-1.x86_64.rpm
|
|
|
|
Each RPM that is build based in a package description will have the
|
|
following format:
|
|
|
|
<OMPI_NAME>-<TYPE>-<PACKAGE_NAME>-<OMPI_VERSIO><PACKAGE_NAME>_<PACKAGE_VERSION>-<OMPI_RELEASE>.<ARCH>.rpm
|
|
e.g. openmpi-btl-mvapi-1.2a1r10877Mmvapi_4.1.0-1.x86_64.rpm
|
|
|
|
|
|
Package Description File
|
|
========================
|
|
|
|
Package description files a simple INI files with the suffix
|
|
".package" instead of ".ini". Here is an example of a descriptor file:
|
|
|
|
> cat mvapi.package
|
|
[mvapi]
|
|
summary=MVAPI btl component
|
|
type=btl
|
|
license=BSD
|
|
group=Development/Libraries
|
|
description=MVAPI btl component
|
|
files=%{_prefix}/lib/openmpi/mca_btl_mvapi.so %{_prefix}/lib/openmpi/mca_btl_mvapi.la
|
|
version=%{ompi_compile_root}/ompi/mca/btl/mvapi/get_vapi_version
|
|
vendor=Mellanox
|
|
>
|
|
|
|
-- section name
|
|
The section name is the name of the package that will be created.
|
|
|
|
-- summary
|
|
This summary will be the summary of the RPM.
|
|
|
|
-- description
|
|
The description will become the description of the RPM.
|
|
|
|
-- type
|
|
Specified the type of the package
|
|
|
|
-- license
|
|
The license of the RPM. (default : BSD)
|
|
|
|
-- group
|
|
The group where this package belongs to. (default = Development/Libraries)
|
|
|
|
-- version
|
|
The version field specifies a command that is executed during the RPM
|
|
build process to obtain the version number of the package. This
|
|
command is executed after the source code has been configured,
|
|
compiled and installed. The %{ompi_compile_root} specifies the top
|
|
level directory of the source tree.
|
|
|
|
-- files
|
|
List of files that should be part of the package. The %{_prefix} can
|
|
be used to identify the prefix where Open MPI will be installed. If at
|
|
least on of the specified files exists the package will be build.
|
|
|
|
-- vendor
|
|
The vendor field of RPM. (default = Open MPI)
|
|
|
|
-- requires
|
|
Additional dependencies for this package. The specfile generator will
|
|
automatically add a default dependency for the Open MPI base RPM.
|
|
|
|
If the Open MPI specfile generator should find multiple definitions of
|
|
the same package then the "files" information will be merged and all
|
|
the other fields will be overwritten by the latest information. This
|
|
allows a decentralized package description (e.g. mvapi BTL + mvapi
|
|
MPOOL).
|
|
|