SHA256
1
0
forked from pool/luajit
Files
luajit/luajit.spec
Matej Cepl 6d7baaa627 - Update to version 5.1.2.1.0+git.1724512491.f725e44:
* Fix limit check in narrow_conv_backprop().
  * Always use IRT_NIL for IR_TBAR.
  * ARM64: Use ldr literal to load FP constants.
  * FFI: Add missing coercion when recording 64-bit bit.*().
  * ARM64: Make tobit conversions match JIT backend behavior.
  * ARM: Make hard-float tobit conversions match JIT backend behavior.
  * FFI: Drop finalizer table rehash after GC cycle.
  * Fix another potential file descriptor leak in luaL_loadfile*().
  * MIPS32: Fix little-endian IR_RETF.
  * Correctly close VM state after early OOM during open.
  * Fix potential file descriptor leak in luaL_loadfile*().
  * Reflect override of INSTALL_LJLIBD in package.path.
  * ARM64: Use movi to materialize FP constants.
  * Add more FOLD rules for integer conversions.
  * Different fix for partial snapshot restore due to stack overflow.
  * Fix IR_ABC hoisting.
  * Limit CSE for IR_CARG to fix loop optimizations.
  * Call math.randomseed() without arguments to seed from system entropy.
  * Restore state when recording __concat metamethod throws an error.
  * Add build flag LUAJIT_DISABLE_TAILCALL to disable tailcall generation.
  * Clarify that lj_buf_shrink() does not keep any buffer data.
  * OSX: Fix installed luajit.pc.
  * FFI: Fix various issues in recff_cdata_arith.
  * Fix predict_next() in parser (for real now).
  * FFI: Fix __tostring metamethod access to enum cdata value.
  * Fix typo.
  * Handle partial snapshot restore due to stack overflow.
  * Update Nintendo Switch build script.
  * Prevent sanitizer warning in snap_restoredata().

OBS-URL: https://build.opensuse.org/package/show/devel:languages:lua/luajit?expand=0&rev=58
2024-08-26 19:34:29 +00:00

133 lines
4.6 KiB
RPMSpec

#
# spec file for package luajit
#
# Copyright (c) 2024 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/
#
# These numbers are from readelf -a /usr/lib*/lib*.so* |grep soname (dots replaced by underscores)
%define lib_version 5_1
%define so_version 2
Name: luajit
Version: 5.1.2.1.0+git.1724512491.f725e44
Release: 0
Summary: JIT compiler for Lua language
License: MIT
URL: https://luajit.org/
Source0: %{name}-%{version}.tar.xz
Source1: baselibs.conf
# PATCH-FIX-OPENSUSE luajit-lua-versioned.patch mcepl@suse.com
# Because we obsolete moonjit with version number higher than %%{version} we have to emulate Epoch
Patch0: luajit-lua-versioned.patch
# https://salsa.debian.org/lua-team/luajit/-/raw/master/debian/patches/0002-Enable-debugging-symbols-in-the-build.patch
Patch2: 0002-Enable-debugging-symbols-in-the-build.patch
# https://salsa.debian.org/lua-team/luajit/-/raw/master/debian/patches/0003-Get-rid-of-LUAJIT_VERSION_SYM-that-changes-ABI-on-ev.patch
Patch3: 0003-Get-rid-of-LUAJIT_VERSION_SYM-that-changes-ABI-on-ev.patch
# Most recent s390x patches at https://github.com/luajit/luajit/pull/631
Patch4: luajit-s390x.patch
# PPC64 patches are out of sync
# # https://salsa.debian.org/lua-team/luajit/-/raw/master/debian/patches/0004-Add-ppc64-support-based-on-koriakin-GitHub-patchset.patch
# # Patch again out of sync, gh#LuaJIT/LuaJIT#140
# Patch5: 0004-Add-ppc64-support-based-on-koriakin-GitHub-patchset.patch
# Patch6: luajit-ppc64-replace-asserts.patch
BuildRequires: git
BuildRequires: pkgconfig
Requires: %{name}-%{lib_version}-%{so_version} = %{version}
Provides: lua51-luajit = %{version}-%{release}
Obsoletes: lua51-luajit <= 2.2.0
Provides: moonjit = %{version}-%{release}
Obsoletes: moonjit <= 2.2.0
# lj_arch.h:441:2: error: #error "No target architecture defined"
ExcludeArch: riscv64 ppc64 ppc64le
%description
A Just-In-Time Compiler for Lua language
%package -n libluajit-%{lib_version}-%{so_version}
Summary: Library for JIT Lua compiler
Provides: %{name}-%{lib_version}-%{so_version} = %{version}-%{release}
%description -n libluajit-%{lib_version}-%{so_version}
Libraries to use JIT Lua compiler
%package devel
Summary: Devel files for %{name}
Requires: %{name} = %{version}
Requires: luajit-%{lib_version}-%{so_version} = %{version}
Provides: moonjit-devel = %{version}-%{release}
Obsoletes: moonjit-devel <= 2.2.0
Provides: libluajit-devel = %{version}-%{release}
%description devel
Devel files for luajit package
%prep
%autosetup -p1
# Fix variables
sed -i "s,PREFIX= %{_prefix}/local,PREFIX= %{_prefix}," Makefile
sed -i "s,%{_libexecdir},%{_libdir}," etc/luajit.pc
# Unfortunately, tar_scm doesn't use git archive (gh#openSUSE/obs-service-tar_scm#144)
%global realver 2.1.%(echo '%{version}' | cut -d. -f 6)
echo '%{version}' | cut -d. -f 6 >.relver
%build
export CFLAGS="%{optflags}"
%make_build %{?_make_output_sync} \
Q= \
DYNAMIC_CC="cc -fPIC" \
LDCONFIG="true" \
TARGET_AR="ar rcus" \
TARGET_STRIP=: \
MULTILIB=%{_lib}
%install
make DESTDIR=%{buildroot} install \
INSTALL_LIB="%{buildroot}%{_libdir}" \
DYNAMIC_CC="cc -fPIC" \
LDCONFIG="true" \
TARGET_AR="ar rcus" \
TARGET_STRIP=: \
MULTILIB=%{_lib}
# remove static lib, not needed
rm %{buildroot}%{_libdir}/*.a
# Create runnable binary
ln -sf %{_bindir}/luajit-%{lib_version}-%{realver} %{buildroot}%{_bindir}/luajit
%post -n libluajit-%{lib_version}-%{so_version} -p /sbin/ldconfig
%postun -n libluajit-%{lib_version}-%{so_version} -p /sbin/ldconfig
%files
%license COPYRIGHT
%doc README
%{_bindir}/luajit
%{_bindir}/luajit-%{lib_version}
%{_bindir}/luajit-%{lib_version}-%{realver}
%{_mandir}/man1/luajit-%{lib_version}.1%{?ext_man}
%{_datadir}/luajit-%{lib_version}-2.1
%files -n libluajit-%{lib_version}-%{so_version}
%{_libdir}/libluajit-5.1.so.*
%files devel
%{_includedir}/luajit-%{lib_version}-2.1
%{_libdir}/libluajit-5.1.so
%{_libdir}/pkgconfig/luajit.pc
%changelog