python packaging, egg-info file vs. directory

Toshio Kuratomi a.badger at gmail.com
Tue Apr 15 18:13:28 UTC 2008


Joel Andres Granados wrote:
> Toshio Kuratomi wrote:
>> Joel Andres Granados wrote:
>>> Toshio Kuratomi wrote:
>>>> Thomas Moschny wrote:
>>>>> Hi!
>>>>>
>>>>> Recently encountered a problem with the python-demjson rpm I maintain:
>>>>> The demjson package does not use setuptools, so, in accordance with
>>>>> the python packaging guidelines, I used the trick of preloading
>>>>> setuptools prior to executing setup.py, for F7 and F8 only. This
>>>>> produces an egg-info directory, fine.
>>>>>
>>>>> Now, for F9, egg-info is generated automatically, but it turns out
>>>>> that this produces an egg-info file instead of an directory. This in
>>>>> turn causes problems when upgrading from F8 to F9, because rpm can't
>>>>> replace a dir with a file.
>>>>>
>>>>> Any advices on how to solve this?
>>>>>
>>>>
>>>> Do you have a reason to need eggs on F7 and F8?
>>>
>>> Thats strange, I thought it was added because of policy as opposed to 
>>> reason.  Firstaidkit has no need for eggs, but the reviewer insisted 
>>> on adding to them.  FWI, firstaidkit chooses to handle the plugins 
>>> with rpm, which is a valid alternative to eggs.
>>>
>> Maybe the Guidelines need rewording.  Can you point at something in 
>> the Guidelines that could be improved to show that using setuptools to 
>> add eggs in F7/F8 is optional?  (All packages must handle the egg 
>> files in F9+ and they must handle eggs created by packages which use 
>> setuptools normally.  The optional part is when adding eggs to a 
>> package which doesn't provide them on its own.)
>>
>> -Toshio
>>
> maybe change it a little:
> Change the "when to provide eggs"  in 
> http://fedoraproject.org/wiki/Packaging/Python/Eggs
> "
> Starting with Fedora 9, our python package provides egg-info for any 
> distutils and setuptools packages. Since this establishes a base of 
> functionality that upstream authors can expect, we need to be sure we 
> include those files when needed. In Fedora 8 and below eggs can be 
> provided when the package uses setuptools.  In this case eggs are 
> optional.  In F9+ eggs have to be provided when the upstream package 
> provides them and are optional when the upstream package does not 
> provide them.
> "

That seems a bit confusing to me as it seems to say that if a package 
builds eggs it is optional whether to include them.  We really want to 
be saying: "If the package builds eggs, you must include them.  If the 
package does not produce eggs you can use this optional setuptools 
trickery to produce them."  Maybe this is clearer:

'''
Since eggs establish a base of functionality that upstream authors can 
expect, we need to be sure to include the egg files if a package builds 
them.  Starting with Fedora 9, our python package providses egg-info for 
any package that uses setuptools or distutils to build.  In Fedora 8 or 
less, only setuptools packages build eggs.  If you need to provide eggs 
for a distutils package on Fedora 8 or less, "Providing Eggs using 
Setuptools" describes a method of substituting setuptools for distutils 
in the build process so egg-info is built.
'''

If this wording is better, I'll change the page to reflect this.
-Toshio

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/fedora-devel-list/attachments/20080415/1c1cbc45/attachment.sig>


More information about the fedora-devel-list mailing list