Compilation de Dwm vers Arch Linux. Xft.h manquant?

Oct 03 2020

Essayer de compiler le Dwm Tile Manager (qui utilise Xorg) sur Arch Linux produit actuellement l'erreur suivante ( fichier original en pièce jointe ):

dwm build options:
CFLAGS   = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os -I/usr/include/X11 -I/usr/include/freetype2 -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=200809L -DVERSION="6.2" -DXINERAMA
LDFLAGS  = -L/usr/lib -lX11 -lXinerama -lfontconfig -lXft
CC       = cc
cc -c -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os -I/usr/include/X11 -I/usr/include/freetype2 -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=200809L -DVERSION=\"6.2\" -DXINERAMA drw.c
drw.c:6:10: fatal error: X11/Xft/Xft.h: No such file or directory
    6 | #include <X11/Xft/Xft.h>
      |          ^~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:18: drw.o] Error 1

Cela indique-t-il que la Xft.hbibliothèque est nécessaire pour compiler Dwm?

Le gestionnaire de paquets Arch Linux ne parvient pas à installer le serveur Xorg (qui contient Xft.h) en laissant cette erreur de trousseau de clés ( fichier joint d'origine ):

resolving dependencies...
looking for conflicting packages...
warning: dependency cycle detected:
warning: harfbuzz will be installed before its freetype2 dependency

Packages (21) freetype2-2.10.2-1  graphite-1:1.3.14-1  harfbuzz-2.7.2-1  libepoxy-1.5.4-2  libevdev-1.9.1-1  libfontenc-1.1.4-3  libgudev-234-1  libinput-1.16.1-1  libpng-1.6.37-3  libwacom-1.5-1  libxfont2-2.0.4-3  libxkbfile-1.1.0-2  mtdev-1.1.6-1  pixman-0.40.0-1  xf86-input-libinput-0.30.0-1  xkeyboard-config-2.30-2  xorg-fonts-encodings-1.0.5-2  xorg-server-common-1.20.9-2  xorg-setxkbmap-1.3.2-2  xorg-xkbcomp-1.4.3-1  xorg-server-1.20.9-2

Total Installed Size:  23.80 MiB

:: Proceed with installation? [Y/n] checking keyring...
downloading required keys...
:: Import PGP key 3B94A80E50A477C7, "Jan Alexander Steffens (heftig) <[email protected]>"? [Y/n] error: key "3B94A80E50A477C7" could not be looked up remotely
error: required key missing from keyring
error: failed to commit transaction (unexpected error)
Errors occurred, no packages were upgraded.

Existe-t-il une autre manière de l'obtenir Xft.h?

Réponses

1 fra-san Oct 03 2020 at 00:59

Oui, le compilateur se plaint de ne pas pouvoir trouver X11/Xft/Xft.hdans les répertoires d'inclusion de votre système.

Vous pouvez interroger la base de données de fichiers de pacman pour savoir quels packages, y compris ceux qui ne sont pas installés, fournissent un fichier:

sudo pacman -Fy    # the database likely needs to be refreshed
pacman -F Xft.h

Ou, si vous avez pkgfileinstallé le plus riche en fonctionnalités (qui gère sa propre base de données de fichiers):

pkgfile Xft.h

Les deux vous diront que usr/include/X11/Xft/Xft.hc'est fourni par libxft.

Notez que vous pouvez également profiter des packages existants: dwm existe dans l'AUR et, même si vous avez besoin de compiler votre propre version, vous pouvez toujours regarder les dépendances ("depend", "makedepends") déclarées dans le PKGBUILDfichier qui y est fourni.

Des rapports sur des problèmes avec la clé gpg de [email protected] sont apparus plus d'une fois sur les forums Arch Linux ces derniers mois [1] [2] . Si votre archlinux-keyringpackage est à jour et que vous voyez toujours des erreurs liées à la clé manquante, vous pouvez essayer d'importer la clé 3B94A80E50A477C7se trouve être une sous-clé de:

sudo gpg --recv-keys --keyserver hkp://pool.sks-keyservers.net \
  --homedir /etc/pacman.d/gnupg 19802F8B0D70FC30