Development
Marionnet is free software, distributed under the GNU GPL, version 2 or later. It is developed on Launchpad, where the source repository and the bug tracker live.
The sources
The sources are in a public git repository, which you can clone with:
git clone https://git.launchpad.net/marionnet
The key that signs Marionnet’s apt and dnf repositories also comes from this repository.
The installation guide asks you to check its fingerprint against a source other than this site:
whoever controlled this server could replace both the packages and the fingerprint.
Building Marionnet
Marionnet is built with OCaml 5.4.1, installed through opam, and the camlp4 preprocessor. On a fresh clone, three commands are enough:
make dependencies
dune build
make install-final-as-root
The first one installs the distribution packages, then the opam switch (the project’s own
OCaml environment) and the opam packages. The last one calls sudo itself, for the only step
that needs it. Section 6 of the full installation guide
details these steps, as well as installing inside the opam switch for testing.
Reporting a bug
Defects are reported on Launchpad’s bug tracker (a Launchpad account is needed). Say which distribution you use, how you installed Marionnet, and what you did just before the problem.
Under the hood: what changed in 2026
- dune: the project moved from bzr and ocamlbuild to git and dune. A
dune buildis enough on a fresh clone: it also builds the camlp4 preprocessors, the C code and the UML tools. - OCaml 5: Marionnet is compiled with OCaml 5.4.1. It had long stayed on a version 4, the last one camlp4 was believed to support.
- A text project format: a
.marproject saved today describes the network in JSON, no longer as OCaml binary data. It can be read, compared (diff) and kept under version control; projects in the older formats still open (thev3format). - The User Mode Linux tools are in the repository: the mconsole client, the consoles'
port-helperand the tool that merges copy-on-write disks come fromuml-utilities, frozen since 2007. They are now compiled with Marionnet, and fixed where they no longer passed today’s compilers or systems; Marionnet no longer depends on that package. To talk to its virtual machines it does not even call the client any more: it speaks the mconsole protocol itself, in OCaml. - Bundled libraries: ocamlbricks, the OCaml library written for Marionnet, and bashbricks, its counterpart for Bash scripts, are in the repository. The graphical interface is GTK 3, through lablgtk3.
- Replayable proofs: nearly thirty driven-session benches each check one fixed defect (a
bench must fail on the code from before), on any workstation, with no guest system and no
privilege. More than half of them drive Marionnet by script, through its control channel
(
--control-socket).
