1 |
On Sun, May 12, 2013 at 9:29 PM, Taahir Ahmed <ahmedtd@××××.edu> wrote: |
2 |
> It should be noted that the first position (that the dependencies specified in |
3 |
> the ebuilds are not sufficient) is the position of cave's developers. I tend |
4 |
> to agree -- How is cave to know that there hasn't been a brekaing change in a |
5 |
> library's API? |
6 |
|
7 |
If a dependency does not specify a version then any version of that |
8 |
package must be able to satisfy the dependency. That certainly sounds |
9 |
like it is the case with the examples you cited. |
10 |
|
11 |
That doesn't mean that you can simply replace foo-1 with foo-2 and not |
12 |
have stuff break - it might require some rebuilding. Certainly a |
13 |
package with a := slot-operator dependency should be considered likely |
14 |
to break if the dependency changes subslots. |
15 |
|
16 |
How exactly cave handles these situations is up to its maintainers. |
17 |
I'd think that they should gracefully handle subslot changes since |
18 |
EAPI5 finally has enough information to take care of this (more or |
19 |
less). For pre-EAPI5 packages I could see why they'd keep the old |
20 |
versions around to avoid breaking linkage, but that is an |
21 |
implementation decision. Keep in mind that even if the dependency is |
22 |
EAPI5 it might have reverse dependencies that do not specify subslot |
23 |
operator dependencies in which case a package manager can't be sure |
24 |
how to handle things. If you have even a single package which does |
25 |
not give a subslot operator then the package manager can't be sure |
26 |
what will happen if the old version is removed. |
27 |
|
28 |
The behavior of emerge is to rebuild if there is a subslot operator |
29 |
dependency, keep the old lib around while unmerging it if |
30 |
preserve-libs is enabled until it is no longer referenced, or just |
31 |
break stuff if neither of those is the case. That certainly isn't the |
32 |
only way to do things. |
33 |
|
34 |
Rich |