Version 16 (modified by jberry@…, 18 years ago) (diff) |
---|
Google Summer of Code, 2007
This is the main tracking page for MacPorts/Google Summer of Code 2007.
If MacPorts is selected as a Summer of Code participant, we'll post that information here and provide additional information for student applicants.
Status
MacPorts is currently in the process of applying for organizational acceptance by Google for Summer of Code 2007.
- The organizational application for MacPorts has been filed with Google. We'll be notified by google of their decision by Wednesday, March 14, 2007 (PST).
Mentors
The following committers have agreed to be mentors for SoC (append @macports.org for e-mail)
- James Berry (base, general, ports) [jberry]
- James Cox (general) [james at imajes.info]
- Juan Manuel Palacios (general) [jmpp]
- Paul Guyot (base, general, ports) [pguyot]
- Markus Weissmann (base, general, ports) [mww]
Tasks
This is a list of some potential tasks that student SoC members could undertake. We strongly suggest that you discuss selection of particular tasks only following discussion with mentor and further exploration of the topic on the MacPorts development list and irc channel.
Main Tasks (Base/Infrastructure Code)
Task 1: Dependencies
Implement support for richer dependencies, including dependencies on versions and, potentially, variants.
Classification: major task
Potential mentor: pguyot
Task 2: Python Group
Improve python group code (medium)
Classification: medium task
Task 3: Virtual "chroot"
Building from the trace mode mechanism, create real "virtual chroot" environments for building ports, constraining what their configure scripts can see and validating that their explicit dependencies are correct and fully-formed.
Classification: major task
Potential mentor: pguyot
Task 4: Binaries
Working in concert (or cooperatively) with whomever does (virtual chroot), get package building working all the way to a point where complete package builds can be done for all of MacPorts and the results made available to users as pre-build package collections.
Classification: major task
Potential mentor: pguyot
Task 5: Graphical user interface
Come up with a front-end for installing packages (or building ports, where no package exists) for naive end-users.
Classification: major task
Task 6: Pkgview (depot-to-depot dependencies)
Take what Will started with the notion of a depot location vs an installed location (e.g. /opt/local/var/db/dports/software/gawk/3.1.5_2/opt/local/bin/gawk vs /opt/local/bin/gawk) and finish the job, making depot-to-depot dependencies finally work. That is to say that if port foo depends on version 1.2.3 of port bar, it should be compiled and linked in such a way that it's wired to the depot location of bar, not the "activated" location. That will finally fix the fragility problem where deactivating port bar vers n-1 in order to install port bar vers n (because other things depend on n) won't also require breaking everything that relies on n-1.
Classification: major task
Potential mentor: pguyot
Task 7: Root privileges
Implement facility to reduce need to execute macports as root, by adding facilities to mark ports as requiring root, by dropping root privileges where possible, and perhaps by keeping repository in per-user space.
Classification: medium task
Task 8: Portfiles
Sweep through all Portfiles and look for useful opportunities to add more built-in Tcl functions that make Portfiles more (usefully) terse, powerful, flexible or easier to write. I'm sure there is an entirely family of helper functions yet to be written here. (medium)
Classification: medium task
Additional tasks
Task 9: Ports
- Porting of additional packages to MacPorts
- Cleanup and/or remove obsolete ports
Classification: medium task
Task 10: Documentation and Website
- Improve macports documentation (minor - medium)
- Improve macports website (minor - medium)
Classification: minor task