This page is about checking the "purity" (read: absence of links to ApplicationServices, CoreServices and other proprietary, closed-source frameworks and libraries). About "purity"Since the proprietary, closed-source frameworks and libraries that are part of Mac OS X but not Darwin, we must ensure that none of the binaries generated through the MacPorts project link to any of them.What additionally complicates the matter is that links are "inherited" in the Darwin linker system. Say, liba links to ApplicationServices by mistake, libb links to liba, and libc links to libb. In this case, even libc now has the "wrong" link to ApplicationServices, even though libc itself wouldn't need it. Typically ApplicationServices will not show up in Makefile.in, but configure will put it into the autogenerated Makefile in these cases. So it is really crucial to check that no unneccessary links are introduced into the system, as they propagate all the way up through the stack. ScriptThe script at the bottom of this page will help you checking the "purity" of a given RPM package (todo: include this in MacPorts before/after building the RPM...). Also, take a look at Visualize dependencies in MacPorts page if you want to check (and have an overview) of the "purity" of all dependencies (installed ports) for a given portname.
The following are proprietary, closed-source frameworks and libraries that we must not link to if we want to deploy some binary packages generated through MacPorts to PureDarwin.
ResultsSome results of the example shown above
|
The goal of this project is to make Darwin more usable by providing an installation ISO, documentation, and add-on software. You are welcome to join #puredarwin on irc.freenode.net if you would like to join PureDarwin development and to add to this site.