Interview with Jordan Hubbard of Apple and OpenDarwin

A few days ago we featured an interview with one of Fink‘s project leaders regarding their package management solution which breeds more Unix software to MacOSX. Today, we host an interview with Jordan Hubbard regarding the DarwinPorts, speaking for the DarwinPorts Team which a similar effort to bring more Unix software on Mac OS X. Jordan is currently working at Apple and OpenDarwin (while many will know Jordan as the FreeBSD co-founder).1. What are the main differences between the Fink Project and the Darwin Ports, technologically and… philosophically.

Jordan Hubbard: This is a hard question to answer in the general sense since the
various people currently working on DarwinPorts have a number of
reasons to be involved with the project, both technical and
philosophical, and those reasons are as subjective as they are broad.
What we can say is that a number of existing projects were looked at,
among them Fink, Gentoo and the FreeBSD ports collection (which at
least one of us is obviously rather familiar with), before the decision
was ultimately reached, for our own highly subjective reasons of
course, that we wanted something a little different from all of them.
We wanted something with an architecture which was highly extensible
and could cope gracefully with what would certainly be significant
changes over time. We also wanted something which could be embedded
into other software-building applications or front-ended in various
unforseen ways, the chosen technology and licensing being rather
important factors in reaching that goal.

While not taking anything away from fink, a highly successful project
which has greatly benefited Mac OS X’s Unix-savvy user base for some
time now, we think there is still a lot of room for innovation
concerning how to construct and maintain a port collection’s
infrastructure. That is the goal of DarwinPorts in a nutshell: To
create an open-ended, 2nd generation architecture which benefits from a
lot of the knowledge already gained through experience with systems
like FreeBSD ports and fink. We also think that Landon Fuller and
Kevin van Vechten, the system’s two principle architects, have done a
great job of this so far.

2. I see that you have almost 300 ports on your tree, while Fink has 2,300+. How are you going to increase the amount of software available for your ports tree?

Jordan Hubbard: Part of the reason we’ve put so much time and effort into the
infrastructure of DarwinPorts and services like the WebDAV-accessible
packages collection at is to make the
system attractive to developers. It’s those same developers who create
the bulk of the initial ports, at least until a critical mass of
ports-savvy users is reached, and get you from 353 ports (our current
count) to 3,500 and beyond. Given the sheer number of Mac OS X and
generic Unix 3rd party applications and libraries out there, we don’t
think 10,000 ports is an unrealistic number to shoot for, actually, and
to get there DarwinPorts will not only need to have a lot of ports but
also considerable infrastructure in place for testing, validating,
debugging and packaging the whole collection so that a significant
percentage of those ports are not “broken” at any given time. Some of
the biggest issues facing a large collection aren’t technical at all,
they’re organizational, and we’re working on building such an
infrastructure in parallel as our ports collection grows.

3. Is DarwinPorts (plus its GUI) going to be installed by default on a future version of MacOSX or its Server version?

Jordan Hubbard: Any predictions would be purely speculative at this point and it’s
simply too early in the game to worry about bundling DarwinPorts with
anything right now anyway.

4. Is Apple interested in porting the KDE/Gnome libraries (I am not talking about the desktop environment in particular) and then make available a large number of X11-based applications to OSX to enrich its app base? If yes, would the infrastructure to run these apps would come by default on OSX?

Jordan Hubbard: Apple is clearly interested in seeing any number of developer libraries
ported to Mac OS X, cooperation with the KDE folks regarding KHTML in
Safari already being a matter of public record and hopefully just one
of many such opportunities for open source collaboration. One possible
infrastructure for building and packaging such libraries and
applications might also be DarwinPorts, though it’s certainly not the
only option.

5. Do you have any plans on providing Altivec-optimized binaries?

Jordan Hubbard: It seems that most of the developers in the OpenDarwin community are
currently focused primarily on just getting applications ported in
their “vanilla” form, though quite a number of optimizations are
certainly of interest and may be undertaken at some point. There
certainly aren’t any plans NOT to try to optimize for Altivec as such
opportunities come up.

6. If you can tell us, what code has been put into OSX’s source tree from FreeBSD 5.x, if any?

Jordan Hubbard: This question would probably be better asked when 10.3 comes out since
it’s only then that we’ll have a truly definitive answer to it.

7. Why TCL was chosen as the backend language of choice, instead of, let’s say… Python, or Perl?

Jordan Hubbard: Tcl is a comparatively simply language with a syntax which is both
relatively forgiving of style differences (for things like whitespace)
and easy to understand. It’s also easy to embed in other applications,
which furthers the goals outlined in the answer to question #1.
Finally, it was simply a matter of personal preference. The other
languages were looked at during the architectural design and Tcl was
felt to embody all the desired characteristics for an interpreted
language in this application.

We hope this helps to answer some of your questions, and for more
information people are certainly encouraged to visit our web site. We’ll also be giving a
presentation on DarwinPorts at Apple’s upcoming WWDC conference in San
Francisco for those who will be attending. Thanks!


  1. 2003-04-15 5:27 pm
  2. 2003-04-15 5:32 pm
  3. 2003-04-15 5:45 pm
  4. 2003-04-15 6:33 pm
  5. 2003-04-15 6:43 pm
  6. 2003-04-15 7:00 pm
  7. 2003-04-15 7:04 pm
  8. 2003-04-15 7:12 pm
  9. 2003-04-15 7:17 pm
  10. 2003-04-15 7:25 pm
  11. 2003-04-15 7:31 pm
  12. 2003-04-15 8:03 pm
  13. 2003-04-15 8:06 pm
  14. 2003-04-15 8:51 pm
  15. 2003-04-15 9:10 pm
  16. 2003-04-15 9:34 pm
  17. 2003-04-15 10:24 pm
  18. 2003-04-15 10:27 pm
  19. 2003-04-15 10:41 pm
  20. 2003-04-15 11:34 pm
  21. 2003-04-16 3:50 am
  22. 2003-04-16 5:25 am
  23. 2003-04-16 5:48 am
  24. 2003-04-16 3:05 pm
  25. 2003-04-16 6:12 pm
  26. 2003-04-16 6:19 pm
  27. 2003-04-16 7:39 pm
  28. 2003-04-17 12:09 am
  29. 2003-04-17 3:17 am
  30. 2003-04-17 1:06 pm
  31. 2003-04-23 1:42 pm