From e02c4a11a7f902687eddb01fc45ea73259480259 Mon Sep 17 00:00:00 2001 From: swrup Date: Sun, 2 Nov 2025 13:32:06 +0100 Subject: [PATCH] wip customize skeleton --- Makefile | 64 -------------------------- certificates/.gitkeep | 0 gen.sh | 5 -- gen_tls.sh | 5 ++ keys/.gitkeep | 0 connect.ml => src/connect.ml | 0 src/dune | 5 ++ server.ml => src/server.ml | 0 config.ml => unikernel/config.ml | 4 +- dune => unikernel/dune | 0 unikernel.ml => unikernel/unikernel.ml | 1 + 11 files changed, 13 insertions(+), 71 deletions(-) delete mode 100644 Makefile delete mode 100644 certificates/.gitkeep delete mode 100644 gen.sh create mode 100644 gen_tls.sh delete mode 100644 keys/.gitkeep rename connect.ml => src/connect.ml (100%) create mode 100644 src/dune rename server.ml => src/server.ml (100%) rename config.ml => unikernel/config.ml (93%) rename dune => unikernel/dune (100%) rename unikernel.ml => unikernel/unikernel.ml (99%) diff --git a/Makefile b/Makefile deleted file mode 100644 index ae409341..00000000 --- a/Makefile +++ /dev/null @@ -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 diff --git a/certificates/.gitkeep b/certificates/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/gen.sh b/gen.sh deleted file mode 100644 index 818cc473..00000000 --- a/gen.sh +++ /dev/null @@ -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 diff --git a/gen_tls.sh b/gen_tls.sh new file mode 100644 index 00000000..17356a48 --- /dev/null +++ b/gen_tls.sh @@ -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 diff --git a/keys/.gitkeep b/keys/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/connect.ml b/src/connect.ml similarity index 100% rename from connect.ml rename to src/connect.ml diff --git a/src/dune b/src/dune new file mode 100644 index 00000000..9bceb10f --- /dev/null +++ b/src/dune @@ -0,0 +1,5 @@ +(library + (wrapped false) + (name mte) + (public_name mte) + (libraries logs hxd.core hxd.string)) diff --git a/server.ml b/src/server.ml similarity index 100% rename from server.ml rename to src/server.ml diff --git a/config.ml b/unikernel/config.ml similarity index 93% rename from config.ml rename to unikernel/config.ml index a7da04ce..830a9ed1 100644 --- a/config.ml +++ b/unikernel/config.ml @@ -27,8 +27,8 @@ let stackv4v6 = generic_stackv4v6 default_network let tcpv4v6 = tcpv4v6_of_stackv4v6 stackv4v6 let he = generic_happy_eyeballs stackv4v6 let dns = generic_dns_client stackv4v6 he -let certificates = crunch "certificates" -let keys = crunch "keys" +let certificates = crunch "data/tls/certificates" +let keys = crunch "data/tls/keys" let conn = let happy_eyeballs = mimic_happy_eyeballs stackv4v6 he dns in diff --git a/dune b/unikernel/dune similarity index 100% rename from dune rename to unikernel/dune diff --git a/unikernel.ml b/unikernel/unikernel.ml similarity index 99% rename from unikernel.ml rename to unikernel/unikernel.ml index 2dd96b02..25f9d31c 100644 --- a/unikernel.ml +++ b/unikernel/unikernel.ml @@ -1,6 +1,7 @@ open Rresult open Lwt.Infix open Cmdliner +open Mte let port = let doc = Arg.info ~doc:"Port of HTTP service." [ "p"; "port" ] in