diff --git a/recipes/dev/lua54/recipe.toml b/recipes/dev/lua54/recipe.toml
index d51b3aa1606dd66179892ec4377bc3c17698d895..fb52321a39992ab983f497957606666790d8017b 100644
--- a/recipes/dev/lua54/recipe.toml
+++ b/recipes/dev/lua54/recipe.toml
@@ -11,7 +11,5 @@ rsync -av --delete "${COOKBOOK_SOURCE}/" ./
     CC="${TARGET}-gcc -std=gnu99" \
     RANLIB="${TARGET}-ranlib" \
     SYSLDFLAGS="-static" \
-    generic
-mkdir -pv "${COOKBOOK_STAGE}/bin"
-cp src/lua src/luac "${COOKBOOK_STAGE}/bin"
+    install INSTALL_TOP="${COOKBOOK_STAGE}"
 """
diff --git a/recipes/dev/luarocks/recipe.toml b/recipes/dev/luarocks/recipe.toml
new file mode 100644
index 0000000000000000000000000000000000000000..7440a5727bf1aae6772cee39ac494deaabbabf0c
--- /dev/null
+++ b/recipes/dev/luarocks/recipe.toml
@@ -0,0 +1,18 @@
+[source]
+git = "https://github.com/luarocks/luarocks.git"
+[build]
+template = "custom"
+dependencies = [
+"lua54"
+]
+script = """
+
+COOKBOOK_CONFIGURE_FLAGS=(
+    --sysconfdir=$COOKBOOK_SYSROOT
+    --with-lua-include=$COOKBOOK_SYSROOT/include
+    --with-lua-bin=$COOKBOOK_SYSROOT/bin
+    --with-lua-lib=$COOKBOOK_SYSROOT/lib
+)
+cd "${COOKBOOK_SOURCE}"
+cookbook_configure
+"""
diff --git a/recipes/libs/lua-compat-5.3/recipe.toml b/recipes/libs/lua-compat-5.3/recipe.toml
new file mode 100644
index 0000000000000000000000000000000000000000..edbca1c437b0c8c765cdbabc0438b2b4a5b4e66a
--- /dev/null
+++ b/recipes/libs/lua-compat-5.3/recipe.toml
@@ -0,0 +1,11 @@
+[source]
+git = "https://github.com/lunarmodules/lua-compat-5.3.git"
+[build]
+template = "custom"
+dependencies = [
+    "lua54"
+]
+script = """
+mkdir -pv "${COOKBOOK_STAGE}/include"
+cp -r "$COOKBOOK_SOURCE/c-api/." "${COOKBOOK_STAGE}/include"
+"""
diff --git a/recipes/libs/luv/recipe.toml b/recipes/libs/luv/recipe.toml
new file mode 100644
index 0000000000000000000000000000000000000000..93973951f9aea1fb7044dea02fbdd86a1b709276
--- /dev/null
+++ b/recipes/libs/luv/recipe.toml
@@ -0,0 +1,27 @@
+[source]
+git = "https://github.com/luvit/luv.git"
+[build]
+template = "custom"
+dependencies = [
+    "lua54",
+    "libuv",
+    "lua-compat-5.3"
+]
+script = """
+COOKBOOK_CONFIGURE="cmake"
+COOKBOOK_CONFIGURE_FLAGS=(
+    -DBUILD_MODULE=OFF
+    -DBUILD_STATIC_LIBS=ON
+    -DWITH_SHARED_LIBUV=ON
+    -DWITH_LUA_ENGINE=Lua
+    -DLUA_BUILD_TYPE=System
+    -DLUA_COMPAT53_DIR="${COOKBOOK_SYSROOT}/bin"
+    -DCMAKE_BUILD_TYPE=RelWithDebInfo
+    -DLIBUV_LIBRARIES="${COOKBOOK_SYSROOT}/usr/lib/libuv.a"
+    -DLIBUV_INCLUDE_DIR="${COOKBOOK_SYSROOT}/usr/include"
+    -DLUA_INCLUDE_DIR="${COOKBOOK_SYSROOT}/include"
+    -DLUV_INCLUDE_DIR="${COOKBOOK_SYSROOT}/include"
+"${COOKBOOK_SOURCE}"
+)
+cookbook_configure
+"""
diff --git a/recipes/wip/dev/lua-tools/luarocks/recipe.toml b/recipes/wip/dev/lua-tools/luarocks/recipe.toml
deleted file mode 100644
index 9645e5d9f294218495da40f39853184bdb971bb4..0000000000000000000000000000000000000000
--- a/recipes/wip/dev/lua-tools/luarocks/recipe.toml
+++ /dev/null
@@ -1,6 +0,0 @@
-#TODO not compiled or tested
-# build instructions - https://github.com/luarocks/luarocks/wiki/Installation-instructions-for-Unix
-[source]
-tar = "https://luarocks.org/releases/luarocks-3.11.1.tar.gz"
-[build]
-template = "configure"