diff --git a/lists/foris-utils.m4 b/lists/foris-utils.m4
new file mode 100644
index 0000000000000000000000000000000000000000..753cb03e21dfc6025c0006c41d054a9b563b1293
--- /dev/null
+++ b/lists/foris-utils.m4
@@ -0,0 +1,11 @@
+
+local function foris_plugin(...)
+	for plugin in pairs(...) do
+		fplugin = "foris-" .. plugin .. "-plugin"
+		Install(fplugin, { priority = 40 })
+		if for_l10n then
+			for_l10n(fplugin .. "-l10n-")
+		end
+	end
+end
+
diff --git a/lists/foris.lua.m4 b/lists/foris.lua.m4
index 2d2e60e1b089314e4868a76523af3e10d212a2a1..97bb2b45389001a3fdd94601f54606718aa403d9 100644
--- a/lists/foris.lua.m4
+++ b/lists/foris.lua.m4
@@ -1,41 +1,15 @@
 include(utils.m4)dnl Include utility macros
+include(foris-utils.m4)dnl
 _FEATURE_GUARD_
 
-Install("foris", "foris-diagnostics-plugin", "foris-storage-plugin", "lighttpd-https-cert", { priority = 40 })
-
-
---[[
-All foris plugins
-Generated using:
- curl https://repo.turris.cz/hbd/omnia/packages/turrispackages/Packages | sed -n 's/^Package: foris-\([^-]\+\)-plugin.*/\1/p' | sort | uniq | sed 's/^/"/;s/$/",/'
-]]
-local foris_plugins = {
-	"data_collect",
-	"diagnostics",
-	"netmetr",
-	"openvpn",
-	"pakon",
-	"ssbackups",
-	"storage",
-	"subordinates",
-}
-
+Install("foris" { priority = 40 })
 if for_l10n then
 	for_l10n("foris-l10n-")
 	for_l10n('pkglists-l10n-')
-	for _, plugin in pairs(foris_plugins) do
-		local fplugin = "foris-" .. plugin .. "-plugin"
-		if installed[fplugin] then
-			for_l10n(fplugin .. "-l10n-")
-		else
-			--[[
-			We are not aware that we should install l10n unless it is installed
-			already so we instead request replan on finish to install missing l10n
-			packages.
-			]]
-			Package(fplugin, { replan = "finished"})
-		end
-	end
 end
 
+foris_plugin("diagnostics", "storage")
+
+Install("lighttpd-https-cert", { priority = 40 })
+
 _END_FEATURE_GUARD_
diff --git a/lists/pkglists/netboot.lua.m4 b/lists/pkglists/netboot.lua.m4
index b6b102fa6d1729bc5f81b77c00d94c39a4050cfa..0d1a672053122fc2730d8591a91e8fb6a185d068 100644
--- a/lists/pkglists/netboot.lua.m4
+++ b/lists/pkglists/netboot.lua.m4
@@ -1,6 +1,7 @@
 include(utils.m4)dnl Include utility macros
+include(foris-utils.m4)dnl
 _FEATURE_GUARD_
 
-Install("foris-subordinates-plugin", { priority = 40 })
+foris_plugin("subordinates")
 
 _END_FEATURE_GUARD_
diff --git a/lists/pkglists/netmetr.lua.m4 b/lists/pkglists/netmetr.lua.m4
index 484847846edbd6eabdd57ae86b511c43a69e339a..34f22905ac2a5141aa18779cd4e672f26a0b6c26 100644
--- a/lists/pkglists/netmetr.lua.m4
+++ b/lists/pkglists/netmetr.lua.m4
@@ -1,6 +1,7 @@
 include(utils.m4)dnl Include utility macros
+include(foris-utils.m4)dnl
 _FEATURE_GUARD_
 
-Install("foris-netmetr-plugin", { priority = 40 })
+foris_plugin("netmetr")
 
 _END_FEATURE_GUARD_
diff --git a/lists/pkglists/openvpn.lua.m4 b/lists/pkglists/openvpn.lua.m4
index a4135ebe1561c60997d760eaf8c2fc19163b30d1..2ebe809559ee49ee386e03217065a61b175afe74 100644
--- a/lists/pkglists/openvpn.lua.m4
+++ b/lists/pkglists/openvpn.lua.m4
@@ -1,6 +1,8 @@
 include(utils.m4)dnl Include utility macros
+include(foris-utils.m4)dnl
 _FEATURE_GUARD_
 
-Install("foris-openvpn-plugin","openvpn-openssl", "dhparam", { priority = 40 })
+foris_plugin("openvpn")
+Install("openvpn-openssl", "dhparam", { priority = 40 })
 
 _END_FEATURE_GUARD_
diff --git a/lists/pkglists/pakon.lua.m4 b/lists/pkglists/pakon.lua.m4
index 7365b32dc84b53bd1412a9456daaa31295830789..f6ec71b72dd1dc970645995a2fcdfaa95156979f 100644
--- a/lists/pkglists/pakon.lua.m4
+++ b/lists/pkglists/pakon.lua.m4
@@ -1,6 +1,8 @@
 include(utils.m4)dnl Include utility macros
+include(foris-utils.m4)dnl
 _FEATURE_GUARD_
 
-Install("foris-pakon-plugin", "pakon", "pakon-lists", "suricata-pakon", { priority = 40 })
+foris_plugin("pakon")
+Install("pakon", "pakon-lists", "suricata-pakon", { priority = 40 })
 
 _END_FEATURE_GUARD_