Re: [gentoo-user] Rebuilding all dependants of a package

2018-02-20 Thread J. Roeleveld
On February 20, 2018 7:14:25 AM UTC, Alan McKinnon  
wrote:
>hehehehe :-)
>
>every now and again I unleash my inner grumpy old fart and should him
>to
>the world at large!
>
>On Mon, Feb 19, 2018 at 5:15 PM, Neil Bothwick 
>wrote:
>
>> On Mon, 19 Feb 2018 17:05:03 +0200, Alan McKinnon wrote:
>>
>> > Perhaps you should lay out clearly why you think you need to do
>this,
>> > so everyone else can help match your expectations to reality :-)
>>
>> Watch out everyone, Alan's in one of those moods! ;-)
>>
>>
>> --
>> Neil Bothwick
>>
>> C: (n.) the language following A and B. The world still awaits D and
>>E. By Z, it may be acceptable for general use.
>>

You call this 'grumpy old fart'?
Thanks, I often must be one at work then. :)
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.



Re: [gentoo-user] Rebuilding all dependants of a package

2018-02-19 Thread Alan McKinnon
hehehehe :-)

every now and again I unleash my inner grumpy old fart and should him to
the world at large!

On Mon, Feb 19, 2018 at 5:15 PM, Neil Bothwick  wrote:

> On Mon, 19 Feb 2018 17:05:03 +0200, Alan McKinnon wrote:
>
> > Perhaps you should lay out clearly why you think you need to do this,
> > so everyone else can help match your expectations to reality :-)
>
> Watch out everyone, Alan's in one of those moods! ;-)
>
>
> --
> Neil Bothwick
>
> C: (n.) the language following A and B. The world still awaits D and
>E. By Z, it may be acceptable for general use.
>



-- 
Alan McKinnon
alan dot mckinnon at gmail dot com


Re: [gentoo-user] Rebuilding all dependants of a package

2018-02-19 Thread Neil Bothwick
On Mon, 19 Feb 2018 17:05:03 +0200, Alan McKinnon wrote:

> Perhaps you should lay out clearly why you think you need to do this,
> so everyone else can help match your expectations to reality :-)

Watch out everyone, Alan's in one of those moods! ;-)


-- 
Neil Bothwick

C: (n.) the language following A and B. The world still awaits D and
   E. By Z, it may be acceptable for general use.


pgpYsEapygQLv.pgp
Description: OpenPGP digital signature


Re: [gentoo-user] Rebuilding all dependants of a package

2018-02-19 Thread Alan McKinnon

On 19/02/2018 14:55, Holger Hoffstätte wrote:

Hey,

I'm not exactly new to portage, but one thing that I cannot seem to figure
out is how to rebuild all dependants of a package. Not *dependencies*,
dependants: packages that require said package.

As a recent example: whenever go (the language) is updated to a new version
(say from 1.9 to 1.10, as it happended recently), I'd like to rebuild docker
& friends - or more specifically 'things that are compiled with go'.

The --changed-deps option doesn't seem to do the trick, so instead I manually
do a -vp --depclean on go and manually --oneshot all installed packages that
have their hands on it. This is obviously stupid and error-prone.

Am I missing something or is this really not easily possible?
Basically I'm looking for a hard --oneshot --revdep-rebuild with a package
argument.



There isn't really a one-shot way to do this easily. Ebuilds do not 
contain dependants, they contain dependencies and that is a one-way 
arrow. So you end up having to walk the tree to get the information you 
are after.


If you have to do it, your example will suffice. Crude, but works.

I have to question though why you think you need to do this. If you want 
to do it ad-hoc without needing a good reason, then do the above. If you 
think that stuff must be rebuilt when go is bumped, then you are not 
correct. ebuilds have sub-slot dependencies which you can think of as 
somewhat like ABI/API version tracking, not package tracking. If go is 
rebuilt and the ABI/API changes, emerge notices and rebuilds packages 
that were using the old go. If a go-using package is compatible with the 
chnage, it is not rebuilt because it does not need to be rebuilt and the 
runtime linker deals with what happens at runtime. If portage misses 
something in this, that is a bug and the ebuild needs updating.


Perhaps you should lay out clearly why you think you need to do this, so 
everyone else can help match your expectations to reality :-)



--
Alan McKinnon
alan.mckin...@gmail.com




Re: [gentoo-user] Rebuilding all dependants of a package

2018-02-19 Thread Branko Grubic
On Mon, 19 Feb 2018 12:55:08 + (UTC)
Holger Hoffstätte  wrote:

> Hey,
> 
> I'm not exactly new to portage, but one thing that I cannot seem to
> figure out is how to rebuild all dependants of a package. Not
> *dependencies*, dependants: packages that require said package.
> 
> As a recent example: whenever go (the language) is updated to a new
> version (say from 1.9 to 1.10, as it happended recently), I'd like to
> rebuild docker & friends - or more specifically 'things that are
> compiled with go'.
> 
> The --changed-deps option doesn't seem to do the trick, so instead I
> manually do a -vp --depclean on go and manually --oneshot all
> installed packages that have their hands on it. This is obviously
> stupid and error-prone.
> 
> Am I missing something or is this really not easily possible?
> Basically I'm looking for a hard --oneshot --revdep-rebuild with a
> package argument.
> 
> thanks,
> Holger
> 
> 

I never needed this, so I don't know how to do it directly with emerge
(is it possible?), but you can use equery like this to get a list:

equery -q d dev-lang/go

-q/--quiet (minimal output)
(d)epends (list all packages directly depending on ATOM)

to get a list of packages installed which depend on dev-lang/go
you can filter versions out of it and feed that to 'emerge -av1'.

Or if you trust this ugly one-liner without filtering (probably ugliest
thing, but seems to do the job):

emerge -av1 $(for i in $(equery -q d sys-apps/util-linux); do echo
"=$i"; done)



[gentoo-user] Rebuilding all dependants of a package

2018-02-19 Thread Holger Hoffstätte
Hey,

I'm not exactly new to portage, but one thing that I cannot seem to figure
out is how to rebuild all dependants of a package. Not *dependencies*,
dependants: packages that require said package.

As a recent example: whenever go (the language) is updated to a new version
(say from 1.9 to 1.10, as it happended recently), I'd like to rebuild docker
& friends - or more specifically 'things that are compiled with go'.

The --changed-deps option doesn't seem to do the trick, so instead I manually
do a -vp --depclean on go and manually --oneshot all installed packages that
have their hands on it. This is obviously stupid and error-prone.

Am I missing something or is this really not easily possible?
Basically I'm looking for a hard --oneshot --revdep-rebuild with a package
argument.

thanks,
Holger