1 |
-----BEGIN PGP SIGNED MESSAGE-----
|
2 |
Hash: SHA1
|
3 |
|
4 |
On Tue, 03 Jun 2014 09:26:09 -0400
|
5 |
Ian Stakenvicius <axs@g.o> wrote:
|
6 |
|
7 |
> -----BEGIN PGP SIGNED MESSAGE----- |
8 |
> Hash: SHA256 |
9 |
> |
10 |
> On 03/06/14 08:08 AM, Tom Wijsman wrote: |
11 |
> > On Tue, 3 Jun 2014 07:35:42 -0400 Rich Freeman <rich0@g.o> |
12 |
> > wrote: |
13 |
> > |
14 |
> >> This probably could have used a news item, as the change impacts |
15 |
> >> both stable and ~arch users. |
16 |
> > |
17 |
> > Are we going to write a news item every time systemd acquires a |
18 |
> > new mandatory relationship with a reverse dependency? |
19 |
> > |
20 |
> >> They need to do an "emerge -1 sys-power/upower-pm-utils" to |
21 |
> >> actually get the new package, |
22 |
> > |
23 |
> > But the user doesn't want systemd; so, then why does the user have |
24 |
> > to perform a manual step every time that systemd has an |
25 |
> > acquirement? |
26 |
> |
27 |
> That's easy -- we don't have a way to do vdb updates that will split a |
28 |
> package, only move a package. And since this isn't a package move (as |
29 |
> the original package still exists) we can't leverage that. |
30 |
|
31 |
- From the dependency viewpoint this isn't a package split or move, it is
|
32 |
rather an introduction of || ( A B ) "alternatives" in the dependency
|
33 |
chain. In this case, the first option (A) is tried and exhausted; this
|
34 |
complexity results in other options (B) not being thoroughly considered.
|
35 |
|
36 |
If you want Portage to make a transition to alternatives, you need to
|
37 |
get a mask in place for the first option; so, we can leverage this:
|
38 |
|
39 |
1. || ( A B ) with A masked causes Portage to install B instead;
|
40 |
2. || ( <A-0.99 B ) with >=A-0.99 masked causes a downgrade to <A-2.
|
41 |
|
42 |
So, what misses here is that mask; which you could put in a mix-in.
|
43 |
|
44 |
(In this specific case A is upower and B is upower-pm-utils.)
|
45 |
|
46 |
> >> otherwise portage is going to try to switch them from udev to |
47 |
> >> systemd, |
48 |
> > |
49 |
> > There is the problem, the user doesn't want systemd; so, why is |
50 |
> > Portage (regardless of a systemd mask) trying to bring it to the |
51 |
> > user anyway? |
52 |
> > |
53 |
> >> since packages like kdelibs list upower first, and portage has no |
54 |
> >> way of knowing that this is a big change. |
55 |
> > |
56 |
> > And this is where you can make Portage smarter. |
57 |
> > |
58 |
> > http://www.funtoo.org/Flavors_and_Mix-ins |
59 |
> > |
60 |
> > We don't have to go through all this if you had a "no-systemd" |
61 |
> > mix-in, where you could simply make out the choices in favor of the |
62 |
> > user instead of having to document and announce them all over the |
63 |
> > place. |
64 |
> > |
65 |
> > That mix-in could do something like masking the new upower that |
66 |
> > depends on systemd; when doing so, no more blockers all over the |
67 |
> > place. |
68 |
> > |
69 |
> |
70 |
> Technically we could do this via a systemd profile too -- ie, mask new |
71 |
> upower everywhere but systemd profiles, and in systemd profile mask |
72 |
> upower-pm-utils. |
73 |
|
74 |
In doing so, you assume that non-systemd profiles are anti-systemd;
|
75 |
however, that's not the case. Currently GNOME and KDE have systemd
|
76 |
profiles; but, there are a lot of other desktop environments in the
|
77 |
Portage tree that have support for systemd.
|
78 |
|
79 |
So, this means we would have to go and create a profile for each
|
80 |
desktop environment and within such profile yet another profile for
|
81 |
systemd; this becomes somewhat tedious if you can cover all that in a
|
82 |
mixin instead.
|
83 |
|
84 |
You're going to need mixins at some point when it's not just "systemd"
|
85 |
that is a specialization but something else as well; unless you want to
|
86 |
create even more directories for the possible combinations:
|
87 |
|
88 |
- gnome/somethingelse
|
89 |
- gnome/systemd
|
90 |
- gnome/systemd+somethingelse
|
91 |
|
92 |
> However, that doesn't get around the actual need to |
93 |
> - --unmerge upower and emerge upower-pm-utils (or hopefully just do |
94 |
> the latter as a soft-block will do the unmerge?) |
95 |
|
96 |
Portage does this for you if you mask upower and provide it with
|
97 |
sufficient backtracking; so, there's no need to do this manually.
|
98 |
|
99 |
More explicitly noted: An upower mask allows us to say that an upgrade
|
100 |
should do `emerge -C upower` and `emerge upower-pm-utils`, in the case
|
101 |
that there is || ( upower upower-pm-utils ) listed as a dependency.
|
102 |
|
103 |
Unless you have selected upower on purpose; which would be a different
|
104 |
case than the one we're discussing here, also giving different output as
|
105 |
it'll point out that @selected brings in what (upower) has been masked.
|
106 |
|
107 |
- --
|
108 |
With kind regards,
|
109 |
|
110 |
Tom Wijsman (TomWij)
|
111 |
Gentoo Developer
|
112 |
|
113 |
E-mail address : TomWij@g.o
|
114 |
GPG Public Key : 6D34E57D
|
115 |
GPG Fingerprint : C165 AF18 AB4C 400B C3D2 ABF0 95B2 1FCD 6D34 E57D
|
116 |
-----BEGIN PGP SIGNATURE-----
|
117 |
Version: GnuPG v2.0.22 (GNU/Linux)
|
118 |
|
119 |
iQEcBAEBAgAGBQJTjdWXAAoJEPWZc8roOL/QTwAIAJeYIYpF4JIclsGY67ZHDpuM
|
120 |
D2rY3JlCEof4iMcPGccR+lsiTWp0inRRkR5YYejPTMupD/MUqmhuxAogLcUE79m6
|
121 |
lBGQOmO9G4Iduvuoesa99x7UUW6Ihx9TrmoPmn++S9Bn8FrFq+52rUkRDFrlbsrP
|
122 |
+wyrc2Dh8SQlI7Bf2r0WcloE9xb+TVXKeyJeZs9eN0afQXqtFJraoGuPYsj7yF7f
|
123 |
JWHq26HWRBd+EM8Gyx0OHgPW4Uc7mwhabywxfh44HcjLvh5DN+4/fXbLXc6ytBvi
|
124 |
Z5+4UMMXNEUloovKKHT45uVCJ159njFk9KW5SQhKRihaQD63USMm+sKGm0Kx0Ek=
|
125 |
=Sugk
|
126 |
-----END PGP SIGNATURE----- |