Opened 10 years ago

Closed 9 years ago

Last modified 7 years ago

#44240 closed defect (fixed)

tracelib: resource forks not handled correctly

Reported by: Ionic (Mihai Moldovan) Owned by: macports-tickets@…
Priority: Normal Milestone: MacPorts 2.4.0
Component: base Version: 2.3.99
Keywords: tracemode Cc: neverpanic (Clemens Lang), nerdling (Jeremy Lavergne), cooljeanius (Eric Gallager)
Port:

Description

tracelib is not handling resource forks correctly.

Example from python27's destroot phase:

:info:destroot DYLD_FRAMEWORK_PATH=/opt/local/var/macports/build/_opt_local_var_macports_sources_macports.rsync.ionic.de_release_ports_lang_python27/python27/work/Python-2.7.8  ../python.exe ./scripts/cachersrc.py -v /opt/local/var/macports/build/_opt_local_var_macports_sources_macports.rsync.ionic.de_release_ports_lang_python27/python27/work/destroot/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac /opt/local/var/macports/build/_opt_local_var_macports_sources_macports.rsync.ionic.de_release_ports_lang_python27/python27/work/destroot/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Mac/Tools
:info:destroot Traceback (most recent call last):
:info:destroot   File "./scripts/cachersrc.py", line 44, in <module>
:info:destroot     main()
:info:destroot   File "./scripts/cachersrc.py", line 41, in main
:info:destroot     os.path.walk(dir, handler, (verbose, force))
:info:destroot   File "/opt/local/var/macports/build/_opt_local_var_macports_sources_macports.rsync.ionic.de_release_ports_lang_python27/python27/work/Python-2.7.8/Mac/../Lib/posixpath.py", line 238, in walk
:info:destroot     func(arg, top, names)
:info:destroot   File "./scripts/cachersrc.py", line 23, in handler
:info:destroot     macresource.open_pathname(os.path.join(dirname, fn), verbose=verbose)
:info:destroot   File "/opt/local/var/macports/build/_opt_local_var_macports_sources_macports.rsync.ionic.de_release_ports_lang_python27/python27/work/Python-2.7.8/Lib/plat-mac/macresource.py", line 84, in open_pathname
:info:destroot     refno = Res.FSOpenResourceFile(pathname, u'', 1)
:info:destroot MacOS.Error: (-43, 'Mac OS error code -43')
[...]
:warn:destroot An activity was attempted outside sandbox: /.vol/16777218/20139854/HIToolbox.rsrc
:warn:destroot An activity was attempted outside sandbox: /.vol/16777218/20139854/HIToolbox.rsrc/..namedfork/rsrc
:warn:destroot An activity was attempted outside sandbox: /.vol/16777218/20142168/Localized.rsrc
:warn:destroot An activity was attempted outside sandbox: /.vol/16777218/20142168/Localized.rsrc/..namedfork/rsrc
:warn:destroot An activity was attempted outside sandbox: /.vol/16777218/53126995/python.exe/..namedfork/rsrc
:warn:destroot An activity was attempted outside sandbox: /.vol/16777218/53130438/errors.rsrc
:warn:destroot An activity was attempted outside sandbox: /.vol/16777218/53136261/dialogs.rsrc

For python.exe, denying access to the resource fork leads to a build failure.

The /.vol/.../ path should be resolved to the real one and checks performed against that.

Change History (8)

comment:1 Changed 10 years ago by neverpanic (Clemens Lang)

Keywords: trace mode added

comment:2 Changed 10 years ago by neverpanic (Clemens Lang)

Keywords: tracemode added; trace mode removed

comment:3 Changed 10 years ago by nerdling (Jeremy Lavergne)

Cc: snc@… added

Cc Me!

comment:4 Changed 9 years ago by neverpanic (Clemens Lang)

VolFS paths are correctly handled as of r127033, the Python build in trace mode is fixed with r127024.

Dealing with resource forks (i.e. stripping /..namedfork/* from the path if present) still needs to be done.

comment:5 Changed 9 years ago by neverpanic (Clemens Lang)

Resolution: fixed
Status: newclosed

Resource forks should be handled correctly as of r127673.

comment:6 Changed 9 years ago by neverpanic (Clemens Lang)

Milestone: MacPorts Future

comment:7 Changed 9 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:8 Changed 7 years ago by jmroot (Joshua Root)

Milestone: MacPorts FutureMacPorts 2.4.0
Note: See TracTickets for help on using tickets.