diff --git a/dev-ml/io-page/io-page-2.2.0.ebuild b/dev-ml/io-page/io-page-2.2.0.ebuild
index 6c0aac10db..d71f355d86 100644
--- a/dev-ml/io-page/io-page-2.2.0.ebuild
+++ b/dev-ml/io-page/io-page-2.2.0.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-inherit dune
+inherit dune multiprocessing
MY_P="${PN}-v${PV}"
@@ -15,14 +15,28 @@ S="${WORKDIR}/${MY_P}"
LICENSE="ISC"
SLOT="0/${PV}"
KEYWORDS="~amd64"
-IUSE="ocamlopt"
+IUSE="ocamlopt test unix"
RDEPEND="
dev-ml/bigarray-compat
dev-ml/cstruct
"
-DEPEND="${RDEPEND}"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-ml/ounit )
+ unix? ( dev-ml/configurator )
+"
+
+RESTRICT="!test? ( test )"
+REQUIRED_USE="test? ( unix )"
+
+src_compile() {
+ local pkgs="io-page"
+ use unix && pkgs="${pkgs},io-page-unix"
+ dune build --only-packages "${pkgs}" -j $(makeopts_jobs) --profile release || die
+}
src_install() {
- dune_src_install "io-page io-page-unix io-page-xen"
+ dune_src_install io-page
+ use unix && dune_src_install io-page-unix
}
diff --git a/dev-ml/io-page/io-page-2.4.0.ebuild b/dev-ml/io-page/io-page-2.4.0.ebuild
index 40f2ed73c4..528316a847 100644
--- a/dev-ml/io-page/io-page-2.4.0.ebuild
+++ b/dev-ml/io-page/io-page-2.4.0.ebuild
@@ -5,7 +5,8 @@ EAPI=8
inherit dune
-MY_P=${PN}-v${PV}
+MY_P="${PN}-v${PV}"
+
DESCRIPTION="IO memory page library for Mirage backends"
HOMEPAGE="https://github.com/mirage/io-page"
SRC_URI="https://github.com/mirage/io-page/releases/download/v${PV}/${MY_P}.tbz"
@@ -14,10 +15,16 @@ S="${WORKDIR}/${MY_P}"
LICENSE="ISC"
SLOT="0/${PV}"
KEYWORDS="~amd64"
-IUSE="ocamlopt"
+IUSE="ocamlopt test"
RDEPEND="
dev-ml/bigarray-compat
dev-ml/cstruct
"
-DEPEND="${RDEPEND}"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-ml/ounit )
+"
+BDEPEND="virtual/pkgconfig"
+
+RESTRICT="!test? ( test )"
diff --git a/dev-ml/io-page/metadata.xml b/dev-ml/io-page/metadata.xml
index 0cf20d003c..8f344f1855 100644
--- a/dev-ml/io-page/metadata.xml
+++ b/dev-ml/io-page/metadata.xml
@@ -9,4 +9,7 @@
mirage/io-page
+