Index: head/CHANGES
===================================================================
--- head/CHANGES
+++ head/CHANGES
@@ -10,6 +10,18 @@
 
 All ports committers are allowed to commit to this file.
 
+20200414:
+AUTHOR: mat@FreeBSD.org
+
+  USES=lua gained flavors.
+
+  Ports using USES=lua:module or lua:flavors will be flavored.  A range of
+  supported lua versions can be set using XX-YY (or XX-, or -YY, or simply ZZ)
+  for ports not supporting all lua versions.
+
+  USES=lua sets LUA_FLAVOR that needs to be used on all dependencies of
+  flavored lua ports, in a similar way as PHP or Python flavors.
+  
 20200115:
 AUTHOR: bapt@FreeBSD.org
 
Index: head/MOVED
===================================================================
--- head/MOVED
+++ head/MOVED
@@ -14529,3 +14529,15 @@
 devel/aws-c-commons|devel/aws-c-common|2020-04-12|Renamed to the correct name
 textproc/itstool22|textproc/itstool|2020-04-14|Has expired: Uses deprecated version of python, use textproc/itstool instead
 science/ncnn|misc/ncnn|2020-04-14|Move to misc/ because ncnn isn't related to science
+archivers/lua51-zlib|archivers/lua-zlib@lua51|2020-04-14|Switched to use flavors
+audio/lua51-mpd|audio/lua-mpd@lua51|2020-04-14|Switched to use flavors
+converters/lua51-iconv|converters/lua-iconv@lua51|2020-04-14|Switched to use flavors
+devel/lua51-bitop|devel/lua-bitop@lua51|2020-04-14|Switched to use flavors
+devel/lua51-cjson|devel/lua-cjson@lua51|2020-04-14|Switched to use flavors
+devel/lua51-libevent|devel/lua-libevent@lua51|2020-04-14|Switched to use flavors
+devel/luafilesystem-51|devel/luafilesystem@lua51|2020-04-14|Switched to use flavors
+net/lualdap-51|net/lualdap@lua51|2020-04-14|Switched to use flavors
+net/luasocket-51|net/luasocket@lua51|2020-04-14|Switched to use flavors
+net/luasocket-53|net/luasocket@lua53|2020-04-14|Switched to use flavors
+security/luasec-51|security/luasec@lua51|2020-04-14|Switched to use flavors
+textproc/luaexpat-51|textproc/luaexpat@lua51|2020-04-14|Switched to use flavors
Index: head/Mk/Uses/lua.mk
===================================================================
--- head/Mk/Uses/lua.mk
+++ head/Mk/Uses/lua.mk
@@ -5,16 +5,101 @@
 # MAINTAINER: ports@FreeBSD.org
 # Usage:
 #
-# USES+=	lua[:version]
+# USES+=	lua[:options,...]
 #
+# Options:
+#
+#   NN    (e.g. 52)  - specify an allowed Lua version (can use multiple times)
+#   NN+   (e.g. 52+) - specify a minimum Lua version (discouraged)
+#   -NN   (e.g. -53) - specify a maximum allowed version
+#   NN-NN (e.g. 51-53) - specify a range of allowed versions
+#
+#   flavors	define FLAVOR / FLAVORS as luaNN from the allowed versions
+#
+#   noflavors	don't use flavors
+#
+#   module	(implies flavors) specifies that the port is a Lua module
+#		(i.e. that it installes files in MODLIBDIR etc.)
+#
+#   build	add dependency to BUILD_DEPENDS instead of LIB_DEPENDS
+#   run		add dependency to RUN_DEPENDS instead of LIB_DEPENDS
+#
+#   env		define only the LUA_* vars and add them to PLIST_SUB and
+#		MAKE_ENV, do not add dependencies or other global state
+#
+#   core	for building Lua itself
+#
+# If more than one version is allowed, then the LUA_DEFAULT version
+# (as set in DEFAULT_VERSIONS) is chosen if it is allowed, otherwise
+# the highest allowed version is chosen. But if "flavors" was requested,
+# and FLAVOR is set, we use that version.
+#
+# LUA_FLAVOR is defined to the desired flavor whether or not "flavors" was
+# selected; ports should use this to specify the flavor of dependencies
+# which are Lua modules or otherwise Lua-flavored.
+#
+# It's not generally expected that applications that embed Lua, or apps
+# written in Lua, would use USES=lua:flavors. Given that Lua is lightweight
+# and does not carry around a whole lot of module ecosystem with it, it is
+# best that application ports simply specify the Lua version or range of
+# versions that they support, and let the default one or the latest one be
+# used. However, they should still use LUA_FLAVOR as needed when specifying
+# dependencies.
+#
 .if !defined(_INCLUDE_USES_LUA_MK)
 _INCLUDE_USES_LUA_MK=	yes
 
 # When adding a version, please keep the comment in
 # Mk/bsd.default-versions.mk in sync.
-_LUA_VALID_VERSIONS=	53 52 51
+_LUA_VALID_VERSIONS:=	53 52 51
+.if defined(_LUA_EXTRA_VER)
+_LUA_VALID_VERSIONS+= ${_LUA_EXTRA_VER}
+.endif
 
-_LUA_DEFAULT_VERSION=	${LUA_DEFAULT:S/.//}
+_LUA_DEFAULT_VERSION:=	${LUA_DEFAULT:S/.//}
+
+# args
+_LUA_ARG_FLAVORS:=
+_LUA_ARG_MODULE:=
+_LUA_ARG_ENV:=
+_LUA_ARG_CORE:=
+.if ${lua_ARGS:Mmodule}
+_LUA_ARG_FLAVORS:=yes
+_LUA_ARG_MODULE:=yes
+.endif
+.if ${lua_ARGS:Mflavors}
+_LUA_ARG_FLAVORS:=yes
+.endif
+.if ${lua_ARGS:Mnoflavors}
+_LUA_ARG_FLAVORS:=
+.endif
+.if ${lua_ARGS:Menv}
+_LUA_ARG_ENV:=yes
+.endif
+.if ${lua_ARGS:Mcore}
+_LUA_ARG_CORE:=yes
+_LUA_ARG_ENV:=yes
+_LUA_ARG_FLAVORS:=
+_LUA_ARG_MODULE:=
+.endif
+
+# core is for building Lua itself, so it overrides all version checks
+.if ${_LUA_ARG_CORE}
+
+_LUA_WANTED_VERSION:=${lua_ARGS:M[1-9][0-9]:[1]}
+
+.  if ${lua_ARGS:M[1-9][0-9]:[#]} != 1
+IGNORE= USES=lua:core must also specify exactly one version number
+# set to avoid spurious errors below
+_LUA_WANTED_VERSION:=${_LUA_DEFAULT_VERSION}
+.  endif
+
+_LUA_VALID_VERSIONS:=${_LUA_WANTED_VERSION}
+_LUA_WANTED_VERSIONS:=${_LUA_WANTED_VERSION}
+_LUA_DEFAULT_VERSION:=${_LUA_WANTED_VERSION}
+
+.endif # _LUA_ARG_CORE
+
 .if ! ${_LUA_VALID_VERSIONS:M${_LUA_DEFAULT_VERSION}}
 IGNORE=	Invalid lua version ${LUA_DEFAULT}
 .endif
@@ -22,89 +107,164 @@
 #
 # Parse a ver+ argument
 #
-.if ${lua_ARGS:M*+}
-_LUA_MIN_VERSION:=	${lua_ARGS:M*+:S/+//}
+.if ${lua_ARGS:M??+}
+_LUA_MIN_VERSION:=	${lua_ARGS:M??+:S/+//}
+_LUA_MAX_VERSION:=	99
+.endif
+
 #
-# Resolve minimum versions (ver+). Append anything greater or equal than the
-# specified minimum version to the list of wanted versions.
+# Parse a -ver argument
 #
-.  for _v in ${_LUA_VALID_VERSIONS}
-.    if ${_LUA_MIN_VERSION} <= ${_v}
+.if ${lua_ARGS:M-??}
+_LUA_MAX_VERSION:=	${lua_ARGS:M-??:S/-//}
+_LUA_MIN_VERSION:=	0
+.endif
+
+#
+# Parse a ver-ver argument
+#
+.if ${lua_ARGS:M??-??}
+_LUA_MIN_VERSION:=	${lua_ARGS:M??-??:C/-.*//}
+_LUA_MAX_VERSION:=	${lua_ARGS:M??-??:C/.*-//}
+.endif
+
+#
+# Parse one or more ver arguments
+#
+.if ${lua_ARGS:M[1-9][0-9]}
+.  for _v in ${lua_ARGS:M[1-9][0-9]}
+.    if ${_LUA_VALID_VERSIONS:M${_v}}
 _LUA_WANTED_VERSIONS+=${_v}
 .    endif
 .  endfor
+.  if empty(_LUA_WANTED_VERSIONS)
+IGNORE= USES=lua:nn did not find any valid version number
+.  endif
 .endif
 
 #
-# Parse one or more ver arguments
+# Resolve version ranges. Append anything within the range to the list of
+# wanted versions.
 #
-.if ${lua_ARGS:M5[1-3]}
-_LUA_WANTED_VERSIONS:=	${lua_ARGS:M5[1-3]}
+.if defined(_LUA_MIN_VERSION) && defined(_LUA_MAX_VERSION)
+.  for _v in ${_LUA_VALID_VERSIONS}
+.    if ${_LUA_MIN_VERSION} <= ${_v} && ${_LUA_MAX_VERSION} >= ${_v}
+_LUA_WANTED_VERSIONS+=${_v}
+.    endif
+.  endfor
+.  if empty(_LUA_WANTED_VERSIONS)
+IGNORE= USES=lua:xx-yy did not find any valid version
+.  endif
 .endif
 
 #
-# If no version was specified with any of the ver or ver+ arguments, set the
-# default version.
+# If no version was specified with any of the ver or ver+ arguments, allow
+# all versions.
 #
-.if !defined(_LUA_WANTED_VERSIONS)
-_LUA_WANTED_VERSIONS=	${_LUA_DEFAULT_VERSION}
+.if empty(_LUA_WANTED_VERSIONS)
+_LUA_WANTED_VERSIONS:=	${_LUA_VALID_VERSIONS}
 .endif
 
 #
-# Right now we have built a list of potential versions that we may depend on.
-# Let's sort them and remove any duplicates. We then locate the highest one
-# already installed, if any.
+# By now, _LUA_WANTED_VERSIONS is the list of valid version numbers that the
+# caller has allowed through. We want to put the default version, if it's in
+# the list, first, followed by all other versions in desc order; then the
+# first element is the one we want (or the default flavor in the flavor case)
 #
-.for _v in ${_LUA_WANTED_VERSIONS:O:u}
-_LUA_HIGHEST_VERSION:=${_v}
-.  if exists(${LOCALBASE}/bin/lua${_v})
-_LUA_HIGHEST_INSTALLED_VERSION:=	${_v}
+_LUA_WANTED_VERSIONS:= \
+	${_LUA_WANTED_VERSIONS:M${_LUA_DEFAULT_VERSION}} \
+	${_LUA_WANTED_VERSIONS:N${_LUA_DEFAULT_VERSION}:O:u:[-1..1]}
+
+.if ${_LUA_ARG_FLAVORS}
+.  if empty(FLAVORS)
+FLAVORS= ${_LUA_WANTED_VERSIONS:S/^/lua/}
 .  endif
-.endfor
+.  if empty(FLAVOR)
+FLAVOR= ${FLAVORS:[1]}
+.  endif
+_LUA_WANTED_VERSION:= ${FLAVOR:S/^lua//}
+.else
+_LUA_WANTED_VERSION:= ${_LUA_WANTED_VERSIONS:[1]}
+.endif
 
+# If we're building Lua itself, everything should be in $PREFIX. If
+# we're building a module or app, then the stuff we're installing goes
+# in $PREFIX but references to Lua itself are in $LOCALBASE.
 #
-# Depend on the default version if it fits, or the highest installed version,
-# or the highest version.
-#
-.if ${_LUA_WANTED_VERSIONS:M${_LUA_DEFAULT_VERSION}}
-_LUA_WANTED_VERSION:=	${_LUA_DEFAULT_VERSION}
-.elif defined(_LUA_HIGHEST_INSTALLED_VERSION)
-_LUA_WANTED_VERSION:=	${_LUA_HIGHEST_INSTALLED_VERSION}
+# The assumption is the LUA_MOD* directories are where we're going to
+# install (this is common for both modules and apps), and so we also
+# define LUA_REFMOD* relative to LOCALBASE for use when specifying
+# dependencies and so on.
+
+.if ${_LUA_ARG_CORE}
+LUA_BASE=${PREFIX}
 .else
-_LUA_WANTED_VERSION:=	${_LUA_HIGHEST_VERSION}
+LUA_BASE=${LOCALBASE}
 .endif
 
+LUA_PREFIX=${PREFIX}
+
 #
 # Exported variables
 #
 LUA_VER_STR=		${_LUA_WANTED_VERSION}
-LUA_VER=		${_LUA_WANTED_VERSION:S/5/5./}
-LUA_CMD=		lua${_LUA_WANTED_VERSION}
-LUAC_CMD=		luac${_LUA_WANTED_VERSION}
-LUA_INCDIR=		${LOCALBASE}/include/lua${_LUA_WANTED_VERSION}
-LUA_MODLIBDIR=		${LOCALBASE}/lib/lua/${LUA_VER}
-LUA_MODSHAREDIR=	${LOCALBASE}/share/lua/${LUA_VER}
-LUA_LIBDIR=		${LOCALBASE}/lib
+LUA_VER=		${_LUA_WANTED_VERSION:S/^5/5./}
+LUA_FLAVOR=		${_LUA_WANTED_VERSION:S/^/lua/}
+
+LUA_CMD=		lua${LUA_VER_STR}
+LUAC_CMD=		luac${LUA_VER_STR}
 LUA_PKGNAMEPREFIX=	lua${LUA_VER_STR}-
 
-PLIST_SUB+=	LUA_MODLIBDIR=${LUA_MODLIBDIR:S,^${LOCALBASE}/,,} \
-		LUA_MODSHAREDIR=${LUA_MODSHAREDIR:S,^${LOCALBASE}/,,} \
+LUA_LIBDIR=		${LUA_BASE}/lib
+LUA_INCDIR=		${LUA_BASE}/include/lua${LUA_VER_STR}
+
+LUA_MODLIBDIR=		${LUA_PREFIX}/lib/lua/${LUA_VER}
+LUA_MODSHAREDIR=	${LUA_PREFIX}/share/lua/${LUA_VER}
+LUA_MODDOCSDIR=		${LUA_PREFIX}/share/doc/lua${LUA_VER_STR}
+LUA_MODEXAMPLESDIR=	${LUA_PREFIX}/share/examples/lua${LUA_VER_STR}
+
+LUA_REFMODLIBDIR=	${LUA_BASE}/lib/lua/${LUA_VER}
+LUA_REFMODSHAREDIR=	${LUA_BASE}/share/lua/${LUA_VER}
+
+PLIST_SUB+=	LUA_MODLIBDIR=${LUA_MODLIBDIR:S,^${LUA_PREFIX}/,,} \
+		LUA_MODSHAREDIR=${LUA_MODSHAREDIR:S,^${LUA_PREFIX}/,,} \
+		LUA_MODDOCSDIR=${LUA_MODDOCSDIR:S,^${LUA_PREFIX}/,,} \
+		LUA_INCDIR=${LUA_INCDIR:S,^${LUA_BASE}/,,} \
+		LUA_LIBDIR=${LUA_LIBDIR:S,^${LUA_BASE}/,,} \
 		LUA_VER=${LUA_VER} \
-		LUA_INCDIR=${LUA_INCDIR:S,^${LOCALBASE}/,,} \
-		LUA_LIBDIR=${LUA_LIBDIR:S,^${LOCALBASE}/,,} \
 		LUA_VER_STR=${LUA_VER_STR}
 MAKE_ENV+=	LUA_MODLIBDIR=${LUA_MODLIBDIR} \
 		LUA_MODSHAREDIR=${LUA_MODSHAREDIR} \
-		LUA_VER=${LUA_VER} \
+		LUA_MODDOCSDIR=${LUA_MODDOCSDIR} \
 		LUA_INCDIR=${LUA_INCDIR} \
-		LUA_LIBDIR=${LUA_LIBDIR}
+		LUA_LIBDIR=${LUA_LIBDIR} \
+		LUA_VER=${LUA_VER} \
+		LUA_VER_STR=${LUA_VER_STR}
 
-.if ${lua_ARGS:Mbuild}
+# if building a module or Lua itself, or if the port defined LUA_DOCSUBDIR,
+# then define LUA_DOCSDIR and LUA_EXAMPLESDIR too
+.if ${_LUA_ARG_CORE} || ${_LUA_ARG_MODULE}
+LUA_DOCSUBDIR?=${PORTNAME}
+.endif
+.if !empty(LUA_DOCSUBDIR)
+LUA_DOCSDIR=	${LUA_MODDOCSDIR}/${LUA_DOCSUBDIR}
+LUA_EXAMPLESDIR=${LUA_MODEXAMPLESDIR}/${LUA_DOCSUBDIR}
+PLIST_SUB+=	LUA_DOCSDIR=${LUA_DOCSDIR:S,^${LUA_PREFIX}/,,}
+PLIST_SUB+=	LUA_EXAMPLESDIR=${LUA_EXAMPLESDIR:S,^${LUA_PREFIX}/,,}
+MAKE_ENV+=	LUA_DOCSDIR=${LUA_DOCSDIR}
+MAKE_ENV+=	LUA_EXAMPLESDIR=${LUA_EXAMPLESDIR}
+.endif
+
+.if empty(_LUA_ARG_ENV)
+.  if ${lua_ARGS:Mbuild}
 BUILD_DEPENDS+=	${LUA_CMD}:lang/lua${LUA_VER_STR}
-.elif ${lua_ARGS:Mrun}
+.  endif
+.  if ${lua_ARGS:Mrun}
 RUN_DEPENDS+=	${LUA_CMD}:lang/lua${LUA_VER_STR}
-.else
+.  endif
+.  if !${lua_ARGS:Mbuild} && !${lua_ARGS:Mrun}
 LIB_DEPENDS+=	liblua-${LUA_VER}.so:lang/lua${LUA_VER_STR}
+.  endif
 .endif
 
 .endif
Index: head/archivers/Makefile
===================================================================
--- head/archivers/Makefile
+++ head/archivers/Makefile
@@ -71,7 +71,7 @@
     SUBDIR += lizard
     SUBDIR += lrzip
     SUBDIR += lua-lzlib
-    SUBDIR += lua51-zlib
+    SUBDIR += lua-zlib
     SUBDIR += lzfse
     SUBDIR += lzip
     SUBDIR += lziprecover
Index: head/archivers/lua-lzlib/Makefile
===================================================================
--- head/archivers/lua-lzlib/Makefile
+++ head/archivers/lua-lzlib/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	lzlib
 PORTVERSION=	0.4.3
+PORTREVISION=	1
 CATEGORIES=	archivers
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
@@ -10,7 +11,7 @@
 
 LICENSE=	MIT
 
-USES=		cmake lua
+USES=		cmake lua:51-52,module
 USE_GITHUB=	yes
 GH_ACCOUNT=	LuaDist
 CMAKE_ARGS=	-DINSTALL_LMOD="${LUA_MODSHAREDIR}" \
Index: head/archivers/lua-zlib/Makefile
===================================================================
--- head/archivers/lua-zlib/Makefile
+++ head/archivers/lua-zlib/Makefile
@@ -0,0 +1,36 @@
+# Created by: Sir l33tname <sirl33tname@gmail.com>
+# $FreeBSD$
+
+PORTNAME=	zlib
+PORTVERSION=	1.2
+PORTREVISION=	1
+DISTVERSIONPREFIX=v
+CATEGORIES=	archivers
+PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
+
+MAINTAINER=	sirl33tname@gmail.com
+COMMENT=	Simple streaming interface to zlib for the Lua Programming Language
+
+LICENSE=	MIT
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	brimworks
+GH_PROJECT=	lua-zlib
+
+USES=		lua:51,module
+
+ALL_TARGET=	bsd
+MAKE_ENV+=	LUAPATH="${LOCALBASE}"
+MAKE_ENV+=	LUACPATH="${STAGEDIR}${LUA_MODLIBDIR}"
+MAKE_ENV+=	INCDIR="-I${LUA_INCDIR}"
+MAKE_ENV+=	LUALIBDIR="-L${LUA_MODLIBDIR}"
+LLD_UNSAFE=	yes
+
+PLIST_FILES=	${LUA_MODLIBDIR}/zlib.so
+
+DOCSDIR=	${STAGEDIR}/share/doc/${UNIQUENAME}
+
+pre-install:
+	${MKDIR} ${STAGEDIR}${LUA_MODLIBDIR}
+
+.include <bsd.port.mk>
Index: head/archivers/lua-zlib/distinfo
===================================================================
--- head/archivers/lua-zlib/distinfo
+++ head/archivers/lua-zlib/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1507829619
+SHA256 (brimworks-lua-zlib-v1.2_GH0.tar.gz) = 26b813ad39c94fc930b168c3418e2e746af3b2e80b92f94f306f6f954cc31e7d
+SIZE (brimworks-lua-zlib-v1.2_GH0.tar.gz) = 16612
Index: head/archivers/lua-zlib/files/patch-Makefile
===================================================================
--- head/archivers/lua-zlib/files/patch-Makefile
+++ head/archivers/lua-zlib/files/patch-Makefile
@@ -0,0 +1,62 @@
+--- Makefile.orig	2017-01-03 01:42:12 UTC
++++ Makefile
+@@ -3,7 +3,7 @@
+ LUAPATH  ?= /usr/share/lua/5.1
+ LUACPATH ?= /usr/lib/lua/5.1
+ INCDIR   ?= -I/usr/include/lua5.1
+-LIBDIR   ?= -L/usr/lib
++LUALIBDIR   ?= -L/usr/lib
+ 
+ # For Mac OS X: set the system version
+ MACOSX_VERSION = 10.4
+@@ -11,21 +11,21 @@ MACOSX_VERSION = 10.4
+ CMOD = zlib.so
+ OBJS = lua_zlib.o
+ 
+-LIBS = -lz -llua -lm
++LIBS = -lz -lm
+ WARN = -Wall -pedantic
+ 
+ BSD_CFLAGS  = -O2 -fPIC $(WARN) $(INCDIR) $(DEFS)
+-BSD_LDFLAGS = -O -shared -fPIC $(LIBDIR)
++BSD_LDFLAGS = -O2 -shared $(LUALIBDIR)
+ 
+ LNX_CFLAGS  = -O2 -fPIC $(WARN) $(INCDIR) $(DEFS)
+-LNX_LDFLAGS = -O -shared -fPIC $(LIBDIR)
++LNX_LDFLAGS = -O2 -shared -fPIC $(LUALIBDIR)
+ 
+ MAC_ENV     = env MACOSX_DEPLOYMENT_TARGET='$(MACVER)'
+ MAC_CFLAGS  = -O2 -fPIC -fno-common $(WARN) $(INCDIR) $(DEFS)
+-MAC_LDFLAGS = -bundle -undefined dynamic_lookup -fPIC $(LIBDIR)
++MAC_LDFLAGS = -bundle -undefined dynamic_lookup -fPIC $(LUALIBDIR)
+ 
+-CC = gcc
+-LD = $(MYENV) gcc
++CC ?= gcc
++LD ?= $(MYENV) gcc
+ CFLAGS  = $(MYCFLAGS)
+ LDFLAGS = $(MYLDFLAGS)
+ 
+@@ -44,13 +44,13 @@ uninstall:
+ 	rm $(LUACPATH)/zlib.so
+ 
+ linux:
+-	@$(MAKE) $(CMOD) MYCFLAGS="$(LNX_CFLAGS)" MYLDFLAGS="$(LNX_LDFLAGS)" INCDIR="$(INCDIR)" LIBDIR="$(LIBDIR)" DEFS="$(DEFS)"
++	@$(MAKE) $(CMOD) MYCFLAGS="$(LNX_CFLAGS)" MYLDFLAGS="$(LNX_LDFLAGS)" INCDIR="$(INCDIR)" LUALIBDIR="$(LUALIBDIR)" DEFS="$(DEFS)"
+ 
+ bsd:
+-	@$(MAKE) $(CMOD) MYCFLAGS="$(BSD_CFLAGS)" MYLDFLAGS="$(BSD_LDFLAGS)" INCDIR="$(INCDIR)" LIBDIR="$(LIBDIR)" DEFS="$(DEFS)"
++	@$(MAKE) $(CMOD) MYCFLAGS="$(BSD_CFLAGS)" MYLDFLAGS="$(BSD_LDFLAGS)" INCDIR="$(INCDIR)" LUALIBDIR="$(LUALIBDIR)" DEFS="$(DEFS)"
+ 
+ macosx:
+-	@$(MAKE) $(CMOD) MYCFLAGS="$(MAC_CFLAGS)" MYLDFLAGS="$(MAC_LDFLAGS)" MYENV="$(MAC_ENV)" INCDIR="$(INCDIR)" LIBDIR="$(LIBDIR)" DEFS="$(DEFS)"
++	@$(MAKE) $(CMOD) MYCFLAGS="$(MAC_CFLAGS)" MYLDFLAGS="$(MAC_LDFLAGS)" MYENV="$(MAC_ENV)" INCDIR="$(INCDIR)" LUALIBDIR="$(LUALIBDIR)" DEFS="$(DEFS)"
+ 
+ clean:
+ 	rm -f $(OBJS) $(CMOD)
+@@ -59,4 +59,4 @@ clean:
+ 	$(CC) -c $(CFLAGS) $(DEFS) $(INCDIR) -o $@ $<
+ 
+ $(CMOD): $(OBJS)
+-	$(LD) $(LDFLAGS) $(LIBDIR) $(OBJS) $(LIBS) -o $@
++	$(LD) $(LDFLAGS) $(LUALIBDIR) $(OBJS) $(LIBS) -o $@
Index: head/archivers/lua-zlib/pkg-descr
===================================================================
--- head/archivers/lua-zlib/pkg-descr
+++ head/archivers/lua-zlib/pkg-descr
@@ -0,0 +1,6 @@
+lua-zlib is a simple streaming interface to zlib for the Lua Programming
+Language. It consists of two functions: inflate and deflate. Both functions
+return "stream functions" (takes a buffer of input and returns a buffer
+of output).
+
+WWW: https://github.com/brimworks/lua-zlib
Index: head/archivers/lua51-zlib/Makefile
===================================================================
--- head/archivers/lua51-zlib/Makefile
+++ head/archivers/lua51-zlib/Makefile
@@ -1,35 +0,0 @@
-# Created by: Sir l33tname <sirl33tname@gmail.com>
-# $FreeBSD$
-
-PORTNAME=	zlib
-PORTVERSION=	1.2
-DISTVERSIONPREFIX=v
-CATEGORIES=	archivers
-PKGNAMEPREFIX=	lua51-
-
-MAINTAINER=	sirl33tname@gmail.com
-COMMENT=	Simple streaming interface to zlib for the Lua Programming Language
-
-LICENSE=	MIT
-
-USE_GITHUB=	yes
-GH_ACCOUNT=	brimworks
-GH_PROJECT=	lua-zlib
-
-USES=		lua:51
-
-ALL_TARGET=	bsd
-MAKE_ENV+=	LUAPATH="${LOCALBASE}"
-MAKE_ENV+=	LUACPATH="${STAGEDIR}${LUA_MODLIBDIR}"
-MAKE_ENV+=	INCDIR="-I${LUA_INCDIR}"
-MAKE_ENV+=	LUALIBDIR="-L${LUA_MODLIBDIR}"
-LLD_UNSAFE=	yes
-
-PLIST_FILES=	${LUA_MODLIBDIR}/zlib.so
-
-DOCSDIR=	${STAGEDIR}/share/doc/${UNIQUENAME}
-
-pre-install:
-	${MKDIR} ${STAGEDIR}${LUA_MODLIBDIR}
-
-.include <bsd.port.mk>
Index: head/archivers/lua51-zlib/distinfo
===================================================================
--- head/archivers/lua51-zlib/distinfo
+++ head/archivers/lua51-zlib/distinfo
@@ -1,3 +0,0 @@
-TIMESTAMP = 1507829619
-SHA256 (brimworks-lua-zlib-v1.2_GH0.tar.gz) = 26b813ad39c94fc930b168c3418e2e746af3b2e80b92f94f306f6f954cc31e7d
-SIZE (brimworks-lua-zlib-v1.2_GH0.tar.gz) = 16612
Index: head/archivers/lua51-zlib/files/patch-Makefile
===================================================================
--- head/archivers/lua51-zlib/files/patch-Makefile
+++ head/archivers/lua51-zlib/files/patch-Makefile
@@ -1,62 +0,0 @@
---- Makefile.orig	2017-01-03 01:42:12 UTC
-+++ Makefile
-@@ -3,7 +3,7 @@
- LUAPATH  ?= /usr/share/lua/5.1
- LUACPATH ?= /usr/lib/lua/5.1
- INCDIR   ?= -I/usr/include/lua5.1
--LIBDIR   ?= -L/usr/lib
-+LUALIBDIR   ?= -L/usr/lib
- 
- # For Mac OS X: set the system version
- MACOSX_VERSION = 10.4
-@@ -11,21 +11,21 @@ MACOSX_VERSION = 10.4
- CMOD = zlib.so
- OBJS = lua_zlib.o
- 
--LIBS = -lz -llua -lm
-+LIBS = -lz -lm
- WARN = -Wall -pedantic
- 
- BSD_CFLAGS  = -O2 -fPIC $(WARN) $(INCDIR) $(DEFS)
--BSD_LDFLAGS = -O -shared -fPIC $(LIBDIR)
-+BSD_LDFLAGS = -O2 -shared $(LUALIBDIR)
- 
- LNX_CFLAGS  = -O2 -fPIC $(WARN) $(INCDIR) $(DEFS)
--LNX_LDFLAGS = -O -shared -fPIC $(LIBDIR)
-+LNX_LDFLAGS = -O2 -shared -fPIC $(LUALIBDIR)
- 
- MAC_ENV     = env MACOSX_DEPLOYMENT_TARGET='$(MACVER)'
- MAC_CFLAGS  = -O2 -fPIC -fno-common $(WARN) $(INCDIR) $(DEFS)
--MAC_LDFLAGS = -bundle -undefined dynamic_lookup -fPIC $(LIBDIR)
-+MAC_LDFLAGS = -bundle -undefined dynamic_lookup -fPIC $(LUALIBDIR)
- 
--CC = gcc
--LD = $(MYENV) gcc
-+CC ?= gcc
-+LD ?= $(MYENV) gcc
- CFLAGS  = $(MYCFLAGS)
- LDFLAGS = $(MYLDFLAGS)
- 
-@@ -44,13 +44,13 @@ uninstall:
- 	rm $(LUACPATH)/zlib.so
- 
- linux:
--	@$(MAKE) $(CMOD) MYCFLAGS="$(LNX_CFLAGS)" MYLDFLAGS="$(LNX_LDFLAGS)" INCDIR="$(INCDIR)" LIBDIR="$(LIBDIR)" DEFS="$(DEFS)"
-+	@$(MAKE) $(CMOD) MYCFLAGS="$(LNX_CFLAGS)" MYLDFLAGS="$(LNX_LDFLAGS)" INCDIR="$(INCDIR)" LUALIBDIR="$(LUALIBDIR)" DEFS="$(DEFS)"
- 
- bsd:
--	@$(MAKE) $(CMOD) MYCFLAGS="$(BSD_CFLAGS)" MYLDFLAGS="$(BSD_LDFLAGS)" INCDIR="$(INCDIR)" LIBDIR="$(LIBDIR)" DEFS="$(DEFS)"
-+	@$(MAKE) $(CMOD) MYCFLAGS="$(BSD_CFLAGS)" MYLDFLAGS="$(BSD_LDFLAGS)" INCDIR="$(INCDIR)" LUALIBDIR="$(LUALIBDIR)" DEFS="$(DEFS)"
- 
- macosx:
--	@$(MAKE) $(CMOD) MYCFLAGS="$(MAC_CFLAGS)" MYLDFLAGS="$(MAC_LDFLAGS)" MYENV="$(MAC_ENV)" INCDIR="$(INCDIR)" LIBDIR="$(LIBDIR)" DEFS="$(DEFS)"
-+	@$(MAKE) $(CMOD) MYCFLAGS="$(MAC_CFLAGS)" MYLDFLAGS="$(MAC_LDFLAGS)" MYENV="$(MAC_ENV)" INCDIR="$(INCDIR)" LUALIBDIR="$(LUALIBDIR)" DEFS="$(DEFS)"
- 
- clean:
- 	rm -f $(OBJS) $(CMOD)
-@@ -59,4 +59,4 @@ clean:
- 	$(CC) -c $(CFLAGS) $(DEFS) $(INCDIR) -o $@ $<
- 
- $(CMOD): $(OBJS)
--	$(LD) $(LDFLAGS) $(LIBDIR) $(OBJS) $(LIBS) -o $@
-+	$(LD) $(LDFLAGS) $(LUALIBDIR) $(OBJS) $(LIBS) -o $@
Index: head/archivers/lua51-zlib/pkg-descr
===================================================================
--- head/archivers/lua51-zlib/pkg-descr
+++ head/archivers/lua51-zlib/pkg-descr
@@ -1,6 +0,0 @@
-lua-zlib is a simple streaming interface to zlib for the Lua Programming
-Language. It consists of two functions: inflate and deflate. Both functions
-return "stream functions" (takes a buffer of input and returns a buffer
-of output).
-
-WWW: https://github.com/brimworks/lua-zlib
Index: head/astro/celestia/Makefile
===================================================================
--- head/astro/celestia/Makefile
+++ head/astro/celestia/Makefile
@@ -15,7 +15,7 @@
 
 LIB_DEPENDS=	libpng.so:graphics/png
 
-USES=		compiler:c++11-lang gettext gl gmake jpeg libtool lua pkgconfig
+USES=		compiler:c++11-lang gettext gl gmake jpeg libtool lua:52 pkgconfig
 USE_GL=		gl
 GNU_CONFIGURE=	yes
 EXTRA_PATCHES=	${FILESDIR}/celestia-1.6.1-lua-5.2.patch:-p1 \
Index: head/audio/Makefile
===================================================================
--- head/audio/Makefile
+++ head/audio/Makefile
@@ -462,7 +462,7 @@
     SUBDIR += lollypop
     SUBDIR += lpac
     SUBDIR += lsp-plugins-lv2
-    SUBDIR += lua51-mpd
+    SUBDIR += lua-mpd
     SUBDIR += luppp
     SUBDIR += lv2
     SUBDIR += lv2file
Index: head/audio/aqualung/Makefile
===================================================================
--- head/audio/aqualung/Makefile
+++ head/audio/aqualung/Makefile
@@ -3,7 +3,7 @@
 
 PORTNAME=	aqualung
 PORTVERSION=	1.0
-PORTREVISION=	13
+PORTREVISION=	14
 CATEGORIES=	audio
 MASTER_SITES=	SF
 
@@ -30,7 +30,7 @@
 		libcdio_paranoia.so:sysutils/libcdio-paranoia \
 		liblrdf.so:textproc/liblrdf
 
-USES=		compiler:c++11-lang gettext gnome localbase lua pkgconfig
+USES=		compiler:c++11-lang gettext gnome localbase lua:52 pkgconfig
 USE_GNOME=	gtk20 libxml2 libxslt
 GNU_CONFIGURE=	yes
 CONFIGURE_ARGS=	--with-ifp=no
Index: head/audio/lua-mpd/Makefile
===================================================================
--- head/audio/lua-mpd/Makefile
+++ head/audio/lua-mpd/Makefile
@@ -0,0 +1,34 @@
+# $FreeBSD$
+
+PORTNAME=	mpd
+PORTVERSION=	0.1
+PORTREVISION=	1
+DISTVERSIONPREFIX=	v
+CATEGORIES=	audio
+PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
+
+MAINTAINER=	demelier.david@gmail.com
+COMMENT=	Lua library for musicpd
+
+RUN_DEPENDS=	${LUA_REFMODLIBDIR}/socket/core.so:net/luasocket@${LUA_FLAVOR}
+
+OPTIONS_DEFINE=	DOCS
+DOCSDIR=	${LUA_DOCSDIR}
+
+GH_ACCOUNT=	silentbicycle
+GH_PROJECT=	lua-mpd
+
+USES=		lua:51,module
+USE_GITHUB=	yes
+NO_BUILD=	yes
+
+do-install:
+	@${MKDIR} ${STAGEDIR}${LUA_MODSHAREDIR}
+	${INSTALL_DATA} ${WRKSRC}/mpd.lua ${STAGEDIR}${LUA_MODSHAREDIR}
+	@${MKDIR} ${STAGEDIR}${DOCSDIR} ${STAGEDIR}${DOCSDIR}/modules ${STAGEDIR}${DOCSDIR}/files
+	${INSTALL_DATA} ${WRKSRC}/index.html ${STAGEDIR}${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/luadoc.css ${STAGEDIR}${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/files/mpd.html ${STAGEDIR}${DOCSDIR}/files
+	${INSTALL_DATA} ${WRKSRC}/modules/mpd.html ${STAGEDIR}${DOCSDIR}/modules
+
+.include <bsd.port.mk>
Index: head/audio/lua-mpd/distinfo
===================================================================
--- head/audio/lua-mpd/distinfo
+++ head/audio/lua-mpd/distinfo
@@ -0,0 +1,2 @@
+SHA256 (silentbicycle-lua-mpd-v0.1_GH0.tar.gz) = 296f168887e10646624cce98c2f7504b168cb35b5445e2d21ba5fccb50a8f68b
+SIZE (silentbicycle-lua-mpd-v0.1_GH0.tar.gz) = 16351
Index: head/audio/lua-mpd/pkg-descr
===================================================================
--- head/audio/lua-mpd/pkg-descr
+++ head/audio/lua-mpd/pkg-descr
@@ -0,0 +1,3 @@
+This is a Lua client for mpd.
+
+WWW: https://github.com/silentbicycle/lua-mpd
Index: head/audio/lua-mpd/pkg-plist
===================================================================
--- head/audio/lua-mpd/pkg-plist
+++ head/audio/lua-mpd/pkg-plist
@@ -0,0 +1,5 @@
+%%LUA_MODSHAREDIR%%/mpd.lua
+%%PORTDOCS%%%%DOCSDIR%%/files/mpd.html
+%%PORTDOCS%%%%DOCSDIR%%/index.html
+%%PORTDOCS%%%%DOCSDIR%%/luadoc.css
+%%PORTDOCS%%%%DOCSDIR%%/modules/mpd.html
Index: head/converters/Makefile
===================================================================
--- head/converters/Makefile
+++ head/converters/Makefile
@@ -49,7 +49,6 @@
     SUBDIR += linux-c7-fribidi
     SUBDIR += lua-iconv
     SUBDIR += lua-json
-    SUBDIR += lua51-iconv
     SUBDIR += mimelib
     SUBDIR += mmencode
     SUBDIR += mpack
Index: head/converters/lua-iconv/Makefile
===================================================================
--- head/converters/lua-iconv/Makefile
+++ head/converters/lua-iconv/Makefile
@@ -3,7 +3,7 @@
 
 PORTNAME=	iconv
 PORTVERSION=	7
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	converters
 MASTER_SITES=	GHC
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
@@ -13,13 +13,11 @@
 COMMENT=	Iconv binding for Lua 5
 
 BROKEN=		unfetchable
-DEPRECATED=	Broken for more than 6 months
-EXPIRATION_DATE=	2020-05-05
 
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-USES=		pkgconfig iconv lua
+USES=		pkgconfig iconv lua:module
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	ittner
Index: head/converters/lua-json/Makefile
===================================================================
--- head/converters/lua-json/Makefile
+++ head/converters/lua-json/Makefile
@@ -3,17 +3,18 @@
 
 PORTNAME=	json
 PORTVERSION=	1.3.4
+PORTREVISION=	1
 CATEGORIES=	converters
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
 MAINTAINER=	sunpoet@FreeBSD.org
 COMMENT=	JSON parser/creator for Lua
 
-RUN_DEPENDS=	${LUA_PKGNAMEPREFIX}lpeg>=0.8.1:devel/lua-lpeg
+RUN_DEPENDS=	${LUA_PKGNAMEPREFIX}lpeg>=0.8.1:devel/lua-lpeg@${LUA_FLAVOR}
 
 MAKE_ARGS=	INSTALL_CMOD=${LUA_MODLIBDIR} INSTALL_LMOD=${LUA_MODSHAREDIR}
 NO_ARCH=	yes
-USES=		lua:run
+USES=		lua:run,module
 
 GH_ACCOUNT=	harningt
 GH_PROJECT=	lua${PORTNAME}
Index: head/converters/lua51-iconv/Makefile
===================================================================
--- head/converters/lua51-iconv/Makefile
+++ head/converters/lua51-iconv/Makefile
@@ -1,37 +0,0 @@
-# Created by: vanilla@
-# $FreeBSD$
-
-PORTNAME=	iconv
-PORTVERSION=	7
-PORTREVISION=	2
-CATEGORIES=	converters
-MASTER_SITES=	GHC
-PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
-DISTNAME=	lua-${PORTNAME}-${PORTVERSION}
-
-MAINTAINER=	feld@FreeBSD.org
-COMMENT=	Iconv binding for Lua 5
-
-BROKEN=		unfetchable
-DEPRECATED=	Broken for more than 6 months
-EXPIRATION_DATE=	2020-05-05
-
-USES=		pkgconfig iconv lua:51
-
-USE_GITHUB=	yes
-GH_ACCOUNT=	ittner
-GH_PROJECT=	lua-${PORTNAME}
-
-PLIST_FILES=	%%LUA_MODLIBDIR%%/iconv.so
-CFLAGS+=	`pkgconf --cflags lua-${LUA_VER}` -I${LOCALBASE}/include
-MAKE_ARGS=	LUABIN=${LUA_CMD} CFLAGS="${CFLAGS}"
-LDFLAGS=	-shared ${ICONV_LIB} -L${LOCALBASE}/lib
-CFLAGS_aarch64=	-fPIC
-CFLAGS_amd64=	-fPIC
-CFLAGS_i386=	-fPIC
-
-do-install:
-	@${MKDIR} ${STAGEDIR}${LUA_MODLIBDIR}
-	${INSTALL_LIB} ${WRKSRC}/iconv.so ${STAGEDIR}${LUA_MODLIBDIR}
-
-.include <bsd.port.mk>
Index: head/converters/lua51-iconv/distinfo
===================================================================
--- head/converters/lua51-iconv/distinfo
+++ head/converters/lua51-iconv/distinfo
@@ -1,2 +0,0 @@
-SHA256 (lua-iconv-7.tar.gz) = c1db1915c754b5cfe7e45af61467bc6dfa4f0037d281ccbce6b53c974e2faf09
-SIZE (lua-iconv-7.tar.gz) = 7693
Index: head/converters/lua51-iconv/pkg-descr
===================================================================
--- head/converters/lua51-iconv/pkg-descr
+++ head/converters/lua51-iconv/pkg-descr
@@ -1,3 +0,0 @@
-LuaIconv is a Lua binding to iconv library.
-
-WWW: http://luaforge.net/projects/lua-iconv/
Index: head/databases/lua-lsqlite3/Makefile
===================================================================
--- head/databases/lua-lsqlite3/Makefile
+++ head/databases/lua-lsqlite3/Makefile
@@ -3,6 +3,7 @@
 
 PORTNAME=	lsqlite3
 PORTVERSION=	0.9.5
+PORTREVISION=	1
 CATEGORIES=	databases
 MASTER_SITES=	http://Lua.SQLite.org/index.cgi/zip/
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
@@ -15,30 +16,20 @@
 
 BUILD_DEPENDS=	${NONEXISTENT}:databases/sqlite3:patch
 
-USES=		localbase:ldflags sqlite:3 zip
+USES=		localbase:ldflags sqlite:3 zip lua:module
 
 OPTIONS_DEFINE=	DOCS EXAMPLES
-OPTIONS_SINGLE=	LUA_VERSION
-OPTIONS_SINGLE_LUA_VERSION=	LUA51 LUA52 LUA53
-OPTIONS_DEFAULT=LUA${LUA_DEFAULT:S/.//}
 
-LUA51_DESC=	Build for Lua 5.1 and LuaJIT
-LUA51_USES=	lua:51
-LUA52_DESC=	Build for Lua 5.2
-LUA52_USES=	lua:52
-LUA53_DESC=	Build for Lua 5.3
-LUA53_USES=	lua:53
-
 CFLAGS+=	-pedantic -Wall -Qunused-arguments -fPIC -DPIC\
 		-std=c99 -fno-strict-aliasing -I${LUA_INCDIR}\
 		-DLSQLITE_VERSION=\"${PORTVERSION}\"
 LDFLAGS+=	-shared -pthread -lm -L${LOCALBASE}/lib
 
-DOCSDIR=	${PREFIX}/share/doc/lua${LUA_VER_STR}/${PORTNAME}
-EXAMPLESDIR=	${PREFIX}/share/examples/lua${LUA_VER_STR}/${PORTNAME}
+DOCSDIR=	${LUA_DOCSDIR}
+EXAMPLESDIR=	${LUA_EXAMPLESDIR}
 
 pre-configure:
-	@${CP} -p `${MAKE} -V WRKSRC -C ${PORTSDIR}/databases/sqlite3`/sqlite3.[ch] ${WRKSRC}
+	@${CP} -p `${SETENV} -u FLAVOR ${MAKE} -V WRKSRC -C ${PORTSDIR}/databases/sqlite3`/sqlite3.[ch] ${WRKSRC}
 
 do-build:
 	cd ${WRKSRC} &&\
Index: head/databases/lua-xapian/Makefile
===================================================================
--- head/databases/lua-xapian/Makefile
+++ head/databases/lua-xapian/Makefile
@@ -4,6 +4,7 @@
 PORTNAME=	xapian
 PORTVERSION=	1.4.15
 DISTVERSIONPREFIX=	bindings-
+PORTREVISION=	1
 CATEGORIES=	databases
 MASTER_SITES=	https://oligarchy.co.uk/xapian/${PORTVERSION}/ \
 		LOCAL/sunpoet
@@ -24,7 +25,9 @@
 
 PORTSCOUT=	limitw:1,even
 
-USES=		compiler:c++11-lang libtool lua tar:xz
+USES=		compiler:c++11-lang libtool lua:module tar:xz
+
+DOCSDIR=	${LUA_DOCSDIR}
 
 CONFIGURE_ARGS=	--datarootdir=${DATADIR} \
 		--docdir=${DOCSDIR} \
Index: head/databases/luadbi/Makefile
===================================================================
--- head/databases/luadbi/Makefile
+++ head/databases/luadbi/Makefile
@@ -4,6 +4,7 @@
 PORTNAME=	luadbi
 PORTVERSION=	0.6
 DISTVERSIONPREFIX=	v
+PORTREVISION=	1
 CATEGORIES=	databases
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
@@ -12,7 +13,7 @@
 
 LICENSE=	MIT
 
-USES=		gmake shebangfix
+USES=		gmake shebangfix lua:module
 SHEBANG_FILES=	DBI.lua
 
 USE_GITHUB=	yes
@@ -30,17 +31,11 @@
 
 MAKE_JOBS_UNSAFE=yes
 
-OPTIONS_SINGLE=	LUA_VERSION
-OPTIONS_SINGLE_LUA_VERSION=	LUA51 LUA52 LUA53
 OPTIONS_MULTI=	DATABASE
 OPTIONS_MULTI_DATABASE=	MYSQL SQLITE3 PGSQL
-OPTIONS_DEFAULT=	MYSQL LUA52
+OPTIONS_DEFAULT=	MYSQL
 
 PLIST_FILES=	%%LUA_MODSHAREDIR%%/DBI.lua
-
-LUA51_USES=	lua:51
-LUA52_USES=	lua:52
-LUA53_USES=	lua:53
 
 MYSQL_USES=		mysql
 MYSQL_ALL_TARGET=	mysql
Index: head/databases/luasql-mysql/Makefile
===================================================================
--- head/databases/luasql-mysql/Makefile
+++ head/databases/luasql-mysql/Makefile
@@ -3,8 +3,10 @@
 
 PORTNAME=	luasql
 PORTVERSION=	2.5.0
+PORTREVISION=	1
 CATEGORIES=	databases
 PKGNAMESUFFIX=	-${LUASQL_DRIVER}
+PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
 MAINTAINER=	mbeis@xs4all.nl
 COMMENT=	LuaSQL driver
@@ -14,7 +16,7 @@
 USE_GITHUB=	yes
 GH_ACCOUNT=	keplerproject
 
-USES=		lua gmake dos2unix
+USES=		lua:module gmake dos2unix
 DOS2UNIX_FILES=	src/*.c
 ALL_TARGET=	${LUASQL_DRIVER}
 
@@ -30,8 +32,7 @@
 
 CFLAGS+=	-Wno-return-type
 
-PLIST_SUB=	LUA_MIDLIBDIR=${LUA_MODLIBDIR} \
-		LUASQL_DRIVER=${LUASQL_DRIVER}
+PLIST_SUB=	LUASQL_DRIVER=${LUASQL_DRIVER}
 
 .if ${LUASQL_DRIVER} == "mysql"
 COMMENT=	Lua interface to MySQL
Index: head/databases/redis-devel/Makefile
===================================================================
--- head/databases/redis-devel/Makefile
+++ head/databases/redis-devel/Makefile
@@ -31,7 +31,7 @@
 
 JEMALLOC_MAKE_ENV=	USE_JEMALLOC=yes
 
-LUA_USE=		lua=51
+LUA_USES=		lua:51
 LUA_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-src-Makefile.lua
 LUA_VARS=		_addflags=true
 
Index: head/databases/xapian-bindings/Makefile
===================================================================
--- head/databases/xapian-bindings/Makefile
+++ head/databases/xapian-bindings/Makefile
@@ -17,7 +17,7 @@
 
 USES=		metaport
 
-LUA_RUN_DEPENDS=	${LUA_PKGNAMEPREFIX}xapian>=${PORTVERSION}:databases/lua-xapian
+LUA_RUN_DEPENDS=	${LUA_PKGNAMEPREFIX}xapian>=${PORTVERSION}:databases/lua-xapian@${LUA_FLAVOR}
 LUA_USES=		lua:run
 PERL_RUN_DEPENDS=	p5-Xapian>=${PORTVERSION}:databases/p5-Xapian
 PHP_RUN_DEPENDS=	php-xapian>=${PORTVERSION}:databases/php-xapian
Index: head/devel/Makefile
===================================================================
--- head/devel/Makefile
+++ head/devel/Makefile
@@ -1460,6 +1460,7 @@
     SUBDIR += lua-cjson
     SUBDIR += lua-gettext
     SUBDIR += lua-lgi
+    SUBDIR += lua-libevent
     SUBDIR += lua-lpeg
     SUBDIR += lua-luacheck
     SUBDIR += lua-luarocks
@@ -1472,12 +1473,8 @@
     SUBDIR += lua-stdlib-debug
     SUBDIR += lua-stdlib-normalize
     SUBDIR += lua-sysctl
-    SUBDIR += lua51-bitop
-    SUBDIR += lua51-cjson
-    SUBDIR += lua51-libevent
     SUBDIR += luabind
     SUBDIR += luafilesystem
-    SUBDIR += luafilesystem-51
     SUBDIR += luajava
     SUBDIR += lutok
     SUBDIR += luv
Index: head/devel/lua-MessagePack/Makefile
===================================================================
--- head/devel/lua-MessagePack/Makefile
+++ head/devel/lua-MessagePack/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	MessagePack
 PORTVERSION=	0.3.5
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
@@ -15,7 +16,7 @@
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/COPYRIGHT
 
-USES=		lua
+USES=		lua:module
 NO_BUILD=	yes
 NO_ARCH=	yes
 
Index: head/devel/lua-bitlib/Makefile
===================================================================
--- head/devel/lua-bitlib/Makefile
+++ head/devel/lua-bitlib/Makefile
@@ -3,6 +3,7 @@
 
 PORTNAME=	bitlib
 PORTVERSION=	24
+PORTREVISION=	1
 CATEGORIES=	devel
 MASTER_SITES=	http://luaforge.net/frs/download.php/2715/
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
@@ -10,7 +11,7 @@
 MAINTAINER=	ports@FreeBSD.org
 COMMENT=	Tiny library for bitwise operations
 
-USES=		lua
+USES=		lua:module
 
 PLIST_FILES=	%%LUA_MODLIBDIR%%/bit.so
 
Index: head/devel/lua-bitop/Makefile
===================================================================
--- head/devel/lua-bitop/Makefile
+++ head/devel/lua-bitop/Makefile
@@ -3,7 +3,7 @@
 
 PORTNAME=	bitop
 PORTVERSION=	1.0.2
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	devel
 MASTER_SITES=	http://bitop.luajit.org/download/ \
 		LOCAL/sunpoet
@@ -18,7 +18,7 @@
 CFLAGS+=	-I${LUA_INCDIR}
 MAKE_ARGS=	CC=${CC} LUA=${LUA_CMD}
 TEST_TARGET=	test
-USES?=		gmake lua
+USES=		gmake lua:module
 
 PLIST_FILES=	${LUA_MODLIBDIR}/bit.so
 
Index: head/devel/lua-cjson/Makefile
===================================================================
--- head/devel/lua-cjson/Makefile
+++ head/devel/lua-cjson/Makefile
@@ -3,18 +3,19 @@
 
 PORTNAME=	cjson
 PORTVERSION=	2.1.0
+PORTREVISION=	1
 CATEGORIES=	devel
 MASTER_SITES=	http://www.kyne.com.au/~mark/software/download/
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 DISTNAME=	lua-cjson-${PORTVERSION}
 
 MAINTAINER=	osa@FreeBSD.org
-COMMENT?=	Fast JSON parsing and encoding support for Lua
+COMMENT=	Fast JSON parsing and encoding support for Lua
 
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-USES?=		lua
+USES=		lua:module
 
 MAKE_ARGS=	LUA_VERSION=${LUA_VER}
 
Index: head/devel/lua-gettext/Makefile
===================================================================
--- head/devel/lua-gettext/Makefile
+++ head/devel/lua-gettext/Makefile
@@ -3,7 +3,7 @@
 
 PORTNAME=	gettext
 PORTVERSION=	1.5
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	devel
 MASTER_SITES=	https://raw.githubusercontent.com/nuclewall/bsdinstaller/${COMMIT}/src/lib/lua/gettext/ \
 		https://BSDforge.com/projects/source/devel/lua-gettext/
@@ -14,7 +14,7 @@
 MAINTAINER=	portmaster@BSDforge.com
 COMMENT=	Gettext binding for Lua 5
 
-USES=		gettext lua:51
+USES=		gettext lua:51,module
 
 CVER=		1.15
 LVER=		${PORTVERSION}
Index: head/devel/lua-lgi/Makefile
===================================================================
--- head/devel/lua-lgi/Makefile
+++ head/devel/lua-lgi/Makefile
@@ -2,10 +2,11 @@
 
 PORTNAME=	lgi
 PORTVERSION=	0.9.2
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
-MAINTAINER=	ports@FreeBSD.org
+MAINTAINER=	andrew@tao11.riddles.org.uk
 COMMENT=	Lua bindings to libraries using GObject-Introspection
 
 LICENSE=	MIT
@@ -14,7 +15,7 @@
 USE_GITHUB=	yes
 GH_ACCOUNT=	pavouk
 
-USES=		gmake gnome lua pkgconfig
+USES=		gmake gnome lua:module pkgconfig
 USE_GNOME=	introspection:build,run
 MAKE_ENV=	LUA_CFLAGS="-I${LUA_INCDIR}"
 MAKE_ARGS=	PREFIX="${PREFIX}" LUA_LIBDIR="${LUA_MODLIBDIR}" \
Index: head/devel/lua-libevent/Makefile
===================================================================
--- head/devel/lua-libevent/Makefile
+++ head/devel/lua-libevent/Makefile
@@ -0,0 +1,45 @@
+# Created by: Sir l33tname <sirl33tname@gmail.com>
+# $FreeBSD$
+
+PORTNAME=	libevent
+PORTVERSION=	0.4.6
+DISTVERSIONPREFIX=v
+PORTREVISION=	2
+CATEGORIES=	devel
+PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
+
+MAINTAINER=	sirl33tname@gmail.com
+COMMENT=	Lua libevent binding
+
+LICENSE=	MIT
+
+LIB_DEPENDS=	libevent.so:devel/libevent
+RUN_DEPENDS=	${LUA_REFMODLIBDIR}/socket/core.so:net/luasocket@${LUA_FLAVOR}
+
+USES=		gmake pkgconfig lua:51,module
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	harningt
+GH_PROJECT=	luaevent
+
+MAKE_ENV+=	INSTALL_DIR_LUA=${LUA_MODSHAREDIR}
+MAKE_ENV+=	INSTALL_DIR_BIN=${LUA_MODLIBDIR}
+
+CFLAGS+=	`pkgconf --cflags lua-${LUA_VER}` \
+		`pkgconf --cflags libevent` \
+		-I${LUA_INCDIR}
+LDFLAGS+=	-shared -L${LOCALBASE}/lib \
+		`pkgconf --libs lua-${LUA_VER}` \
+		`pkgconf --libs libevent`
+
+PLIST_FILES=	${LUA_MODLIBDIR}/luaevent/core.so \
+		${LUA_MODSHAREDIR}/luaevent.lua
+
+post-patch:
+		@${REINPLACE_CMD} -e 's/CFLAGS[[:blank:]]*=/CFLAGS\+=/g' ${WRKSRC}/Makefile
+		@${REINPLACE_CMD} -e 's/LDFLAGS[[:blank:]]*=/LDFLAGS\+=/g' ${WRKSRC}/Makefile
+
+pre-install:
+	${MKDIR} ${STAGEDIR}${LUA_MODLIBDIR}
+
+.include <bsd.port.mk>
Index: head/devel/lua-libevent/distinfo
===================================================================
--- head/devel/lua-libevent/distinfo
+++ head/devel/lua-libevent/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1546783268
+SHA256 (harningt-luaevent-v0.4.6_GH0.tar.gz) = dd12babb252115895618c1243557534decde289bf0c255ffebf0dcd14a18705d
+SIZE (harningt-luaevent-v0.4.6_GH0.tar.gz) = 22599
Index: head/devel/lua-libevent/pkg-descr
===================================================================
--- head/devel/lua-libevent/pkg-descr
+++ head/devel/lua-libevent/pkg-descr
@@ -0,0 +1,5 @@
+This is a binding of libevent to Lua. It will serve as a drop-in
+replacement for copas, and eventually support more features (async DNS,
+HTTP, RPC...).
+
+WWW: https://github.com/harningt/luaevent
Index: head/devel/lua-lpeg/Makefile
===================================================================
--- head/devel/lua-lpeg/Makefile
+++ head/devel/lua-lpeg/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	lpeg
 PORTVERSION=	1.0.2
+PORTREVISION=	1
 CATEGORIES=	devel
 MASTER_SITES=	http://www.inf.puc-rio.br/~roberto/lpeg/ \
 		LOCAL/sunpoet
@@ -12,7 +13,7 @@
 
 LICENSE=	MIT
 
-USES=		lua
+USES=		lua:module
 
 ALL_TARGET=	linux
 MAKE_ARGS=	CC=${CC} LUADIR=${LUA_INCDIR}
Index: head/devel/lua-luacheck/Makefile
===================================================================
--- head/devel/lua-luacheck/Makefile
+++ head/devel/lua-luacheck/Makefile
@@ -11,7 +11,7 @@
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-RUN_DEPENDS=	${LUA_MODLIBDIR}/lfs.so:devel/luafilesystem
+RUN_DEPENDS=	${LUA_REFMODLIBDIR}/lfs.so:devel/luafilesystem@${LUA_FLAVOR}
 
 USES=	lua
 NO_ARCH=	yes
Index: head/devel/lua-posix/Makefile
===================================================================
--- head/devel/lua-posix/Makefile
+++ head/devel/lua-posix/Makefile
@@ -4,6 +4,7 @@
 PORTNAME=	posix
 PORTVERSION=	34.1.1
 DISTVERSIONPREFIX=	v
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
@@ -13,9 +14,9 @@
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-RUN_DEPENDS=	${LUA_PKGNAMEPREFIX}stdlib-normalize>=0:devel/lua-stdlib-normalize
+RUN_DEPENDS=	${LUA_PKGNAMEPREFIX}stdlib-normalize>=0:devel/lua-stdlib-normalize@${LUA_FLAVOR}
 
-USES=		lua shebangfix
+USES=		lua:module shebangfix
 SHEBANG_FILES=	build-aux/luke
 
 USE_GITHUB=	yes
Index: head/devel/lua-pty/Makefile
===================================================================
--- head/devel/lua-pty/Makefile
+++ head/devel/lua-pty/Makefile
@@ -3,6 +3,7 @@
 
 PORTNAME=	pty
 PORTVERSION=	1.25
+PORTREVISION=	1
 CATEGORIES=	devel
 MASTER_SITES=	https://raw.githubusercontent.com/nuclewall/bsdinstaller/${COMMIT}/src/lib/lua/pty/ \
 		https://BSDforge.com/projects/source/devel/lua-pty/
@@ -13,7 +14,7 @@
 MAINTAINER=	portmaster@BSDforge.com
 COMMENT=	Pty (pseudo-terminal) bindings for Lua 5
 
-USES=		lua:51
+USES=		lua:51,module
 
 COMMIT=		8323bb9
 MAKEFILE=	${FILESDIR}/Makefile
Index: head/devel/lua-stdlib-debug/Makefile
===================================================================
--- head/devel/lua-stdlib-debug/Makefile
+++ head/devel/lua-stdlib-debug/Makefile
@@ -3,6 +3,7 @@
 PORTNAME=	stdlib-debug
 PORTVERSION=	1.0.1
 DISTVERSIONPREFIX=	v
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
@@ -13,7 +14,7 @@
 LICENSE_FILE=	${WRKSRC}/LICENSE.md
 
 NO_ARCH=	yes
-USES=		lua
+USES=		lua:module
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	lua-stdlib
@@ -21,7 +22,7 @@
 
 OPTIONS_DEFINE=	DOCS
 
-DOCSDIR=	${PREFIX}/share/doc/lua${LUA_VER_STR}/${PORTNAME}
+DOCSDIR=	${LUA_DOCSDIR}
 
 do-install:
 	@${MKDIR} ${STAGEDIR}${LUA_MODSHAREDIR}/std/_debug
Index: head/devel/lua-stdlib-normalize/Makefile
===================================================================
--- head/devel/lua-stdlib-normalize/Makefile
+++ head/devel/lua-stdlib-normalize/Makefile
@@ -3,6 +3,7 @@
 PORTNAME=	stdlib-normalize
 PORTVERSION=	2.0.2
 DISTVERSIONPREFIX=	v
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
@@ -12,10 +13,10 @@
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE.md
 
-RUN_DEPENDS=	${LUA_PKGNAMEPREFIX}stdlib-debug>=0:devel/lua-stdlib-debug
+RUN_DEPENDS=	${LUA_PKGNAMEPREFIX}stdlib-debug>=0:devel/lua-stdlib-debug@${LUA_FLAVOR}
 
 NO_ARCH=	yes
-USES=		lua
+USES=		lua:module
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	lua-stdlib
@@ -23,7 +24,7 @@
 
 OPTIONS_DEFINE=	DOCS
 
-DOCSDIR=	${PREFIX}/share/doc/lua${LUA_VER_STR}/${PORTNAME}
+DOCSDIR=	${LUA_DOCSDIR}
 
 do-install:
 	@${MKDIR} ${STAGEDIR}${LUA_MODSHAREDIR}/std/normalize
Index: head/devel/lua-stdlib/Makefile
===================================================================
--- head/devel/lua-stdlib/Makefile
+++ head/devel/lua-stdlib/Makefile
@@ -4,6 +4,7 @@
 PORTNAME=	stdlib
 PORTVERSION=	41.2.2
 DISTVERSIONPREFIX=	release-v
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
@@ -13,19 +14,21 @@
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-RUN_DEPENDS=	${LUA_PKGNAMEPREFIX}stdlib-debug>=0:devel/lua-stdlib-debug \
-		${LUA_PKGNAMEPREFIX}stdlib-normalize>=2.0:devel/lua-stdlib-normalize
+RUN_DEPENDS=	${LUA_PKGNAMEPREFIX}stdlib-debug>=0:devel/lua-stdlib-debug@${LUA_FLAVOR} \
+		${LUA_PKGNAMEPREFIX}stdlib-normalize>=2.0:devel/lua-stdlib-normalize@${LUA_FLAVOR}
 
 OPTIONS_DEFINE=	DOCS
 
-USES=		lua
+USES=		lua:module
 
-CONFIGURE_ARGS=	LUA=${LUA_CMD}
+CONFIGURE_ARGS=	--docdir=${DOCSDIR} LUA=${LUA_CMD}
 GNU_CONFIGURE=	yes
 NO_ARCH=	yes
 
 GH_ACCOUNT=	lua-stdlib
 GH_PROJECT=	lua-stdlib
 USE_GITHUB=	yes
+
+DOCSDIR=	${LUA_DOCSDIR}
 
 .include <bsd.port.mk>
Index: head/devel/lua-sysctl/Makefile
===================================================================
--- head/devel/lua-sysctl/Makefile
+++ head/devel/lua-sysctl/Makefile
@@ -3,6 +3,7 @@
 PORTNAME=	sysctl
 PORTVERSION=	2.0
 DISTVERSIONPREFIX=	v
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
@@ -11,18 +12,18 @@
 
 LICENSE=	BSD2CLAUSE
 
-USES=		lua pkgconfig
+USES=		lua:52+,module pkgconfig
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	kAworu
 GH_PROJECT=	lua-${PORTNAME}
 
 OPTIONS_DEFINE=	DOCS EXAMPLES
-DOCSDIR=	${PREFIX}/share/doc/lua${LUA_VER_STR}/${PORTNAME}
-EXAMPLESDIR=	${PREFIX}/share/examples/lua${LUA_VER_STR}/${PORTNAME}
+DOCSDIR=	${LUA_DOCSDIR}
+EXAMPLESDIR=	${LUA_EXAMPLESDIR}
 
 post-patch:
-	@${REINPLACE_CMD} -e "s/5.1/${LUA_VER}/g" ${WRKSRC}/Makefile
+	@${REINPLACE_CMD} -e "s/5.2/${LUA_VER}/g" ${WRKSRC}/Makefile
 
 do-install:
 	@${MKDIR} ${STAGEDIR}${LUA_MODLIBDIR}
Index: head/devel/lua51-bitop/Makefile
===================================================================
--- head/devel/lua51-bitop/Makefile
+++ head/devel/lua51-bitop/Makefile
@@ -1,12 +0,0 @@
-# Created by: lx
-# $FreeBSD$
-
-COMMENT=	lua-bitop for Lua 5.1
-
-USES=		gmake lua:51
-
-MASTERDIR=	${.CURDIR}/../lua-bitop
-
-PLIST=		${MASTERDIR}/pkg-plist
-
-.include "${MASTERDIR}/Makefile"
Index: head/devel/lua51-cjson/Makefile
===================================================================
--- head/devel/lua51-cjson/Makefile
+++ head/devel/lua51-cjson/Makefile
@@ -1,10 +0,0 @@
-# Created by: osa
-# $FreeBSD$
-
-COMMENT=	Fast JSON parsing and encoding support for Lua 5.1
-
-MASTERDIR=	${.CURDIR}/../lua-cjson
-
-USES=		lua:51
-
-.include "${MASTERDIR}/Makefile"
Index: head/devel/lua51-libevent/Makefile
===================================================================
--- head/devel/lua51-libevent/Makefile
+++ head/devel/lua51-libevent/Makefile
@@ -1,45 +0,0 @@
-# Created by: Sir l33tname <sirl33tname@gmail.com>
-# $FreeBSD$
-
-PORTNAME=	lua51
-PORTVERSION=	0.4.6
-DISTVERSIONPREFIX=v
-PORTREVISION=	1
-CATEGORIES=	devel
-PKGNAMESUFFIX=	-libevent
-
-MAINTAINER=	sirl33tname@gmail.com
-COMMENT=	Lua libevent binding
-
-LICENSE=	MIT
-
-LIB_DEPENDS=	libevent.so:devel/libevent
-RUN_DEPENDS=	${LUA_MODLIBDIR}/socket/core.so:net/luasocket-51
-
-USES=		gmake pkgconfig lua:51
-
-USE_GITHUB=	yes
-GH_ACCOUNT=	harningt
-GH_PROJECT=	luaevent
-
-MAKE_ENV+=	INSTALL_DIR_LUA=${LUA_MODSHAREDIR}
-MAKE_ENV+=	INSTALL_DIR_BIN=${LUA_MODLIBDIR}
-
-CFLAGS+=	`pkgconf --cflags lua-${LUA_VER}` \
-		`pkgconf --cflags libevent` \
-		-I${LUA_INCDIR}
-LDFLAGS+=	-shared -L${LOCALBASE}/lib \
-		`pkgconf --libs lua-${LUA_VER}` \
-		`pkgconf --libs libevent`
-
-PLIST_FILES=	${LUA_MODLIBDIR}/luaevent/core.so \
-		${LUA_MODSHAREDIR}/luaevent.lua
-
-post-patch:
-		@${REINPLACE_CMD} -e 's/CFLAGS[[:blank:]]*=/CFLAGS\+=/g' ${WRKSRC}/Makefile
-		@${REINPLACE_CMD} -e 's/LDFLAGS[[:blank:]]*=/LDFLAGS\+=/g' ${WRKSRC}/Makefile
-
-pre-install:
-	${MKDIR} ${STAGEDIR}${LUA_MODLIBDIR}
-
-.include <bsd.port.mk>
Index: head/devel/lua51-libevent/distinfo
===================================================================
--- head/devel/lua51-libevent/distinfo
+++ head/devel/lua51-libevent/distinfo
@@ -1,3 +0,0 @@
-TIMESTAMP = 1546783268
-SHA256 (harningt-luaevent-v0.4.6_GH0.tar.gz) = dd12babb252115895618c1243557534decde289bf0c255ffebf0dcd14a18705d
-SIZE (harningt-luaevent-v0.4.6_GH0.tar.gz) = 22599
Index: head/devel/lua51-libevent/pkg-descr
===================================================================
--- head/devel/lua51-libevent/pkg-descr
+++ head/devel/lua51-libevent/pkg-descr
@@ -1,5 +0,0 @@
-This is a binding of libevent to Lua. It will serve as a drop-in
-replacement for copas, and eventually support more features (async DNS,
-HTTP, RPC...).
-
-WWW: https://github.com/harningt/luaevent
Index: head/devel/luafilesystem-51/Makefile
===================================================================
--- head/devel/luafilesystem-51/Makefile
+++ head/devel/luafilesystem-51/Makefile
@@ -1,13 +0,0 @@
-# Created by: Nikolai Lifanov
-# $FreeBSD$
-
-COMMENT=        LuaFileSystem for Lua 5.1
-
-SLAVE_PORT=     luafilesystem
-
-USES=	lua:51
-
-MASTERDIR=      ${.CURDIR}/../luafilesystem
-PLIST=          ${MASTERDIR}/pkg-plist
-
-.include "${MASTERDIR}/Makefile"
Index: head/devel/luafilesystem/Makefile
===================================================================
--- head/devel/luafilesystem/Makefile
+++ head/devel/luafilesystem/Makefile
@@ -4,6 +4,7 @@
 PORTNAME=	luafilesystem
 DISTVERSIONPREFIX=	v
 DISTVERSION=	1_7_0
+PORTREVISION=	1
 CATEGORIES=	devel
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
@@ -12,7 +13,7 @@
 
 LICENSE=	MIT
 
-USES?=		lua
+USES=		lua:module
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	keplerproject
@@ -25,6 +26,8 @@
 MAKE_ARGS+=	INCS="-I${LUA_INCDIR}"
 
 OPTIONS_DEFINE=	DOCS
+
+DOCSDIR=	${LUA_DOCSDIR}
 
 post-patch:
 	${REINPLACE_CMD} -e \
Index: head/devel/swig30/Makefile
===================================================================
--- head/devel/swig30/Makefile
+++ head/devel/swig30/Makefile
@@ -3,6 +3,7 @@
 
 PORTNAME=	swig
 PORTVERSION=	3.0.12
+PORTREVISION=	1
 CATEGORIES=	devel
 MASTER_SITES=	SF/${PORTNAME}/${PORTNAME}/${PORTNAME}-${PORTVERSION}
 PKGNAMESUFFIX=	30
@@ -25,7 +26,7 @@
 		--with-lualib=${LUA_LIBDIR}
 GNU_CONFIGURE=	yes
 TEST_TARGET=	check
-USES=		gmake lua
+USES=		gmake lua:build
 
 PLIST_SUB=	PORTVERSION=${PORTVERSION}
 
Index: head/dns/knot-resolver/Makefile
===================================================================
--- head/dns/knot-resolver/Makefile
+++ head/dns/knot-resolver/Makefile
@@ -96,8 +96,8 @@
 
 TRUSTANCHOR_DESC=		Trust anchor bootstrapping and stats
 TRUSTANCHOR_USES=		lua
-TRUSTANCHOR_BUILD_DEPENDS=	${LUA_PKGNAMEPREFIX}luasocket>=0:net/luasocket \
-				${LUA_PKGNAMEPREFIX}luasec>=0:security/luasec
+TRUSTANCHOR_BUILD_DEPENDS=	${LUA_PKGNAMEPREFIX}luasocket>=0:net/luasocket@${LUA_FLAVOR} \
+				${LUA_PKGNAMEPREFIX}luasec>=0:security/luasec@${LUA_FLAVOR}
 
 .include <bsd.port.options.mk>
 
Index: head/editors/fxite/Makefile
===================================================================
--- head/editors/fxite/Makefile
+++ head/editors/fxite/Makefile
@@ -16,7 +16,7 @@
 USE_GITHUB=	yes
 GH_ACCOUNT=	yetanothergeek
 
-USES=		autoreconf desktop-file-utils gettext gmake lua pkgconfig
+USES=		autoreconf desktop-file-utils gettext gmake lua:52 pkgconfig
 GNU_CONFIGURE=	yes
 CONFIGURE_ARGS=	--with-system-lua \
 		--with-lua-pkg=lua-${LUA_VER}
Index: head/editors/mle/Makefile
===================================================================
--- head/editors/mle/Makefile
+++ head/editors/mle/Makefile
@@ -13,15 +13,14 @@
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	${LOCALBASE}/include/uthash.h:devel/uthash
-LIB_DEPENDS=	liblua-5.3.so:lang/lua53 \
-		libpcre.so:devel/pcre \
+LIB_DEPENDS=	libpcre.so:devel/pcre \
 		libtermbox.so:devel/termbox
 TEST_DEPENDS=	${LOCALBASE}/bin/gpaste:sysutils/coreutils \
 		${LOCALBASE}/bin/grep:textproc/gnugrep \
 		bash:shells/bash \
 		gfind:misc/findutils
 
-USES=		compiler:c11 gmake localbase:ldflags shebangfix
+USES=		compiler:c11 gmake localbase:ldflags shebangfix lua:53
 SHEBANG_FILES=	tests/func/*.sh tests/run.sh
 USE_GITHUB=	yes
 GH_ACCOUNT=	adsr
Index: head/editors/neovim/Makefile
===================================================================
--- head/editors/neovim/Makefile
+++ head/editors/neovim/Makefile
@@ -12,8 +12,8 @@
 LICENSE=	APACHE20
 
 BUILD_DEPENDS=	gperf:devel/gperf \
-		${LUA_MODLIBDIR}/bit.so:devel/lua-bitop \
-		${LUA_MODLIBDIR}/lpeg.so:devel/lua-lpeg
+		${LUA_MODLIBDIR}/bit.so:devel/lua-bitop@${LUA_FLAVOR} \
+		${LUA_MODLIBDIR}/lpeg.so:devel/lua-lpeg@${LUA_FLAVOR}
 LIB_DEPENDS=	libluv.so:devel/luv \
 		libmsgpackc.so:devel/msgpack \
 		libtermkey.so:devel/libtermkey \
Index: head/editors/wordgrinder/Makefile
===================================================================
--- head/editors/wordgrinder/Makefile
+++ head/editors/wordgrinder/Makefile
@@ -8,7 +8,7 @@
 MAINTAINER=	vmagerya@gmail.com
 COMMENT=	Simple Unicode-aware console and X11-based word processor
 
-RUN_DEPENDS=	${LUA_MODLIBDIR}/lfs.so:devel/luafilesystem
+RUN_DEPENDS=	${LUA_REFMODLIBDIR}/lfs.so:devel/luafilesystem@${LUA_FLAVOR}
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	davidgiven
Index: head/finance/moneymanagerex/Makefile
===================================================================
--- head/finance/moneymanagerex/Makefile
+++ head/finance/moneymanagerex/Makefile
@@ -29,7 +29,7 @@
 		moneymanagerex:ctpp:20158e0:ctpp/3rd/ctpp \
 		moneymanagerex:mongoose:97583a6:mongoose/3rd/mongoose
 
-USES=		autoreconf compiler:c++11-lib gettext gmake gnome lua pkgconfig
+USES=		autoreconf compiler:c++11-lib gettext gmake gnome lua:52 pkgconfig
 GNU_CONFIGURE=	yes
 USE_WX=		3.0
 WX_CONF_ARGS=	absolute
Index: head/games/corsix-th/Makefile
===================================================================
--- head/games/corsix-th/Makefile
+++ head/games/corsix-th/Makefile
@@ -13,8 +13,8 @@
 LICENSE=	MIT
 
 LIB_DEPENDS=	libfreetype.so:print/freetype2
-RUN_DEPENDS=	${LUA_MODLIBDIR}/lfs.so:devel/luafilesystem \
-		${LUA_MODLIBDIR}/lpeg.so:devel/lua-lpeg
+RUN_DEPENDS=	${LUA_REFMODLIBDIR}/lfs.so:devel/luafilesystem@${LUA_FLAVOR} \
+		${LUA_REFMODLIBDIR}/lpeg.so:devel/lua-lpeg@${LUA_FLAVOR}
 
 USES=		cmake:insource compiler:c++11-lib desktop-file-utils dos2unix \
 		iconv lua pkgconfig sdl
Index: head/graphics/lua-gd/Makefile
===================================================================
--- head/graphics/lua-gd/Makefile
+++ head/graphics/lua-gd/Makefile
@@ -3,7 +3,7 @@
 
 PORTNAME=	lua-gd
 PORTVERSION=	2.0.33r2
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	graphics
 MASTER_SITES=	http://files.luaforge.net/releases/${PORTNAME}/${PORTNAME}/${PORTNAME}-${PORTVERSION}forLua5.1/
 
@@ -16,11 +16,14 @@
 
 OPTIONS_DEFINE=	DOCS EXAMPLES
 
-USES=		lua:51
+USES=		lua:51,module
 CFLAGS+=	-I${LUA_INCDIR} -I${LOCALBASE}/include
 LDFLAGS+=	-shared -L${LOCALBASE}/lib -lgd -L${LUA_LIBDIR} -llua-${LUA_VER} -lm
 GDFEATURES=	`gdlib-config --features |sed -e "s/GD_/-DGD_/g"`
 
+DOCSDIR=	${LUA_DOCSDIR}
+EXAMPLESDIR=	${LUA_EXAMPLESDIR}
+
 .include <bsd.port.options.mk>
 
 CFLAGS_aarch64+=-fPIC
@@ -29,8 +32,6 @@
 
 do-build:
 	${CC} -o ${WRKSRC}/gd.so ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} ${GDFEATURES} ${WRKSRC}/luagd.c
-
-LUA_MODLIBDIR=	${PREFIX}/lib/lua/${LUA_VER}
 
 do-install:
 	${MKDIR} ${STAGEDIR}${LUA_MODLIBDIR}
Index: head/lang/lua-ada/Makefile
===================================================================
--- head/lang/lua-ada/Makefile
+++ head/lang/lua-ada/Makefile
@@ -15,7 +15,7 @@
 
 BUILD_DEPENDS=	gprbuild:devel/gprbuild
 
-USES=		ada lua
+USES=		ada lua:52
 USE_GITHUB=	yes
 GH_ACCOUNT=	AdaCore
 GH_PROJECT=	ada-lua
Index: head/lang/lua51/Makefile
===================================================================
--- head/lang/lua51/Makefile
+++ head/lang/lua51/Makefile
@@ -13,8 +13,7 @@
 
 LICENSE=	MIT
 
-USES=		libedit
-LUA_VER=	5.1
+USES=		libedit lua:core,51
 USE_LDCONFIG=	yes
 
 # Overriding __MAKE_CONF makes sure that we don't re-parse
@@ -24,6 +23,7 @@
 # have its settings when we get here.
 # See http://wiki.freebsd.org/MatthiasAndree/LuaLessonsLearnt
 MAKE_ARGS=	__MAKE_CONF=${NONEXISTENT}
+
 # liblua.so requires libm, so make sure it has an explicit dependency
 # so that applications need not second-guess lua's dependencies.
 CPPFLAGS+=	-I${LOCALBASE}/include
@@ -43,14 +43,6 @@
 		INSTALL_TOP=${STAGEDIR}${PREFIX} \
 		INSTALL_INC=${STAGEDIR}${PREFIX}/include/lua51 \
 		INSTALL_EXEC="${INSTALL_PROGRAM}"
-
-# Cope with the lack of support for Lua 5.2 in bsd.lua.mk.  These
-# overrides, which are required below, should be removed once bsd.lua.mk
-# understands this lua version.
-LUA_PREFIX?=	${PREFIX}
-LUA_SUBDIR?=	lua${PKGNAMESUFFIX}
-LUA_INCDIR?=	${LUA_PREFIX}/include/${LUA_SUBDIR}
-LUA_LIBDIR?=	${LUA_PREFIX}/lib
 
 CFLAGS+=	-fPIC
 
Index: head/lang/lua52/Makefile
===================================================================
--- head/lang/lua52/Makefile
+++ head/lang/lua52/Makefile
@@ -12,8 +12,7 @@
 
 LICENSE=	MIT
 
-USES=		libedit
-LUA_VER=	5.2
+USES=		libedit lua:core,52
 USE_LDCONFIG=	yes
 
 # Overriding __MAKE_CONF makes sure that we don't re-parse
@@ -23,6 +22,7 @@
 # have its settings when we get here.
 # See http://wiki.freebsd.org/MatthiasAndree/LuaLessonsLearnt
 MAKE_ARGS=	__MAKE_CONF=${NONEXISTENT}
+
 # liblua.so requires libm, so make sure it has an explicit dependency
 # so that applications need not second-guess lua's dependencies.
 CPPFLAGS+=	-I${LOCALBASE}/include
@@ -42,14 +42,6 @@
 		INSTALL_TOP=${STAGEDIR}${PREFIX} \
 		INSTALL_INC=${STAGEDIR}${PREFIX}/include/lua52 \
 		INSTALL_EXEC="${INSTALL_PROGRAM}"
-
-# Cope with the lack of support for Lua 5.2 in bsd.lua.mk.  These
-# overrides, which are required below, should be removed once bsd.lua.mk
-# understands this lua version.
-LUA_PREFIX?=	${PREFIX}
-LUA_SUBDIR?=	lua${PKGNAMESUFFIX}
-LUA_INCDIR?=	${LUA_PREFIX}/include/${LUA_SUBDIR}
-LUA_LIBDIR?=	${LUA_PREFIX}/lib
 
 SUB_FILES=	lua-${LUA_VER}.pc
 SUB_LIST=	version=${PORTVERSION} \
Index: head/lang/lua53/Makefile
===================================================================
--- head/lang/lua53/Makefile
+++ head/lang/lua53/Makefile
@@ -13,7 +13,7 @@
 
 LICENSE=	MIT
 
-LUA_VER=	5.3
+USES=		lua:core,53
 USE_LDCONFIG=	yes
 
 # Overriding __MAKE_CONF makes sure that we don't re-parse
@@ -32,17 +32,9 @@
 # We put the docs for Lua proper in a lua/ subdir of the version subdir
 # so that ports for Lua modules can use the version subdir too without
 # making a mess.
-DOCSDIR=	${PREFIX}/share/doc/lua${PKGNAMESUFFIX}/lua
+DOCSDIR=	${LUA_DOCSDIR}
 PORTDOCS=	*
 BUILD_WRKDOC=	${WRKSRC}/doc
-
-LUA_PREFIX=	${PREFIX}
-
-# 2018-03-17: AG - These should match lua.mk, but we can't include that here
-LUA_CMD=	lua${PKGNAMESUFFIX}
-LUAC_CMD=	luac${PKGNAMESUFFIX}
-LUA_INCDIR=	${LUA_PREFIX}/include/lua${PKGNAMESUFFIX}
-LUA_LIBDIR=	${LUA_PREFIX}/lib
 
 LUA_LIB_STATIC=	liblua-${LUA_VER}.a
 LUA_LIB_SHARED=	liblua-${LUA_VER}.so
Index: head/math/plplot/Makefile
===================================================================
--- head/math/plplot/Makefile
+++ head/math/plplot/Makefile
@@ -3,6 +3,7 @@
 
 PORTNAME=	plplot
 DISTVERSION=	5.15.0
+PORTREVISION=	1
 CATEGORIES=	math science
 MASTER_SITES=	SF/${PORTNAME}/${PORTNAME}/${PORTVERSION}%20Source
 
@@ -73,6 +74,7 @@
 GD_CMAKE_BOOL=		PLD_png
 
 LUA_USES=		lua
+LUA_BUILD_DEPENDS=	swig3.0:devel/swig30
 LUA_CMAKE_BOOL=		ENABLE_lua
 LUA_CMAKE_ON=		-DLUA_EXECUTABLE:FILEPATH="${LUA_CMD}"
 
Index: head/multimedia/libquvi-scripts09/Makefile
===================================================================
--- head/multimedia/libquvi-scripts09/Makefile
+++ head/multimedia/libquvi-scripts09/Makefile
@@ -15,10 +15,10 @@
 LICENSE=	AGPLv3
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-RUN_DEPENDS=	${LUA_PKGNAMEPREFIX}bitop>=1.0.1:devel/lua-bitop \
-		${LUA_PKGNAMEPREFIX}luaexpat>=1.2.0:textproc/luaexpat \
-		${LUA_PKGNAMEPREFIX}json>=1.1.1:converters/lua-json \
-		${LUA_PKGNAMEPREFIX}luasocket>=2.0.2:net/luasocket
+RUN_DEPENDS=	${LUA_PKGNAMEPREFIX}bitop>=1.0.1:devel/lua-bitop@${LUA_FLAVOR} \
+		${LUA_PKGNAMEPREFIX}luaexpat>=1.2.0:textproc/luaexpat@${LUA_FLAVOR} \
+		${LUA_PKGNAMEPREFIX}json>=1.1.1:converters/lua-json@${LUA_FLAVOR} \
+		${LUA_PKGNAMEPREFIX}luasocket>=2.0.2:net/luasocket@${LUA_FLAVOR}
 
 OPTIONS_DEFINE=	NSFW
 OPTIONS_SUB=	yes
Index: head/net-im/prosody/Makefile
===================================================================
--- head/net-im/prosody/Makefile
+++ head/net-im/prosody/Makefile
@@ -12,11 +12,11 @@
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-RUN_DEPENDS=	${LUA_MODLIBDIR}/socket/core.so:net/luasocket \
-		${LUA_MODLIBDIR}/ssl.so:security/luasec \
-		${LUA_MODLIBDIR}/lxp.so:textproc/luaexpat \
-		${LUA_MODLIBDIR}/lfs.so:devel/luafilesystem \
-		${LUA_MODLIBDIR}/bit.so:devel/lua-bitop
+RUN_DEPENDS=	${LUA_REFMODLIBDIR}/socket/core.so:net/luasocket@${LUA_FLAVOR} \
+		${LUA_REFMODLIBDIR}/ssl.so:security/luasec@${LUA_FLAVOR} \
+		${LUA_REFMODLIBDIR}/lxp.so:textproc/luaexpat@${LUA_FLAVOR} \
+		${LUA_REFMODLIBDIR}/lfs.so:devel/luafilesystem@${LUA_FLAVOR} \
+		${LUA_REFMODLIBDIR}/bit.so:devel/lua-bitop@${LUA_FLAVOR}
 LIB_DEPENDS=	libidn.so:dns/libidn
 
 USES=		compiler:c11 cpe gmake lua:52 ssl
Index: head/net/Makefile
===================================================================
--- head/net/Makefile
+++ head/net/Makefile
@@ -430,10 +430,7 @@
     SUBDIR += lla
     SUBDIR += ltm
     SUBDIR += lualdap
-    SUBDIR += lualdap-51
     SUBDIR += luasocket
-    SUBDIR += luasocket-51
-    SUBDIR += luasocket-53
     SUBDIR += lvwimax
     SUBDIR += mDNSResponder
     SUBDIR += macchanger
Index: head/net/freeswitch/Makefile
===================================================================
--- head/net/freeswitch/Makefile
+++ head/net/freeswitch/Makefile
@@ -29,7 +29,7 @@
 		libjbig.so:graphics/jbigkit \
 		libtiff.so:graphics/tiff
 
-USES=		gmake iconv jpeg libedit libtool lua perl5 pkgconfig shebangfix ssl tar:xz
+USES=		gmake iconv jpeg libedit libtool lua:51-52 perl5 pkgconfig shebangfix ssl tar:xz
 USE_LDCONFIG=	yes
 USE_RC_SUBR=	freeswitch
 
Index: head/net/lualdap-51/Makefile
===================================================================
--- head/net/lualdap-51/Makefile
+++ head/net/lualdap-51/Makefile
@@ -1,9 +0,0 @@
-# $FreeBSD$
-
-USES=		gmake lua:51
-
-MASTERDIR=	${.CURDIR}/../lualdap
-
-.include "${MASTERDIR}/Makefile"
-
-COMMENT+=	(version 5.1)
Index: head/net/lualdap/Makefile
===================================================================
--- head/net/lualdap/Makefile
+++ head/net/lualdap/Makefile
@@ -3,7 +3,7 @@
 
 PORTNAME=	lualdap
 PORTVERSION=	1.1.0
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	net
 MASTER_SITES=	http://files.luaforge.net/releases/${PORTNAME}/${PORTNAME}/LuaLDAP${PORTVERSION}/
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
@@ -11,7 +11,7 @@
 MAINTAINER=	pf@itwf.pl
 COMMENT=	LDAP support for the Lua language
 
-USES?=		gmake lua
+USES=		gmake lua:-52,module
 USE_OPENLDAP=	yes
 
 # the CPPFLAGS fixes builds where PREFIX != LOCALBASE
@@ -25,6 +25,8 @@
 ALL_TARGET=
 
 OPTIONS_DEFINE=	DOCS
+
+DOCSDIR=	${LUA_DOCSDIR}
 
 do-install:
 	@${MKDIR} ${STAGEDIR}${LUA_MODLIBDIR}
Index: head/net/luasocket-51/Makefile
===================================================================
--- head/net/luasocket-51/Makefile
+++ head/net/luasocket-51/Makefile
@@ -1,13 +0,0 @@
-# Created by: Jan Hornyak <pav@oook.cz>
-# $FreeBSD$
-
-SLAVE_PORT=	luasocket
-
-USES=	gmake lua:51 pkgconfig
-
-MASTERDIR=	${.CURDIR}/../luasocket
-PLIST=	${MASTERDIR}/pkg-plist
-
-.include "${MASTERDIR}/Makefile"
-
-COMMENT+=	(version 5.1)
Index: head/net/luasocket-53/Makefile
===================================================================
--- head/net/luasocket-53/Makefile
+++ head/net/luasocket-53/Makefile
@@ -1,13 +0,0 @@
-# Created by: Jan Hornyak <pav@oook.cz>
-# $FreeBSD$
-
-SLAVE_PORT=	luasocket
-
-USES=	gmake lua:53 pkgconfig
-
-MASTERDIR=	${.CURDIR}/../luasocket
-PLIST=	${MASTERDIR}/pkg-plist
-
-.include "${MASTERDIR}/Makefile"
-
-COMMENT+=	(version 5.3)
Index: head/net/luasocket/Makefile
===================================================================
--- head/net/luasocket/Makefile
+++ head/net/luasocket/Makefile
@@ -4,7 +4,7 @@
 PORTNAME=	luasocket
 DISTVERSIONPREFIX=	v
 DISTVERSION=	3.0-rc1
-PORTREVISION=	4
+PORTREVISION=	5
 PORTEPOCH=	1
 CATEGORIES=	net
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
@@ -19,7 +19,7 @@
 GH_ACCOUNT=	diegonehab
 
 MAKE_ARGS=	LUAV=${LUA_VER}
-USES?=		gmake lua pkgconfig
+USES=		gmake lua:module pkgconfig
 INSTALL_TARGET=	install-unix
 
 CFLAGS+=	`pkgconf --cflags lua-${LUA_VER}` \
@@ -27,6 +27,8 @@
 LDFLAGS+=	-shared  `pkgconf --libs lua-${LUA_VER}`
 
 OPTIONS_DEFINE=	DOCS
+
+DOCSDIR=	${LUA_DOCSDIR}
 
 post-extract:
 	@${MV} ${WRKSRC}/makefile ${WRKSRC}/Makefile
Index: head/net/wireshark/Makefile
===================================================================
--- head/net/wireshark/Makefile
+++ head/net/wireshark/Makefile
@@ -84,7 +84,7 @@
 GUI_USES=		qt:5
 GUI_USE=	qt=core,gui,multimedia,widgets,printsupport,svg,buildtools_build,linguisttools_build,qmake_build
 
-LUA_USES=		lua:5[1-2]
+LUA_USES=		lua:51-52
 GSSAPI_BASE_USES=		gssapi
 GSSAPI_HEIMDAL_USES=	gssapi:heimdal
 GSSAPI_MIT_USES=		gssapi:mit
Index: head/security/Makefile
===================================================================
--- head/security/Makefile
+++ head/security/Makefile
@@ -334,7 +334,6 @@
     SUBDIR += logcheck
     SUBDIR += lua-bcrypt
     SUBDIR += luasec
-    SUBDIR += luasec-51
     SUBDIR += lxqt-openssh-askpass
     SUBDIR += lxqt-sudo
     SUBDIR += lynis
Index: head/security/cardpeek/Makefile
===================================================================
--- head/security/cardpeek/Makefile
+++ head/security/cardpeek/Makefile
@@ -15,7 +15,7 @@
 		libcurl.so:ftp/curl
 RUN_DEPENDS=	pcscd:devel/pcsc-lite
 
-USES=		gnome iconv localbase lua pkgconfig
+USES=		gnome iconv localbase lua:52 pkgconfig
 USE_GNOME=	gtk30
 GNU_CONFIGURE=	yes
 INSTALLS_ICONS=	yes
Index: head/security/lua-bcrypt/Makefile
===================================================================
--- head/security/lua-bcrypt/Makefile
+++ head/security/lua-bcrypt/Makefile
@@ -3,7 +3,7 @@
 PORTNAME=	bcrypt
 DISTVERSIONPREFIX=	v
 DISTVERSION=	2.1-4
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	security
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
@@ -12,7 +12,7 @@
 
 LICENSE=	ISCL
 
-USES=		compiler:c11 gmake lua
+USES=		compiler:c11 gmake lua:module
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	mikejsavage
Index: head/security/luasec-51/Makefile
===================================================================
--- head/security/luasec-51/Makefile
+++ head/security/luasec-51/Makefile
@@ -1,13 +0,0 @@
-# Created by: Andrew Lewis <freeghb@gmail.com>
-# $FreeBSD$
-
-COMMENT=	LuaSec for Lua 5.1
-
-SLAVE_PORT=	luasec
-
-USES=	lua:51 ssl
-
-MASTERDIR=	${.CURDIR}/../luasec
-PLIST=	${MASTERDIR}/pkg-plist
-
-.include "${MASTERDIR}/Makefile"
Index: head/security/luasec/Makefile
===================================================================
--- head/security/luasec/Makefile
+++ head/security/luasec/Makefile
@@ -4,6 +4,7 @@
 PORTNAME=	luasec
 PORTVERSION=	0.9
 DISTVERSIONPREFIX=	v
+PORTREVISION=	1
 CATEGORIES=	security
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
@@ -13,7 +14,7 @@
 LICENSE=	MIT
 
 .if !defined(SLAVE_PORT)
-USES=		lua ssl
+USES=		lua:module ssl
 .endif
 
 USE_GITHUB=	yes
Index: head/textproc/Makefile
===================================================================
--- head/textproc/Makefile
+++ head/textproc/Makefile
@@ -414,7 +414,6 @@
     SUBDIR += ltxml
     SUBDIR += lua-lyaml
     SUBDIR += luaexpat
-    SUBDIR += luaexpat-51
     SUBDIR += lucene
     SUBDIR += lucene4
     SUBDIR += lucene5
Index: head/textproc/lua-lyaml/Makefile
===================================================================
--- head/textproc/lua-lyaml/Makefile
+++ head/textproc/lua-lyaml/Makefile
@@ -4,6 +4,7 @@
 PORTNAME=	lyaml
 PORTVERSION=	6.2.4
 DISTVERSIONPREFIX=v
+PORTREVISION=	1
 CATEGORIES=	textproc
 PKGNAMEPREFIX=	${LUA_PKGNAMEPREFIX}
 
@@ -15,7 +16,7 @@
 
 LIB_DEPENDS=	libyaml.so:textproc/libyaml
 
-USES=		lua
+USES=		lua:module
 
 USE_GITHUB=	yes
 GH_ACCOUNT=	gvvaughan
Index: head/textproc/luaexpat-51/Makefile
===================================================================
--- head/textproc/luaexpat-51/Makefile
+++ head/textproc/luaexpat-51/Makefile
@@ -1,6 +0,0 @@
-# $FreeBSD$
-
-MASTERDIR=	${.CURDIR}/../luaexpat
-USES=	lua:51
-
-.include "${MASTERDIR}/Makefile"
Index: head/textproc/luaexpat/Makefile
===================================================================
--- head/textproc/luaexpat/Makefile
+++ head/textproc/luaexpat/Makefile
@@ -3,7 +3,7 @@
 
 PORTNAME=	luaexpat
 PORTVERSION=	1.3.0
-PORTREVISION=	4
+PORTREVISION=	5
 CATEGORIES=	textproc
 MASTER_SITES=	http://matthewwild.co.uk/projects/luaexpat/ \
 				http://redundancy.redundancy.org/mirror/
@@ -16,7 +16,7 @@
 
 LIB_DEPENDS=	libexpat.so:textproc/expat2
 
-USES?=		lua
+USES=		lua:module
 USES+=		gmake
 ALL_TARGET=	lib
 
Index: head/www/luakit/Makefile
===================================================================
--- head/www/luakit/Makefile
+++ head/www/luakit/Makefile
@@ -16,13 +16,13 @@
 NOT_FOR_ARCHS_REASON_sparc64=	Does not install on sparc64
 
 BUILD_DEPENDS=	help2man:misc/help2man \
-		${LUA_MODLIBDIR}/lfs.so:devel/luafilesystem-51
+		${LUA_MODLIBDIR}/lfs.so:devel/luafilesystem@${LUA_FLAVOR}
 LIB_DEPENDS=	libdbus-glib-1.so:devel/dbus-glib \
 		libsoup-2.4.so:devel/libsoup \
 		libfreetype.so:print/freetype2 \
 		libwebkit2gtk-4.0.so:www/webkit2-gtk3 \
 		libfontconfig.so:x11-fonts/fontconfig
-RUN_DEPENDS=	${LUA_PKGNAMEPREFIX}luafilesystem>=0:devel/luafilesystem-51
+RUN_DEPENDS=	${LUA_PKGNAMEPREFIX}luafilesystem>=0:devel/luafilesystem@${LUA_FLAVOR}
 
 USES=		compiler:c++11-lang desktop-file-utils gettext-runtime gmake \
 		gnome lua:51 pkgconfig sqlite
Index: head/www/volta/Makefile
===================================================================
--- head/www/volta/Makefile
+++ head/www/volta/Makefile
@@ -15,7 +15,7 @@
 
 LIB_DEPENDS=	libcdb.so:databases/tinycdb
 
-USES=		gmake pkgconfig lua tar:tgz
+USES=		gmake pkgconfig lua:52 tar:tgz
 ALL_TARGET=	${PORTNAME}
 
 CFLAGS+=	-I${PREFIX}/include
Index: head/x11-wm/awesome/Makefile
===================================================================
--- head/x11-wm/awesome/Makefile
+++ head/x11-wm/awesome/Makefile
@@ -15,8 +15,8 @@
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	convert:graphics/ImageMagick6 \
-		${LUA_MODLIBDIR}/lgi/corelgilua${LUA_VER_STR}.so:devel/lua-lgi
-RUN_DEPENDS=	${LUA_MODLIBDIR}/lgi/corelgilua${LUA_VER_STR}.so:devel/lua-lgi \
+		${LUA_REFMODLIBDIR}/lgi/corelgilua${LUA_VER_STR}.so:devel/lua-lgi@${LUA_FLAVOR}
+RUN_DEPENDS=	${LUA_REFMODLIBDIR}/lgi/corelgilua${LUA_VER_STR}.so:devel/lua-lgi@${LUA_FLAVOR} \
 		bash:shells/bash
 LIB_DEPENDS=	libcairo.so:graphics/cairo \
 		libstartup-notification-1.so:x11/startup-notification \