Archive:PackagingDrafts/ASCIINaming

= Common Character Set for Package Naming =

While Fedora is an international community, for consistency and usability, there needs to be a common character set for package naming.

Specifically, all Fedora packages must be named using only the following ASCII characters. These characters are displayed here:

abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789-._+

Separators
Fedora packages may use  as a separator, where necessary. A separator is used to join multiple identifiers that are not present in the upstream name, like a prefix (perl-Foo-Bar).

Special Characters
Some Fedora packages use  as part of their upstream name. This use is permitted in Fedora packages, however, these characters may not be used as separators.

Acceptable: gcc-c++ lm_sensors openoffice.org

Unacceptable: perl+Module+Random ruby_Module_Random python.Module.Random

= When Upstream Naming is outside of the specified character set = Fedora recognizes that the task of converting text to the specified ASCII character set (aka transliteration) is difficult. Accordingly, when the upstream name is outside of the specified ASCII character set, the Fedora package maintainer should first contact the upstream for that software and ask them for a transliteration of the name for Fedora to use.

If (and only if) the upstream is unable, unwilling, or unavailable to provide a transliterated name, the Fedora packager must choose to either perform their own transliteration, or withdraw the package from consideration in Fedora.

When deciding how to transliterate a package name, the Fedora packager should look to see what (if any) other distributions have done for that package's name, and take that into account.

= Extra Provides = Transliterated packages may Provide: the original, non-transliterated name, but are not required to do so.