Please test trace mode with your ports
Clemens Lang
cal at macports.org
Wed Nov 6 18:09:01 PST 2013
Hi,
I just committed a major overhaul of trace mode[1] in r113026[2] that
fixes the last few problems I have seen so far. All ports that I have
installed on my system (currently 526) build fine using these fixes, so
I think it should be pretty complete now.
If you have MacPorts trunk installed, please update to the latest
revision and test your ports with trace mode (port -t install …). The
most common issues you will likely see are
- a longer build time; unfortunately trace mode currently has an
noticeable impact on build times. This is mostly due to the code that
checks readdir(3) for sandbox violations.
- missing dependencies, or dependencies not specified correctly; e.g.
some ports that declare depends_run port:a but check for the contents
of a at configure time will need depends_build port:a.
- subversion checkouts using /usr/bin/svn crash with a segmentation
fault at the end of the checkout. I have not been able to find out
why that happens yet. It might be a stack overflow somewhere in
darwintrace.dylib, though.
A couple of port-specific notes:
- The "go" port will not build in trace mode due to some low-level
stuff that requires the go code to be the first lines of code to be
executed.
- The graphviz port will currently fail to build due to a broken
configure check, but a fix has already been submitted upstream.
Things that are still missing:
- Override the link(2) syscall
- Fix build on Tiger where EV_RECEIPT is not available (#39765)
If your port causes any crashes with trace mode enabled (check
Console.app to see them, if your build fails), please file a bug, assign
it to me and attach a crash report (also available from Console.app).
Happy testing and thanks for your time!
--
Clemens Lang
[1] Trace mode is a LD_PRELOAD-like sandbox that hides files in
locations known to cause problems like /usr/local and /sw and files
installed by MacPorts that your port does not declare a dependency
on. It's an effort to make builds more reproducible and improve
coexistence with other package managers.
[2] http://trac.macports.org/changeset/113026
More information about the macports-dev
mailing list