tcl needs --disable-corefoundation

Jack Howarth howarth at bromo.med.uc.edu
Sun Oct 11 17:40:12 PDT 2009


On Sun, Oct 11, 2009 at 11:51:26PM +0200, Rainer Müller wrote:
> On 2009-10-11 22:44 , Jack Howarth wrote:
> >     Am I correct in assuming that it is best practices to
> > construct packaging that builds against python25 or python26
> > without requiring the associated python to be activated?
> > I believe the current pymol packaging should now build
> > regardless of the activation state of python26 with the above
> > change.
> 
> Any file in the prefix comes from an active port. Inactive ports are
> "invisible" and cannot be used from other ports.
> 
> See <http://guide.macports.org/#internals.images>
> 
> Rainer

Rainer,
    The current behavior seems really confused. For example, if I have
python25 and python26 installed but only python26 activated, I can
install py25-setuptools with out errors being reported. However, if
I execute...

sudo port install py25-pmw

I get an error...

DEBUG: Found Dependency: receipt exists for python26
--->  Activating py25-pmw @1.3.2_1
DEBUG: Image error: /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Pmw/__init__.py is being used by the active py26-pmw port.  Please deactivate this port first, or use 'port -f activate py25-pmw' to force the activation.
    while executing
"_activate_contents $name $imagefiles $imagedir"
    (procedure "portimage::activate" line 56)
    invoked from within
"registry_activate $name ${version}_${revision}${portvariants} [array get user_options]"
    (procedure "eval_targets" line 21)
    invoked from within
"eval_targets activate"
    invoked from within
"$workername eval eval_targets $target"
    (procedure "mportexec" line 85)
    invoked from within
"mportexec $workername $target"

If I follow the recommendation and execute...

sudo port -f activate py25-pmw

I get errors...

Warning: File /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Pmw/__init__.py already exists.  Moving to: /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Pmw/__init__.py.mp_1255307467.
etc.

The logic of maintaining multiple pythons seem horribly convoluted and very
fragile (at least if you follow the recommendations in the error messages).
Wouldn't it be better to just have any Portfile that needs access to python25
or python26, explicitly depend on it and, if not activated, allow port to request
for and implement the activation in real time during the build?
           Jack



More information about the macports-dev mailing list