From 56e54075efb58a9901952f5c836ed7d095e348f9 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Jul 23 2021 07:33:17 +0000 Subject: Build a luajit2.1 flavor --- diff --git a/lua-luv.spec b/lua-luv.spec index e21b404..8b59319 100644 --- a/lua-luv.spec +++ b/lua-luv.spec @@ -1,3 +1,5 @@ +%bcond_without test + %global lua_incdir %{_includedir}/lua-%{lua_version} %global lua_builddir obj-lua%{lua_version} @@ -7,6 +9,11 @@ %global lua_51_pkgdir %{_datadir}/lua/%{lua_51_version} %global lua_51_builddir obj-lua%{lua_51_version} +%global luajit_version 2.1 +%global luajit_incdir %{_includedir}/luajit-%{luajit_version} +%global luajit_libdir %{_libdir}/luajit/%{luajit_version} +%global luajit_builddir obj-luajit + %global real_version 1.41.1 %global extra_version 0 @@ -23,11 +30,12 @@ BuildRequires: libuv-devel >= 1.41.0 BuildRequires: lua-devel BuildRequires: compat-lua >= %{lua_51_version} BuildRequires: compat-lua-devel >= %{lua_51_version} +BuildRequires: luajit-devel BuildRequires: lua5.1-compat53 Name: lua-luv Version: %{real_version}.%{extra_version} -Release: 2%{?dist} +Release: 3%{?dist} License: ASL 2.0 Summary: Bare libuv bindings for lua @@ -85,6 +93,30 @@ Requires: lua5.1-luv%{?_isa} = %{version}-%{release} %description -n lua5.1-luv-devel Files required for lua5.1-luv development +%package -n luajit%{luajit_version}-luv +Summary: Bare libuv bindings for lua 5.1 +Requires: lua(abi) = %{lua_51_version} + +%description -n luajit%{luajit_version}-luv +This library makes libuv available to lua scripts. It was made +for the luvit project but should usable from nearly any lua +project. + +The library can be used by multiple threads at once. Each thread +is assumed to load the library from a different lua_State. Luv +will create a unique uv_loop_t for each state. You can't share uv +handles between states/loops. + +The best docs currently are the libuv docs themselves. Hopefully +soon we'll have a copy locally tailored for lua. + +%package -n luajit%{luajit_version}-luv-devel +Summary: Development files for luajit%{luajit_version}-luv +Requires: luajit%{luajit_version}-luv%{?_isa} = %{version}-%{release} + +%description -n luajit%{luajit_version}-luv-devel +Files required for luajit%{luajit_version}-luv development + %prep %setup -n luv-%{real_version}-%{extra_version} @@ -133,6 +165,22 @@ pushd %{lua_51_builddir} %cmake_build popd +# luajit +mkdir %{luajit_builddir} + +pushd %{luajit_builddir} +%cmake .. \ + -DWITH_SHARED_LIBUV=ON \ + -DBUILD_MODULE=ON \ + -DBUILD_SHARED_LIBS=ON \ + -DWITH_LUA_ENGINE=LuaJit \ + -DLUA_BUILD_TYPE=System \ + -DINSTALL_LIB_DIR=%{_libdir} \ + -DLUA_COMPAT53_DIR=%{lua_51_incdir} + +%cmake_build +popd + %install # lua install -d -m 0755 %{buildroot}%{lua_libdir} @@ -152,6 +200,16 @@ for f in lhandle.h lreq.h luv.h util.h; do install -m 0644 -p src/$f %{buildroot}%{lua_51_incdir}/luv/$f done +# lua-5.1 +install -d -m 0755 %{buildroot}%{luajit_libdir} +install -m 0755 -p %{luajit_builddir}/%{_vpath_builddir}/luv.so %{buildroot}%{luajit_libdir}/luv.so + +install -d -m 0755 %{buildroot}%{luajit_incdir}/luv +for f in lhandle.h lreq.h luv.h util.h; do + install -m 0644 -p src/$f %{buildroot}%{luajit_incdir}/luv/$f +done + +%if %{with test} %check # lua-5.1 ln -sf %{lua_51_builddir}/%{_vpath_builddir}/luv.so luv.so @@ -161,6 +219,12 @@ rm luv.so ln -sf %{lua_builddir}/%{_vpath_builddir}/luv.so luv.so lua tests/run.lua rm luv.so +# luajit +ln -sf %{luajit_builddir}/%{_vpath_builddir}/luv.so luv.so +luajit tests/run.lua +rm luv.so +# /with test +%endif %files %doc README.md @@ -188,7 +252,23 @@ rm luv.so %{lua_51_incdir}/luv/luv.h %{lua_51_incdir}/luv/util.h +%files -n luajit%{luajit_version}-luv +%doc README.md +%license LICENSE.txt +%{luajit_libdir}/luv.so + +%files -n luajit%{luajit_version}-luv-devel +%dir %{luajit_incdir} +%dir %{luajit_incdir}/luv/ +%{luajit_incdir}/luv/lhandle.h +%{luajit_incdir}/luv/lreq.h +%{luajit_incdir}/luv/luv.h +%{luajit_incdir}/luv/util.h + %changelog +* Fri Jul 23 2021 Andreas Schneider - 1.41.1.0-3 +- Build a luajit2.1 flavor + * Thu Jul 22 2021 Fedora Release Engineering - 1.41.1.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild