Skip to content

Releases: mirage/mirage

logging

29 Apr 13:44
Compare
Choose a tag to compare
  • Add logging support. A new reporter parameter to register is now
    available. This parameter defines how to configure the log reporter,
    using Logs and Mirage_logs. Log reporters can also be configured
    at configuration AND runtime using on the new -l or --logs
    command-line argument. (#534, by @samoht, @talex5 and @Drup)
  • Allow to disable command-line parsing at runtime. There is a new
    argv parameter to the register function to allow to pass custom
    command-line argument parsing devices. Use register ~argv:no_argv
    to disable command-line argument parsing. (#493, by @samoht and @Drup)

Independent ICMP

06 Apr 12:09
Compare
Choose a tag to compare
  • Define an ICMP and ICMPV4 module type. ICMPV4 is included in, and surfaced by, the STACKV4 module type. The previous default behavior of the IPv4 module with respect to ICMP is preserved by STACKV4 and the tcpip_stack_direct function provided by mirage. (#523, by @yomimono)
  • Explicitly require OCaml compiler version 4.02.3 in opam files for mirage-types and mirage.

Regression fix

29 Apr 13:02
Compare
Choose a tag to compare
  • Fix another regression introduced in 2.7.1 which enable
    -warn-error by default. This is now controlled by a
    --warn-error flag on mirage configure. Currently it's
    default value is [false] but this might change in future
    versions (#520)

Regression fix

29 Apr 13:02
Compare
Choose a tag to compare
  • Fix regression introduced in 2.7.1 which truncates the ouput of
    opam install and breaks opam depext (#519, by @samoht)

No more camlp4

17 Mar 22:28
Compare
Choose a tag to compare
  • Improve the Dockerfile (#507, by @avsm)
  • Use Astring (by @samoht)
  • Clean-up dependencies automatically added by the tool
    • do not require lwt.syntax, cstruct.syntax and sexplib, which
      should make the default unikernels camlp4-free (#510, #515 by @samoht)
    • always require mirage-platform (#512, by @talex5)
    • ensure that mirage-types >= 2.6.0 and mirage-types-lwt are
      installed
  • Check that the OCaml compiler is at least 4.02.3 (by @samoht)

Functoria release

26 Feb 15:55
Compare
Choose a tag to compare

The mirage tool is now based on functoria.
See https://mirage.io/blog/introducing-functoria for full details.

  • Command line interface: The config file must be passed with the -f option
    (instead of being just an argument).

  • Two new generic combinators are available, generic_stack and generic_kv_ro.

  • get_mode is deprecated. You should use keys instead. And in particular
    Key.target and Key.is_xen.

  • add_to_ocamlfind_libraries and add_to_opam_packages are deprecated. Both
    the foreign and the register functions now accept the ~libraries and
    ~packages arguments to specify library dependencies.

  • If you were using tls without the conduit combinator, you will be
    greeted during configuration by a message like this:

    The "nocrypto" library is loaded but entropy is not enabled!
    Please enable the entropy by adding a dependency to the nocrypto device.
    You can do so by adding ~deps:[abstract nocrypto] to the arguments of Mirage.foreign.
    

    Data dependencies (such as entropy initialization) are now explicit.
    In order to fix this, you need to declare the dependency like so:

    open Mirage
    
    let my_functor =
    let deps = [abstract nocrypto] in
    foreign ~deps "My_Functor" (foo @-> bar)

    My_functor.start will now take an extra argument for each
    dependencies. In the case of nocrypto, this is ().

  • Remove nat-script.sh from the scripts directory, to be available
    as an external script.

Improved support for `xl` config files

09 Sep 08:45
Compare
Choose a tag to compare
  • Xen: improve the .xl file generation. We now have
    • name.xl: this has sensible defaults for everything including the
      network bridges and should "just work" if used on the build box
    • name.xl.in: this has all the settings needed to boot (e.g. presence of
      block and network devices) but all the environmental dependencies are
      represented by easily-substitutable variables. This file is intended for
      production use: simply replace the variables for the paths, bridges, memory
      sizes etc. and run xl create as before.

Better ARP and tar-formatted block devices

30 Jul 00:03
Compare
Choose a tag to compare
  • Better ARP support. This needs mirage-tcpip.2.6.0 (#419, by @yomimono)
    • [mirage-types] Remove V1.IPV4.input_arp
    • [mirage-types] Expose V1.ARP and V1_LWT.ARP
    • Expose a Mirage.arp combinator
  • Provide noop configuration for default_time (#435, by @yomimono)
  • Add Mirage.archive and Mirage.archive_of_files to support attaching files
    via a read-only tar-formatted BLOCK (#432, by @djs55)
  • Add a .merlin file (#428, by @Drup)

Make FS.page_aligned_buffer less abstract in mirage-types

17 Jul 15:25
Compare
Choose a tag to compare
  • [mirage-types] Expose V1_LWT.FS.page_aligned_buffer = Cstruct.t

TLS release

11 Jun 21:07
Compare
Choose a tag to compare
  • Change the type of the Mirage.http_server combinator. The first argument
    (the conduit server configuration) is removed and should now be provided
    at compile-time in unikernel.ml instead of configuration-time in
    config.ml:

    (* [config.ml] *)
    (* in 2.4 *) let http = http_server (`TCP (`Port 80)) conduit
    (* in 2.5 *) let http = http_server conduit
    
    (* [unikernel.ml] *)
    let start http =
    (* in 2.4 *) http (S.make ~conn_closed ~callback ())
    (* in 2.5 *) http (`TCP 80) (S.make ~conn_closed ~callback ())
  • Change the type of the Mirage.conduit_direct combinator.
    Previously, it took an optional vchan implementation, an optional
    tls immplementation and an optional stackv4 implemenation. Now,
    it simply takes a stackv4 implementation and a boolean to enable
    or disable the tls stack. Users who want to continue to use
    vchan with conduit should now use the Vchan functors inside
    unikernel.ml instead of the combinators in config.ml. To
    enable the TLS stack:

    (* [config.ml] *)
    let conduit = conduit_direct ~tls:true (stack default_console)
    
    (* [unikernel.ml] *)
    module Main (C: Conduit_mirage.S): struct
    let start conduit =
      C.listen conduit (`TLS (tls_config, `TCP 443)) callback
    end
  • [types] Remove V1.ENTROPY and V1_LWT.ENTROPY. The entropy is now
    handled directly by nocrypto.0.4.0 and the mirage-tool is only responsible to
    call the Nocrypto_entropy_{mode}.initialize function.

  • Remove Mirage.vchan, Mirage.vchan_localhost, Mirage.vchan_xen and
    Mirage.vchan_default. Vchan users need to adapt their code to directly
    use the Vchan functors instead of relying on the combinators.

  • Remove Mirage.conduit_client and Mirage.conduit_server types.

  • Fix misleading "Compiling for target" messages in mirage build
    (#408 by @lnmx)

  • Add --no-depext to disable the automatic installation of opam depexts (#402)

  • Support @name/file findlib's extended name syntax in xen_linkopts fields.
    @name is expanded to %{lib}%/name

  • Modernize the Travis CI scripts