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.
- httpd, pam, and SDL addon packages are excluded, refer to " Addon Packages (httpd, pam and SDL) ".
- packages that are locale specific, and use the locale in the name are excluded, refer to " Addon Packages (locale) ".
- Compat packages where the base package name ends in a digit. refer to " Multiple packages with the same base name"
- packages where the upstream name naturally contains an underscore are excluded from this. Examples of these packages include:
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
.