On peut charger la dernière version sur archimedesbugs.nosc.mil/pub/Mgr/69
et sous Mosaic depuis http://archimedes.nosc.mil/Mgr/69
.
On peut le trouver aussi sur ftp://sunsite.unc.edu/pub/Linux/apps/MGR
et ses miroirs.
Les versions anciennes de Haardt peuvent se trouver sur tsx-11.mit.edu
et peut-être ailleurs. Des versions Pre-Linux de MGR de Uhler et d'autres
ont été trouvées sur bellcore.com/pub/mgr
, 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 MGR,
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.
Pour construire cette distribution de MGR 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.
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
(src/vgamisc/regs.exe
) 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 src/libbitblit/linux
, 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.
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.
Suns avec SunOS 4.1.2+ et les tampons de trame bwtwo
, cgthree
,
ou cgsix
sont acceptés. Leurs vitesses de manipulation des couleurs sont correctes.
Les systèmes Coherent doivent se référer au fichier README.Coh
de la distribution source.
Porter le tout dernier MGR sur un autre système analogue
à POSIX qui possède select
, des pty et un accès direct à un
tampon de trame bitmap devrait être immédiat, en implémentant simplement
la bibliothèque libbitblit
basée sur le code sunmono
ou colorport
.
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.
Normalement, /usr/mgr
doit être le répertoire ou bien il doit
être linké au répertoire où vous installerez les accessoires
MGR.
Tapez
cd /usr/mgr; tar xvfz là_ou_vous_le_mettez/mgrusr-0.69.tgz
et éventuellement
cd /usr/mgr; tar xvfz la_ou_vous_voulez/morefonts-0.69.tgz
pour décompacter. Les sources peuvent être mises n'importe où,
par exemple tapez
cd /usr/src/local/mgr; tar xvfz la_ou_vous_voulez/mgrsrc-0.69.tgz
pour décompacter les sources à partir de archimedes.nosc.mil
.L'arborescence source peut être compilée à partir d'un Makefile
principal qui fait appel lui-même à des Makefile secondaires, chacun
"incluant" un "Configfile"
au niveau
supérieur.
Le Configfile
est créé à l'aide d'un script interactif nommé
Configure, qui vous pose un certain nombre de questions, puis utilise m4 avec un fichier Configfile.m4
.
Ensuite vous tapez quelque chose comme ceci :
chdir /usr/src/local/mgr
sh ./Configure
make first
make depend
make install
make clean
Il est prudent, avant de taper make, de jeter un coup d'oeil dans le fichier
Configfile
généré par le script Configure
, 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 Configfile.sun
ou Configfile.lx
. 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 lint
, 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 :
fichier utmp poubelle pour que "who" puisse travailler
code pour faire bouger le curseur sous vi avec la souris
permet la mise au point en sélectionnant l'option -d
XOR le temps d'accès de la souris
permet les commandes serveur par le clavier sans souris
pour planifier la priorité des fenêtres au lieu de fonctionner par requêtes circulaires ; la fenêtre active obtient une plus grande priorité.
pour faire du couper/coller entre fenêtres
force l'alignement des fenêtres pour un scrolling rapide(monochrome)
supprime les fenêtres en cas d'erreurs i/o sur un tty
pour utiliser seulement une partie de l'écran ($MGRSIZE dans les variables d'environnement)
interdit l'empilement d'événements
actionne le bip
lit les données mgr
à partir du clavier sun, au lieu de
stdin. Cela autorise la redirection des messages console vers une fenêtre.
mouvement de caractère fractionnel pour fontes proportionnelles
menu étendu (expérimental)
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).
Pour simuler le 3ème bouton d'une souris
-DBANKED
si vous voulez
essayer le super VGA couleur.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.
Tous les clients ne sont pas compilés et installés par les fichiers Makefile.
Les fichiers clients trouvés dans src/clients
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.
Plusieurs pilotes d'écran du répertoire libbitblit
ont plutôt un
intérêt historique. Mieux vaut les faire disparaître.
Vérifiez que votre fichier /etc/termcap
et/ou terminfo
contient des entrées pour les terminaux MGR, comme ceux que l'on trouve dans le répertoire misc
.
Si vos logiciels prennent en compte $TERMCAP dans l'environnement,
ceci n'est pas nécessaire, tant que vous utilisez set_termcap
dans chaque fenêtre.
Il est préférable de travailler avec MGR 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.
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 ?