MacPorts AutoBuild
Bryan Blackburn
blb at macports.org
Fri Jun 20 14:07:25 PDT 2008
On Jun 20, 2008, at 1:28 PM, Jordan K. Hubbard wrote:
>
...
> Of course that simply never happened, at
> least not beyond my own primitive attempts, all of which yielded such
> terrible results [>50% failure rates] that I came to have dark
> suspicions about my methodology for creating the build chroot (as well
> as dark suspicions about how many of our ports actually build at any
> given time) and went on to other things.
>
While what I've written does have some of it early lineage from your
buildall.sh script, it's definitely changed a bit. The good news is
that of the 150+ or so ports I had MPAB try to build here, a vast
majority of them built successfully. The failures were all
explainable at the MacPorts level, not MPAB (eg missing distfiles, a
perl module needing 'port -f install', and so on).
> Anyway, if MPAB/MPWA are starting to generate good results on whatever
> development hardware is being used, and by "good results" I mean all
> of the below:
>
> o Building, or at least iterating through, all the ports in the system
> and generating helpful status information for each (even if it's
> "falls over immediately", that's good to know)
>
MPAB currently builds the list of ports to attempt by sorting them by
dependency: the early ones it builds are dependencies of later ones.
The reason for this is that if Y depends on X and X failed, it'll
simply skip Y. Also, of course, if X did build successfully, all
other ports depending on it will simply cause X do install from the
portarchive instead of rebuilding again. If you extract the MPAB
tarball, the chroot-scripts/genportlist.tcl is the script which builds
this initial list.
> o Taking at least some pains to isolate the build products from the
> builder host machine, both in files read and files written.
>
It's a chroot, so other than the initial building of the chroot, the
host machine's files should be left alone. Of course, the bad thing
is chroot needs root to run...
> o Has had all reasonable precautions taken after doing a reasonably
> pragmatic analysis of the security implications of executing all that
> open-ended Tcl code and how a "rogue port" might attack the builder,
> either deliberately or through carelessness.
>
The biggest issue here is breaking out of the chroot, otherwise if
something malicious happens then all future build attempts would most
likely fail quite spectacularly.
Bryan
> Then I'd say it's time for us to start thinking seriously about
> putting this into early production. This is the same checklist the
> project is going to have to go down before anyone will be willing to
> even "BETA" this on more private hardware anyway, so I don't think
> it's an unreasonable one.
>
> - Jordan
>
More information about the macports-dev
mailing list