[PATCH] Configure: introduced --without-libxslt
Maxim Dounin
mdounin at mdounin.ru
Mon May 8 21:42:46 UTC 2023
Hello!
On Sat, May 06, 2023 at 06:03:15PM -0700, Dmitry Volyntsev wrote:
> On 06.05.2023 16:12, Maxim Dounin wrote:
>
> > On Fri, May 05, 2023 at 11:05:09PM -0700, Dmitry Volyntsev wrote:
> >
> >> # HG changeset patch
> >> # User Dmitry Volyntsev <xeioex at nginx.com>
> >> # Date 1683353037 25200
> >> # Fri May 05 23:03:57 2023 -0700
> >> # Node ID 4891e0920d7c0e89def28694686e34294c69acf1
> >> # Parent b71e69247483631bd8fc79a47cc32b762625b1fb
> >> Configure: introduced --without-libxslt.
> >>
> >> This allows to explicitly disable libxslt discovery by
> >> nginx and nginx addons.
> >>
> >> diff --git a/auto/lib/conf b/auto/lib/conf
> >> --- a/auto/lib/conf
> >> +++ b/auto/lib/conf
> >> @@ -29,8 +29,21 @@ if [ $USE_ZLIB = YES ]; then
> >> . auto/lib/zlib/conf
> >> fi
> >>
> >> -if [ $USE_LIBXSLT != NO ]; then
> >> +if [ $USE_LIBXSLT != NO -a $USE_LIBXSLT != DISABLED ]; then
> >> . auto/lib/libxslt/conf
> >> +
> >> +else
> >> + if [ $USE_LIBXSLT = DISABLED -a $HTTP = YES -a $HTTP_XSLT = YES ]; then
> >> +
> >> +cat << END
> >> +
> >> +$0: error: the HTTP ngx_http_xslt_module requires the libxslt library.
> >> +You can either disable the module by using --without-http_xslt_module
> >> +option or you have to enable the libxslt support.
> >> +
> >> +END
> >> + exit 1
> >> + fi
> >> fi
> >>
> >> if [ $USE_LIBGD != NO ]; then
> >> diff --git a/auto/modules b/auto/modules
> >> --- a/auto/modules
> >> +++ b/auto/modules
> >> @@ -277,7 +277,7 @@ if [ $HTTP = YES ]; then
> >> . auto/module
> >> fi
> >>
> >> - if [ $HTTP_XSLT != NO ]; then
> >> + if [ $HTTP_XSLT != NO -a $USE_LIBXSLT != DISABLED ]; then
> >> ngx_module_name=ngx_http_xslt_filter_module
> >> ngx_module_incs=
> >> ngx_module_deps=
> >> diff --git a/auto/options b/auto/options
> >> --- a/auto/options
> >> +++ b/auto/options
> >> @@ -363,6 +363,8 @@ use the \"--with-mail_ssl_module\" optio
> >> --with-openssl=*) OPENSSL="$value" ;;
> >> --with-openssl-opt=*) OPENSSL_OPT="$value" ;;
> >>
> >> + --without-libxslt) USE_LIBXSLT=DISABLED ;;
> >> +
> >> --with-md5=*)
> >> NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
> >> $0: warning: the \"--with-md5\" option is deprecated"
> >
> > The only "without" configure option for libraries we use is
> > "--without-pcre", and it is disables PCRE library usage in the
> > nginx core (notably, regular expressions in server names and
> > locations).
> >
> > In contrast, the XSLT library is only used by the xslt filter
> > module, and the natural way to disable its usage is to don't
> > enable the module. Similarly, OpenSSL, zlib, GD, and GeoIP
> > libraries are enabled by the corresponding modules, and not
> > enabled when the modules are not enabled.
> >
> > It is not clear why XSLT should be different, and how this is
> > expected to be used.
>
> That is correct that XSLT library is only used for xslt filter.
> Nevertheless LIBXSLT is supported in ngx_module_libs for 3rd-party
> nginx modules, so for XSLT there are may be other uses outside of
> nginx core. Unlike OPENSSL and ZLIB which are essential parts of any
> modern nginx build, LIBXSLT is less commonly used and users
> sometimes want to disable LIBXSLT altogether.
As for the other libraries, the expected approach to disable
the XSLT library usage is to disable modules which depend on it.
> What is the suggested way for a user to build 3rd-party module when
> he/she wants to specifically disable a part which needs LIBXSLT?
>
> Alternatively there can be a way for nginx user building nginx to
> somehow signal to a 3rd-party module configure script what he/she wants.
As currently implemented, nginx expects an addon module to list
libraries it depends on. If a module normally depends on a
library, but can be configured to do not depend on it, it is
something to be configured on the module side. A readily
available solutions would be to pre-configure the module somehow,
or use an environment variable to provide module-specific options.
We can consider implementing a way to provide module-specific
configure options, but I don't think I remember [m]any requests
for this.
--
Maxim Dounin
http://mdounin.ru/
More information about the nginx-devel
mailing list