Building a GUI for MacPorts

March 24, 2008 § 5 Comments

In a fit of enthusiasm/hubris, I volunteered to be a mentor for MacPorts participation in the Google Summer of Code. Specifically, I’m taking on the issue of Graphical User Interfaces, because I once wrote one for DarwinPorts (the predecessor to MacPorts. Unfortunately, the code seems to be long gone; FreeBSD mirrored the dp-cocoa and PortsManager projects, but all the folders appear to be empty. :-(The current “state of the art” in MacPorts GUIs is the clever Port Authority by Kevin Walzer.  Kevin did a fine job,  but there is community interest in something that is:

  1. Native Cocoa
  2. Fully Open Source (and thus free, not shareware)
In addition, I personally believe the biggest challenges to  greater MacPorts adoption are:
  •  removing the need to run as root
  •  installing built packages, rather than needing to compile ports
Thus, I believe the most important task for this GSOC is not so much writing a pretty GUI (though that’s essential!) but devising a compelling user experience for “non-geeks” to use MacPorts; which may well mean co-developing the necessary infrastructure!
Anyway, the steps I would recommend to anyone interesting in this are:
  1. Installing and using MacPorts, both via the command-line and Port Authority
  2. Comparing that user experience with Fink Commander (from the parallel Fink project)
  3. Exploring the internal Tcl libraries used by the port(1) command-line tool
  4. Identifying the key functionality to provide to user, both now and in the future 
  5. Designing an Objective-C (or Ruby, or Python) wrapper for those Tcl calls (perhaps leveraging Objective-C/Tcl or tclobjc.)
  6. Developing a reusable MacPorts Framework, for both this GUI and potentially other projects
  7. Working with the MacPorts team (perhaps including other GSOC members) to address the pre-compiled packages and non-root-user issues
  8. Building a simple GUI to “prove out” the framework 
  9. Develop an extensible architecture (palettes, services, etc.) for future GUI development
  10. Integrate nifty Leopard features (Core Data? Animation? Scriptability?)

Of course, that would be a lot to do in one Summer! For those submitting applications (due March 26th, I believe) the key is to demonstrate that you understand the larger problem and what you can realistically accomplish within the time available — and how others can build on it in the future.

Tagged: , , , ,

§ 5 Responses to Building a GUI for MacPorts

Leave a Reply to rhwood1974 Cancel reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

What’s this?

You are currently reading Building a GUI for MacPorts at iHack, therefore iBlog.


%d bloggers like this: