git: a9108d8c085c - main - */*: add new port NGINX JavaScript (njs) command line utility

From: Sergey A. Osokin <osa_at_FreeBSD.org>
Date: Fri, 11 Mar 2022 21:24:36 UTC
The branch main has been updated by osa:

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

commit a9108d8c085c83e3158abb661908d343b0eb5d9c
Author:     Sergey A. Osokin <osa@FreeBSD.org>
AuthorDate: 2022-03-11 21:21:24 +0000
Commit:     Sergey A. Osokin <osa@FreeBSD.org>
CommitDate: 2022-03-11 21:24:27 +0000

    */*: add new port NGINX JavaScript (njs) command line utility
    
    NGINX JavaScript, also knows as njs, is a subset of the JavaScript
    language that allows extending nginx functionality.  njs is created
    in compliance with ECMAScript 5.1 (strict mode) with some ECMAScript 6
    and later extensions.  It's easy to use njs command line utility to
    develop and debug additional functionality.  Also, it's light-weight
    and very useful as a shebang in some cases as the nodejs substitutor.
    
    Remove build of njs command-line utlity from the www/nginx-devel (*)
    process.
    
    Bump PORTREVISION. (*)
---
 lang/Makefile             |  1 +
 lang/njs/Makefile         | 49 +++++++++++++++++++++++++++++++++++++++++++++++
 lang/njs/distinfo         |  3 +++
 lang/njs/pkg-descr        |  6 ++++++
 www/nginx-devel/Makefile  |  9 ++-------
 www/nginx-devel/pkg-plist |  1 -
 6 files changed, 61 insertions(+), 8 deletions(-)

diff --git a/lang/Makefile b/lang/Makefile
index 82d6c5f1464c..d342c4d55418 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -198,6 +198,7 @@
     SUBDIR += nhc98
     SUBDIR += nickle
     SUBDIR += nim
+    SUBDIR += njs
     SUBDIR += nqc
     SUBDIR += nwcc
     SUBDIR += nx
diff --git a/lang/njs/Makefile b/lang/njs/Makefile
new file mode 100644
index 000000000000..5f9c3a1a63e4
--- /dev/null
+++ b/lang/njs/Makefile
@@ -0,0 +1,49 @@
+# Created by: Sergey A. Osokin <osa@FreeBSD.org>
+
+PORTNAME=	njs
+DISTVERSION=	0.7.2
+CATEGORIES=	lang www
+#DISTFILES=	${DISTNAME}${EXTRACT_SUFX}
+
+MAINTAINER=	osa@FreeBSD.org
+COMMENT=	NGINX JavaScript command line utility
+
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cpe
+
+CONFLICTS_INSTALL=	www/nginx
+
+CPE_VENDOR=	f5
+CPE_PRODUCT=	njs
+
+USE_GITHUB=	yes
+GH_TUPLE=	nginx:njs:0.7.2
+HAS_CONFIGURE=	yes
+
+OPTIONS_DEFINE=		SSL
+OPTIONS_RADIO+=		PCRE
+OPTIONS_RADIO_PCRE=	NOPCRE PCRE_ONE PCRE_TWO
+NOPCRE_CONFIGURE_ON=	--no-pcre
+PCRE_ONE_LIB_DEPENDS=	libpcre.so:devel/pcre
+PCRE_ONE_CONFIGURE_ON=	--no-pcre2
+PCRE_TWO_LIB_DEPENDS=	libpcre2-8.so:devel/pcre2
+OPTIONS_DEFAULT=	PCRE_ONE SSL
+SSL_CONFIGURE_OFF=	--no-openssl
+SSL_USES=		ssl
+
+NOPCRE_DESC=		Disable PCRE support
+PCRE_ONE_DESC=		Enable PCRE1 support
+PCRE_TWO_DESC=		Enable PCRE2 support
+SSL_DESC=		Enable OpenSSL support
+
+PLIST_FILES=	bin/njs
+
+do-build:
+	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} njs
+
+do-install:
+	${INSTALL_PROGRAM} ${WRKSRC}/build/njs ${STAGEDIR}${PREFIX}/bin
+
+.include <bsd.port.mk>
diff --git a/lang/njs/distinfo b/lang/njs/distinfo
new file mode 100644
index 000000000000..f784df6b1edb
--- /dev/null
+++ b/lang/njs/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1647025367
+SHA256 (nginx-njs-0.7.2_GH0.tar.gz) = a1481be96989842ed05d06eab4ae4e79790c552196e5624dd38d42bc2d275829
+SIZE (nginx-njs-0.7.2_GH0.tar.gz) = 584483
diff --git a/lang/njs/pkg-descr b/lang/njs/pkg-descr
new file mode 100644
index 000000000000..24fb6fab09a0
--- /dev/null
+++ b/lang/njs/pkg-descr
@@ -0,0 +1,6 @@
+njs scripting language, or just njs, is a subset of the JavaScript language
+that allows extending nginx functionality.  njs is created in compliance
+with ECMAScript 5.1 (strict mode) with some ECMAScript 6 and later
+extensions.  The compliance is still evolving.
+
+WWW: https://nginx.org/en/docs/njs/
diff --git a/www/nginx-devel/Makefile b/www/nginx-devel/Makefile
index d668a3da51bf..261d2812f327 100644
--- a/www/nginx-devel/Makefile
+++ b/www/nginx-devel/Makefile
@@ -2,7 +2,7 @@
 
 PORTNAME?=	nginx
 PORTVERSION=	1.21.6
-PORTREVISION=	6
+PORTREVISION=	7
 CATEGORIES=	www
 MASTER_SITES=	https://nginx.org/download/ \
 		LOCAL/osa
@@ -325,9 +325,7 @@ pre-configure-SMALL_LIGHT-on:
 	( cd ${WRKSRC_small_light} && ./setup )
 
 do-configure-NJS-on:
-	( cd ${WRKSRC_njs} && ${SETENV} ${CONFIGURE_ENV} ${CONFIGURE_CMD} ${NJS_CONFIGURE_ARGS} \
-		&& ${SETENV} ${MAKE_ENV} ${MAKE_CMD} njs \
-		&& ${MV} build/njs ${WRKSRC_njs} )
+	( cd ${WRKSRC_njs} && ${SETENV} ${CONFIGURE_ENV} ${CONFIGURE_CMD} ${NJS_CONFIGURE_ARGS} )
 
 .if !target(do-install)
 do-install:
@@ -362,9 +360,6 @@ do-install-NAXSI-on:
 	${INSTALL_DATA} \
 	${WRKDIR}/naxsi-${NAXSI_NGINX_VER}/naxsi_config/naxsi_core.rules \
 	${STAGEDIR}${ETCDIR}
-
-do-install-NJS-on:
-	${INSTALL_PROGRAM} ${WRKSRC_njs}/njs ${STAGEDIR}${PREFIX}/sbin
 .endif
 
 .if !target(post-install)
diff --git a/www/nginx-devel/pkg-plist b/www/nginx-devel/pkg-plist
index a43460352509..21af73d2e6d3 100644
--- a/www/nginx-devel/pkg-plist
+++ b/www/nginx-devel/pkg-plist
@@ -87,7 +87,6 @@
 %%DSO%%%%XSS%%libexec/nginx/ngx_http_xss_filter_module.so
 %%HTTP_PERL%%%%SITE_ARCH%%/auto/nginx/nginx.so
 %%HTTP_PERL%%%%SITE_ARCH%%/nginx.pm
-%%NJS%%sbin/njs
 sbin/nginx
 share/vim/vimfiles/ftdetect/nginx.vim
 share/vim/vimfiles/ftplugin/nginx.vim