Difference between revisions of "StarlingX/CentosToDebian"
(Created page with "== Overview == The purpose of this wiki is to provide some guidance for converting a CentOS package to a Debian package. == CentOS Package Files == There are two main files...") |
|||
Line 39: | Line 39: | ||
! Directive !! Type !! Description | ! Directive !! Type !! Description | ||
|- | |- | ||
− | | Summary || Preamble || A brief description of the package | + | | Summary || Preamble || A brief description of the package. |
|- | |- | ||
− | | | + | | Name || Preamble || The name of the package. |
|- | |- | ||
− | | | + | | Version || Preamble || The current version of the package. |
|- | |- | ||
− | | | + | | Source* || Preamble || Specifies a source file for the build. |
|- | |- | ||
− | | | + | | BuildRequires || Preamble || Specifies a dependency for the package. |
|- | |- | ||
− | | | + | | Requires || Preamble || Specifies a dependency for the package. |
|- | |- | ||
− | | | + | | %package || Body || Defines an RPM file to be built. This is used if multiple RPMs are built from the SPEC file. |
|- | |- | ||
− | | | + | | %description || Body || A detailed description of the package |
|- | |- | ||
− | | | + | | %prep || Body || Steps for preparing the software to be built. This might include extracting a tar file of upstream source code, for example. |
|- | |- | ||
− | | | + | | %build || Body || Specifies the rules to build the software of the package. |
|- | |- | ||
− | | | + | | %install || Body || Specifies the install rules for the package. Files are copied from the build directory to the directory structure containing the files to be installed. |
|- | |- | ||
− | | | + | | %files || Body ||Defines the files to be installed on a a system when the package is installed |
− | |||
− | |||
|} | |} | ||
+ | |||
+ | == Mapping a CentOS Specification file to Debian Build Files == | ||
+ | |||
+ | The following table shows at a high level how to map sections of Centos .spec |
Revision as of 15:39, 9 November 2021
Contents
Overview
The purpose of this wiki is to provide some guidance for converting a CentOS package to a Debian package.
CentOS Package Files
There are two main files which specify the CentOS build of a package:
- build_srpm.data - Specifies the input sources for the build (both within and external to the package repository).
- <packageName>.spec - Specification file which defines the package(s), dependencies, build rules and install rules.
These files are found in the "centos" directory which is generally a top-level directory in the root package directory. For example:
- Repository: nfv
- Package directory: nfv/nova-api-proxy
- CentOS build directory: nfv/nova-api-proxy/centos
The "debian" build directory is a peer of the "centos" directory (i.e. nfv/nova-api-proxy/debian).
build_srpm.data
The build_srpm.data file defines the source inputs for the package build. The inputs may be files from the package repo itself, files from another repo or files from a download mirror.
The following variables are commonly used for these inputs:
- CGCS_BASE - An import mirror (/import/mirrors/starlingx).
- PKG_BASE - The root package directory.
- STX_BASE - The root directory for all StarlingX repositories.
Specification File
The specification file drives the CentOS package build. It contains two main sections:
- Preamble - Defines metadata for the build.
- Body - Contains the build instructions.
The following table describes the commonly used fields (SPEC directives) in the specification file.
Directive | Type | Description |
---|---|---|
Summary | Preamble | A brief description of the package. |
Name | Preamble | The name of the package. |
Version | Preamble | The current version of the package. |
Source* | Preamble | Specifies a source file for the build. |
BuildRequires | Preamble | Specifies a dependency for the package. |
Requires | Preamble | Specifies a dependency for the package. |
%package | Body | Defines an RPM file to be built. This is used if multiple RPMs are built from the SPEC file. |
%description | Body | A detailed description of the package |
%prep | Body | Steps for preparing the software to be built. This might include extracting a tar file of upstream source code, for example. |
%build | Body | Specifies the rules to build the software of the package. |
%install | Body | Specifies the install rules for the package. Files are copied from the build directory to the directory structure containing the files to be installed. |
%files | Body | Defines the files to be installed on a a system when the package is installed |
Mapping a CentOS Specification file to Debian Build Files
The following table shows at a high level how to map sections of Centos .spec