FLASH INFORMATIQUE FI



GGWin : historique et outils




Vittoria REZZONICO

Andreas JAGGI

Stephan WALTER


GGWin est un projet issu de la GNU Generation , une commission de l’AGEPoly (Association Générale des Étudiants de l’EPFL) qui s’est donné pour mission la promotion des logiciels libres à l’EPFL. GGwin réalise une bonne partie de cette mission.

Comment promouvoir les logiciels libres ?

Quand on achète un ordinateur, il arrive déjà avec des logiciels préinstallés. Pour la plupart des gens, ces programmes sont suffisamment bons, simplement parce qu’ils ne découvrent jamais les alternatives libres. Parmi les raisons de passer aux logiciels libres, on peut citer :

  • pratiquement toutes les attaques informatiques visent les produits Microsoft, car ce sont les logiciels les plus répandus (bien sûr, ils arrivent avec le PC !) ;
  • les vulnérabilités des logiciels libres ont plus de chance d’être découvertes et corrigées avant de présenter un danger réel. Souvent dans le monde des logiciels propriétaires, c’est un virus qui force le fournisseur à colmater les brèches ;
  • on ne sait pas ce qu’un logiciel propriétaire fait lorsqu’on se connecte à l’Internet... tandis que pour les logiciels libres, on a la possibilité de regarder le code source, ce qui nous assure une plus grande protection.
  • c’est librement téléchargeable ;
  • disponibilité dans un grand nombre de langues (même l’Esperanto par exemple) ;
  • les formats d’entrées-sorties sont bien documentés ;
  • on n’est pas pris en otage par une certaine entreprise américaine.

Malgré ces avantages, il est assez difficile de convaincre le propriétaire d’un ordinateur de réinstaller son système, ou d’installer d’autres logiciels. De plus, quand les copains nous passent des logiciels sur un CD, on ne se pose pas trop de questions et on les installe, parfois illicitement. La transition entre un monde propriétaire auquel l’utilisateur est habitué et les logiciels libres doit être la plus douce possible, pour éviter la confusion et pour maximiser le bénéfice. GGWin se situe dans cette transition.

Monde propriétaire -> Changement de quelques applications pour des équivalents libres -> Découverte de plus de logiciels libres -> Changement de la couche OS

fig. 1 - la transition vers un monde libre

GGWin est une compilation de logiciels libres pour MS Windows, distribuée sur un CD, avec des descriptions en plusieurs langues. Ce moyen de distribution permet d’atteindre les gens qui n’ont pas de connexion Internet aussi fiable que la nôtre. Une ligne téléphonique interrompue ne peut donc pas empêcher la diffusion des logiciels libres. Il est clair que GGWin est également disponible sur le Net.

Historique de GGWin

Suite aux multiples demandes de logiciels tournant sous Linux (typiquement LaTeX, Emacs ou gcc) et après une petite recherche sur le Net nous nous sommes rendu compte que quelques passionnés avaient profité de l’ouverture du code source de ces logiciels pour les porter vers Windows. Par la suite, nous avons gravé des CD et pour éviter de refaire à chaque demande un CD, nous avons eu l’idée de créer une compilation de logiciels libres pour Windows. GNUWin était né.
Comme on était un groupe restreint et que le public visé était les nouveaux étudiants, on a décidé de générer le CD à partir de fichiers XML écrits par nous-mêmes. Chaque contributeur devait écrire ses fichiers XML, ajouter l’exécutable, comprimer le tout dans un fichier .tar.gz et déposer ce dernier sur un serveur. Ce n’était pas très convivial comme interface, ni attirant pour d’autres contributions ! Comme le contenu du CD était écrit en HTML sur un serveur publiquement accessible, il a trouvé son chemin dans la base de données de Google. Par la suite le trafic sur ce serveur a continué d’augmenter et nous avons reçu des encouragements et même des commandes de CD de la France. Suite à ce succès, nous nous sommes décidés à retenter l’expérience, mais cette fois en quatre langues. Pour faire ce travail, on avait besoin de plus de monde, donc il fallait améliorer l’interface. Ivo Blöchliger a créé une interface Web utilisant Perl/MySQL. Dix personnes ont commencé à travailler sur le projet. Comme la première version de GNUWin, GNUWin II est également entièrement accessible via le Web, hébergée sur la machine de travail d’un assistant. Début octobre 2002, on se faisait slashdotter... Ensuite, le projet a grandi, plusieurs personnes nous ont rejointes et l’interface Web n’était plus adaptée pour différentes raisons :

  • il manquait un concept de hiérarchie parmi les contributeurs : le dernier arrivé aurait pu effacer les descriptions des fondateurs par exemple ;
  • certaines actions demandaient l’intervention d’Ivo. En plus, le projet a changé de nom : comme les applications ne sont pas toutes sous la GNU General Public License, et que nous ne sommes pas liés avec la Free Software Foundation, le nom GNUWin n’était pas justifié et GGWin a été choisi comme successeur.

Slashdotter

Slashdot.org est un site d’information incontournable pour tous les fans des technologies Internet. Plusieurs millions d’utilisateurs le consultent et plusieurs centaines d’articles sont soumis quotidiennement. Quand un site est mentionné par Slashdot, il peut arriver qu’un trop grand nombre d’internautes le consulte en même temps, ce qui peut le bloquer occasionnellement. On dit alors qu’il est slashdotté.

La nouvelle interface de construction : vers la pérennité du code

On a décidé de refaire l’interface de construction en pensant dès le début à :

  • éviter que le code dépende d’une personne ;
  • assurer la pérennité du projet ;
  • inclure le concept de hiérarchie parmi les contributeurs afin d’éviter qu’un contributeur débutant fasse des dégâts.

  • Le premier point déjà pose un gros problème : il faut placer un code sur un serveur CVS ou similaire.
    Parmi les développeurs de GGWin il y a des personnes externes à l’EPFL, ce qui signifie que le serveur en question doit être accessible depuis l’extérieur. Les solutions suivantes se présentent :
  • une Forge sur une machine ouverte à l’extérieur, par exemple un serveur d’institut ou la machine d’un assistant ;
  • une Forge fournie par l’EPFL, qui pourrait héberger aussi d’autres projets ;
  • une Forge externe à l’EPFL.

  • La première est une très mauvaise idée, car alors le code dépendrait d’une personne. La dernière est un peu risquée : l’EPFL perdrait son importance dans le projet. La deuxième est la meilleure, mais malheureusement il n’y a pas de Forge de l’EPFL. De nombreux groupes en possèdent une dans leur coin par contre : cette dernière est une solution envisageable pour nous, mais il faudra garder des rapports avec le groupe en question.

Qu’est-ce qu’une Forge ?

Dans l’informatique, ce n’est pas une fabrique de fer, mais du code. Ces sites offrent principalement des outils de gestion de développement tels que des outils de versioning (gestion de versions), des mailing-list (listes de diffusion), et un bug tracker (suivi des bugs et tâches en suspens). La Forge la plus connue est sourceforge.net, hébergeant plus de 100’000 projets open-source (bien que quelques-uns soient abandonnés). Pour répondre à des besoins particuliers, beaucoup de sites similaires ont ensuite débuté, par exemple Savannah.gnu.org et GNA.org. Les trois Forges mentionnées sont ouvertes à Monsieur tout le monde.

Donc, en attendant que l’EPFL ouvre une Forge nous nous sommes contentés de la dernière solution en veillant à ce que le projet ne s’échappe pas sans nous...
Nous avons donc réussi à avoir une place sur GNA ! c, une Forge européenne (pas besoin d’aller jusqu’aux États-Unis quand même). GNA ! offre un service d’hébergement de code source avec versioning par CVS et depuis peu aussi avec Subversion, la possibilité de créer des listes de diffusion, un suivi de bugs et de tâches.

Quels outils pour l’interface de construction ?

Après des discussions, on a décidé de créer notre interface avec ce qu’il y a de plus standard : PHP/MySQL et de rendre l’interface de construction la plus générale possible : un serveur standard doit pouvoir l’héberger.
L’interface de construction se divise en trois parties principales :

  • l’interface de construction en soi, qui permet de gérer les applications et leurs descriptions ;
  • le script qui à partir d’une base de données, génère les pages Web qui vont composer GGWin. Ces pages seront ainsi distribuées sur le CD, mais elles peuvent également être consultées sur le Web ;
  • l’ISO-maker : un script qui génère les CDs à partir du choix des langues et des groupes d’applications.

Une fois l’interface de construction terminée, on sera prêt à accueillir les contributeurs qui pourront s’inscrire tout seuls au projet par la page d’authentification.

JPEG - 3.8 ko
fig.1
invitation à l’autentification

Conception et utilisation de l’interface

Pour l’utilisateur de GGWin le site sera structuré comme suit :

  • des articles sur les logiciels libres ;
  • des pages d’informations (et d’autopromotion) écrites par les contributeurs ;
  • une collection d’applications.

La partie la plus importante sera la collection d’applications, puisque pour chaque application on aura des descriptions (une pour chaque langue !), des installateurs et éventuellement des sources. Chaque contributeur doit pouvoir ajouter des objets (articles, pages d’informations, applications, descriptions, installateurs, sources,...). Les objets de base sont les applications et tout ce qui leur est lié (descriptions, installateurs, sources).
Les contributeurs ne sont pas tous égaux aux yeux de l’interface : c’est un peu comme chez les scouts, il faut démontrer que l’on est fiable pour gagner des niveaux. On débute au niveau contributeur junior. Un contributeur junior a uniquement le droit d’ajouter des objets de base. Après avoir prouvé sa bonne volonté, le contributeur junior devient contributeur et peut aussi ajouter des articles. Suivent le contributeur expérimenté (peut ajouter des pages d’information), le supercontributeur (peut ajouter des langues et des sections) et le gourou (a plusieurs pouvoirs, parmi lesquels l’administration des contributeurs).
On a fait attention à la simplicité de l’interface de construction. Ceci pour pouvoir encourager de nombreuses personnes de langues différentes à devenir des contributeurs. L’utilisation de l’interface ne demande que des connaissances générales. La gestion d’une application est bien structurée, et les descriptions s’écrivent en mode WYSIWYG.

JPEG - 9.4 ko
fig. 2
exemple d’interface pour contributeur avancé : gestion des langues. Remarquer les possibilités d’interaction énumérées en haut.
JPEG - 6.6 ko
fig. 3
exemple d’interface pour contributeur junior : ajout d’une application. Remarquer les possibilités d’interaction limitées par rapport à la fig. 2

Ce que nous réserve le futur

Finis les examens, les développeurs auront le temps de se pencher sur le code. Pour la rentrée, on aura une interface de construction et on pourra commencer à contribuer. On espère avoir une première release de l’ISO pour le début de l’année prochaine. Vous êtes les bienvenus pour participer aux discussions autour de GGWin sur la page ggwin.epfl.ch

Référence

  • Paolo Attivissimo : L’Acchiappavirus, Pocket Apogeo 2004, IBSN 88-503-2263-1
  • Logiciel de gestion de versions, définition dans Wikipédia

PS : cet article a été écrit de façon collaborative en utilisant SpiKini, un Wiki rattaché à SPIP, Système de Publication pour l’Internet, utilisé pour le site de GNU Generation.



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.