[MacPorts] SummerOfCode modified
Page "SummerOfCode" was changed by cal@macports.org Diff URL: <https://trac.macports.org/wiki/SummerOfCode?action=diff&version=221> Revision 221 Comment: remove binary proposal (I don't know what's left to do there), reword dependency-rewrite proposal Changes: -------8<------8<------8<------8<------8<------8<------8<------8<-------- Index: SummerOfCode ========================================================================= --- SummerOfCode (version: 220) +++ SummerOfCode (version: 221) @@ -90,37 +90,13 @@ === Core tasks === -==== Binaries ==== #binaries - -MacPorts provides binaries but needs several enhancements. This task -would include updating the chroot mechanism (ceased being functional -with Snow Leopard) and adding support for variants. (See also -[[MPAB|MacPorts AutoBuild]].) - -* Difficulty: Relatively challenging to challenging -* Languages: Tcl -* Potential mentors: TBD - ==== Dependency calculation using SAT solving ==== #dependencies -This task consists of implementing a new dependency engine for MacPorts. -The current dependency engine properly deals with installing packages, -but it does not deal satisfactorily with [[ticket:126|dependencies on variants]] -and versions, uninstalling and upgrading. This task requires -understanding the dependency relations (required for fetching, building, -configuring; static and dynamic linking; dependence at runtime). - -Instead of re-inventing the wheel it might be helpful to use software -available to solve the problem of dependency calculation, e.g. by -implementing an interface to a -[http://www.mancoosi.org/cudf/ Common Upgradeability Description Format]-based -SAT solver. Such a solver could generate an execution plan we could -propose to the user and finally execute when confirmed. For this task, -the MacPorts concept of variants needs to be transformed into -a representation the SAT solvers will be able to optimize. If time -permits, rolling back on failed updates can also be implemented. There -is also a [browser:trunk/dports/devel/libCUDF/Portfile libCUDF] port -that might be helpful to look at. +This task consists of implementing a new dependency engine for MacPorts. The current dependency engine works for everyday use, but it could be extended to support a number of features we would like to have, such as [[ticket:126|dependencies on variants]], versioned dependencies, pre-computing a plan of action (and asking the user for confirmation), conflict resolution proposals and metapackages. Note that we don't expect you to accomplish all of these ideas in one GSoC – setting the base would already be a huge help. + +This task requires understanding the dependency relations (required for fetching, building, configuring; static and dynamic linking; dependence at runtime). + +Instead of re-inventing the wheel it might be helpful to use software available to solve the problem of dependency calculation, e.g. by implementing an interface to a [http://www.mancoosi.org/cudf/ Common Upgradeability Description Format]-based SAT solver. Such a solver could generate an execution plan we could propose to the user and finally execute when confirmed. For this task, the MacPorts concept of variants needs to be transformed into a representation the SAT solvers will be able to optimize. If time permits, rolling back on failed updates can also be implemented. There is also a [browser:trunk/dports/devel/libCUDF/Portfile libCUDF] port that might be helpful to look at. * Difficulty: Challenging * Languages: Tcl, C -------8<------8<------8<------8<------8<------8<------8<------8<-------- -- Page URL: <https://trac.macports.org/wiki/SummerOfCode> MacPorts <http://www.macports.org/> Ports system for OS X This is an automated message. Someone added your email address to be notified of changes on 'SummerOfCode' page. If it was not you, please report to .
participants (1)
-
MacPorts