wiki:SummerOfCode2011

Version 1 (modified by raimue (Rainer Müller), 13 years ago) (diff)

Archive projects

Summer of Code 2011

This page is dedicated to the projects accepted into Google SoC 2011, here's a list of accepted projects:

Project Student Mentor
post-destroot check Felipe Tanus? Perry Lee?
User statistics Derik Ingrouville Jeremy Lavergne
rev-upgrade Clemens Lang Rainer Mueller

Check dependencies after destroot

MacPorts currently has trace mode to check which files are accessed during build and if they are in the dependency chain. This requires injecting the tracelib in all code that is run and interception all open calls and make checks on the pathnames which slows down the procedure. This task is about creating another feature for verifying the dependencies of a build.

A new phase would be created which is to be run after the destroot phase to verify files.

  • It would iterate over all binaries and dynamically linked libraries in the destroot which are going to be installed and check the recorded paths against the dependency chain.
  • It will report broken symlinks, e.g. those pointing to the destroot

Any problems found should be reported.

This would be great to do a quick check if the dependencies are met without the effort from trace mode. It could also help to identify unnecessary dependencies. If this actually runs fast enough it could as well be enabled by default, although it should only be necessary for maintainers.

Classification: medium task
Programming languages: Tcl and C

Scan for broken dynamic libraries for rebuild

Upgrading any port can naturally break its dependents if using dynamic libraries. The only way to fix this is currently rebuilding all dependents, no matter if necessary or not. MacPorts should get a new command to scan installed dynamic libraries and binaries for linker errors and mark the corresponding port for rebuild. After checking all files, broken ones should get rebuild in the correct order. Probably it has to do the check again after each set of rebuilds.

port rev-upgrade [portname] 

If you are familiar with Gentoo, this would be the equivalent of the revdep-rebuild command. See #17473 for more information.

Classification: easy to medium task
Programming languages: Tcl

Usage Statistics

Development of a data collection tool and information gathering service which will allow participating users to contribute data regarding the way they use MacPorts. This data will include information on the user's system configuration as well as the ports they use. In addition, a visualization tool for this data will also be developed.

Classification: medium task Programming languages: Tcl and Ruby on Rails