[patch] always install python's eggs as unpacked files

Andrey Zonov andrey at zonov.org
Sun Aug 7 19:14:25 UTC 2011


Thank you for you feedback. I've fixed that problem easier.
My point is that I don't want to fix all bad ports. I want to fix them 
all at once, completely.

Tomorrow I want to try to build all 400 python modules that use 
`easy_install' in my tinderbox with this patch.

Andrey Zonov

07.08.2011 22:11, Volodymyr Kostyrko пишет:
> 07.08.2011 14:24, Andrey Zonov wrote:
>> Hi,
>> I've got two problems with python's eggs installed from ports.
>> As you know, many eggs install from ports as archives and then
>> unprivileged pseudo-user tries to use them, it's got an error about
>> can't creating PYTHON_EGG_CACHE. That's OK, I've just set environment
>> "PYTHON_EGG_CACHE=/var/tmp" and all works quite well. But a week ago I
>> needed to run two daemons that use pymongo and I couldn't do this. The
>> first daemon created PYTHON_EGG_CACHE and unpacked pymongo, but the
>> second couldn't create PYTHON_EGG_CACHE because PYTHON_EGG_CACHE already
>> exists! Even though they both run as "nobody".
>> The second problem with that behaviour is when you're installing some
>> python module from packages you need the Internet connection to get an
>> egg from site and build it on-the-fly.
>> Please, inspect my patch. I think that's a good solution for that 
>> problems.
> I second this one, default behavior seems incorrect for me too.
> I've tested the patch against devel/py-greenlet an it works for me 
> with minor changes (commenting out PYDISTUTILS_INSTALLARGS).
-------------- next part --------------
--- /usr/ports/Mk/bsd.python.mk.orig	2011-08-03 01:14:21.000000000 +0000
+++ /usr/ports/Mk/bsd.python.mk	2011-08-07 19:03:13.000000000 +0000
@@ -460,7 +460,7 @@
@@ -496,10 +496,14 @@
 add-plist-post: add-plist-easyinstall
 	@# @unexec line must be located before any other line while @exec must not.
-	@${CAT} ${TMPPLIST} > ${TMPPLIST}.pei_tmp
+	@${TOUCH} ${TMPPLIST}.egg
+	@${SED} -i "" -e 's,^${PREFIX}/,,' ${TMPPLIST}.egg
+		> ${TMPPLIST}.pei_tmp || ${TRUE}
 		> ${TMPPLIST}
-	@${CAT} ${TMPPLIST}.pei_tmp >> ${TMPPLIST}
+	@${SORT} -ru ${TMPPLIST}.egg ${TMPPLIST}.pei_tmp >> ${TMPPLIST}
 		>> ${TMPPLIST}

More information about the freebsd-ports mailing list