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