Description of problem: The nginx lua module is not available We need it to use the 'access_by_lua' directive.
What Clément is referring to is: https://github.com/openresty/lua-nginx-module After looking around a bit, I don't think this can be made an additional package that can be installed alongside of the nginx package. This would need to be integrated into main nginx package. That is how Debian is packaging it and I didn't found any evidence this can be done differently. To be able to compile the mod_lua additional module, the Nginx Development Kit also needs to be added: https://github.com/vision5/ngx_devel_kit I'm moving this bug to Fedora, EPEL is not the appropriate location for such a request for enhancement. It first needs to be available in Fedora before standing a chance to make it's way into EPEL.
Probably not perfect, but here is a first attempt: https://src.fedoraproject.org/fork/xavierb/rpms/nginx/c/3de47ac1f5bd5bc17beb3f7dfef77e02a4203d4a?branch=lua_module
It's probably better to reference the branch in my fork rather than a lone commit: https://src.fedoraproject.org/fork/xavierb/rpms/nginx/commits/lua_module
As we're basically adding two new packages inside this package a new review of the package would probably be warranted. For example ngx_devel_kit bundles some external header files for the hash algorithms. So we might need a bundling exception as well (or at least something like Provides: bundled(sha.h)) I'll try and look into this over the weekend. If you have the time it would be great if you could rebase this on top of the current 1.18.0 package in rawhide. As for EPEL I currently not envision upgrading EPEL 7 to 1.18. But I am building the nginx modules for EPEL 8 as well so we could put it in there as well.
I would very much have preferred that to be 2 different side-loaded packages, but it seems there's no way around it. I did not notice the bundling earlier. You're right about the Provides: bundled(...), but for better or worse, Fedora doesn't mandate unbundling nowadays, so I guess no bundling exception would be needed. For EL7, I could try and backport the spec changes for lua support and not bump the version. What do you think ? For EL8, nginx is provided by RHEL/CentOS in a module, so I'm not sure how to proceed nor what is actually allowed or not. I was not able to update what is shipped in EL8 with my home-built nginx packages due to the modular stuff getting in the way. Anyway, I've rebased my branch to current rawhide.
I have decided to not include 3rd party source code in the nginx package build process. I do, however, have enabled the --with-compat build flag in the nginx package, so it should be easy for people to build separate packages with the dynamic module.
(In reply to Felix Kaechele from comment #6) > I have decided to not include 3rd party source code in the nginx package > build process. > I do, however, have enabled the --with-compat build flag in the nginx > package, so it should be easy for people to build separate packages with the > dynamic module. Building a separate package is definitely a nicer solution than bundling everything in the main package. Would you have any example or doc at hand on how to go the separate package route ?
Building separate packages seems to require the nginx `configure` script which isn't shipped with nginx or any sub-package. Am I missing something ? Maybe that configure script could be shipped in an nginx-devel sub-package ?