Packages supplied by implementations and applications shall follow the following rules for the name field within the package. These rules are not required for the filename of the package file itself.
Note: There are discrepancies among implementations concerning whether the name might be frobnicator-1.7-21-ppc32.rpm or frobnicator-1.7-21-powerpc32.rpm. The architecture aside, recommended practice is for the filename of the package file to match the name within the package.
The following rules apply to the name field alone, not including any release or version.
Note: If the name with the release and version is frobnicator-1.7-21, the name part is frobnicator and falls under the rules for a name with no hyphens.
If the name begins with lsb- and contains no other hyphens, the name shall be assigned by the Linux Assigned Names and Numbers Authority (LANANA), which shall maintain a registry of LSB names. The name may be registered by either an implementation or an application.
If the package name begins with lsb- and contains more than one hyphen (for example lsb-distro.example.com-database or lsb-gnome-gnumeric), then the portion of the package name between first and second hyphens shall either be an LSB provider name assigned by the LANANA, or it may be one of the owners' fully-qualified domain names in lower case (e.g., debian.org, staroffice.sun.com). The LSB provider name assigned by LANANA shall only consist of the ASCII characters [a-z0-9]. The provider name or domain name may be either that of an implementation or an application.
Package names containing no hyphens are reserved for use by implementations. Applications shall not use such names.
Package names which do not start with lsb- and which contain a hyphen are open to both implementations and applications. Implementations may name packages in any part of this namespace. They are encouraged to use names from one of the other namespaces available to them, but this is not required due to the large amount of current practice to the contrary.
Note: Widespread existing practice includes such names as ssh-common, ssh-client, kernel-pcmcia, and the like. Possible alternative names include sshcommon, foolinux-ssh-common (where foolinux is registered to the implementation), or lsb-foolinux-ssh-common.
Note: If an application vendor has domain name such as visicalc.example.com and has registered visicalc as a provider name, they might name packages visicalc-base, visicalc.example.com-charting, and the like.
Package names in this namespace are available to both the implementation and an application. Implementations and applications will need to consider this potential for conflicts when deciding to use these names rather than the alternatives (such as names starting with lsb-).