py-distribute update leftover

Jason Helfman jgh at FreeBSD.org
Sat Apr 13 17:58:57 UTC 2013


On Wed, Oct 3, 2012 at 5:11 AM, Ruslan Mahmatkhanov <cvs-src at yandex.ru>wrote:

> Hello,
>
> Volodymyr Kostyrko wrote on 03.10.2012 15:20:
>
>  Hello.
>>
>> Recent py-ditribute update doesn't update easy_install.pth on python2.7:
>>
>> ===>>> The following actions were performed:
>>          Re-installation of py27-distribute-0.6.28
>>
>> # cd /usr/local/lib/python2.7/site-**packages/
>> # cat easy-install.pth
>> import sys; sys.__plen = len(sys.path)
>> ./distribute-0.6.27-py2.7.egg
>> ./Pyrseas-0.5.0-py2.7.egg
>> ./Babel-0.9.6-py2.7.egg
>> ./Genshi-0.6-py2.7.egg
>> ./Pygments-1.5-py2.7.egg
>> ./Trac-0.12.3-py2.7.egg
>> ./hg_git-0.3.3-py2.7.egg
>> ./graphviz-0.7.4-py2.7.egg
>> ./TracTocMacro-11.0.0.3-py2.7.**egg
>> ./pytz-2012f-py2.7.egg
>> import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:];
>> p=getattr(sys,'__egginsert',0)**; sys.path[p:p]=new; sys.__egginsert =
>> p+len(new)
>>
>> And a new file was created:
>>
>> # cat easy-install.pth.dist
>> import sys; sys.__plen = len(sys.path)
>> ./distribute-0.6.28-py2.7.egg
>> import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:];
>> p=getattr(sys,'__egginsert',0)**; sys.path[p:p]=new; sys.__egginsert =
>> p+len(new)
>>
>
> It's in pkg-plist logic:
> """
> %%PYTHON_SITELIBDIR%%/easy-**install.pth.dist
> @exec if [ ! -f %B/easy-install.pth ]; then cp %B/%f %B/easy-install.pth;
> fi
> """
>
> easy-install.pth.dist is always installed, and it will be only copied to
> easy-install.pth if there is no one already.
>
> What about easy-install.pth contents is not updated - I need an testing
> environment. Would you describe the steps you did to stick with distribute
> instead of setuptools and I'll try to reproduce?
>
> --
> Regards,
> Ruslan


In porting a new application, I found the logic in the pkg-plist, after
investigation with a fellow developer (db@) to potentially not be the best
path.

The application I ported updates easy-install.pth, as I assume other py-
packages do, much like installing openjdk6 would register the jvm. So this
file will always differ, and never be removed.

@unexec if cmp -s %B/easy-install.pth %B/easy-install.pth.dist; then rm
%B/easy-install.pth; fi

Unless, of course, on de-installation if the egg would be de-registered
from easy-install.pth through the Mk framework.

On a clean system, all packages would register, and then de-register on
de-installation and then the file would be safely removed.

https://redports.org/buildarchive/20130412222501-42749/

I would appreciate any feedback.

Thanks!

-jgh

--
Jason Helfman          | FreeBSD Committer
jgh at FreeBSD.org     | http://people.freebsd.org/~jgh  | The Power to Serve


More information about the freebsd-python mailing list