Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/nginx-njs: new package
@ 2023-01-05 13:37 Martin Hundebøll
  2023-07-30 22:08 ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 2+ messages in thread
From: Martin Hundebøll @ 2023-01-05 13:37 UTC (permalink / raw)
  To: buildroot; +Cc: Martin Hundebøll

A module for extending the nginx server configuration with javascript
modules.

Signed-off-by: Martin Hundebøll <martin@geanix.com>
---
 package/Config.in                |  1 +
 package/nginx-njs/Config.in      | 11 +++++++++++
 package/nginx-njs/nginx-njs.hash |  3 +++
 package/nginx-njs/nginx-njs.mk   | 13 +++++++++++++
 package/nginx/nginx.mk           |  5 +++++
 5 files changed, 33 insertions(+)
 create mode 100644 package/nginx-njs/Config.in
 create mode 100644 package/nginx-njs/nginx-njs.hash
 create mode 100644 package/nginx-njs/nginx-njs.mk

diff --git a/package/Config.in b/package/Config.in
index 995dae2c57..57714a2210 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2370,6 +2370,7 @@ menu "External nginx modules"
 	source "package/nginx-dav-ext/Config.in"
 	source "package/nginx-modsecurity/Config.in"
 	source "package/nginx-naxsi/Config.in"
+	source "package/nginx-njs/Config.in"
 	source "package/nginx-upload/Config.in"
 endmenu
 endif
diff --git a/package/nginx-njs/Config.in b/package/nginx-njs/Config.in
new file mode 100644
index 0000000000..f19f209481
--- /dev/null
+++ b/package/nginx-njs/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_NGINX_NJS
+	bool "nginx-njs"
+	depends on BR2_PACKAGE_NGINX_HTTP
+	select BR2_PACKAGE_OPENSSL
+	help
+	  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.
+
+	  https://github.com/nginx/njs
diff --git a/package/nginx-njs/nginx-njs.hash b/package/nginx-njs/nginx-njs.hash
new file mode 100644
index 0000000000..d4015350a1
--- /dev/null
+++ b/package/nginx-njs/nginx-njs.hash
@@ -0,0 +1,3 @@
+# Locally Computed:
+sha256  92cc425d0b0952bb7e2e7a396cba58feb4a90fb3cb63441c201ab4d3e0cd6403  nginx-njs-0.7.9.tar.gz
+sha256  ff5c343bf6ef4447e4c9900640c7e4a0a286243375eca11c611316ff3f263559  LICENSE
diff --git a/package/nginx-njs/nginx-njs.mk b/package/nginx-njs/nginx-njs.mk
new file mode 100644
index 0000000000..62f1c13aed
--- /dev/null
+++ b/package/nginx-njs/nginx-njs.mk
@@ -0,0 +1,13 @@
+################################################################################
+#
+# nginx-njs
+#
+################################################################################
+
+NGINX_NJS_VERSION = 0.7.9
+NGINX_NJS_SITE = $(call github,nginx,njs,$(NGINX_NJS_VERSION))
+NGINX_NJS_LICENSE = BSD-2-Clause
+NGINX_NJS_LICENSE_FILES = LICENSE
+NGINX_NJS_DEPENDENCIES = openssl
+
+$(eval $(generic-package))
diff --git a/package/nginx/nginx.mk b/package/nginx/nginx.mk
index 62ea379ffc..cb0c079712 100644
--- a/package/nginx/nginx.mk
+++ b/package/nginx/nginx.mk
@@ -290,6 +290,11 @@ NGINX_DEPENDENCIES += nginx-modsecurity
 NGINX_CONF_OPTS += --add-module=$(NGINX_MODSECURITY_DIR)
 endif
 
+ifeq ($(BR2_PACKAGE_NGINX_NJS),y)
+NGINX_CONF_OPTS += $(addprefix --add-module=,$(NGINX_NJS_DIR)/nginx)
+NGINX_DEPENDENCIES += nginx-njs
+endif
+
 # Debug logging
 NGINX_CONF_OPTS += $(if $(BR2_PACKAGE_NGINX_DEBUG),--with-debug)
 
-- 
2.39.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Buildroot] [PATCH] package/nginx-njs: new package
  2023-01-05 13:37 [Buildroot] [PATCH] package/nginx-njs: new package Martin Hundebøll
@ 2023-07-30 22:08 ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-07-30 22:08 UTC (permalink / raw)
  To: Martin Hundebøll; +Cc: buildroot

Hello Martin,

On Thu,  5 Jan 2023 14:37:38 +0100
Martin Hundebøll <martin@geanix.com> wrote:

> A module for extending the nginx server configuration with javascript
> modules.
> 
> Signed-off-by: Martin Hundebøll <martin@geanix.com>

Yeah, it's been more than 6 months, but believe it not, I finally took
the time to look at your patch, and I was about to push it, but it
doesn't build. I also have a few comments, see below.

First of all, you forgot to add an entry in the DEVELOPERS file.

> diff --git a/package/nginx/nginx.mk b/package/nginx/nginx.mk
> index 62ea379ffc..cb0c079712 100644
> --- a/package/nginx/nginx.mk
> +++ b/package/nginx/nginx.mk
> @@ -290,6 +290,11 @@ NGINX_DEPENDENCIES += nginx-modsecurity
>  NGINX_CONF_OPTS += --add-module=$(NGINX_MODSECURITY_DIR)
>  endif
>  
> +ifeq ($(BR2_PACKAGE_NGINX_NJS),y)
> +NGINX_CONF_OPTS += $(addprefix --add-module=,$(NGINX_NJS_DIR)/nginx)

Why do you need this $(addprefix ...) dance ? Why don't you do it like
the other nginx external modules in nginx.mk?

> +NGINX_DEPENDENCIES += nginx-njs

Also, please put NGINX_DEPENDENCIES += nginx-njs before the
NGINX_CONF_OPTS += line, just to be consistent with the other nginx
external modules in nginx.mk.

I had fixed these minor details locally, but unfortunately it fails to
build here:

BR2_arm=y
BR2_cortex_a9=y
BR2_ARM_ENABLE_VFP=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_NGINX=y
BR2_PACKAGE_NGINX_NJS=y
# BR2_TARGET_ROOTFS_TAR is not set

exhibits:

configuring for Linux 6.2.9-300.fc38.x86_64 x86_64
checking for C compiler: /home/thomas/projets/buildroot/output/host/bin/arm-linux-gcc
 + using GNU C compiler
 + gcc version 12.2.0 (Buildroot 2021.11-4428-g6b6741b) 
checking for sizeof(int) ... not found
checking for sizeof(u_int) ... not found
checking for sizeof(void *) ... not found
checking for sizeof(uintptr_t) ... not found
checking for sizeof(size_t) ... not found
checking for sizeof(off_t) ... not found
checking for sizeof(time_t) ... not found
checking for system byte ordering ... not found

./configure: error: cannot detect system byte ordering

make[2]: *** [objs/Makefile:1260: /home/thomas/projets/buildroot/output/build/nginx-njs-0.7.9/nginx/../build/libnjs.a] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/thomas/projets/buildroot/output/build/nginx-1.24.0'
make[1]: *** [Makefile:10: build] Error 2
make[1]: Leaving directory '/home/thomas/projets/buildroot/output/build/nginx-1.24.0'
make: *** [package/pkg-generic.mk:293: /home/thomas/projets/buildroot/output/build/nginx-1.24.0/.stamp_built] Error 2

Could you have a look into this, and send a v2 of this patch?


-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-07-30 22:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-05 13:37 [Buildroot] [PATCH] package/nginx-njs: new package Martin Hundebøll
2023-07-30 22:08 ` Thomas Petazzoni via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox