diff --git a/README.md b/README.md index 7d51336..63a559c 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,11 @@ # lua +Lua is a powerful light-weight programming language designed for extending applications. +Lua is also frequently used as a general-purpose, stand-alone language. +Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. +Lua is dynamically typed, interpreted from bytecodes, and has automatic memory management with garbage collection, making it ideal for configuration, scripting, and rapid prototyping. +A fundamental concept in the design of Lua is to provide meta-mechanisms for implementing features, instead of providing a host of features directly in the language. +For example, although Lua is not a pure object-oriented language, it does provide meta-mechanisms for implementing classes and inheritance. +Lua's meta-mechanisms bring an economy of concepts and keep the language small, while allowing the semantics to be extended in unconventional ways. +Extensible semantics is a distinguishing feature of Lua. + diff --git a/lua-5.1.2-luapc.patch b/lua-5.1.2-luapc.patch new file mode 100644 index 0000000..0d258d3 --- /dev/null +++ b/lua-5.1.2-luapc.patch @@ -0,0 +1,11 @@ +--- lua-5.1.2/etc/lua.pc 2007-03-23 20:58:49.000000000 +0100 ++++ lua-5.1.2/etc/lua.pc.prefix 2007-10-25 11:47:35.000000000 +0200 +@@ -8,7 +8,7 @@ + R= 5.1.2 + + # grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/' +-prefix= /usr/local ++prefix= /usr + INSTALL_BIN= ${prefix}/bin + INSTALL_INC= ${prefix}/include + INSTALL_LIB= ${prefix}/lib diff --git a/lua-5.1.4-cross_compile.patch b/lua-5.1.4-cross_compile.patch new file mode 100644 index 0000000..cac5d58 --- /dev/null +++ b/lua-5.1.4-cross_compile.patch @@ -0,0 +1,12 @@ +diff -Nru lua-5.1.4.orig//src/Makefile lua-5.1.4/src/Makefile +--- lua-5.1.4.orig//src/Makefile 2010-06-16 20:13:28.242643022 +0200 ++++ lua-5.1.4/src/Makefile 2010-06-16 20:14:12.930892707 +0200 +@@ -53,7 +53,7 @@ + $(RANLIB) $@ + + $(LUA_SO): $(CORE_O) $(LIB_O) +- gcc -Wl,-soname=liblua.so.$(V) -shared -o $@ $(MYLDFLAGS) $? $(LIBS) $(LUA_O) ++ $(CC) -Wl,-soname=liblua.so.$(V) -shared -o $@ $(MYLDFLAGS) $? $(LIBS) $(LUA_O) + rm -f liblua.so + ln -s $@ liblua.so + diff --git a/lua-5.2.0-dynlib.patch b/lua-5.2.0-dynlib.patch new file mode 100644 index 0000000..1e7f47a --- /dev/null +++ b/lua-5.2.0-dynlib.patch @@ -0,0 +1,53 @@ +diff -ru lua-5.1.2/Makefile lua-5.1.2-om/Makefile +--- lua-5.1.2/Makefile 2007-10-24 10:12:17.000000000 +0200 + +++ lua-5.1.2-om/Makefile 2007-10-24 10:16:22.000000000 +0200 +@@ -53,7 +53,7 @@ + all: $(PLAT) + + $(PLATS) clean: +- cd src && $(MAKE) $@ ++ cd src && $(MAKE) V=$(V) $@ + + test: dummy + src/lua test/hello.lua +diff -ru lua-5.1.2/src/Makefile lua-5.1.2-om/src/Makefile +--- lua-5.1.2/src/Makefile 2007-03-25 16:49:23.000000000 +0200 ++++ lua-5.1.2-om/src/Makefile 2007-10-24 10:15:52.000000000 +0200 +@@ -8,7 +8,7 @@ + PLAT= none + + CC= gcc +-CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL $(SYSCFLAGS) $(MYCFLAGS) ++CFLAGS= -O2 -Wall -fPIC -DLUA_COMPAT_ALL $(SYSCFLAGS) $(MYCFLAGS) $(RPM_OPT_FLAGS) + LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS) + LIBS= -lm $(SYSLIBS) $(MYLIBS) + +@@ -22,6 +22,7 @@ + + PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris + ++LUA_SO= liblua.so.$(V) + LUA_A= liblua.a + CORE_O= lapi.o lcode.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 \ +@@ -36,7 +37,7 @@ + LUAC_O= luac.o + + ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) +-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) + ALL_A= $(LUA_A) + + # Targets start here. +@@ -51,6 +52,11 @@ + $(AR) $@ $? + $(RANLIB) $@ + ++$(LUA_SO): $(CORE_O) $(LIB_O) ++ gcc -Wl,-soname=liblua.so.$(V) -shared -o $@ $(MYLDFLAGS) $? $(LIBS) $(LUA_O) ++ rm -f liblua.so ++ ln -s $@ liblua.so ++ + $(LUA_T): $(LUA_O) $(LUA_A) + $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) + diff --git a/lua.spec b/lua.spec new file mode 100644 index 0000000..68fe447 --- /dev/null +++ b/lua.spec @@ -0,0 +1,189 @@ +%define libname liblua +%define libmajver %(echo %version | cut -d. -f 1-2) + +Name: lua +Version: 5.2.3 +Release: 1mamba +Summary: A powerful light-weight and embeddable programming language +Group: Applications/Development +Vendor: openmamba +Distribution: openmamba +Packager: Aleph0 +URL: http://www.lua.org +Source: http://www.lua.org/ftp/lua-%{version}.tar.gz +Patch0: %{name}-5.2.0-dynlib.patch +Patch1: %{name}-5.1.2-luapc.patch +Patch2: %{name}-5.1.4-cross_compile.patch +License: MIT +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libncurses-devel +BuildRequires: libreadline-devel +## AUTOBUILDREQ-END +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +%description +Lua is a powerful light-weight programming language designed for extending applications. +Lua is also frequently used as a general-purpose, stand-alone language. +Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. +Lua is dynamically typed, interpreted from bytecodes, and has automatic memory management with garbage collection, making it ideal for configuration, scripting, and rapid prototyping. +A fundamental concept in the design of Lua is to provide meta-mechanisms for implementing features, instead of providing a host of features directly in the language. +For example, although Lua is not a pure object-oriented language, it does provide meta-mechanisms for implementing classes and inheritance. +Lua's meta-mechanisms bring an economy of concepts and keep the language small, while allowing the semantics to be extended in unconventional ways. +Extensible semantics is a distinguishing feature of Lua. + +%package devel +Group: Development/Libraries +Summary: Development files for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description devel +Lua is a powerful light-weight programming language designed for extending applications. +Lua is also frequently used as a general-purpose, stand-alone language. + +This package contains files needed for embedding lua into your application. + +%package -n %{libname} +Summary: Lua is a powerful, light-weight programming language +Group: System/Libraries +Provides: liblua.so +#Provides: liblualib.so + +%description -n %{libname} +Lua is a powerful light-weight programming language designed for extending applications. +This package contains the dynamic libraries provided by lua scripting language. + +%package -n %{libname}-devel +Summary: Static libraries and headers for lua +Group: Development/Libraries +Requires: %{libname} = %{?epoch:%epoch:}%{version}-%{release} +Obsoletes: lua-devel +Provides: lua-devel = %{?epoch:%epoch:}%{version}-%{release} + +%description -n %{libname}-devel +Lua is a powerful light-weight programming language designed for extending applications. +This package contains static libraries and header files need for development. + +%debug_package + +%prep +%setup -q +%patch0 -p1 -b .dynlib +#%patch1 -p1 -b .luapc +%patch2 -p1 + +%build +##% make linux +%make -j1 -C src \ + CC=%{_host}-gcc \ + MYCFLAGS="$RPM_OPT_FLAGS -fPIC -DLUA_USE_LINUX" \ + MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses" V=%{libmajver} all + +%install +[ "%{buildroot}" != / ] && rm -rf %{buildroot} +%makeinstall \ + INSTALL_TOP=%{buildroot}%{_prefix} \ + INSTALL_INC=%{buildroot}%{_includedir}/lua%{libmajver} \ + INSTALL_LIB=%{buildroot}%{_libdir} \ + INSTALL_MAN=%{buildroot}%{_mandir}/man1 + +install -d %{buildroot}%{_datadir}/lua +#install -m 644 test/*.lua %{buildroot}%{_datadir}/lua + +install -d %{buildroot}%{_libdir} +install -m 755 src/liblua.so.%{libmajver} %{buildroot}%{_libdir} +ln -s liblua.so.%{libmajver} %{buildroot}%{_libdir}/liblua.so + +#install -D -m644 etc/lua.pc %{buildroot}%{_libdir}/pkgconfig/lua.pc +install -d %{buildroot}%{_libdir}/pkgconfig/ +echo "\ +prefix=%{_prefix} +exec_prefix=%{_exec_prefix} +libdir=%{_libdir} +includedir=%{_includedir}/lua%{libmajver} + +Name: Lua +Description: An Extensible Extension Language +Version: 5.2.3 +Requires: +Libs: -L%{_libdir} -llua -lm -lreadline +Cflags: -I%{_includedir}/lua%{libmajver}" > \ + %{buildroot}%{_libdir}/pkgconfig/lua.pc + +%clean +[ "%{buildroot}" != / ] && rm -rf %{buildroot} + +%post -n %{libname} -p /sbin/ldconfig +%postun -n %{libname} -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%{_bindir}/lua +%{_bindir}/luac +%dir %{_datadir}/lua +#%{_datadir}/lua/*.lua +%{_mandir}/man1/lua.* +%{_mandir}/man1/luac.* + +%files -n %{libname} +%defattr(-,root,root) +%{_libdir}/liblua.so.* + +%files -n %{libname}-devel +%defattr(-,root,root) +%dir %{_includedir}/lua%{libmajver} +%{_includedir}/lua%{libmajver}/*.h +%{_includedir}/lua%{libmajver}/*.hpp +%{_libdir}/liblua.a +%{_libdir}/liblua.so +%{_libdir}/pkgconfig/lua.pc +%doc README doc/*.html doc/*.css doc/*.gif doc/*.png + +%changelog +* Sat Dec 07 2013 Automatic Build System 5.2.3-1mamba +- automatic version update by autodist + +* Thu Jul 18 2013 Silvan Calarco 5.2.2-3mamba +- lua.pc: fix cflags + +* Tue Jun 04 2013 Silvan Calarco 5.2.2-2mamba +- install headers unser %{_includedir}/lua5.2 to avoid conflicts with packages wanting lua51 + +* Thu Mar 28 2013 Automatic Build System 5.2.2-1mamba +- automatic version update by autodist + +* Tue Aug 14 2012 Automatic Build System 5.2.1-1mamba +- automatic version update by autodist + +* Fri Dec 31 2010 Silvan Calarco 5.1.4-2mamba +- rebuilt with debug package + +* Thu Dec 04 2008 gil 5.1.4-1mamba +- update to 5.1.4 + +* Mon Jul 07 2008 Silvan Calarco 5.1.3-1mamba +- update to 5.1.3 +- fix liblua.so: make it a symlink to liblua.so.* + +* Fri Oct 26 2007 Aleph0 5.1.2-3mamba +- do not provide liblualib.so + +* Thu Oct 25 2007 Aleph0 5.1.2-2mamba +- add lua.pc + +* Wed Oct 24 2007 Aleph0 5.1.2-1mamba +- update to 5.1.2 +- patched to build dynamic libraries +- package coding examples contained in the source code +- use standard CFLAGS options when building + +* Thu Dec 14 2006 Aleph0 5.0.3-2qilnx +- created devel package +- build shared libraries +- added more documentation files + +* Wed Oct 18 2006 Davide Madrisan 5.0.3-1qilnx +- update to version 5.0.3 by autospec + +* Tue Apr 04 2006 Davide Madrisan 5.0.2-1qilnx +- package created by autospec