SHA256
1
0
forked from pool/lua53
Tomáš Chvátal
2017-07-10 11:03:59 +00:00
committed by Git OBS Bridge
parent 0b47406e81
commit 884fd3fe71
2 changed files with 120 additions and 72 deletions

View File

@@ -1,5 +1,5 @@
#
# spec file for package lua
# spec file for package lua53
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
@@ -17,8 +17,8 @@
%define major_version 5.3
%define libname liblua5_3
Name: lua
%define libname liblua5_3-5
Name: lua53
Version: 5.3.4
Release: 0
Summary: Small Embeddable Language with Procedural Syntax
@@ -30,8 +30,10 @@ Source1: macros.lua
Source2: baselibs.conf
# PATCH-FIX-SUSE tweak the buildsystem to produce what is needed for SUSE
Patch0: lua-build-system.patch
BuildRequires: pkg-config
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: readline-devel
Provides: lua = %{version}
Provides: Lua(API) = %{major_version}
%description
@@ -49,10 +51,10 @@ of C functions, written in ANSI C.
%package devel
Summary: Development files for lua
Group: Development/Libraries/C and C++
Requires: %{libname} = %{version}
Requires: %{name} = %{version}
Requires: %libname = %{version}
Provides: lua-devel = %{version}
Provides: Lua(devel) = %{major_version}
Conflicts: otherproviders(Lua(devel))
%description devel
Lua is a programming language originally designed for extending
@@ -62,13 +64,13 @@ stand-alone language.
This package contains files needed for embedding lua into your
application.
%package -n %libname
%package -n %{libname}
Summary: The Lua integration library
Group: System/Libraries
Provides: %{name}-libs = %{version}
Obsoletes: %{name}-libs < %{version}
%description -n %libname
%description -n %{libname}
Lua is a programming language originally designed for extending
applications, but is also frequently used as a general-purpose,
stand-alone language.
@@ -98,51 +100,97 @@ scripting, and rapid prototyping. Lua is implemented as a small library
of C functions, written in ANSI C.
%prep
%setup -q
%setup -q -n lua-%{version}
%autopatch -p1
# manpage
cat doc/lua.1 | sed 's/TH LUA 1/TH LUA5.3 1/' > doc/lua5.3.1
cat doc/luac.1 | sed 's/TH LUAC 1/TH LUAC5.3 1/' > doc/luac5.3.1
%build
sed -i -e "s@lib/lua/@%{_lib}/lua/@g" src/luaconf.h
export LIBTOOL="libtool --quiet"
make %{?_smp_mflags} -C src \
CC="cc" \
MYCFLAGS="%{optflags} -std=gnu99 -D_GNU_SOURCE -fPIC -DLUA_USE_LINUX -DLUA_COMPAT_MODULE" \
MYLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses" \
V=%{major_version}
V=%{major_version} \
all
%install
make install \
V=%{major_version} \
INSTALL_TOP="%{buildroot}%{_prefix}" \
INSTALL_LIB="%{buildroot}%{_libdir}" \
INSTALL_CMOD=%{buildroot}%{_libdir}/lua/%{major_version} \
INSTALL_MAN="%{buildroot}%{_mandir}/man1"
INSTALL_LIB="%{buildroot}%{_libdir}"
install -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/rpm/macros.lua
find %{buildroot} -type f -name "*.la" -delete -print
# create pkg-config file
cat > lua.pc <<-EOF
cat > lua%{major_version}.pc <<-EOF
prefix=%{_prefix}
exec_prefix=%{_prefix}
libdir=%{_libdir}
includedir=%{_prefix}}/include
includedir=%{_prefix}}/include%{major_version}
Name: Lua
Name: Lua %{major_version}
Description: An Extensible Extension Language
Version: %{version}
Libs: -llua -lm
Libs: -llua%{major_version} -lm
Cflags:
EOF
install -D -m 644 lua.pc %{buildroot}/%{_libdir}/pkgconfig/lua.pc
install -D -m 644 lua%{major_version}.pc %{buildroot}/%{_libdir}/pkgconfig/lua%{major_version}.pc
# update-alternatives
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for file in lua luac ; do
touch "%{buildroot}%{_sysconfdir}/alternatives/${file}"
ln -sf "%{_sysconfdir}/alternatives/${file}" "%{buildroot}%{_bindir}/${file}"
touch "%{buildroot}%{_sysconfdir}/alternatives/${file}.1%{ext_man}"
ln -sf "%{_sysconfdir}/alternatives/${file}.1%{ext_man}" "%{buildroot}%{_mandir}/man1/${file}.1%{ext_man}"
done
# Compat link with older unprefixed library and with soname 0 from deb/etc
ln -s %{_libdir}/liblua%{major_version}.so.%{major_version}.0 %{buildroot}%{_libdir}/liblua%{major_version}.so.%{major_version}
ln -s %{_libdir}/liblua%{major_version}.so.%{major_version}.0 %{buildroot}%{_libdir}/liblua%{major_version}.so.0
ln -s %{_libdir}/liblua%{major_version}.so.%{major_version}.0 %{buildroot}%{_libdir}/liblua.so.%{major_version}
# Library devel alternatives
touch %{buildroot}%{_sysconfdir}/alternatives/liblua.so
ln -sf %{_sysconfdir}/alternatives/liblua.so %{buildroot}%{_libdir}/liblua.so
touch %{buildroot}%{_sysconfdir}/alternatives/lua.pc
ln -sf %{_sysconfdir}/alternatives/lua.pc %{buildroot}%{_libdir}/pkgconfig/lua.pc
%check
cd src
LD_LIBRARY_PATH=`pwd` ./lua -e 'print(0)' > /dev/null
LD_LIBRARY_PATH=`pwd` ./lua%{major_version} -e 'print(0)' > /dev/null
%post -n %libname -p /sbin/ldconfig
%post -n %{libname} -p /sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig
%postun -n %libname -p /sbin/ldconfig
%post
%{_sbindir}/update-alternatives --install \
%{_bindir}/lua lua %{_bindir}/lua%{major_version} 53 \
--slave %{_bindir}/luac luac %{_bindir}/luac%{major_version} \
--slave %{_mandir}/man1/lua.1%{ext_man} lua.1%{ext_man} %{_mandir}/man1/lua%{major_version}.1%{ext_man} \
--slave %{_mandir}/man1/luac.1%{ext_man} luac.1%{ext_man} %{_mandir}/man1/luac%{major_version}.1%{ext_man}
%postun
if [ "$1" = 0 ] ; then
%{_sbindir}/update-alternatives --remove lua %{_bindir}/lua%{major_version}
fi
%post devel
%{_sbindir}/update-alternatives --install \
%{_libdir}/liblua.so liblua.so %{_libdir}/liblua%{major_version}.so 53 \
--slave %{_libdir}/pkgconfig/lua.pc lua.pc %{_libdir}/pkgconfig/lua%{major_version}.pc
%postun devel
if [ "$1" = 0 ] ; then
%{_sbindir}/update-alternatives --remove liblua.so %{_libdir}/liblua%{major_version}.so
fi
%files
%defattr(-,root,root)
%doc README
%dir %{_libdir}/lua
%dir %{_libdir}/lua/%{major_version}
@@ -150,31 +198,40 @@ LD_LIBRARY_PATH=`pwd` ./lua -e 'print(0)' > /dev/null
%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
%{_mandir}/man1/lua%{major_version}.1%{ext_man}
%{_mandir}/man1/luac%{major_version}.1%{ext_man}
# alternatives
%{_bindir}/lua
%{_bindir}/luac
%{_mandir}/man1/lua.1%{ext_man}
%{_mandir}/man1/luac.1%{ext_man}
%ghost %{_sysconfdir}/alternatives/lua
%ghost %{_sysconfdir}/alternatives/luac
%ghost %{_sysconfdir}/alternatives/lua.1.gz
%ghost %{_sysconfdir}/alternatives/luac.1.gz
%ghost %{_sysconfdir}/alternatives/lua.1%{ext_man}
%ghost %{_sysconfdir}/alternatives/luac.1%{ext_man}
%files -n %libname
%defattr(-,root,root)
%{_libdir}/liblua.so.%{major_version}
%files -n %{libname}
%{_libdir}/liblua%{major_version}.so.*
%{_libdir}/liblua.so.*
%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
%dir %{_includedir}/lua%{major_version}
%{_includedir}/lua%{major_version}/lauxlib.h
%{_includedir}/lua%{major_version}/lua.h
%{_includedir}/lua%{major_version}/lua.hpp
%{_includedir}/lua%{major_version}/luaconf.h
%{_includedir}/lua%{major_version}/lualib.h
%{_libdir}/liblua%{major_version}.a
%{_libdir}/liblua%{major_version}.so
%{_libdir}/pkgconfig/lua%{major_version}.pc
# alternatives
%{_libdir}/liblua.so
%{_libdir}/pkgconfig/lua.pc
%ghost %{_sysconfdir}/alternatives/liblua.so
%ghost %{_sysconfdir}/alternatives/lua.pc
%files doc
%defattr(-,root,root)
%doc doc/*
%changelog