Marionnet -- a virtual network laboratory -- precompiled
========================================================

  artefact : marionnet_1.0.423-r997_amd64_glibc2.36
  version  : 1.0.423, git revision 997
  built on : amd64, against glibc2.36   # the floor, read where it is written:
                                                  # in the artefact name (episode 12)
  built the: 2026-09-08 13:43 UTC

WHAT THIS IS
  The application only. The guest filesystems and the UML kernels are published as separate
  artefacts (filesystems_*.tar.*, kernels_*.tar.*) beside this one, because they weigh
  gibibytes and change on their own schedule. Marionnet starts without them, and says so.

INSTALL
  ./install.sh --prefix /usr/local          (as root; --help for the options)

  install.sh copies bin/ and share/ under the prefix, writes /etc/marionnet/marionnet.conf
  -- which is what lets this tarball live anywhere, the prefix compiled in being only a
  default -- and installs the scoped sudoers rule Marionnet needs to build its taps.

  share/doc/marionnet/ travels with it too: INSTALL.md (the three channels, the guest images,
  the sudoers rule, and how to remove all of it) and its French translation INSTALL.FR.md,
  the teacher's guide, the guide to the control
  channel and its runnable examples, the exam mode, the lab-design page an AI agent is told
  to follow, the .mar format, and a complete replayable lab (labs/session-7/). The example
  scripts are installed executable; the documents cite each other by relative path, so they
  can be read where they are.

  share/bash-completion/completions/ travels with it: the clients of the control channel
  (mrnctl, mrn-check, mrn2sh, mrn-verify...) complete their verbs and the names of the
  running components, in a new shell, provided the prefix is one bash-completion looks in
  (/usr, /usr/local) and jq is there.

RUN
  marionnet                    the bare name, and the one every page of the delivered
                               documentation types (marionnet --exam, marionnet -r lab.mar,
                               marionnet --control-socket ...). It is a symlink to
                               marionnet.native, the name dune installs: same program.

WHAT THE MACHINE MUST HAVE (Debian/Ubuntu package names)
  vde2 graphviz uml-utilities xterm iproute2 sudo x11-xserver-utils xauth jq socat dnsmasq-base xz-utils libgtksourceview-3.0-1

  The same list, one name per line and meant to be read by a program rather than by you,
  is in REQUIRED-PACKAGES-RUNTIME next to me. install.sh looks at it: by default it merely
  NAMES what is missing; with --with-deps it installs it; with --no-deps it skips the look.

  By hand, on a Debian-like system: sudo apt install vde2 graphviz uml-utilities xterm iproute2 sudo x11-xserver-utils xauth jq socat dnsmasq-base xz-utils libgtksourceview-3.0-1

REMOVE
  marionnet-sudoers.sh uninstall
  rm -rf <prefix>/share/marionnet <prefix>/share/doc/marionnet /etc/marionnet
  rm -f  <prefix>/bin/marionnet.native <prefix>/bin/marionnet* <prefix>/bin/mrn* \
         <prefix>/bin/bashbricks.sh
  rm -f  <prefix>/share/bash-completion/completions/{marionnet-*,mrn*}

LICENCE
  GNU General Public License, version 2 or later. Source: https://www.marionnet.org
