Développement
Marionnet est un logiciel libre, distribué sous la licence GNU GPL, version 2 ou ultérieure. Son développement se fait sur Launchpad, où vivent le dépôt des sources et le suivi des bugs.
Les sources
Les sources sont dans un dépôt git public, qui se clone ainsi :
git clone https://git.launchpad.net/marionnet
C’est aussi de ce dépôt que vient la clef qui signe les dépôts apt et dnf de Marionnet. Le
guide d’installation demande en effet de vérifier son empreinte auprès d’une source qui n’est pas
ce site : qui contrôlerait ce serveur pourrait y remplacer à la fois les paquets et l’empreinte.
Compiler Marionnet
Marionnet se compile avec OCaml 5.4.1, installé par opam, et le préprocesseur camlp4. Sur un clone frais, trois commandes suffisent :
make dependencies
dune build
make install-final-as-root
La première installe les paquets de la distribution, puis le switch opam (c’est-à-dire
l’environnement OCaml propre au projet) et les paquets opam. La dernière appelle sudo elle-même,
pour la seule étape qui en a besoin. La section 6 du
guide d’installation complet détaille ces
étapes, ainsi que l’installation dans le switch opam, pour les essais.
Signaler un bug
Les défauts se signalent sur le suivi des bugs de Launchpad (un compte Launchpad est nécessaire). Dites quelle distribution vous utilisez, comment vous avez installé Marionnet, et ce que vous avez fait juste avant le problème.
Sous le capot : ce qui a changé en 2026
- dune : le projet a quitté bzr et ocamlbuild pour git et dune. Un
dune buildsuffit sur un clone frais : il construit aussi les préprocesseurs camlp4, le code C et les outils UML. - OCaml 5 : Marionnet est compilé avec OCaml 5.4.1. Il était resté longtemps sur une version 4, la dernière où l’on croyait camlp4 disponible.
- Un format de projet texte : un projet
.marenregistré aujourd’hui décrit le réseau en JSON, et non plus par des données binaires d’OCaml. Il se lit, se compare (diff) et se versionne ; les projets des anciens formats s’ouvrent toujours (le formatv3, en anglais). - Les outils de User Mode Linux sont dans le dépôt : le client mconsole, le
port-helperdes consoles et l’outil de fusion des disques copy-on-write viennent deuml-utilities, gelé depuis 2007. Ils sont désormais compilés avec Marionnet, et corrigés là où ils ne passaient plus les compilateurs ou les systèmes d’aujourd’hui ; Marionnet ne dépend plus de ce paquet. Pour parler à ses machines virtuelles, il n’appelle même plus le client : il parle le protocole mconsole lui-même, en OCaml. - Des bibliothèques embarquées : ocamlbricks, la bibliothèque OCaml écrite pour Marionnet, et bashbricks, son pendant pour les scripts Bash, sont dans le dépôt. L’interface graphique est en GTK 3, par lablgtk3.
- Des preuves rejouables : près de trente bancs de sessions pilotées vérifient chacun un
défaut corrigé (un banc doit échouer sur le code d’avant), sur n’importe quel poste, sans
système invité ni privilège ; plus de la moitié pilotent Marionnet par script, au moyen de son
interface de pilotage (
--control-socket).
