diskimage-builder/diskimage_builder/elements/pkg-map/README.rst
Xinliang Liu a6ee4d0c21 Introduce openEuler distro
Add openeuler-minimal element and add CI functional tests for both
x86_64 and arm64.

OpenEuler is an open source community driven YUM/DNF distro like
Fedora. It references Fedora and CentOS a lot for the rpm packages
building. So somewhat it can be treated as a redhat family distro
and reuse the YUM/DNF related elements to help build openEuler images.

For more info about openEuler, see: https://openeuler.org/en

Depends-On: https://review.opendev.org/c/zuul/zuul-jobs/+/803413
Change-Id: I3e06e49b524364c3a4edeba8bce7a8c06b9c7b76
2021-08-04 03:06:55 +00:00

97 lines
2.6 KiB
ReStructuredText

=======
pkg-map
=======
Map package names to distro specific packages.
Provides the following:
* bin/pkg-map::
usage: pkg-map [-h] [--element ELEMENT] [--distro DISTRO]
Translate package name to distro specific name.
optional arguments:
-h, --help show this help message and exit
--element ELEMENT The element (namespace) to use for translation.
--distro DISTRO The distro name to use for translation. Defaults to
DISTRO_NAME
--release RELEASE The release to use for translation. Defaults to
DIB_RELEASE
* Any element may create its own pkg-map JSON config file using the
one of 4 sections for the release/distro/family/ and or default.
The family is set automatically within pkg-map based on the
supplied distro name. Families include:
+ redhat: includes centos, fedora, openeuler and rhel distros
+ debian: includes debian and ubuntu distros
+ suse: includes the opensuse distro
The release is a specification of distro; i.e. the distro and
release must mach for a translation.
The most specific section takes priority.
An empty package list can be provided.
Example for Nova and Glance (NOTE: using fictitious package names
for Fedora and package mapping for suse family to provide a good
example!)
Example format::
{
"release": {
"fedora": {
"23": {
"nova_package": "foo" "bar"
}
}
},
"distro": {
"fedora": {
"nova_package": "openstack-compute",
"glance_package": "openstack-image"
}
},
"family": {
"redhat": {
"nova_package": "openstack-nova",
"glance_package": "openstack-glance"
},
"suse": {
"nova_package": ""
}
},
"default": {
"nova_package": "nova",
"glance_package": "glance"
}
}
Example commands using this format:
pkg-map --element nova-compute --distro fedora nova_package
Returns: openstack-compute
pkg-map --element nova-compute --distro rhel nova_package
Returns: openstack-nova
pkg-map --element nova-compute --distro ubuntu nova_package
Returns: nova
pkg-map --element nova-compute --distro opensuse nova_package
Returns:
* This output can be used to filter what other tools actually install
(install-packages can be modified to use this for example)
* Individual pkg-map files live within each element. For example
if you are created an Apache element your pkg-map JSON file
should be created at elements/apache/pkg-map.