La page de GnunuX

Aller au contenu | Aller au menu | Aller à la recherche

lundi, octobre 17 2011

Edenwall est mort ... vive Cadoles

Comme je disais il y a un peu plus de 3 ans, je ne parle pas facilement de mon activité professionnelle (1) sur ce site. A l'époque je rejoignais l'entreprise INL (devenu ensuite EdenWall) (2).

Durant ces 3 ans 1/2 j'ai travaillé sur le projet libre EOLE de l'Éducation Nationale (3). EOLE est un ensemble de modules répondant à différent besoins, au départ, de l'Éducation Nationale. En voici quelques-un :

  • Amon : module de contrôle des accès Internet (firewall, Proxy filtrant, ...) ;
  • Scribe : serveur pédagogique (partage de fichier, courriel, ...) ;
  • Eclair : serveur de client léger diffusant des bureaux libres.

L'ensemble du projet est libre et ouvert.

J'ai beaucoup apprécié de travailler sur ce projet. Il est nécessaire d'avoir une variété de compétences et l'ambiance de travail est agréable.

Edenwall vient d'être liquidé et à ce titre ... j'ai été licencié.

Dijon n'est pas forcement le meilleur endroit pour trouver un travail intéressant. Nous avons donc décider de monter une boîte pour proposer notre expertise EOLE. J'espère également pouvoir faire des offres autour de la solution libre Gaspacho (4).

Cette boîte est une SCOP à responsabilité limité dont je suis le gérant.

Donc si vous voulez une prestation EOLE, une formation, du Gaspacho ou du logiciels libres à Dijon ou ailleurs ... il y a Cadoles !

  1. http://www.gnunux.info/dotclear2/index.php?post/2008/01/31/249
  2. http://www.gnunux.info/dotclear2/index.php?post/2008/02/10/250
  3. http://eole.orion.education.fr
  4. http://www.gaspacho-project.net

lundi, juillet 18 2011

Présentation d'EOLE au RMLL 2011

J'ai présenté EOLE au RMLL 2011.

Je mets à disposition le support de présentation.

http://gnunux.info/dotclear2/public/eole.pdf

Présentation de Gaspacho au RMLL 2011

J'ai présenté Gaspacho au RMLL 2011.

Je mets à disposition le support de présentation. Le support est au format SVG. Il faut l'ouvrir avec un lecteur SVG capable d'interpréter le javascript (comme Firefox par exemple). Attention, il faut attendre un peu le chargement du document.

http://gnunux.info/dotclear2/public/gaspacho/gaspacho.svg

samedi, juillet 2 2011

Mécanisme de "clef obligatoire" par utilisateur avec dconf (GNOME 3)

Contrairement à GNOME 2, GNOME 3 n'utilise plus GConf pour gérer les éléments de configuration.

Maintenant c'est Gsettings. Gsettings est en réalité une API de configuration. Le stockage des configurations se fait par un backend.

Sous GNU/Linux, le backend est dconf.

Avec GConf il était facile d'avoir des clefs obligatoires avec le mécanisme des mandatories. Avec dconf c'est un peu plus compliqué.

La configuration de dconf est séparée en deux parties :

  • les profiles ;
  • les bases de données.

Les profiles

Les profiles servent a mettre en relation des configurations et les bases de données. Le profile par défaut est user.

Par défaut, les profiles sont dans le répertoire /etc/dconf/profile/. Ce sont des fichiers de la forme :

database1
database2

La valeur database1 correspond au nom de la base de données utilisateur (généralement dans ~/.config/dconf/). La valeur database2 correspond au nom de la base de données système (généralement dans /etc/dconf/db/). La base de données utilisateur sera prioritaire.

La base de données utilisateur

Pour modifier la base de données utilisateur, le plus simple est d'utiliser la commande dconf :

# dconf write path value

Pour lire la valeur :

# dconf read path

Pour lister les valeurs :

# dconf list path

Par exemple :

# dconf write /org/gnome/gnome-screenshot/delay 16
# dconf read /org/gnome/gnome-screenshot/delay
# dconf list /org/gnome/gnome-screenshot/

La base de données système

Pour modifier la base de données système, le plus simple est de faire des fichiers plats (type INI).

Pour cela, il faut faire une fichier du nom de la base de données dans le répertoire /etc/dconf/db/ avec l'extension .d.

Dans notre cas, nous ferons le répertoire /etc/dconf/db/database2.d/. À l'intérieur nous ferons des fichiers avec l'ensemble des paramètres :

[path]
key=value

Les clefs obligatoires

Dans le répertoire de la base de données système, il faut faire un répertoire locks avec une série de fichiers contenant le chemin des clefs obligatoires de la forme :

path

Clefs obligatoires par utilisateur

Il est envisageable d'avoir des clefs obligatoires par utilisateur si nous créons un profile et une base par utilisateur. Ce profile sera associé à l'utilisateur au démarrage de la session.

Pour cela, il faut ajouter dans le fichier de configuration de bash quelque chose comme cela :

readonly DCONF_PROFILE=nomprofile
export DCONF_PROFILE

Par contre, utiliser le nom d'utilisateur comme nom de profile n'est pas forcement une bonne idée, en effet il y a des restrictions importantes dans le nom du profile : il doit être de type alphanumérique ou "_".

Exemple d'utilisation

Dans /etc/bashrc :

if [ -e /etc/dconf/profile/$UID ]; then
    readonly DCONF_PROFILE=$UID
    export DCONF_PROFILE
fi

Création du fichier : /etc/dconf/profile/500 (pour l'utilisateur avec l'uid 500) :

user
500

Le fichier /etc/dconf/db/500.d/delay contient :

[org/gnome/gnome-screenshot]
delay=16

Le fichier /etc/dconf/db/500.d/locks/delay contient le chemin :

/org/gnome/gnome-screenshot/delay

lundi, mai 16 2011

Copier n'est pas voler

"Copier n'est pas voler" est le titre d'un documentaire monté par l'association COAGUL (1).

Tout part d'une réunion de préparation des 10 ans de l'association. Au moment de lister les possibilités d'événement on a ressorti une ancienne idée : pourquoi pas faire une projection/débat à cinéma d'art et essai l'Eldorado (2) ?

Puis vint le problème de la projection ... quoi projeter ? "Nom de code : linux" (3) ? Bof, ancien, trop technique. Les films d'animation de la fondation Blender (4) ou "Sita Sings The Blues" (5) ? Bof, intéressant du côté technique mais n'apportent pas d'élément au débat. ...

Rien de bien adapté à nos besoins. Vient alors l'inévitable ... nous prenons la décision de monter notre propre documentaire. Et ca sera sur le thème "Copier n'est pas voler" (cool, le générique de début est tout trouvé ... la "Copyright Song" (6)).

Dans la tradition du logiciel libre (ne pas réinventer la roue) nous partons à la recherche de séquences vidéos. Le montage débute à partir du documentaire "The Revolution Will Be Animated" de Marine Lormant Sebag (7), auquelle nous ajoutons un grands nombres d'intervention.

L'ensemble du montage se fera, évidement, avec des logiciels libres.

Dans la tradition du logiciel libre, vous pouvez le télécharger.

  1. http://www.coagul.org/
  2. http://cinema-eldorado.fr/
  3. http://fr.wikipedia.org/wiki/Nom_de_code_:_Linux
  4. http://www.blender.org/blenderorg/blender-foundation/
  5. http://gnunux.info/dotclear2/index.php?post/2010/11/13/Sita-Sings-The-Blues-en-VOST-avec-mplayer
  6. http://www.framablog.org/index.php/post/2009/03/22/the-copyright-song-nina-paley
  7. http://vimeo.com/8768785

samedi, janvier 1 2011

Gamine 1.1 - Happy new year

Voici donc une nouvelle version de Gamine, la version 1.1 (autrement appelé "Happy new year"). Pour rappel, Gamine est une application simple pour que l'enfant puisse appréhender l'usage de la souris et l'usage du clavier. L'idée de départ était de développer une application reprenant les concepts de l'ardoise magique.

Une ensemble de modifications ont été apportées à l'application;

Première modification, il est possible de traduire les messages et le "menu" de Gamine. Pour l'instant, seuls l'anglais et le français sont pris en charge. Si quelqu'un veut soumettre d'autres traductions. Ne pas hésiter.

Il y avait un bug assez gênant sur la version 1.0. Si l'enfant appuyait longtemps sur une touche du clavier, une succession de sons et de lettres colorées apparaissaient. Cela produisait rapidement une charge système importante. J'ai désactivé la répétition du clavier dans Gamine.

Le curseur de la souris est maintenant modifié. Une crayon apparaît à la place du curseur configuré par défaut.

Enfin, j'ai essayé de prévenir le changement de bureaux, le changement d'applications (alt-tab), ... le plus possible. Si votre enfant arrive encore à changer d'application (en dehors de la touche Échappe) merci de le signaler.

Il est possible se sauvegarder une image en tapant la touche "Impression d'écran" du clavier. Les images sont créées dans le répertoire $HOME/gamine de l'utilisateur avec comme nom la date et l'heure.

Il faut ajouter à cela une grosse réoganisation du code et quelques corrections de bugs.

Un fichier .spec et un répertoire debian/ ont été ajoutés pour pouvoir construire des paquets RPM ou DEB.

La prochaine version aura pour but de passer à GTK 3 et Gsettings. Si vous avez d'autres suggestions ne pas hésiter à laisser un commentaire.

Pour télécharger Gamine : http://gnunux.info/projets/gamine/.

Bon, maintenant est temps de laisser la place à votre enfant sur l'ordinateur !

vendredi, novembre 26 2010

OpenStreetMap et Wikipédia

Cela faisait un bon moment que l'annonce avait été faite. Wikipédia met en avant les cartes OpenStreetMap !

C'est une excellente nouvelle.

Les articles correctement géo-taggés auront un lien "Carte" en haut à droite de l'article.

C'est le cas, notamment, de l'article de Dijon : http://fr.wikipedia.org/wiki/Dijon.

Plus d'informations : http://www.ecrans.fr/Wikipedia-tire-ses-cartes,11412.html

samedi, novembre 13 2010

Sita Sings The Blues en VOST avec mplayer

Sita Sings The Blues ?

Écrit et réalisé par Nina Paley, Sita Sings The Blues est un film d'animation américain de 1h22mn. Le film remporte le Cristal du long métrage (le premier prix) au Festival international du film d’animation d’Annecy en 2008.

Entièrement réalisé, scénarisé, animé et monté par Nina Paley, Sita Sings The Blues mélange quatre styles différents et des techniques d’animation différentes (dessins, papiers découpés, ordinateur 2D, utilisation d’images libres de droits…).

De plus, le film mélange deux histoires différentes :

Film d'animation libre

Sita Sings The Blues est un film d'animation distribué sous une licence Creative Commons By-Sa. Nina Paley renforce cette licence en interdisant explicitement l'usage de système Digital Restrictions Management (DRM).

Sauf que ... le film est aussi une comédie musicale avec des chansons de l'interprète de jazz Annette Hanshaw. Ces chansons datent de la fin des années… 1920. Nina Paley pensa légitimement qu’elles étaient désormais dans le domaine public. Mais c’était sans compter sur des subtilités juridiques. Les enregistrements sont bien dans le domaine public mais ce n’est pas le cas de la composition, paroles et musiques (partitions).

Plus d'informations :

Film et sous-titrage avec mplayer

  1. Téléchargement de la vidéo
  2. téléchargement du sous-titre français
  3. pour que le sous-titre fonctionne avec mplayer il faut que le fichier srt ait le même nom que le fichier vidéo. J'ai eu un soucis d'encodage, résolu en faisant : iconv -f iso8859-1 -t utf8 Sita_Sings_The_Blues_FRENCH.srt -o Sita_Sings_the_Blues_640x360_XviD.srt
  4. lancement de mplayer avec la police Libération (plus sympa que la police par défaut) : mplayer Sita_Sings_the_Blues_640x360_XviD.avi -font 'Liberation Serif:style=Bold' -utf8

mardi, octobre 5 2010

"Celle-ci sera centrée sur Ubuntu, afin de ne pas faire doublon avec la COAGUL"

CE TEXTE NE REPRÉSENTE QUE CELUI QUI L'A ÉCRIT

Voici la justification principale lors de la réunion de création de l'association Ubuntu-Dijon (1) : "Celle-ci sera centrée sur Ubuntu, afin de ne pas faire doublon avec la COAGUL".

En effet, j'avais essayé de convaincre les autres participants de cette réunion d'organisation du premier LibrexpOS de ne pas créer un second groupe d'utilisateur de logiciel libre à Dijon.

Peine perdu, le second GULL Dijonnais était né.

Ce qui pouvait être considéré comme un "pacte de non agression" a bien évidement volé en éclat rapidement.

On m'a souvent sorti l'argument "nous avons une autre façon de présenter le libre". Encore une fois, cet argument ne tiens au vu des faits.

En effet, lorsque je lis l'interview des membres d'Ubuntu-Dijon (2), je ne vois aucune différence de discours ! Nous sommes loin du "pragmatisme" affiché :

"Il s'agit aussi de s'extraire d'une logique mercantile, où tout va être breveté, vers un retour de l'échange et du partage avec le pouvoir de redistribuer à la communauté ce qu'elle nous a apporté".

"L'idée la plus forte est la liberté de choix de l'utilisateur, concept qui est assez opposé à celui de marques comme Apple ou Microsoft, qui font tout pour "guider" les utilisateurs dans leurs choix".

"Nous sommes dans la logique du logiciel propriétaire étendu aux matériels."

Encore une fois, je trouve ahurissant qu'une ville de 151 543 habitants (3) se trouve avec deux GULL. Loin d'être bénéfique, cette situation apporte confusion, éparpillement des forces et baisse la crédibilité général des deux groupes.

Conclusion : c'est le problème de tous les doublons ... tout le monde y perd. Mais nous ne sommes pas à l'origine de cette situation, nous la subissons et c'est grotesque !

  1. http://wiki.ubuntu-dijon.org/doku.php?id=reunion:reu080201cr#vi_divers
  2. http://www.dijonscope.com/007977-les-logiciels-libres-a-l-assaut-d-apple-et-microsoft
  3. http://fr.wikipedia.org/wiki/Dijon

vendredi, septembre 24 2010

Les choix Gaspacho

Le choix est l'élément central de Gaspacho. Sans choix ... il n'y a aucun intérêt de l'utiliser.

Le choix est le lien entre la règle (1 et 2) et le groupe (3).

Le choix

Le choix est donc la configuration particulière d'une règle pour un groupe ou un template (et éventuellement le groupe d'utilisateur).

Pour un groupe ou un template il est possible de définir des choix pour les règles machines et les règles utilisateurs. Par contre, pour un groupe d'utilisateur, seul les règles utilisateurs sont paramétrables.

Si le règle n'est pas de type booléen, une valeur devra être définit en plus du choix.

Les choix

En réalité, il n'y pas un choix possible par règle mais trois :

  1. choix libre : c'est l'utilisateur qui choisit le paramétrage de cette option (c'est la valeur par défaut) ;
  2. choix imposé désactivé : c'est l'administrateur qui choisit le paramétrage en la désactivant ;
  3. choix imposé activé : c'est l'administrateur qui choisit le paramétrage en l'activant ;

La valeur de la règle ne sera utile que lorsque le choix est imposé et activé.

Exemple avec l'activation du proxy :

  1. choix libre : l'utilisateur active ou désactive le proxy à sa convenance ;
  2. choix imposé désactivé : l'administrateur impose la désactivation du proxy ;
  3. choix imposé activé : l'administrateur impose l'activation du proxy et le configure suivant le paramétrage prédéfini.

Le choix et l'héritage

Lorsqu'on parle d'héritage, cela concerne bien évidement uniquement les choix. Le premier choix détecté dans l'héritage sera appliqué à l'utilisateur.

Donc pour un groupe il y deux états pour la règle :

  1. l'administrateur a spécifié un choix : il s'applique ;
  2. l'administrateur n'a pas spécifié de choix : c'est le choix hérité qui s'applique ;

Si l'administrateur n'a pas spécifié de choix pour les groupes hérités ou les templates hérités, c'est le choix par défaut, choix libre, qui s'applique.

Liens :

  1. http://gnunux.info/dotclear2/index.php?post/2010/09/17/Les-regles-dans-Gaspacho
  2. http://gnunux.info/dotclear2/index.php?post/2010/09/18/Proprietes-des-regles-Gaspacho
  3. http://gnunux.info/dotclear2/index.php?post/2010/09/18/Les-groupes-Gaspacho

samedi, septembre 18 2010

Les groupes Gaspacho

Après avoir présenté les règles Gaspacho (1 et 2), il faut s'attarder sur la notion de groupe.

Si l'administrateur ne devrait pas avoir besoin de gérer lui même les règles (sauf si la règle dont il a besoin n'existe pas encore), il devra créer les groupes.

Un groupe est un ensemble de machines disposant des mêmes configurations. Il est possible d'associer des utilisateurs pour différencier les configurations suivant le profile de la personne qui se connecte à la machine.

Les groupes

Un groupe est d'abord un libellé. Il est directement visible dans l'interface de configuration.

Pour limiter le nombre de règles disponible, ce groupe peut être lié à un ou plusieurs systèmes ou un ou plusieurs logiciels. Dans ce cas, seuls les règles concernant ces logiciels ou systèmes seront proposées.

Enfin, pour classer les groupes, un niveau est associé à ce groupe. En effet, le première groupe qui comprends aux critères de la machine se connectant sera le groupe de la machine. Il est alors important de pouvoir les classer.

Les groupes de machine

Une fois défini, le groupe est lié à un ensemble de machines. Un machine est décrite soit par son adresse IP, soit par son nom DNS. Dans le nom DNS ou l'IP il est possible d'utiliser les motifs inspirés du shell Unix :

*        remplace tout
?        remplace un seul caractère
[seq]    remplace tous caractères dans "seq"
[!seq]   remplace tous caractères en dehors de "seq"

Les utilisateurs ou groupes d'utilisateurs

Le groupe peut également être lié à un ensemble d'utilisateurs. Il est possible de définir des utilisateurs ou des groupes d'utilisateurs. Le nom de l'utilisateur primant sur son groupe primaire.

Si l'utilisateur n'est pas définit ou n'appartient pas aux groupes, il récupèrera les paramétrages du groupe directement

Les templates

En plus des groupes, il existe les templates. Les templates ont les mêmes propriétés qu'un groupe sauf qu'il n'est pas possible de lui associer des groupes de machine. Les templates sont utiles dans le cadre de l'héritage. Les templates peuvent être associés à des groupes différents.

L'héritage des groupes

Le mécanisme d'héritage permet mettre en commun des réglages pour différents groupes.

Exemple d'héritage :

default (None, user1, user2)
   |
   '--group1 (None, user1, user2)
         |
         |--group2 (None, user1, user2)
         |
         template1 (None, user1, user2)

Si l'utilisateur user1 se connecte à group2, le parcours de l'héritage se fera de la manière suivante :

  1. user1 sur group2 ;
  2. group2
  3. user1 sur group1 ;
  4. group1
  5. user1 sur template1 ;
  6. template1 ;
  7. user1 sur default ;
  8. default

Si l'utilisateur n'est pas user1 ni user2 :

  1. group2
  2. group1
  3. template1
  4. default

Le concept de template prend tout son sens. Les groupes ne peuvent hériter que de ses parents alors qu'un template peut concerner plusieurs groupes avec des parents complètement différents.

Liens :

  1. http://gnunux.info/dotclear2/index.php?post/2010/09/17/Les-regles-dans-Gaspacho
  2. http://gnunux.info/dotclear2/index.php?post/2010/09/18/Proprietes-des-regles-Gaspacho

Propriétés des règles Gaspacho

Comme indiqué dans un précédent poste (1), une règle Gaspacho est d'abord un intitulé.

Mais évidement, ce n'est pas que cela.

Les niveaux de règles

Il existe déjà deux niveaux de règles différentes :

  • les règles dites "machines", appliquées au démarrage de la machine quelque soit l'utilisateur s'y connectant ;
  • les règles dites "utilisateurs" qui concernent un utilisateur particulier ou un groupe d'utilisateurs. Elles sont appliquées au démarrage de la session.

Par exemple :

  1. "Autoriser l'arrêt de la machine depuis la fenêtre d'ouverture de session" est une règle machine ;
  2. "Configuration du proxy" est une règle utilisateur.

Les types

Les types de règle

Une fois que le niveau de règle est défini (machine ou utilisateur), il faut choisir son type.

Les types possible sont composés de deux catégories :

  • sans valeur : "boolean"
  • avec valeur : "unicode" (un texte libre), "integer" (un chiffre), "enum" (une liste de choix prédéfinies) et "list" (une liste de choix libres).

Les types sans valeurs sont les plus simple. Par exemple cette règle n'attend aucune valeur particulière :

"Vérifier que Firefox est le navigateur par défaut"

Alors que celle-ci attend une adresse IP :

"Configuration du serveur proxy manuelle"

Il existe un autre type ("multi") qui permet de mêler plusieurs types. Je n'entrerais pas dans les détails dans ce billet.

Il s'agit bien de définir ici le type de la règle (et uniquement de la règle).

Les types de variables

Le type de la règle n'agit en rien sur les types des variables associées à la règle.

Par exemple, la configuration du proxy (type unicode) sous GNOME configure trois variables de types différents :

  1. /system/http_proxy/use_http_proxy de type boolean ;
  2. /system/http_proxy/host de type unicode ;
  3. /system/http_proxy/port de type integer.

Les valeurs

Valeurs par défaut des règles

Chaque règle avec valeur peut contenir une valeur par défaut. Celle-ci sera proposée à l'activation de la règle. Si cette valeur ne lui convient pas, il aura bien évidement le loisir de la modifier.

Les valeurs "activées" et "désactivées" des variables

Je présenterais en temps voulu la notion de "activé" et "désactivé" d'une variable. Il faut juste savoir que l'on peut associer une valeur fixe à une variable.

Par exemple, lors de l'activation du proxy sous GNOME, la variable "/system/http_proxy/use_http_proxy" aura comme valeur "True". L'utilisateur n'interagit pas directement sur cette valeur.

En cas de règle avec valeur, il est possible qu'une variable ne récupère par la valeur défini par l'utilisateur (comme le montre l'exemple juste avant). Si la variable doit récupérer la valeur, il suffit de ne pas spécifier de valeur pour la variable en question.

  1. http://gnunux.info/dotclear2/index.php?post/2010/09/17/Les-regles-dans-Gaspacho

vendredi, septembre 17 2010

Les règles dans Gaspacho ?

Une règle, dans Gaspacho, est simplement (pour schématiser) un libellé.

Par exemple "Configuration du serveur proxy manuelle" est une règle.

Évidement, la règle en elle même ne sert a rien. Il faut lui associer des éléments de configuration.

Avant d'expliquer comment cela fonctionne, voici des exemples de configuration du proxy. On peut voir qu'il existe une variété de formats de fichiers de configuration.

  • Configuration du proxy sous Windows avec des clefs de registre :
  1. activation du proxy : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable : 1 ;
  2. configuration du proxy : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer : 192.168.1.1:3128 :
  3. mise en place d'une restriction sur la modification du paramétrage du proxy : HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel\Proxy : 1.
  • Configuration du proxy sous Mozilla Firefox avec un fichier javascript utilisateur.js (1) :
  1. activation du proxy : lockPerf("network.proxy.type", "1"); ;
  2. configuration de l'IP du proxy : lockPerf("network.proxy.http", "192.168.1.1"); ;
  3. configuration du port du proxy : lockPerf("network.proxy.http_port", "3128");.
  • Configuration du proxy sous GNOME avec des clefs gconf :
  1. activation du proxy : /system/http_proxy/use_http_proxy True ;
  2. configuration de l'IP du proxy : /system/http_proxy/host "192.168.1.1" ;
  3. configuration du port du proxy : /system/http_proxy/port 3128.
  • Configuration du proxy sous OpenOffice.org avec le fichier XML ~/.ooo3/user/registry/data/org/openoffice/Inet.xcu :
<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Inet" oor:package="org.openoffice">
 <node oor:name="Settings">
  <prop oor:name="ooInetProxyType" oor:type="xs:int">
   <value>2</value>
  </prop>
  <prop oor:name="ooInetHTTPProxyName" oor:type="xs:string">
   <value>192.168.10.1</value>
  </prop>
  <prop oor:name="ooInetHTTPProxyPort" oor:type="xs:int">
   <value>8080</value>
  </prop>
 </node>
</oor:component-data>

Gaspacho devra supporter l'ensemble des formats de fichiers de configuration. De plus, il devra gérer les versions des logiciels et les distributions/systèmes d'exploitation.

Pour cela, chaque élément de configuration sera divisé en deux : la variable et la plateforme. La plateforme comprendra le chemin et le système.

Par exemple, nous aurons :

  • variable : ProxyEnable avec la valeur 1 ;
  • plateforme : chemin : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ et système : Windows XP.

Autre exemple pour OpenOffice.org :

  • variable : ooInetProxyType dans la section Inet/Settings avec la valeur 2 ;
  • plateforme : chemin : ~/.ooo3/user/registry/data/org/openoffice/Inet.xcu et système : Mandriva 2010 + OpenOffice.org 3.2.

Enfin, ces règles sont classés dans des "tags" eux-mêmes classés dans des "catégories".

Ici, cette règle sera dans la catégorie "Réseau" et dans le tag "Configuration du proxy".

  1. http://gnunux.info/dotclear2/index.php?post/2010/08/30/Mecanisme-de-clef-obligatoire-par-utilisateur-sous-Mozilla-Firefox

Présentation de Gaspacho

Gaspacho est un projet libre (GNU GPL v3) destiné à configurer les postes clients d'une entité.

Le but du projet est de configurer indifféremment un ensemble de logiciels et systèmes différents avec des choix déterminés par l'administrateur.

Un exemple simple de configuration : le proxy.

Si l'on veut configurer le proxy sur un ensemble de logiciels et systèmes, cela peut devenir assez rapidement rébarbatif. Il faut le faire souvent dans plusieurs applications (même si la plupart savent utiliser les variables globales du système).

Dans Gaspacho, il sera possible de définir une fois la configuration du proxy pour que l'ensemble des logiciels compatibles soient correctement configuré.

Gaspacho est composé de 2 parties :

  • un serveur de configuration ;
  • un agent sur le poste client.

La configuration se fait via une interface web. L'agent, installer sur le poste client, sera chargé de convertir les choix en fichiers de configuration, clef gconf, entrée dans la base de registre, ...

Plan :

Les concepts

  1. les règles et leurs propriétés
  2. les groupes
  3. les choix

Je présenterais Gaspacho au JDLL 2010 : http://www.jdll.org/content/configuration-centralis%C3%A9e-des-postes-clients-avec-gaspacho

Plus d'informations sur le site du projet : http://www.gaspacho-project.net/

lundi, août 30 2010

Mécanisme de "clef obligatoire" par utilisateur sous Mozilla Firefox

Je cherche depuis deux jours comment avoir un mécanisme de "clef obligatoire" (mandatory key) par utilisateur avec Mozilla Firefox.

Mon but est de pré-configurer des postes clients Firefox suivant l'utilisateur qui s'y connecte.

Le plus simple est de modifier le fichier "prefs.js" dans le profile utilisateur se trouvant dans le répertoire personnel de l'utilisateur. Le problème c'est que l'utilisateur aura la possibilité de modifier les paramètres. A chaque connexion il verra son paramétrage disparaître sans forcement comprendre.

Il existe un second fichier "user.js" qui prévaut sur le fichier "prefs.js". Cela signifie que l'utilisateur peut modifier les paramétrages, mais ceux-ci ne s'appliquent ni maintenant, ni après redémarrage. C'est assez perturbant.

La troisième solution est d'utiliser le mécanisme de verrou. Mais le fichier de verrou est global pour tous les utilisateurs. Impossible alors de personnaliser quoi que ce soit.

Après recherche, je suis parvenu a réalisé ce que je souhaite.

Voici la méthodologie :

Commençons par ajouter le support des "clefs obligatoires" :

Dans le fichier, /usr/lib/xulrunner-x.x.x.x/greprefs/all.js (sous Mandriva en tout cas, il est possible que ce répertoire soit directement dans le répertoire de firefox), ajouter :

pref("general.config.filename", "mozilla.cfg");
pref("general.config.obscure_value", 0); 

Cela permet d'ajouter le support du fichier "mozilla.cfg". C'est ce fichier qui est censé contenir les "clefs obligatoires" global pour tous les utilisateurs. L'option "obscure_value" est à "0" pour éviter l'avoir à le convertir en ROT13 (sécurité par obscurantisme inutile).

Pour avoir un support multi-utilisateur, j'ajoute dans le fichier /usr/lib/firefox-x.x.x/mozilla.cfg :

//
var env_user = getenv("USER');
lockPref("autoadmin.global_config_url", "file///etc/firefox/"+env_user+".js");

(attention, le "//" au début du fichier semble obligatoire).

EDIT : sous Windows, il faut visiblement : var env_user = getenv("USERNAME"); (non testé). Pour un support multi-platforme il est alors possible de faire :

if(getenv("USER") != "") {
  // *NIX settings
  var env_user = getenv("USER");
} else {
  // Windows settings
  var env_user = getenv("USERNAME");
}

Il est alors possible d'avoir un fichier de configuration par utilisateur. Dans le fichier /etc/firefox/nom_de_l'utilisateur.js, mettre des clefs commençant par lockPerf (penser à la première ligne "//").

Pour les clefs, vous pouvez utiliser les informations de cette page : http://www.pcc-services.com/kixtart/firefox-lockdown.html.

Reste un soucis de taille ... à la prochaine mise à jour de Firefox ... il faudra reconfigurer le fichier all.js ...

Si quelqu'un à une solution pour cette limitation, je suis intéressé.

samedi, mai 1 2010

Et ca continoooooo ...

Une nouvelle modification dans le script nootv.py. Ce script permet de regarder les émissions de la chaîne de télévision locale Vootv avec des logiciels libres.

Cette nouvelle version permet de visualiser rapidement les émissions déjà regardé.

Après l'identifiant une "*" est affiché si l'émission a été récupéré.

Exemple :

  54* : Le Grand Rendez-VOO du 28 Avril 2010 partie 2 (Le Grand Rendez-Voo)
  55* : Le Grand Rendez-VOO du 28 Avril 2010 partie 1 (Le Grand Rendez-Voo)
  56  : Le Grand Rendez-VOO du 29 Avril 2010 partie 1 (Le Grand Rendez-Voo)

Attention, la base de donnée a été modifié et je n'ai pas prévu la migration. Il faut donc supprimer le fichier nootv.sqlite avant de lancer le script.

Pour récupérer le script ... : http://gitorious.org/nootv/nootv/blobs/raw/master/nootv.py

Bon Vootv.

mardi, mars 16 2010

Logiciel libre sur Vootv

Dans l'émission Le Grand Rendez-VOO du 15 Mars 2010, nous pouvons voir très clairement le logiciel libre Mozilla Firefox.

Le logiciel n'est pas le sujet du reportage. L'application n'est pas une application choisit par la chaîne de télévision. En effet, c'est durant un reportage sur les élections régionales que l'ont peut voir le navigateur libre.

Logiciel libre sur Vootv

dimanche, février 21 2010

Noo, voo, ils ...

Voici la troisième version de nootv.py.

En réalité le premier menu (la sélection du jour) n'était pas utile. En effet, le jour de la semaine n'a aucun intérêt, on tombe régulièrement sur des rediffusions. Cette nouvelle version récupère l'ensemble des émissions de la semaine et les affichent directement.

La version des émissions étant listé par jour de diffusion, c'est suffisant.

Exemple ... :

L'émission :
   1 : Associez-voo
   2 : Grand Tourisme
   3 : L'Agenda quotidien
   4 : L'Atelier des Chefs
   5 : Le Grand Rendez-Voo
   6 : Le Rendez-vous Politique
   7 : Météo
   8 : Sports
   9 : Watt's in
>>>(1) 
9

Version de l'émission :
   1 : Watt's in du 10 Décembre 2009
   2 : Watt's in du 19 novembre 2009
   3 : watt's in 17 Décembre 2009
   4 : watt's in 8Janvier 2010
>>>(4) 

Enfin, j'ai mis la licence "qui va bien" dans le script, à savoir la licence libre "DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE".

Pour récupérer le script ... : http://gitorious.org/nootv/nootv/blobs/raw/master/nootv.py

Bon Vootv.

Pourquoi je n'irai pas à LibrexpOS 3

Ce billet est écrit à titre personnel et ne représente pas l'association COAGUL.

Je viens de prendre connaissance d'un courriel envoyé par, sauf erreur de ma part, le vice président de Ubuntu-dijon.

Ce courriel me fait changer d'avis sur l'événement Librexpos 3. Alors que j'avais décidé, initialement d'y participer, je viens de changer radicalement d'avis et décidé ... de rester chez moi (ou pas).

Moi j'ai pas envie de reproduire le coup du premier LibrExpOs ou ils sont arrivés, excusez moi de l'expression 'comme un éléphant dans un magasin de porcelaine' à 11h, au courant de rien, alors que tout était déjà installé et commencé.

Réinventer l'histoire de cette façon ... c'est un peu fort !

J'étais personnellement présent à l'heure pour tenir mon stand. Il était prêt à l'heure. Presque rien n'était installé en tout cas autour de moi. J'estime ne pas être arrivé comme "comme un éléphant".

De même, Tony et Jibux était présent. Ils sont arrivés pratiquement en même temps que moi. A l'heure.

Je devais et j'ai tenu le stand sur les "données libres". Tony devait installer le stand de COAGUL et Jibux, si mes souvenir sont bons, filmait l'événement.

Soit nous étions, aux yeux de cette personne, totalement inutiles et transparents. Soit, il y a volonté manifeste de dénigrer l'engagement des membres de l'association COAGUL.

En réalité, il fait référence au 4ème membre qui lui est arrivé, comme prévu, après l'heure d'ouverture. Il est évident qu'il est parfois difficile d'associer vie de famille, vie professionnelle et vie associative. Il faut parfois faire des compromis entre ces trois univers. Si un vice-président ne peux pas comprendre cela ...

Normalement Tony devait tenir le stand de COAGUL, jusqu'à l'arrivé de notre président. Je ne vois pas en quoi cela devrait être jugé choquant et irrespectueux. En réalité, le problème venait d'un malentendu entre Ubuntu-dijon et l'association COAGUL. Nous devions avoir une place durant l'événement. Bien. Mais nous ne pouvions nous contenter d'un bout de table dans le couloir. En effet, nous avions pris part, activement, à l'organisation de l'événement (place qui nous était normalement réservé).

Tony était venu se réfugier sur le coin de la table de mon stand (alors qu'il ne devait pas être là) plutôt que de rester seul dans le couloir. Mais il est évident que cet état de fait ne pouvait convenir au président de COAGUL. Il a donc installé le stand, comme cela était prévu lors de l'organisation.

Notre tord à uniquement était de ne pas avoir su nous imposer avant son arrivée.

Ce malentendu n'est pas passé du côté d'Ubuntu-dijon puisque deux ans après, nous voyons que cet petit épisode n'est toujours pas digéré.

Dans ce cadre, je ne vois pas comment je pourrais participer sereinement à nous nouvelle édition. Si la suspicion est toujours de mise si longtemps après. Je ne voudrais pas recréer un "incident diplomatique" pour des faits futiles que je pourrais commettre.

Mais à une unique condition, qu'ils viennent aux réunions de préparation.

C'est une façon un peu sommaire de proposer la co-organisation de l'événement. Pourquoi pas, mais il faudrait un définir les contours, les engagements et les intérêts réciproques AVANT de venir aux réunions d'organisation. Chose qui n'est pas à l'ordre du jour (dans tous les cas, je n'ai pas vu de telle demande).

Néanmoins, il est toujours possible de participer à l'événement sans être co-organisateur (je suis allé récemment présenter OpenStreetMap dans un événement organisé par Séquanux). Mais ... c'est exclu pour Ubuntu-dijon.

Nous voyons ici l'habileté de la rhétorique. Faire croire que COAGUL ne répond pas aux sollicitations ... qui n'ont jamais été formulé ! Si Ubuntu-dijon propose de co-organiser l'événement avec COAGUL, pourquoi pas, mais il faut qu'elle fasse des propositions claires pour que nous puissions les évaluer.

Tous les ateliers seront sous Ubuntu (ou Os proprio pour présenter que des applis libres tournent aussi dessus). Lors du premier, on a eu plusieurs visiteurs sont repartis, n'ayant pas compris pourquoi il y avait Ubuntu et Mandriva, et sont reparit avec le sentiment comme quoi c'était la guerre chez nous ....

Il est ironique de lire ces phrases alors qu'un peu plus loin il évoque la présence de la distribution Toutoulinux. Qu'est ce que c'est que Toutoulinux ? La distribution francisé de Puppy ... plus ou moins héritière de la distribution Slackware. Rien a voir avec Ubuntu donc.

C'est tout de même drôle de constater que cette règle ... ne s'applique qu'aux membres de COAGUL, et non au membre d'Ubuntu-dijon.

Comme le vice-président sait que la plupart des membres susceptibles de venir n'utilisent pas Ubuntu, créer une règle qu'on ne s'applique pas à soi même permet d'exclure de facto les autres ... sans le dire.

Cela montre, tout au plus, le sectarisme dont fait preuve l'association Ubuntu-dijon envers les autres distributions.

Edition : Comme on me le signal, Ubuntu-dijon est particulièrement bien veillante envers les "Os proprio", mais pas envers les distributions GNU/Linux.

Toujours ironiquement, je me rappelle avoir vu la plupart de l'après midi, sur un vidéo projecteur, une application privatrice avec des données fermées développée par un célèbre moteur de recherche. Alors que je présentais les données libres d'OpenStreetMap sur mon petit écran, pendant que les membres d'Ubuntu-dijon faisait la promotion du même type de données ... mais fermé.

Personnellement, je pense que le mélange privateur/libre est plus un risque de confusion pour les visiteurs que de montrer que le libre c'est l'innovation, la concurrence et la saine compétition.

c'est pas pour rien que ça fait 3 mois que je leurs envois des invits sur leurs mailing list.

Je n'ai vu aucun message sur nos listes de diffusion. En réalité, il existe des messages sur la liste du collectif bourguignon de promotion du logiciels libres. En effet, j'ai mis en place et héberges la liste "Bourguinux". Mais, j'ai toujours voulu (et c'est la même chose pour COAGUL) que toutes les sensibilités soient au même niveau sur cette liste.

Ne pas comprendre que la fédération des utilisateurs des logiciels libres est important, démontre bien que l'association Ubuntu-dijon est sectaire et ne désire pas s'ouvrir aux autres.

Conclusion :

Etant donné que le vice-président (et certainement d'autres dans l'association Ubuntu-dijon) sont sectaire aux autres distributions, que des faits anodins reste présent dans leur esprit (et que cela servent à calomnier notre association) et devant le peu d'ouverture je ne serais pas présent à Librexpos 3.

Il ne faut pas non plus oublier que, par simple esprit sectaire, les membres de Ubuntu-dijon ne viennent jamais aux événements, ateliers et réunions organisé par l'association COAGUL.

mercredi, février 10 2010

Et de deux ...

Voici une nouvelle version de nootv. Pour rappel, nootv permet de visualiser les vidéos de la chaine locale de Dijon vootv avec des logiciels libres.

Avec le nom des vidéos, il est difficile de déterminer quelle vidéo nous voulons réellement voir.

Voici un nouvelle exemple de menu (plus clair) :

Version de l'émission :
   1 : Atelier des chefs n°2 Maquereau de David Zudas
   2 : Atelier des chefs n°1 Délice Maltée
   3 : Atelier des chefs n°4 Verrines chocolat et suprèmes de pamplemousse de Franck Pourrier
   4 : Atelier des chefs n°5 Gambos et tofu par  fumi mitera
   5 : Atelier des chefs n°3 Croustillant de veau de Cyril Riandet
   6 : Atelier des chefs n°6 Boeuf bourguignon

Pour télécharger la nouvelle version, c'est encore ici :

http://gitorious.org/nootv/nootv/blobs/raw/master/nootv.py

- page 1 de 3