diff --git a/repos/libports/lib/import/import-lua.mk b/repos/libports/lib/import/import-lua.mk
deleted file mode 100644
index cd1e96cf84..0000000000
--- a/repos/libports/lib/import/import-lua.mk
+++ /dev/null
@@ -1 +0,0 @@
-INC_DIR += $(call select_from_ports,lua)/include/lua
diff --git a/repos/libports/lib/import/import-luacxx.mk b/repos/libports/lib/import/import-luacxx.mk
deleted file mode 100644
index cd1e96cf84..0000000000
--- a/repos/libports/lib/import/import-luacxx.mk
+++ /dev/null
@@ -1 +0,0 @@
-INC_DIR += $(call select_from_ports,lua)/include/lua
diff --git a/repos/libports/lib/mk/lua.inc b/repos/libports/lib/mk/lua.inc
deleted file mode 100644
index 935e07a6a2..0000000000
--- a/repos/libports/lib/mk/lua.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-LUA_DIR := $(call select_from_ports,lua)/src/lib/lua/src
-LIBS += libc libm
-INC_DIR += $(LUA_DIR)
-CC_DEF = -DLUA_ANSI -DLUA_USE_MKSTEMP
-
-# core objects
-LUA_CORE_C = lapi.c lcode.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c \
- lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c \
- lundump.c lvm.c lzio.c
-
-# library objects, e.g. string handling
-LUA_LIB_C = lauxlib.c lbaselib.c ldblib.c liolib.c lmathlib.c loslib.c ltablib.c \
- lstrlib.c loadlib.c linit.c
-
-vpath %.c $(LUA_DIR)
-
-# vi: set ft=make :
diff --git a/repos/libports/lib/mk/lua.mk b/repos/libports/lib/mk/lua.mk
deleted file mode 100644
index 4672da710d..0000000000
--- a/repos/libports/lib/mk/lua.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# Lua library (ANSI C variant)
-#
-
-include $(REP_DIR)/lib/mk/lua.inc
-
-SRC_C = $(LUA_CORE_C) $(LUA_LIB_C)
-
-CC_CXX_WARN_STRICT =
diff --git a/repos/libports/lib/mk/luacxx.mk b/repos/libports/lib/mk/luacxx.mk
deleted file mode 100644
index 5b6802ffdd..0000000000
--- a/repos/libports/lib/mk/luacxx.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# Lua library (C++ variant)
-#
-
-include $(REP_DIR)/lib/mk/lua.inc
-
-SRC_C = $(LUA_CORE_C) $(LUA_LIB_C)
-
-# force compilation with C++ compiler
-CUSTOM_CC = $(CXX)
-CC_WARN += -Wno-sign-compare
-
-CC_CXX_WARN_STRICT =
diff --git a/repos/libports/ports/lua.hash b/repos/libports/ports/lua.hash
deleted file mode 100644
index 7a8fe09699..0000000000
--- a/repos/libports/ports/lua.hash
+++ /dev/null
@@ -1 +0,0 @@
-db8c61d08efef779e25ed3339b11f8230af43ccd
diff --git a/repos/libports/ports/lua.port b/repos/libports/ports/lua.port
deleted file mode 100644
index 01302a4970..0000000000
--- a/repos/libports/ports/lua.port
+++ /dev/null
@@ -1,11 +0,0 @@
-LICENSE := MIT
-VERSION := 5.1.5
-DOWNLOADS := lua.archive
-
-URL(lua) := http://www.lua.org/ftp/lua-$(VERSION).tar.gz
-SHA(lua) := 2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333
-DIR(lua) := src/lib/lua
-
-DIRS := include/lua
-DIR_CONTENT(include/lua) := $(addprefix src/lib/lua/src/,\
- lua.h lauxlib.h luaconf.h lualib.h)
diff --git a/repos/libports/run/moon.run b/repos/libports/run/moon.run
deleted file mode 100644
index 31fc965041..0000000000
--- a/repos/libports/run/moon.run
+++ /dev/null
@@ -1,50 +0,0 @@
-if {[get_cmd_switch --autopilot] && [have_board riscv_qemu]} {
- puts "Autopilot mode is not supported on this platform."
- exit 0
-}
-
-#
-# Lua C++ library test
-#
-
-build "core init timer test/moon"
-
-create_boot_directory
-
-install_config {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-}
-
-build_boot_image {
- core init timer test-moon
- ld.lib.so libc.lib.so vfs.lib.so libm.lib.so
-}
-
-append qemu_args " -nographic "
-
-run_genode_until {.*test-moon.*Finished\..*} 40
diff --git a/repos/libports/src/test/libports/lua/target.mk b/repos/libports/src/test/libports/lua/target.mk
deleted file mode 100644
index 15ffb70caf..0000000000
--- a/repos/libports/src/test/libports/lua/target.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-TARGET = test-lua
-LIBS = lua libc libm
-SRC_CC = main.cc
-
-vpath main.cc $(PRG_DIR)/..
-
-CC_CXX_WARN_STRICT =
diff --git a/repos/libports/src/test/libports/luacxx/target.mk b/repos/libports/src/test/libports/luacxx/target.mk
deleted file mode 100644
index 31af235fe7..0000000000
--- a/repos/libports/src/test/libports/luacxx/target.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-TARGET = test-luacxx
-LIBS = luacxx libc libm
-SRC_CC = main.cc
-
-vpath main.cc $(PRG_DIR)/..
-
-CC_CXX_WARN_STRICT =
diff --git a/repos/libports/src/test/moon/main.cc b/repos/libports/src/test/moon/main.cc
deleted file mode 100644
index 348822037c..0000000000
--- a/repos/libports/src/test/moon/main.cc
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * \brief Lua C++ library test
- * \author Christian Helmuth
- * \date 2012-05-06
- */
-
-/*
- * Copyright (C) 2012-2017 Genode Labs GmbH
- *
- * This file is part of the Genode OS framework, which is distributed
- * under the terms of the GNU Affero General Public License version 3.
- */
-
-/* Genode includes */
-#include
-#include
-#include
-
-/* Lua includes */
-#include
-#include
-#include
-
-
-namespace Moon {
-
- struct Main;
- struct Env
- {
- Timer::Session &timer;
- Genode::Pd_session &pd;
- };
- Env *env;
-}
-
-
-/**
- * Lua: Sleep for milliseconds
- */
-static int l_msleep(lua_State *lua)
-{
- if (lua_gettop(lua) != 1) {
- lua_pushstring(lua, "msleep: invalid number of arguments");
- lua_error(lua);
- return 0;
- }
- luaL_checknumber(lua, 1);
-
- Moon::env->timer.msleep(lua_tonumber(lua, 1));
-
- return 0;
-}
-
-
-/**
- * Lua: Return RAM quota
- */
-static int l_quota(lua_State *lua)
-{
- if ((lua_gettop(lua) != 0)) {
- lua_pushstring(lua, "quota: invalid number of arguments");
- lua_error(lua);
- return 0;
- }
-
- lua_pushnumber(lua, Moon::env->pd.ram_quota().value);
-
- return 1;
-}
-
-
-/**
- * Lua: Log arguments
- */
-static int l_log(lua_State *lua)
-{
- int n = lua_gettop(lua);
-
- for (int i = 1; i <= n; ++i) {
- if (lua_isstring(lua, i))
- Genode::log(lua_tostring(lua, i));
- else if (lua_isnil(lua, i))
- Genode::log("nil");
- else if (lua_isboolean(lua, i))
- Genode::log(lua_toboolean(lua, i) ? "true" : "false");
- else
- Genode::log(luaL_typename(lua, i), ": ", lua_topointer(lua, i));
- }
-
- return 0;
-}
-
-
-/**
- * Lua library for Genode functions
- */
-static const struct luaL_reg l_genode[] = {
- { "log", l_log },
- { "msleep", l_msleep },
- { "quota", l_quota },
- { 0, 0 } /* end of list */
-};
-
-
-static char const *exec_string =
- "local a = { }\n"
- "Genode.log(a)\n"
- "a.foo = \"foo\"\n"
- "a.bar = \"bar\"\n"
- "Genode.log(a.foo .. \" \" .. a.bar)\n"
- "\n"
- "print(\"Our RAM quota is \"..Genode.quota()..\" bytes.\")\n"
- "\n"
- "print(\"Going to sleep...\")\n"
- "for i=1,4 do\n"
- " Genode.msleep(i * 1000)\n"
- " print(\"Slept well for \"..i..\" seconds.\")\n"
- "end\n"
- "print(\"Finished.\")\n"
- ;
-
-
-struct Moon::Main
-{
- Libc::Env &_env;
-
- Timer::Connection _timer { _env };
-
- Moon::Env _moon_env { _timer, _env.pd() };
-
- Main(Libc::Env &env) : _env(env)
- {
- Libc::with_libc([&] () {
- Moon::env = &_moon_env;
-
- lua_State *lua = lua_open();
-
- /* initialize libs */
- luaopen_base(lua);
-
- /* register Genode Lua library */
- luaL_register(lua, "Genode", l_genode);
-
- if (luaL_dostring(lua, exec_string) != 0)
- Genode::log(lua_tostring(lua, -1));
-
- lua_close(lua);
- });
- }
-};
-
-
-void Libc::Component::construct(Libc::Env &env) { static Moon::Main instance(env); }
diff --git a/repos/libports/src/test/moon/target.mk b/repos/libports/src/test/moon/target.mk
deleted file mode 100644
index e7b33ba5f3..0000000000
--- a/repos/libports/src/test/moon/target.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-TARGET = test-moon
-LIBS = luacxx libc base
-SRC_CC = main.cc
-
-CC_CXX_WARN_STRICT =
diff --git a/tool/autopilot.list b/tool/autopilot.list
index 637430295c..2a82b9f460 100644
--- a/tool/autopilot.list
+++ b/tool/autopilot.list
@@ -30,7 +30,6 @@ lx_hybrid_exception
lx_hybrid_pthread_ipc
microcode
migrate
-moon
netperf_lwip
netperf_lwip_bridge
netperf_lwip_usb