Introduction

Clemens Lang cal at macports.org
Sun Mar 8 15:40:25 PDT 2015


Hi,

----- On 6 Mar, 2015, at 17:59, kanwardeep singh kanwardeep007 at gmail.com wrote:

> I am interested to work on the project “Phase out dependency on Xcode”
> and if its not very difficult would like to pick one more project for this
> summer.

You should not underestimate the size of the task we propose. Phasing out the
Xcode dependency (or rather, making it explicit where needed) is a project that
will likely take a student the whole summer. Proposing more work does not
increase you chances to get selected -- it might even reduce them if we think
the project is too ambitious.


> It would be grateful if someone can guide me to some starting point on this
> project so that I can give my best towards this project. I am willing to read
> materials to gain more knowledge about the technologies used in the project.

The idea behind "Phase out dependency on Xcode" is to use trace mode, a
LD_PRELOAD sandbox we have in MacPorts (which can be activated by passing -t to
the port command) and hide the Xcode installation of a system from the software
being built in MacPorts unless the port that is being built declares a
dependency on Xcode. For this, a new type of dependency would have to be
introduced, e.g. depends_build tool:xcode.

To get started, you should take a look at the darwintrace source code, which is
the component of trace mode that gets injected into each process to hide certain
files. See
  http://trac.macports.org/browser/trunk/base/src/darwintracelib1.0.
While it will probably not be necessary to modify this code for the project, this
should give you an idea what's happening behind the scenes.

Once you're done with that, take a look at the code that talks to darwintrace
using sockets, i.e.
  http://trac.macports.org/browser/trunk/base/src/pextlib1.0/tracelib.h
  http://trac.macports.org/browser/trunk/base/src/pextlib1.0/tracelib.c
(which implement a couple of Tcl extensions, and are used in)
  http://trac.macports.org/browser/trunk/base/src/port1.0/porttrace.tcl
where trace mode is configured and set up.

> Excited to learn and implement new things this summer.

As always, if there are any questions, please ask on the list, and we'll try to
help you.

-- 
Clemens Lang


More information about the macports-dev mailing list