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' */

Reply via email to