Changes between Initial Version and Version 1 of MacPortsGUIFAQ


Ignore:
Timestamp:
Mar 21, 2009, 1:03:06 PM (16 years ago)
Author:
armahg@…
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MacPortsGUIFAQ

    v1 v1  
     1
     2== MacPorts GUI GSoC 2009 "FAQ" ==
     3This page is an attempt to collate all the information relevant to the 2009 GSoC MacPorts GUI project in one place.[[BR]]
     4
     5If you haven't done so already, please thoroughly read [http://ihack.us/2008/03/24/building-a-gui-for-macports/ Dr. Ernie's blog post]  on building a MacPorts GUI. It contains a lot of relevant information. There are currently some existing MacPorts GUI's: [http://www.codebykevin.com/portauthority.html PortAuthority] and [http://porticus.alittledrop.com/ Porticus] being two examples. Neither of these is native Cocoa and fully open source (as Dr. Ernie mentions in his post). There also currently exists a MacPorts GUI called [https://svn.macosforge.org/repository/macports/branches/gsoc08-framework/Pallet Pallet] developed by [wiki:rhwood Randall Wood]. It is a good starting place to get an idea for what the code base of a GUI would entail.[[BR]]
     6
     7For GSoC 2008, work was done on a MacPorts Framework (a project originally started by [wiki:rhwood Randall Wood]). The Framework although far from perfect is currently functional and can serve as a basis for the MacPorts GUI project. It currently offers the following features:
     8
     9 * Support for non-default MacPort install locations
     10
     11 * Support for basic port operations like Install, Uninstall, Configure, Activate, DeActivate etc. Adding new port operations involves modifying a Tcl file and adding the appropriate method to the Framework's MPPort class. It is a fairly simple process.
     12
     13 * Support for Authorized port operations i.e. operations that require 'sudo' based off Apple's [http://developer.apple.com/samplecode/BetterAuthorizationSample/index.html#//apple_ref/doc/uid/DTS10004207 BetterAuthorizationSample]
     14
     15 *  A notifications mechanism for tracking progress of port operations. This is greatly simplified when consuming the Framework from a GUI client since it relies on [http://developer.apple.com/documentation/Cocoa/Conceptual/Notifications/Introduction/introNotifications.html Notifications] and [http://developer.apple.com/documentation/Cocoa/Conceptual/Multithreading/RunLoopManagement/RunLoopManagement.html#//apple_ref/doc/uid/10000057i-CH16-SW1 Run Loops].
     16
     17
     18
     19----
     20
     21To get a better idea of what has already been done it would be good to do the following. (It is assumed that you already have MacPorts installed in the default location):[[BR]]
     22
     23 1. Items 1, 2, 3, and 4 in [http://ihack.us/2008/03/24/building-a-gui-for-macports/ Dr. Ernie's blog post].
     24 1. Download and build the source code for the Framework from https://svn.macosforge.org/repository/macports/contrib/MacPorts_Framework
     25 1. Download and build the source code for Pallet from https://svn.macosforge.org/repository/macports/branches/gsoc08-framework/Pallet . [[BR]]''You might encounter some permissions issues whilst building Pallet which will cause XCode to fail to copy some of Pallet's binary dependencies. The workaround for this is to either do a Clean All and then build OR to manually delete any binary files already in the output folders for "Debug" or "Release" mode of your build (whichever you happen to be building for).''
     26 1. Download and build the Macports Source [http://trac.macports.org/wiki/GetMacPortsSource]
     27 1. See if you can link  and build Pallet against the Macports.Framework you built
     28
     29
     30Also, you are free to and encouraged to submit original GSoC ideas. You should discuss them with the GSoC mentors and larger MacPorts community first (of course). I will be interested in mentoring any good ideas that are MacPorts + Cocoa / CocoaTouch.[[BR]][[BR]]
     31Good Luck!