Hi all,
Some exciting updates re: Lua packaging
TL;DR we want to simplify the Lua packaging experience as much as possible, across both Fedora and RHEL.
Some background: - before RHEL 7, the Lua RPM does not provide "lua(abi) = MAJ.MIN" so a package that ships Lua modules has to declare this to be safe:
Requires: lua >= MAJ.MIN Requires: lua < MAJ.(MIN+1)
- we have a draft packaging spec that recommends defining luapkgdir (noarch) and lualibdir (arched); this was later pre-defined as lua_pkgdir and lua_libdir in lua-devel in Fedora and RHEL8 -- but didn't get merged into lua in RHEL < 8.
- there's a %lua_requires macro that automatically generates the right Requires line. But if it is not present on the system where the SRPM is regenerated it cannot be used. And lua-devel is not pulled in by redhat-rpm-config so that means this macro was never used.
- on Fedora >= 33 (and so RHEL >= 9 when it's out) a requires generator will automatically generate the 'Requires: lua(abi)' line.
- third-party Lua modules are mostly not updated to use these macros, and worse, EL RPMs can't
On Fri, 2020-08-28 at 19:43 -0700, Michel Alexandre Salim wrote:
I've created a review request for the proposed new macro package here: https://bugzilla.redhat.com/show_bug.cgi?id=1873676
If this is accepted:
- we can immediately branch and ship this for EL6 and EL7 so Lua
packages for those releases can use macros
- I'll get redhat-rpm-config to pull in lua-srpm-macros, the same way
it pulls in other *-srpm-macros packages
- I'll refactor lua in Fedora so lua-devel pulls in lua-rpm-macros
rather than shipping macros.lua, then enable shipping macros.lua in lua-rpm-macros (right now it's excluded on Fedora to avoid file conflicts)
lua-rpm-macros is now live in Rawhide, and lua-5.4.0-7.fc34 requires that package if rpm-build is installed.
spot is pushing a security update for Lua in F33, so the change is not out yet on that release (I've merged in the changes from master though, so lua-rpm-macros + lua-5.4.0-8.fc33 will have them).
I've also built lua-rpm-macros for EL6, EPEL7 and EPEL8 (on EPEL8 it only generates lua-srpm-macros since macros.lua is already shipped by lua-devel, and we can't refactor that easily as it's part of RHEL Base): https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-1ced3b21fb https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-f54c46aaf2 https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-97b6a71d6d
Next step is to have redhat-rpm-config depend on lua-srpm-macros (needed especially so that on Fedora < 33 and RHEL, we can use the %lua_requires macro to automatically generate the right runtime Requires: on the right Lua version).
https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/105
One thing I'm not sure about is how to get redhat-rpm-config fixed for stable releases (F31, F32). redhat-rpm-config normally gets updated by bumping the version, but presumably cherry-picking this one change is better than shipping the latest redhat-rpm-config on stable releases?
Also -- any idea how to get lua-srpm-macros available in the Koji builders for EL6, EPEL7 and EPEL8? Presumably we can't touch redhat- rpm-config there.
I'll also look at creating an official SIG including having a mailing list.
The mailing list has been created (cc: ed on this post). I'd welcome anyone interested in Lua packaging, especially those who maintains core Lua packages, to subscribe to lua@lists.fedoraproject.org.
Best regards,
On 9/3/20 4:47 AM, Michel Alexandre Salim wrote:
Hi all,
Some exciting updates re: Lua packaging
TL;DR we want to simplify the Lua packaging experience as much as possible, across both Fedora and RHEL.
Some background:
- before RHEL 7, the Lua RPM does not provide "lua(abi) = MAJ.MIN" so a
package that ships Lua modules has to declare this to be safe:
Requires: lua >= MAJ.MIN Requires: lua < MAJ.(MIN+1)
- we have a draft packaging spec that recommends defining luapkgdir
(noarch) and lualibdir (arched); this was later pre-defined as lua_pkgdir and lua_libdir in lua-devel in Fedora and RHEL8 -- but didn't get merged into lua in RHEL < 8.
- there's a %lua_requires macro that automatically generates the right
Requires line. But if it is not present on the system where the SRPM is regenerated it cannot be used. And lua-devel is not pulled in by redhat-rpm-config so that means this macro was never used.
- on Fedora >= 33 (and so RHEL >= 9 when it's out) a requires generator
will automatically generate the 'Requires: lua(abi)' line.
- third-party Lua modules are mostly not updated to use these macros,
and worse, EL RPMs can't
On Fri, 2020-08-28 at 19:43 -0700, Michel Alexandre Salim wrote:
I've created a review request for the proposed new macro package here: https://bugzilla.redhat.com/show_bug.cgi?id=1873676
If this is accepted:
- we can immediately branch and ship this for EL6 and EL7 so Lua
packages for those releases can use macros
- I'll get redhat-rpm-config to pull in lua-srpm-macros, the same way
it pulls in other *-srpm-macros packages
- I'll refactor lua in Fedora so lua-devel pulls in lua-rpm-macros
rather than shipping macros.lua, then enable shipping macros.lua in lua-rpm-macros (right now it's excluded on Fedora to avoid file conflicts)
lua-rpm-macros is now live in Rawhide, and lua-5.4.0-7.fc34 requires that package if rpm-build is installed.
spot is pushing a security update for Lua in F33, so the change is not out yet on that release (I've merged in the changes from master though, so lua-rpm-macros + lua-5.4.0-8.fc33 will have them).
I've also built lua-rpm-macros for EL6, EPEL7 and EPEL8 (on EPEL8 it only generates lua-srpm-macros since macros.lua is already shipped by lua-devel, and we can't refactor that easily as it's part of RHEL Base): https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-1ced3b21fb https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-f54c46aaf2 https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-97b6a71d6d
Next step is to have redhat-rpm-config depend on lua-srpm-macros (needed especially so that on Fedora < 33 and RHEL, we can use the %lua_requires macro to automatically generate the right runtime Requires: on the right Lua version).
https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/105
One thing I'm not sure about is how to get redhat-rpm-config fixed for stable releases (F31, F32). redhat-rpm-config normally gets updated by bumping the version, but presumably cherry-picking this one change is better than shipping the latest redhat-rpm-config on stable releases?
Also -- any idea how to get lua-srpm-macros available in the Koji builders for EL6, EPEL7 and EPEL8? Presumably we can't touch redhat- rpm-config there.
I'll also look at creating an official SIG including having a mailing list.
The mailing list has been created (cc: ed on this post). I'd welcome anyone interested in Lua packaging, especially those who maintains core Lua packages, to subscribe to lua@lists.fedoraproject.org.
Best regards,
As a followup, can we please move this PR forward?
https://src.fedoraproject.org/rpms/lua-rpm-macros/pull-request/1
On Tue, 2020-12-08 at 20:02 +0100, Miro Hrončok wrote:
As a followup, can we please move this PR forward?
https://src.fedoraproject.org/rpms/lua-rpm-macros/pull-request/1
Merged, sorry for not noticing this! I'll kick off builds in a bit.