houmain / keymapper

A cross-platform context-aware key remapper.
GNU General Public License v3.0
257 stars 21 forks source link

4.1.2 deb won't run on Ubuntu 20.04 LTS #136

Closed Zireael07 closed 2 months ago

Zireael07 commented 2 months ago

Spews errors about libxkbcommon and while those can be rectified, it also spews errors about glibc (IIRC it tried looking for 2.30, 2.32 and 2.34).

Nothing in README about a compat breakage, trying to identify which version is the one that breaks. So far got up to 3.0.0 which works.

ristomatti commented 2 months ago

Yep it doesn't. But you can build it yourself.

# Install dependencies (you might need others as well, this list might not be exhaustive)
sudo apt install libappindicator3 libdbus-1-dev libdbus-glib-1-dev libdbusmenu-glib-dev libgtk-3-dev libqt5x11extras5-dev libudev-dev libusb-1.0-0-dev libwayland-dev libx11-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev

# Configure (this will tell you if some lib is still missing, install them and run again
# until it passes cleanly)
cmake -B ./build -DENABLE_WAYLAND=false

# Build
cmake --build ./build --config Release

# Package as DEB
cpack -G DEB ./build --config ./build/CPackConfig.cmake

# Install
sudo apt install ./keymapper-4.1.2-Linux.deb

I also did install a newer CMake from this PPA but I'm not sure if it was necessary: https://apt.kitware.com/

Alternatively, you can try using the DEB i've built if you trust a package from a random dude: keymapper-4.1.2-ubuntu20.04.zip. It's zipped as GitHub does not allow .deb as attachment.

Zireael07 commented 2 months ago

Building is a no-go here since it's a company laptop (same goes for using a random person's deb)

ristomatti commented 2 months ago

Running Ubuntu 20.04 is not great for getting anything recent these days. I'm sticking to it until I get a new work laptop. Curious to know why compiling is a no go? You can do it with the packages available on the main Ubuntu repository.

houmain commented 2 months ago

Yes, the 3.0.0 packages were the last ones that were built with Ubuntu 20.04. I had to upgrade the build system to Ubuntu 22.04 since 20.04 did not have libxkbcommon >= 1.0, which is required for the character typing under Wayland.

houmain commented 2 months ago

I hope you get by with an older version on the mentioned system. Maybe you can also boot a live image in a VM and build the current version using the ristomati's guide?

Zireael07 commented 2 months ago

Company rules forbid compiling anything as well as installing anything unapproved

ristomatti commented 2 months ago

You got same strange rules over there if a package downloaded from the same repository would be ok. Given how strict the policy is, to me it sounds like any app running root and listening for key events could never get approved. But regardless, I feel the pain, I've worked under a strict policy at one point during my career.

Zireael07 commented 2 months ago

@ristomatti They approved debs from this repo as I insisted I need keymapper specifically for accessibility reasons (which is true as no other app can do all the things it does)

houmain commented 2 months ago

@Zireael07 Ok, I added a configuration for 20.04 to the build script. Please try the "keymapper-4.1.3-Ubuntu-20.04.deb".

@ristomatti FYI: You should no longer have to pass "-DENABLE_WAYLAND=false". Wayland support is now disabled by default when libxkbcommon >= 1.0 is not found.

ristomatti commented 2 months ago

I can confirm the flag is no more needed, and that I can now install the deb file on the releases. @Zireael07 you should be good to go. :+1: