10 votes

Dernière version de libinput sur ubuntu

Venant principalement de Fedora et Archlinux, j'avais l'habitude d'avoir la dernière libinput disponible dans un délai raisonnable. Actuellement, sur ubuntu 18.04, je ne vois pas comment je peux avoir la dernière libinput, par exemple la 1.12 au moment de l'écriture, sur ma machine. Existe-t-il un ppa ou quelqu'un a-t-il essayé de l'installer à partir des sources sans perturber l'ensemble du système ?

Cela ne me dérange pas de le compiler mais je n'ai pas l'habitude de le tester et de m'assurer qu'il fonctionne correctement en conjonction avec d'autres paquets. Ayant un ThinkPad TrackPoint, j'ai l'impression que la dernière version de libinput est cruciale !

1voto

Hi-Angel Points 3233

Il y avait une autre réponse, mais cela fait un mois que l'auteur l'a supprimée. Écrivons-en une nouvelle.

Espérons qu'un jour quelqu'un créera un PPA avec la dernière version de libinput. En attendant, voici les instructions pour construire vous-même un paquet libinput à jour.

C'est facile, les instructions ci-dessous sont principalement tiré d'ici et le conseil sur le méson est tiré de la réponse effacée. Je suppose également que vous n'avez pas besoin de générer des documents, donc je n'installe pas de dépendances pour eux et les désactive dans le fichier meson appel. Il est également important pour --prefix à être usr dans la ligne meson-configuration, afin que les bibliothèques soient installées à des emplacements standard.

Etape 1 : installer les dépendances de construction

J'espère ne pas en avoir oublié, mais n'hésitez pas à commenter si c'est le cas.

$ sudo apt install -y git ninja-build
$ sudo apt build-dep libinput

Vous aurez également besoin de meson . Il est dans le repo Ubuntu, cependant dans la commande suivante je l'installe avec pip. La raison est la suivante : Ubuntu fournissant la plupart du temps des logiciels anciens, il est possible que leur version de meson soit trop ancienne pour pouvoir construire libinput. ATM Ubuntu 18.04 est connu pour avoir ce problème, mais je suppose qu'avec le temps cela peut arriver à d'autres versions également.

$ sudo apt install python3-pip
$ sudo pip3 install meson

Étape 2 : cloner et construire libinput

$ git clone https://gitlab.freedesktop.org/libinput/libinput
$ cd libinput
$ meson --prefix=/usr -Ddocumentation=false build/
$ ninja -C build/

Étape 3 : créer le paquet libinput et l'installer

Bien que la manière la plus simple d'installer la librairie construite soit d'exécuter ninja -C build install mais je vous le déconseille fortement, sauf si vous savez ce que vous faites. (vous obtiendrez des fichiers non tracés partout dans votre système qui peuvent être écrasés lors de la mise à jour du système, et selon la situation peut même casser complètement libinput) .

Au lieu de cela, utilisez ce script que j'ai écrit. pour assembler un paquet.

$ wget https://gist.githubusercontent.com/Hi-Angel/45030ab89a2378b42511612cbe48d247/raw/package-deb-libinput.sh
[…]
$ bash ./package-deb-libinput.sh  build/
[…]
dpkg-deb: building package 'libinput-git' in 'libinput_1.15.3-212-g60edbd2d.deb'.

Vous pouvez voir le nom du nouveau paquet dans la sortie script, il ne reste donc plus qu'à l'installer (remarque : le ./ dans le chemin est nécessaire pour apt pour interpréter correctement l'argument comme un fichier local) :

$ sudo apt install -y ./build/libinput_1.15.3-212-g60edbd2d.deb

Pour utiliser la librairie installée, vous devez redémarrer la session graphique. (par exemple, redémarrage) .


Retour à l'ancienne libinput

Si vous souhaitez récupérer la librairie fournie par la distribution, installez simplement libinput10 paquet (il remplacera libinput-git ) :

$ apt install -y libinput10

Annexe

Au cas où quelque chose arriverait à github gist, voici le contenu actuel du script :

#!/bin/bash
set -e

if [ "$#" -ne 1 ]; then
    echo "Wrong number of parameters.
Usage: $(basename $0) build_dir"
    exit 1
fi

MESON_BUILD_ROOT=$(readlink -f $1)
PACKAGE_VERSION=$(grep -Po 'LIBINPUT_GIT_VERSION.*"\K.+(?=")' "$MESON_BUILD_ROOT"/libinput-git-version.h)
PKG_DIR="$MESON_BUILD_ROOT"/deb
mkdir -p $PKG_DIR/DEBIAN/
cat > $PKG_DIR/DEBIAN/control <<- END_OF_TEXT
PACKAGE: libinput-git
Version: $PACKAGE_VERSION
Architecture: amd64
Maintainer: Mystique Packager
Description: input device management and event handling library
Depends: libevdev2, libmtdev1, libudev1, libwacom2
Conflicts: libinput10, libinput-bin, libinput-dev, libinput-tools
Provides:  libinput10, libinput-bin, libinput-dev, libinput-tools
Homepage: https://gitlab.freedesktop.org/libinput/libinput
END_OF_TEXT

cd "$MESON_BUILD_ROOT"
DESTDIR=$PKG_DIR ninja install
fakeroot dpkg-deb --build $PKG_DIR/ libinput_$PACKAGE_VERSION.deb

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X