Diff below updates nginx to 1.24.0, which is the latest stable release.
Overview on changes can be found at http://nginx.org/en/CHANGES-1.24.

Switched pcre to pcre2 now to naxsi HEAD supports this. Updated
headers-more-nginx-module to a newer version because nginx >1.23.0
changed handling of multiple headers. Added 2 patches for
lua-nginx-module because of the header change.

Lightly run test, with a simple config, on am64.

Comments/OK?


diff --git Makefile Makefile
index cc6eed8f6ff..fb79699f981 100644
--- Makefile
+++ Makefile
@@ -15,7 +15,7 @@ COMMENT-passenger=    nginx passenger (ruby/python/nodejs) 
integration module
 COMMENT-rtmp=          nginx module for RTMP streaming
 COMMENT-securelink=    nginx HMAC secure link module
 
-VERSION=       1.22.0
+VERSION=       1.24.0
 DISTNAME=      nginx-${VERSION}
 CATEGORIES=    www
 
@@ -36,8 +36,6 @@ PKGNAME-passenger=    nginx-passenger-${VERSION}
 PKGNAME-rtmp=          nginx-rtmp-${VERSION}
 PKGNAME-securelink=    nginx-securelink-${VERSION}
 
-REVISION-main=         0
-
 ONLY_FOR_ARCHS-passenger= aarch64 amd64 arm i386
 
 MASTER_SITES=  https://nginx.org/download/
@@ -48,9 +46,9 @@ MASTER_SITES1=        
https://raw.githubusercontent.com/rnagy/nginx_chroot_patch/master
 DISTFILES=     ${DISTNAME}${EXTRACT_SUFX}
 
 _GH_MODS=      \
-       openresty       headers-more-nginx-module       v0.33 \
+       openresty       headers-more-nginx-module       v0.34 \
        openresty       lua-nginx-module                v0.10.11 \
-       nbs-system      naxsi                           1.3 \
+       nbs-system      naxsi                           
d714f1636ea49a9a9f4f06dba14aee003e970834 \
        kvspb           nginx-auth-ldap                 
83c059b73566c2ee9cbda920d91b66657cf120b7 \
        arut            nginx-rtmp-module               v${VERSION-rtmp} \
        simpl           ngx_devel_kit                   v0.3.0 \
@@ -81,7 +79,7 @@ COMPILER =            base-clang ports-gcc base-gcc
 
 .include <bsd.port.arch.mk>
 
-WANTLIB-main=          c z pcre ssl crypto
+WANTLIB-main=          c crypto pcre2-8 ssl z
 WANTLIB-mailproxy=
 WANTLIB-stream=
 WANTLIB-image_filter=  gd
@@ -96,7 +94,7 @@ WANTLIB-perl=         c m perl
 WANTLIB-passenger=     m pthread ${COMPILER_LIBCXX}
 WANTLIB-securelink=    crypto
 
-LIB_DEPENDS-main=      devel/pcre
+LIB_DEPENDS-main=      devel/pcre2
 LIB_DEPENDS-xslt=      textproc/libxml \
                        textproc/libxslt
 LIB_DEPENDS-image_filter=graphics/gd
@@ -182,7 +180,6 @@ CONFIGURE_ARGS+=    --prefix=${NGINX_DIR} \
                        --with-stream=dynamic \
                        --with-stream_ssl_module \
                        --with-stream_ssl_preread_module \
-                       --without-pcre2 \
                        --add-dynamic-module=${WRKSRC}/naxsi/naxsi_src/ \
                        --add-dynamic-module=${WRKSRC}/ngx_devel_kit \
                        
--add-dynamic-module=${WRKSRC}/headers-more-nginx-module \
diff --git distinfo distinfo
index 92e4cc852ed..f508a39a69d 100644
--- distinfo
+++ distinfo
@@ -1,18 +1,18 @@
-SHA256 (headers-more-nginx-module-v0.33.tar.gz) = 
o9y6sRepwQO8HqUgD8AKe30q+X/3/VJfFvisJjLjD78=
+SHA256 (headers-more-nginx-module-v0.34.tar.gz) = 
DA0s7SzolbP0XrKyMM2QUIqyp3MpnxU94UpD5EwSCbM=
 SHA256 (lua-nginx-module-v0.10.11.tar.gz) = 
wPuR/P0cbn3sNMpkgm74H/66/e9hdNJURnY284BWZiY=
-SHA256 (naxsi-1.3.tar.gz) = Q5yGdzctJZe0Ngu8wQvIZJDeH8dWlbGTrV3xVKIU1ig=
+SHA256 (naxsi-d714f1636ea49a9a9f4f06dba14aee003e970834.tar.gz) = 
2+IXdBFFfxy6mO5Gc84xh2mUrQa9zl7MDuZjhO8OQg4=
 SHA256 (nginx-1.20.1-chroot.patch) = 
SS1TB0j8N4/dn5pUTGT6WvkN3aAUuKz5+R0Nt+MG0gk=
-SHA256 (nginx-1.22.0.tar.gz) = sz1Wmm8RoBQzpXzhfoOTXpU61Nx3zdTUD4lsiKwm61M=
+SHA256 (nginx-1.24.0.tar.gz) = d6JUFje5KmIePudndsi3tAz21wfmm6U6lAKD4w/y9V0=
 SHA256 (nginx-auth-ldap-83c059b73566c2ee9cbda920d91b66657cf120b7.tar.gz) = 
aQxOW9sq4ZsP7nXNNW0YATRo20cmFrYJeloLvjRshGQ=
 SHA256 (nginx-rtmp-module-v1.2.1.tar.gz) = 
h6pZdACwtaBSdO4tI9jLgiThJoYiegq+MdeDs6ZF6jc=
 SHA256 (ngx_devel_kit-v0.3.0.tar.gz) = 
iOBamainQZBm9a51lm+x78QJutRSLRSYbaB0VUrmFhk=
 SHA256 (ngx_http_geoip2_module-3.3.tar.gz) = 
QTeEOMgz4xOhiGnQxKcnBLSDXDCsr3/WgBOrZzL/eKc=
 SHA256 
(ngx_http_hmac_secure_link_module-48c4625fbbf51ed5a95bfec23fa444f6c3702e50.tar.gz)
 = ZXpA2rODS1enIREzlD1OqWwpWcv3NOUXH4eUOgOAmqg=
-SIZE (headers-more-nginx-module-v0.33.tar.gz) = 28130
+SIZE (headers-more-nginx-module-v0.34.tar.gz) = 28827
 SIZE (lua-nginx-module-v0.10.11.tar.gz) = 616653
-SIZE (naxsi-1.3.tar.gz) = 235626
+SIZE (naxsi-d714f1636ea49a9a9f4f06dba14aee003e970834.tar.gz) = 237272
 SIZE (nginx-1.20.1-chroot.patch) = 8783
-SIZE (nginx-1.22.0.tar.gz) = 1073322
+SIZE (nginx-1.24.0.tar.gz) = 1112471
 SIZE (nginx-auth-ldap-83c059b73566c2ee9cbda920d91b66657cf120b7.tar.gz) = 18542
 SIZE (nginx-rtmp-module-v1.2.1.tar.gz) = 519919
 SIZE (ngx_devel_kit-v0.3.0.tar.gz) = 66455
diff --git patches/patch-lua-nginx-module_src_ngx_http_lua_headers_in_c 
patches/patch-lua-nginx-module_src_ngx_http_lua_headers_in_c
new file mode 100644
index 00000000000..57ab107de45
--- /dev/null
+++ patches/patch-lua-nginx-module_src_ngx_http_lua_headers_in_c
@@ -0,0 +1,76 @@
+Handling of multiple headers changed in nginx 1.23.0. Taken from
+https://github.com/openresty/lua-nginx-module/pull/2063
+
+Index: lua-nginx-module/src/ngx_http_lua_headers_in.c
+--- lua-nginx-module/src/ngx_http_lua_headers_in.c.orig
++++ lua-nginx-module/src/ngx_http_lua_headers_in.c
+@@ -158,9 +158,15 @@ static ngx_http_lua_set_header_t  ngx_http_lua_set_han
+                  ngx_http_set_builtin_header },
+ #endif
+ 
++#if defined(nginx_version) && nginx_version >= 1023000
+     { ngx_string("Cookie"),
++                 offsetof(ngx_http_headers_in_t, cookie),
++                 ngx_http_set_builtin_multi_header },
++#else
++    { ngx_string("Cookie"),
+                  offsetof(ngx_http_headers_in_t, cookies),
+                  ngx_http_set_builtin_multi_header },
++#endif
+ 
+     { ngx_null_string, 0, ngx_http_set_header }
+ };
+@@ -577,6 +583,45 @@ static ngx_int_t
+ ngx_http_set_builtin_multi_header(ngx_http_request_t *r,
+     ngx_http_lua_header_val_t *hv, ngx_str_t *value)
+ {
++#if defined(nginx_version) && nginx_version >= 1023000
++    ngx_table_elt_t  **headers, **ph, *h;
++    int                nelts;
++
++    headers = (ngx_table_elt_t **) ((char *) &r->headers_in + hv->offset);
++
++    if (!hv->no_override && *headers != NULL) {
++        nelts = 0;
++        for (h = *headers; h; h = h->next) {
++            nelts++;
++        }
++
++        *headers = NULL;
++
++        dd("clear multi-value headers: %d", nelts);
++    }
++
++    if (ngx_http_set_header_helper(r, hv, value, &h) == NGX_ERROR) {
++        return NGX_ERROR;
++    }
++
++    if (value->len == 0) {
++        return NGX_OK;
++    }
++
++    dd("new multi-value header: %p", h);
++
++    if (*headers) {
++        for (ph = headers; *ph; ph = &(*ph)->next) { /* void */ }
++        *ph = h;
++
++    } else {
++        *headers = h;
++    }
++
++    h->next = NULL;
++
++    return NGX_OK;
++#else
+     ngx_array_t       *headers;
+     ngx_table_elt_t  **v, *h;
+ 
+@@ -623,6 +668,7 @@ ngx_http_set_builtin_multi_header(ngx_http_request_t *
+ 
+     *v = h;
+     return NGX_OK;
++#endif
+ }
+ 
+ 
diff --git patches/patch-lua-nginx-module_src_ngx_http_lua_headers_out_c 
patches/patch-lua-nginx-module_src_ngx_http_lua_headers_out_c
new file mode 100644
index 00000000000..9add4d29bc8
--- /dev/null
+++ patches/patch-lua-nginx-module_src_ngx_http_lua_headers_out_c
@@ -0,0 +1,84 @@
+Handling of multiple headers changed in nginx 1.23.0. Taken from
+https://github.com/openresty/lua-nginx-module/pull/2063
+
+Index: lua-nginx-module/src/ngx_http_lua_headers_out.c
+--- lua-nginx-module/src/ngx_http_lua_headers_out.c.orig
++++ lua-nginx-module/src/ngx_http_lua_headers_out.c
+@@ -305,6 +305,69 @@ static ngx_int_t
+ ngx_http_set_builtin_multi_header(ngx_http_request_t *r,
+     ngx_http_lua_header_val_t *hv, ngx_str_t *value)
+ {
++#if defined(nginx_version) && nginx_version >= 1023000
++    ngx_table_elt_t  **headers, *h, *ho, **ph;
++
++    headers = (ngx_table_elt_t **) ((char *) &r->headers_out + hv->offset);
++
++    if (hv->no_override) {
++        for (h = *headers; h; h = h->next) {
++            if (!h->hash) {
++                h->value = *value;
++                h->hash = hv->hash;
++                return NGX_OK;
++            }
++        }
++
++        goto create;
++    }
++
++    /* override old values (if any) */
++
++    if (*headers) {
++        for (h = (*headers)->next; h; h = h->next) {
++            h->hash = 0;
++            h->value.len = 0;
++        }
++
++        h = *headers;
++
++        h->value = *value;
++
++        if (value->len == 0) {
++            h->hash = 0;
++
++        } else {
++            h->hash = hv->hash;
++        }
++
++        return NGX_OK;
++    }
++
++create:
++
++    for (ph = headers; *ph; ph = &(*ph)->next) { /* void */ }
++
++    ho = ngx_list_push(&r->headers_out.headers);
++    if (ho == NULL) {
++        return NGX_ERROR;
++    }
++
++    ho->value = *value;
++
++    if (value->len == 0) {
++        ho->hash = 0;
++
++    } else {
++        ho->hash = hv->hash;
++    }
++
++    ho->key = hv->key;
++    ho->next = NULL;
++    *ph = ho;
++
++    return NGX_OK;
++#else
+     ngx_array_t      *pa;
+     ngx_table_elt_t  *ho, **ph;
+     ngx_uint_t        i;
+@@ -378,6 +441,7 @@ create:
+     *ph = ho;
+ 
+     return NGX_OK;
++#endif
+ }
+ 
+ 
diff --git patches/patch-naxsi_naxsi_src_naxsi_net_h 
patches/patch-naxsi_naxsi_src_naxsi_net_h
deleted file mode 100644
index 4debf4b57a3..00000000000
--- patches/patch-naxsi_naxsi_src_naxsi_net_h
+++ /dev/null
@@ -1,15 +0,0 @@
-already committed upstream
-https://github.com/nbs-system/naxsi/commit/0395b102b7e9b5165e89e99bb62e9ddaa0a74910
-
-Index: naxsi/naxsi_src/naxsi_net.h
---- naxsi/naxsi_src/naxsi_net.h.orig
-+++ naxsi/naxsi_src/naxsi_net.h
-@@ -7,7 +7,7 @@
- #ifndef __NAXSI_NET_H__
- #define __NAXSI_NET_H__
- 
--#if defined(__FreeBSD__)
-+#if defined(__FreeBSD__) || defined(__OpenBSD__)
- #include <netinet/in.h>
- #include <sys/socket.h>
- #include <sys/types.h>

Reply via email to