Hello community, here is the log from the commit of package lua54 for openSUSE:Factory checked in at 2020-07-24 09:47:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/lua54 (Old) and /work/SRC/openSUSE:Factory/.lua54.new.3592 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lua54" Fri Jul 24 09:47:53 2020 rev:2 rq:821867 version:5.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/lua54/lua54.changes 2020-07-08 19:18:44.672129297 +0200 +++ /work/SRC/openSUSE:Factory/.lua54.new.3592/lua54.changes 2020-07-24 09:48:08.316911345 +0200 @@ -1,0 +2,16 @@ +Mon Jul 20 11:00:56 UTC 2020 - Callum Farmer <[email protected]> + +- Add upstream patches 7 & 8 + +------------------------------------------------------------------- +Sat Jul 18 09:51:00 UTC 2020 - Callum Farmer <[email protected]> + +- Add upstream-bugs.patch, upstream fixes from https://www.lua.org/bugs.html + +------------------------------------------------------------------- +Sat Jul 18 08:59:50 UTC 2020 - Andreas Schwab <[email protected]> + +- files_test.patch: use proper check for 64-bit time_t +- Amend list of 64bit architectures + +------------------------------------------------------------------- New: ---- upstream-bugs.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lua54.spec ++++++ --- /var/tmp/diff_new_pack.On2T5f/_old 2020-07-24 09:48:10.444913572 +0200 +++ /var/tmp/diff_new_pack.On2T5f/_new 2020-07-24 09:48:10.444913572 +0200 @@ -24,7 +24,7 @@ Summary: Small Embeddable Language with Procedural Syntax License: MIT Group: Development/Languages/Other -Url: http://www.lua.org +URL: http://www.lua.org Source: http://www.lua.org/ftp/lua-5.4.0.tar.gz Source1: http://www.lua.org/tests/lua-5.4.0-tests.tar.gz Source99: baselibs.conf @@ -34,6 +34,8 @@ # Fix failing test Patch1: attrib_test.patch Patch2: files_test.patch +# PATCH-FIX-UPSTREAM https://www.lua.org/bugs.html +Patch3: upstream-bugs.patch BuildRequires: libtool BuildRequires: lua-macros BuildRequires: pkgconfig @@ -78,9 +80,9 @@ %package -n %{libname} Summary: The Lua integration library -# Compat as libtool changes the soname Group: System/Libraries -%ifarch aarch64 x86_64 ppc64 ppc64le s390x +# Compat as libtool changes the soname +%ifarch aarch64 x86_64 ppc64 ppc64le s390x riscv64 Provides: liblua.so.5.4()(64bit) %else Provides: liblua.so.5.4 ++++++ files_test.patch ++++++ --- /var/tmp/diff_new_pack.On2T5f/_old 2020-07-24 09:48:10.472913602 +0200 +++ /var/tmp/diff_new_pack.On2T5f/_new 2020-07-24 09:48:10.472913602 +0200 @@ -1,5 +1,7 @@ ---- a/lua-5.4.0-tests/files.lua -+++ b/lua-5.4.0-tests/files.lua +Index: lua-5.4.0/lua-5.4.0-tests/files.lua +=================================================================== +--- lua-5.4.0.orig/lua-5.4.0-tests/files.lua ++++ lua-5.4.0/lua-5.4.0-tests/files.lua @@ -81,7 +81,7 @@ assert(io.output() ~= io.stdout) if not _port then -- invalid seek @@ -36,28 +38,12 @@ _G.D = os.date("*t", t) assert(os.time(D) == t) load(os.date([[assert(D.year==%Y and D.month==%m and D.day==%d and -@@ -784,6 +788,15 @@ local function checkDateTable (t) - _G.D = nil - end - -+local function is64bit() -+ local arch = io.popen("uname -m"):read("*a") -+ if (arch or ""):match("64") then -+ return 64 -+ else -+ return 32 -+ end -+end -+ - checkDateTable(os.time()) - if not _port then - -- assume that time_t can represent these values -@@ -791,7 +804,9 @@ if not _port then +@@ -791,7 +795,9 @@ if not _port then checkDateTable(1) checkDateTable(1000) checkDateTable(0x7fffffff) - checkDateTable(0x80000000) -+ if is64bit() == 64 then ++ if not testerr("out-of-bound", os.date, "*t", 0x80000000) then + checkDateTable(0x80000000) + end end ++++++ upstream-bugs.patch ++++++ --- a/src/lgc.c +++ b/src/lgc.c @@ -856,6 +856,8 @@ static void GCTM (lua_State *L) { if (unlikely(status != LUA_OK)) { /* error while running __gc? */ luaE_warnerror(L, "__gc metamethod"); L->top--; /* pops error object */ + if (isLua(L->ci)) + L->oldpc = L->ci->u.l.savedpc; /* update 'oldpc' */ } } } @@ -1140,7 +1140,7 @@ static void finishgencycle (lua_State *L, global_State *g) { static void youngcollection (lua_State *L, global_State *g) { GCObject **psurvival; /* to point to first non-dead survival object */ lua_assert(g->gcstate == GCSpropagate); - markold(g, g->survival, g->reallyold); + markold(g, g->allgc, g->reallyold); markold(g, g->finobj, g->finobjrold); atomic(L); --- a/src/ldo.c +++ b/src/ldo.c @@ -466,13 +466,13 @@ void luaD_call (lua_State *L, StkId func, int nresults) { f = fvalue(s2v(func)); Cfunc: { int n; /* number of returns */ - CallInfo *ci = next_ci(L); + CallInfo *ci; checkstackp(L, LUA_MINSTACK, func); /* ensure minimum stack size */ + L->ci = ci = next_ci(L); ci->nresults = nresults; ci->callstatus = CIST_C; ci->top = L->top + LUA_MINSTACK; ci->func = func; - L->ci = ci; lua_assert(ci->top <= L->stack_last); if (L->hookmask & LUA_MASKCALL) { int narg = cast_int(L->top - func) - 1; @@ -486,18 +486,18 @@ void luaD_call (lua_State *L, StkId func, int nresults) { break; } case LUA_VLCL: { /* Lua function */ - CallInfo *ci = next_ci(L); + CallInfo *ci; Proto *p = clLvalue(s2v(func))->p; int narg = cast_int(L->top - func) - 1; /* number of real arguments */ int nfixparams = p->numparams; int fsize = p->maxstacksize; /* frame size */ checkstackp(L, fsize, func); + L->ci = ci = next_ci(L); ci->nresults = nresults; ci->u.l.savedpc = p->code; /* starting point */ ci->callstatus = 0; ci->top = func + 1 + fsize; ci->func = func; - L->ci = ci; for (; narg < nfixparams; narg++) setnilvalue(s2v(L->top++)); /* complete missing arguments */ lua_assert(ci->top <= L->stack_last); @@ -674,7 +674,7 @@ LUA_API int lua_resume (lua_State *L, lua_State *from, int nargs, if (from == NULL) L->nCcalls = CSTACKTHREAD; else /* correct 'nCcalls' for this thread */ - L->nCcalls = getCcalls(from) + from->nci - L->nci - CSTACKCF; + L->nCcalls = getCcalls(from) - L->nci - CSTACKCF; if (L->nCcalls <= CSTACKERR) return resume_error(L, "C stack overflow", nargs); luai_userstateresume(L, nargs); --- a/src/lundump.c +++ b/src/lundump.c @@ -205,8 +205,9 @@ static void loadUpvalues (LoadState *S, Proto *f) { n = loadInt(S); f->upvalues = luaM_newvectorchecked(S->L, n, Upvaldesc); f->sizeupvalues = n; - for (i = 0; i < n; i++) { + for (i = 0; i < n; i++) f->upvalues[i].name = NULL; + for (i = 0; i < n; i++) { f->upvalues[i].instack = loadByte(S); f->upvalues[i].idx = loadByte(S); f->upvalues[i].kind = loadByte(S); --- a/src/lvm.c +++ b/src/lvm.c @@ -1104,7 +1104,7 @@ void luaV_finishOp (lua_State *L) { #define checkGC(L,c) \ - { luaC_condGC(L, L->top = (c), /* limit of live values */ \ + { luaC_condGC(L, (savepc(L), L->top = (c)), \ updatetrap(ci)); \ luai_threadyield(L); } @@ -1792,8 +1792,7 @@ void luaV_execute (lua_State *L, CallInfo *ci) { vmbreak; } vmcase(OP_VARARGPREP) { - luaT_adjustvarargs(L, GETARG_A(i), ci, cl->p); - updatetrap(ci); + ProtectNT(luaT_adjustvarargs(L, GETARG_A(i), ci, cl->p)); if (trap) { luaD_hookcall(L, ci); L->oldpc = pc + 1; /* next opcode will be seen as a "new" line */ --- a/src/liolib.c +++ b/src/liolib.c @@ -279,6 +279,8 @@ static int io_popen (lua_State *L) { const char *filename = luaL_checkstring(L, 1); const char *mode = luaL_optstring(L, 2, "r"); LStream *p = newprefile(L); + luaL_argcheck(L, ((mode[0] == 'r' || mode[0] == 'w') && mode[1] == '\0'), + 2, "invalid mode"); p->f = l_popen(L, filename, mode); p->closef = &io_pclose; return (p->f == NULL) ? luaL_fileresult(L, 0, filename) : 1; --- a/src/ldo.h +++ b/src/ldo.h @@ -44,7 +44,7 @@ /* macro to check stack size and GC */ #define checkstackGC(L,fsize) \ - luaD_checkstackaux(L, (fsize), (void)0, luaC_checkGC(L)) + luaD_checkstackaux(L, (fsize), luaC_checkGC(L), (void)0) /* type of protected functions, to be ran by 'runprotected' */
