This commit is contained in:
swrup 2025-11-02 13:32:06 +01:00
parent f4d9f8e618
commit a0f09b6cab
11 changed files with 13 additions and 71 deletions

View file

@ -1,64 +0,0 @@
# Generated by mirage.v4.10.3
-include Makefile.user
BUILD_DIR = ./
MIRAGE_DIR = ./mirage
UNIKERNEL_NAME = minipaf-unix
OPAM = opam
all::
@$(MAKE) --no-print-directory depends
@$(MAKE) --no-print-directory build
.PHONY: all lock install-switch pull clean depend depends build repo-add repo-rm depext-lockfile
repo-add:
@printf "\033[2musing overlay repository mirage: [opam-overlays, mirage-overlays] \033[0m\n"
$(OPAM) repo add opam-overlays https://github.com/dune-universe/opam-overlays.git || $(OPAM) repo set-url opam-overlays https://github.com/dune-universe/opam-overlays.git
$(OPAM) repo add mirage-overlays https://github.com/dune-universe/mirage-opam-overlays.git || $(OPAM) repo set-url mirage-overlays https://github.com/dune-universe/mirage-opam-overlays.git
repo-rm:
@printf "\033[2mremoving overlay repository [opam-overlays, mirage-overlays]\033[0m\n"
$(OPAM) repo remove opam-overlays https://github.com/dune-universe/opam-overlays.git
$(OPAM) repo remove mirage-overlays https://github.com/dune-universe/mirage-opam-overlays.git
depext-lockfile: $(MIRAGE_DIR)/$(UNIKERNEL_NAME).opam.locked
echo " ↳ install external dependencies for monorepo"
env OPAMVAR_monorepo="opam-monorepo" $(OPAM) monorepo depext -y -l $<
$(MIRAGE_DIR)/$(UNIKERNEL_NAME).opam.locked: $(MIRAGE_DIR)/$(UNIKERNEL_NAME).opam
@$(MAKE) -s repo-add
@echo " ↳ generate lockfile for monorepo dependencies"
@env OPAMVAR_monorepo="opam-monorepo" $(OPAM) monorepo lock --require-cross-compile --build-only $(UNIKERNEL_NAME) -l $@ --ocaml-version $(shell ocamlc --version); (ret=$$?; $(MAKE) -s repo-rm && exit $$ret)
lock::
@$(MAKE) -B $(MIRAGE_DIR)/$(UNIKERNEL_NAME).opam.locked
@echo "The lock file has been generated. Run 'make pull' to retrieve the sources, or 'make install-switch' to install the host dependencies."
pull:: $(MIRAGE_DIR)/$(UNIKERNEL_NAME).opam.locked
@echo " ↳ fetch monorepo dependencies in the duniverse folder"
@env OPAMVAR_monorepo="opam-monorepo" $(OPAM) monorepo pull -l $< -r $(abspath $(BUILD_DIR))
@echo "The sources have been pulled to the duniverse folder. Run 'make build' to build the unikernel."
install-switch:: $(MIRAGE_DIR)/$(UNIKERNEL_NAME).opam
@echo " ↳ opam install switch dependencies"
@$(OPAM) install $< --deps-only --yes
@$(MAKE) -s depext-lockfile
@echo "The dependencies have been installed. Run 'make build' to build the unikernel."
depends depend::
@$(MAKE) --no-print-directory lock
@$(MAKE) --no-print-directory install-switch
@$(MAKE) --no-print-directory pull
build::
dune build --profile release --root . $(BUILD_DIR)dist
@echo "Your unikernel binary is now ready in $(BUILD_DIR)dist/minipaf"
@echo "Execute the binary using solo5-hvt, solo5-spt, xl, ..."
clean::
mirage clean

View file

5
gen.sh
View file

@ -1,5 +0,0 @@
#!/bin/sh
hostname="${2:-localhost}"
openssl req -x509 -newkey rsa:4096 -keyout keys/$1 -out certificates/$1 -sha256 -days 365 -subj "/CN=$hostname" -nodes

5
gen_tls.sh Normal file
View file

@ -0,0 +1,5 @@
#!/bin/sh
hostname="${2:-localhost}"
openssl req -x509 -newkey rsa:4096 -keyout data/tls/keys/$1 -out data/tls/certificates/$1 -sha256 -days 365 -subj "/CN=$hostname" -nodes

View file

5
src/dune Normal file
View file

@ -0,0 +1,5 @@
(library
(wrapped false)
(name mte)
(public_name mte)
(libraries logs hxd.core hxd.string))

View file

@ -27,8 +27,8 @@ let stackv4v6 = generic_stackv4v6 default_network
let tcpv4v6 = tcpv4v6_of_stackv4v6 stackv4v6 let tcpv4v6 = tcpv4v6_of_stackv4v6 stackv4v6
let he = generic_happy_eyeballs stackv4v6 let he = generic_happy_eyeballs stackv4v6
let dns = generic_dns_client stackv4v6 he let dns = generic_dns_client stackv4v6 he
let certificates = crunch "certificates" let certificates = crunch "data/tls/certificates"
let keys = crunch "keys" let keys = crunch "data/tls/keys"
let conn = let conn =
let happy_eyeballs = mimic_happy_eyeballs stackv4v6 he dns in let happy_eyeballs = mimic_happy_eyeballs stackv4v6 he dns in

View file

@ -1,6 +1,7 @@
open Rresult open Rresult
open Lwt.Infix open Lwt.Infix
open Cmdliner open Cmdliner
open Mte
let port = let port =
let doc = Arg.info ~doc:"Port of HTTP service." [ "p"; "port" ] in let doc = Arg.info ~doc:"Port of HTTP service." [ "p"; "port" ] in