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