(RHEL 6 lua doesn't provide virtual provide lua(abi)) |
(make lua versioning requirement ABI-specific on RHEL) |
||
Line 24: | Line 24: | ||
</pre> | </pre> | ||
to target older releases (or RHEL 6), use the following instead | to target older releases (or RHEL 6), use the following instead. | ||
<pre> | <pre> | ||
%global luanext 5.2 | |||
Requires: lua >= %{luaver} | Requires: lua >= %{luaver} | ||
Requires: lua < %{luanext} | |||
</pre> | </pre> | ||
Revision as of 04:05, 11 May 2012
Naming
(This section should eventually be linked from Packaging:NamingGuidelines)
Lua add-on packages generally follow the naming scheme of lua-modulename
-- e.g. lua-filesystem
, lua-lpeg
, lua-moonscript
. If the module name makes it clear that it is an add-on for Lua, though, the module name itself is sufficient. e.g. lutok
.
Use your judgement -- e.g. the second l
in lua-lpeg
already stands for Lua, but it might not be seen as unambiguous enough.
Macros
Define the following on top of your spec file:
%global luaver 5.1 # for compiled modules %global lualibdir %{_libdir}/lua/%{luaver} # for arch-independent modules %global luapkgdir %{_datadir}/lua/%{luaver}
From Fedora 16 and onwards (not RHEL 6!), the main lua
package virtually provides lua(abi) = %{luaver}
, so packages targeting this release and above can declare this runtime dependency:
Requires: lua(abi) = %{luaver}
to target older releases (or RHEL 6), use the following instead.
%global luanext 5.2 Requires: lua >= %{luaver} Requires: lua < %{luanext}
Rocks
Upstream Lua developers increasingly use LuaRocks to distribute their modules. We are exploring providing better integration with LuaRocks in the future -- both in generating spec files from .rockspec
specifications, and in shipping a luarocks
package that can pick up existing RPM-installed Lua packages, but for the time being, you can use upstream rockspec specifications to guide your packaging work.