b9195145e9
This commit was SVN r14628.
84 строки
3.2 KiB
Plaintext
84 строки
3.2 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).
|
|
|