Changes between Version 123 and Version 124 of SummerOfCode
- Timestamp:
- Mar 9, 2010, 6:03:31 PM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SummerOfCode
v123 v124 137 137 Potential mentor: raimue 138 138 139 ==== Images (Pkgview, depot-to-depot dependencies) ==== #images140 141 MacPorts 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).142 143 Classification: challenging to very challenging task[[BR]]144 Programming language: Tcl[[BR]]145 Potential mentor: TBD146 147 139 ==== Portfiles ==== #Portfiles 148 140 … … 201 193 Potential mentor: blb 202 194 }}} 195 196 197 {{{ 198 #!comment 199 # Removed ideas which do not fit to our plans anymore 200 201 # Will be obsolete and no longer be possible with the images-and-archives branch 202 ==== Images (Pkgview, depot-to-depot dependencies) ==== #images 203 204 MacPorts 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). 205 206 Classification: challenging to very challenging task[[BR]] 207 Programming language: Tcl[[BR]] 208 Potential mentor: TBD 209 }}}