From Fedora Project Wiki

Revision as of 09:42, 18 May 2016 by Churchyard (talk | contribs) (original)

Addon Packages (General)

If a new package is considered an "addon" package that enhances or adds a new functionality to an existing Fedora package without being useful on its own, its name should reflect this fact.

The new package ("child") should prepend the "parent" package in its name, in the format: %{parent}-%{child}.

Examples:

gnome-applet-netmon (netmon applet for gnome, relies on gnome)
php-adodb (adodb functionality for php, relies on php)
python-twisted (the twisted module for python, relies on python)
xmms-cdread (direct cd read functionality for xmms, relies on xmms)

When the addon package is a language binding, note that the language itself is always the parent. Thus, a lua binding for the "randomdb" database would be lua-randomdb, not randomdb-lua. Also note that some packages may have grandfathered names using the opposite ordering.

There are some exceptions to this general addon package naming policy, and they are noted below.

Addon Packages (python modules)

Packages of python modules (thus they rely on python as a parent) use a slightly different naming scheme. They should take into account the upstream name of the python module. This makes a package name format of python-$NAME. When in doubt, use the name of the module that you type to import it in a script.

Examples:

python-psycopg  (python module named psycopg)
python-simpletal (python module named simpletal)
python-tpg (python module named tpg)

When a module has a dot in its name, the usual rule about changing "." to "-" applies.

Addon Packages (python3 modules)

An rpm with a python prefix means a python2 rpm so we need a different prefix to denote python3 packages. For this, we use python3. We have two constraints that the python2 packages don't operate under:

  1. We need to be clear about these modules being for python3. Some python2 packages are named using an old, removed exception that allowed them to omit the "python-" prefix if they already had "py" in their names. No such exception has ever existed for python3 modules.
  2. Consumers of the packages need to be able to find them even if they don't know whether they're using the python2 or python3 version.

So all python3 modules MUST have python3 in their name. Other than that, the module must be in the same format as the python2 package. Some examples:

Fedora python 2 package Upstream name Fedora Python 3 package name
python-lxml lxml python3-lxml
gstreamer-python gst-python gstreamer-python3
gnome-python2 gnome-python gnome-python3
rpm-python (part of rpm) rpm-python3
python-pygments pygments python3-pygments
pygtk2
(grandfathered in. Named using
a now removed exception)
pygtk python3-pygtk