File lua.spec of Package lua

#
# spec file for package lua (Version 5.1.4)
#
# Copyright (c) 2008 SUSE LINUX Products 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/
#

# norootforbuild


Name:           lua
Version:        5.1.4
Release:        1
%define major_version 5.1
License:        X11/MIT
Group:          System/Libraries
AutoReqProv:    on
BuildRequires:  readline-devel update-alternatives
PreReq:         update-alternatives
Summary:        Small Embeddable Language with Simple Procedural Syntax
Url:            http://www.lua.org
Source:         %{name}-%{version}.tar.bz2
Patch0:         %{name}-%{version}-shared.diff
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
Lua is a programming language originally designed for extending
applications, but also frequently used as a general-purpose,
stand-alone language.

Lua combines simple procedural syntax (similar to Pascal) with powerful
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 ideal for configuration,
scripting, and rapid prototyping. Lua is implemented as a small library
of C functions, written in ANSI C, and the implementation goals are
simplicity, efficiency, portability, and low embedding cost.



Authors:
--------
    Lua Team:
    Roberto Ierusalimschy
    Waldemar Celes
    Luiz Henrique de Figueiredo

%package devel
License:        X11/MIT
Summary:        Development files for lua
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}
Conflicts:      lua50-devel
Conflicts:      lua51-devel

%description devel
Lua is a programming language originally designed for extending
applications, but also frequently used as a general-purpose,
stand-alone language.

This package contains files needed for embedding lua into your
application.



Authors:
--------
    Lua Team:
    Roberto Ierusalimschy
    Waldemar Celes
    Luiz Henrique de Figueiredo

%package -n liblua5_1
License:        X11/MIT
Summary:        Small Embeddable Language with Simple Procedural Syntax
Group:          System/Libraries
Provides:       %{name}-libs = 5.1.3
Obsoletes:      %{name}-libs <= 5.1.3

%description -n liblua5_1
Lua is a programming language originally designed for extending
applications, but also frequently used as a general-purpose,
stand-alone language.

Lua combines simple procedural syntax (similar to Pascal) with powerful
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 ideal for configuration,
scripting, and rapid prototyping. Lua is implemented as a small library
of C functions, written in ANSI C, and the implementation goals are
simplicity, efficiency, portability, and low embedding cost.



Authors:
--------
    Lua Team:
    Roberto Ierusalimschy
    Waldemar Celes
    Luiz Henrique de Figueiredo

%package doc
License:        X11/MIT
Summary:        Small Embeddable Language with Simple Procedural Syntax
Group:          System/Libraries

%description doc
Lua is a programming language originally designed for extending
applications, but also frequently used as a general-purpose,
stand-alone language.

Lua combines simple procedural syntax (similar to Pascal) with powerful
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 ideal for configuration,
scripting, and rapid prototyping. Lua is implemented as a small library
of C functions, written in ANSI C, and the implementation goals are
simplicity, efficiency, portability, and low embedding cost.



Authors:
--------
    Lua Team:
    Roberto Ierusalimschy
    Waldemar Celes
    Luiz Henrique de Figueiredo

%prep
%setup -q
%patch0 -b .shared

%build
make -C src MYCFLAGS="$RPM_OPT_FLAGS -fPIC -DLUA_USE_LINUX" MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses" V=%{major_version} all

%install
make install INSTALL_TOP="$RPM_BUILD_ROOT%{_prefix}" INSTALL_LIB="$RPM_BUILD_ROOT%{_libdir}" INSTALL_MAN="$RPM_BUILD_ROOT%{_mandir}/man1"
install -D -m644 etc/lua.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig/lua.pc
for file in lua luac ; do
    mv "%{buildroot}%{_bindir}/${file}"        "%{buildroot}%{_bindir}/${file}%{major_version}"
    mv "%{buildroot}%{_mandir}/man1/${file}.1" "%{buildroot}%{_mandir}/man1/${file}%{major_version}.1"
done

%clean
rm -rf $RPM_BUILD_ROOT

%post
/usr/sbin/update-alternatives --install                                                   \
            %{_bindir}/lua            lua       %{_bindir}/lua%{major_version}         10 \
    --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
    /usr/sbin/update-alternatives --remove lua %{_bindir}/lua%{major_version}
fi

%post -n liblua5_1 -p /sbin/ldconfig

%postun -n liblua5_1 -p /sbin/ldconfig

%files
%defattr(-,root,root)
%doc COPYRIGHT HISTORY README
%{_mandir}/man1/lua%{major_version}.1*
%{_mandir}/man1/luac%{major_version}.1*
%{_prefix}/bin/lua%{major_version}
%{_prefix}/bin/luac%{major_version}

%files -n liblua5_1
%defattr(-,root,root)
%{_libdir}/liblua.so.%{major_version}

%files devel
%defattr(-,root,root)
%{_includedir}/lauxlib.h
%{_includedir}/lua.h
%{_includedir}/lua.hpp
%{_includedir}/luaconf.h
%{_includedir}/lualib.h
%{_libdir}/pkgconfig/lua.pc
%{_libdir}/liblua.a
%{_libdir}/liblua.so

%files doc
%defattr(-,root,root)
%doc doc/*

%changelog
* Thu Sep 11 2008 pgajdos@suse.cz
- updated to 5.1.4: bugfix release
* Fri Mar 28 2008 coolo@suse.de
- hint the solver about the package rename
* Wed Mar 26 2008 coolo@suse.de
- do not package/provide the shared lib twice / follow shared lib
  policy
* Tue Feb 19 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 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 2006 mrueckert@suse.de
- package liblua.so as symlink.
* Thu Nov 16 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 2006 mrueckert@suse.de
- ARGH dont copy and paste!:
  lua-libs should not depend on lua. another run on (#217875)
* Tue Nov 14 2006 mrueckert@suse.de
- really fix the file pattern (#217875)
* Thu Nov 09 2006 mrueckert@suse.de
- splitted out lua-libs so we can install at least both libs
  in parallel. (#217875)
* Fri Oct 20 2006 dmueller@suse.de
- fix wrong prefix in lua.pc
- link liblua with -lm to satisfy unresolved symbols
* Thu Oct 19 2006 mjancar@suse.cz
- include lua.pc
* Wed Oct 18 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 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Sat Jan 14 2006 schwab@suse.de
- Don't strip binaries.
- Fix shared library linking.
* Thu Sep 08 2005 anicka@suse.cz
- enable dynamic loading capability (#106845)
* Fri Apr 23 2004 mcihar@suse.cz
- initial packaging
openSUSE Build Service is sponsored by