openwrt 17.01 에서 최신 nginx 1.14.2 의 노트 를 컴 파일 합 니 다.

3465 단어
openwrt 17.01 소스 코드 에 대응 하 는 nginx 버 전 은 1.10.2 이 고 새로운 기능 이 없 기 때문에 nginx 1.14.2 최신 안정 판 으로 업그레이드 해 야 합 니 다.
https://github.com/macports/macports-ports/blob/09603eacd0424538f0321e2ce04f5295f987571a/www/nginx/files/patch-src-ngx_http_lua_headers.c.diff
https://github.com/openwrt/packages/tree/master/net/nginx/patches
수정 해 야 할 부분 이 몇 가지 있 습 니 다.
1. feeds / packages / net / nginx / patches 디 렉 터 리 에 있 는 몇 개의 파일 을 수정 합 니 다.
파일 추가: 201 - ignore - invalid - options. patch
 --- a/auto/options
+++ b/auto/options
@@ -391,7 +391,6 @@ $0: warning: the \"--with-sha1-asm\" option is deprecated"
         --test-build-solaris-sendfilev)  NGX_TEST_BUILD_SOLARIS_SENDFILEV=YES ;;

         *)
-            echo "$0: error: invalid option \"$option\""
-            exit 1
+            echo "$0: error: ignoring invalid option \"$option\""
         ;;
     esac

수정:
102-sizeof_test_fix.patch
--- a/auto/types/sizeof
+++ b/auto/types/sizeof
@@ -25,8 +25,14 @@ $NGX_INCLUDE_UNISTD_H
 $NGX_INCLUDE_INTTYPES_H
 $NGX_INCLUDE_AUTO_CONFIG_H

+char object_code_block[] = {
+       '
', 'e', '4', 'V', 'A', + '0', 'x', ('0' + sizeof($ngx_type)), + 'Y', '3', 'p', 'M', '
' +}; + int main(void) { - printf("%d", (int) sizeof($ngx_type)); + printf("dummy use of object_code_block to avoid gc-section: %c", object_code_block[0]); return 0; } @@ -40,7 +46,7 @@ eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>& if [ -x $NGX_AUTOTEST ]; then - ngx_size=`$NGX_AUTOTEST` + ngx_size=`sed -ne 's/^e4VA0x\(.\)Y3pM$/\1/p' < $NGX_AUTOTEST` echo " $ngx_size bytes" fi

2. feeds / packages / net / nginx / patches - lu - nginx 디 렉 터 리 에 있 는 몇 개의 파일 을 수정 합 니 다.
증가: 101 - patch - src - ngxhttp_lua_headers.c.patch
--- a/lua-nginx/src/ngx_http_lua_headers.c
+++ b/lua-nignx/src/ngx_http_lua_headers.c
@@ -77,6 +77,9 @@
     size_t                       size;
     ngx_buf_t                   *b, *first = NULL;
     ngx_int_t                    i, j;
+#if defined(nginx_version) && nginx_version >= 1011011
+    ngx_chain_t                 *cl;
+#endif
     ngx_connection_t            *c;
     ngx_http_request_t          *r, *mr;
     ngx_http_connection_t       *hc;
@@ -141,8 +141,15 @@

     if (hc->nbusy) {
         b = NULL;
+
+#if defined(nginx_version) && nginx_version >= 1011011
+        for (cl = hc->busy; cl; /* void */) {
+            b = cl->buf;
+            cl = cl->next;
+#else
         for (i = 0; i < hc->nbusy; i++) {
             b = hc->busy[i];
+#endif

             dd("busy buf: %d: [%.*s]", (int) i, (int) (b->pos - b->start),
                b->start);
@@ -216,8 +217,15 @@
     }

     if (hc->nbusy) {
+
+#if defined(nginx_version) && nginx_version >= 1011011
+        for (cl = hc->busy; cl; /* void */) {
+            b = cl->buf;
+            cl = cl->next;
+#else
         for (i = 0; i < hc->nbusy; i++) {
             b = hc->busy[i];
+#endif

             if (!found) {
                 if (b != first) {

3. feeds / packages / net / nginx / Makefile 파일 수정:
PKG_VERSION:=1.14.2

좋은 웹페이지 즐겨찾기