BSD Ports

www/nginx-module-njs 1.0.2 FreeBSD

Sources of the njs (JavaScript) module for the NGINX ports

System
FreeBSD
Repository
FreeBSD ports
Maintainer
[email protected]
Port added
Last update
Commit
688221f7ff
License
BSD2CLAUSE
Categories
www
Package size
538.7 KiB, 4877.6 KiB installed

Description

Njs is an nginx module that extends the server's functionality through JavaScript scripting, enabling the creation of custom server-side logic.

Use cases:

  • Complex access control and security checks in njs before a request reaches an upstream server
  • Manipulating response headers
  • Writing flexible asynchronous content handlers and filters

This port only installs the module sources. The module itself is built by the nginx ports when their NJS option is enabled.

In the other systems

SystemPortVersion
FreeBSDwww/nginx-module-njs1.0.2
HardenedBSDwww/nginx-module-njs1.0.1_1
GhostBSDwww/nginx-module-njs1.0.1_1

Install

Binary package:

pkg install nginx-module-njs

From the ports tree:

cd /usr/ports/www/nginx-module-njs/ && make install clean

To depend on this port in another port's Makefile:

RUN_DEPENDS=	nginx-module-njs>0:www/nginx-module-njs

Packages

The version each package repository carries. “-” means the repository builds no package of it, “n/a” that there is no such repository.

Repositoryaarch64amd64armv6armv7i386
FreeBSD:14:latest1.0.1_11.0.2--1.0.2
FreeBSD:14:quarterly1.0.1_11.0.1_1n/a-1.0.1_1
FreeBSD:15:latest1.0.21.0.2n/a--
FreeBSD:15:quarterly1.0.1_11.0.1_1n/an/an/a
FreeBSD:16:latest1.0.1_11.0.2n/an/an/a
FreeBSD:16:quarterlyn/an/an/an/an/a

Dependencies

The Makefile names none itself; they come from USES and USE_*.

The full lists below include those, and their dependencies in turn.

Required by 1

Configuration

No options to configure.

USES
cpe
Service scripts
none

Message after installing

This package contains the sources of the njs module only.  It does not
install a loadable module, and installing it alongside nginx does not
add JavaScript support to a running server.

The module itself is built by the nginx ports.  To use njs, build
www/nginx, www/nginx-devel or www/freenginx with the NJS option enabled.
Those ports pick the sources up from
/usr/local/share/nginx/modules/nginx-module-njs and produce
ngx_http_js_module.so and ngx_stream_js_module.so.

Files

pkg-plist 218
  • share/nginx/modules/nginx-module-njs/LICENSE
  • share/nginx/modules/nginx-module-njs/auto/cc
  • share/nginx/modules/nginx-module-njs/auto/clang
  • share/nginx/modules/nginx-module-njs/auto/computed_goto
  • share/nginx/modules/nginx-module-njs/auto/define
  • share/nginx/modules/nginx-module-njs/auto/deps
  • share/nginx/modules/nginx-module-njs/auto/endianness
  • share/nginx/modules/nginx-module-njs/auto/expect
  • share/nginx/modules/nginx-module-njs/auto/explicit_bzero
  • share/nginx/modules/nginx-module-njs/auto/feature
  • share/nginx/modules/nginx-module-njs/auto/getrandom
  • share/nginx/modules/nginx-module-njs/auto/help
  • share/nginx/modules/nginx-module-njs/auto/init
  • share/nginx/modules/nginx-module-njs/auto/libbfd
  • share/nginx/modules/nginx-module-njs/auto/libxml2
  • share/nginx/modules/nginx-module-njs/auto/link
  • share/nginx/modules/nginx-module-njs/auto/make
  • share/nginx/modules/nginx-module-njs/auto/memalign
  • share/nginx/modules/nginx-module-njs/auto/module
  • share/nginx/modules/nginx-module-njs/auto/modules
  • share/nginx/modules/nginx-module-njs/auto/openssl
  • share/nginx/modules/nginx-module-njs/auto/options
  • share/nginx/modules/nginx-module-njs/auto/os
  • share/nginx/modules/nginx-module-njs/auto/pcre
  • share/nginx/modules/nginx-module-njs/auto/qjs_module
  • share/nginx/modules/nginx-module-njs/auto/qjs_modules
  • share/nginx/modules/nginx-module-njs/auto/quickjs
  • share/nginx/modules/nginx-module-njs/auto/readline
  • share/nginx/modules/nginx-module-njs/auto/sources
  • share/nginx/modules/nginx-module-njs/auto/stat
  • share/nginx/modules/nginx-module-njs/auto/summary
  • share/nginx/modules/nginx-module-njs/auto/time
  • share/nginx/modules/nginx-module-njs/auto/types
  • share/nginx/modules/nginx-module-njs/auto/zlib
  • share/nginx/modules/nginx-module-njs/configure
  • share/nginx/modules/nginx-module-njs/external/njs_crypto_module.c
  • share/nginx/modules/nginx-module-njs/external/njs_fs_module.c
  • share/nginx/modules/nginx-module-njs/external/njs_openssl.h
  • share/nginx/modules/nginx-module-njs/external/njs_query_string_module.c
  • share/nginx/modules/nginx-module-njs/external/njs_regex.c
  • share/nginx/modules/nginx-module-njs/external/njs_shell.c
  • share/nginx/modules/nginx-module-njs/external/njs_webcrypto_module.c
  • share/nginx/modules/nginx-module-njs/external/njs_xml_module.c
  • share/nginx/modules/nginx-module-njs/external/njs_zlib_module.c
  • share/nginx/modules/nginx-module-njs/external/qjs_crypto_module.c
  • share/nginx/modules/nginx-module-njs/external/qjs_fs_module.c
  • share/nginx/modules/nginx-module-njs/external/qjs_query_string_module.c
  • share/nginx/modules/nginx-module-njs/external/qjs_webcrypto_module.c
  • share/nginx/modules/nginx-module-njs/external/qjs_xml_module.c
  • share/nginx/modules/nginx-module-njs/external/qjs_zlib_module.c
  • share/nginx/modules/nginx-module-njs/nginx/config
  • share/nginx/modules/nginx-module-njs/nginx/config.make
  • share/nginx/modules/nginx-module-njs/nginx/ngx_http_js_module.c
  • share/nginx/modules/nginx-module-njs/nginx/ngx_js.c
  • share/nginx/modules/nginx-module-njs/nginx/ngx_js.h
  • share/nginx/modules/nginx-module-njs/nginx/ngx_js_fetch.c
  • share/nginx/modules/nginx-module-njs/nginx/ngx_js_fetch.h
  • share/nginx/modules/nginx-module-njs/nginx/ngx_js_form.c
  • share/nginx/modules/nginx-module-njs/nginx/ngx_js_form.h
  • share/nginx/modules/nginx-module-njs/nginx/ngx_js_http.c
  • share/nginx/modules/nginx-module-njs/nginx/ngx_js_http.h
  • share/nginx/modules/nginx-module-njs/nginx/ngx_js_modules.h
  • share/nginx/modules/nginx-module-njs/nginx/ngx_js_regex.c
  • share/nginx/modules/nginx-module-njs/nginx/ngx_js_shared_dict.c
  • share/nginx/modules/nginx-module-njs/nginx/ngx_js_shared_dict.h
  • share/nginx/modules/nginx-module-njs/nginx/ngx_qjs_fetch.c
  • share/nginx/modules/nginx-module-njs/nginx/ngx_stream_js_module.c
  • share/nginx/modules/nginx-module-njs/src/njs.h
  • share/nginx/modules/nginx-module-njs/src/njs.pc.in
  • share/nginx/modules/nginx-module-njs/src/njs_addr2line.c
  • share/nginx/modules/nginx-module-njs/src/njs_addr2line.h
  • share/nginx/modules/nginx-module-njs/src/njs_arr.c
  • share/nginx/modules/nginx-module-njs/src/njs_arr.h
  • share/nginx/modules/nginx-module-njs/src/njs_array.c
  • share/nginx/modules/nginx-module-njs/src/njs_array.h
  • share/nginx/modules/nginx-module-njs/src/njs_array_buffer.c
  • share/nginx/modules/nginx-module-njs/src/njs_array_buffer.h
  • share/nginx/modules/nginx-module-njs/src/njs_assert.h
  • share/nginx/modules/nginx-module-njs/src/njs_async.c
  • share/nginx/modules/nginx-module-njs/src/njs_async.h
  • share/nginx/modules/nginx-module-njs/src/njs_atom.c
  • share/nginx/modules/nginx-module-njs/src/njs_atom.h
  • share/nginx/modules/nginx-module-njs/src/njs_atom_defs.h
  • share/nginx/modules/nginx-module-njs/src/njs_boolean.c
  • share/nginx/modules/nginx-module-njs/src/njs_boolean.h
  • share/nginx/modules/nginx-module-njs/src/njs_buffer.c
  • share/nginx/modules/nginx-module-njs/src/njs_buffer.h
  • share/nginx/modules/nginx-module-njs/src/njs_builtin.c
  • share/nginx/modules/nginx-module-njs/src/njs_chb.c
  • share/nginx/modules/nginx-module-njs/src/njs_chb.h
  • share/nginx/modules/nginx-module-njs/src/njs_clang.h
  • share/nginx/modules/nginx-module-njs/src/njs_cutils.h
  • share/nginx/modules/nginx-module-njs/src/njs_date.c
  • share/nginx/modules/nginx-module-njs/src/njs_date.h
  • share/nginx/modules/nginx-module-njs/src/njs_disassembler.c
  • share/nginx/modules/nginx-module-njs/src/njs_djb_hash.c
  • share/nginx/modules/nginx-module-njs/src/njs_djb_hash.h
  • share/nginx/modules/nginx-module-njs/src/njs_dtoa.c
  • share/nginx/modules/nginx-module-njs/src/njs_dtoa.h
  • share/nginx/modules/nginx-module-njs/src/njs_encoding.c

The first 100 are listed.

distinfo 1
FileSizeSHA256
nginx-njs-1.0.2_GH0.tar.gz1.071822e+0684a114499fa6878d3ec52b99c1cf2874a91eb0d915408f418a2b1279519f09ae

Commit history 4

DateCommitCreditsLog message
688221f7ff Jochen Neumeister www/nginx-module-njs: Update to 1.0.2
Fixes memory corruption in RegExp operations, crashes after a failed module compilation, and excessive resource usage when sorting huge sparse arrays. Both local patches are gone: njs 1.0.2 carries the indexed fast path fix for exotic objects itself. Sponsored by: Netzkommune GmbH
088e1f2952 Jochen Neumeister www/nginx-module-njs: Fix indexed fast paths for exotic objects
Object.values() and Object.entries() erased the concrete type of an exotic receiver, so typed arrays could be treated as njs_array_t and cause invalid memory reads and writes. Taken from upstream commit bb6f23cc, which is not in a release yet. Sponsored by: Netzkommune GmbH
537d2024be Jochen Neumeister www/nginx-module-njs: Update to 1.0.1
This release contains security fixes: an access control bypass in js_access when an asynchronous request body continuation threw an exception, a worker process crash when reading Response.statusText, a heap buffer overflow in XML exclusive canonicalization and a stack buffer overflow when exporting large RSA keys to JWK in WebCrypto. Upstream has not assigned CVE numbers. Changes: https://nginx.org/en/docs/njs/changes.html Sponsored by: Netzkommune GmbH
445c06f832 Jochen Neumeister www/nginx-module-njs: Add New Port
Njs is an nginx module that extends the server's functionality through JavaScript scripting. This port installs the module sources only, the module itself is built by the nginx ports. Differential Revision: https://reviews.freebsd.org/D59121 Sponsored by: Netzkommune GmbH