git: d9836accc3f1 - main - */*: update NGINX JavaScript: 0.8.4 -> 0.8.5 (+)

From: Sergey A. Osokin <osa_at_FreeBSD.org>
Date: Wed, 26 Jun 2024 22:15:52 UTC
The branch main has been updated by osa:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d9836accc3f15bc168b128007680e930013b2ebb

commit d9836accc3f15bc168b128007680e930013b2ebb
Author:     Sergey A. Osokin <osa@FreeBSD.org>
AuthorDate: 2024-06-26 22:15:11 +0000
Commit:     Sergey A. Osokin <osa@FreeBSD.org>
CommitDate: 2024-06-26 22:15:46 +0000

    */*: update NGINX JavaScript: 0.8.4 -> 0.8.5 (+)
    
    <ChangeLog>
    
    *) Change: r.variables.var, r.requestText, r.responseText,
       s.variables.var, and the "data" argument of the s.on() callback
       with "upload" or "download" event types will now convert bytes
       invalid in UTF-8 encoding into the replacement character.  When
       working with binary data, use r.rawVariables.var, r.requestBuffer,
       r.responseBuffer, s.rawVariables.var, and the "upstream" or
       "downstream" event type for s.on() instead.
    
    *) Feature: added timeout argument for shared dictionary methods
       add(), set() and incr().
    
    *) Bugfix: fixed checking for duplicate js_set variables.
    
    *) Bugfix: fixed request Host header when the port is non-standard.
    
    *) Bugfix: fixed handling of a zero-length request body in ngx.fetch()
       and r.subrequest().
    
    *) Bugfix: fixed heap-buffer-overflow in Headers.get().
    
    *) Bugfix: fixed r.subrequest() error handling.
    
    Core:
    
    *) Feature: added zlib module for QuickJS engine.
    
    *) Bugfix: fixed zlib.inflate().
    
    *) Bugfix: fixed String.prototype.replaceAll() with zero-length
       argument.
    
    *) Bugfix: fixed retval handling after an exception in
       Array.prototype.toSpliced(), Array.prototype.toReversed(),
       Array.prototype.toSorted().
    
    *) Bugfix: fixed RegExp.prototype[@@replace]() with replacements
       containing "$'", "$\`" and strings with Unicode characters.
    
    *) Bugfix: fixed a one-byte overread in decodeURI() and
       decodeURIComponent().
    
    *) Bugfix: fixed tracking of argument scope.
    
    *) Bugfix: fixed integer overflow in Date.parse().
    
    </ChangeLog>
---
 devel/libnjs/Makefile                    |  2 +-
 devel/libnjs/distinfo                    |  6 +--
 devel/libnjs/pkg-plist                   |  1 +
 lang/njs/Makefile                        |  2 +-
 lang/njs/distinfo                        |  6 +--
 www/nginx-devel/Makefile                 |  2 +-
 www/nginx-devel/Makefile.extmod          |  2 +-
 www/nginx-devel/distinfo                 |  6 +--
 www/unit/Makefile                        |  1 +
 www/unit/files/patch-src_nxt__http__js.c | 74 ++++++++++++++++++++++++++++++++
 10 files changed, 89 insertions(+), 13 deletions(-)

diff --git a/devel/libnjs/Makefile b/devel/libnjs/Makefile
index c752df218439..34ee03d169c7 100644
--- a/devel/libnjs/Makefile
+++ b/devel/libnjs/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	libnjs
-DISTVERSION=	0.8.4
+DISTVERSION=	0.8.5
 CATEGORIES=	devel www
 
 MAINTAINER=	osa@FreeBSD.org
diff --git a/devel/libnjs/distinfo b/devel/libnjs/distinfo
index ca77e8486214..82049675798b 100644
--- a/devel/libnjs/distinfo
+++ b/devel/libnjs/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1714506471
-SHA256 (nginx-njs-0.8.4_GH0.tar.gz) = fe197e254204c15e9f1df0acf375add57be3416901ec8d7b87319dccb490f90d
-SIZE (nginx-njs-0.8.4_GH0.tar.gz) = 743910
+TIMESTAMP = 1719407439
+SHA256 (nginx-njs-0.8.5_GH0.tar.gz) = b5e38e1424d84e48c6ca1592a336bf1d110b8f27ff1d5ef492c6d312ea003491
+SIZE (nginx-njs-0.8.5_GH0.tar.gz) = 844437
diff --git a/devel/libnjs/pkg-plist b/devel/libnjs/pkg-plist
index ba1d109eb539..5577cf01a55c 100644
--- a/devel/libnjs/pkg-plist
+++ b/devel/libnjs/pkg-plist
@@ -65,5 +65,6 @@ include/njs_variable.h
 include/njs_vm.h
 include/njs_vmcode.h
 include/njs.h
+include/qjs.h
 lib/libnjs.a
 libdata/pkgconfig/njs.pc
diff --git a/lang/njs/Makefile b/lang/njs/Makefile
index 562c6733bb58..4349fa78f77f 100644
--- a/lang/njs/Makefile
+++ b/lang/njs/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	njs
-DISTVERSION=	0.8.4
+DISTVERSION=	0.8.5
 CATEGORIES=	lang www
 
 MAINTAINER=	osa@FreeBSD.org
diff --git a/lang/njs/distinfo b/lang/njs/distinfo
index d04f8a50c60a..50be90354920 100644
--- a/lang/njs/distinfo
+++ b/lang/njs/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1714506455
-SHA256 (nginx-njs-0.8.4_GH0.tar.gz) = fe197e254204c15e9f1df0acf375add57be3416901ec8d7b87319dccb490f90d
-SIZE (nginx-njs-0.8.4_GH0.tar.gz) = 743910
+TIMESTAMP = 1719407454
+SHA256 (nginx-njs-0.8.5_GH0.tar.gz) = b5e38e1424d84e48c6ca1592a336bf1d110b8f27ff1d5ef492c6d312ea003491
+SIZE (nginx-njs-0.8.5_GH0.tar.gz) = 844437
diff --git a/www/nginx-devel/Makefile b/www/nginx-devel/Makefile
index 27f1376a5f8c..1822f967f882 100644
--- a/www/nginx-devel/Makefile
+++ b/www/nginx-devel/Makefile
@@ -1,6 +1,6 @@
 PORTNAME?=	nginx
 PORTVERSION=	1.27.0
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	www
 MASTER_SITES=	https://nginx.org/download/ \
 		LOCAL/osa
diff --git a/www/nginx-devel/Makefile.extmod b/www/nginx-devel/Makefile.extmod
index 5ef8e27b7226..451c958e3d9f 100644
--- a/www/nginx-devel/Makefile.extmod
+++ b/www/nginx-devel/Makefile.extmod
@@ -240,7 +240,7 @@ NAXSI_VARS=		DSO_EXTMODS+=naxsi NAXSI_SUBDIR=/naxsi_src
 NAXSI_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-naxsi-libinjection__sqli_c \
 			${PATCHDIR}/extra-patch-naxsi_config
 
-NJS_GH_TUPLE=		nginx:njs:0.8.4:njs
+NJS_GH_TUPLE=		nginx:njs:0.8.5:njs
 NJS_VARS=		DSO_EXTMODS+=njs NJS_SUBDIR=/nginx
 NJS_IMPLIES=		STREAM
 
diff --git a/www/nginx-devel/distinfo b/www/nginx-devel/distinfo
index 22d0efb12ace..f161c9e309ea 100644
--- a/www/nginx-devel/distinfo
+++ b/www/nginx-devel/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1717437122
+TIMESTAMP = 1719407613
 SHA256 (nginx-1.27.0.tar.gz) = b7230e3cf87eaa2d4b0bc56aadc920a960c7873b9991a1b66ffcc08fc650129c
 SIZE (nginx-1.27.0.tar.gz) = 1244887
 SHA256 (nginx_mogilefs_module-1.0.4.tar.gz) = 7ac230d30907f013dff8d435a118619ea6168aa3714dba62c6962d350c6295ae
@@ -105,8 +105,8 @@ SHA256 (wargio-naxsi-1.6_GH0.tar.gz) = e5920fdd09cae155b89eb21a94a21c029ebfdb056
 SIZE (wargio-naxsi-1.6_GH0.tar.gz) = 1116227
 SHA256 (libinjection-libinjection-4aa3894_GH0.tar.gz) = ededea133e89e238ef2e60d0d62ef7ef9e741449eed8c5d856007132505bcd5b
 SIZE (libinjection-libinjection-4aa3894_GH0.tar.gz) = 2218294
-SHA256 (nginx-njs-0.8.4_GH0.tar.gz) = fe197e254204c15e9f1df0acf375add57be3416901ec8d7b87319dccb490f90d
-SIZE (nginx-njs-0.8.4_GH0.tar.gz) = 743910
+SHA256 (nginx-njs-0.8.5_GH0.tar.gz) = b5e38e1424d84e48c6ca1592a336bf1d110b8f27ff1d5ef492c6d312ea003491
+SIZE (nginx-njs-0.8.5_GH0.tar.gz) = 844437
 SHA256 (osokin-nginx-otel-8f0857d_GH0.tar.gz) = bbf93813928460bdaf78f752f74ecc6c34d13078e97fdffcaa29dbd8689314fc
 SIZE (osokin-nginx-otel-8f0857d_GH0.tar.gz) = 30197
 SHA256 (konstruxi-ngx_postgres-8aa7359_GH0.tar.gz) = c69ad4495de7c7883ebc23e1e6c4cc83a4ac6a7fddd4d5c12e49d33b65f7c50b
diff --git a/www/unit/Makefile b/www/unit/Makefile
index 39d154976c3e..43a4c7744739 100644
--- a/www/unit/Makefile
+++ b/www/unit/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	unit
 PORTVERSION=	${UNIT_VERSION}
+PORTREVISION=	1
 CATEGORIES=	www
 MASTER_SITES?=	https://unit.nginx.org/download/
 
diff --git a/www/unit/files/patch-src_nxt__http__js.c b/www/unit/files/patch-src_nxt__http__js.c
new file mode 100644
index 000000000000..51c291304599
--- /dev/null
+++ b/www/unit/files/patch-src_nxt__http__js.c
@@ -0,0 +1,74 @@
+--- src/nxt_http_js.c.orig	2024-06-26 22:04:35 UTC
++++ src/nxt_http_js.c
+@@ -120,7 +120,7 @@ nxt_http_js_ext_uri(njs_vm_t *vm, njs_object_prop_t *p
+         return NJS_DECLINED;
+     }
+ 
+-    return njs_vm_value_string_set(vm, retval, r->path->start, r->path->length);
++    return njs_vm_value_string_create(vm, retval, r->path->start, r->path->length);
+ }
+ 
+ 
+@@ -136,7 +136,7 @@ nxt_http_js_ext_host(njs_vm_t *vm, njs_object_prop_t *
+         return NJS_DECLINED;
+     }
+ 
+-    return njs_vm_value_string_set(vm, retval, r->host.start, r->host.length);
++    return njs_vm_value_string_create(vm, retval, r->host.start, r->host.length);
+ }
+ 
+ 
+@@ -152,7 +152,7 @@ nxt_http_js_ext_remote_addr(njs_vm_t *vm, njs_object_p
+         return NJS_DECLINED;
+     }
+ 
+-    return njs_vm_value_string_set(vm, retval,
++    return njs_vm_value_string_create(vm, retval,
+                                    nxt_sockaddr_address(r->remote),
+                                    r->remote->address_length);
+ }
+@@ -214,7 +214,7 @@ nxt_http_js_ext_get_header(njs_vm_t *vm, njs_object_pr
+         if (key.length == f->name_length
+             && memcmp(key.start, f->name, f->name_length) == 0)
+         {
+-            return njs_vm_value_string_set(vm, retval, f->value,
++            return njs_vm_value_string_create(vm, retval, f->value,
+                                            f->value_length);
+         }
+ 
+@@ -250,7 +250,7 @@ nxt_http_js_ext_keys_header(njs_vm_t *vm, njs_value_t 
+             return NJS_ERROR;
+         }
+ 
+-        rc = njs_vm_value_string_set(vm, value, f->name, f->name_length);
++        rc = njs_vm_value_string_create(vm, value, f->name, f->name_length);
+         if (rc != NJS_OK) {
+             return NJS_ERROR;
+         }
+@@ -296,7 +296,7 @@ nxt_http_js_ext_get_cookie(njs_vm_t *vm, njs_object_pr
+         if (key.length == nv->name_length
+             && memcmp(key.start, nv->name, nv->name_length) == 0)
+         {
+-            return njs_vm_value_string_set(vm, retval, nv->value,
++            return njs_vm_value_string_create(vm, retval, nv->value,
+                                            nv->value_length);
+         }
+     }
+@@ -340,7 +340,7 @@ nxt_http_js_ext_keys_cookie(njs_vm_t *vm, njs_value_t 
+             return NJS_ERROR;
+         }
+ 
+-        rc = njs_vm_value_string_set(vm, value, nv->name, nv->name_length);
++        rc = njs_vm_value_string_create(vm, value, nv->name, nv->name_length);
+         if (rc != NJS_OK) {
+             return NJS_ERROR;
+         }
+@@ -380,7 +380,7 @@ nxt_http_js_ext_get_var(njs_vm_t *vm, njs_object_prop_
+     vv = nxt_var_get(&r->task, rtcf->tstr_state, &r->tstr_cache.var, &name, r);
+ 
+     if (vv != NULL) {
+-        return njs_vm_value_string_set(vm, retval, vv->start, vv->length);
++        return njs_vm_value_string_create(vm, retval, vv->start, vv->length);
+     }
+ 
+     njs_value_undefined_set(retval);