Package init

This commit is contained in:
overweight 2019-09-30 11:02:54 -04:00
commit 7c0419450b
11 changed files with 507 additions and 0 deletions

View File

@ -0,0 +1,22 @@
diff -up lua-5.2.2/configure.ac.linux lua-5.2.2/configure.ac
--- lua-5.2.2/configure.ac.linux 2013-05-10 15:42:27.269437631 -0400
+++ lua-5.2.2/configure.ac 2013-05-10 15:43:23.530435620 -0400
@@ -50,6 +50,7 @@ AC_SUBST(READLINE_LIBS)
case "$host" in
*-mingw*) use_os=win32 ;;
*-darwin*) use_os=macosx ;;
+ *-linux*) use_os=linux ;;
*) use_os=posix ;;
esac
@@ -62,6 +63,10 @@ if test "x$use_os" == "xwin32"; then
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" == "xlinux"; then
+ POSIX_DEFS="#define LUA_USE_LINUX"
+ LUA_DL_DEFS="#define LUA_DL_DLOPEN"
+ LUA_LIBS="$LUA_LIBS -ldl"
elif test "x$use_os" == "xposix"; then
POSIX_DEFS="#define LUA_USE_POSIX"
LUA_DL_DEFS="#define LUA_DL_DLOPEN"

192
lua-5.3.0-autotoolize.patch Normal file
View File

@ -0,0 +1,192 @@
diff -up lua-5.3.0/configure.ac.autoxxx lua-5.3.0/configure.ac
--- lua-5.3.0/configure.ac.autoxxx 2015-01-15 10:20:03.826889574 -0500
+++ lua-5.3.0/configure.ac 2015-01-15 10:20:03.826889574 -0500
@@ -0,0 +1,69 @@
+AC_PREREQ(2.59)
+AC_INIT([lua], [5.3.0], [https://bugzilla.redhat.com/], [lua-at], [http://www.lua.org])
+AC_SUBST([MAJOR_VERSION], [5.3])
+
+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.3.0/doc/Makefile.am.autoxxx lua-5.3.0/doc/Makefile.am
--- lua-5.3.0/doc/Makefile.am.autoxxx 2015-01-15 10:20:03.826889574 -0500
+++ lua-5.3.0/doc/Makefile.am 2015-01-15 10:20:03.826889574 -0500
@@ -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.3.0/Makefile.am.autoxxx lua-5.3.0/Makefile.am
--- lua-5.3.0/Makefile.am.autoxxx 2015-01-15 10:20:03.826889574 -0500
+++ lua-5.3.0/Makefile.am 2015-01-15 10:20:03.826889574 -0500
@@ -0,0 +1,3 @@
+SUBDIRS = src doc
+
+EXTRA_DIST = README
diff -up lua-5.3.0/src/.gitignore.autoxxx lua-5.3.0/src/.gitignore
--- lua-5.3.0/src/.gitignore.autoxxx 2015-01-15 10:20:03.826889574 -0500
+++ lua-5.3.0/src/.gitignore 2015-01-15 10:20:03.826889574 -0500
@@ -0,0 +1,5 @@
+lua
+lua.pc
+luac
+luaconf.h
+luaconf.h.template
diff -up lua-5.3.0/src/luaconf.h.template.in.autoxxx lua-5.3.0/src/luaconf.h.template.in
--- lua-5.3.0/src/luaconf.h.template.in.autoxxx 2015-01-15 10:20:03.828889562 -0500
+++ lua-5.3.0/src/luaconf.h.template.in 2015-01-15 10:22:37.420027778 -0500
@@ -11,6 +11,11 @@
#include <limits.h>
#include <stddef.h>
+@POSIX_DEFS@
+@LUA_DL_DEFS@
+@LUA_BUILD_AS_DLL_DEFS@
+@READLINE_DEFS@
+
/*
** ===================================================================
@@ -175,9 +180,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 "/"
#define LUA_PATH_DEFAULT \
LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \
LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" \
diff -up lua-5.3.0/src/lua.pc.in.autoxxx lua-5.3.0/src/lua.pc.in
--- lua-5.3.0/src/lua.pc.in.autoxxx 2015-01-15 10:20:03.827889568 -0500
+++ lua-5.3.0/src/lua.pc.in 2015-01-15 10:20:03.827889568 -0500
@@ -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.3.0/src/Makefile.am.autoxxx lua-5.3.0/src/Makefile.am
--- lua-5.3.0/src/Makefile.am.autoxxx 2015-01-15 10:20:03.826889574 -0500
+++ lua-5.3.0/src/Makefile.am 2015-01-15 10:20:03.826889574 -0500
@@ -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 lbitlib.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 $@

View File

@ -0,0 +1,35 @@
diff -up lua-5.2.2/configure.ac.compat-module lua-5.2.2/configure.ac
--- lua-5.2.2/configure.ac.compat-module 2013-05-10 10:16:05.344137597 -0400
+++ lua-5.2.2/configure.ac 2013-05-10 10:16:05.357137596 -0400
@@ -11,6 +11,20 @@ AC_PROG_CC
AC_PROG_LIBTOOL
AC_ARG_WITH(
+ [compat-module],
+ [AC_HELP_STRING([--with-compat-module], [Enable LUA_COMPAT_MODULE functions [default=no]])],
+ [use_compat_module=$withval],
+ [use_compat_module=no]
+)
+
+COMPAT_DEFS="#undef LUA_COMPAT_ALL"
+if test "x$use_compat_module" == "xyes"; then
+ COMPAT_DEFS="#define LUA_COMPAT_5_1
+#define LUA_COMPAT_5_2"
+fi
+AC_SUBST(COMPAT_DEFS)
+
+AC_ARG_WITH(
[readline],
[AC_HELP_STRING([--with-readline], [Use readline for interpreter input [default=yes]])],
[use_readline=$withval],
diff -up lua-5.2.2/src/luaconf.h.template.in.compat-module lua-5.2.2/src/luaconf.h.template.in
--- lua-5.2.2/src/luaconf.h.template.in.compat-module 2013-05-10 10:25:42.586116963 -0400
+++ lua-5.2.2/src/luaconf.h.template.in 2013-05-10 10:26:29.957115269 -0400
@@ -15,6 +15,7 @@
@LUA_DL_DEFS@
@LUA_BUILD_AS_DLL_DEFS@
@READLINE_DEFS@
+@COMPAT_DEFS@
/*

12
lua-5.3.0-idsize.patch Normal file
View File

@ -0,0 +1,12 @@
diff -up lua-5.3.0/src/luaconf.h.template.in.idsize lua-5.3.0/src/luaconf.h.template.in
--- lua-5.3.0/src/luaconf.h.template.in.idsize 2015-01-15 10:23:20.515801344 -0500
+++ lua-5.3.0/src/luaconf.h.template.in 2015-01-15 10:23:48.955651916 -0500
@@ -693,7 +693,7 @@
@@ of a function in debug information.
** CHANGE it if you want a different size.
*/
-#define LUA_IDSIZE 60
+#define LUA_IDSIZE 512
/*

BIN
lua-5.3.4-tests.tar.gz Normal file

Binary file not shown.

BIN
lua-5.3.5.tar.gz Normal file

Binary file not shown.

22
lua-CVE-2019-6706.patch Normal file
View File

@ -0,0 +1,22 @@
--- a/src/lapi.c 2017-12-06 13:35:12.000000000 -0500
+++ b/src/lapi_1.c 2019-06-24 07:48:06.289000000 -0400
@@ -1286,14 +1286,14 @@ LUA_API void *lua_upvalueid (lua_State *
LUA_API void lua_upvaluejoin (lua_State *L, int fidx1, int n1,
int fidx2, int n2) {
- LClosure *f1;
- UpVal **up1 = getupvalref(L, fidx1, n1, &f1);
+ UpVal **up1 = getupvalref(L, fidx1, n1, NULL); /* the last parameter not needed */
UpVal **up2 = getupvalref(L, fidx2, n2, NULL);
+ if (*up1 == *up2) return; /* Already joined */
+ (*up2)->refcount++;
+ if (upisopen(*up2)) (*up2)->u.open.touched = 1;
+ luaC_upvalbarrier(L, *up2);
luaC_upvdeccount(L, *up1);
*up1 = *up2;
- (*up1)->refcount++;
- if (upisopen(*up1)) (*up1)->u.open.touched = 1;
- luaC_upvalbarrier(L, *up1);
}

136
lua.spec Normal file
View File

@ -0,0 +1,136 @@
%global major_version 5.3
# test version is still 5.3.4
%global test_version 5.3.4
# Place rpm-macros into proper location.
%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
Name: lua
Version: 5.3.5
Release: 3
Summary: A powerful, efficient, lightweight, embeddable scripting language
License: MIT
URL: http://www.lua.org/
Source0: http://www.lua.org/ftp/lua-%{version}.tar.gz
Source1: http://www.lua.org/tests/lua-%{test_version}-tests.tar.gz
# Source2, Source100,Patch0~3 from https://koji.fedoraproject.org/koji/buildinfo?buildID=1113624
# multilib
Source2: luaconf.h
# copied from doc/readme.html on 2019-09-11
Source3: mit.txt
# rpm-macro
Source1000: macros.lua
Patch0: lua-5.3.0-autotoolize.patch
Patch1: lua-5.3.0-idsize.patch
Patch2: lua-5.2.2-configure-linux.patch
Patch3: lua-5.3.0-configure-compat-module.patch
#Patch for cves
Patch6000: lua-CVE-2019-6706.patch
BuildRequires: automake autoconf libtool readline-devel ncurses-devel
Obsoletes: %{name}-libs < %{version}-%{release}
Provides: lua(abi) = %{major_version}
%description
Lua is a powerful, efficient, lightweight, embeddable scripting language.
It supports procedural programming, object-oriented programming,
functional programming, data-driven programming, and data description.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: pkgconfig
Obsoletes: %{name}-static < %{version}-%{release}
Provides: %{name}-static = %{version}-%{release}
%description devel
This package contains development files for %{name}.
%package_help
%prep
%setup -q -a 1
cp %{SOURCE3} .
mv src/luaconf.h src/luaconf.h.template.in
%patch0 -p1 -E -z .autoxxx
%patch1 -p1 -z .idsize
%patch2 -p1 -z .configure-linux
%patch3 -p1 -z .configure-compat-all
# Put proper version in configure.ac, patch0 hardcodes 5.3.0
sed -i 's|5.3.0|%{version}|g' configure.ac
autoreconf -ifv
%patch6000 -p1
%build
%configure --with-readline --with-compat-module
%disable_rpath
# Autotools give me a headache sometimes.
sed -i 's|@pkgdatadir@|%{_datadir}|g' src/luaconf.h.template
# hack so that only /usr/bin/lua gets linked with readline as it is the
# only one which needs this and otherwise we get License troubles
%make_build LIBS="-lm -ldl"
# only /usr/bin/lua links with readline now #luac_LDADD="liblua.la -lm -ldl"
%install
%make_install
rm $RPM_BUILD_ROOT%{_libdir}/*.la
mkdir -p %{buildroot}/%{_libdir}/lua/%{major_version}
mkdir -p %{buildroot}/%{_datadir}/lua/%{major_version}
# Rename luaconf.h to luaconf-<arch>.h to avoid file conflicts on
# multilib systems and install luaconf.h wrapper
mv %{buildroot}%{_includedir}/luaconf.h %{buildroot}%{_includedir}/luaconf-%{_arch}.h
install -p -m 644 %{SOURCE2} %{buildroot}%{_includedir}/luaconf.h
# Install rpm-macro
install -Dpm 0644 %{SOURCE1000} $RPM_BUILD_ROOT/%{macrosdir}/macros.lua
%check
cd ./lua-%{test_version}-tests/
# Removing tests that fail under mock/koji
sed -i.orig -e '
/db.lua/d;
/errors.lua/d;
' all.lua
LD_LIBRARY_PATH=$RPM_BUILD_ROOT/%{_libdir} $RPM_BUILD_ROOT/%{_bindir}/lua -e"_U=true" all.lua
%pre
%preun
%post
%postun
%files
%defattr(-,root,root)
%license mit.txt
%{_bindir}/lua
%{_bindir}/luac
%dir %{_libdir}/lua
%dir %{_libdir}/lua/%{major_version}
%dir %{_datadir}/lua
%dir %{_datadir}/lua/%{major_version}
%{_libdir}/liblua-%{major_version}.so
%{_libdir}/liblua.so
%files devel
%defattr(-,root,root)
%{_includedir}/l*.h
%{_includedir}/l*.hpp
%{_libdir}/pkgconfig/*.pc
%{_libdir}/*.a
%{macrosdir}/macros.lua
%files help
%defattr(-,root,root)
%doc README doc/*.html doc/*.css doc/*.gif doc/*.png
%{_mandir}/man1/lua*.1*
%changelog
* Tue Sep 10 2019 openEuler Buildteam <buildteam@openeuler.org> - 5.3.5-3
- Package init

61
luaconf.h Normal file
View File

@ -0,0 +1,61 @@
/*
* This luaconf.h is a wrapper include file for the original luaconf.h,
* which has been renamed to luaconf-<arch>.h. There are conflicts for the
* original luaconf.h on multilib systems, which result from arch-specific
* configuration options. Please do not use the arch-specific file directly.
*
* Copyright (C) 2015 Tom Callaway <spot@fedoraproject.org>
*/
/**
* \file luaconf.h
*/
#ifdef luaconf_wrapper_h
#error "luaconf_wrapper_h should not be defined!"
#endif
#define luaconf_wrapper_h
#if defined(__i386__)
#include "luaconf-i386.h"
#elif defined(__ia64__)
#include "luaconf-ia64.h"
#elif defined(__powerpc64__)
# if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
#include "luaconf-ppc64.h"
# else
#include "luaconf-ppc64le.h"
# endif
#elif defined(__powerpc__)
#include "luaconf-ppc.h"
#elif defined(__s390x__)
#include "luaconf-s390x.h"
#elif defined(__s390__)
#include "luaconf-s390.h"
#elif defined(__x86_64__)
#include "luaconf-x86_64.h"
#elif defined(__arm__)
#include "luaconf-arm.h"
#elif defined(__alpha__)
#include "luaconf-alpha.h"
#elif defined(__sparc__) && defined (__arch64__)
#include "luaconf-sparc64.h"
#elif defined(__sparc__)
#include "luaconf-sparc.h"
#elif defined(__aarch64__)
#include "luaconf-aarch64.h"
#elif defined(__mips64) && defined(__MIPSEL__)
#include "luaconf-mips64el.h"
#elif defined(__mips64)
#include "luaconf-mips64.h"
#elif defined(__mips) && defined(__MIPSEL__)
#include "luaconf-mipsel.h"
#elif defined(__mips)
#include "luaconf-mips.h"
#elif defined(__riscv)
#include "luaconf-riscv64.h"
#else
#error "The lua-devel package is not usable with the architecture."
#endif
#undef luaconf_wrapper_h

8
macros.lua Normal file
View File

@ -0,0 +1,8 @@
%lua_version %{lua: print(string.sub(_VERSION, 5))}
%lua_libdir %{_libdir}/lua/%{lua_version}
%lua_pkgdir %{_datadir}/lua/%{lua_version}
%lua_requires \
Requires: lua(abi) = %{lua_version} \
%{nil}

19
mit.txt Normal file
View File

@ -0,0 +1,19 @@
Copyright (c) 1994-2017 Lua.org, PUC-Rio.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.