[Fedora-packaging] Re: Python Virtual Provides

David Malcolm dmalcolm at redhat.com
Mon Jun 16 20:31:49 UTC 2008


On Mon, 2008-06-16 at 15:56 -0400, David Malcolm wrote:
> On Mon, 2008-06-16 at 14:30 -0400, Toshio Kuratomi wrote:
> > I've added Python Virtual Provides to the list of draft guidelines.
> > 
> > https://fedoraproject.org/wiki/PackagingDrafts/Python
> > 
> > There are two parts:
> > 1) introduce virtual provides for python eggs.  Copying from the way we 
> > do rubygems, this would be:
> > 
> > Provides: pythonegg(SQLAlchemy) = %{version}
> > Requires: pythonegg(SQLAlchemy) >= 0.3.11
> > 
> > 2) introduce virtualprovides for normal python modules:
> > 
> > Provides: python(sqlalchemy) = %{version}
> > Requires: python(sqlalchemy)
> > 
> > The motivation for this is that David Malcolm (dmalcolm) wrote a proof 
> > of concept script to show how easy it would be to extract egg dependency 
> > information as part of the rpm build process.
> 
> I ran into various inconsistencies between the versions listed in the
> egg requires.txt file and the rpm specfile, and thought that the latter
> ought to be autogenerated from the former.
> 
> First pass at a script attached to bug 451228, and I posted this to
> fedora-python-devel-list:
> https://www.redhat.com/archives/fedora-python-devel-list/2008-June/msg00002.html
> 
> Obvious mistake I made was to try to store the mapping from python
> modules to package names, instead, the script ought to generate some
> kind of virtual provides as in Toshio's suggestion above.  Should be
> simple to update the script

Implemented, attached to bug 451228.  This generates the following for
the TurboGears egg (telling it to use the optional SQLAlchemy stuff):

# Autogenerated metadata from "requires.py
/usr/lib/python2.4/site-packages/TurboGears-1.0.4.4-py2.4.egg-info SQLAlchemy"
Provides: pythonegg(TurboGears) = 1.0.4.4
Requires: pythonegg(CherryPy) >= 2.3.0
Requires: pythonegg(CherryPy) < 3.0.0alpha
Requires: pythonegg(DecoratorTools) >= 1.4
Requires: pythonegg(FormEncode) >= 0.7.1
Requires: pythonegg(PasteScript) >= 1.6.2
Requires: pythonegg(RuleDispatch) >= 0.5a0.dev-r2303
Requires: pythonegg(setuptools) >= 0.6c2
Requires: pythonegg(simplejson) >= 1.3
Requires: pythonegg(TurboCheetah) >= 1.0
Requires: pythonegg(TurboJson) >= 1.1.2
Requires: pythonegg(TurboKid) >= 1.0.4
Requires: pythonegg(SQLAlchemy) >= 0.3.10

Is the dash in the RuleDispatch version likely to cause problems?


> 
> > 
> > Since this will be a far reaching change, should it be discussed on 
> > fedora-devel-list first or whether we want to do both parts?
> > 
> 
> Could we simply put the script in a place where it's available to the
> maintainer, so they can opt-in and have it generate the deps?
> 
> 
> Hope this helps
> Dave
> 
> --
> Fedora-packaging mailing list
> Fedora-packaging at redhat.com
> https://www.redhat.com/mailman/listinfo/fedora-packaging




More information about the Fedora-packaging mailing list