David Cournapeau wrote: > On Sat, Jan 2, 2010 at 4:58 PM, Gael Varoquaux > <gael.varoqu...@normalesup.org> wrote: > >> On Sat, Jan 02, 2010 at 11:32:00AM +0900, David Cournapeau wrote: >> >>> [snip] >>> - supporting different variants of the same package in the >>> dependency graph at install time >>> >>> [snip] >>> >>> The second issue is more challenging. It complicates the dependency >>> handling quite a bit, and may cause difficult situations to happen at >>> dependency resolution time. This becomes particularly messy if you mix >>> packages you build yourself with packages grabbed from a repository. I >>> wonder if there is a simpler solution which would give a similar >>> feature set. >>> >> AFAICT, in Debian, the same feature is given via virtual packages: you >> would have: >> > > I don't think virtual-packages entirely fix the issue. AFAIK, virtual > packages have two uses: > - handle dependencies where several packages may resolve one > particular dependency in an equivalent way (one good example is > LAPACK: both liblapack and libatlas provides the lapack feature) > - closer to this discussion, you can build several variants of the > same package, and each variant would resolve the dependency on a > virtual package handling the commonalities. For example, say we have > two numpy packages, one built with lapack (python-numpy-full), the > other without (python-numpy-core). What happens when a package foo > depends on numpy-full, but numpy-core is installed ? When you type "apt-get install my_new_package", the version resolution system will tell you that apt-get will remove python-numpy-core and will install python-numpy-full in the act of installing my_new_package. > AFAICS, this can > only work as long as the set containing every variant can be ordered > (in the conventional set ordering sense), and the dependency can be > satisfied by the smallest one. > Typically, the dependencies only depend on the smallest subset of what they require (if they don't need lapack, they'd only depend on python-numpy-core in your example), but yes, if there's an unsatisfiable condition, then apt-get will raise an error and abort. In practice, this system seems to work quite well, IMO.
Anyhow, here's the full Debian documentation: http://www.debian.org/doc/debian-policy/ch-relationships.html ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel