From Fedora Project Wiki

Revision as of 10:26, 5 June 2014 by Toshio (talk | contribs) (Update to allow _ in once more case and prefer keeping dots in version numbers of compat packages.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This page is a draft only
It is still under construction and content may change. Do not rely on the information on this page.

A few meetings ago the FPC decided that there was a cornercase where using underscore as a separator made sense. This is an update to the Naming Guidelines to allow that case. I've also updated the example of compat package version numbers to include dot in name and mentioned that dot in name is preferred (which I think was previous consensus. We can remove the preferred wording if that is untrue). These updates involves changes to two sections:


Separators

When naming packages for Fedora, the maintainer must use the dash '-' as the delimiter for name parts. The maintainer must NOT use an underscore '_', a plus '+', or a period '.' as a delimiter. Version numbers used in compat libraries do not need to omit the dot '.' or change it into a dash '-' (see Multiple packages with the same base name for more info on this case).

There are a few exceptions to the no underscore '_' rule.

arptables_jf
dhcpv6_client
java_cup
knm_new
libart_lgpl
lm_sensors
microcode_ctl
nss_db
nss_ldap
sg3_utils
tcp_wrappers

If in doubt, ask on devel@lists.fedoraproject.org.


[...]


Multiple packages with the same base name

For many reasons, it is sometimes advantageous to keep multiple versions of a package in Fedora to be installed simultaneously. When doing so, the package name should reflect this fact. One package should use the base name with no versions and all other addons should note their version in the name.

Example:
The python-sqlalchemy package occasionally has multiple versions in Fedora for backwards compatibility.
The most current version of python-sqlalchemy has Name: python-sqlalchemy
The previous version of python-sqlalchemy has Name: python-sqlalchemy0.5
Removing the dot in the version number may be optionally done and is seen frequently in older packages. Keeping the dot is preferred in new packages as it is less ambiguous what version foo1.1.6 refers to than foo116.
Note that we do not use delimiters in the name in this situation. We attach the version number to the name.

Underscores

There is one time when a delimiter between a compat package's base name and the version are necessary. When the compat package's base name ends in a digit the version MUST be separated from the rest of the package with an underscore.

Example
We want to have a backwards compatible version of the v8 package in Fedora.
The most current version of v8 has Name: v8
The previous version of v8 has Name: v8_3.13
Note that "v8" and "3.13" are separated by an underscore. This makes the package name much more readable than v83.13.