package mirage-types
- v3.5.2 (2019-08-22)
- v3.5.1 (2019-07-11)
- v3.5.0 (2019-03-03)
- v3.4.1 (2019-02-05)
- v3.4.0 (2019-01-11)
- 3.3.1 (2018-11-21)
- 3.3.0 (2018-11-18)
- 3.2.0 (2018-09-23)
- 3.1.1 (2018-08-01)
- 3.1.0 (2018-06-20)
- 3.0.8 (2017-12-19)
- 3.0.7 (2017-11-24)
- 3.0.6 (2017-11-16)
- 3.0.5 (2017-08-08)
- 3.0.4 (2017-06-15)
- 3.0.2 (2017-03-15)
- 3.0.1 (2017-03-14)
- 3.0.0 (2017-02-23)
- 2.9.1 (2016-07-20)
- 2.9.0 (2016-04-29)
- 2.8.0 (2016-04-04)
- 2.7.3 (2016-03-20)
- 2.7.2 (2016-03-20)
- 2.7.1 (2016-03-17)
- 2.7.0 (2016-02-17)
- 2.6.1 (2015-09-08)
- 2.6.0 (2015-07-28)
- 2.5.1 (2015-07-17)
- 2.5.0 (2015-06-10)
- 2.4.0 (2015-05-05)
- 2.3.0 (2015-03-10)
- 2.2.1 (2015-01-29)
- 2.2.0 (2014-12-18)
- 2.1.1 (2014-12-10)
- 2.1.0 (2014-12-07)
- 2.0.1 (2014-11-21)
- 2.0.0 (2014-11-05)
- 1.2.0 (2014-07-05)
- 1.1.3 (2014-06-15)
- 1.1.2 (2014-04-01)
- 1.1.1 (2014-02-21)
- 1.1.0 (2014-02-05)
- 1.0.4 (2014-01-14)
- 1.0.3 (2013-12-18)
- 1.0.2 (2013-12-10)
- 1.0.1 (2013-12-09)
- 1.0.0 (2013-12-09)
- 0.10.0 (2013-12.08)
- 0.9.7 (2013-08-09)
- 0.9.6 (2013-07-26)
- 0.9.5 (2013-07-18)
- 0.9.4 (2013-07-09)
- 0.9.3 (2013-06-12)
- 0.9.2 (2013-03-28)
- 0.9.1 (2013-02-13)
- 0.9.0 (2013-02-12)
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=0ab6ee37fa44c05cc93ecf2456dabdbbe80935f11e82179d75ee64913cffc3d1
sha512=ecadf2266982b60b872b862c7c77c11c66b07e44110d98ed63a6e0e12570e3d6d0be06a519fd3a4edc8c184fe010055d7435d62491e22549a4776ac2d530bd41
doc/CHANGES.html
v3.6.0 (2019-10-02)
solo5 0.6 support for multiple devices (#993, by @mato) please read https://github.com/Solo5/solo5/blob/v0.6.2/CHANGES.md for detailed changes observable mirage changes:
- new target
-t sptfor sandboxed processed tender (seccomp on Linux) - new functions Mirage_key.is_solo5 and Mirage_key.is_xen, analogue to Mirage_key.is_unix
- new target
- respect verbosity when calling
ocamlbuild-- verbose if log level is info or debug (#999, by @mato)
v3.5.2 (2019-08-22)
- Adapt to conduit 2.0.0 release, including dns 4.0.0 (#996, by @hannesm)
- Adjust mirage-xen constraints to < 5.0.0 (#995, by @reynir)
v3.5.1 (2019-07-11)
- Adapt to new tracing API (#985, by @talex5)
- Remove stubs for qrexec and qubes gui (qubes 3 is end of life, qubes 4 makes it configurable) (#984, by @linse & @yomimono)
- Update mirage-logs and charrua-client-mirage version constraints (#982, by @hannesm)
- Remove unused dockerfile, travis updates (#982 #990, by @hannesm)
v3.5.0 (2019-03-03)
- Rename Mirage_impl_kv_ro to Mirage_impl_kv, and introduce
rw(#975, by @hannesm) - Adapt to mirage-kv 2.0.0 changes (#975, by @hannesm)
- Adapt to mirage-protocols and mirag-net 2.0.0 changes (#972, by @hannesm)
- mirage-types-lwt: remove unneeded io-page dependency (#971, by @hannesm)
- Fix regression introduced in 3.4.0 that "-l *:debug" did no longer work (#970, by @hannesm)
- Adjust various upper bounds (mirage-unix, cohttp-mirage, mirage-bootvar-xen) (#967, by @hannesm)
v3.4.1 (2019-02-05)
- Provide a httpaf_server device, and a cohttp_server device (#955, by @anmonteiro)
- There can only be a single prng device in a unikernel, due to entropy harvesting setup (#959, by @hannesm)
- Cleanup zarith-freestanding / gmp-freestanding dependencies (#964, by @hannesm)
- ethernet is now a separate package (#965, by @hannesm)
- arp now uses the mirage/arp repository by default, the tcpip.arpv4 implementation was removed in tcpip 3.7.0 (#965, by @hannesm)
v3.4.0 (2019-01-11)
- use ipaddr 3.0 without s-expression dependency (#956, by @hannesm)
- use mirage-clock 2.x and tcpip 3.6.x libraries (#960, #962, by @hannesm)
- default to socket stack on unix and macos (#958, by @hannesm)
- use String.split_on_char in mirage-runtime to avoid astring dependency (#957, by @hannesm)
- add build-dependency on mirage to each unikernel (#953, by @hannesm)
3.3.1 (2018-11-21)
- fix regression: --yes was not passed to opam in 3.3.0 (#950, by @hannesm)
3.3.0 (2018-11-18)
New target: (via solo5) Genode: "Genode is a free and open-source operating system framework consisting of a microkernel abstraction layer and a collection of userspace components. The framework is notable as one of the few open-source operating systems not derived from a proprietary OS, such as Unix. The characteristic design philosophy is that a small trusted computing base is of primary concern in a security oriented OS." (from wikipedia, more at https://genode.org/ #942, by @ehmry)
User-visible changes
use mirage-bootvar-unix instead of OS.Env.argv (deprecated since mirage-{xen,unix,os-shim}.3.1.0, mirage-solo5.0.5.0) on unix (#931, by @hannesm)
WARNING: this leads to a different semantics for argument passing on Unix: all arguments are concatenated (using a whitespace " " as separator), and split on the whitespace character again (by parse-argv). This is coherent with all other backends, but the whitespace in "--hello=foo bar" needs to be escaped now.
mirage now generates upper bounds for hard-coded packages that are used in generated code. When we now break the API, unikernels which are configured with an earlier version won't accept the new release of the dependency. This means API breakage is much smoother for us, apart from that we now track version numbers in the mirage utility. The following rules were applied for upper bounds:
- if version < 1.0.0 then ~min:"a.b.c" ~max:"a.(b+1).0"
- if version > 1.0.0 then ~min:"a.b.c" ~max:"(a+1).0.0"`
- exceptions: tcpip (~min:"3.5.0" ~max:"3.6.0"), mirage-block-ramdisk (unconstrained)
WARNING: Please be careful when release any of the referenced libraries by taking care of appropriate version numbering. (initial version in #855 by @avsm, final #946 by @hannesm)
- since functoria.2.2.2, the "package" function (used in unikernel configuration) is extended with the labeled argument ~pin that receives a string (e.g. ~pin:"git+https://github.com/mirage-random/mirage-random.git"), and is embedded into the generated opam file as pin-depends
- mirage-random-stdlib is now used for default_random instead of mirage-random (which since 1.2.0 no longer bundles the stdlib Random module). mirage-random-stdlib is not cryptographically secure, but "a lagged-Fibonacci F(55, 24, +) with a modified addition function to enhance the mixing of bits.", which is now seeded using mirage-entropy. If you configure your unikernel with "mirage configure --prng fortuna" (since mirage 3.0.0), a cryptographically secure PRNG will be used (read more at https://mirage.io/blog/mirage-entropy)
- mirage now revived its command-line "--no-depext", which removes the call to "opam depext" in the depend and depends target of the generated Makefile (#948, by @hannesm)
- make depend no longer uses opam pin for opam install --deps-only (#948, by @hannesm)
- remove unused io_page configuration (initial discussion in #855, #940, by @hannesm)
- charrua-client requires a Mirage_random interface since 0.11.0 (#938, by @hannesm)
- split implementations into separate modules (#933, by @emillon)
- improved opam2 support (declare ocaml as dependency #926)
- switch build system to dune (#927, by @emillon)
- block device writes has been fixed in mirage-solo5.0.5.0
3.2.0 (2018-09-23)
- adapt to solo5 0.4.0 changes (#924, by @mato) Upgrading from Mirage 3.1.x or earlier
Due to conflicting packages, opam will not upgrade mirage to version 3.2.0 or newer if a version of mirage-solo5 older than 0.4.0 is installed in the switch. To perform the upgrade you must run opam upgrade mirage explicitly.
Changes required to rebuild and run ukvm unikernels
As of Solo5 0.4.0, the ukvm target has been renamed to hvt. If you are working out of an existing, dirty, source tree, you should initially run:
mirage configure -t hvt
mirage clean
mirage configure -t hvtand then proceed as normal. If you are working with a clean source tree, then simply configuring with the new hvt target is sufficient:
mirage configure -t hvt
Note that the build products have changed:
The unikernel binary is now named <unikernel>.hvt, the ukvm-bin binary is now named solo5-hvt.
- adapt to mirage-protocols, mirage-stack, tcpip changes (#920, by @hannesm)
This is a breaking change: mirage 3.2.0 requires mirage-protocols 1.4.0, mirage-stack 1.3.0, and tcpip 3.5.0 to work (charru-client-mirage 0.10 and mirage-qubes-ipv4 0.6 are adapted to the changes). An older mirage won't be able to use these new libraries correctly. Conflicts were introduced in the opam-repository.
In more detail, direct and socket stack initialisation changed, which is automatically generated by the mirage tool for each unikernel (as part of main.ml). A record was built up, which is no longer needed.
Several unneeded type aliases were removed: netif from Mirage_protocols.ETHIF ethif and prefix from Mirage_protocols.IP ip from Mirage_protocols.{UDP,TCP} netif and 'netif config from Mirage_stack.V4 'netif stackv4_config and socket_stack_config in Mirage_stack
- squash unnecessary warning from
mirage build(#916, by @mato)
3.1.1 (2018-08-01)
- for the unix target, add
-tags thread, as done for the mac osx target (#861, suggested by @cfcs) - bump minimum mirage-solo5* and solo5-kernel* to 0.3.0 (#914, by @hannesm, as suggested by @mato)
- use the exposed signature in functoria for Key modules (#912, by @Drup)
- add ?group param to all generic devices (#913, by @samoht)
3.1.0 (2018-06-20)
- solo5 v0.3.0 support (#906, by @mato @kensan @hannesm): The major new user-visible features for the Solo5 backends are: ukvm: Now runs natively on FreeBSD vmm and OpenBSD vmm. ukvm: ARM64 support. muen: New target, for the Muen Separation Kernel. ukvm: Improved and documented support for debugging Solo5-based unikernels.
- generate libvirt.xml for virtio target (#903, by @bramford)
- don't make xen config documents for target qubes (#895, by @yomimono)
- use a path pin when making depends (#891, by @yomimono)
- move block registration to
configuresection (#892, by @yomimono) - allow to directly specifying xenstore ids (#879, by @yomimono)
3.0.8 (2017-12-19)
- when passing block devices to
xen, pass the raw filename rather than trying to infer the xenstore ID (#874, by @yomimono) - make homepage in opam files consistent (#872, by @djs55)
3.0.7 (2017-11-24)
- the released version of
cohttp-mirageis1.0.0(not3.0.0) (#870 by @hannesm)
3.0.6 (2017-11-16)
- remove macOS < yosemite support (#860 by @hannesm)
- rename
mirage-httptocohttp-mirage(#863 by @djs55) See [mirage/ocaml-cohttp#572] - opam: require OCaml 4.04.2+ (#867 by @hannesm)
3.0.5 (2017-08-08)
- Allow runtime configuration of syslog via config keys
--syslog,--syslog-portand--syslog-hostname(#853 via @hannesm). - Switch build of tool and libraries to Jbuilder (by @samoht)
- Fix a warning when connecting to a ramdisk device (#837 by @g2p)
- Fix reference to tar library when using
--kv-ro archive(#848 by @mor1) - Adapt to latest functoria API (#849 by @samoht)
- Add a
--gdbargument for ukvm targets so that debuggers can be attached easily. This allowsmirage configure --gdb -t ukvmto work (@ricarkol in #847). - Adapt to latest functoria (#849 by @samoht)
- Adapt to latest charrua, tcpip (#854 by @yomimono)
- Switch to jbuilder (#850 by @samoht)
Packaging updates for latest opam repository:
- ARP is compatible with MirageOS3 since 0.2.0 (#851 by @hannesm)
3.0.4 (2017-06-15)
- add a --block configure flag for picking ramdisk or file-backed disk
- add lower bounds on packages
- fallback to system
$PKG_CONFIG_PATH - update for mirage-qubes-ipv4
3.0.2 (2017-03-15)
- restore ocamlbuild colors when
TERM <> dumb && Unix.isatty stdout(#814, by @hannesm)
3.0.1 (2017-03-14)
- remove "-color always" from ocamlbuild invocation (bugfix for some scripts interpreting build output) (#811, by @hannesm)
- provide a "random" module argument when invoking IPv6.Make (compat with tcpip 3.1.0) (#801, by @hannesm)
- add a "depends" target to the generated Makefile (controversial and may be removed) (#805, by @yomimono)
- allow qubesdb to be requested in config.ml when the target is xen (#807, by @talex5)
3.0.0 (2017-02-23)
- rename module types modules: V1 -> Mirage_types, V1_LWT -> Mirage_types_lwt (#766, by @yomimono, @samoht, and @hannesm)
- split type signatures and error printers into separate libraries (#755, #753, #752, #751, #764, and several others, by @samoht and @yomimono)
- use mirage-fs instead of ocaml-fat to transform FS into KV_RO (#756, by @samoht)
- changes to simplify choosing an alternate ARP implementation (#750, by @hannesm)
- add configurators for syslog reporter (#749, by @hannesm)
- filter incoming boot-time arguments for all Xen backends, not just QubesOS (#746, by @yomimono)
- give mirage-types-lwt its own library, instead of a mirage-types sublibrary called lwt (#735, by @hannesm)
- remove
formatfunction andFormat_unknownerror from FS module type (#733, by @djs55) - ocamlify FAT name (#723 by @yomimono)
- remove type
errorfrom DEVICE module type (#728, by @hannesm) - UDP requires random for source port randomization (#726 by @hannesm)
- drop "mir-" prefix from generated binaries (#725 by @hannesm)
- BLOCK and FS uses result types (#705 by @yomimono)
- depext fixes (#718 by @mato)
- workflow changes: separate configure, depend, build phases, generate opam file during configure (#703, #711 by @hannesm)
- tap0 is now default_network (#715, #719 by @yomimono, @mato)
- ARP uses result types (#711 by @yomimono)
- ipv4 key (instead of separate ip and netmask) (#707, #709 by @yomimono)
- CHANNEL uses result types (#702 by @avsm)
- no custom myocamlbuild.ml, was needed for OCaml 4.00 (#693 by @hannesm)
- revert custom ld via pkg-config (#692 by @hannesm)
- result types for FLOW and other network components (#690 by @yomimono)
- removed
is_xenkey (#682, by @hannesm) - mirage-clock-xen is now mirage-clock-freestanding (#684, by @mato)
- mirage-runtime is a separate opam package providing common functionality (#681, #615 by @hannesm)
- add
qubestarget for making Xen unikernels which boot & configure themselves correctly on QubesOS. (#553, by @yomimono) - revised V1.CONSOLE interface: removed log, renamed log_s to log (#667, by @hannesm)
- remove Str module from OCaml runtime (#663, in ocaml-freestanding and mirage-xen-ocaml, by @hannesm)
- new configuration time keyword: prng to select the default prng (#611, by @hannesm)
- fail early if tracing is attempted with Solo5 (#657, by @yomimono)
- refactor ipv4, stackv4, and dhcp handling (#643, by @yomimono)
- create xen-related helper files only when the target is xen (#639, by @hannesm)
- improvements to nocrypto handling (#636, by @pqwy)
- disable warning #42 in generated code for unikernels (#633, by @hannesm)
- V1.NETWORK functions return a Result.t rather than polyvars indicating success or errors (#615, by @hannesm)
- remove GNUisms and unnecessary artifacts from build (#623, #627, by @mato and @hannesm)
- remove type
idfromDEVICEmodule type. (#612, by @yomimono and @talex5) - revise the RANDOM signature to provide n random bytes; provide nocrypto_random and stdlib_random (#551 and #610, by @hannesm)
- expose
directas an option forkv_ro. (#607, by @mor1) - require a
memfunction in KV_RO, and addFailureerror variant (#606, by @yomimono) connectfunctions are no longer expected to return polyvars, but rather to raise exceptions ifconnectfails and return the value directly. (#602, by @hannesm)- new documentation using
odig(#591, #593, #594, #597, #598, #599, #600, and more, by @avsm) - change build system to
topkgfromoasis. (#558, #590, #654, #673, by @avsm, @samoht, @hannesm, @dbuenzli) - express io-page dependency of crunch. (#585, by @yomimono and @mato)
- deprecate the CLOCK module type in favor of PCLOCK (POSIX clock) and MCLOCK (a monotonically increasing counter of elapsed nanoseconds). (#548 and #579, by @mattgray and @yomimono)
- emit an ocamlfind predicate that matches the target, reducing the amount of duplication by target required of library authors (#568, by @pqwy)
- implement an
is_unixkey (#575, by @mato) - use an int64 representing nanoseconds as the argument for
TIME.sleep, instead of a float representing seconds. (#547, by @hannesm) - expose new targets
virtioandukvmvia thesolo5project. (#565, by @djwillia, @mato, and @hannesm). - remove users of
base_context, which includes command-line arguments--unixand--xen, andconfig.mlfunctionsadd_to_ocamlfind_librariesandadd_to_opam_packages. As a side effect, fix a long-standing error message bug when invokingmirageagainst aconfig.mlthat does not build. (#560, by @yomimono) - link
libgcc.aonly on ARM & other build improvements (#544, by @hannesm) - allow users to use
crunchon unix withkv_ro; clean up crunch .mlis on clean (#556, by @yomimono) - remove console arguments to network functors (#554, by @talex5 and @yomimono)
- standardize ip source and destination argument names as
srcanddst, and source and destination ports assrc_portanddst_port(#546, by @yomimono) - a large number of documentation improvements (#549, by @djs55)
- require
pseudoheaderfunction for IP module types. (#541, by @yomimono) - always build with
ocamlbuild -r, to avoid repetitive failure message (#537, by @talex5)
2.9.1 (2016-07-20)
- Warn users of command-line arguments
--unixand--xenthat support for these will soon be dropped. Instead, use-t unixand-t xenrespectively. (see https://github.com/mirage/mirage-www/pull/475#issuecomment-233802501) (#561, by @yomimono) - Warn users of functions
add_to_opam_packages pandadd_to_ocamlfind_libraries lthat support for these will soon be dropped. Instead, useregister ~libraries:landregister:~packages:prespectively. (#561, by @yomimono).
2.9.0 (2016-04-29)
- Add logging support. A new
reporterparameter toregisteris now available. This parameter defines how to configure the log reporter, usingLogsandMirage_logs. Log reporters can also be configured at configuration AND runtime using on the new-lor--logscommand-line argument. (#534, by @samoht, @talex5 and @Drup) - Allow to disable command-line parsing at runtime. There is a new
argvparameter to theregisterfunction to allow to pass custom command-line argument parsing devices. Useregister ~argv:no_argvto disable command-line argument parsing. (#493, by @samoht and @Drup)
2.8.0 (2016-04-04)
- 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.
2.7.3 (2016-03-20)
- Fix another regression introduced in 2.7.1 which enable
-warn-errorby default. This is now controlled by a--warn-errorflag onmirage configure. Currently it's default value is [false] but this might change in future versions (#520)
2.7.2 (2016-03-20)
- Fix regression introduced in 2.7.1 which truncates the ouput of
opam installand breaksopam depext(#519, by @samoht)
2.7.1 (2016-03-17)
- Improve the Dockerfile (#507, by @avsm)
- Use Astring (by @samoht)
Clean-up dependencies automatically added by the tool
- do not require
lwt.syntax,cstruct.syntaxandsexplib, which should make the default unikernels camlp4-free (#510, #515 by @samoht) - always require
mirage-platform(#512, by @talex5) - ensure that
mirage-typesandmirage-types-lwtare installed
- do not require
- Turn on more warnings and enable "warning as errors".
- Check that the OCaml compiler is at least 4.02.3 (by @samoht)
2.7.0 (2016-02-17)
The mirage tool is now based on functoria. (#441 #450, by @drup @samoht) 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_modeis deprecated. You should use keys instead. And in particularKey.targetandKey.is_xen.add_to_ocamlfind_librariesandadd_to_opam_packagesare deprecated. Both theforeignand theregisterfunctions now accept the~librariesand~packagesarguments to specify library dependencies.If you were using
tlswithout 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:
```ocaml
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.shfrom the scripts directory, to be available as an external script.
2.6.1 (2015-09-08)
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 boxname.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 runxl createas before.
2.6.0 (2015-07-28)
Better ARP support. This needs
mirage-tcpip.2.6.0(#419, by @yomimono)- [mirage-types] Remove
V1.IPV4.input_arp - [mirage-types] Expose
V1.ARPandV1_LWT.ARP - Expose a
Mirage.arpcombinator
- [mirage-types] Remove
- Provide noop configuration for default_time (#435, by @yomimono)
- Add
Mirage.archiveandMirage.archive_of_filesto support attaching files via a read-only tar-formatted BLOCK (#432, by @djs55) - Add a .merlin file (#428, by @Drup)
2.5.1 (2015-07-17)
- [mirage-types] Expose
V1_LWT.FS.page_aligned_buffer = Cstruct.t
2.5.0 (2015-06-10)
Change the type of the
Mirage.http_servercombinator. The first argument (the conduit server configuration) is removed and should now be provided at compile-time inunikernel.mlinstead of configuration-time inconfig.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_directcombinator. Previously, it took an optionalvchanimplementation, an optionaltlsimmplementation and an optionalstackv4implemenation. Now, it simply takes astackv4implementation and a boolean to enable or disable thetlsstack. Users who want to continue to usevchanwithconduitshould now use theVchanfunctors insideunikernel.mlinstead of the combinators inconfig.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.ENTROPYandV1_LWT.ENTROPY. The entropy is now handled directly bynocrypto.0.4.0and the mirage-tool is only responsible to call theNocrypto_entropy_{mode}.initializefunction. - Remove
Mirage.vchan,Mirage.vchan_localhost,Mirage.vchan_xenandMirage.vchan_default. Vchan users need to adapt their code to directly use theVchanfunctors instead of relying on the combinators. - Remove
Mirage.conduit_clientandMirage.conduit_servertypes. - Fix misleading "Compiling for target" messages in
mirage build(#408 by @lnmx) - Add
--no-depextto disable the automatic installation of opam depexts (#402) - Support
@name/filefindlib's extended name syntax inxen_linkoptsfields.@nameis expanded to%{lib}%/name - Modernize the Travis CI scripts
2.4.0 (2015-05-05)
- Support
mirage-http.2.2.0 - Support
conduit.0.8.0 - Support
tcpip.2.4.0 - Add time and clock parameters to IPv4 (#362, patch from @yomimono)
- Support for
ocaml-tls0.4.0. - Conduit now takes an optional TLS argument, allowing servers to support encryption. (#347)
- Add the ability to specify
Makefile.userto extend the generatedMakefile. Alsoall,buildandcleanare now extensible make targets. - Remove the
mirage runcommand (#379) - Call
opam depextwhen configuring (#373) - Add opam files for
mirageandmirage-typespackages - Fix
mirage --version(#374) - Add a
update-doctarget to the Makefile to easily update the online documentation at http://mirage.github.io/mirage/
2.3.0 (2015-03-10)
- Remove the
IO_PAGEmodule type fromV1. This has now moved into theio-pagepacakge (#356) - Remove
DEVICE.connectfrom theV1module types. When a module is functorised over aDEVICEit should only have the ability to use devices it is given, not to connect to new ones. (#150) - Add
FLOW.error_messageto theV1module types to allow for generic handling of errors. (#346) - Add
IP.uipaddras a universal IP address type. (#361) - Support the
entropyversion 0.2+ interfaces. (#359) - Check that the
opamcommand is at least version 1.2.0 (#355) - Don't put '-classic-display' in the generated Makefiles. (#364)
2.2.1 (2015-01-29)
- Fix logging errors when
mirageoutput is not redirected. (#355) - Do not reverse the order of C libraries when linking. This fixes Zarith linking in Xen mode. (#341).
- Fix typos in command line help. (#352).
2.2.0 (2014-12-18)
Add IPv6 support. This alters some of the interfaces that were previously hardcoded to IPv4 by generalising them. For example:
type v4 type v6
type 'a ip type ipv4 = v4 ip type ipv6 = v6 ip ```
Full support for configuring IPv6 does not exist yet, as this release is intended for getting the type definitions in place before adding configuration support.
2.1.1 (2014-12-10)
- Do not reuse the Unix linker options when building Xen unikernels. Instead, get the linker options from the ocamlfind
xen_linkoptsvariables (#332). Seetcpip.2.1.0for a library that does this for a C binding. - Only activate MacOS X compilation by default on 10.10 (Yosemite) or higher. Older revisions of MacOS X will use the generic Unix mode by default, since the
vmnetframework requires Yosemite or higher. - Do not run crunched filesystem modules through
camlp4, which significantly speeds up compilation on ARM platforms (from minutes to seconds!) (#299).
2.1.0 (2014-12-07)
- Add specific support for
MacOSXas a platform, which enables network bridging on Yosemite (#329). The--unixflag will automatically activate the new target if run on a MacOS X host. If this breaks for you due to being on an older version of MacOS X, then use the new--targetflag to set either Unix, MacOSX or Xen to themirage configurecommand. - Add
mirage.runtimefindlib library and corresponding Mirage_runtime module (#327). - If net driver in STACKV4_direct can't initialize, print a helpful error (#164).
- [xen]: fixed link order in generated Makefile (#322).
- Make
Lwt.tracinginstructions work for Fish shell too by improving quoting (#328).
2.0.1 (2014-11-21)
- Add
register ~tracingto enable tracing with mirage-profile at start-up (#321). - Update Dockerfile for latest libraries (#320).
- Only build mirage-types if Io_page is also installed (#324).
2.0.0 (2014-11-05)
- [types]: backwards incompatible change: CONSOLE is now a FLOW; 'write' has a different signature and 'write_all' has been removed.
- Set on_crash = 'preserve' in default Xen config.
- Automatically install dependencies again, but display the live output to the user.
- Include C stub libraries in linker command when generating Makefiles for Xen.
- Add
Vchan,ConduitandResolvercode generators. - Generate a
*.xescript which can upload a kernel to a XenServer. - Generate a libvirt
*.xmlconfiguration file (#292). - Fix determination of
mirage-xenlocation for paths with spaces (#279). - Correctly show config file locations when using a custom one.
- Fix generation of foreign (non-functor) modules (#293)
1.2.0 (2014-07-05)
The Mirage frontend tool now generates a Makefile with a make depend target, instead of directly invoking OPAM as part of mirage configure. This greatly improves usability on slow platforms such as ARM, since the output of OPAM as it builds can be inspected more easily. Users will now need to run make depend to ensure they have the latest package set, before building their unikernel with make as normal.
- Improve format of generated Makefile, and also colours in terminal output.
- Add
make dependtarget to generated Makefile. - Set
OPAMVERBOSEandOPAMYESin the Makefile, which can be overridden. - Add an
ENTROPYdevice type for strong random sources (#256).
1.1.3 (2014-06-15)
- Build OPAM packages in verbose mode by default.
- [types] Add
FLOWbased onTCPV4. - travis: build mirage-types from here, rather than 1.1.0.
1.1.2 (2014-04-01)
- Improvement to the Amazon EC2 deployment script.
- [types] Augment STACKV4 with an IPV4 module in addition to TCPV4 and UDPV4.
- Regenerate with OASIS 0.4.4 (which adds natdynlink support)
1.1.1 (2014-02-21)
- Man page fixes for typos and terminology (#220).
- Activate backtrace recording by default (#225).
- Fixes in the
V1.STACKV4to expose UDPv4/TCPv4 types properly (#226).
1.1.0 (2014-02-05)
- Add a combinator interface to device binding that makes the functor generation significantly more succinct and expressive. This breaks backwards compatibility with
config.mlfiles from the 1.0.x branches. - Integrate the
mirage-typescode intotypes. This is built as a separate library from the command-line tool, via theinstall-typesMakefile target.
1.0.4 (2014-01-14)
- Add default build tags for annot, bin_annot, principal and strict_sequence.
- Renane
KV_ROtoCrunch
1.0.3 (2013-12-18)
- Do not remove OPAM packages when doing
mirage clean(#143) - [xen] generate a simple main.xl, without block devices or network interfaces.
- The HTTP dependency now also installs
mirage-tcp-*andmirage-http-*. - Fix generated Makefile dependency on source OCaml files to rebuild reliably.
- Support
Fat_KV_RO(a read-only k/v version of the FAT filesystem). - The Unix
KV_ROnow passes through to the underlying filesystem instead of callingcrunch, viamirage-fs-unix.
1.0.2 (2013-12-10)
- Add
HTTPsupport. - Fix
KV_ROconfiguration for OPAM autoinstall.
1.0.1 (2013-12-09)
- Add more examples to the FAT filesystem test case.
- Fix
mirage-tcpip-*support - Fix
mirage-net-*support
1.0.0 (2013-12-09)
- Adapt the latest library releases for Mirage 1.0 interfaces.
0.10.0 (2013-12.08)
- Complete API rewrite
- [xen] XL configuration phase is now created during configure phase, was during run phase.
0.9.7 (2013-08-09)
- Generate code that uses the
Ipaddr.V4interface instead ofNettypes.
0.9.6 (2013-07-26)
- fix unix-direct by linking the unix package correctly (previously it was always dropped).
0.9.5 (2013-07-18)
- completely remove the dependency on obuild: use ocamlbuild everywhere now.
- adapt for mirage-0.9.3 OS.Netif interfaces (abstract type
id). - do not output network config when there are no
ip-*lines in the.conffile. - do not try to install
mirage-fsif there is no filesystem to create. - added
nat-script.shto setup xenbr0 with DNS, DHCP and masqerading under Linux.
0.9.4 (2013-07-09)
- build using ocamlbuild rather than depending on obuild.
- [xen] generate a symbol that can be used to produce stack traces with xenctx.
- mirari run --socket just runs the unikernel without any tuntap work.
- mirari run --xen creates a xl config file and runs
xl create -c unikernel.xl.
0.9.3 (2013-06-12)
- Add a
--socketflag to activate socket-based networking (UNIX only). - Do not use OPAM compiler switches any more, as that's done in the packaging now.
- Use fd-passing in the UNIX backend to spawn a process.
0.9.2 (2013-03-28)
- Install
obuildautomatically in all compiler switches (such as Xen). - Only create symlinks to
mir-foofor a non-Xen target. - Add a
mirari cleancommand. - Add the autoswitch feature via
mirari --switch=<compiler>or the config file.
0.9.1 (2013-02-13)
- Fix Xen symlink upon build.
- Add a
--no-installoption tomirari configureto prevent invoking OPAM automatically.
0.9.0 (2013-02-12)
- Automatically install
mirage-fspackage if a filesystem crunch is requested. - Remove the need for
mir-runby including the final Xen link directly in Mirari. - Add support for building Xen variants.
- Initial import of a unix-direct version.
- v3.5.2 (2019-08-22)
- v3.5.1 (2019-07-11)
- v3.5.0 (2019-03-03)
- v3.4.1 (2019-02-05)
- v3.4.0 (2019-01-11)
- 3.3.1 (2018-11-21)
- 3.3.0 (2018-11-18)
- 3.2.0 (2018-09-23)
- 3.1.1 (2018-08-01)
- 3.1.0 (2018-06-20)
- 3.0.8 (2017-12-19)
- 3.0.7 (2017-11-24)
- 3.0.6 (2017-11-16)
- 3.0.5 (2017-08-08)
- 3.0.4 (2017-06-15)
- 3.0.2 (2017-03-15)
- 3.0.1 (2017-03-14)
- 3.0.0 (2017-02-23)
- 2.9.1 (2016-07-20)
- 2.9.0 (2016-04-29)
- 2.8.0 (2016-04-04)
- 2.7.3 (2016-03-20)
- 2.7.2 (2016-03-20)
- 2.7.1 (2016-03-17)
- 2.7.0 (2016-02-17)
- 2.6.1 (2015-09-08)
- 2.6.0 (2015-07-28)
- 2.5.1 (2015-07-17)
- 2.5.0 (2015-06-10)
- 2.4.0 (2015-05-05)
- 2.3.0 (2015-03-10)
- 2.2.1 (2015-01-29)
- 2.2.0 (2014-12-18)
- 2.1.1 (2014-12-10)
- 2.1.0 (2014-12-07)
- 2.0.1 (2014-11-21)
- 2.0.0 (2014-11-05)
- 1.2.0 (2014-07-05)
- 1.1.3 (2014-06-15)
- 1.1.2 (2014-04-01)
- 1.1.1 (2014-02-21)
- 1.1.0 (2014-02-05)
- 1.0.4 (2014-01-14)
- 1.0.3 (2013-12-18)
- 1.0.2 (2013-12-10)
- 1.0.1 (2013-12-09)
- 1.0.0 (2013-12-09)
- 0.10.0 (2013-12.08)
- 0.9.7 (2013-08-09)
- 0.9.6 (2013-07-26)
- 0.9.5 (2013-07-18)
- 0.9.4 (2013-07-09)
- 0.9.3 (2013-06-12)
- 0.9.2 (2013-03-28)
- 0.9.1 (2013-02-13)
- 0.9.0 (2013-02-12)