From 627e03f46285a2858ec0466adf565cacbe0ad5c2 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Mon, 29 Jun 2020 13:56:50 -0400 Subject: [PATCH] 5.4.0 --- .gitignore | 2 + lua-5.3.5-luac-shared-link-fix.patch | 54 ++++++++ lua-5.4.0-beta-autotoolize.patch | 192 +++++++++++++++++++++++++++ lua.spec | 38 +++--- sources | 4 +- 5 files changed, 270 insertions(+), 20 deletions(-) create mode 100644 lua-5.3.5-luac-shared-link-fix.patch create mode 100644 lua-5.4.0-beta-autotoolize.patch diff --git a/.gitignore b/.gitignore index ed0c6dc..6336dfc 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ lua-5.1.4/ /lua-5.3.4.tar.gz /lua-5.3.4-tests.tar.gz /lua-5.3.5.tar.gz +/lua-5.4.0.tar.gz +/lua-5.4.0-tests.tar.gz diff --git a/lua-5.3.5-luac-shared-link-fix.patch b/lua-5.3.5-luac-shared-link-fix.patch new file mode 100644 index 0000000..d8b9ab0 --- /dev/null +++ b/lua-5.3.5-luac-shared-link-fix.patch @@ -0,0 +1,54 @@ +diff -up lua-5.3.5/src/lopcodes.c.luac-shared lua-5.3.5/src/lopcodes.c +--- lua-5.3.5/src/lopcodes.c.luac-shared 2019-10-23 15:36:44.487204487 -0400 ++++ lua-5.3.5/src/lopcodes.c 2019-10-23 15:37:44.029960930 -0400 +@@ -17,7 +17,7 @@ + + /* ORDER OP */ + +-LUAI_DDEF const char *const luaP_opnames[NUM_OPCODES+1] = { ++LUA_API const char *const luaP_opnames[NUM_OPCODES+1] = { + "MOVE", + "LOADK", + "LOADKX", +@@ -71,7 +71,7 @@ LUAI_DDEF const char *const luaP_opnames + + #define opmode(t,a,b,c,m) (((t)<<7) | ((a)<<6) | ((b)<<4) | ((c)<<2) | (m)) + +-LUAI_DDEF const lu_byte luaP_opmodes[NUM_OPCODES] = { ++LUA_API const lu_byte luaP_opmodes[NUM_OPCODES] = { + /* T A B C mode opcode */ + opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_MOVE */ + ,opmode(0, 1, OpArgK, OpArgN, iABx) /* OP_LOADK */ +diff -up lua-5.3.5/src/lopcodes.h.luac-shared lua-5.3.5/src/lopcodes.h +--- lua-5.3.5/src/lopcodes.h.luac-shared 2019-10-23 15:37:52.982773948 -0400 ++++ lua-5.3.5/src/lopcodes.h 2019-10-23 15:38:17.861254367 -0400 +@@ -278,7 +278,7 @@ enum OpArgMask { + OpArgK /* argument is a constant or register/constant */ + }; + +-LUAI_DDEC const lu_byte luaP_opmodes[NUM_OPCODES]; ++LUA_API const lu_byte luaP_opmodes[NUM_OPCODES]; + + #define getOpMode(m) (cast(enum OpMode, luaP_opmodes[m] & 3)) + #define getBMode(m) (cast(enum OpArgMask, (luaP_opmodes[m] >> 4) & 3)) +@@ -287,7 +287,7 @@ LUAI_DDEC const lu_byte luaP_opmodes[NUM + #define testTMode(m) (luaP_opmodes[m] & (1 << 7)) + + +-LUAI_DDEC const char *const luaP_opnames[NUM_OPCODES+1]; /* opcode names */ ++LUA_API const char *const luaP_opnames[NUM_OPCODES+1]; /* opcode names */ + + + /* number of list items to accumulate before a SETLIST instruction */ +diff -up lua-5.3.5/src/lundump.h.luac-shared lua-5.3.5/src/lundump.h +--- lua-5.3.5/src/lundump.h.luac-shared 2019-10-23 15:38:46.707651903 -0400 ++++ lua-5.3.5/src/lundump.h 2019-10-23 15:39:07.044227180 -0400 +@@ -26,7 +26,7 @@ + LUAI_FUNC LClosure* luaU_undump (lua_State* L, ZIO* Z, const char* name); + + /* dump one chunk; from ldump.c */ +-LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, ++LUA_API int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, + void* data, int strip); + + #endif diff --git a/lua-5.4.0-beta-autotoolize.patch b/lua-5.4.0-beta-autotoolize.patch new file mode 100644 index 0000000..2ff70f8 --- /dev/null +++ b/lua-5.4.0-beta-autotoolize.patch @@ -0,0 +1,192 @@ +diff -up lua-5.4.0-beta/configure.ac.autoxxx lua-5.4.0-beta/configure.ac +--- lua-5.4.0-beta/configure.ac.autoxxx 2019-10-23 15:03:13.296916443 -0400 ++++ lua-5.4.0-beta/configure.ac 2019-10-23 15:03:13.296916443 -0400 +@@ -0,0 +1,69 @@ ++AC_PREREQ(2.59) ++AC_INIT([lua], [5.4.0], [https://bugzilla.redhat.com/], [lua-at], [http://www.lua.org]) ++AC_SUBST([MAJOR_VERSION], [5.4]) ++ ++AC_CONFIG_HEADERS([config.h]) ++AC_CONFIG_SRCDIR([src/lapi.c]) ++ ++AM_INIT_AUTOMAKE([1.9 foreign]) ++ ++AC_PROG_CC ++AC_PROG_LIBTOOL ++ ++AC_ARG_WITH( ++ [readline], ++ [AC_HELP_STRING([--with-readline], [Use readline for interpreter input [default=yes]])], ++ [use_readline=$withval], ++ [use_readline=yes] ++) ++ ++LUA_LIBS="-lm" ++ ++# Check for readline ++READLINE_DEFS="#undef LUA_USE_READLINE" ++if test "x$use_readline" == "xyes"; then ++ AC_CHECK_LIB([readline], [readline], [:], [use_readline=no], [-lncurses]) ++ AC_CHECK_HEADERS([readline/readline.h readline/history.h], [], [use_readline=no]) ++ if test "x$use_readline" == "xno"; then ++ AC_MSG_WARN([readline headers could not be found, disabling readline support]) ++ else ++ READLINE_DEFS="#define LUA_USE_READLINE" ++ READLINE_LIBS="-lreadline -lncurses" ++ fi ++fi ++AC_SUBST(READLINE_DEFS) ++AC_SUBST(READLINE_LIBS) ++ ++case "$host" in ++ *-mingw*) use_os=win32 ;; ++ *-darwin*) use_os=macosx ;; ++ *) use_os=posix ;; ++esac ++ ++POSIX_DEFS="#undef LUA_USE_POSIX" ++LUA_DL_DEFS="#undef LUA_USE_DLOPEN" ++LUA_BUILD_AS_DLL_DEFS="#undef LUA_BUILD_AS_DLL" ++ ++if test "x$use_os" == "xwin32"; then ++ LUA_BUILD_AS_DLL_DEFS="#define LUA_BUILD_AS_DLL" ++elif test "x$use_os" == "xmacosx"; then ++ POSIX_DEFS="#define LUA_USE_POSIX" ++ LUA_DL_DEFS="#define LUA_DL_DYLD" ++elif test "x$use_os" == "xposix"; then ++ POSIX_DEFS="#define LUA_USE_POSIX" ++ LUA_DL_DEFS="#define LUA_DL_DLOPEN" ++ LUA_LIBS="$LUA_LIBS -ldl" ++fi ++AC_SUBST(POSIX_DEFS) ++AC_SUBST(LUA_DL_DEFS) ++AC_SUBST(LUA_BUILD_AS_DLL_DEFS) ++ ++AC_SUBST(LUA_LIBS) ++ ++AC_CONFIG_FILES([Makefile ++ src/Makefile ++ src/lua.pc ++ src/luaconf.h.template ++ doc/Makefile ++]) ++AC_OUTPUT +diff -up lua-5.4.0-beta/doc/Makefile.am.autoxxx lua-5.4.0-beta/doc/Makefile.am +--- lua-5.4.0-beta/doc/Makefile.am.autoxxx 2019-10-23 15:03:13.296916443 -0400 ++++ lua-5.4.0-beta/doc/Makefile.am 2019-10-23 15:03:13.296916443 -0400 +@@ -0,0 +1,4 @@ ++man1_MANS = lua.1 luac.1 ++ ++EXTRA_DIST = \ ++ contents.html logo.gif lua.1 luac.1 lua.css manual.css manual.html osi-certified-72x60.png readme.html +diff -up lua-5.4.0-beta/Makefile.am.autoxxx lua-5.4.0-beta/Makefile.am +--- lua-5.4.0-beta/Makefile.am.autoxxx 2019-10-23 15:03:13.296916443 -0400 ++++ lua-5.4.0-beta/Makefile.am 2019-10-23 15:03:13.296916443 -0400 +@@ -0,0 +1,3 @@ ++SUBDIRS = src doc ++ ++EXTRA_DIST = README +diff -up lua-5.4.0-beta/src/.gitignore.autoxxx lua-5.4.0-beta/src/.gitignore +--- lua-5.4.0-beta/src/.gitignore.autoxxx 2019-10-23 15:03:13.297916423 -0400 ++++ lua-5.4.0-beta/src/.gitignore 2019-10-23 15:03:13.296916443 -0400 +@@ -0,0 +1,5 @@ ++lua ++lua.pc ++luac ++luaconf.h ++luaconf.h.template +diff -up lua-5.4.0-beta/src/luaconf.h.template.in.autoxxx lua-5.4.0-beta/src/luaconf.h.template.in +--- lua-5.4.0-beta/src/luaconf.h.template.in.autoxxx 2019-09-30 19:52:16.000000000 -0400 ++++ lua-5.4.0-beta/src/luaconf.h.template.in 2019-10-23 15:05:45.139817627 -0400 +@@ -11,6 +11,11 @@ + #include + #include + ++@POSIX_DEFS@ ++@LUA_DL_DEFS@ ++@LUA_BUILD_AS_DLL_DEFS@ ++@READLINE_DEFS@ ++ + + /* + ** =================================================================== +@@ -227,9 +232,9 @@ + + #else /* }{ */ + +-#define LUA_ROOT "/usr/local/" +-#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" +-#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" ++#define LUA_ROOT "@prefix@/" ++#define LUA_LDIR "@pkgdatadir@/lua/" LUA_VDIR "/" ++#define LUA_CDIR "@libdir@/lua/" LUA_VDIR "/" + + #if !defined(LUA_PATH_DEFAULT) + #define LUA_PATH_DEFAULT \ +diff -up lua-5.4.0-beta/src/lua.pc.in.autoxxx lua-5.4.0-beta/src/lua.pc.in +--- lua-5.4.0-beta/src/lua.pc.in.autoxxx 2019-10-23 15:03:13.297916423 -0400 ++++ lua-5.4.0-beta/src/lua.pc.in 2019-10-23 15:03:13.297916423 -0400 +@@ -0,0 +1,13 @@ ++V= @MAJOR_VERSION@ ++R= @VERSION@ ++prefix= @prefix@ ++exec_prefix=${prefix} ++libdir= @libdir@ ++includedir=${prefix}/include ++ ++Name: Lua ++Description: An Extensible Extension Language ++Version: ${R} ++Requires: ++Libs: -llua @LUA_LIBS@ ++Cflags: -I${includedir} +diff -up lua-5.4.0-beta/src/Makefile.am.autoxxx lua-5.4.0-beta/src/Makefile.am +--- lua-5.4.0-beta/src/Makefile.am.autoxxx 2019-10-23 15:03:13.297916423 -0400 ++++ lua-5.4.0-beta/src/Makefile.am 2019-10-23 15:03:13.297916423 -0400 +@@ -0,0 +1,46 @@ ++AM_CFLAGS = -Wall ++ ++include_HEADERS = lua.h lualib.h lauxlib.h lua.hpp ++ ++nodist_include_HEADERS = luaconf.h ++ ++lib_LTLIBRARIES = liblua.la ++liblua_la_LDFLAGS = -release @MAJOR_VERSION@ ++liblua_la_SOURCES = \ ++ lapi.c lauxlib.c lbaselib.c lcode.c lcorolib.c lctype.c ldblib.c \ ++ ldebug.c ldo.c ldump.c lfunc.c lgc.c linit.c liolib.c llex.c lmathlib.c lmem.c \ ++ loadlib.c lobject.c lopcodes.c loslib.c lparser.c lstate.c lstring.c lstrlib.c \ ++ ltable.c ltablib.c ltm.c lundump.c lutf8lib.c lvm.c lzio.c \ ++ lapi.h lcode.h lctype.h ldebug.h ldo.h lfunc.h lgc.h llex.h llimits.h \ ++ lmem.h lobject.h lopcodes.h lparser.h lstate.h lstring.h ltable.h ltm.h \ ++ lundump.h lvm.h lzio.h ++ ++pkgconfigdir = $(libdir)/pkgconfig ++pkgconfig_DATA = lua.pc ++ ++bin_PROGRAMS = lua luac ++ ++lua_SOURCES = lua.c ++lua_LDADD = liblua.la @LUA_LIBS@ @READLINE_LIBS@ ++lua_DEPENDENCIES = liblua.la ++ ++luac_SOURCES = luac.c ++# Statically link liblua against luac since luac uses symbols not exported in liblua ++luac_LDADD = .libs/liblua.a @LUA_LIBS@ ++luac_DEPENDENCIES = liblua.la ++ ++EXTRA_DIST = luaconf.h.template ++BUILT_SOURCES = luaconf.h ++CLEANFILES = luaconf.h luaconf.h.template ++ ++readline_defs = @READLINE_DEFS@ ++ ++edit = sed \ ++ -e 's,%prefix%,$(prefix),g' \ ++ -e 's,%lua_datadir%,$(datadir),g' \ ++ -e 's,%lua_libdir%,$(libdir),g' ++ ++luaconf.h : luaconf.h.template ++ rm -f $@ $@.tmp ++ $(edit) $< >$@.tmp ++ mv $@.tmp $@ diff --git a/lua.spec b/lua.spec index 43e9e3f..22ab407 100644 --- a/lua.spec +++ b/lua.spec @@ -1,21 +1,21 @@ -%global major_version 5.3 +%global major_version 5.4 # Normally, this is the same as version, but... not always. # No tests yet for 5.3.5 -%global test_version 5.3.4 +%global test_version 5.4.0 # If you are incrementing major_version, enable bootstrapping and adjust accordingly. # Version should be the latest prior build. If you don't do this, RPM will break and # everything will grind to a halt. -%global bootstrap 0 -%global bootstrap_major_version 5.2 -%global bootstrap_version %{bootstrap_major_version}.3 +%global bootstrap 1 +%global bootstrap_major_version 5.3 +%global bootstrap_version %{bootstrap_major_version}.5 # Place rpm-macros into proper location. %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) Name: lua -Version: %{major_version}.5 -Release: 6%{?dist} +Version: %{major_version}.0 +Release: 1%{?dist} Summary: Powerful light-weight programming language License: MIT URL: http://www.lua.org/ @@ -30,18 +30,15 @@ Source3: http://www.lua.org/tests/lua-%{test_version}-tests.tar.gz Source4: luaconf.h # rpm-macro Source1000: macros.lua -Patch0: %{name}-5.3.0-autotoolize.patch +Patch0: %{name}-5.4.0-beta-autotoolize.patch Patch1: %{name}-5.3.0-idsize.patch #Patch2: %%{name}-5.3.0-luac-shared-link-fix.patch Patch3: %{name}-5.2.2-configure-linux.patch Patch4: %{name}-5.3.0-configure-compat-module.patch %if 0%{?bootstrap} -Patch5: %{name}-5.2.3-autotoolize.patch -Patch6: %{name}-5.2.2-idsize.patch -Patch7: %{name}-5.2.2-luac-shared-link-fix.patch -Patch8: %{name}-5.2.2-configure-compat-module.patch +Patch5: %{name}-5.3.0-autotoolize.patch +Patch6: %{name}-5.3.5-luac-shared-link-fix.patch %endif -Patch9: CVE-2019-6706-use-after-free-lua_upvaluejoin.patch BuildRequires: automake autoconf libtool readline-devel ncurses-devel Requires: lua-libs = %{version}-%{release} @@ -81,7 +78,7 @@ This package contains the static version of liblua for %{name}. %prep %if 0%{?bootstrap} -%setup -q -a 2 -a 3 +%setup -q -a 2 -a 3 -n %{name}-%{version} %else %setup -q -a 3 %endif @@ -92,7 +89,6 @@ mv src/luaconf.h src/luaconf.h.template.in #%% patch2 -p1 -z .luac-shared %patch3 -p1 -z .configure-linux %patch4 -p1 -z .configure-compat-all -%patch9 -p1 -b .CVE-2019-6706 # Put proper version in configure.ac, patch0 hardcodes 5.3.0 sed -i 's|5.3.0|%{version}|g' configure.ac autoreconf -ifv @@ -101,10 +97,10 @@ autoreconf -ifv cd lua-%{bootstrap_version}/ mv src/luaconf.h src/luaconf.h.template.in %patch5 -p1 -b .autoxxx -%patch6 -p1 -b .idsize -%patch7 -p1 -b .luac-shared +%patch1 -p1 -b .idsize %patch3 -p1 -z .configure-linux -%patch8 -p1 -z .configure-compat-all +%patch4 -p1 -z .configure-compat-all +%patch6 -p1 -b .luac-shared-link-fix autoreconf -i cd .. %endif @@ -214,6 +210,12 @@ install -Dpm 0644 %{SOURCE1000} $RPM_BUILD_ROOT/%{macrosdir}/macros.lua %changelog +* Mon Jun 29 2020 Tom Callaway - 5.4.0-1 +- update to 5.4.0 + +* Wed Oct 23 2019 Tom Callaway - 5.4.0-0.1.beta +- 5.4.0-beta + * Thu Jul 25 2019 Fedora Release Engineering - 5.3.5-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild diff --git a/sources b/sources index b87a79a..9a8713a 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (lua-5.2.3.tar.gz) = 264bb7c8db2f190ef0ca38584ec81999ab588f54e03119c5214c40bb8925b0eb407fac483a03e40cc8a220f6748ddff7d3a7392da3803418276b0d263b866449 -SHA512 (lua-5.3.4-tests.tar.gz) = 79575d100a2efabc8243f55b55d912443e09ef7e8b0219cb93541d85c2ba802fb9538015e1228703f09ca57bdb28a640a8f1fa0735716ba1e4bca2179c712dfb SHA512 (lua-5.3.5.tar.gz) = 4f9516acc4659dfd0a9e911bfa00c0788f0ad9348e5724fe8fb17aac59e9c0060a64378f82be86f8534e49c6c013e7488ad17321bafcc787831d3d67406bd0f4 +SHA512 (lua-5.4.0.tar.gz) = 22aa0f9fcf953fc49c97bf50a4cee708b458e8a95447f881037b2c6ddd60e40368a807f2575671c6cd7497cedc2cf5716a8959c196445bf9a359fe7ebcd65465 +SHA512 (lua-5.4.0-tests.tar.gz) = a4529138b581057890b06bf27804648fe720ebceee071b506ffcf0daa6f14bed6ce297adca7e5b2c37321e97e93019706ff1cd68ef1347ae4b367e0ee2b70c96