284 lines
9.9 KiB
RPMSpec
284 lines
9.9 KiB
RPMSpec
|
#
|
||
|
# spec file
|
||
|
#
|
||
|
# Copyright (c) 2023 SUSE LLC
|
||
|
#
|
||
|
# 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 https://bugs.opensuse.org/
|
||
|
#
|
||
|
|
||
|
|
||
|
%global flavor @BUILD_FLAVOR@%{nil}
|
||
|
%if "%{flavor}" == "test"
|
||
|
%define name_ext -test
|
||
|
%define debug_package %{nil}
|
||
|
%else
|
||
|
%define name_ext %{nil}
|
||
|
%endif
|
||
|
%define major_version 5.4
|
||
|
%define libname liblua5_4-5
|
||
|
Name: lua54%{name_ext}
|
||
|
Version: 5.4.6
|
||
|
Release: 0
|
||
|
Summary: Small Embeddable Language with Procedural Syntax
|
||
|
License: GPL-3.0-or-later
|
||
|
Group: Development/Languages/Other
|
||
|
URL: https://www.lua.org
|
||
|
Source: https://www.lua.org/ftp/lua-%{version}.tar.gz
|
||
|
Source1: https://www.lua.org/tests/lua-%{version}-tests.tar.gz
|
||
|
Source99: baselibs.conf
|
||
|
# PATCH-FIX-SUSE tweak the buildsystem to produce what is needed for SUSE
|
||
|
Patch0: lua-build-system.patch
|
||
|
# PATCH-FIX-UPSTREAM attrib_test.patch https://is.gd/6DYPgG mcepl@suse.com
|
||
|
# Fix failing test
|
||
|
Patch1: attrib_test.patch
|
||
|
Patch2: files_test.patch
|
||
|
Patch3: main_test.patch
|
||
|
Patch6: shared_link.patch
|
||
|
# PATCH-FIX-UPSTREAM skip-tests_big-endian.patch bsc#1216930 mcepl@suse.com
|
||
|
# patch out little-endian-only test
|
||
|
Patch7: skip-tests_big-endian.patch
|
||
|
Requires(post): update-alternatives
|
||
|
Requires(postun):update-alternatives
|
||
|
Provides: lua = %{version}
|
||
|
Obsoletes: lua < %{version}
|
||
|
Provides: Lua(API) = %{major_version}
|
||
|
%if "%{flavor}" == "test"
|
||
|
BuildRequires: lua54
|
||
|
%else
|
||
|
BuildRequires: libtool
|
||
|
BuildRequires: lua-macros
|
||
|
BuildRequires: pkgconfig
|
||
|
BuildRequires: readline-devel
|
||
|
%endif
|
||
|
|
||
|
%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
|
||
|
License: MIT
|
||
|
Group: Development/Libraries/C and C++
|
||
|
Requires: %{libname} = %{version}
|
||
|
Requires: %{name} = %{version}
|
||
|
Requires: lua-macros
|
||
|
Requires(post): update-alternatives
|
||
|
Requires(postun):update-alternatives
|
||
|
Provides: lua-devel = %{version}
|
||
|
Provides: Lua(devel) = %{major_version}
|
||
|
Provides: pkgconfig(lua) = %{version}
|
||
|
|
||
|
%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 %{libname}
|
||
|
Summary: The Lua integration library
|
||
|
License: MIT
|
||
|
Group: System/Libraries
|
||
|
Provides: liblua5_4 = %{version}-%{release}
|
||
|
Obsoletes: liblua5_4 < %{version}-%{release}
|
||
|
Provides: %{name}-libs = %{version}
|
||
|
Obsoletes: %{name}-libs < %{version}
|
||
|
# Compat as libtool changes the soname
|
||
|
%ifarch aarch64 x86_64 ppc64 ppc64le s390x riscv64
|
||
|
Provides: liblua.so.5.4()(64bit)
|
||
|
%else
|
||
|
Provides: liblua.so.5.4
|
||
|
%endif
|
||
|
|
||
|
%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.
|
||
|
|
||
|
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
|
||
|
License: MIT
|
||
|
Group: Documentation/HTML
|
||
|
BuildArch: noarch
|
||
|
%if 0%{?suse_version} > 1315
|
||
|
Supplements: (lua54 and patterns-base-documentation)
|
||
|
%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 -n lua-%{version} -a1
|
||
|
mv lua-%{version}-tests testes
|
||
|
%autopatch -p1
|
||
|
|
||
|
# manpage
|
||
|
%if "%{flavor}" != "test"
|
||
|
cat doc/lua.1 | sed 's/TH LUA 1/TH LUA%{major_version} 1/' > doc/lua%{major_version}.1
|
||
|
cat doc/luac.1 | sed 's/TH LUAC 1/TH LUAC%{major_version} 1/' > doc/luac%{major_version}.1
|
||
|
|
||
|
%build
|
||
|
sed -i -e "s@lib/lua/@%{_lib}/lua/@g" src/luaconf.h
|
||
|
%make_build linux-readline -C src \
|
||
|
CC="cc" LIBDIR="%{_libdir}" \
|
||
|
MYCFLAGS="%{optflags} -std=gnu99 -D_GNU_SOURCE -fPIC -DLUA_COMPAT_MODULE" \
|
||
|
V=%{major_version} \
|
||
|
LIBTOOL="libtool --quiet"
|
||
|
|
||
|
%install
|
||
|
%make_install \
|
||
|
LIBTOOL="libtool --quiet" \
|
||
|
INSTALL_TOP="%{buildroot}%{_prefix}" \
|
||
|
INSTALL_LIB="%{buildroot}%{_libdir}" \
|
||
|
INSTALL_MAN="%{buildroot}%{_mandir}/man1"
|
||
|
|
||
|
find %{buildroot} -type f -name "*.la" -delete -print
|
||
|
|
||
|
# create pkg-config file
|
||
|
cat > lua%{major_version}.pc <<-EOF
|
||
|
prefix=%{_prefix}
|
||
|
exec_prefix=%{_prefix}
|
||
|
libdir=%{_libdir}
|
||
|
includedir=%{_includedir}/lua%{major_version}
|
||
|
INSTALL_LMOD=%{_datadir}/lua/%{major_version}
|
||
|
INSTALL_CMOD=%{_libdir}/lua/%{major_version}
|
||
|
|
||
|
Name: Lua %{major_version}
|
||
|
Description: An Extensible Extension Language
|
||
|
Version: %{version}
|
||
|
Libs: -llua%{major_version} -lm
|
||
|
Cflags: -I\${includedir}
|
||
|
EOF
|
||
|
|
||
|
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
|
||
|
%else
|
||
|
|
||
|
%check
|
||
|
cd testes
|
||
|
LD_LIBRARY_PATH=%{_libdir} %{_bindir}/lua%{major_version} all.lua
|
||
|
%endif
|
||
|
|
||
|
%if "%{flavor}" != "test"
|
||
|
%post -n %{libname} -p /sbin/ldconfig
|
||
|
%postun -n %{libname} -p /sbin/ldconfig
|
||
|
|
||
|
%post
|
||
|
%{_sbindir}/update-alternatives --install \
|
||
|
%{_bindir}/lua lua %{_bindir}/lua%{major_version} 54 \
|
||
|
--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 54 \
|
||
|
--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
|
||
|
%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%{?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%{ext_man}
|
||
|
%ghost %{_sysconfdir}/alternatives/luac.1%{ext_man}
|
||
|
|
||
|
%files -n %{libname}
|
||
|
%{_libdir}/liblua%{major_version}.so.*
|
||
|
%{_libdir}/liblua.so.*
|
||
|
|
||
|
%files devel
|
||
|
%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}.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
|
||
|
%doc doc/*
|
||
|
|
||
|
%endif
|
||
|
|
||
|
%changelog
|