[repo-coord] PyVault Nomenclature
Jeff Pitman
symbiont at berlios.de
Sun May 9 18:20:02 CEST 2004
All:
I'm throwing out a very alpha version of document that will list some
guidelines about naming. For versioning, I'll try to stick with what's
mainstream (ie, python2.3-2.3.3-3.pyv.0.rh90). Take a look and bombard
me with your feedback. This repo is meant to be, in legacy redhat,
separated from all other versions of Python.
I'm also considering a python1.5 compat package for later distros that
have dropped it.
take care,
--
-jeff
-------------- next part --------------
PyVault Naming Standard
Jeff Pitman
20 April 2004
Herein contains information regarding how the PyVault repository will
name packages, and the standard's relationship with other methodolo-
gies. Technicalities such as Obsoletes, Provides, Requires, Buil-
dRequires, %setup, and other RPM Specification file details may also
be addressed.
______________________________________________________________________
Table of Contents
1. Existing Conventions
1.1 Fedora
1.2 ATrpms
1.3 PyPackage.org
1.4 Dag
2. Naming Standard
2.1 Goal
2.2 Configuration
2.3 Suffix Scheme
2.4 Library Add-ons
2.5 Applications
______________________________________________________________________
[1m1. Existing Conventions[0m
[1m1.1. Fedora[0m
See http://www.fedora.us/wiki/PackageNamingGuidelines. There is a long
explanation about vepochs, which I have doubts they are absolutely
necessary for every package, so I'll take this on an as-needed basis.
[1m1.2. ATrpms[0m
ATrpms uses a more Redhat-esque approach by naming every package,
regardless of its role, closer to the original package name as
distributed by the original Python package.
[1m1.3. PyPackage.org[0m
Packages found at pypackage.org are all written in lowercase with a
few exceptions. The convention of prefixing "python" is also used for
add-on libraries.
[1m1.4. Dag[0m
The dag repository uses a similar convention as pypackage.org.
[1m2. Naming Standard[0m
[1m2.1. Goal[0m
The goal of the PyVault repository is to provide the latest in Python
on a wide range of RPM platforms including those that already contain
and depend upon an older copy of Python. PyVault packages are created
with the intent of being a packaged sub-system only repackaging the
absolute minimal necessary dependencies.
Distribution releases never correspond with major releases of Python;
it wouldn't be possible to enact such coordination. Therefore, PyVault
will track the latest versions of Python and major third-party
libraries.
A typical use for the repository would be:
1. Develop programs in a Fedora Core 2 environment, using
bicyclerepair, scons, and other development tools.
2. Program is deployed into a cluster running Redhat 7.3 or Redhat 9.
As the cluster is running in a 24-hour non-stop environment, only
user-level package modifications can be made. (Obviously, after
some testing...)
PyVault will [4mnot[24m create a slew of compatibility packages nor will it
attempt to upgrade distribution-specific packages that depend on an
existing version of Python. The Vault exists in its own litle corner.
[1m2.2. Configuration[0m
PyVault will depend on configuration found in the build user's
~/.rpmmacros file to determine what suffix to use on a repository-wide
basis. This will lessen the need for re-editing all the spec files
when the next version of Python is released.
Typical configuration (XXX - sorry for the LyX/linuxdoc bug and I
can't get sgml/docbook from atrpms working):
______________________________________________________________________
<![CDATA[%packager PyVault Repository <http://pyvault.berlios.de/>
]]><![CDATA[%vendor PyVault
]]><![CDATA[%pyver 2.3
]]><![CDATA[%pypatch_level 2.3.3
]]><![CDATA[%python python%{pyver}
]]><![CDATA[%__python /usr/bin/python%{pyver}
]]><![CDATA[%pyusesuffix 1
]]>
______________________________________________________________________
[1m2.3. Suffix Scheme[0m
With an older version of the Python binary on some RPM-based
distributions, it is necessary to create a suffix scheme such that
file conflicts are eliminated. In the default Python spec file, a
macro named %{binsuffix} is used to concatenate against man pages and
binaries found in /usr/bin.
[1m2.4. Library Add-ons[0m
Add-on packages are those that are meant to be used from a user's
Python program. A distinct attribute of a Python add-on package is
over 80% of the installed files are located in the directory,
/usr/lib/python?.?/site-packages/. These packages will be named with a
prefix to the tune of how Perl Add-on libraries are named:
+o python-crypto
+o python-soappy
+o python-twisted
XXX - Do we want all lowercase, or bumpy text matching original
package name?
XXX - Do we want to simplify package naming? PyXML --> python-xml,
PyOpenSSL -> python-openssl?
[1m2.5. Applications[0m
Third-party applications will follow regular package naming
conventions. The following are a few examples:
+o zope
+o scons
XXX - Upper or lower case?
More information about the repo-coord
mailing list