Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: Ulrich Mueller <ulm@g.o>
Cc: gentoo-dev@l.g.o, pms-bugs@g.o
Subject: Re: [gentoo-dev] Re: RFC: extending pkgmove (slotmove) actions to apply transitionally to ebuilds
Date: Sat, 04 Apr 2015 18:44:16
Message-Id: 20150404204349.5a338cff@pomiot.lan
In Reply to: [gentoo-dev] Re: RFC: extending pkgmove (slotmove) actions to apply transitionally to ebuilds by Ulrich Mueller
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

Replies