Breaking long dependency chains

Kevin Walzer kw at codebykevin.com
Sun Mar 18 11:17:24 PDT 2012


On 3/18/12 2:00 PM, Freek Dijkstra wrote:
> However, that is not the main issue. The fact remains that there are
> many MacPorts packages with more dependencies than what is strictly
> required.

This is an excellent point.

I'm testing support for installing variants in a new version of 
PortAuthority, and I'm also investigating user complaints that PA hangs 
with long installations. I've tried what appears to be a simple test: 
installing the quartz variant of Tk.

It's taking forever. "port deps tk" lists the following:

tcl, Xft2, xorg-libXScrnSaver, fontconfig

Yet right now port is installing glib, and was installing Perl before I 
killed the process. Where do these come in? Why do I need glib, or Perl 
for that matter, to install the native Aqua/quartz variant of Tk?

I can say that building Tk and Tcl from source takes about 15 minutes, 
give or take. I've watched port chug away at this since last night with 
no end in sight. I'm sorry, but this is ridiculous.

A badly needed feature in MacPorts is the ability to fully and 
recursively model  the dependency tree of a specific port: not just its 
dependencies, but the dependencies of its dependencies. That would be 
revealing. "port deps tk" lists four dependencies which I would expect 
would take 30-60 minutes to install. Instead it's hours and hours and 
counting because of hidden dependencies like Perl and glib (and no doubt 
their dependencies in turn).

I also wonder if the emergence of Homebrew has taken away some of 
MacPorts (and Fink's) user base. If sales of PortAuthority are any 
indication, I suspect it has. Porticus is broken and Pallet is barely 
ready for prime time, so the competition has to be coming from somewhere 
else.

(I realize that PortAuthority is not the concern of the MacPorts 
developer list, but when I get complaints that PA is slow and 
installations take forever, it's a bit frustrating that I can't say 
something more specific than "it's a MacPorts issue, sorry.")

--Kevin

-- 
Kevin Walzer
Code by Kevin
http://www.codebykevin.com


More information about the macports-dev mailing list