Unannounced ABI change without soname bump in libevdev-0.6 in Rawhide (and F19 and F20...) breaks GNOME, probably other consumers
peter.hutterer at who-t.net
Thu Jan 2 22:03:08 UTC 2014
On Thu, Dec 26, 2013 at 07:58:06PM -0800, Adam Williamson wrote:
> On Thu, 2013-12-26 at 19:07 -0800, Adam Williamson wrote:
> > On Thu, 2013-12-26 at 18:51 -0800, Adam Williamson wrote:
> > > Time for another PSA...
> > >
> > > It appears libevdev 0.6 breaks the library's ABI without bumping the
> > > soname (and without an announcement here or anywhere else I can find,
> > > but an ABI change without an soname bump is just flat out wrong whether
> > > announced or not). 0.6 was sent to Rawhide, F19 and F20 simultaneously.
> > >
> > > The ABI change breaks GNOME in F20 and Rawhide (because clutter was
> > > using the calls that disappeared in the 0.6 build):
> > >
> > > undefined symbol: LIBEVDEV_READ_NORMAL (/lib/libclutter-1.0.so.0)
> > > undefined symbol: LIBEVDEV_READ_SYNC (/lib/libclutter-1.0.so.0)
> > >
> > > Dec 26 02:02:34 pressanykey gnome-session: gnome-shell: symbol
> > > lookup error: /lib64/libclutter-1.0.so.0: undefined symbol:
> > > LIBEVDEV_READ_NORMAL
> > >
> > > Reported as https://bugzilla.redhat.com/show_bug.cgi?id=1046426 .
> > >
> > > Rebuilding clutter is not trivial at present, and in fact builds of
> > > clutter appear to fail on this same libevdev issue. So right now, GNOME
> > > in Rawhide is broken if you install libevdev 0.6, and this monkey
> > > doesn't feel comfortable trying to fix it (I don't want to start
> > > randomly whacking things in clutter's code to try and make it build
> > > against the new libevdev).
> > Actually, Mamoru Tasaka handily identified the offending upstream commit
> > in the bug report, so I'm sending a build of libevdev with the function
> > removal reverted to Rawhide for now.
> I've built (and *tested*...) a new libevdev that restores the
> 'deprecated' functions, along with a new clutter that stops using the
> 'deprecated' functions (hence fixing it from both ends). My Rawhide box
> is running fine, so I've sent both builds out.
sorry for the delay, read that email sooner but didn't get to reply until
first: thanks. reverting that commit is the right fix for libevdev's
package, and updating clutter obviously too. should've checked if anything
uses libevdev yet, I didn't realise that some packages already depended on
fwiw, the ABI will change, it's been announced in 0.4 that this is going
away and deprecated accordingly. because we're pre 1.0, I didn't bother with
the soname bump yet. either way, I'll do it properly now.
More information about the devel