Changes between Version 20 and Version 21 of SummerOfCode


Ignore:
Timestamp:
Mar 13, 2007, 12:37:11 AM (18 years ago)
Author:
pguyot (Paul Guyot)
Comment:

More information about task 6.

Legend:

Unmodified
Added
Removed
Modified
  • SummerOfCode

    v20 v21  
    5252==== Task 4: Binaries ====
    5353
    54 MacPorts project unfortunately does not
    55 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.
     54MacPorts 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.
    5655
    57 Classification: major task[[BR]]
     56Classification: relatively challenging to challenging task[[BR]]
     57Programming language: Tcl[[BR]]
    5858Potential mentor: pguyot
    5959
     
    6161Come up with a front-end for installing packages (or building ports, where no package exists) for naive end-users.
    6262
    63 Classification: major task
     63Classification: major task[[BR]]
     64Programming languages: Tcl and any other language for the GUI part (e.g. ObjC)
    6465
    65 ==== Task 6: Pkgview (depot-to-depot dependencies) ====
     66==== Task 6: Images (Pkgview, depot-to-depot dependencies) ====
    6667
    67 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.
     68MacPorts implements what we call the Image mode where software are stored in a depot (e.g. /opt/local/var/db/dports/software/gawk/3.1.5_2/opt/local/bin/gawk). For the moment, this functions like an archive and files are hardlinked to their active location (/opt/local/bin/gawk). If port A depends on dynamic library B.dylib from port B, it actually links to /opt/local/lib/B.dylib. The idea of this task is to figure out a way for port A to be linked to the library in the depot and to work even if port B is not active. 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. This mechanism also has additional advantages such as limiting the unavailability time to a minimum, especially when upgrading libraries every other package depends on (such as gettext).
    6869
    69 Classification: major task[[BR]]
     70Classification: challenging to very challenging task[[BR]]
     71Programming language: Tcl[[BR]]
    7072Potential mentor: pguyot
    7173