<HTML> <HEAD> <TITLE>Installer MGR</TITLE> </HEAD> <BODY> <H1>3. <A NAME="s3"></A>Installer MGR</H1> <P> <A HREF="MGR-HOWTO.html#toc3">Contenu de cette section</A></P> <P>On peut charger la dernière version sur <CODE>archimedesbugs.nosc.mil/pub/Mgr/69</CODE> et sous Mosaic depuis <CODE>http://archimedes.nosc.mil/Mgr/69</CODE>. On peut le trouver aussi sur <CODE>ftp://sunsite.unc.edu/pub/Linux/apps/MGR</CODE> et ses miroirs. Les versions anciennes de Haardt peuvent se trouver sur <CODE>tsx-11.mit.edu</CODE> et peut-être ailleurs. Des versions Pre-Linux de <B>MGR</B> de Uhler et d'autres ont été trouvées sur <CODE>bellcore.com/pub/mgr</CODE>, mais je pense qu'elles n'y sont plus. J'ai conservé une copie de tout ce que j'ai vu concernant MGR sur l'Internet, et je n'ai pas connaissance qu'il n'y ait quoi que ce soit d'important qui puisse manquer dans cette distribution Linux/Sun. Il y a eu un tas de versions et de mises en circulation de <B>MGR</B>, mais la version *Linux* actuelle est 0.69. Cette version devrait passer à 1.0 quand un code VGA-256 stable pour Linux apparaîtra (pour plusieurs types de cartes vidéo). Les numéros de version RCS sont passés de Bellcore 4.3 jusqu'à 4.13 à ce jour.</P> <P>Pour construire cette distribution de <B>MGR</B> il faut m4 (GNU ou tout autre admettant l'option -D), make (GNU, ou tout autre admettant include) et *roff pour les docs. Et enfin sh, awk et install POSIX. Les distributions binaires n'ont pas toujours assemblées aussi faut-il un compilateur C ANSI, du style gcc.</P> <P>Une installation sous Linux requiert au moins une version 0.99.10 ou ultérieure (1.2.13 est ce que j'utilise à l'heure actuelle) , une carte graphique HGC, EGA, VGA ou SVGA et une souris de type~: serial Microsoft, serial MouseSystems 3 et 5 bytes, serial MMSeries, serial Logitech, PS/2, ou une souris bus. Avec Buckey (Meta) hot keys en service, même un système ne possédant pas de souris peut effectuer pas mal de travail utile sous MGR. Le mode graphique monochrome VGA 640x480 est supporté, tout comme le 640x350 et le 640x200. Pour tourner en 800x600, ou d'autres modes que votre BIOS peut initialiser et qui n'ont pas besoin de bank-switching, vous aurez besoin d'un petit programme (<CODE>src/vgamisc/regs.exe</CODE>) sous DOS pour lire les registres VGA quand ce mode est installé puis d'écrire un fichier header que vous placerez dans le répertoire <CODE>src/libbitblit/linux</CODE>, de telle sorte qu'il puisse être appelé par le fichier vga.c. Des exemples sont fournis, mais créez quand même le vôtre. Quelques cartes VGA peuvent utiliser des fenêtres de 128k~; celles-ci peuvent tourner avec de plus hautes résolutions.</P> <P>Le code Linux-colorport peut aussi tourner dans le mode couleur standard VGA 320*200*256 sans difficultés, car il n'y a pas de bank-switching nécessaire. Si vous réfléchissez au peu que représentent 64000 pixels, vous comprendrez que ce mode couleur est tout à fait limité. Un code lent, mais simple, a été ajouté dans la version 0.65, et il travaille avec une carte Tseng ET4000 dans les modes 640x480x256 et 800x600x256. Le code S3 ne marche pas encore dans les résolutions super-VGA. Pour utiliser des nouvelles cartes super-VGA il faut écrire une fonction pour changer de bloc de mémoire et être sûr que le mode écran souhaité peut être initialisé à partir d'un vidage de registre, éventuellement en le peaufinant à la main. Les serveurs couleur sous Linux déforment généralement les fontes écrans, d'où la nécessité d'utiliser restorefont comme dans runx. Si quelqu'un pouvait récupérer le code d'initialisation VGA de X, cela ferait de MGR un système possédant plus de couleurs.</P> <P>Suns avec SunOS 4.1.2+ et les tampons de trame <CODE>bwtwo</CODE>, <CODE>cgthree</CODE>, ou <CODE>cgsix</CODE> sont acceptés. Leurs vitesses de manipulation des couleurs sont correctes. Les systèmes Coherent doivent se référer au fichier <CODE>README.Coh</CODE> de la distribution source. Porter le tout dernier <B>MGR</B> sur un autre système analogue à POSIX qui possède <CODE>select</CODE>, des pty et un accès direct à un tampon de trame bitmap devrait être immédiat, en implémentant simplement la bibliothèque <CODE>libbitblit</CODE> basée sur le code <CODE>sunmono</CODE> ou <CODE>colorport</CODE>.</P> <P>Si vous voulez tout installer, vous aurez besoin de 7 MB d'espace disque pour les binaires, les fonts, les explications, etc. Les sources font environ 4,5 MB plus les fichiers objets durant la compilation.</P> <P>Normalement, <CODE>/usr/mgr</CODE> doit être le répertoire ou bien il doit être linké au répertoire où vous installerez les accessoires <B>MGR</B>. Tapez <BLOCKQUOTE><CODE> <PRE> cd /usr/mgr; tar xvfz la_ou_vous_le_mettez/mgrusr-0.69.tgz </PRE> </CODE></BLOCKQUOTE> et éventuellement <BLOCKQUOTE><CODE> <PRE> cd /usr/mgr; tar xvfz la_ou_vous_voulez/morefonts-0.69.tgz </PRE> </CODE></BLOCKQUOTE> pour décompacter. Les sources peuvent être mises n'importe où, par exemple tapez <BLOCKQUOTE><CODE> <PRE> cd /usr/src/local/mgr; tar xvfz la_ou_vous_voulez/mgrsrc-0.69.tgz </PRE> </CODE></BLOCKQUOTE> pour décompacter les sources à partir de <CODE>archimedes.nosc.mil</CODE>.</P> <P>L'arborescence source peut être compilée à partir d'un Makefile principal qui fait appel lui-même à des Makefile secondaires, chacun "incluant" un <CODE>"Configfile"</CODE> au niveau supérieur. Le <CODE>Configfile</CODE> est créé à l'aide d'un script interactif nommé Configure, qui vous pose un certain nombre de questions, puis utilise m4 avec un fichier <CODE>Configfile.m4</CODE>. Ensuite vous tapez quelque chose comme ceci~:</P> <P> <BLOCKQUOTE><CODE> <PRE> chdir /usr/src/local/mgr sh ./Configure make first make depend make install make clean </PRE> </CODE></BLOCKQUOTE> </P> <P>Il est prudent, avant de taper make, de jeter un coup d'oeil dans le fichier <CODE>Configfile</CODE> généré par le script <CODE>Configure</CODE>, pour vérifier s'il n'y a pas d'anomalie. Au pire m4 s'interrompt, créant un fichier Configfile tout petit. Si cela arrive, essayez une copie de <CODE>Configfile.sun</CODE> ou <CODE>Configfile.lx</CODE>. Tout peut être effectué dans n'importe quel répertoire avec un Makefile à partir du moment où les bibliothèques ont été compilées et installées. Le serveur, les bibliothèques et quelques clients sont implémentés avec <CODE>lint</CODE>, mais plusieurs clients utilisent le code C K&R ce qui engendre beaucoup d'avertissements pendant la compilation. Plusieurs flags dans MGRFLAGS peuvent être ajoutés ou retranchés pour changer quelques options du serveur, à savoir~: <DL> <P></P> <DT><B>-DWHO</B><DD><P>fichier utmp poubelle pour que "who" puisse travailler</P> <DT><B>-DVI</B><DD><P>code pour faire bouger le curseur sous vi avec la souris</P> <DT><B>-DDEBUG</B><DD><P>permet la mise au point en sélectionnant l'option -d</P> <DT><B>-DFASTMOUSE</B><DD><P>XOR le temps d'accès de la souris</P> <DT><B>-DBUCKEY</B><DD><P>permet les commandes serveur par le clavier sans souris</P> <DT><B>-DPRIORITY</B><DD><P>pour planifier la priorité des fenêtres au lieu de fonctionner par requêtes circulaires~; la fenêtre active obtient une plus grande priorité.</P> <DT><B>-DCUT</B><DD><P>pour faire du couper/coller entre fenêtres</P> <DT><B>-DMGR_ALIGN</B><DD><P>force l'alignement des fenêtres pour un scrolling rapide(monochrome)</P> <DT><B>-DKILL</B><DD><P>supprime les fenêtres en cas d'erreurs i/o sur un tty</P> <DT><B>-DSHRINK</B><DD><P>pour utiliser seulement une partie de l'écran ($MGRSIZE dans les variables d'environnement)</P> <DT><B>-DNOSTACK</B><DD><P>interdit l'empilement d'événements</P> <DT><B>-DBELL</B><DD><P>actionne le bip</P> <DT><B>-DKBD</B><DD><P>lit les données <CODE>mgr</CODE> à partir du clavier sun, au lieu de stdin. Cela autorise la redirection des messages console vers une fenêtre.</P> <DT><B>-DFRACCHAR</B><DD><P>mouvement de caractère fractionnel pour fontes proportionnelles</P> <DT><B>-DXMENU</B><DD><P>menu étendu (expérimental)</P> <DT><B>-DMOVIE</B><DD><P>extension pour faire un film qui enregistre toutes les opérations dans un fichier en vue de les rejouer plus tard (ne marche pas bien sous Linux).</P> <DT><B>-DEMUMIDMSBUT</B><DD><P>Pour simuler le 3ème bouton d'une souris</P> </DL> Méfiez-vous~: certaines combinaisons n'ont pas été essayées sur tous les systèmes. La macro BITBLITFLAGS doit contenir <CODE>-DBANKED</CODE> si vous voulez essayer le super VGA couleur.</P> <P>Le code C pour les variables statiques du serveur contenant les icônes et les fontes est généré à l'aide d'un traducteur à partir des fichiers icônes et fontes.</P> <P>Tous les clients ne sont pas compilés et installés par les fichiers Makefile. Les fichiers clients trouvés dans <CODE>src/clients</CODE> qui ont des noms en majuscule ou bien non compilés par les fichiers Makefile fournis, peuvent donner des problèmes de compilation et/ou d'utilisation~; il peut être intéressant de les examiner.</P> <P>Plusieurs pilotes d'écran du répertoire <CODE>libbitblit</CODE> ont plutôt un intérêt historique. Mieux vaut les faire disparaître.</P> <P>Vérifiez que votre fichier /<CODE>etc/termcap</CODE> et/ou <CODE>terminfo</CODE> contient des entrées pour les terminaux <B>MGR</B>, comme ceux que l'on trouve dans le répertoire <CODE>misc</CODE>. Si vos logiciels prennent en compte $TERMCAP dans l'environnement, ceci n'est pas nécessaire, tant que vous utilisez <CODE>set_termcap</CODE> dans chaque fenêtre.</P> <P>Il est préférable de travailler avec <B>MGR</B> avec setuid root, car il utilise ptys et write dans le fichier utmp. Cela permet au client gestionnaire d'icônes de mieux travailler et d'avoir une plus grande sûreté quant à l'enchaînement des événements. Sur Linux, les permissions root sont nécessaires pour faire fonctionner les systèmes écran. Autrement vous décidez de lui faire confiance.</P> <P>Avec les versions aux alentours de 0.62 il y a des problèmes avec Sun quand on utilise csh comme shell par défaut~: les programmes semblent tourner sur un processus différent que le processus de premier plan du pty de la fenêtre, en contradiction avec les pages de manuel et les spécifications posix. Rien de tel avec bash, sh, ou rc. Vous avez une idée~?</P> <P></P> <HR> <P> Chapitre <A HREF="MGR-HOWTO-4.html">suivant</A>, Chapitre <A HREF="MGR-HOWTO-2.html">Précédent</A> <P> Table des matières de <A HREF="MGR-HOWTO.html#toc3">ce chapitre</A>, <A HREF="MGR-HOWTO.html#toc">Table des matières</A> générale</P> <P> <A HREF="MGR-HOWTO.html">Début</A> du document, <A HREF="#0"> Début de ce chapitre</A></P> </BODY> </HTML>