diff --git a/_multibuild b/_multibuild
new file mode 100644
index 0000000..72d2b45
--- /dev/null
+++ b/_multibuild
@@ -0,0 +1,5 @@
+
+lua51
+lua53
+lua54
+
diff --git a/lua-luasocket.changes b/lua-luasocket.changes
index 2033882..5446052 100644
--- a/lua-luasocket.changes
+++ b/lua-luasocket.changes
@@ -1,3 +1,8 @@
+-------------------------------------------------------------------
+Mon Jul 6 21:03:56 UTC 2020 - Callum Farmer
+
+- Switch to multibuild and add lua54 build target.
+
-------------------------------------------------------------------
Tue Mar 12 20:27:47 UTC 2019 - Martin Hauke
diff --git a/lua-luasocket.spec b/lua-luasocket.spec
index 71d9e96..2b483a1 100644
--- a/lua-luasocket.spec
+++ b/lua-luasocket.spec
@@ -16,7 +16,7 @@
#
-%define flavor lua
+%define flavor @BUILD_FLAVOR@
%define mod_name luasocket
Name: %{flavor}-%{mod_name}
Version: 3.0~rc1+git20170515.5a17f79
@@ -33,7 +33,7 @@ Requires: %{flavor}
Provides: luasocket = %{version}
Obsoletes: luasocket < %{version}
%endif
-%if "%{flavor}" == "lua"
+%if "%{flavor}" == ""
ExclusiveArch: do_not_build
%endif
diff --git a/lua51-luasocket.changes b/lua51-luasocket.changes
deleted file mode 100644
index 2033882..0000000
--- a/lua51-luasocket.changes
+++ /dev/null
@@ -1,57 +0,0 @@
--------------------------------------------------------------------
-Tue Mar 12 20:27:47 UTC 2019 - Martin Hauke
-
-- Create subpackage -devel
- * Package header files
-
--------------------------------------------------------------------
-Tue Oct 31 14:06:18 UTC 2017 - tchvatal@suse.com
-
-- Drop lua52-luasocket to obsolete lua52 from distribution
-
--------------------------------------------------------------------
-Mon Oct 16 08:39:37 UTC 2017 - tchvatal@suse.com
-
-- Provide/Obsolete luasocket to avoid conflict wrt bsc#1063306
-
--------------------------------------------------------------------
-Thu Jul 27 11:07:34 UTC 2017 - tchvatal@suse.com
-
-- Switch from multibuild for now as it can't be in rings and this
- is a ring package
-
--------------------------------------------------------------------
-Fri Jul 14 08:42:16 UTC 2017 - tchvatal@suse.com
-
-- Update to version 3.0~rc1+git20170515.5a17f79:
- * make protect_segment in url.lua rfc compliant
- * fix for Lua 5.3 built without number / string conversion
- * correct typo
- * Fix issue #196
- * Preserve path when parsing urls.
- * Fix typo
-- Switch to multibuild package
-- luasocket-makefile.patch refresh to apply on new version
-
--------------------------------------------------------------------
-Tue Jul 11 08:41:58 UTC 2017 - tchvatal@suse.com
-
-- Fix build with namespaced lua
-
--------------------------------------------------------------------
-Thu Sep 15 12:23:12 UTC 2016 - mvetter@suse.com
-
-- Using Requires: Lua(API) = 5.1 instead of Requires: lua51 as
- suggested by DimStar in SR#423700
-
--------------------------------------------------------------------
-Mon Oct 20 16:13:40 UTC 2014 - i@marguerite.su
-
-- update version 3.0~rc1+git20140716
-
--------------------------------------------------------------------
-Sat Feb 22 12:35:38 UTC 2014 - i@marguerite.su
-
-- initial version 3.0~rc1
-- copied from luasocket
-
diff --git a/lua51-luasocket.spec b/lua51-luasocket.spec
deleted file mode 100644
index 5fbe601..0000000
--- a/lua51-luasocket.spec
+++ /dev/null
@@ -1,88 +0,0 @@
-#
-# spec file for package lua51-luasocket
-#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
-#
-# All modifications and additions to the file contributed by third parties
-# remain the property of their copyright owners, unless otherwise agreed
-# upon. The license for this file, and modifications and additions to the
-# file, is the same license as for the pristine package itself (unless the
-# license for the pristine package is not an Open Source License, in which
-# case the license is the MIT License). An "Open Source License" is a
-# license that conforms to the Open Source Definition (Version 1.9)
-# published by the Open Source Initiative.
-
-# Please submit bugfixes or comments via https://bugs.opensuse.org/
-#
-
-
-%define flavor lua51
-%define mod_name luasocket
-Name: %{flavor}-%{mod_name}
-Version: 3.0~rc1+git20170515.5a17f79
-Release: 0
-Summary: Network support for the Lua language
-License: MIT
-Group: Development/Languages/Other
-Url: https://github.com/diegonehab/luasocket
-Source: %{mod_name}-%{version}.tar.xz
-Patch0: luasocket-makefile.patch
-BuildRequires: %{flavor}-devel
-Requires: %{flavor}
-%if "%{flavor}" == "lua53"
-Provides: luasocket = %{version}
-Obsoletes: luasocket < %{version}
-%endif
-%if "%{flavor}" == "lua"
-ExclusiveArch: do_not_build
-%endif
-
-%description
-LuaSocket is a Lua extension library that is composed by two parts: a C core
-that provides support for the TCP and UDP transport layers, and a set of Lua
-modules that add support for functionality commonly needed by applications
-that deal with the Internet.
-
-Among the support modules, the most commonly used implement the SMTP, HTTP
-and FTP. In addition there are modules for MIME, URL handling and LTN12.
-
-%package devel
-Summary: Header files for %{flavor}-%{mod_name}
-Group: Development/Languages/Other
-Requires: %{flavor}-%{mod_name} = %{version}
-
-%description devel
-This subpackage contains header files for developing applications that
-want to make use of %{flavor}-%{mod_name}.
-
-%prep
-%setup -q -n %{mod_name}-%{version}
-%patch0 -p1
-
-%build
-%{_bindir}/iconv -f ISO8859-1 -t UTF8 LICENSE >LICENSE.UTF8
-mv -f LICENSE.UTF8 LICENSE
-make %{?_smp_mflags} OPTFLAGS="%{optflags} -fPIC -I%{lua_incdir}" linux
-
-%install
-make install-unix OPTFLAGS="%{optflags}" INSTALL_TOP=%{buildroot} INSTALL_TOP_CDIR=%{buildroot}%{lua_archdir} INSTALL_TOP_LDIR=%{buildroot}%{lua_noarchdir}
-
-# install development files
-install -d %{buildroot}%{lua_incdir}
-install -p -m 0644 src/*.h %{buildroot}%{lua_incdir}
-
-%files
-%license LICENSE
-%doc doc/*
-%doc README
-%{lua_archdir}/mime
-%{lua_archdir}/socket
-%{lua_noarchdir}/ltn12.lua
-%{lua_noarchdir}/mime.lua
-%{lua_noarchdir}/socket.lua
-%{lua_noarchdir}/socket/
-
-%files devel
-%{lua_incdir}/*.h
-
-%changelog
diff --git a/lua53-luasocket.changes b/lua53-luasocket.changes
deleted file mode 100644
index 2033882..0000000
--- a/lua53-luasocket.changes
+++ /dev/null
@@ -1,57 +0,0 @@
--------------------------------------------------------------------
-Tue Mar 12 20:27:47 UTC 2019 - Martin Hauke
-
-- Create subpackage -devel
- * Package header files
-
--------------------------------------------------------------------
-Tue Oct 31 14:06:18 UTC 2017 - tchvatal@suse.com
-
-- Drop lua52-luasocket to obsolete lua52 from distribution
-
--------------------------------------------------------------------
-Mon Oct 16 08:39:37 UTC 2017 - tchvatal@suse.com
-
-- Provide/Obsolete luasocket to avoid conflict wrt bsc#1063306
-
--------------------------------------------------------------------
-Thu Jul 27 11:07:34 UTC 2017 - tchvatal@suse.com
-
-- Switch from multibuild for now as it can't be in rings and this
- is a ring package
-
--------------------------------------------------------------------
-Fri Jul 14 08:42:16 UTC 2017 - tchvatal@suse.com
-
-- Update to version 3.0~rc1+git20170515.5a17f79:
- * make protect_segment in url.lua rfc compliant
- * fix for Lua 5.3 built without number / string conversion
- * correct typo
- * Fix issue #196
- * Preserve path when parsing urls.
- * Fix typo
-- Switch to multibuild package
-- luasocket-makefile.patch refresh to apply on new version
-
--------------------------------------------------------------------
-Tue Jul 11 08:41:58 UTC 2017 - tchvatal@suse.com
-
-- Fix build with namespaced lua
-
--------------------------------------------------------------------
-Thu Sep 15 12:23:12 UTC 2016 - mvetter@suse.com
-
-- Using Requires: Lua(API) = 5.1 instead of Requires: lua51 as
- suggested by DimStar in SR#423700
-
--------------------------------------------------------------------
-Mon Oct 20 16:13:40 UTC 2014 - i@marguerite.su
-
-- update version 3.0~rc1+git20140716
-
--------------------------------------------------------------------
-Sat Feb 22 12:35:38 UTC 2014 - i@marguerite.su
-
-- initial version 3.0~rc1
-- copied from luasocket
-
diff --git a/lua53-luasocket.spec b/lua53-luasocket.spec
deleted file mode 100644
index 5080307..0000000
--- a/lua53-luasocket.spec
+++ /dev/null
@@ -1,88 +0,0 @@
-#
-# spec file for package lua53-luasocket
-#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
-#
-# All modifications and additions to the file contributed by third parties
-# remain the property of their copyright owners, unless otherwise agreed
-# upon. The license for this file, and modifications and additions to the
-# file, is the same license as for the pristine package itself (unless the
-# license for the pristine package is not an Open Source License, in which
-# case the license is the MIT License). An "Open Source License" is a
-# license that conforms to the Open Source Definition (Version 1.9)
-# published by the Open Source Initiative.
-
-# Please submit bugfixes or comments via https://bugs.opensuse.org/
-#
-
-
-%define flavor lua53
-%define mod_name luasocket
-Name: %{flavor}-%{mod_name}
-Version: 3.0~rc1+git20170515.5a17f79
-Release: 0
-Summary: Network support for the Lua language
-License: MIT
-Group: Development/Languages/Other
-Url: https://github.com/diegonehab/luasocket
-Source: %{mod_name}-%{version}.tar.xz
-Patch0: luasocket-makefile.patch
-BuildRequires: %{flavor}-devel
-Requires: %{flavor}
-%if "%{flavor}" == "lua53"
-Provides: luasocket = %{version}
-Obsoletes: luasocket < %{version}
-%endif
-%if "%{flavor}" == "lua"
-ExclusiveArch: do_not_build
-%endif
-
-%description
-LuaSocket is a Lua extension library that is composed by two parts: a C core
-that provides support for the TCP and UDP transport layers, and a set of Lua
-modules that add support for functionality commonly needed by applications
-that deal with the Internet.
-
-Among the support modules, the most commonly used implement the SMTP, HTTP
-and FTP. In addition there are modules for MIME, URL handling and LTN12.
-
-%package devel
-Summary: Header files for %{flavor}-%{mod_name}
-Group: Development/Languages/Other
-Requires: %{flavor}-%{mod_name} = %{version}
-
-%description devel
-This subpackage contains header files for developing applications that
-want to make use of %{flavor}-%{mod_name}.
-
-%prep
-%setup -q -n %{mod_name}-%{version}
-%patch0 -p1
-
-%build
-%{_bindir}/iconv -f ISO8859-1 -t UTF8 LICENSE >LICENSE.UTF8
-mv -f LICENSE.UTF8 LICENSE
-make %{?_smp_mflags} OPTFLAGS="%{optflags} -fPIC -I%{lua_incdir}" linux
-
-%install
-make install-unix OPTFLAGS="%{optflags}" INSTALL_TOP=%{buildroot} INSTALL_TOP_CDIR=%{buildroot}%{lua_archdir} INSTALL_TOP_LDIR=%{buildroot}%{lua_noarchdir}
-
-# install development files
-install -d %{buildroot}%{lua_incdir}
-install -p -m 0644 src/*.h %{buildroot}%{lua_incdir}
-
-%files
-%license LICENSE
-%doc doc/*
-%doc README
-%{lua_archdir}/mime
-%{lua_archdir}/socket
-%{lua_noarchdir}/ltn12.lua
-%{lua_noarchdir}/mime.lua
-%{lua_noarchdir}/socket.lua
-%{lua_noarchdir}/socket/
-
-%files devel
-%{lua_incdir}/*.h
-
-%changelog
diff --git a/pre_checkin.sh b/pre_checkin.sh
deleted file mode 100644
index 551574c..0000000
--- a/pre_checkin.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-name="luasocket"
-variants=(
- "lua51"
- "lua53"
-)
-
-for variant in ${variants[@]}; do
- cp lua-${name}.changes ${variant}-${name}.changes
- sed \
- -e "s:flavor lua:flavor ${variant}:g" \
- lua-${name}.spec > ${variant}-${name}.spec
-done