diff --git a/Add-support-for-the-Lua-5.4.patch b/Add-support-for-the-Lua-5.4.patch new file mode 100644 index 0000000000000000000000000000000000000000..17c2621e2a8366cad0e5ba9a2789747993ba4a52 --- /dev/null +++ b/Add-support-for-the-Lua-5.4.patch @@ -0,0 +1,70 @@ +From 206999072ff408d2bbb8078e4dd4425b4bcfcfd9 Mon Sep 17 00:00:00 2001 +From: Christopher Faulet +Date: Tue, 28 Jul 2020 10:33:25 +0200 +Subject: [PATCH] MEDIUM: lua: Add support for the Lua 5.4 + +On Lua 5.4, some API changes make HAProxy compilation to fail. Among other +things, the lua_resume() function has changed and now takes an extra argument in +Lua 5.4 and the error LUA_ERRGCMM was removed. Thus the LUA_VERSION_NUM macro is +now tested to know the lua version is used and adapt the code accordingly. + +Here are listed the incompatibilities with the previous Lua versions : + + http://www.lua.org/manual/5.4/manual.html#8 + +This patch comes from the HAproxy's fedora RPM, committed by Tom Callaway : + + https://src.fedoraproject.org/rpms/haproxy/blob/db970613/f/haproxy-2.2.0-lua-5.4.patch + +This patch should fix the issue #730. It must be backported to 2.2 and probably +as far as 2.0. + +(cherry picked from commit 08ed98fd7963968de49593304fdd9234812845a4) +Signed-off-by: Christopher Faulet +(cherry picked from commit dc2e6f544fee393543cdeaae7bbb4fe57d49b409) +Signed-off-by: Christopher Faulet +(cherry picked from commit a500aee9f0d6e1fc17c65735944b4e5cb5c1165f) +Signed-off-by: Christopher Faulet +--- + src/hlua.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/src/hlua.c b/src/hlua.c +index 0b5eaafb9..c2d045ec2 100644 +--- a/src/hlua.c ++++ b/src/hlua.c +@@ -1080,6 +1080,9 @@ void hlua_hook(lua_State *L, lua_Debug *ar) + */ + static enum hlua_exec hlua_ctx_resume(struct hlua *lua, int yield_allowed) + { ++#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 504 ++ int nres; ++#endif + int ret; + const char *msg; + const char *trace; +@@ -1110,7 +1113,11 @@ static enum hlua_exec hlua_ctx_resume(struct hlua *lua, int yield_allowed) + lua->start_time = now_ms; + + /* Call the function. */ ++#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 504 ++ ret = lua_resume(lua->T, gL.T, lua->nargs, &nres); ++#else + ret = lua_resume(lua->T, gL.T, lua->nargs); ++#endif + switch (ret) { + + case LUA_OK: +@@ -8278,10 +8285,12 @@ static int hlua_load(char **args, int section_type, struct proxy *curpx, + memprintf(err, "Lua message handler error: %s\n", lua_tostring(gL.T, -1)); + lua_pop(gL.T, 1); + return -1; ++#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM <= 503 + case LUA_ERRGCMM: + memprintf(err, "Lua garbage collector error: %s\n", lua_tostring(gL.T, -1)); + lua_pop(gL.T, 1); + return -1; ++#endif + default: + memprintf(err, "Lua unknonwn error: %s\n", lua_tostring(gL.T, -1)); + lua_pop(gL.T, 1); diff --git a/haproxy.spec b/haproxy.spec index 6f9dea0ee52c22c73ec9b696c3a21357f94baac4..b1a979009dd2210ffa7e1d6431301c7bf33de659 100644 --- a/haproxy.spec +++ b/haproxy.spec @@ -5,7 +5,7 @@ Name: haproxy Version: 2.0.14 -Release: 1 +Release: 2 Summary: The Reliable, High Performance TCP/HTTP Load Balancer License: GPLv2+ @@ -16,6 +16,7 @@ Source2: %{name}.cfg Source3: %{name}.logrotate Source4: %{name}.sysconfig +Patch0001: Add-support-for-the-Lua-5.4.patch BuildRequires: gcc lua-devel pcre-devel zlib-devel openssl-devel systemd-devel systemd-units libatomic Requires(pre): shadow-utils @@ -122,6 +123,9 @@ exit 0 %{_mandir}/man1/* %changelog +* Wed Aug 05 2020 lingsheng - 2.0.14-2 +- Add support for the Lua 5.4 + * Wed Jul 22 2020 hanzhijun - 2.0.14-1 - update to 2.0.14