Hello, I'm currently looking for ideas to resolve a 3rd party module regression[1][2] that I keep running into, and figured it would be best to consult the experts.
The ngx_http_postpone_filter_module is a critical helper for many modules to ensure subrequests are properly ordered. But I can't seem to find a proper way to ensure it's included for a 3rd party module. All of the internal modules which use it have a special declaration in the auto/modules file enabling postpone, but among the 3rd party modules there has only ever been crappy workarounds (documentation saying to enable the SSI module or another which pulls in postpone) or hacks to add HTTP_POSTPONE_FILTER_SRCS to HTTP_SRCS. With the new build system introduced in 1.9.11 though, HTTP_POSTPONE_FILTER_SRCS is no longer exposed to the config file 3rd party modules use, and we've hit a bit of an impasse. We either need to pile on increasingly desperate hacks, or we need a better way to express to the build system when a 3rd party module depends on postpone. One possible solution is to patch the build process to have a "preconfig" file where modules could override the options specified in auto/options but it would also give 3rd party modules more room to mess up variables and break nginx in unexpected ways. Another option could be to modify the build process to check for inter-module dependencies being satisfied. So that a module could specify that it depends on ngx_http_postpone_filter_module and after all modules were configured, if any dependencies were not enabled, they would then be configured as well. So I pose the question: How can we ensure 3rd party modules can pull in postpone in a future proof way? Is there an obvious solution I'm overlooking? Or how can the build process be modified to address this? Kind regards, Anthony Ryan [1] https://github.com/evanmiller/mod_zip/issues/52 [2] https://github.com/openresty/echo-nginx-module/pull/42 _______________________________________________ nginx-devel mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-devel
