On Friday 24 June 2011 14:42:24 Alan Mackenzie did opine thusly:
> Hi, Adam.
> 
> On Fri, Jun 24, 2011 at 10:07:02PM +1000, Adam Carter wrote:
> > >> No you just need to rebuild it, so emerge xf86-input-evdev
> > > 
> > > This problem hit me too.  Can you give us an explanation for
> > > needing to rebuild evdev?  Was there some missing
> > > dependency in an ebuild, or something?
> > 
> > If you update xorg (which OP didnt list, but a new version just
> > went stable) you need to rebuild its drivers (unless they were
> > automatically rebuilt due to version bump).
> 
> Hmm.  Recompiling the same source code produces a different binary?

Not quite:

Rebuilding the same sources against different headers produces a 
different binary.

> Presumably, it uses C macros in a .h file which is part of xorg.  Or
> something like that.
> 
> So evdev depends on xorg.  Isn't there a way of expressing this in
> evdev's ebuild?  Something like the DEPEND variable?

It's already there, but doesn't help as the update trigger never 
happens.

Actually, you have the depend the wrong way round - evdev depends on 
xorg-server; to have the driver and for it to be useful, the xorg-
server must be present, otherwise there is nothing for the drivers to 
build against.

You want to force a rebuild that is the opposite of the DEPEND, but 
portage does not support that (it's a circular dependency). It will 
also not rebuild the driver as part of a regular update as there is 
not a new version of the driver, hence according to normal portage 
logic there is no need to do so.

Make sense?


-- 
alan dot mckinnon at gmail dot com

Reply via email to