openSUSE:打包 Lua
openSUSE Lua 打包
为了为 openSUSE 中的 Lua 相关包提供更好的标准,以下指南已经在 opensuse-packaging 邮件列表 中讨论过,并且此页面反映了结果。如果您想增强此指南,请在编辑此页面之前在上述邮件列表中讨论您的建议。
Devel 项目
主要的开发应该发生在 devel:languages:lua 中,因此 devel:languages:misc 应该从 Factory 的 devel 仓库中移除。
不幸的是,有各种 Lua 包散落在 OBS 中,这些包应该在 devel:languages:lua 中开发
注意 填充 devel 项目的包 建议可以从填充包(最好是链接到 openSUSE:Factory,因为它们已经推送到那里)开始。任何添加到 devel:languages:lua 的包都应该获得 changedevelrequest,以便官方 devel 仓库遵循新的包。
这意味着联系这些包的维护者,并要求他们将他们的包移动到 devel:languages:lua 项目
Lua 包指南
宏已经在 devel:languages:lua 中的 lua 和 lua51 包中定义
Lua 的 RPM 宏
- Lua 的主版本号
%lua_version %(lua -e 'print(_VERSION)' | cut -d ' ' -f 2)
注意 也有人建议在安装宏时在构建时计算一次,而不是每次都让 rpm 评估此宏。请在打包邮件列表中讨论想法
- 编译模块应该放在这里
%lua_archdir %{_libdir}/lua/%{lua_version}
- 纯 Lua 模块应该放在这里
%lua_noarchdir %{_datadir}/lua/%{lua_version}
附加包
Lua 附加包通常应遵循 lua(版本)-PKG_NAME 的命名方案,例如:
目前 openSUSE 提供的主要 lua 包如下
- lua ------> 提供版本 5.3
- lua53 ------> 提供版本 5.3
- lua52 ------> 提供版本 5.2
- lua51 ------> 提供版本 5.1
- lua50 ------> 提供版本 5.0
lua51-luafilesystem -- 与 lua 版本 5.1 一起使用
lua-luafilesystem -- 与 lua 版本 5.2 一起使用
注意 不幸的是,这本身也带来了下一个版本的 lua(例如 5.4)的问题。因此,需要一种更好的命名主 lua 包的方式,以防止将来重命名过程
开发包
开发包应将 devel 后缀添加到包名称 lua(版本)-PKG_NAME-devel,例如:lua51-luafilesystem-devel
文档包
如果一个包有大量的文档或只是一个文档包,那么命名应该为 lua(版本)-PackageName-doc,并且应该安装到 %_defaultdocdir
/usr/share/doc/packages/lua-{PKG_NAME}-doc/*
许多上游 Lua 开发者使用 LuaRocks 来分发他们的模块。因此,我们可能应该找到一种将 luarocks 集成到我们的构建系统中的方法,并可能提供一种类似于 python 的 py2pack 的打包机制
使用 luajit 头文件
如果您的包需要使用 luajit-devel 头文件,例如 luajit.h,您需要在 spec 文件的 %build 部分添加以下行
export LUA_INCLUDE="$(pkg-config --cflags-only-I luajit)"
以及以下内容作为
BuildRequires: pkgconf-pkg-config