Compile NGINX with full WebDAV support

Dear all,

I am trying to install NGINX with full WebDAV support. The issue that I am facing is that NGINX from Master uses a very old version of the nginx-dav-ext-module (version 0.1), that misses support for the LOCK and UNLOCK functions, that are required by the Microsoft Windows WebDAV redirector. The current version 3.0 of the nginx-dav-ext-module has added that support and also switched from libexpat to libxml2.

I therefore updated the Makefile for NGINX with the new dependency and updated the nginx-dav-ext-module:

define Package/nginx/default
  SUBMENU:=Web Servers/Proxies
  TITLE:=Nginx web server
  DEPENDS:=+NGINX_PCRE:libpcre +NGINX_SSL:libopenssl \
	+NGINX_HTTP_GZIP:zlib +NGINX_LUA:liblua +libpthread +NGINX_DAV:libxml2
ifeq ($(CONFIG_NGINX_DAV),y)
  define Download/nginx-dav-ext-module
  $(eval $(call Download,nginx-dav-ext-module))

  define Prepare/nginx-dav-ext-module
	$(eval $(Download/nginx-dav-ext-module))
	gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)

I have installed NGINX and all dependencies in the SDK and verified with make menuconfig that libxml2 is selected. When I compile, I can see that libxml2 is downloaded and compiled. However, I still get the following error message:

configuring additional modules
adding module in /mnt/data/share/internal/software/openwrt-sdk-18.06.4-x86-64_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-x86_64_musl/nginx-ssl/nginx-1.16.1/nginx-naxsi/naxsi_src
 + ngx_http_naxsi_module was configured
adding module in /mnt/data/share/internal/software/openwrt-sdk-18.06.4-x86-64_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-x86_64_musl/nginx-ssl/nginx-1.16.1/nginx-dav-ext-module
 + ngx_http_dav_ext_module was configured
adding module in /mnt/data/share/internal/software/openwrt-sdk-18.06.4-x86-64_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-x86_64_musl/nginx-ssl/nginx-1.16.1/nginx-headers-more
 + ngx_http_headers_more_filter_module was configured
adding module in /mnt/data/share/internal/software/openwrt-sdk-18.06.4-x86-64_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-x86_64_musl/nginx-ssl/nginx-1.16.1/nginx-brotli
 + ngx_brotli was configured
checking for PCRE library ... found
checking for PCRE JIT support ... found
checking for OpenSSL library ... found
checking for zlib library ... found
checking for libxslt ... not found
checking for libxslt in /usr/local/ ... not found
checking for libxslt in /usr/pkg/ ... not found
checking for libxslt in /opt/local/ ... not found

./configure: error: the HTTP XSLT module requires the libxml2/libxslt
libraries. You can either do not enable the module or install the libraries.

make[3]: *** [Makefile:544: /mnt/data/share/internal/software/openwrt-sdk-18.06.4-x86-64_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-x86_64_musl/nginx-ssl/nginx-1.16.1/.configured_4e24866b58b0ddd60ed21029941392ff] Error 1
make[3]: Leaving directory '/mnt/data/share/internal/software/openwrt-sdk-18.06.4-x86-64_gcc-7.3.0_musl.Linux-x86_64/package/useradd/nginx'
time: package/useradd/nginx/ssl/compile#13.40#21.05#30.32
make[2]: *** [package/Makefile:109: package/useradd/nginx/compile] Error 2
make[2]: Leaving directory '/mnt/data/share/internal/software/openwrt-sdk-18.06.4-x86-64_gcc-7.3.0_musl.Linux-x86_64'
make[1]: *** [package/Makefile:103: /mnt/data/share/internal/software/openwrt-sdk-18.06.4-x86-64_gcc-7.3.0_musl.Linux-x86_64/staging_dir/target-x86_64_musl/stamp/.package_compile] Error 2
make[1]: Leaving directory '/mnt/data/share/internal/software/openwrt-sdk-18.06.4-x86-64_gcc-7.3.0_musl.Linux-x86_64'
make: *** [/mnt/data/share/internal/software/openwrt-sdk-18.06.4-x86-64_gcc-7.3.0_musl.Linux-x86_64/include/ world] Error 2

What can I do to solve this error? I have also installed the dev-version of these libary in Debian, but this did not help. Also installing libxslt in the SDK did not help either.

Any other ideas would be greatly appreciated!

I think you need to add the following to DEPENDS in Package/nginx/default.


That's only true if the package libxslt exists already in the openwrt build system, but you said you added it to the SDK, so I assume this is true.

Hi @juppin,

Thank you for your input. I have already tried to include libxslt. I had the following variants in the Makefile:

+NGINX_DAV:libxslt +libxml2
+NGINX_DAV:libxml2 +libxslt

all of them lead to the same error message that I have described above.

Any other ideas? Thank you!