Installation d'OSF/Motif et de Common Desktop Environment sur Linux Slackware

OSF/Motif est une bibliothèque créée dans les années 90 pour simplifier la programmation d'applications pour X-Window System. Motif fonctionnait avec X11R5 et les versions supérieures sur les systèmes Unix. Initialement, Motif était en concurrence avec OpenLook/XView développé par Sun Microsystems et AT&T, mais le développement d'OpenLook/Xview at été abandonné en 1993. Le code source deXView a alors été placé dans le domaine public, et en 1996 Linux Slackware était fourni avec OpenLook/XView et les logiciels olvwm(1) (gestionnaire de fenêtres), shelltool(1) (émulateur de terminal), textedit(1) (éditeur de texte). OSF/Motif est propriété de l'Open Group. En 2000, puis une version sous license publique, Open Motif a été mise à disposition des systèmes Open Source (Linux, FreeBSD,OpenBSD,NetBSD). Le Common Desktop Environment (CDE) est un bureau graphique conçu autour d'OSF/Motif, basé sur l'environnement HP VUE développé par Hewlett-Packard. Annoncé en 1993, la première version CDE 1.0 (disponible en 1995) était initialement développé par Hewlett-Packard, IBM, Novell et SunSoft. Hitachi, Fujitsu, Digital Equiment Corp. (DEC) et SCO se sont joints ensuite. La version 2.1 de CDE a été disponible à partir de 1997. CDE est devenu open source en Août 2012. Depuis la version 2.2.1 de 2014, CDE est disponible sur OpenBSD, FreeBSD et NetBSD en plus de Linux. Un portage sur Solaris/Openindiana est en cours. À partir de la version 2.2.3, CDE peut être compilé sur Solaris 11.2 (Intel ou Sparc) et Openindiana Hipster (Intel). Les notes qui suivent décrivent l'installation à partir des sources de Motif et de CDE. Des paquets openmotif précompilés sont disponibles pour Slackware Linux 13.1 à 14.0 sur Slacky.eu. On trouve aussi les paquets openmotif, xlt, et CDE pour Slackware Linux 14.1 sur le site ponce.cc de Matteo Bernardini ou sur le site habital.lv (Intel 64 bits seulement). Ils peuvent être installés avec pkgtool(8). On trouve aussi des scripts SlackBuild sur Slackermedia pour LGPL Motif et CDE qui permettent de construire des paquets installables avec pkgtool(8) à partir des sources.

Autres distributions Linux

Autres systèmes d'exploitation

Installation d'OSF/Motif

Linux Slackware (≤ 14.1) est fourni avec LessTif, une bibliothèque sous licence LGPL compatible avec OSF/Motif 1.2. Cette bibliothèque ne fournit pas toutes les fonctions nécessaires pour le bon fonctionnement du Common Desktop Environment. Il est donc nécessaire de la remplacer par Open Motif, la version LGPL d'OSF/Motif. On peut soit se servir d'un paquet précompilé, soit construire un paquet à partir des sources. La version 14.2 a remplacé Lesstif par Motif 2.3.4 depuis le 21 juillet 2014 (ARM et Intel x86 32 et 64 bits). Les utilisateurs de Slackware 14.2 ou current peuvent passer directement à l'installation de Xlt. Pour construire le paquet motif-2.3.4.tgz, il faut récupérer les sources de Motif 2.3.4 sur Sourceforge. Ensuite, il faut se servir du script motif.SlackBuild pour construire le paquet motif.tgz.

Il faut ensuite désinstaller LessTif et installer Motif par la commande:

removepkg lesstif installpkg motif

Enfin, il faut recréer un fichier /usr/lib/X11/config/host.def contenant:

#ifndef TopLevelProject #define TopLevelProject Motif #endif #ifndef ProjectRulesFile # define ProjectRulesFile #endif #ifndef ProjectTmplFile # define ProjectTmplFile #endif #ifndef MotifProjectRoot #define MotifProjectRoot /usr/X11R6 #endif #ifndef VirtualBindingsPath #define VirtualBindingsPath /usr/X11R6/lib/X11/bindings #endif #ifndef ImportX11 #define ImportX11 YES #endif #ifndef USE_BYACC #define USE_BYACC YES #endif #define ForceNormalLib YES #define DebugLibXm NO #define DebugLibMrm NO #define DebugLibUil NO #ifndef LexLib #define LexLib -lfl #endif #ifndef ExtraWidgets #define ExtraWidgets YES #endif

Pour permettre le bon fonctionnement des commandes imake(1) et xmkmf(1).

Documentation en français pour OpenMotif

La documentation en anglais pour OpenMotif

Réinstallation de certains programmes

Il est nécessaire de réinstaller xdvi et xpdf en les recompilant à partir des sources, ces programmes étant compilés pour fonctionner seulement avec Lesstif.

Xdvi

Pour xdvi, il faut récupérer la source à partir de sourceforge. Attention à bien télécharger le paquet xdvi-22.85.tar.gz (compatible teTeX) et non xdvik-22.85.tar.gz (qui demande TeXLive). Ensuite, entrer les commandes: tar zxvf xdvi-22.85.tar.gz cd xdvi-22.85 ./configure --with-tetex --with-x-toolkit=motif --enable-a4 --bindir=/usr/share/texmf/bin --mandir=/usr/share/texmf/man make sudo make install Si la dernière commande ne fonctionne pas, vérifier les lignes bindir= et mandir= dans le ficher Makefile.

Xpdf

Récupérer les sources sur fooolabs.com. Ensuite entrer les commandes: tar zxvf xpdf-3.03.tar.gz cd xpdf-3.03 configure --prefix=/usr --enable-a4-paper --sysconfdir=/etc make sudo make install

Autres applications OSF/Motif pouvant être installées

NCSA Mosaic 2.7
Navigateur Web historique (ancêtre de Netscape et Mozilla) voir aussi Mosaic-2.7CK9 pour une version compatible Unicode
Amaya 5.3
Navigateur Web et éditeur HTML du W3C
MoXFM
Gestionnaire de fichiers (limité)
BXfm (Brian's X File Manager)
Autre gestionnaire de fichiers (version récente)
XPlore
Gestionnaire de fichiers (plus complet que MoXFM ou BXfm)
XTar
Archiveur (formats .tar.Z, .tar.gz, .tar.bz)
LLNL XDIR
Client FTP
AxYFTP
Client FTP (anciennement Wxftp)
XmFtp
Client FTP style NextStep
gXipmsg
Client IP Messenger
Nebula
Client IRC
GNU Talk
Client Unix Talk
MXTerm
Emulateur de terminal VT100/Tektronix 4014
treeps
Affiche les processus dans un arbre
Xps/MXkill
Gestionnaires de processus
Mfsm
Indicateur du taux de remplissage des partitions
XmCpuState
Indicateur d'activité du processeur, du swap, de la mémoire et du trafic réseau
Xmless
Affichage de fichier texte [façon less(1)]
Hexdump
Affichage hexadécimal de fichiers binaires
MEditres
Configuration des ressources X/Motif
Xruskb
Utilitaire pour reconfigurer le clavier
mpdist
Utilitaire de mise en forme de fichiers texte pour impression Postscript (prettyprinter)
Xlrem
Message du jour
XMotd
Message du jour (utilisable en réseau)
Twclock
Horloge pouvant afficher plusieurs fuseaux horaires (version ≥ 3.0 inutilisable sans PulseAudio)
XmCalendar
Calendrier avec alarmes programmables
Plan
Calendrier et Agenda
Xmdiary
Calendrier et Agenda (ancienne page Web)
K-lendars
Calendrier et Agenda (ancienne page Web)
Xopps
Organisation de projets (diagrammes de Gantt)
xmbase-grok
Base de données
xmaddressbook
Carnet d'adresses
Yrolo
Carnet d'adresses
MCard
Carnet d'adresses (compatible PC-Cardfile)
Laddr
Carnet d'addresses
Mrolo
Répertoire téléphonique
XRolodex
Répertoire téléphonique
xh-address
Carnet d'adresse (limité)
XNotesPlus-v3.3.0
Notes repositionnables
Minfo
Afficheur de documentation au format GNU Info
SM/Edit
Editeur de texte
AsEdit
Editeur de texte (basique)
Gloe
Editeur de texte (basique)
NEdit
Editeur de texte
XEmacs
Editeur de texte
Thot
Traitement de texte produisant les formats HTML ou LaTeX (sources)
Ted
Traitement de texte utilisant le format RTF (les versions ≤ 2.17 utilisent Motif)
GNU Oleo
Tableur (Nécessite l'installation préalable de Xbae et plotutils)
NeOleo
Mise à jour du tableur Oleo (demande toujours Xbae)
Dert
Interface graphique pour MySQL, PostgreSQL ou DB2
Xinvest
Gestion d'un portefeuille d'actions
Xacc
Gestion de finances personnelles (façon Quicken)
Xmbibtex
Editeur de bibliographies au format BibTeX
Xmgr
Tracé de courbes et analyse de données (version 64bits)
GNU Plotutils
Traceur de courbes compatible avec Unix plot(1) et graph(1)
XYPLOT
Traceur de courbes (programmable en Forth)
Ngraph
Traceur de courbes (documentation en Japonais seulement)
HMV
représentation de données (X,Y,Z) par des niveaux d'intensité ou de couleur
Xmdag
Tracé de graphes (arbres)
Xmfract
Générateur de fractales
Xmstat
Analyse statistique de données (t-test, ANOVA, etc...)
Xrpn
Calculatrice scientifique avec notation polonaise inverse
Free42s
émulateur de calculatrice scientifique HP42-S (free42old.tgz)
Xmolwt
Calcul de masses molaires à partir de formules chimiques
MOLMOL
Visualisation de macromolécules biologiques [documentation et instructions]
Vgp
représentation de points sur la surface d'une sphère
ICAO
Cartographie
Hugo
Cartographie (formats: USGS, DRG, DOQ)
XFITSView
Visualisation de clichés astronomiques au format FITS
ESO-MIDAS
Traitement d'images et analyse de données pour l'astronomie
Woolz
Traitement d'images et analyse de données pour la génétique
AFNI/SUMA
Visualisation pour l'IRM fonctionnelle
ALLIANCE
Conception assistée par ordinateur (CAO) de circuits intégrés (VLSI)
PCB
Conception assistée par ordinateur (CAO) de circuits imprimés (format Gerber)
Xmgf
Visionneur de fichiers CAO au format gf/NFF/OBJ/OFF/RAY/SLA/DXF/MINICAD/IGRIP
Fbida
Visionneur de fichiers images au format PNG/GIF/JPG
xImaging
Album et visionneur pour fichiers images au format JPEG/PNG/TGA/PCX/BMP/Sun Raster
MGv
Visionneur de fichiers Postscript (ancienne page web)
XawTV
TV Numérique (avec carte Tuner TNT) et Webcam
DTscan
Contrôle d'un scanner de documents
XmBlackberry
Connection par USB à un téléphone portable BlackBerry
DDD
Débogueur (Ada, C, Fortran, Pascal)
mxgdb
Débogueur (interface graphique pour GDB)
XAnalyser
Analyse de signaux sonores (compatible ALSA/OSS)
Xforge
Editeur de fichiers audio .wav à la Soundforge
Ceres 3
Editeur de fichiers audio
Snd
Editeur de fichiers audio
Wavplay
Lecteur/Enregistreur de fichiers audio au format .wav
Xmcd
Lecteur de CD Audio
Xmmix
Contrôle du volume sonore pour Open Sound System (OSSv4) (fonctionne aussi avec ALSA et émulation OSS)
Xmmount
Montage de périphériques amovibles (CD-ROM, disquettes, clés USB ou disques externes)
Atari800
Émulateur pour Atari 400/800/600XL/800XL/65XE/130XE
Glukalka
Émulateur pour ZX Spectrum 48K & 128K
XCPC
Émulateur pour Amstrad CPC 464/664/6128 (utilise libdsk)
LuaMotif
Extension du langage Lua donnant accès à la programmation Motif
Adabindx
Interface Ada pour la programmation Motif
Xarm
Biliothèque C++ pour la programmation Motif et CDE
Xg Widgets
Primitives graphiques supplémentaires pour Motif (onglets, boutons...) façon MS-Windows
XmNllib
Primitives graphiques Motif (Icon Box, Lists, Multipartition...)

Dans le cas de Xmbibtex, il faut appliquer un petit patch pour que la compilation réussisse avec Linux. De même, icao nécessite également un patch. Le programme hugo demande aussi un patch.

Le programme xmfract demande également un patch. Même avec ce patch, essayer de sauver une courbe dans un fichier GIF produit une "Erreur de Segmentation".

La compilation de la version 3.3.2 de Xmcd est impossible en raison de l'absence de la bibliothèque CDDB. Pour la version 2.6, la compilation réussit, et le programme est utilisable avec les lecteurs de CD-ROM SCSI ou IDE/ATAPI (dans ce cas, indiquer lors de l'installation qu'on utilise la méthode ioctl pour SunOS/Solaris/Linux/QNX ou FreeBSD/NetBSD/OpenBSD). Pour pouvoir écouter le CD audio, il faut s'assurer (par exemple avec aumix -I) que le périphérique de capture est bien le lecteur de CD-ROM.

Pour NEdit, il faut bien utiliser le fichier tar du CVS sur Sourceforge, qui contient des corrections de bugs de la version 5.5. Dans le le fichier makefiles/Makefile.linux, il faut changer la ligne CFLAGS=... en CFLAGS=-O -I/usr/X11R6/include -DUSE_DIRENT -DBUILD_UNTESTED_NEDIT -DUSE_LPR_PRINT_CMD . Si on utilise CUPS pour imprimer, on peut laisser tomber -DUSE_LPR_PRINT_CMD (cette commande n'est utile qu'avec le système d'impression BSD LPD).

Pour GNU Oleo, il faut commencer par appliquer le gros patch pour que la compilation réussisse. Oleo est un programme beaucoup moins perfectionné qu'OpenOffice Calc.

Pour dert, il faut appliquer un patch pour pouvoir générer le script configure avec autotool et pour que la compilation réussisse. Le patch permet la compilation avec MySQL mais d'autres modifications peuvent être requises pour compiler avec PostgreSQL ou db2. De plus, même après avoir appliqué le patch, des problèmes peuvent persister. En particulier, il peut être encore nécessaire de modifier la ligne all: en all: all-no dans intl/Makefile, pour se débarasser d'une macro non définie. Pour travailler avec PostgreSQL, on peut essayer de compiler mpsql.

pour compiler mxgdb, il faut modifier le fichier Imakefile en insérant les lignes:

#MALLOCC=malloc.c #MALLOCO=malloc.o COMPATFLAGS = -DSYSV -DSTR_PTY CCOPTIONS= $(COMPATFLAGS) -DDEBUG -DHAVE_TERMIO -DHAVE_MMAP -Dconst=""

Les deux premières lignes servent à empêcher la compilation du fichier malloc.c, la troisième ligne permet la communication correcte entre gdb et l'interface graphique.

pour compiler GNU Talk, il faut appliquer le patch, puis faire ./configure --with-x --with-x-toolkit=lesstif et make.

Installation de la bibliothèque Xlt

Télécharger les sources sur Sourceforge, puis utiliser le Slackbuild.

tar zxvf xlt.tar.gz mv Xlt-13.0.13.tar.gz xlt cd xlt ./xlt.SlackBuild

Il peut être nécessaire d'éditer le fichier xlt.SlackBuild pour mettre à jour le numéro de version dans la ligne VERSION=13.0.13

Vérification de la version du Korn Shell

Pour que la compilation de dtksh réussisse, il faut disposer d'une version suffisamment récente du Korn Shell (ksh). La commande ksh --version doit retourner

version sh (AT&T Research) 93u+ 2012-08-01 ou une version plus récente. Si ce n'est pas le cas, il faut installer une version plus récente à partir des sources.

Si on néglige cette étape, la compilation des autres programmes CDE se fera quand même, et l'ensemble pourra être installé. Cependant, en l'absence de dtksh certain messages d'erreur ne pourront pas être affichés.

Installation de Common Desktop Environment

Créér les liens symboliques dans /usr/lib/locale:

ln -s fr_FR fr_FR.ISO-8859-1 ln -s de_DE de_DE.ISO-8859-1 ln -s it_IT it_IT.ISO-8859-1 ln -s es_ES es_ES.ISO-8859-1 ln -s sv_SE sv_SE.ISO-8859-1 ln -s el_GR.utf8 el_GR.UTF-8 ln -s ja_JP.eucjp ja_JP.dt-eucJP ln -s ko_KR.euckr ko_KR.dt-eucKR ln -s zh_TW.euctw zh_TW.dt-eucTW ln -s zh_CN.euctw zh_CN.dt-eucCN ln -s /usr/bin/gawk /usr/bin/nawk

Les quatre premiers liens et le dernier sont suffisants pour avoir les messages en français, allemand, italien et espagnol (respectivement) et permettre la compilation. Les liens suivants sont optionnels, et ajoutent les messages en suédois, grec, japonais, coréen et chinois (version Taïwan et République Populaire de Chine).

Télécharger les sources sur: Sourceforge, puis décompacter l'archive et compiler:

tar zxvf cde-src-2.2.4.tar.gz cd cde-2.2.2/ make World Les versions antérieures à la version 2.2.2 (de Juillet 2014) demandaient de créer un lien sous imports/x11/include mkdir -p imports/x11/include cd imports/x11/include ln -s /usr/include/X11 . avant le make World. Pour installer, utiliser les commandes: ./admin/IntegTools/dbTools/installCDE -s $HOME/cde-2.2.4/ ./admin/IntegTools/post_install/linux/configRun -e chmod -R a+rwx /var/dt mkdir -p /usr/spool/calendar On peut utiliser dtterm(1) et dtcalc(1) en dehors de CDE. Pour pouvoir lancer l'environnement complet, il faut d'abord lancer le daemon portmap(8). CDE utilise des RPC pour la communication entre les programmes, et portmap est indispensable.

Essai de CDE

Pour tester l'environnement CDE, faire: # telinit 3 # /sbin/rpc.portmap $ startx /usr/dt/bin/Xsession

Les deux premières commandes doivent être entrées par root (prompt #), la dernière peut être entrée à partir d'un compte utilisateur ordinaire (prompt $). Si tout se passe bien, un message Welcome to the Common Desktop Environment blanc sur un fond bleu ciel s'affiche brièvement, puis l'environnement CDE démarre.

Les programmes disponibles par défaut sont l'éditeur de texte dtpad, le gestionnaire de fichiers dtfile, la calculatrice dtcalc, l'émulateur de terminal dttterm. Le client de messagerie dtmail peut être configuré avec un serveur POP ou IMAP, mais il ne reconnaît pas les protocoles sécurisés. La documentation de CDE (Guide de l'administrateur et de l'utilisateur avancé) explique comment ajouter des applications X11 aux menus de CDE avec Application Manager.

Capture d'écran de l'environnement
				  CDE

L'environnement CDE est stable depuis la version 2.2.1.

Attention, faire kill -9 -1 dans une fenêtre dtterm ou essayer de terminer la session X par Ctrl-Alt-Backspace peut entraîner un blocage du serveur X. Par contre, il est possible de passer de CDE à une console virtuelle avec Ctrl-Alt-F[1-6] et de revenir à CDE par Ctrl-Alt-F7 sans aucun problème.

Il peut aussi arriver que cliquer sur le bouton Exit produise un message TT_ERR_NO_MATCH. Dans ce cas, il faut taper: ps -elf |grep dtsession pour obtenir le PID de dtsession, puis utiliser kill pout terminer dtsesssion. Une solution plus expéditive est de basculer sur une console virtuelle et taper kill -9 -1 pour sortir de l'environnement CDE. Ce problème est généralement dû à la configuration du réseau informatique. S'il se produit, il faut vérifier le contenu des fichiers /etc/hosts et /etc/host.conf. /etc/hosts doit contenir:

# Loopback 127.0.0.1 localhost # Local Network 192.168.18.71 darkstar.frop.org darkstar #127.0.0.1 darkstar.frop.org darkstar si darkstar.frop.org est le nom complet de la machine. /etc/host.conf doit contenir: order hosts, bind multi on Un autre problème (sur Scientific Linux/CentOS) causé par les fichiers /etc/hosts incomplet est le segmentation fault de ttsession au démarrage de CDE. Le symptôme est que le login échoue, et on se retrouve devant l'écran de GDM juste après avoir vu le message de bienvenue dans CDE.

Les applications utilisant la base de données terminfo(5) comme vim(1),links(1),mc(1) fonctionnent sans problème dans un fenêtre dtterm. Ce n'est pas le cas des applications utilisant une base de données termcap(5) comme elvis(1) (i. e. vi). Pour que ces applications puissent fonctionner correctement, il faut ajouter au fichier /etc/termcap les lignes suivantes:

dtterm:\ :am:mi:ms:xn:xo:\ :Co#8:co#80:it#8:li#24:lm#0:pa#8:\ :%1=\E[28~:*6=\E[4~:@0=\E[1~:AB=\E[%+(m:AF=\E[%+^^m:\ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:\ :F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:\ :F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:IC=\E[%d@:\ :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:ae=^O:\ :al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\ :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:\ :is=\E F\E>\E[?1l\E[?7h\E[?45l:k1=\E[11~:k2=\E[12~:\ :k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:k7=\E[18~:\ :k8=\E[19~:k9=\E[20~:k;=\E[21~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\ :kP=\E[5~:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\ :mb=\E[5m:md=\E[1m:me=\E[0m:mh=\E[2m:mk=\E[8m:mr=\E[7m:\ :nd=\E[C:nw=\EE:op=\E[39;49m:rc=\E8:sc=\E7:se=\E[22;27m:\ :sf=\ED:so=\E[2;7m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:\ :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:

Pour utiliser lynx dans dtterm, il faut le lancer avec l'option lynx -nocolor.

Depuis la version 2.2.1 (du 2 Mars 2014), il est possible de verrouiller l'écran en cliquant sur le cadenas. La documentation complète (Guide de l'utilisateur et guide de l'admininstrateur) est disponible en ligne avec dtinfo.

Une fois qu'on s'est assuré du fonctionnement correct de CDE, il est possible de s'en servir comme environnement X11 avec XDM ou KDM. Il est préférable de ne pas utiliser dtlogin en raison d'une vulnérabilité liée à XDMCP.

Utilisation avec KDM

Pour utiliser CDE avec le gestionnaire de session X11 KDM, il faut d'abord créer le fichier: /usr/share/xsessions/cde.desktop avec le contenu: [Desktop Entry] Encoding=UTF-8 Name=CDE Comment=Use this session to boot into the Common Desktop Environment Exec=/usr/dt/bin/startxsession.sh Icon= Type=Application puis le fichier /usr/dt/bin/startxsession.sh avec le contenu: #!/bin/sh export PATH=$PATH:/usr/dt/bin export LANG=fr_FR.ISO8859-1 /usr/dt/bin/Xsession Ensuite, il faut rendre exécutable le fichier /etc/rc.d/rc.rpc. Pour des raisons de sécurité, il peut être nécessaire de modifier le fichier hosts.deny avec la ligne: rpc.portmap: ALL EXCEPT LOCAL pour restreindre l'accès à portmap aux machines du réseau local. Au prochain redémarrage, CDE apparaîtra dans la liste des sessions possibles.

Configuration

Sécurité

Il existe une vulnérabilité dans dtspcd, qui peut permettre l'exécution de code arbitraire à distance. S'il n'est pas nécessaire de permettre l'exécution d'actions à distance, il faut changer dans /etc/inetd.conf la ligne:

dtspc stream tcp nowait root /usr/dt/bin/dtspcd /usr/dt/bin/dtspcd en: # dtspc stream tcp nowait root /usr/dt/bin/dtspcd /usr/dt/bin/dtspcd

S'il est nécessaire d'autoriser l'exécution d'actions à distance, on peut changer la ligne en:

dtspc stream tcp nowait root /usr/sbin/tcpd /usr/dt/bin/dtspcd /usr/dt/bin/dtspcd et ajouter dans le fichier hosts.deny la ligne: dtspc: ALL. On peut ensuite ajouter les adresses IP des machines autorisées à utiliser dtscpd dans hosts.allow.

Il existe une autre vulnérabilité dans rpc.ttdbserver qui peut aussi permettre l'éxécution de code à distance. Pour pallier ce problème, on peut changer dans la ligne /etc/inetd.conf en:

100083/1 stream rpc/tcp wait root /usr/dt/bin/rpc.ttdbserver /usr/dt/bin/rpc.ttdbserver en: # 100083/1 stream rpc/tcp wait root /usr/dt/bin/rpc.ttdbserver /usr/dt/bin/rpc.ttdbserver Dans le cas où ToolTalk est nécessaire, on peut filtrer les accès à rpc.portmap et rpc.ttdbserver avec le fichier hosts.deny.

Franciser CDE

Par défaut, l'aide et les menus de CDE sont en anglais. Pour disposer de menus et de l'aide en français, il faut ajouter dans le fichier $HOME/.dtprofile une ligne: export LANG=fr_FR.ISO8859-1 et copier le fichier /usr/dt/config/fr_FR.ISO8859-1/sys.dtwmrc dans $HOME/.dt/dtwmrc. Les autres langues disponibles sont l'allemand (de_DE.ISO8859-1) l'espagnol (es_ES.ISO8859-1) et l'italien (it_IT.ISO8859-1). Si on a créé les liens optionnels on dispose aussi du suédois (sv_SE.ISO8859-1) du grec (el_GR.utf8) du japonais (ja_JP.dt-eucJP) du coréen (ko_KR.dt-eucKR) du chinois de Taïwan (zh_TW.dt-eucTW) ou de RPC (zh_CN.dt-eucCN).

Heure d'été/Heure d'hiver

Pour que le passage heure d'hiver/heure d'été se fasse sans problème, il faut définir le bon fuseau horaire avec la variable TZ dans $HOME/.dtprofile. Les valeurs possibles de TZ sont obtenues en listant le contenu de /usr/share/zoneinfo. On trouve par exemple dans le répertoire /usr/share/zoneinfo/Europe/ les fichiers: Amsterdam Busingen Kaliningrad Monaco San_Marino Vaduz Andorra Chisinau Kiev Moscow Sarajevo Vatican Athens Copenhagen Lisbon Nicosia Simferopol Vienna Belfast Dublin Ljubljana Oslo Skopje Vilnius Belgrade Gibraltar London Paris Sofia Volgograd Berlin Guernsey Luxembourg Podgorica Stockholm Warsaw Bratislava Helsinki Madrid Prague Tallinn Zagreb Brussels Isle_of_Man Malta Riga Tirane Zaporozhye Bucharest Istanbul Mariehamn Rome Tiraspol Zurich Budapest Jersey Minsk Samara Uzhgorod et on utilisera donc export TZ=Europe/Paris si on se trouve en France, export TZ=Europe/Warsaw si on se trouve en Pologne. On peut vérifier le fuseau horaire dans le menu Visualiser de dtcm. Une valeur du type CET-1 CEST au lieu de Europe/Paris par exemple peut indiquer que le passage heure d'hiver/heure d'été ne sera pas traité correctement, par exemple avec un basculement anticipé à l'heure d'été.

Gestionnaire de fichiers

Pour que dtfile puisse ouvrir automatiquement les fichiers *.xls, *.ppt, *.doc avec OpenOffice, il faut créer les actions correspondantes dans le répertoire /etc/dt/appconfig/. Cela peut être fait en téléchargeant le fichier appconfig.tgz, et en le décompactant dans le repértoire /etc/dt/appconfig. On trouve des actions supplémentaires (fichiers SCCS/CVS, archives tar) sur le site suivant. Il existe aussi un ensemble un peu ancien (Août 2002) d'actions et icônes développé à l'université de Bochum pour CDE.
Il est possible de trouver des icônes pour skype ou vlc sur le site suivant. Un autre jeu d'icônes est disponible sur kde-look. Cependant, ces dernières icônes sont au format png et de taille 128x128. Pour convertir des icônes au format .png, il faut utiliser le script shell: #!/usr/bin/sh for i in *.png; do nme=`basename $i .png` convert $i -resize 48x48 $nme.xpm mv $nme.xpm $nme.l.pm convert $i -resize 32x32 $nme.xpm mv $nme.xpm $nme.m.pm convert $i -resize 16x16 $nme.xpm mv $nme.xpm $nme.t.pm; done Cette page décrit comment créer des icônes pour CDE avec Gimp.

Courrier électronique (dtmail)

Par défaut, dtmail accède au courrier électronique dans la boîte locale /var/spool/mail/USER. Cependant, il est possible de configurer dtmail pour l'utiliser avec un serveur POP ou IMAP. Pour cela, il faut sélectionner dans le menu "Mail Options" la Catégorie "Mail Retrieval", choisir un des protocoles (POP2, POP3, APOP ou IMAP) entrer le nom du serveur, le nom de l'utilisateur et le mot de passe de messagerie. Il est aussi possible de configurer dtmail en se servant d'un fichier .mailrc. La page suivante à l'institut d'Astrophysique des Canaries décrit un exemple de configuration de dtmail avec un serveur IMAP (set imapinboxserver=) pour le courrier entrant et un serveur SMTP (set smtpmailserver=) pour le courrier sortant via un fichier .mailrc.

Le client de messagerie électronique dtmail peut traiter les fichiers attachés. Il permet de les sauver ou de les glisser/déposer dans un répertoire ouvert avec dtfile. Si les actions ont été configurées, il peut aussi ouvrir les fichiers attachés avec l'application appropriée. S'il ne s'agit pas d'un type MIME prédéfini dans /usr/dt/appconfig/types/fr_FR.ISO8859-1/datatypes.dt, s définition doit être ajoutée dans le fichier dans /etc/dt/appconfig/types/fr_FR.ISO8859-1/datatypes.dt ou dans un fichier de configuration personnel $HOME/./dt/types/fr_FR.ISO8859-1/my_datatypes.dt. Pour le format PDF par exemple, la définition sera:

DATA_ATTRIBUTES PDF { ACTIONS Open ICON pdf NAME_TEMPLATE %s.pdf MIME_TYPE application/pdf DESCRIPTION fichier Adobe(R) Portable Document Format \ Le type est nommé PDF. les fichiers PDF \ ont l'extension '.pdf' or '.PDF'. TYPE_LABEL PDF } DATA_CRITERIA PDF1 { DATA_ATTRIBUTES_NAME PDF MODE f NAME_PATTERN *.pdf } DATA_CRITERIA PDF2 { DATA_ATTRIBUTES_NAME PDF MODE f NAME_PATTERN *.PDF }

La ligne DATA_ATTRIBUTES PDF indique qu'un nouveau type de format de fichier PDF va être introduit dans le bloc entre accolades qui suit. La ligne ACTIONS énumère les actions possibles sur ce fichier, ici Open (qui utilisera Acrobat Reader or Xpdf). La ligne ICON indique le nom du fichier contenant l'icône au format Xpm qui servira à indiquer le type de fichier dans dtfile ou dtmail. La ligne MIME_TYPE sera utilisée par dtmail pour identifier l'action qui servira à ouvrir ce type de fichier. Les lignes DATA_CRITERIA PDF servent à énumérer les critères pour reconnaître un fichier au format PDF. Ici, on se sert simplement de l'extension, mais il est également possible de se servir des premiers octets du fichier pour reconnaître le type PDF. Une fois le type défini, il faut définir l'action Open qui servira à ouvrir le fichier. Un exemple d'action pour ouvrir les fichiers PDF avec Acrobat Reader est ici. Le fichier doit être sauvé dans $HOME/.dt/types/, avec le nom Acroread.dt.

Fond d'écran et icônes

Il est possible d'utiliser une image au format PNG ou JPEG comme fond d'écran en choisissant l'option NoBackdrop dans dtstyle(1) et en affichant l'image avec xv(1) ou un programme similaire. Pour avoir une image différente dans chaque bureau, il faut utiliser le script cde-backdrop.

Pour personnaliser le logo utilisé pour le verrouillage de l'écran (par défaut, le fichier utilisé est /usr/dt/appconfig/icons/C/Dtlogo.pm), il faut créer une icône XPM de taille 237×227 avec le nom Dtlogo.pm. Ensuite, on peut placer cette icône soit dans /etc/dt/appconfig/icons/C/Dtlogo.pm (tous les utilisateurs verront alors la même icône lorsque l'écran sera verrouillé) soit dans son répertoire personnel en ajoutant la ligne:

Dtsession*lockLabelPixmap.imageName: /home/userxxx/path/lock.pm

au fichier .Xdefaults, userxxx devant être remplacé par le nom de login de l'utilisateur, et path par le répertoire contenant l'icône. Un exemple est ici

Tableau de bord (Front Panel)

Pour avoir un témoin de charge de la batterie dans le tableau de bord il faut créer le fichier battery.fp dans le répertoire /etc/dt/types/ ou dans le répertoire personnel .dt/types/ avec le contenu (pour un système ACPI): CONTROL Battery { TYPE client CONTAINER_NAME Top CONTAINER_TYPE BOX CLIENT_NAME gkrellm CLIENT_GEOMETRY 112x58 HELP_STRING "Battery level control" } Le programme gkrellm devra être configuré pour n'afficher que 3 "Krells": le nom du système, la température et la charge de la batterie. On peut assi bien utiliser un dockapp Windowmaker comme wmacpi, wmbattery ou wmpower. Il faut simplement déterminer les dimensions de la fenêtre avec xwininfo et insérer le nom du programme après CLIENT_NAME et (Largeur)x(Hauteur) après CLIENT_GEOMETRY(Largeur) et (Hauteur) sont les valeurs indiquées par xwininfo. On peut insérer n'importe quelle autre application (xload, xosview, etc...) en suivant le modèle ci-dessus.

Utilitaires

Calendrier
Il existe plusieurs utilitaires en Perl par Adam Stein qui permettent
  1. D'imprimer un calendrier dtcm dans un format prédéfini (printcal)
  2. D'ajouter des rendez-vous au format vCalendar à l'agenda dtcm (vcal)
  3. De modifier un calendrier dtcm via une interface Web (wcal)
Le programme pilotmanager permet d'échanger des données entre un agenda électronique PalmOS et l'agenda dtcm(1). Le programme dtcm_holidays permet d'insérer des dates de vacances dans dtcm(1). Tous ces logiciels demandent l'installation de modules complémentaires (Calendar::CSA et Date::Manip ) disponibles sur CPAN et Sourceforge. Il existe aussi un programme en dtksh(1) par Christian Pélissier pour convertir les fichiers vCalendar en XAPIA (le format utilisé par dtcm). Ce script script permet de créér trois fichiers rendez-vous pour Pâques, l'Ascension et Pentecôte.
Liste des fenêtres

Le programme find_window permet d'avoir une liste de toutes les fenêtres ouvertes dans tous les espaces de travail. Il permet d'iconifier ou désiconifier les fenêtres. Son principal défaut est de tronquer les noms de fenêtres contenant des caractères accentués.

Le programme dtwinlist donne aussi une liste des fenêtres ouvertes, mais il permet, en plus d'iconifier et de désiconifier, d'envoyer la fenêtre sélectionnée dans un espace de travail différent ou de terminer l'application associée. Il n'a pas de problème pour afficher les fenêtres contenant des caractères accentués. Cependant, il arrive que des fenêtres firefox ou gimp ne soient pas détectées par le programme (version d'Août 2015).

Lanceur d'applications

Le programme dtrun permet de lancer une application en tapant son nom dans un boîte de dialogue.

Le programme mrundlg remplit une fonction similaire, mais il ne fonctionne correctement sous Linux que s'il est compilé avec l'option -g (le programme optimisé se termine par un défaut de segmentation).

Disques ou Clés USB

Le programme xmsvm peut être utilisé pour monter ou démonter des disques/clés USB. Il dépend de udisks[1-2], qui doit être installé pour Slackware à partir du Slackbuild. Pour installer xmsvm, il faut avoir une copie des sources de CDE et faire:

configure --enable-cde --with-cde-includedir=/home/user/cde/exports/include/ --with-cde-libdir=/usr/dt/lib make make install
Importation de fichiers de configuration
Le script desktop2dt par Isaac Dunham permet de convertir les fichiers de configuration .dekstop de KDE en fichiers actions (.dt) pour CDE.

XEmacs et CDE

Pour installer XEmacs avec le Common Desktop Environment, il faut utiliser les commandes suivantes

tar jxvf xemacs-21.4.22.tar.bz2 cd xemacs-21.4.22 ./configure --site-includes=/usr/dt/include --site-libraries=/usr/dt/lib/ --site-runtime-libraries=/usr/dt/lib --with-scrollbars=motif --with-dialogs=motif --with-widgets=motif --with-mule --with-xim=motif --with-png --with-dragndrop --with-cde touch lisp/auto-autoloads make

L'option --with-dragndrop --with-cde permet d'utiliser les fonctions de "glisser/déposer" de CDE dans XEmacs. On peut par exemple sélectionner un fichier dans le gestionnaire de fichier dtfile et le déposer dans XEmacs pour l'ouvrir directement. Les options --site-includes=/usr/dt/include --site-libraries=/usr/dt/lib/ --site-runtime-libraries=/usr/dt/lib sont nécessaires pour que configure trouve les en-têtes tt.h et la bibliothèque libtt.so. Les autres options indiquent qu'il faut utiliser Motif, Mule (caractères accentués), et les graphiques PNG. La compilation échoue si on essaire d'utiliser les icônes XPM.

NEdit et CDE

Il est possible d'ajouter à Nedit la fonctionnalité glisser déposer pour pouvoir:

  1. Ouvrir des fichiers en les sélectionnant dans dtfile et en les déposant dans la fenêtre nedit
  2. Sélectionner du texte dans dtpad et le déposer dans la fenêtre nedit

Pour cela il faut

  1. récupérer les sources de nedit par git clone git://git.code.sf.net/p/nedit/git nedit-git
  2. récupérer le patch depuis https://sourceforge.net/p/nedit/patches/174/
  3. appliquer le patch patch -p1 < patch1.patch
  4. éditermakefiles/Makefile.linux (le patch était pour Solaris) et util/Makefile.common.
Dans Makefile.linux, il faut changer: CFLAGS=-O -I/usr/X11R6/include -DUSE_DIRENT -DUSE_LPR_PRINT_CMD en: CFLAGS=-O -I/usr/X11R6/include -I/usr/dt/include -DUSE_DIRENT -DUSE_LPR_PRINT_CMD -DCDE et: LIBS=-L/usr/X11R6/lib -lXm -lXt -lX11 -lm en: LIBS=-L/usr/X11R6/lib -L/usr/dt/lib -lDtSvc -ltt -lXm -lXt -lX11 -lm Dans util/Makefile.common, il faut changer: OBJS = DialogF.o getfiles.o printUtils.o misc.o fileUtils.o \ prefFile.o fontsel.o managedList.o utils.o clearcase.o motif.o \ rbTree.o refString.o nedit_malloc.o et ajouter dragAndDrop.o: OBJS = DialogF.o getfiles.o printUtils.o misc.o fileUtils.o \ prefFile.o fontsel.o managedList.o utils.o clearcase.o motif.o \ rbTree.o refString.o nedit_malloc.o dragAndDrop.o

Après cela, on peut compiler avec la commande make linux

Économiseur d'écran

Il est possible d'utiliser xlockmore comme économiseur d'écran avec CDE. Les fichiers de configurations dtscreen.dt et dtprofile sont fournis avec xlockmore. On peut aussi utiliser xscreensaver.

Documentation

Une présentation de CDE en français est disponible à l'EPFL de Lausanne.

Une sélection de documents en ligne sur CDE (ces documents sont également disponibles via dtinfo) :

Quelques documents supplémentaires:

Vidéos de démonstration de CDE

  1. CDE sur HP-UX
  2. CDebian 0.7
  3. Autre vidéo CDebian
  4. CDE sur FreeBSD
  5. CDE on 64bit Debian Squeeze
  6. How to install icons in CDE Workspace Managers 'Subpanel'

Blogs ou pages Web

  1. CDE sur Trisquel
  2. Introduction to CDE (Université de l'Illinois)
  3. Configuring the CDE: Common Desktop Environment
  4. The CDE Desktop (Université McGill)
  5. Using CDE (Université du Manitoba)
  6. Slackware 14.0 et CDE 2.2.0d
  7. CDE: personnalisation, paramétrages courants
  8. How to: set up USB drives, control the sound card, integrate apps, use Unicode
  9. Add a custom screensaver to CDE
  10. Three Simple Solaris Customizations (configuration du gestionnaire de fenêtres dtwm, création d'actions, configuration de dtlogin)
  11. CDE stuff (pour HP-UX: configuration du login, de l'économiseur d'écran et du message de bienvenue)
  12. Creating a Login Message for CDE Users
  13. How to: Add Non-CDE Window Managers to CDE's Dtlogin
  14. CDE Desktop Korn Shell
  15. Desktop Korn Shell: Exemples de base
  16. Desktop Korn Shell: Demos
  17. CDE under Debian Squeeze
  18. CDE 1.5 sur Solaris (SunOS)
  19. CDE sur Solaris et RedHat Linux (Cette page n'est plus mise à jour depuis 2012 au moins)
  20. Java tip: Problems and special features of the CDE/Motif look and feel (4 parts)
  21. Benutzung des Common Desktop Environment (CDE) auf Unix-Systemen
  22. Common Desktop Environment beim Einsatz in heterogenen verteilten Systemen
  23. X/CDE Utilities: dtwinlist, dtgtkrcgen, dtexecw, XImaging and icons for CDE
[Retour à la page principale]