Guide de migration vers X.Org modulaire Donnie Berkholz Joshua Baergen Bertrand Coppa Ce guide vous explique comment migrer vers la version modulaire de X.Org. 1.16 2006-01-02 Introduction
Pourquoi une version modulaire ?

Vous vous demandez surement pourquoi changer un simple et unique paquet xorg-x11 en environ 300 paquets séparés ? Et cela est justifié. Ce n'est pas Gentoo qui a fait ce choix indépendament du projet X.Org ; c'est eux-mêmes qui ont décidé de séparer tous ces paquets, et nous ne faisons que suivre.

Les trois principales raisons de cette division et de ce changement dans le système de compilation sont :

  • Il est trop difficile pour les nouveaux développeurs de se plonger dans X, d'où la migration vers autotools, un système avec lequel beaucoup se sentent à l'aise, si ce n'est heureux.
  • Autotools permet la séparation des sources, aussi le système devient plus agréable pour les développeurs.
  • Les choses ont été par le passée, sans que cela soit nécessaire, liées les unes aux autres et cela a rendu la publication de correctifs de bogue souvent impossible. Si les développeurs arrivaient à publier un correctif, il fallait à chaque fois recompiler entièrement X.Org. Par exemple, pour un bogue dans les pilotes Ati, il vous fallait soit attendre 6 mois pour la version suivante, soit aussi recompiler vos fontes de caractères pour le corriger, sans aucune raison.
Migration vers X modulaire
Introduction

Pour empêcher les vieux paquets de perturber l'opération, nous allons nettoyer complètement l'ancien xorg-x11 avant d'installer X modulaire. Ce n'est pas absolument crucial, mais cela aidera à assurer une migration sans accroc.

Première étape : nettoyage de l'ancien X
# emerge gentoolkit
# quickpkg xorg-x11

Se débarasser de l'installation monolithique :

# emerge -Ca xorg-x11 virtual/x11
# rm -rf /usr/lib/opengl/xorg-x11
# rm -rf /usr/lib/libGL*

Il est fortement conseillé de faire une sauvegarde du xorg-x11 monolithique au cas où les choses se passeraient vraiment très mal.

Les dernières opérations sont nécessaires pour être certain de se débarasser des liens symboliques créés par opengl-update.

Si /usr/X11R6 n'est pas un lien symbolique vers /usr, effacez-le et partez de zéro. Mais d'abord, établissez une liste de tous les paquets s'installant dans ce répertoire.

# if [[ ! -L /usr/X11R6 ]]; \
	then equery belongs /usr/X11R6 > usr-x11r6-packages \
	&& rm -rf /usr/X11R6; fi
Seconde étape : installer le X modulaire

D'abord, ajoutez les paquets nécessaires dans le fichier /etc/portage/package.unmask. Ouvrez /usr/portage/profiles/package.mask avec l'éditeur de texte de votre choix et faites un copier-coller de la liste complète des fichiers masqués pour X modulaire dans package.unmask. Faites de même pour /etc/portage/package.keywords si vous êtes dans la branche stable. Si tout ceci vous est incompréhensible, lisez la section concernant le masquage du manuel..

Pour avoir accès au direct rendering, ajoutez l'option dri à la variable USE.

Maintenant, installez le méta-paquet. Cela installera le serveur et les applications usuelles, vous donnant accès à une implémentation fonctionnelle de X.

# emerge xorg-x11

Remarque : cette installation est plutôt minimaliste, donc les choses comme xcursor-themes ne seront pas installées par défaut.

Ensuite, installez quelques pilotes. Cela dépend de votre matériel vidéo et de vos périphériques d'entrée, donc jetez un œil au répertoire /usr/portage/x11-drivers/. Voici un exemple :

# emerge xf86-input-mouse xf86-input-keyboard xf86-video-ati
Une fois la version modulaire installée, certains pilotes externes comme nvidia-glx et wacom tout comme certaines applications vnc risquent de ne pas fonctionner si ils installent des choses dans /usr/lib/modules au lieu de /usr/lib/xorg/modules. Une détection de X modulaire a été ajoutée au processus d'installation de la plupart d'entre eux ainsi ils auront besoin d'être réinstallés après l'installation de X modulaire.
Remarques/problèmes usuels
'emerge -u world' veut installer xorg-x11 6.x

Cela est dû au fait que l'arbre n'est pas encore adapté aux dépendances vers X modulaire. Vous pouvez aider à la transition en lisant Porting to Modular X HowTo et en remplissant des bogues avec les correctifs pour les mainteneurs des paquets. Les noms des mainteneurs sont listés dans le fichier metadata.xml dans le répertoire du paquet. Le paquet herdstat accelèrera leur requête.

Qu'est-il advenu de toutes les options de la variable USE ?

De nombreuses options USE de la série xorg-x11-6.8 ont disparu ou changé pour la 7.0. De nouvelles sont aussi apparues. En voici la description :

3dfxDans la 7.0, intègre glide-v3 depuis le méta-paquet xorg-x113dnow, mmx, sseActivées par defaut lors de la compilation, car des contrôles sont effectuésbitmap-fonts, truetype-fonts, type1-fonts Le méta-paquet xorg-x11 n'installe qu'une petite sélection des fontes les plus utilisées ou nécessaires. Vous pouvez installer en plus toutes celles qui se trouvent dans media-fonts/. cjk USE=nls pour font-misc-misc and font-sony-misc permet d'obtenir les fontes japonaises JISX0201. D'autres sont disponibles dans font-jis-misc. Les fontes chinoises se trouvent dans font-isas-misc. Les fontes coréennes sont dans font-daewoo-misc. dlloaderLa 7.0 utilise dlloader par défaut et elfloader ne fonctionne pas.docRemplacé par app-doc/xorg-docsdmxCompilé avec xorg-server sauf avec l'option USE=minimalfont-serverIl faut installer manuellement xfsipv6Adaptée seulement aux paquets l'utilisant. Réglez-la de manière globale si vous la voulez.minimal Pour obtenir le même effet, installez uniquement xorg-server à la place de xorg-x11. L'option minimal pour xorg-server permet de ne pas compiler Xdmx, Xvfb et Xnest. Si vous avez besoin de quelque chose d'encore plus minimal, orientez-vous vers x11-base/kdrive. nlsDans la 7.0, USE=nls installe toutes les versions non-ISO8859-1 des fontes.nocxxPas encore d'équivalent pour la 7.0opengl Changée en « dri » qui active le rendu direct (direct rendering) dans xorg-server et de nombreux pilotes. Que USE=dri soit activé ou non, vous devriez toujours avoir de la 3D logicielle via Mesa. pamAdaptée aux paquets l'utilisant uniquement tels xorg-server et xdm.sdkLa 7.0 doit installer le SDK à cause de la modularisation.static Cela n'a presque aucun sens de vouloir compiler un serveur statique dans un monde modulaire, car les pilotes ne peuvent être compilés avec. xprint Pour le méta-paquet, cela intègre libXp. Pour les autres applications, cela intègre le support pour xprint. La plupart des gens n'ont pas besoin de cette option. xv N'est plus une option car cela n'engendre presque aucun gain de place et pose problème avec certains paquets s'attendant à ce qu'elle soit activée.
Variable USE Que se passe-t-il avec la 7.0 ?
Problèmes de pilotes

On m'a rapporté que :

  • vesa bloque la machine avec les cartes mga
  • vga donne un affichage très étrange, l'écran étant divisé en quatre.
Utiliser glxinfo/glxgears

Ces programmes sont maintenant fournis par x11-apps/mesa-progs. mesa-progs est automatiquement installé par x11-base/xorg-x11.

Pour obtenir des informations de débogage de la part de glxinfo pour faire fonctionner le rendu direct :

# LIBGL_DEBUG=verbose glxinfo
Auto-détection du protocole de la souris

Si vous avez configuré votre souris avec Protocol "auto" dans xorg.conf, cela risque de ne pas fonctionner. Il vous faudra alors spécifier Protocol "ExplorerPS/2" ou "IMPS/2" pour que votre molette fonctionne.

Le contenu de /usr/lib/xorg a disparu !

Installez à nouveau >=xorg-server-0.99.1-r4. C'était un bogue temporaire dans l'ebuild qui avait pour conséquence l'effacement après désinstallation du paquet. Normalemment, /usr/lib/xorg ne devrait être effacé que s'il n'y a plus aucun xorg-server sur le système.

gdm/kdm ne fonctionne pas

Si vous avez installé X modulaire sur une nouvelle installation Gentoo, il se peut que vous n'ayez pas le lien symbolique /usr/X11R6 -> /usr. Le paquet x11-base/xorg-x11 s'assurera que ce lien existe durant le processus d'installation.

Vous pouvez aider à sortir les choses de /usr/X11R6 en corrigeant les paquets qui s'y installent et en remplissant des rapports de bogue.

Autres problèmes
  • Le paquet x11-base/xorg-x11 filtre maintenant tous les ModulePath et RgbPath de votre /etc/X11/xorg.conf, puisque ces deux chemins ont changé depuis les versions précédentes. Assurez-vous de lancer etc-update pour que ces modifications prennent effet.
  • De nombreuses dispositions de clavier XKB ont été déplacées, consolidées ou ont disparu. Regardez le répertoire /usr/share/X11/xkb/symbols/pc pour voir ce qu'il est advenu de votre ancien paramètre XkbLayout de xorg.conf. Par exemple, pour remplacer la disposition "us_intl", vous devriez mettre XkbLayout "latin", XkbOptions "lv3:ralt_switch". Pour remplacer la disposition "sk_qwerty", il faut mettre XkbLayout "sk", XkbVariant "qwerty". Cas plus compliqué, vous avez XkbLayout "us,sk_qwerty". Pour le faire fonctionner, le nouveau paramètre serait XkbLayout "us,sk", et l'astuce, c'est la virgule dans XkbVariant ",qwerty", parce qu'on veut que la variante s'applique à la seconde disposition.