1 |
>>>>> On Sat, 4 Apr 2015, Michał Górny wrote: |
2 |
|
3 |
> The problem |
4 |
> ----------- |
5 |
|
6 |
> Package moves (and slot moves) are currently a three part process: |
7 |
|
8 |
> 1. committing the package under the new name (slot), and removing |
9 |
> the old files, |
10 |
|
11 |
Actually, you shouldn't remove the old package at this point because |
12 |
it would break reverse dependencies. |
13 |
|
14 |
> 2. updating all package references (*DEPEND, *_version, ...) in other |
15 |
> ebuilds, |
16 |
|
17 |
> 3. adding a pkgmove (slotmove) entry to apply the move on installed |
18 |
> packages. |
19 |
|
20 |
And only at this point the old package can be removed: |
21 |
https://devmanual.gentoo.org/ebuild-writing/ebuild-maintenance/index.html#moving-ebuilds |
22 |
|
23 |
However, all this will be moot once we have moved to git, because |
24 |
atomic package moves will be possible then. |
25 |
|
26 |
> [...] |
27 |
|
28 |
> Rationale |
29 |
> --------- |
30 |
|
31 |
> The current package move logic already makes it impossible to use |
32 |
> the old name. The Package Managers don't keep track of updates |
33 |
> applied, and do re-apply the same update multiple times. |
34 |
|
35 |
> Therefore, any reference to the old name (slot) added after the |
36 |
> update will still get converted to the new name (slot) next time the |
37 |
> updates are applied. In particular, this makes it impossible to add |
38 |
> blockers on the old package name. |
39 |
|
40 |
> Since the old package name (slot) can no longer be used for any |
41 |
> purpose, we can safely map it implicitly to the new package name. |
42 |
> No new damage is done. |
43 |
|
44 |
This is not true for slotmoves. The previous slot can be reused by |
45 |
versions not matching the dependency spec of the move. One can even |
46 |
move some versions to a new slot, while leaving others in the old one. |
47 |
|
48 |
For example, you could have app-misc/foo-1:0 and app-misc/foo-2:0 and |
49 |
then do the following slotmove: |
50 |
|
51 |
slotmove =app-misc/foo-2* 0 2 |
52 |
|
53 |
How would your transparent conversion treat >=app-misc/foo-1:0 in a |
54 |
dependency? |
55 |
|
56 |
Ulrich |