Changed page "SummerOfCode" by raimue@macports.org from 79.249.126.163* Page URL: <https://trac.macports.org/wiki/SummerOfCode> Diff URL: <https://trac.macports.org/wiki/SummerOfCode?action=diff&version=148> Revision 148 Comment: Add new ideas from macports-dev -------8<------8<------8<------8<------8<------8<------8<------8<-------- Index: SummerOfCode ========================================================================= --- SummerOfCode (version: 147) +++ SummerOfCode (version: 148) @@ -65,6 +65,9 @@ MacPorts project does not provide binaries yet (installation of software without compiling them). This project consists in working in concert (or cooperatively) with whomever does (virtual chroot) to setup a mechanism to automatically build packages, send reports on failures and implement a distribution mechanisms to allow users to fetch binary packages. This task could extend to support universal binaries, cross-testing (building on an intel box and testing on a powerpc box) and extending the livecheck mechanism to automatically send reports when ports are updated. +This also includes to cleanly separate building software from installing it, using "real" +binary packages. + See also [wiki:MPAB MacPorts AutoBuild]. Classification: relatively challenging to challenging task[[BR]] @@ -140,6 +143,99 @@ Programming languages: Tcl, C[[BR]] Potential mentor: raimue +==== Configuration and environment selftest ==== + +Add a command to check current setup for common pitfalls (e.g. stuff +in /usr/local), inspired by 'brew doctor' from Homebrew. + +Classification: easy[[BR]] +Programming languages: Tcl[[BR]] +Potential mentor: TBD + + +==== Improve startupitem code ==== #startupitem + +MacPorts has the ability to automatically generate startup items for the current platform. For Mac OS X, these are plist files for launchd which will be installed as `/Library/LaunchDaemons/org.macports.*.plist`. The current code would need a little care and could make use of options which have been added in recent releases of launchd. + +Classification: easy[[BR]] +Programming languages: Tcl, C[[BR]] +Potential mentor: TBD + +==== Dependency calculation during upgrade ==== #depcalc + +Revamp the upgrade code to figure out (and optionally report) what +it's going to do and detect conflicts etc. before it actually changes +anything, and maybe even roll back to the original state if there's a +failure + +Classification: medium[[BR]] +Programming languages: Tcl, C[[BR]] +Potential mentor: TBD + +==== Reclaim disk space ==== #reclaim + +Improve 'port clean' to be able to delete distfiles for a specified +version, and all distfiles not needed by currently installed versions of +ports. + +In general, add an action for reclaiming disk space, which would delete old +distfiles and archives and uninstall inactive ports (and anything else +that would help) + +Classification: easy[[BR]] +Programming languages: Tcl, C[[BR]] +Potential mentor: TBD + +==== Parallel execution ==== #parallel + +When an action will run targets on multiple ports, run them in +parallel when possible and sensible (requires tracking dependencies +between both targets and ports and figuring out the maximum reasonable +parallelism, e.g. several ports can fetch at once on a fast connection +but you only want one 'make -j8' at a time) + +Classification: very challenging[[BR]] +Programming languages: Tcl, C[[BR]] +Potential mentor: TBD + +==== Trace mode ==== #tracemode + +Improve trace mode to the point where developers (and the build +server) could run with it always turned on. + +Classification: medium[[BR]] +Programming languages: Tcl, C[[BR]] +Potential mentor: TBD + +==== Migrate muniversal into base (lipo merging) ==== #muniversal + +Integrate muniversal into base. Not just a direct copy-and-paste, but +in a way that makes sense and preserves the way portfiles are expected +to behave (which the current portgroup doesn't). + +Classification: medium[[BR]] +Programming languages: Tcl, C[[BR]] +Potential mentor: TBD + +==== Fetching from version control ==== #fetchtypes + +Make cvs/svn/git/hg/bzr fetch types checkout into the distfiles dir +and then export into the work dir, to avoid having to re-fetch after +cleaning the work dir. + +Classification: easy[[BR]] +Programming languages: Tcl, C[[BR]] +Potential mentor: TBD + +==== Interactive port command ==== #interactive + +Write an interactive command-line tool that can be used instead of the +non-interactive port(1) + +Classification: medium[[BR]] +Programming languages: Tcl, C[[BR]] +Potential mentor: TBD + ==== Portfiles ==== #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. @@ -180,7 +276,6 @@ - {{{ #!comment # Listing already done tasks here, maybe parts of this could spin-off a new project idea -------8<------8<------8<------8<------8<------8<------8<------8<-------- * The IP shown here might not mean anything if the user or the server is behind a proxy. -- MacPorts <http://www.macports.org/> Ports system for Mac OS This is an automated message. Someone at http://www.macports.org/ added your email address to be notified of changes on SummerOfCode. If it was not you, please report to .