File lua51.spec of Package lua51.5395

#
# spec file for package lua51
#
# 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/
#


Name:           lua51
Version:        5.1.5
Release:        0
%define major_version 5.1
BuildRequires:  pkg-config
BuildRequires:  readline-devel
BuildRequires:  update-alternatives
PreReq:         update-alternatives
Summary:        Small Embeddable Language with Simple Procedural Syntax
License:        MIT
Group:          System/Libraries
Url:            http://www.lua.org
Source:         http://www.lua.org/ftp/lua-%{version}.tar.gz
Source1:        macros.lua
Source2:        baselibs.conf
Patch0:         %{name}-%{version}-shared.diff
Patch1:         %{name}-%{version}-module-path.diff
Patch3:         %{name}-%{version}-libdir.diff
Patch4:         %{name}-%{version}-pkgconfig.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Provides:       Lua(API) = %{major_version}

%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.

%package devel
Summary:        Development files for lua
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}
Conflicts:      lua50-devel
Conflicts:      lua-devel
Requires:       liblua5_1 = %{version}
Provides:       Lua(devel) = %{major_version}
Conflicts:      otherproviders(Lua(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.

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

%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.

%package doc
Summary:        Small Embeddable Language with Simple Procedural Syntax
Group:          System/Libraries
%if 0%{?suse_version} >= 1120
BuildArch:      noarch
%endif

%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.

%prep
%setup -q -n lua-%{version}
%patch0 -b .shared
%patch1 -p1
%patch3 -p1
%patch4 -p1

%build
sed -i 's:LUA_ROOT2 "LIBDIR/lua/%{major_version}/":LUA_ROOT2 \"%{_lib}/lua/%{major_version}/":' src/luaconf.h
make %{?_smp_mflags} -C src CC="%{__cc}" 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_CMOD=$RPM_BUILD_ROOT%{_libdir}/lua/%{major_version} 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
install -d -m 0755 $RPM_BUILD_ROOT%{_libdir}/lua/%{major_version}
install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/lua/%{major_version}
install -D %{SOURCE1} %buildroot/etc/rpm/macros.lua51

%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}
%dir %{_libdir}/lua
%dir %{_libdir}/lua/%{major_version}
%dir %{_datadir}/lua
%dir %{_datadir}/lua/%{major_version}
/etc/rpm/macros.lua51

%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