update buildroot to 2017.02.11

This commit is contained in:
jbnadal
2018-05-22 15:35:47 +02:00
parent 4bf1f5e091
commit a3c10bd762
9257 changed files with 433426 additions and 1701 deletions

View File

@@ -0,0 +1,87 @@
From fe05ccf80afe5de33d4f9c5e5545390c450bcd2d Mon Sep 17 00:00:00 2001
From: Samuel Martin <s.martin49@gmail.com>
Date: Thu, 24 Apr 2014 23:27:32 +0200
Subject: [PATCH] auto/type/sizeof: rework autotest to be cross-compilation
friendly
Rework the sizeof test to do the checks at compile time instead of at
runtime. This way, it does not break when cross-compiling for a
different CPU architecture.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Refresh for 1.8.0.
Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
[martin@barkynet.com: Updated for 1.10.0]
Signed-off-by: Martin Bark <martin@barkynet.com>
---
auto/types/sizeof | 42 ++++++++++++++++++++++++++++--------------
1 file changed, 28 insertions(+), 14 deletions(-)
diff --git a/auto/types/sizeof b/auto/types/sizeof
index a5f66bb..c6f31ec 100644
--- a/auto/types/sizeof
+++ b/auto/types/sizeof
@@ -14,7 +14,7 @@ END
ngx_size=
-cat << END > $NGX_AUTOTEST.c
+cat << _EOF > $NGX_AUTOTEST.c
#include <sys/types.h>
#include <sys/time.h>
@@ -25,22 +25,40 @@ $NGX_INCLUDE_UNISTD_H
$NGX_INCLUDE_INTTYPES_H
$NGX_INCLUDE_AUTO_CONFIG_H
-int main() {
- printf("%d", (int) sizeof($ngx_type));
+#if !defined( PASTE)
+#define PASTE2( x, y) x##y
+#define PASTE( x, y) PASTE2( x, y)
+#endif /* PASTE */
+
+#define SAY_IF_SIZEOF( typename, type, size) \\
+ static char PASTE( PASTE( PASTE( sizeof_, typename), _is_), size) \\
+ [(sizeof(type) == (size)) ? 1 : -1]
+
+SAY_IF_SIZEOF(TEST_TYPENAME, TEST_TYPE, TEST_SIZE);
+
+int main(void)
+{
return 0;
}
-END
-
+_EOF
-ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
- -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
+_ngx_typename=`echo "$ngx_type" | sed 's/ /_/g;s/\*/p/'`
+ngx_size="-1"
+ngx_size=`for i in 1 2 4 8 16 ; do \
+ $CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
+ -DTEST_TYPENAME="$_ngx_typename" -DTEST_TYPE="$ngx_type" -DTEST_SIZE="$i" \
+ $NGX_AUTOTEST.c -o $NGX_AUTOTEST \
+ $NGX_LD_OPT $ngx_feature_libs >/dev/null 2>&1 || continue ;\
+ echo $i ; break ; done`
-eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
+rm -rf $NGX_AUTOTEST*
+if test -z $ngx_size ; then
+ ngx_size=-1
+fi
-if [ -x $NGX_AUTOTEST ]; then
- ngx_size=`$NGX_AUTOTEST`
+if [ $ngx_size -gt 0 ]; then
echo " $ngx_size bytes"
fi
--
1.9.1

View File

@@ -0,0 +1,135 @@
From ef72be22ad6d58e230f75553d80b470b80c3303a Mon Sep 17 00:00:00 2001
From: Samuel Martin <s.martin49@gmail.com>
Date: Sun, 4 May 2014 00:40:49 +0200
Subject: [PATCH] auto/feature: add mechanism allowing to force feature run
test result
Whenever a feature needs to run a test, the ngx_feature_run_force_result
variable can be set to the desired test result, and thus skip the test.
Therefore, the generated config.h file will honor these presets.
This mechanism aims to make easier cross-compilation support.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
---
auto/feature | 80 ++++++++++++++++++++++++++++++++++++++++++++----------------
1 file changed, 59 insertions(+), 21 deletions(-)
diff --git a/auto/feature b/auto/feature
index 1145f28..a194b85 100644
--- a/auto/feature
+++ b/auto/feature
@@ -52,50 +52,88 @@ if [ -x $NGX_AUTOTEST ]; then
case "$ngx_feature_run" in
yes)
- # /bin/sh is used to intercept "Killed" or "Abort trap" messages
- if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
- echo " found"
+ if test -n "$ngx_feature_run_force_result" ; then
+ echo " not tested (maybe cross-compiling)"
+ if test -n "$ngx_feature_name" ; then
+ if test "$ngx_feature_run_force_result" = "yes" ; then
+ have=$ngx_have_feature . auto/have
+ fi
+ fi
ngx_found=yes
+ else
- if test -n "$ngx_feature_name"; then
- have=$ngx_have_feature . auto/have
+ # /bin/sh is used to intercept "Killed" or "Abort trap" messages
+ if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
+ echo " found"
+ ngx_found=yes
+
+ if test -n "$ngx_feature_name"; then
+ have=$ngx_have_feature . auto/have
+ fi
+
+ else
+ echo " found but is not working"
fi
- else
- echo " found but is not working"
fi
;;
value)
- # /bin/sh is used to intercept "Killed" or "Abort trap" messages
- if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
- echo " found"
+ if test -n "$ngx_feature_run_force_result" ; then
+ echo " not tested (maybe cross-compiling)"
+ cat << END >> $NGX_AUTO_CONFIG_H
+
+#ifndef $ngx_feature_name
+#define $ngx_feature_name $ngx_feature_run_force_result
+#endif
+
+END
ngx_found=yes
+ else
- cat << END >> $NGX_AUTO_CONFIG_H
+ # /bin/sh is used to intercept "Killed" or "Abort trap" messages
+ if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
+ echo " found"
+ ngx_found=yes
+
+ cat << END >> $NGX_AUTO_CONFIG_H
#ifndef $ngx_feature_name
#define $ngx_feature_name `$NGX_AUTOTEST`
#endif
END
- else
- echo " found but is not working"
+ else
+ echo " found but is not working"
+ fi
+
fi
;;
bug)
- # /bin/sh is used to intercept "Killed" or "Abort trap" messages
- if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
- echo " not found"
-
- else
- echo " found"
+ if test -n "$ngx_feature_run_force_result" ; then
+ echo " not tested (maybe cross-compiling)"
+ if test -n "$ngx_feature_name"; then
+ if test "$ngx_feature_run_force_result" = "yes" ; then
+ have=$ngx_have_feature . auto/have
+ fi
+ fi
ngx_found=yes
+ else
- if test -n "$ngx_feature_name"; then
- have=$ngx_have_feature . auto/have
+ # /bin/sh is used to intercept "Killed" or "Abort trap" messages
+ if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
+ echo " not found"
+
+ else
+ echo " found"
+ ngx_found=yes
+
+ if test -n "$ngx_feature_name"; then
+ have=$ngx_have_feature . auto/have
+ fi
fi
+
fi
;;
--
1.9.2

View File

@@ -0,0 +1,213 @@
From 71939b727a8fa9f722934700948a5b68960f6183 Mon Sep 17 00:00:00 2001
From: Samuel Martin <s.martin49@gmail.com>
Date: Thu, 29 May 2014 18:52:10 +0200
Subject: [PATCH] auto/*: set ngx_feature_run_force_result for each feature
requiring run test
Each feature requiring a run test has a matching preset variable (called
ngx_force_*) used to set ngx_feature_run_force_result.
These ngx_force_* variables are passed through the environment at configure
time.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Refresh for 1.8.0.
Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
---
auto/cc/conf | 3 +++
auto/cc/name | 1 +
auto/lib/libatomic/conf | 1 +
auto/os/darwin | 3 +++
auto/os/linux | 4 ++++
auto/unix | 8 ++++++++
6 files changed, 20 insertions(+)
diff --git a/auto/cc/conf b/auto/cc/conf
index edc6d74..a61ade4 100644
--- a/auto/cc/conf
+++ b/auto/cc/conf
@@ -159,6 +159,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
ngx_feature="gcc builtin atomic operations"
ngx_feature_name=NGX_HAVE_GCC_ATOMIC
ngx_feature_run=yes
+ ngx_feature_run_force_result="$ngx_force_gcc_have_atomic"
ngx_feature_incs=
ngx_feature_path=
ngx_feature_libs=
@@ -179,6 +180,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
ngx_feature="C99 variadic macros"
ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS"
ngx_feature_run=yes
+ ngx_feature_run_force_result="$ngx_force_c99_have_variadic_macros"
ngx_feature_incs="#include <stdio.h>
#define var(dummy, ...) sprintf(__VA_ARGS__)"
ngx_feature_path=
@@ -193,6 +195,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
ngx_feature="gcc variadic macros"
ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS"
ngx_feature_run=yes
+ ngx_feature_run_force_result="$ngx_force_gcc_have_variadic_macros"
ngx_feature_incs="#include <stdio.h>
#define var(dummy, args...) sprintf(args)"
ngx_feature_path=
diff --git a/auto/cc/name b/auto/cc/name
index 51a7ed9..d237d47 100644
--- a/auto/cc/name
+++ b/auto/cc/name
@@ -8,6 +8,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
ngx_feature="C compiler"
ngx_feature_name=
ngx_feature_run=yes
+ ngx_feature_run_force_result="$ngx_force_c_compiler"
ngx_feature_incs=
ngx_feature_path=
ngx_feature_libs=
diff --git a/auto/lib/libatomic/conf b/auto/lib/libatomic/conf
index d1e484a..3724916 100644
--- a/auto/lib/libatomic/conf
+++ b/auto/lib/libatomic/conf
@@ -15,6 +15,7 @@ else
ngx_feature="atomic_ops library"
ngx_feature_name=NGX_HAVE_LIBATOMIC
ngx_feature_run=yes
+ ngx_feature_run_force_result="$ngx_force_have_libatomic"
ngx_feature_incs="#define AO_REQUIRE_CAS
#include <atomic_ops.h>"
ngx_feature_path=
diff --git a/auto/os/darwin b/auto/os/darwin
index 1d3e3d3..11b7276 100644
--- a/auto/os/darwin
+++ b/auto/os/darwin
@@ -27,6 +27,7 @@ NGX_KQUEUE_CHECKED=YES
ngx_feature="kqueue's EVFILT_TIMER"
ngx_feature_name="NGX_HAVE_TIMER_EVENT"
ngx_feature_run=yes
+ngx_feature_run_force_result="$ngx_force_have_timer_event"
ngx_feature_incs="#include <sys/event.h>
#include <sys/time.h>"
ngx_feature_path=
@@ -57,6 +58,7 @@ ngx_feature_test="int kq;
ngx_feature="Darwin 64-bit kqueue millisecond timeout bug"
ngx_feature_name=NGX_DARWIN_KEVENT_BUG
ngx_feature_run=bug
+ngx_feature_run_force_result="$ngx_force_kevent_bug"
ngx_feature_incs="#include <sys/event.h>
#include <sys/time.h>"
ngx_feature_path=
@@ -87,6 +89,7 @@ CC_AUX_FLAGS="$CC_AUX_FLAGS"
ngx_feature="sendfile()"
ngx_feature_name="NGX_HAVE_SENDFILE"
ngx_feature_run=yes
+ngx_feature_run_force_result="$ngx_force_have_sendfile"
ngx_feature_incs="#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
diff --git a/auto/os/linux b/auto/os/linux
index 19bf832..16848b2 100644
--- a/auto/os/linux
+++ b/auto/os/linux
@@ -49,6 +49,7 @@ fi
ngx_feature="epoll"
ngx_feature_name="NGX_HAVE_EPOLL"
ngx_feature_run=yes
+ngx_feature_run_force_result="$ngx_force_have_epoll"
ngx_feature_incs="#include <sys/epoll.h>"
ngx_feature_path=
ngx_feature_libs=
@@ -106,6 +107,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
ngx_feature="sendfile()"
ngx_feature_name="NGX_HAVE_SENDFILE"
ngx_feature_run=yes
+ngx_feature_run_force_result="$ngx_force_have_sendfile"
ngx_feature_incs="#include <sys/sendfile.h>
#include <errno.h>"
ngx_feature_path=
@@ -127,6 +129,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
ngx_feature="sendfile64()"
ngx_feature_name="NGX_HAVE_SENDFILE64"
ngx_feature_run=yes
+ngx_feature_run_force_result="$ngx_force_have_sendfile64"
ngx_feature_incs="#include <sys/sendfile.h>
#include <errno.h>"
ngx_feature_path=
@@ -145,6 +148,7 @@ ngx_include="sys/prctl.h"; . auto/include
ngx_feature="prctl(PR_SET_DUMPABLE)"
ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
ngx_feature_run=yes
+ngx_feature_run_force_result="$ngx_force_have_pr_set_dumpable"
ngx_feature_incs="#include <sys/prctl.h>"
ngx_feature_path=
ngx_feature_libs=
diff --git a/auto/unix b/auto/unix
index 6e54531..7dbf9d1 100755
--- a/auto/unix
+++ b/auto/unix
@@ -99,6 +99,7 @@ if test -z "$NGX_KQUEUE_CHECKED"; then
ngx_feature="kqueue's EVFILT_TIMER"
ngx_feature_name="NGX_HAVE_TIMER_EVENT"
ngx_feature_run=yes
+ ngx_feature_run_force_result="$ngx_force_have_timer_event"
ngx_feature_incs="#include <sys/event.h>
#include <sys/time.h>"
ngx_feature_path=
@@ -589,6 +590,7 @@ ngx_feature_test="char buf[1]; ssize_t n; n = pwrite(1, buf, 1, 0);
ngx_feature="sys_nerr"
ngx_feature_name="NGX_SYS_NERR"
ngx_feature_run=value
+ngx_feature_run_force_result="$ngx_force_sys_nerr"
ngx_feature_incs='#include <errno.h>
#include <stdio.h>'
ngx_feature_path=
@@ -603,6 +605,7 @@ if [ $ngx_found = no ]; then
ngx_feature="_sys_nerr"
ngx_feature_name="NGX_SYS_NERR"
ngx_feature_run=value
+ ngx_feature_run_force_result="$ngx_force_sys_nerr"
ngx_feature_incs='#include <errno.h>
#include <stdio.h>'
ngx_feature_path=
@@ -618,6 +621,7 @@ if [ $ngx_found = no ]; then
ngx_feature='maximum errno'
ngx_feature_name=NGX_SYS_NERR
ngx_feature_run=value
+ ngx_feature_run_force_result="$ngx_force_sys_nerr"
ngx_feature_incs='#include <errno.h>
#include <string.h>
#include <stdio.h>'
@@ -676,6 +680,7 @@ ngx_feature_test="void *p; p = memalign(4096, 4096);
ngx_feature="mmap(MAP_ANON|MAP_SHARED)"
ngx_feature_name="NGX_HAVE_MAP_ANON"
ngx_feature_run=yes
+ngx_feature_run_force_result="$ngx_force_have_map_anon"
ngx_feature_incs="#include <sys/mman.h>"
ngx_feature_path=
ngx_feature_libs=
@@ -689,6 +694,7 @@ ngx_feature_test="void *p;
ngx_feature='mmap("/dev/zero", MAP_SHARED)'
ngx_feature_name="NGX_HAVE_MAP_DEVZERO"
ngx_feature_run=yes
+ngx_feature_run_force_result="$ngx_force_have_map_devzero"
ngx_feature_incs="#include <sys/mman.h>
#include <sys/stat.h>
#include <fcntl.h>"
@@ -704,6 +710,7 @@ ngx_feature_test='void *p; int fd;
ngx_feature="System V shared memory"
ngx_feature_name="NGX_HAVE_SYSVSHM"
ngx_feature_run=yes
+ngx_feature_run_force_result="$ngx_force_have_sysvshm"
ngx_feature_incs="#include <sys/ipc.h>
#include <sys/shm.h>"
ngx_feature_path=
@@ -718,6 +725,7 @@ ngx_feature_test="int id;
ngx_feature="POSIX semaphores"
ngx_feature_name="NGX_HAVE_POSIX_SEM"
ngx_feature_run=yes
+ngx_feature_run_force_result="$ngx_force_have_posix_sem"
ngx_feature_incs="#include <semaphore.h>"
ngx_feature_path=
ngx_feature_libs=
--
1.9.1

View File

@@ -0,0 +1,31 @@
From 211b9f19a3a62826fadef55d2f89d6f66fbf4aa6 Mon Sep 17 00:00:00 2001
From: Samuel Martin <s.martin49@gmail.com>
Date: Thu, 29 May 2014 19:22:27 +0200
Subject: [PATCH] auto/lib/libxslt/conf: use pkg-config
Change to using pkg-config to find the path to libxslt and its
dependencies.
Signed-off-by: Martin Bark <martin@barkynet.com>
---
auto/lib/libxslt/conf | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/auto/lib/libxslt/conf b/auto/lib/libxslt/conf
index 3a0f37b..3c2a60e 100644
--- a/auto/lib/libxslt/conf
+++ b/auto/lib/libxslt/conf
@@ -12,8 +12,8 @@
#include <libxslt/xsltInternals.h>
#include <libxslt/transform.h>
#include <libxslt/xsltutils.h>"
- ngx_feature_path="/usr/include/libxml2"
- ngx_feature_libs="-lxml2 -lxslt"
+ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I libxslt|sed 's/-I//g')"
+ ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs libxslt)"
ngx_feature_test="xmlParserCtxtPtr ctxt = NULL;
xsltStylesheetPtr sheet = NULL;
xmlDocPtr doc;
--
2.8.2

View File

@@ -0,0 +1,138 @@
From 08617a8d29ee22831175697555558fec8f52772c Mon Sep 17 00:00:00 2001
From: Samuel Martin <s.martin49@gmail.com>
Date: Sun, 1 Jun 2014 16:05:04 +0200
Subject: [PATCH] auto/unix: make sys_nerr guessing cross-friendly
This patch replaces the default sys_nerr runtest with a test done at
buildtime.
The idea behind this buildtime test is finding the value of the ERR_MAX
macro if defined, or the EHWPOISON (which is currently the last errno)
otherwise.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Refresh for 1.8.0.
Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
---
auto/os/sys_nerr | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
auto/unix | 10 ++++++++
2 files changed, 88 insertions(+)
create mode 100644 auto/os/sys_nerr
diff --git a/auto/os/sys_nerr b/auto/os/sys_nerr
new file mode 100644
index 0000000..8970f5f
--- /dev/null
+++ b/auto/os/sys_nerr
@@ -0,0 +1,78 @@
+
+# Copyright (C) Samuel Martin <s.martin49@gmail.com>
+
+
+echo $ngx_n "checking for sys_nerr value...$ngx_c"
+
+# sys_nerr guessing is done using a (very) poor (but working)
+# heuristics, by checking for the value of ERR_MAX if defined, or
+# EHWPOISON otherwise.
+
+cat << END >> $NGX_AUTOCONF_ERR
+
+----------------------------------------
+checking for sys_nerr value
+
+END
+
+ngx_sys_nerr=
+
+cat << _EOF > $NGX_AUTOTEST.c
+
+#include <stdio.h>
+#include <errno.h>
+
+static char sys_nerr_test[ERR_MAX];
+int main(void)
+{
+ return 0;
+}
+
+_EOF
+
+if $CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
+ $NGX_AUTOTEST.c -o $NGX_AUTOTEST \
+ $NGX_LD_OPT $ngx_feature_libs >/dev/null 2>&1 ; then
+ _ngx_max_err_macro=ERR_MAX
+else
+ # the +2 has been empirically found!
+ _ngx_max_err_macro="EHWPOISON + 2"
+fi
+
+cat << _EOF > $NGX_AUTOTEST.c
+
+#include <stdio.h>
+#include <errno.h>
+
+static char sys_nerr_test[(TEST_ERR_MAX == $_ngx_max_err_macro) ? 1 : -1];
+int main(void)
+{
+ return 0;
+}
+
+_EOF
+
+
+ngx_sys_nerr=`for i in $(seq 0 2000) ; do \
+ $CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
+ -DTEST_ERR_MAX="$i" \
+ $NGX_AUTOTEST.c -o $NGX_AUTOTEST \
+ $NGX_LD_OPT $ngx_feature_libs >/dev/null 2>&1 || continue ;\
+ echo $i ; break ; done`
+
+rm -rf $NGX_AUTOTEST*
+
+if test -z $ngx_sys_nerr ; then
+ ngx_size=0
+ ngx_sys_nerr=0
+fi
+
+cat << END >> $NGX_AUTO_CONFIG_H
+
+#ifndef $ngx_feature_name
+#define $ngx_feature_name $ngx_sys_nerr
+#endif
+
+END
+
+echo " $ngx_sys_nerr"
diff --git a/auto/unix b/auto/unix
index 7dbf9d1..00a7370 100755
--- a/auto/unix
+++ b/auto/unix
@@ -595,6 +595,10 @@ ngx_feature_incs='#include <errno.h>
#include <stdio.h>'
ngx_feature_path=
ngx_feature_libs=
+
+if false ; then
+# Disabled because only valid for native build.
+
ngx_feature_test='printf("%d", sys_nerr);'
. auto/feature
@@ -643,6 +647,12 @@ if [ $ngx_found = no ]; then
. auto/feature
fi
+else
+ # Cross-compilation support
+ . auto/os/sys_nerr
+
+fi
+
ngx_feature="localtime_r()"
ngx_feature_name="NGX_HAVE_LOCALTIME_R"
--
1.9.1

View File

@@ -0,0 +1,31 @@
From 756556d127da291cad8a2c007a89124a692aef7f Mon Sep 17 00:00:00 2001
From: Martin Bark <martin@barkynet.com>
Date: Fri, 6 May 2016 14:48:31 +0100
Subject: [PATCH] auto/lib/openssl/conf: use pkg-config
Change to using pkg-config to find the path to openssl and its
dependencies.
Signed-off-by: Martin Bark <martin@barkynet.com>
---
auto/lib/openssl/conf | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf
index 39d9602..995c6f3 100644
--- a/auto/lib/openssl/conf
+++ b/auto/lib/openssl/conf
@@ -50,8 +50,8 @@ else
ngx_feature_name="NGX_OPENSSL"
ngx_feature_run=no
ngx_feature_incs="#include <openssl/ssl.h>"
- ngx_feature_path=
- ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL"
+ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I openssl|sed 's/-I//g')"
+ ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs openssl)"
ngx_feature_test="SSL_CTX_set_options(NULL, 0)"
. auto/feature
--
2.8.2

View File

@@ -0,0 +1,31 @@
From fd9885fe5fef5826034547ca6be7299863f99769 Mon Sep 17 00:00:00 2001
From: Martin Bark <martin@barkynet.com>
Date: Fri, 6 May 2016 14:48:49 +0100
Subject: [PATCH] auto/lib/libgd/conf: use pkg-config
Change to using pkg-config to find the path to libgd and its
dependencies.
Signed-off-by: Martin Bark <martin@barkynet.com>
---
auto/lib/libgd/conf | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/auto/lib/libgd/conf b/auto/lib/libgd/conf
index 6e4e91c..1c536a2 100644
--- a/auto/lib/libgd/conf
+++ b/auto/lib/libgd/conf
@@ -7,8 +7,8 @@
ngx_feature_name=
ngx_feature_run=no
ngx_feature_incs="#include <gd.h>"
- ngx_feature_path=
- ngx_feature_libs="-lgd"
+ ngx_feature_path="$(${GDLIB_CONFIG:=gdlib-config} --includedir)"
+ ngx_feature_libs="$(${GDLIB_CONFIG:=gdlib-config} --libs)"
ngx_feature_test="gdImagePtr img = gdImageCreateFromGifPtr(1, NULL);"
. auto/feature
--
2.8.2

View File

@@ -0,0 +1,33 @@
From 8dc9dffc1f99ac951865f3135dfb5061a08d1f85 Mon Sep 17 00:00:00 2001
From: Martin Bark <martin@barkynet.com>
Date: Fri, 6 May 2016 16:29:17 +0100
Subject: [PATCH] src/os/unix/ngx_linux_config.h: only include dlfcn.h if
available
Signed-off-by: Martin Bark <martin@barkynet.com>
---
src/os/unix/ngx_linux_config.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/os/unix/ngx_linux_config.h b/src/os/unix/ngx_linux_config.h
index 2f6129d..4244086 100644
--- a/src/os/unix/ngx_linux_config.h
+++ b/src/os/unix/ngx_linux_config.h
@@ -55,10 +55,12 @@
#include <crypt.h>
#include <sys/utsname.h> /* uname() */
-#include <dlfcn.h>
+#include <ngx_auto_config.h>
-#include <ngx_auto_config.h>
+#if (NGX_HAVE_DLOPEN)
+#include <dlfcn.h>
+#endif
#if (NGX_HAVE_POSIX_SEM)
--
2.8.2

View File

@@ -0,0 +1,383 @@
menuconfig BR2_PACKAGE_NGINX
bool "nginx"
depends on BR2_USE_MMU # fork()
select BR2_PACKAGE_LIBATOMIC_OPS if BR2_sparc_v8 || BR2_sparc_leon3
help
nginx is an HTTP and reverse proxy server, as well as a mail proxy
server.
http://nginx.org/
if BR2_PACKAGE_NGINX
config BR2_PACKAGE_NGINX_FILE_AIO
bool "file AIO support"
# Does not build, because nginx hardcodes using SYS_eventfd,
# but it's available on neither AArch64 nor ARC where only
# eventfd() is available. See
# https://bugs.launchpad.net/linaro-aarch64/+bug/1160013
depends on !BR2_aarch64
depends on !BR2_arc
config BR2_PACKAGE_NGINX_THREADS
bool "thread pool support"
depends on BR2_TOOLCHAIN_HAS_THREADS
comment "thread pool support needs a toolchain w/ threads"
depends on !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_NGINX_HTTP
bool "http server"
default y
if BR2_PACKAGE_NGINX_HTTP
config BR2_PACKAGE_NGINX_HTTP_CACHE
bool "http cache support"
select BR2_PACKAGE_OPENSSL
comment "http modules"
config BR2_PACKAGE_NGINX_HTTP_SSL_MODULE
bool "ngx_http_ssl_module"
select BR2_PACKAGE_OPENSSL
help
Enable ngx_http_ssl_module
config BR2_PACKAGE_NGINX_HTTP_V2_MODULE
bool "ngx_http_v2_module"
select BR2_PACKAGE_ZLIB
help
Enable ngx_http_spdy_module
config BR2_PACKAGE_NGINX_HTTP_REALIP_MODULE
bool "ngx_http_realip_module"
help
Enable ngx_http_realip_module
config BR2_PACKAGE_NGINX_HTTP_ADDITION_MODULE
bool "ngx_http_addition_module"
help
Enable ngx_http_addition_module
config BR2_PACKAGE_NGINX_HTTP_XSLT_MODULE
bool "ngx_http_xslt_module"
select BR2_PACKAGE_LIBXML2
select BR2_PACKAGE_LIBXSLT
help
Enable ngx_http_xslt_module
config BR2_PACKAGE_NGINX_HTTP_IMAGE_FILTER_MODULE
bool "ngx_http_image_filter_module"
select BR2_PACKAGE_GD
select BR2_PACKAGE_JPEG
select BR2_PACKAGE_LIBPNG
help
Enable ngx_http_image_filter_module
config BR2_PACKAGE_NGINX_HTTP_SUB_MODULE
bool "ngx_http_sub_module"
help
Enable ngx_http_sub_module
config BR2_PACKAGE_NGINX_HTTP_DAV_MODULE
bool "ngx_http_dav_module"
help
Enable ngx_http_dav_module
config BR2_PACKAGE_NGINX_HTTP_FLV_MODULE
bool "ngx_http_flv_module"
help
Enable ngx_http_flv_module
config BR2_PACKAGE_NGINX_HTTP_MP4_MODULE
bool "ngx_http_mp4_module"
help
Enable ngx_http_mp4_module
config BR2_PACKAGE_NGINX_HTTP_GUNZIP_MODULE
bool "ngx_http_gunzip_module"
select BR2_PACKAGE_ZLIB
help
Enable ngx_http_gunzip_module
config BR2_PACKAGE_NGINX_HTTP_GZIP_STATIC_MODULE
bool "ngx_http_gzip_static_module"
select BR2_PACKAGE_ZLIB
help
Enable ngx_http_gzip_static_module
config BR2_PACKAGE_NGINX_HTTP_AUTH_REQUEST_MODULE
bool "ngx_http_auth_request_module"
help
Enable ngx_http_auth_request_module
config BR2_PACKAGE_NGINX_HTTP_RANDOM_INDEX_MODULE
bool "ngx_http_random_index_module"
help
Enable ngx_http_random_index_module
config BR2_PACKAGE_NGINX_HTTP_SECURE_LINK_MODULE
bool "ngx_http_secure_link_module"
select BR2_PACKAGE_OPENSSL
help
Enable ngx_http_secure_link_module
config BR2_PACKAGE_NGINX_HTTP_DEGRADATION_MODULE
bool "ngx_http_degradation_module"
help
Enable ngx_http_degradation_module
config BR2_PACKAGE_NGINX_HTTP_STUB_STATUS_MODULE
bool "ngx_http_stub_status_module"
help
Enable ngx_http_stub_status_module
config BR2_PACKAGE_NGINX_HTTP_CHARSET_MODULE
bool "ngx_http_charset_module"
default y
help
Enable ngx_http_charset_module
config BR2_PACKAGE_NGINX_HTTP_GZIP_MODULE
bool "ngx_http_gzip_module"
select BR2_PACKAGE_ZLIB
default y
help
Enable ngx_http_gzip_module
config BR2_PACKAGE_NGINX_HTTP_SSI_MODULE
bool "ngx_http_ssi_module"
default y
help
Enable ngx_http_ssi_module
config BR2_PACKAGE_NGINX_HTTP_USERID_MODULE
bool "ngx_http_userid_module"
default y
help
Enable ngx_http_userid_module
config BR2_PACKAGE_NGINX_HTTP_ACCESS_MODULE
bool "ngx_http_access_module"
default y
help
Enable ngx_http_access_module
config BR2_PACKAGE_NGINX_HTTP_AUTH_BASIC_MODULE
bool "ngx_http_auth_basic_module"
default y
help
Enable ngx_http_auth_basic_module
config BR2_PACKAGE_NGINX_HTTP_AUTOINDEX_MODULE
bool "ngx_http_autoindex_module"
default y
help
Enable ngx_http_autoindex_module
config BR2_PACKAGE_NGINX_HTTP_GEO_MODULE
bool "ngx_http_geo_module"
default y
help
Enable ngx_http_geo_module
config BR2_PACKAGE_NGINX_HTTP_MAP_MODULE
bool "ngx_http_map_module"
default y
help
Enable ngx_http_map_module
config BR2_PACKAGE_NGINX_HTTP_SPLIT_CLIENTS_MODULE
bool "ngx_http_split_clients_module"
default y
help
Enable ngx_http_split_clients_module
config BR2_PACKAGE_NGINX_HTTP_REFERER_MODULE
bool "ngx_http_referer_module"
default y
help
Enable ngx_http_referer_module
config BR2_PACKAGE_NGINX_HTTP_REWRITE_MODULE
bool "ngx_http_rewrite_module"
select BR2_PACKAGE_PCRE
default y
help
Enable ngx_http_rewrite_module
config BR2_PACKAGE_NGINX_HTTP_PROXY_MODULE
bool "ngx_http_proxy_module"
default y
help
Enable ngx_http_proxy_module
config BR2_PACKAGE_NGINX_HTTP_FASTCGI_MODULE
bool "ngx_http_fastcgi_module"
default y
help
Enable ngx_http_fastcgi_module
config BR2_PACKAGE_NGINX_HTTP_UWSGI_MODULE
bool "ngx_http_uwsgi_module"
default y
help
Enable ngx_http_uwsgi_module
config BR2_PACKAGE_NGINX_HTTP_SCGI_MODULE
bool "ngx_http_scgi_module"
default y
help
Enable ngx_http_scgi_module
config BR2_PACKAGE_NGINX_HTTP_MEMCACHED_MODULE
bool "ngx_http_memcached_module"
default y
help
Enable ngx_http_memcached_module
config BR2_PACKAGE_NGINX_HTTP_LIMIT_CONN_MODULE
bool "ngx_http_limit_conn_module"
default y
help
Enable ngx_http_limit_conn_module
config BR2_PACKAGE_NGINX_HTTP_LIMIT_REQ_MODULE
bool "ngx_http_limit_req_module"
default y
help
Enable ngx_http_limit_req_module
config BR2_PACKAGE_NGINX_HTTP_EMPTY_GIF_MODULE
bool "ngx_http_empty_gif_module"
default y
help
Enable ngx_http_empty_gif_module
config BR2_PACKAGE_NGINX_HTTP_BROWSER_MODULE
bool "ngx_http_browser_module"
default y
help
Enable ngx_http_browser_module
config BR2_PACKAGE_NGINX_HTTP_UPSTREAM_IP_HASH_MODULE
bool "ngx_http_upstream_ip_hash_module"
default y
help
Enable ngx_http_upstream_ip_hash_module
config BR2_PACKAGE_NGINX_HTTP_UPSTREAM_LEAST_CONN_MODULE
bool "ngx_http_upstream_least_conn_module"
default y
help
Enable ngx_http_upstream_least_conn_module
config BR2_PACKAGE_NGINX_HTTP_UPSTREAM_KEEPALIVE_MODULE
bool "ngx_http_upstream_keepalive_module"
default y
help
Enable ngx_http_upstream_keepalive_module
endif #BR2_PACKAGE_NGINX_HTTP
config BR2_PACKAGE_NGINX_MAIL
bool "mail proxy modules"
if BR2_PACKAGE_NGINX_MAIL
config BR2_PACKAGE_NGINX_MAIL_SSL_MODULE
bool "ngx_mail_ssl_module"
select BR2_PACKAGE_OPENSSL
help
Enable ngx_mail_ssl_module
config BR2_PACKAGE_NGINX_MAIL_POP3_MODULE
bool "ngx_mail_pop3_module"
default y
help
Enable ngx_mail_pop3_module
config BR2_PACKAGE_NGINX_MAIL_IMAP_MODULE
bool "ngx_mail_imap_module"
default y
help
Enable ngx_mail_imap_module
config BR2_PACKAGE_NGINX_MAIL_SMTP_MODULE
bool "ngx_mail_smtp_module"
default y
help
Enable ngx_mail_smtp_module
endif #BR2_PACKAGE_NGINX_MAIL
config BR2_PACKAGE_NGINX_STREAM
bool "stream proxy modules"
if BR2_PACKAGE_NGINX_STREAM
config BR2_PACKAGE_NGINX_STREAM_SSL_MODULE
bool "ngx_stream_ssl_module"
select BR2_PACKAGE_OPENSSL
help
Enable ngx_stream_ssl_module
config BR2_PACKAGE_NGINX_STREAM_LIMIT_CONN_MODULE
bool "ngx_stream_limit_conn_module"
default y
help
Enable ngx_stream_limit_conn_module
config BR2_PACKAGE_NGINX_STREAM_ACCESS_MODULE
bool "ngx_stream_access_module"
default y
help
Enable ngx_stream_access_module
config BR2_PACKAGE_NGINX_STREAM_UPSTREAM_HASH_MODULE
bool "ngx_stream_upstream_hash_module"
default y
help
Enable ngx_stream_upstream_hash_module
config BR2_PACKAGE_NGINX_STREAM_UPSTREAM_LEAST_CONN_MODULE
bool "ngx_stream_upstream_least_conn_module"
default y
help
Enable ngx_stream_upstream_least_conn_module
config BR2_PACKAGE_NGINX_STREAM_UPSTREAM_ZONE_MODULE
bool "ngx_stream_upstream_zone_module"
default y
help
Enable ngx_stream_upstream_zone_module
endif #BR2_PACKAGE_NGINX_STREAM
config BR2_PACKAGE_NGINX_DEBUG
bool "debug logging"
help
Enable debug logging. The debug level should be set with
the error_log directive. For example
error_log /var/log/nginx/error.log debug;
comment "misc. modules"
config BR2_PACKAGE_NGINX_SELECT_MODULE
bool "ngx_select_module"
help
Enable ngx_select_module
config BR2_PACKAGE_NGINX_POLL_MODULE
bool "ngx_poll_module"
help
Enable ngx_poll_module
config BR2_PACKAGE_NGINX_ADD_MODULES
string "additional modules"
help
Space separated list of urls of the additional modules
endif

View File

@@ -0,0 +1,25 @@
#!/bin/sh
#
# Start/stop nginx
#
PIDFILE=/var/run/nginx.pid
case "$1" in
start)
echo "Starting nginx..."
mkdir -p /var/log/nginx /var/tmp/nginx
start-stop-daemon -S -x /usr/sbin/nginx -p $PIDFILE
;;
stop)
printf "Stopping nginx..."
start-stop-daemon -K -o -p $PIDFILE
;;
restart|reload)
"$0" stop
"$0" start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac

View File

@@ -0,0 +1,2 @@
# Locally calculated after checking pgp signature
sha256 75020f1364cac459cb733c4e1caed2d00376e40ea05588fb8793076a4c69dd90 nginx-1.10.3.tar.gz

View File

@@ -0,0 +1,9 @@
/var/log/nginx/*log {
missingok
create 640 http log
sharedscripts
compress
postrotate
test ! -r /var/run/nginx.pid || kill -USR1 `cat /var/run/nginx.pid`
endscript
}

View File

@@ -0,0 +1,296 @@
################################################################################
#
# nginx
#
################################################################################
NGINX_VERSION = 1.10.3
NGINX_SITE = http://nginx.org/download
NGINX_LICENSE = BSD-2c
NGINX_LICENSE_FILES = LICENSE
NGINX_DEPENDENCIES = host-pkgconf
NGINX_CONF_OPTS = \
--crossbuild=Linux::$(BR2_ARCH) \
--with-cc="$(TARGET_CC)" \
--with-cpp="$(TARGET_CC)" \
--with-ld-opt="$(TARGET_LDFLAGS)" \
--with-ipv6
# www-data user and group are used for nginx. Because these user and group
# are already set by buildroot, it is not necessary to redefine them.
# See system/skeleton/etc/passwd
# username: www-data uid: 33
# groupname: www-data gid: 33
#
# So, we just need to create the directories used by nginx with the right
# ownership.
define NGINX_PERMISSIONS
/var/lib/nginx d 755 33 33 - - - - -
endef
# disable external libatomic_ops because its detection fails.
NGINX_CONF_ENV += \
ngx_force_c_compiler=yes \
ngx_force_c99_have_variadic_macros=yes \
ngx_force_gcc_have_variadic_macros=yes \
ngx_force_gcc_have_atomic=yes \
ngx_force_have_epoll=yes \
ngx_force_have_sendfile=yes \
ngx_force_have_sendfile64=yes \
ngx_force_have_pr_set_dumpable=yes \
ngx_force_have_timer_event=yes \
ngx_force_have_map_anon=yes \
ngx_force_have_map_devzero=yes \
ngx_force_have_sysvshm=yes \
ngx_force_have_posix_sem=yes
# prefix: nginx root configuration location
NGINX_CONF_OPTS += \
--prefix=/usr \
--conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin/nginx \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/lock/nginx.lock \
--user=www-data \
--group=www-data \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/tmp/nginx/client-body \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
NGINX_CONF_OPTS += \
$(if $(BR2_PACKAGE_NGINX_FILE_AIO),--with-file-aio) \
$(if $(BR2_PACKAGE_NGINX_THREADS),--with-threads)
ifeq ($(BR2_PACKAGE_LIBATOMIC_OPS),y)
NGINX_DEPENDENCIES += libatomic_ops
NGINX_CONF_OPTS += --with-libatomic
NGINX_CONF_ENV += ngx_force_have_libatomic=yes
ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y)
NGINX_CFLAGS += "-DAO_NO_SPARC_V9"
endif
else
NGINX_CONF_ENV += ngx_force_have_libatomic=no
endif
ifeq ($(BR2_PACKAGE_PCRE),y)
NGINX_DEPENDENCIES += pcre
NGINX_CONF_OPTS += --with-pcre
else
NGINX_CONF_OPTS += --without-pcre
endif
# modules disabled or not activated because of missing dependencies:
# - google_perftools (googleperftools)
# - http_geoip_module (geoip)
# - http_perl_module (host-perl)
# - pcre-jit (want to rebuild pcre)
# Notes:
# * Feature/module option are *not* symetric.
# If a feature is on by default, only its --without-xxx option exists;
# if a feature is off by default, only its --with-xxx option exists.
# * The configure script fails if unknown options are passed on the command
# line.
# misc. modules
NGINX_CONF_OPTS += \
$(if $(BR2_PACKAGE_NGINX_SELECT_MODULE),--with-select_module,--without-select_module) \
$(if $(BR2_PACKAGE_NGINX_POLL_MODULE),--with-poll_module,--without-poll_module)
ifneq ($(BR2_PACKAGE_NGINX_ADD_MODULES),)
NGINX_CONF_OPTS += \
$(addprefix --add-module=,$(call qstrip,$(BR2_PACKAGE_NGINX_ADD_MODULES)))
endif
# http server modules
ifeq ($(BR2_PACKAGE_NGINX_HTTP),y)
ifeq ($(BR2_PACKAGE_NGINX_HTTP_CACHE),y)
NGINX_DEPENDENCIES += openssl
else
NGINX_CONF_OPTS += --without-http-cache
endif
ifeq ($(BR2_PACKAGE_NGINX_HTTP_V2_MODULE),y)
NGINX_DEPENDENCIES += zlib
NGINX_CONF_OPTS += --with-http_v2_module
endif
ifeq ($(BR2_PACKAGE_NGINX_HTTP_SSL_MODULE),y)
NGINX_DEPENDENCIES += openssl
NGINX_CONF_OPTS += --with-http_ssl_module
endif
ifeq ($(BR2_PACKAGE_NGINX_HTTP_XSLT_MODULE),y)
NGINX_DEPENDENCIES += libxml2 libxslt
NGINX_CONF_OPTS += --with-http_xslt_module
endif
ifeq ($(BR2_PACKAGE_NGINX_HTTP_IMAGE_FILTER_MODULE),y)
NGINX_DEPENDENCIES += gd jpeg libpng
NGINX_CONF_OPTS += --with-http_image_filter_module
endif
ifeq ($(BR2_PACKAGE_NGINX_HTTP_GUNZIP_MODULE),y)
NGINX_DEPENDENCIES += zlib
NGINX_CONF_OPTS += --with-http_gunzip_module
endif
ifeq ($(BR2_PACKAGE_NGINX_HTTP_GZIP_STATIC_MODULE),y)
NGINX_DEPENDENCIES += zlib
NGINX_CONF_OPTS += --with-http_gzip_static_module
endif
ifeq ($(BR2_PACKAGE_NGINX_HTTP_SECURE_LINK_MODULE),y)
NGINX_DEPENDENCIES += openssl
NGINX_CONF_OPTS += --with-http_secure_link_module
endif
ifeq ($(BR2_PACKAGE_NGINX_HTTP_GZIP_MODULE),y)
NGINX_DEPENDENCIES += zlib
else
NGINX_CONF_OPTS += --without-http_gzip_module
endif
ifeq ($(BR2_PACKAGE_NGINX_HTTP_REWRITE_MODULE),y)
NGINX_DEPENDENCIES += pcre
else
NGINX_CONF_OPTS += --without-http_rewrite_module
endif
NGINX_CONF_OPTS += \
$(if $(BR2_PACKAGE_NGINX_HTTP_REALIP_MODULE),--with-http_realip_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_ADDITION_MODULE),--with-http_addition_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_SUB_MODULE),--with-http_sub_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_DAV_MODULE),--with-http_dav_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_FLV_MODULE),--with-http_flv_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_MP4_MODULE),--with-http_mp4_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_AUTH_REQUEST_MODULE),--with-http_auth_request_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_RANDOM_INDEX_MODULE),--with-http_random_index_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_DEGRADATION_MODULE),--with-http_degradation_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_STUB_STATUS_MODULE),--with-http_stub_status_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_CHARSET_MODULE),,--without-http_charset_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_SSI_MODULE),,--without-http_ssi_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_USERID_MODULE),,--without-http_userid_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_ACCESS_MODULE),,--without-http_access_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_AUTH_BASIC_MODULE),,--without-http_auth_basic_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_AUTOINDEX_MODULE),,--without-http_autoindex_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_GEO_MODULE),,--without-http_geo_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_MAP_MODULE),,--without-http_map_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_SPLIT_CLIENTS_MODULE),,--without-http_split_clients_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_REFERER_MODULE),,--without-http_referer_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_PROXY_MODULE),,--without-http_proxy_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_FASTCGI_MODULE),,--without-http_fastcgi_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_UWSGI_MODULE),,--without-http_uwsgi_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_SCGI_MODULE),,--without-http_scgi_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_MEMCACHED_MODULE),,--without-http_memcached_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_LIMIT_CONN_MODULE),,--without-http_limit_conn_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_LIMIT_REQ_MODULE),,--without-http_limit_req_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_EMPTY_GIF_MODULE),,--without-http_empty_gif_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_BROWSER_MODULE),,--without-http_browser_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_UPSTREAM_IP_HASH_MODULE),,--without-http_upstream_ip_hash_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_UPSTREAM_LEAST_CONN_MODULE),,--without-http_upstream_least_conn_module) \
$(if $(BR2_PACKAGE_NGINX_HTTP_UPSTREAM_KEEPALIVE_MODULE),,--without-http_upstream_keepalive_module)
else # !BR2_PACKAGE_NGINX_HTTP
NGINX_CONF_OPTS += --without-http
endif # BR2_PACKAGE_NGINX_HTTP
# mail modules
ifeq ($(BR2_PACKAGE_NGINX_MAIL),y)
NGINX_CONF_OPTS += --with-mail
ifeq ($(BR2_PACKAGE_NGINX_MAIL_SSL_MODULE),y)
NGINX_DEPENDENCIES += openssl
NGINX_CONF_OPTS += --with-mail_ssl_module
endif
NGINX_CONF_OPTS += \
$(if $(BR2_PACKAGE_NGINX_MAIL_POP3_MODULE),,--without-mail_pop3_module) \
$(if $(BR2_PACKAGE_NGINX_MAIL_IMAP_MODULE),,--without-mail_imap_module) \
$(if $(BR2_PACKAGE_NGINX_MAIL_SMTP_MODULE),,--without-mail_smtp_module)
endif # BR2_PACKAGE_NGINX_MAIL
# stream modules
ifeq ($(BR2_PACKAGE_NGINX_STREAM),y)
NGINX_CONF_OPTS += --with-stream
ifeq ($(BR2_PACKAGE_NGINX_STREAM_SSL_MODULE),y)
NGINX_DEPENDENCIES += openssl
NGINX_CONF_OPTS += --with-stream_ssl_module
endif
NGINX_CONF_OPTS += \
$(if $(BR2_PACKAGE_NGINX_STREAM_LIMIT_CONN_MODULE),,--without-stream_limit_conn_module) \
$(if $(BR2_PACKAGE_NGINX_STREAM_ACCESS_MODULE),,--without-stream_access_module) \
$(if $(BR2_PACKAGE_NGINX_STREAM_UPSTREAM_HASH_MODULE),,--without-stream_upstream_hash_module) \
$(if $(BR2_PACKAGE_NGINX_STREAM_UPSTREAM_LEAST_CONN_MODULE),,--without-stream_upstream_least_conn_module) \
$(if $(BR2_PACKAGE_NGINX_STREAM_UPSTREAM_ZONE_MODULE),,--without-stream_upstream_zone_module)
endif # BR2_PACKAGE_NGINX_STREAM
# external modules
ifeq ($(BR2_PACKAGE_NGINX_UPLOAD),y)
NGINX_CONF_OPTS += $(addprefix --add-module=,$(NGINX_UPLOAD_DIR))
NGINX_DEPENDENCIES += nginx-upload
endif
ifeq ($(BR2_PACKAGE_NGINX_DAV_EXT),y)
NGINX_CONF_OPTS += --add-module=$(NGINX_DAV_EXT_DIR)
NGINX_DEPENDENCIES += nginx-dav-ext
endif
ifeq ($(BR2_PACKAGE_NGINX_NAXSI),y)
NGINX_DEPENDENCIES += nginx-naxsi
NGINX_CONF_OPTS += --add-module=$(NGINX_NAXSI_DIR)/naxsi_src
endif
# Debug logging
NGINX_CONF_OPTS += $(if $(BR2_PACKAGE_NGINX_DEBUG),--with-debug)
define NGINX_DISABLE_WERROR
$(SED) 's/-Werror//g' -i $(@D)/auto/cc/*
endef
NGINX_PRE_CONFIGURE_HOOKS += NGINX_DISABLE_WERROR
define NGINX_CONFIGURE_CMDS
cd $(@D) ; $(NGINX_CONF_ENV) \
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
GDLIB_CONFIG=$(STAGING_DIR)/usr/bin/gdlib-config \
./configure $(NGINX_CONF_OPTS) \
--with-cc-opt="$(TARGET_CFLAGS) $(NGINX_CFLAGS)"
endef
define NGINX_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
endef
define NGINX_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
$(RM) $(TARGET_DIR)/usr/sbin/nginx.old
$(INSTALL) -D -m 0664 package/nginx/nginx.logrotate \
$(TARGET_DIR)/etc/logrotate.d/nginx
endef
define NGINX_INSTALL_INIT_SYSTEMD
$(INSTALL) -D -m 0644 package/nginx/nginx.service \
$(TARGET_DIR)/usr/lib/systemd/system/nginx.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
ln -fs ../../../../usr/lib/systemd/system/nginx.service \
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/nginx.service
endef
define NGINX_INSTALL_INIT_SYSV
$(INSTALL) -D -m 0755 package/nginx/S50nginx \
$(TARGET_DIR)/etc/init.d/S50nginx
endef
$(eval $(generic-package))

View File

@@ -0,0 +1,16 @@
[Unit]
Description=A high performance web server and a reverse proxy server
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/bin/mkdir -p /var/log/nginx /var/tmp/nginx
ExecStartPre=/usr/sbin/nginx -t -q -g 'pid /var/run/nginx.pid; daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'pid /var/run/nginx.pid; daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'pid /var/run/nginx.pid; daemon on; master_process on;' -s reload
ExecStop=/usr/sbin/nginx -g 'pid /var/run/nginx.pid;' -s quit
PrivateDevices=yes
[Install]
WantedBy=multi-user.target