[arch-commits] Commit in haproxy/trunk (2 files)

Christian Hesse eworm at archlinux.org
Thu Jul 30 12:26:45 UTC 2020


    Date: Thursday, July 30, 2020 @ 12:26:44
  Author: eworm
Revision: 665910

upgpkg: haproxy 2.2.1-3: build with lua 5.4

Added:
  haproxy/trunk/0002-lua-Add-support-for-the-Lua-5.4.patch
Modified:
  haproxy/trunk/PKGBUILD

--------------------------------------------+
 0002-lua-Add-support-for-the-Lua-5.4.patch |   69 +++++++++++++++++++++++++++
 PKGBUILD                                   |   15 ++---
 2 files changed, 76 insertions(+), 8 deletions(-)

Added: 0002-lua-Add-support-for-the-Lua-5.4.patch
===================================================================
--- 0002-lua-Add-support-for-the-Lua-5.4.patch	                        (rev 0)
+++ 0002-lua-Add-support-for-the-Lua-5.4.patch	2020-07-30 12:26:44 UTC (rev 665910)
@@ -0,0 +1,69 @@
+From dc2e6f544fee393543cdeaae7bbb4fe57d49b409 Mon Sep 17 00:00:00 2001
+From: Christopher Faulet <cfaulet at haproxy.com>
+Date: Tue, 28 Jul 2020 10:33:25 +0200
+Subject: 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 <cfaulet at haproxy.com>
+---
+ src/hlua.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/src/hlua.c b/src/hlua.c
+index af0aeda06..b2134fe6e 100644
+--- a/src/hlua.c
++++ b/src/hlua.c
+@@ -1069,6 +1069,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;
+@@ -1100,7 +1103,11 @@ resume_execution:
+ 	lua->wake_time = TICK_ETERNITY;
+ 
+ 	/* 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:
+@@ -7845,10 +7852,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 unknown error: %s\n", lua_tostring(gL.T, -1));
+ 		lua_pop(gL.T, 1);
+-- 
+cgit v1.2.3
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2020-07-30 11:20:48 UTC (rev 665909)
+++ PKGBUILD	2020-07-30 12:26:44 UTC (rev 665910)
@@ -3,7 +3,7 @@
 
 pkgname=haproxy
 pkgver=2.2.1
-pkgrel=2
+pkgrel=3
 
 pkgdesc='Reliable, high performance TCP/HTTP load balancer'
 url='https://www.haproxy.org/'
@@ -10,11 +10,7 @@
 arch=('x86_64')
 license=('GPL')
 
-# TODO: switch to lua 5.4 when possible
-# Function lua_resume() earned a new argument, requires haproxy to be updated.
-# https://github.com/haproxy/haproxy/issues/730
-
-depends=('openssl' 'pcre' 'zlib' 'lua53' 'systemd-libs')
+depends=('openssl' 'pcre' 'zlib' 'lua' 'systemd-libs')
 makedepends=('systemd')
 
 backup=('etc/haproxy/haproxy.cfg')
@@ -24,17 +20,20 @@
 source=(https://www.haproxy.org/download/${pkgver%.*}/src/haproxy-$pkgver.tar.gz
         haproxy.cfg
         haproxy.sysusers
-        0001-Use-CFLAGS-and-LDFLAGS-when-building-contrib.patch)
+        0001-Use-CFLAGS-and-LDFLAGS-when-building-contrib.patch
+        0002-lua-Add-support-for-the-Lua-5.4.patch)
 
 sha256sums=('536552af1316807c01de727ad3dac84b3a2f5285db32e9bfdfe234e47ff9d124'
             'e88edeb2fe23508565e46ff485c93cfb7c2e9c64f231538452ec7ecd7ec37a42'
             'b02b4088205039f0979aef0ef3e22957f493dd54eabefaee7011f2d795303b3e'
-            '81c03ef5d69f4f2ef2c7caa6722c82cda4a53b65f788a46e668ec2faa3abd8f5')
+            '81c03ef5d69f4f2ef2c7caa6722c82cda4a53b65f788a46e668ec2faa3abd8f5'
+            '0efa758f64352dd2ced88227a6447cec25ec564c4d3be1cc954d760e61ef064a')
 
 prepare() {
   cd haproxy-$pkgver
 
   patch -p1 <"$srcdir"/0001-Use-CFLAGS-and-LDFLAGS-when-building-contrib.patch
+  patch -p1 <"$srcdir"/0002-lua-Add-support-for-the-Lua-5.4.patch
 }
 
 build() {



More information about the arch-commits mailing list