Bug 92332

Summary: libinput does not link against libevdev-1.2.2
Product: Wayland Reporter: May <may24x>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED NOTOURBUG QA Contact:
Severity: normal    
Priority: medium CC: peter.hutterer
Version: 1.0.1   
Hardware: Other   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description May 2015-10-07 09:46:48 UTC
I'm trying to build the latest git clone of libinput on my CentOS 7 box.

As CentOS doesn't ship with libevde I downloaded and also build it (no errors)
But now, libinput.so is not linking against libevdev.so. it fails with errors:

make  all-recursive
make[1]: Entering directory `/work/libinput'
Making all in src
make[2]: Entering directory `/work/libinput/src'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/work/libinput/src'
Making all in doc
make[2]: Entering directory `/work/libinput/doc'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/work/libinput/doc'
Making all in test
make[2]: Entering directory `/work/libinput/test'
make[2]: Für das Ziel »all« ist nichts zu tun.
make[2]: Leaving directory `/work/libinput/test'
Making all in tools
make[2]: Entering directory `/work/libinput/tools'
  CCLD     libinput-list-devices
./.libs/libshared.a(libshared_la-shared.o): In function `tools_parse_args':
/work/libinput/tools/shared.c:279: undefined reference to `libevdev_event_code_from_name'
../src/.libs/libinput.so: undefined reference to `libevdev_disable_event_code'
../src/.libs/libinput.so: undefined reference to `libevdev_get_event_value'
../src/.libs/libinput.so: undefined reference to `libevdev_set_abs_resolution'
../src/.libs/libinput.so: undefined reference to `libevdev_get_id_bustype'
../src/.libs/libinput.so: undefined reference to `libevdev_new_from_fd'
../src/.libs/libinput.so: undefined reference to `libevdev_next_event'
../src/.libs/libinput.so: undefined reference to `libevdev_get_id_vendor'
../src/.libs/libinput.so: undefined reference to `libevdev_free'
../src/.libs/libinput.so: undefined reference to `libevdev_get_num_slots'
../src/.libs/libinput.so: undefined reference to `libevdev_get_name'
../src/.libs/libinput.so: undefined reference to `libevdev_enable_event_code'
../src/.libs/libinput.so: undefined reference to `libevdev_event_is_code'
../src/.libs/libinput.so: undefined reference to `libevdev_has_property'
../src/.libs/libinput.so: undefined reference to `libevdev_get_abs_info'
../src/.libs/libinput.so: undefined reference to `libevdev_change_fd'
../src/.libs/libinput.so: undefined reference to `libevdev_get_current_slot'
../src/.libs/libinput.so: undefined reference to `libevdev_get_id_product'
../src/.libs/libinput.so: undefined reference to `libevdev_get_slot_value'
../src/.libs/libinput.so: undefined reference to `libevdev_fetch_slot_value'
../src/.libs/libinput.so: undefined reference to `libevdev_has_event_type'
../src/.libs/libinput.so: undefined reference to `libevdev_set_clock_id'
../src/.libs/libinput.so: undefined reference to `libevdev_has_event_code'
../src/.libs/libinput.so: undefined reference to `libevdev_event_code_get_name'
collect2: error: ld returned 1 exit status
make[2]: *** [libinput-list-devices] Fehler 1
make[2]: Leaving directory `/work/libinput/tools'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/work/libinput'
make: *** [all] Fehler 2

The error of the "undefined reference" is wrong!
Checking the libevdev.so with "strings" shows that all references are present.
Comment 1 May 2015-10-08 13:34:41 UTC
Ok, I solved it ... kinda 

So the 'LIBEVDEV_LIBS' in the Makefile needs to have -levdev which was not detected by configure !
Comment 2 Peter Hutterer 2015-11-09 00:36:31 UTC
(In reply to May from comment #1)
> So the 'LIBEVDEV_LIBS' in the Makefile needs to have -levdev which was not
> detected by configure !

that's odd and would indicate a pkgconfig bug. What do you see when you run "pkg-config --libs libevdev"?

Note that 7.2 will have libevdev (but not libinput), so you can ditch your local copy. Until then, and I have a EPEL7 repos here:
https://copr.fedoraproject.org/coprs/whot/libevdev/
https://copr.fedoraproject.org/coprs/whot/libinput-epel7

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.