1 |
Kent Fredric posted on Wed, 23 Jul 2014 06:44:57 +1200 as excerpted: |
2 |
|
3 |
> Ok, we can side step this discussion partially: |
4 |
> |
5 |
> Lets pretend for a moment dynamic deps get banned. |
6 |
> |
7 |
> People will still unconsciously make that mistake and things will still |
8 |
> break when they do. |
9 |
> |
10 |
> So we'll probably need a repoman check that is smart enough to know "X |
11 |
> is modified" and compare the DEPEND fields with the previous incarnation |
12 |
> prior to commit, and then at very least, warn people doing `repoman |
13 |
> full` that they've modified the dependencies, and that a -r1 bump is |
14 |
> thus highly recommended. |
15 |
> |
16 |
> And that check can be added *now* prior to banning/disabling dynamic |
17 |
> deps. |
18 |
> |
19 |
> And people who want to pay attention to that warning can start doing it |
20 |
> before policy dictates they must. |
21 |
|
22 |
Be aware that with eclasses generated deps taken into account, this |
23 |
/could/ trigger a LOT of arguably unnecessary revision bumps. |
24 |
|
25 |
Right now I'm trying emerge --dynamic-deps n --update --deep @world, |
26 |
and... |
27 |
|
28 |
Due to dynamic-deps and the (default) WANT_AUTOMAKE=LATEST (or whatever |
29 |
it is) stuff in the eclasses, I only have automake slots 1.11 and 1.14 |
30 |
installed here, but I still have well over 100 packages originally built |
31 |
with automake:1.13, that if I turn off dynamic-deps either need it pulled |
32 |
back in, or need to be rebuilt to pull in the automake:1.14 dep. |
33 |
|
34 |
I guess that's a variant of category 2 in the wiki list. It's a minor |
35 |
build-only dep change that doesn't need to be propagated immediately as |
36 |
the package is already installed, with dynamic-deps applying it |
37 |
immediately, but static-deps wouldn't apply it until a rebuild. As long |
38 |
as the older automake slot remains around to fill the dep, not a problem. |
39 |
|
40 |
Of course for users the fix is simple and what portage recommends, simply |
41 |
pull automake:1.13 back in (or don't let it be unmerged in the first |
42 |
place) and don't worry about it. |
43 |
|
44 |
I decided to go the rebuild route instead, here, and once I decided the |
45 |
number of rebuilds wasn't going to be easy to do with --tree giving me |
46 |
one at a time, I concocted a pipe involving bzgrep environment.bz2 to |
47 |
list them all so I could rebuild them in parallel, then did a wc -l on |
48 |
the output to get a count. |
49 |
|
50 |
But a repoman dynamic-deps checker might have flagged all those 125-ish |
51 |
package for revision-bump when automake:1.14 was introduced and thus |
52 |
became a dependency candidate. |
53 |
|
54 |
And I'm on ~arch, doing --deep --newuse @world updates routinely, with a |
55 |
not insignificant portion of my packages being live-ebuilds, so many of |
56 |
the package originally built with automake:1.13 have certainly been |
57 |
rebuilt by now, here. But I see a distinct possibility of an automake |
58 |
slot bump triggering thousands of rev-bumps, often to all available |
59 |
versions of a package at once, tree-wide. |
60 |
|
61 |
|
62 |
Meanwhile, one personal benefit to this discussion is that at least I |
63 |
understand now why merging a binpkg the other day pulled in some automake |
64 |
slot that depclean immediately wanted to remove. Binpkgs are static-deps |
65 |
and that one must have been built with that automake slot, but of course |
66 |
depclean was using dynamic-deps, so... Now I have a proper explanation |
67 |
for the behavior. =:^) |
68 |
|
69 |
-- |
70 |
Duncan - List replies preferred. No HTML msgs. |
71 |
"Every nonfree program has a lord, a master -- |
72 |
and if you use the program, he is your master." Richard Stallman |