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:
- Native Cocoa
- Fully Open Source (and thus free, not shareware)
- removing the need to run as root
- installing built packages, rather than needing to compile ports
- Installing and using MacPorts, both via the command-line and Port Authority
- Comparing that user experience with Fink Commander (from the parallel Fink project)
- Exploring the internal Tcl libraries used by the port(1) command-line tool
- Identifying the key functionality to provide to user, both now and in the future
- Designing an Objective-C (or Ruby, or Python) wrapper for those Tcl calls (perhaps leveraging Objective-C/Tcl or tclobjc.)
- Developing a reusable MacPorts Framework, for both this GUI and potentially other projects
- Working with the MacPorts team (perhaps including other GSOC members) to address the pre-compiled packages and non-root-user issues
- Building a simple GUI to “prove out” the framework
- Develop an extensible architecture (palettes, services, etc.) for future GUI development
- 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.