sorting out trace mode "access denied" messages

Rainer Müller raimue at macports.org
Mon Mar 16 13:39:25 PDT 2009


On 2009-03-16 20:46, Allen McBride wrote:
> First, I added the line "configure.env PYTHON=${prefix}/bin/python2.5"  
> to my portfile.  And now when I do a "sudo port -v configure", I see  
> configure is clearly finding python2.5, not python.
> Yet, now when I do "sudo port -t destroot", I get the following two  
> lines repeated 14 times:
> trace: access denied to /opt/local/Library/Frameworks/Python.framework/ 
> Versions/2.5/lib/python2.5/os.py (*unknown*)
> trace: access denied to /opt/local/Library/Frameworks/Python.framework/ 
> Versions/2.5/lib/python2.5/os.pyc (*unknown*)
> But "port provides" says these two files are provided by python25.

$ port provides
/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.py
/opt/local/lib/python2.5/os.py is provided by: python25

The path
/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5 is
a symlink to /opt/local/lib/python2.5. Trace mode does not seem to
follow or honor the symlink.

But actually trace mode is correct. The path
/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.py
is not associated with any port. Ideally, it would check that the given
path resolves to a valid path and is only using symlinks which belong to
ports in the dependency chain. I would say you found a bug in trace mode.

> Second... and I don't know if this is important, but...
> "port provides /opt/local/bin/python", for me, returns "/opt/local/bin/ 
> python is not provided by a MacPorts port."
> Yet /opt/local/bin/python, which is a symlink to python2.5, was  
> definitely created by python_select (I ran python_select again just to  
> be sure).
> And "port provides" does confirm that "python_select" is provided by  
> python_select and python2.5 is provided by python25.

This is normal behavior. As the symlink can be added/removed or changed
using python_select, it does not belong to the port. To use MacPorts
terms, it is created directly in prefix by running python_select, not in
the destroot.

Rainer


More information about the macports-users mailing list