commit 64d9537d8384e6dc0b16089572571ef6ccbbbeea4328df850b91e2b34effd7bc Author: Tomáš Chvátal Date: Fri Jul 7 13:14:29 2017 +0000 osc copypac from project:devel:languages:lua package:lua revision:24, using expand OBS-URL: https://build.opensuse.org/package/show/devel:languages:lua/lua53?expand=0&rev=2 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..b79075a --- /dev/null +++ b/baselibs.conf @@ -0,0 +1 @@ +liblua5_3 diff --git a/lua-5.3.3-prefix.patch b/lua-5.3.3-prefix.patch new file mode 100644 index 0000000..3c88eb1 --- /dev/null +++ b/lua-5.3.3-prefix.patch @@ -0,0 +1,13 @@ +Index: lua-5.3.3/src/luaconf.h +=================================================================== +--- lua-5.3.3.orig/src/luaconf.h ++++ lua-5.3.3/src/luaconf.h +@@ -188,7 +188,7 @@ + + #else /* }{ */ + +-#define LUA_ROOT "/usr/local/" ++#define LUA_ROOT "/usr/" + #define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" + #define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" + #define LUA_PATH_DEFAULT \ diff --git a/lua-5.3.3-shared.patch b/lua-5.3.3-shared.patch new file mode 100644 index 0000000..297d20a --- /dev/null +++ b/lua-5.3.3-shared.patch @@ -0,0 +1,73 @@ +Index: lua-5.3.3/Makefile +=================================================================== +--- lua-5.3.3.orig/Makefile ++++ lua-5.3.3/Makefile +@@ -41,7 +41,7 @@ PLATS= aix bsd c89 freebsd generic linux + # What to install. + TO_BIN= lua luac + TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp +-TO_LIB= liblua.a ++TO_LIB= liblua.a liblua.so.$V + TO_MAN= lua.1 luac.1 + + # Lua version and release. +@@ -61,6 +61,7 @@ install: dummy + cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) + cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) + cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) ++ ln -s liblua.so.$V $(INSTALL_LIB)/liblua.so + cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) + cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) + +Index: lua-5.3.3/src/Makefile +=================================================================== +--- lua-5.3.3.orig/src/Makefile ++++ lua-5.3.3/src/Makefile +@@ -29,6 +29,7 @@ MYOBJS= + PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris + + LUA_A= liblua.a ++LUA_SO= liblua.so + CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ + lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ + ltm.o lundump.o lvm.o lzio.o +@@ -43,7 +44,7 @@ LUAC_T= luac + LUAC_O= luac.o + + ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) +-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++ALL_T= $(LUA_SO) $(LUA_A) $(LUA_T) $(LUAC_T) + ALL_A= $(LUA_A) + + # Targets start here. +@@ -55,21 +56,26 @@ o: $(ALL_O) + + a: $(ALL_A) + ++# shared libraries (for linux) ++$(LUA_SO): $(CORE_O) $(LIB_O) ++ $(CC) $(MYCFLAGS) -o $(LUA_SO).$V -shared -Wl,-soname,$(LUA_SO).$V $(CORE_O) $(LIB_O) -lm -ldl ++ ln -sf $(LUA_SO).$V $(LUA_SO) ++ + $(LUA_A): $(BASE_O) + $(AR) $@ $(BASE_O) + $(RANLIB) $@ + + $(LUA_T): $(LUA_O) $(LUA_A) +- $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) ++ $(CC) $(MYCFLAGS) -o $@ $(MYLDFLAGS) $(LUA_O) -L. -llua $(LIBS) + +-$(LUAC_T): $(LUAC_O) $(LUA_A) +- $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) ++$(LUAC_T): $(LUAC_O) $(LUA_SO) ++ $(CC) $(MYCFLAGS) -o $@ $(MYLDFLAGS) $(LUAC_O) -L. -llua $(LIBS) + + clean: + $(RM) $(ALL_T) $(ALL_O) + + depend: +- @$(CC) $(CFLAGS) -MM l*.c ++ @$(CC) $(MYCFLAGS) -MM l*.c + + echo: + @echo "PLAT= $(PLAT)" diff --git a/lua-5.3.3-visible.patch b/lua-5.3.3-visible.patch new file mode 100644 index 0000000..d6e64b0 --- /dev/null +++ b/lua-5.3.3-visible.patch @@ -0,0 +1,35 @@ +Index: lua-5.3.3/src/lopcodes.h +=================================================================== +--- lua-5.3.3.orig/src/lopcodes.h ++++ lua-5.3.3/src/lopcodes.h +@@ -276,7 +276,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)) +@@ -285,7 +285,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 */ +Index: lua-5.3.3/src/lundump.h +=================================================================== +--- lua-5.3.3.orig/src/lundump.h ++++ lua-5.3.3/src/lundump.h +@@ -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.3.3.tar.gz b/lua-5.3.3.tar.gz new file mode 100644 index 0000000..704adec --- /dev/null +++ b/lua-5.3.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5113c06884f7de453ce57702abaac1d618307f33f6789fa870e87a59d772aca2 +size 294290 diff --git a/lua.changes b/lua.changes new file mode 100644 index 0000000..7320559 --- /dev/null +++ b/lua.changes @@ -0,0 +1,432 @@ +------------------------------------------------------------------- +Tue Jun 13 21:30:38 UTC 2017 - jengelh@inai.de + +- Let package description adhere to guidelines: trim redundant + or biased wording and strip future goals. + +------------------------------------------------------------------- +Thu Jun 16 09:32:46 UTC 2016 - i@marguerite.su + +- update version 5.3.3 + * bugfix release +- changes in 5.3.2 + * metatable may access its own deallocated field when it has a + self reference in __newindex + * label between local definitions can mix-up their initializations + * gmatch iterator fails when called from a coroutine different + from the one that created it +- split lua-suse.diff to 3 reasonable patches + * add lua-5.3.3-prefix.patch + * add lua-5.3.3-shared.patch + * add lua-5.3.3-visible.patch + +------------------------------------------------------------------- +Fri Jul 31 18:12:35 UTC 2015 - jengelh@inai.de + +- Update RPM group classification + +------------------------------------------------------------------- +Thu Jul 30 11:52:14 UTC 2015 - dimstar@opensuse.org + +- Provide Lua(API) = 5.3, so that packages installing files to + /usr/share/lua/5.3 can properly depend on the right lua branch. +- Provide Lua(devel) = 5.3 by lua-devel and conflict with other + packages providing Lua(devel) (e.g lua51-devel, lua52-devel...). + +------------------------------------------------------------------- +Mon Jul 13 16:33:31 UTC 2015 - i@marguerite.su + +- macros.lua installs to lua-devel +- build with LUA_COMPAT_MODULE to compatible w/ old module system + +------------------------------------------------------------------- +Fri Jul 10 09:52:48 UTC 2015 - i@marguerite.su + +- update version 5.3.1 + * integers (64-bit by default) + * official support for 32-bit numbers + * bitwise operators + * basic utf-8 support + * functions for packing and unpacking values + * see http://www.lua.org/manual/5.3/readme.html#changes + +------------------------------------------------------------------- +Sun Mar 15 00:19:08 UTC 2015 - mpluskal@suse.com + +- Update to 5.2.4 + * Compiler can optimize away overflow check in table.unpack. + * Ephemeron table can wrongly collect entry with strong key. + * Chunk with too many lines may crash Lua. + +------------------------------------------------------------------- +Wed Sep 17 15:04:25 UTC 2014 - i@marguerite.su + +- the %dir is still needed. + +------------------------------------------------------------------- +Fri Sep 12 09:19:07 UTC 2014 - pgajdos@suse.com + +- fix update-alternatives + +------------------------------------------------------------------- +Wed Sep 10 10:21:23 UTC 2014 - pgajdos@suse.com + +- fix /etc/rpm/macros.lua perms + +------------------------------------------------------------------- +Mon Mar 31 11:05:05 UTC 2014 - pgajdos@suse.com + +- updated to 5.2.3: + * yieldable pcall and metamethods + * new lexical scheme for globals + * ephemeron tables + * new library for bitwise operations + * light C functions + * emergency garbage collector + * goto statement + * finalizers for tables + +------------------------------------------------------------------- +Mon Sep 9 11:12:20 UTC 2013 - pgajdos@suse.com + +- updated to 5.2.2: bugfix release, fixed: + * Stack overflow in vararg functions with many fixed parameters + called with few arguments. + * Garbage collector can trigger too many times in recursive loops. + * Wrong assert when reporting concatenation errors (manifests only + when Lua is compiled in debug mode). + * Wrong error message in some short-cut expressions. + * luac listings choke on long strings. + * see http://www.lua.org/bugs.html for details + +------------------------------------------------------------------- +Tue Feb 19 11:30:57 UTC 2013 - pgajdos@suse.com + +- fix visibility of global variables [bnc#803791] + * modified lua-suse.diff +- added LUA_SO target as dependency to LUAC_T and LUA_T to fix + parallel build + * modified lua-suse.diff +- added regresion check for this error into %check + +------------------------------------------------------------------- +Tue Feb 5 14:18:18 UTC 2013 - coolo@suse.com + +- update alternatives need to be %ghosts + +------------------------------------------------------------------- +Thu Nov 15 15:11:34 UTC 2012 - pgajdos@suse.com + +- export luaU_dump in order to fix linking of luac binary + +------------------------------------------------------------------- +Tue Oct 9 14:55:31 UTC 2012 - crrodriguez@opensuse.org + +- Tweak lua-suse.diff again: +* LUA_IFUNC must be defined as upstream but without "extern", + revert the previous mod. +* LUA_API must be defined as visibility default + +------------------------------------------------------------------- +Thu Aug 16 00:34:57 UTC 2012 - crrodriguez@opensuse.org + +- Even after the previous update, third party modules/libraries + would not work because LUA_CDIR constant is wrong in x86_64 + +------------------------------------------------------------------- +Wed Aug 15 22:34:12 UTC 2012 - crrodriguez@opensuse.org + +- devel package must require libluaver = %{version} + +------------------------------------------------------------------- +Wed Aug 15 22:24:01 UTC 2012 - crrodriguez@opensuse.org + +- Broken lua-suse patch breaks loading third party modules + or scripts + +------------------------------------------------------------------- +Mon Jun 18 09:09:13 UTC 2012 - pgajdos@suse.com + +- updated to 5.2.1: + * main thread predefined in the registry + * bugfixes + +------------------------------------------------------------------- +Thu Mar 29 19:29:57 UTC 2012 - joop.boonen@opensuse.org + +- Correction in Provides and Obsolete for lua-libs +- Passed the spec file through spec-cleaner + +------------------------------------------------------------------- +Wed Jan 18 22:03:20 UTC 2012 - dimstar@opensuse.org + +- Require liblua5_2 from the -devel package: Otherwise the .so file + is a dangling symlink and apps will use the static lib. +- Update baselibs.conf to reference liblua5_2 instead of liblua5_1. + +------------------------------------------------------------------- +Fri Jan 6 18:17:22 CET 2012 - dmueller@suse.de + +- readd lua.pc for building rpm + +------------------------------------------------------------------- +Wed Dec 21 15:11:08 UTC 2011 - pgajdos@suse.com + +- raise update-alternatives priority to 15 (lua51 have 10, lua50 + have 5) + +------------------------------------------------------------------- +Wed Dec 21 13:58:22 UTC 2011 - pgajdos@suse.com + +- updated to 5.2.0: + * Main changes + yieldable pcall and metamethods + new lexical scheme for globals + ephemeron tables + new library for bitwise operations + light C functions + emergency garbage collector + [goto] statement + finalizers for tables + * Language + no more fenv for threads or functions + tables honor the [__len] metamethod + hex and [\z] escapes in strings + support for hexadecimal floats + order metamethods work for different types + no more verification of opcode consistency + hook event "tail return" replaced by "tail call" + empty statement + [break] statement may appear in the middle of a block + * Libraries + arguments for function called through [xpcall] + optional 'mode' argument to load and loadfile (to control binary x text) + optional 'env' argument to load and loadfile (environment for loaded chunk) + [loadlib] may load libraries with global names (RTLD_GLOBAL) + new function [package.searchpath] + modules receive their paths when loaded + optional base in [math.log] + optional separator in [string.rep] + [file:write] returns file + closing a pipe returns exit status + [os.exit] may close state + new metamethods [__pairs] and __ipairs + new option 'isrunning' for [collectgarbage] and lua_gc + frontier patterns + [\0] in patterns + new option [*L] for io.read + options for [io.lines] + [debug.getlocal] can access function varargs + * C API + new functions: lua_absindex, lua_arith, lua_compare, lua_copy, lua_len, + lua_rawgetp, lua_rawsetp, lua_upvalueid, lua_upvaluejoin, + lua_version, luaL_checkversion, luaL_setmetatable, + luaL_testudata, luaL_tolstring + [lua_pushstring] and pushlstring return string + [nparams] and isvararg available in debug API + new lua_Unsigned + * Implementation + max constants per function raised to 2^26 + generational mode for garbage collection (experimental) + NaN trick (experimental) + internal (immutable) version of ctypes + simpler implementation for string buffers + parser uses much less C-stack space (no more auto arrays) + * Lua standalone interpreter + new [-E] option to avoid environment variables + handling of non-string error messages + +------------------------------------------------------------------- +Tue Oct 4 11:44:08 UTC 2011 - uli@suse.com + +- cross-build fix: use %__cc macro + +------------------------------------------------------------------- +Mon Jun 28 06:38:35 UTC 2010 - jengelh@medozas.de + +- use %_smp_mflags + +------------------------------------------------------------------- +Mon Jun 14 15:55:32 CEST 2010 - pgajdos@suse.cz + +- removed -L/usr/lib from Libs: in etc/lua.pc [bnc#613497] +- used upstream bugfix patch from http://www.lua.org/download.html + +------------------------------------------------------------------- +Sat Apr 24 11:38:23 UTC 2010 - coolo@novell.com + +- buildrequire pkg-config to fix provides + +------------------------------------------------------------------- +Tue Mar 23 11:16:23 CET 2010 - pgajdos@suse.cz + +- modified LUA_PATH_DEFAULT [bnc#589441]: search modules under + /usr/%{_lib}/lua/%{major_version} too + +------------------------------------------------------------------- +Sat Dec 12 18:28:44 CET 2009 - jengelh@medozas.de + +- add baselibs.conf as a source +- package documentation as noarch + +------------------------------------------------------------------- +Sun Dec 6 16:02:17 CET 2009 - jengelh@medozas.de + +- enable parallel building + +------------------------------------------------------------------- +Tue Nov 3 19:09:29 UTC 2009 - coolo@novell.com + +- updated patches to apply with fuzz=0 + +------------------------------------------------------------------- +Wed Sep 16 23:25:13 CEST 2009 - dmueller@suse.de + +- add baselibs.conf + +------------------------------------------------------------------- +Mon Jun 8 15:57:11 CEST 2009 - pgajdos@suse.cz + +- package owns /usr/{lib,share}/lua directories from now +- emoved unneeded root.patch + +------------------------------------------------------------------- +Thu Sep 11 16:00:41 CEST 2008 - pgajdos@suse.cz + +- updated to 5.1.4: bugfix release + +------------------------------------------------------------------- +Wed Jun 11 10:56:51 ADT 2008 - jfunk@funktronics.ca + +- Set LUA_ROOT to /usr and fix INSTALL_CMOD for lib64 +- Add RPM macros file +- Allows for lua- packages like python, perl, and ruby + +------------------------------------------------------------------- +Fri Mar 28 07:57:37 CET 2008 - coolo@suse.de + +- hint the solver about the package rename + +------------------------------------------------------------------- +Wed Mar 26 21:29:35 CET 2008 - coolo@suse.de + +- do not package/provide the shared lib twice / follow shared lib + policy + +------------------------------------------------------------------- +Tue Feb 19 10:37:22 CET 2008 - pgajdos@suse.cz + +- created -doc package +- updated to version 5.1.3, bug fix release. Fixed bugs: + * wrong error message in some concatenations + * too many variables in an assignment may cause a C stack + overflow + * an error in a module loaded through the '-l' option shows no + traceback + * gsub may go wild when wrongly called without its third + argument and with a large subject + * table.remove removes last element of a table when given + an out-of-bound index + * lua_setfenv may crash if called over an invalid object + * stand-alone interpreter shows incorrect error message when + the "message" is a coroutine. + * debug.sethook/gethook may overflow the thread's stack + +------------------------------------------------------------------- +Tue Jul 24 14:31:30 CEST 2007 - pgajdos@suse.cz + +- using /sbin/ldconfig in specfile +- updated to version 5.1.2, fixes some bugs: + * count hook may be called without being set + * code generated for "-nil", "-true", and "-false" is wrong + * recursive coroutines may overflow C stack + * wrong error message in some concatenations + * very small numbers all collide in the hash function + +------------------------------------------------------------------- +Mon Nov 27 17:42:31 CET 2006 - mrueckert@suse.de + +- package liblua.so as symlink. + +------------------------------------------------------------------- +Thu Nov 16 21:29:32 CET 2006 - mrueckert@suse.de + +- the core package now uses update alternatives to allow installation + of 5.0.x and 5.1.x +- devel packages will conflict now + +------------------------------------------------------------------- +Tue Nov 14 21:29:31 CET 2006 - mrueckert@suse.de + +- ARGH dont copy and paste!: + lua-libs should not depend on lua. another run on (#217875) + +------------------------------------------------------------------- +Tue Nov 14 11:42:44 CET 2006 - mrueckert@suse.de + +- really fix the file pattern (#217875) + +------------------------------------------------------------------- +Thu Nov 9 15:08:50 CET 2006 - mrueckert@suse.de + +- splitted out lua-libs so we can install at least both libs + in parallel. (#217875) + +------------------------------------------------------------------- +Thu Oct 19 22:44:09 CEST 2006 - dmueller@suse.de + +- fix wrong prefix in lua.pc +- link liblua with -lm to satisfy unresolved symbols + +------------------------------------------------------------------- +Thu Oct 19 16:44:39 CEST 2006 - mjancar@suse.cz + +- include lua.pc + +------------------------------------------------------------------- +Wed Oct 18 19:17:00 CEST 2006 - mjancar@suse.cz + +- update to 5.1.1 + Language: + * new module system. + * new semantics for control variables of fors. + * new semantics for setn/getn. + * new syntax/semantics for varargs. + * new long strings and comments. + * new `mod' operator (`%') + * new length operator #t + * metatables for all types + API: + * new functions: lua_createtable, lua_get(set)field, lua_push(to)integer. + * user supplies memory allocator (lua_open becomes lua_newstate). + * luaopen_* functionst must be called through Lua. + Implementation: + * new configuration scheme via luaconf.h. + * incremental garbage collection. + * better handling of end-of-line in the lexer. + * fully reentrant parser (new Lua function `load') + * better support for 64-bit machines. + * native loadlib support for Mac OS X. + * standard distribution in only one library (lualib.a merged into lua.a) + +------------------------------------------------------------------- +Wed Jan 25 21:38:05 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Sat Jan 14 01:36:17 CET 2006 - schwab@suse.de + +- Don't strip binaries. +- Fix shared library linking. + +------------------------------------------------------------------- +Thu Sep 8 15:17:49 CEST 2005 - anicka@suse.cz + +- enable dynamic loading capability (#106845) + +------------------------------------------------------------------- +Fri Apr 23 16:17:31 CEST 2004 - mcihar@suse.cz + +- initial packaging + diff --git a/lua.spec b/lua.spec new file mode 100644 index 0000000..bff4a8b --- /dev/null +++ b/lua.spec @@ -0,0 +1,211 @@ +# +# spec file for package lua +# +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +%define major_version 5.3 +%define libsuf 5_3 +Name: lua +Version: 5.3.3 +Release: 0 +Summary: Small Embeddable Language with Procedural Syntax +License: MIT +Group: Development/Languages/Other +Url: http://www.lua.org +Source: http://www.lua.org/ftp/lua-%{version}.tar.gz +Source1: macros.lua +Source2: baselibs.conf +# PATCH-FIX-UPSTREAM change prefix to /usr/ +Patch: lua-5.3.3-prefix.patch +# PATCH-FIX-UPSTREAM shared library support +Patch1: lua-5.3.3-shared.patch +# PATCH-FIX-UPSTREAM make luaU_dump, luaP_opmodes and luaP_opnames visible +# to luac +Patch2: lua-5.3.3-visible.patch +BuildRequires: pkg-config +BuildRequires: readline-devel +BuildRequires: update-alternatives +Requires(pre): update-alternatives +# As other packages install files into /usr/share/lua/lua_version, they ought to require lua = lua_version (which is only major_version) +# in order to facilitate this, we provide the corresponding symbol here. +Provides: Lua(API) = %{major_version} +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%description +Lua is a programming language originally designed for extending +applications, but is also frequently used as a general-purpose, +stand-alone language. + +Lua combines procedural syntax (similar to Pascal) with +data description constructs based on associative arrays and extensible +semantics. Lua is dynamically typed, interpreted from byte codes, and +has automatic memory management, making it suitable for configuration, +scripting, and rapid prototyping. Lua is implemented as a small library +of C functions, written in ANSI C. + +%package devel +Summary: Development files for lua +Group: Development/Libraries/C and C++ +Requires: %{name} = %{version} +Requires: liblua%{libsuf} = %{version} +Provides: Lua(devel) = %{major_version} +Conflicts: otherproviders(Lua(devel)) + +%description devel +Lua is a programming language originally designed for extending +applications, but is also frequently used as a general-purpose, +stand-alone language. + +This package contains files needed for embedding lua into your +application. + +%package -n liblua%{libsuf} +Summary: The Lua integration library +Group: System/Libraries +Provides: %{name}-libs = %{version} +Obsoletes: %{name}-libs < %{version} + +%description -n liblua%{libsuf} +Lua is a programming language originally designed for extending +applications, but is also frequently used as a general-purpose, +stand-alone language. + +Lua combines procedural syntax (similar to Pascal) with +data description constructs based on associative arrays and extensible +semantics. Lua is dynamically typed, interpreted from byte codes, and +has automatic memory management, making it suitable for configuration, +scripting, and rapid prototyping. Lua is implemented as a small library +of C functions, written in ANSI C. + +%package doc +Summary: Documentation for Lua, a small embeddable language +Group: Documentation/HTML +%if 0%{?suse_version} >= 1120 +BuildArch: noarch +%endif + +%description doc +Lua is a programming language originally designed for extending +applications, but is also frequently used as a general-purpose, +stand-alone language. + +Lua combines procedural syntax (similar to Pascal) with +data description constructs based on associative arrays and extensible +semantics. Lua is dynamically typed, interpreted from byte codes, and +has automatic memory management, making it suitable for configuration, +scripting, and rapid prototyping. Lua is implemented as a small library +of C functions, written in ANSI C. + +%prep +%setup -q +%patch -p1 +%patch1 -p1 +%patch2 -p1 + +%build +sed -i -e "s@lib/lua/@%{_lib}/lua/@g" src/luaconf.h +make %{?_smp_mflags} -C src CC="gcc" MYCFLAGS="%{optflags} -std=gnu99 -D_GNU_SOURCE -fPIC -DLUA_USE_LINUX -DLUA_COMPAT_MODULE" MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses" V=%{major_version} all + +%install +make install INSTALL_TOP="%{buildroot}%{_prefix}" INSTALL_LIB="%{buildroot}%{_libdir}" INSTALL_CMOD=%{buildroot}%{_libdir}/lua/%{major_version} INSTALL_MAN="%{buildroot}%{_mandir}/man1" +# update-alternatives +mkdir -p %{buildroot}%{_sysconfdir}/alternatives +for file in lua luac ; do + mv "%{buildroot}%{_bindir}/${file}" "%{buildroot}%{_bindir}/${file}%{major_version}" + touch "%{buildroot}%{_sysconfdir}/alternatives/${file}" + ln -sf "%{_sysconfdir}/alternatives/${file}" "%{buildroot}%{_bindir}/${file}" + mv "%{buildroot}%{_mandir}/man1/${file}.1" "%{buildroot}%{_mandir}/man1/${file}%{major_version}.1" + touch "%{buildroot}%{_sysconfdir}/alternatives/${file}.1.gz" + ln -sf "%{_sysconfdir}/alternatives/${file}.1.gz" "%{buildroot}%{_mandir}/man1/${file}.1.gz" +done +install -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/rpm/macros.lua + +# create pkg-config file +cat > lua.pc <<-EOF +prefix=%{_prefix} +exec_prefix=%{_prefix} +libdir=%{_libdir} +includedir=%{_prefix}}/include + +Name: Lua +Description: An Extensible Extension Language +Version: %{version} +Libs: -llua -lm +Cflags: +EOF +install -D -m 644 lua.pc %{buildroot}/%{_libdir}/pkgconfig/lua.pc + +%check +cd src +LD_LIBRARY_PATH=`pwd` ./lua -e 'print(0)' > /dev/null + +%post +%{_sbindir}/update-alternatives --install \ + %{_bindir}/lua lua %{_bindir}/lua%{major_version} 15 \ + --slave %{_bindir}/luac luac %{_bindir}/luac%{major_version} \ + --slave %{_mandir}/man1/lua.1.gz lua.1.gz %{_mandir}/man1/lua%{major_version}.1.gz \ + --slave %{_mandir}/man1/luac.1.gz luac.1.gz %{_mandir}/man1/luac%{major_version}.1.gz + +%preun +if [ "$1" = 0 ] ; then + %{_sbindir}/update-alternatives --remove lua %{_bindir}/lua%{major_version} +fi + +%post -n liblua%{libsuf} -p /sbin/ldconfig + +%postun -n liblua%{libsuf} -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%doc README +%dir %{_libdir}/lua +%dir %{_libdir}/lua/%{major_version} +%dir %{_datadir}/lua +%dir %{_datadir}/lua/%{major_version} +%{_bindir}/lua%{major_version} +%{_bindir}/luac%{major_version} +%{_mandir}/man1/lua%{major_version}.1.gz +%{_mandir}/man1/luac%{major_version}.1.gz +%{_bindir}/lua +%{_bindir}/luac +%{_mandir}/man1/lua.1.gz +%{_mandir}/man1/luac.1.gz +%ghost %{_sysconfdir}/alternatives/lua +%ghost %{_sysconfdir}/alternatives/luac +%ghost %{_sysconfdir}/alternatives/lua.1.gz +%ghost %{_sysconfdir}/alternatives/luac.1.gz + +%files -n liblua%{libsuf} +%defattr(-,root,root) +%{_libdir}/liblua.so.%{major_version} + +%files devel +%defattr(-,root,root) +%config %{_sysconfdir}/rpm/macros.lua +%{_includedir}/lauxlib.h +%{_includedir}/lua.h +%{_includedir}/lua.hpp +%{_includedir}/luaconf.h +%{_includedir}/lualib.h +%{_libdir}/liblua.a +%{_libdir}/liblua.so +%{_libdir}/pkgconfig/lua.pc + +%files doc +%defattr(-,root,root) +%doc doc/* + +%changelog diff --git a/macros.lua b/macros.lua new file mode 100644 index 0000000..612a78f --- /dev/null +++ b/macros.lua @@ -0,0 +1,10 @@ +# RPM macros for Lua + +# The major.minor version of Lua +%lua_version %(lua -e 'print(_VERSION)' | cut -d ' ' -f 2) + +# compiled modules should go here +%lua_archdir %{_libdir}/lua/%{lua_version} + +# pure Lua modules should go here +%lua_noarchdir %{_datadir}/lua/%{lua_version}