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

Reply via email to