1 |
On Mon, 19 Feb 2018 17:05:03 +0200, Alan McKinnon wrote: |
2 |
|
3 |
> On 19/02/2018 14:55, Holger Hoffstätte wrote: |
4 |
>> Hey, |
5 |
>> |
6 |
>> I'm not exactly new to portage, but one thing that I cannot seem to figure |
7 |
>> out is how to rebuild all dependants of a package. Not *dependencies*, |
8 |
>> dependants: packages that require said package. |
9 |
>> |
10 |
>> As a recent example: whenever go (the language) is updated to a new version |
11 |
>> (say from 1.9 to 1.10, as it happended recently), I'd like to rebuild docker |
12 |
>> & friends - or more specifically 'things that are compiled with go'. |
13 |
>> |
14 |
>> The --changed-deps option doesn't seem to do the trick, so instead I manually |
15 |
>> do a -vp --depclean on go and manually --oneshot all installed packages that |
16 |
>> have their hands on it. This is obviously stupid and error-prone. |
17 |
>> |
18 |
>> Am I missing something or is this really not easily possible? |
19 |
>> Basically I'm looking for a hard --oneshot --revdep-rebuild with a package |
20 |
>> argument. |
21 |
> |
22 |
> |
23 |
> There isn't really a one-shot way to do this easily. Ebuilds do not |
24 |
> contain dependants, they contain dependencies and that is a one-way |
25 |
> arrow. So you end up having to walk the tree to get the information you |
26 |
> are after. |
27 |
|
28 |
There are numerous cases where portage/equery already do that and |
29 |
perform the equivalent of a grep throug the entire tree. |
30 |
|
31 |
> I have to question though why you think you need to do this. If you want |
32 |
|
33 |
Because of static linking. In this case go embeds the runtime (esp. |
34 |
the gc) into executables, so the only way to get improvements into |
35 |
existing binaries is to rebuild. Neither subslots nor changed-deps do |
36 |
this, esp. not on demand. |
37 |
|
38 |
I can think of numerous opther cases where this is necessary (mostly |
39 |
related to C++ and/or static linking) but really don't have the time |
40 |
or patience right now. |
41 |
|
42 |
cheers |
43 |
Holger |