m (added Category:Archived packaging guideline drafts in prep to archive)
m (PackagingDrafts/LowerCaseConversion moved to Archive:PackagingDrafts/LowerCaseConversion: (no revisions since import from MoinMoin May 2008) Doc date is 2007. requests package names be lowercase when possible.)
Latest revision as of 20:51, 21 February 2009
Author: Tom 'spot' Callaway
Initial Draft: Wednesday Nov 28, 2007
Last Revised: Wednesday Nov 28, 2007
Adopting a lowercase-only naming model
This document discusses the rationale (both for and against) a lowercase-only naming policy for Fedora 9 and beyond, as well as the implementation method for existing and new packages.
Pros of a lowercase-only model
- Simpler package searching (automagic case insensitive searches)
Cons of a lowercase-only model
- Possibility for namespace conflicts (foo is a text editor, Foo is a video game, FOO is the Fortran Object Oriented toolkit)
- More difficult to determine CPAN name for perl packages, CRAN name for R packages, etc.
- Not complying with precise trademarks (in the event of package name being trademarked)
Packages which are not named in lowercase will need to have the following changes made:
- They will need to add a Provides: for the all lowercase version of the existing package name.
- The previous, case sensitive, name must remain the same. The spec file will not be renamed, nor will the CVS name be changed.
- After adding the Provides (and bumping the release number), all existing case-sensitive packages will need to be rebuilt in devel.
- In the event that an existing package is renamed (aka, it gets a new name in cvs), it should switch to a lowercase-only name.
- This is only necessary for development (F-9), mainainers do not need to make these changes for older branches, but can do so, if they wish. Keep in mind that these changes do not merit rebuilds outside of development, and should only be pushed as updates along with other, more update-worthy, changes.
- All new fedora packages must use a name which is all lowercase.
- Packages may also provide case-sensitive names (as an additional Provides:), but this is not required (or even recommended, in most cases).