Bug 100786

Summary: `make install` creates a /usr/lib64/libinput.so symlink which breaks shutdown on openSUSE Tumbleweed
Product: Wayland Reporter: Nate Graham <nate>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED WORKSFORME QA Contact:
Severity: normal    
Priority: medium CC: nate, peter.hutterer
Version: 1.5.0   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Nate Graham 2017-04-25 13:33:22 UTC
Linux distro: openSUSE Tumbleweed
DE: KDE Plasma 5.9.4


Steps to reproduce:
1. Download libinput sources
2. Disable hysteresis (see https://bugs.freedesktop.org/show_bug.cgi?id=98839)
3. Compile and deploy (./autogen.sh --prefix=/usr --libdir=/usr/lib64; make; make install)
4. Shutdown or reboot twice


Expected result:
- Nothing unusual happens.


Actual result:
- The second reboot (after the new libraries were loaded) dumps me into a console login prompt instead of actually rebooting. CLI shutdown commands hang forever; hard-rebooting is necessary.


Workaround:
- The problem seems to be caused by the /usr/lib64/libinput.so symlink which is installed by `make install.` My system-provided libinput package does not include this symlink, and removing it resolves the shutdown issue and does not impact functionality (i.e. I still have my nice hysteresis-free libinput).
Comment 1 Peter Hutterer 2017-04-26 02:07:03 UTC
weird. that symlink isn't something controlled by us, it's created by autotools and I'm not even sure there's an option to remove it. either way, the symlink itself should only be used during compilation, the bits dependent on libinput should depend directly on the .so.A.B.C file, not the symlink.

you'll find that the .so is probably provided by the libinput-devel package. The only thing I can imagine is that if you install two independent libinput versions one from source, the other one from the package, the .so file of the system package was removed (??) and now your compositor or X relies on the removed .so file. Why that would affect shutdown I honestly don't know.

i recommend install the system's libinput and libinput-devel package, look at the files in the tree, then make install and compare what changed. That could provide a hint of what's going wrong.
Comment 2 Nate Graham 2017-04-26 03:40:37 UTC
FWIW I'm using X, not Wayland.

You are correct, the /usr/lib64/libinput.so symlink is provided by the libinput-devel package, which explains why I didn't see it before; I didn't have the libinput-devel package installed.

When I install libinput-devel, the problem happens again, because now there's a /usr/lib64/libinput.so symlink. When I remove the symlink or the libinput-devel package, the problem disappears.


Looking at my source checkout (just git master) after running `make`, I can clearly see that it's created the symlink:


$ cd FreeDesktop/libinput/

$ find . | grep -i "\.so"
./src/.libs/libinput.so.10
./src/.libs/libinput.so
./src/.libs/libinput.so.10.12.2

$ ls -la ./src/.libs/libinput.so
lrwxrwxrwx 1 nate users 19 Apr 23 16:57 ./src/.libs/libinput.so -> libinput.so.10.12.2


`make install` puts that at /usr/lib64, alongside /usr/lib64/libinput.so.10.12.2 and /usr/lib64/libinput.so.10 (a symlink to the first).

Which is the problem?
1. `make` makes that symlink
2. `make install` installs it
3. Having it installed breaks shutdown/reboot operations

...Or all three?
Comment 3 Peter Hutterer 2017-04-26 03:54:41 UTC
the problem is 3), because that symlink has been around for years, possibly decades. I have no idea though why this could break. does the journal have anything useful in it?
Comment 4 Nate Graham 2017-04-26 03:57:19 UTC
If it's not too much to ask, I'll need a little handholding for this part, not yet being fully familiar with the logging infrastructure on Linux-based OSs. What am I looking at?
Comment 5 Peter Hutterer 2017-04-26 04:23:20 UTC
basically: journalctl -ef, then try to shutdown and see what comes up
Comment 6 Nate Graham 2017-04-26 18:07:33 UTC
Darn, now I can no longer reproduce the issue, either by installing libinput-devel, or `make install`. Sigh. Sorry for wasting your time. If it happens again, I'll do some more investigation.

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.