Compare commits

..

No commits in common. "c8-stream-1.16" and "a9-beta-stream-1.22" have entirely different histories.

21 changed files with 823 additions and 378 deletions

7
.gitignore vendored
View File

@ -1,2 +1,5 @@
SOURCES/nginx-1.16.1.tar.gz SOURCES/maxim.key
SOURCES/poweredby.png SOURCES/mdounin.key
SOURCES/nginx-1.22.1.tar.gz
SOURCES/sb.key
SOURCES/thresh.key

View File

@ -1,2 +1,5 @@
77ce4d26481b62f7a9d83e399454df0912f01a4b SOURCES/nginx-1.16.1.tar.gz fe1bb3869c51a54f28e7e7a2c1d8a790a2ca7789 SOURCES/maxim.key
2ec82988cd0d9b1304c95a16b28eff70f0f69abc SOURCES/poweredby.png 145bf87154a2689f7c09a376c11f307012a439de SOURCES/mdounin.key
45a89797f7c789287c7f663811efbbd19e84f154 SOURCES/nginx-1.22.1.tar.gz
baa71c22e4e2b67be2a5f4f4df25a99962488f90 SOURCES/sb.key
8053ffa3ffa2c29dc60ba976f520bed2cf295dae SOURCES/thresh.key

View File

@ -0,0 +1,31 @@
From 00cab63102084b89de0a3494a1d023c4b1d4982b Mon Sep 17 00:00:00 2001
From: Felix Kaechele <felix@kaechele.ca>
Date: Sun, 7 Jun 2020 12:14:02 -0400
Subject: [PATCH 1/2] remove Werror in upstream build scripts
removes -Werror in upstream build scripts. -Werror conflicts with
-D_FORTIFY_SOURCE=2 causing warnings to turn into errors.
Signed-off-by: Felix Kaechele <felix@kaechele.ca>
---
auto/cc/gcc | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/auto/cc/gcc b/auto/cc/gcc
index a5c5c18..cdbbadb 100644
--- a/auto/cc/gcc
+++ b/auto/cc/gcc
@@ -166,7 +166,9 @@ esac
# stop on warning
-CFLAGS="$CFLAGS -Werror"
+# This combined with Fedora's FORTIFY_SOURCE=2 option causes it nginx
+# to not compile.
+#CFLAGS="$CFLAGS -Werror"
# debug
CFLAGS="$CFLAGS -g"
--
2.31.1

View File

@ -0,0 +1,108 @@
From 62470498cca9a209aa9904668c1949f5229123af Mon Sep 17 00:00:00 2001
From: Felix Kaechele <felix@kaechele.ca>
Date: Tue, 20 Apr 2021 21:28:18 -0400
Subject: [PATCH 2/2] fix PIDFile handling
Corresponding RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1869026
Rejected upstream: https://trac.nginx.org/nginx/ticket/1897
Taken from: https://git.launchpad.net/ubuntu/+source/nginx/tree/debian/patches/nginx-fix-pidfile.patch
From original patch:
Author: Tj <ubuntu@iam.tj>
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876365
iLast-Update: 2020-06-24
Signed-off-by: Felix Kaechele <felix@kaechele.ca>
---
src/core/nginx.c | 24 +++++++++++++++++++++---
src/os/unix/ngx_daemon.c | 8 ++++++--
2 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/src/core/nginx.c b/src/core/nginx.c
index 48a20e9..32c0afe 100644
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -339,14 +339,21 @@ main(int argc, char *const *argv)
ngx_process = NGX_PROCESS_MASTER;
}
+ /* tell-tale to detect if this is parent or child process */
+ ngx_int_t child_pid = NGX_BUSY;
+
#if !(NGX_WIN32)
if (ngx_init_signals(cycle->log) != NGX_OK) {
return 1;
}
+ /* tell-tale that this code has been executed */
+ child_pid--;
+
if (!ngx_inherited && ccf->daemon) {
- if (ngx_daemon(cycle->log) != NGX_OK) {
+ child_pid = ngx_daemon(cycle->log);
+ if (child_pid == NGX_ERROR) {
return 1;
}
@@ -359,8 +366,19 @@ main(int argc, char *const *argv)
#endif
- if (ngx_create_pidfile(&ccf->pid, cycle->log) != NGX_OK) {
- return 1;
+ /* If ngx_daemon() returned the child's PID in the parent process
+ * after the fork() set ngx_pid to the child_pid, which gets
+ * written to the PID file, then exit.
+ * For NGX_WIN32 always write the PID file
+ * For others, only write it from the parent process */
+ if (child_pid < NGX_OK || child_pid > NGX_OK) {
+ ngx_pid = child_pid > NGX_OK ? child_pid : ngx_pid;
+ if (ngx_create_pidfile(&ccf->pid, cycle->log) != NGX_OK) {
+ return 1;
+ }
+ }
+ if (child_pid > NGX_OK) {
+ exit(0);
}
if (ngx_log_redirect_stderr(cycle) != NGX_OK) {
diff --git a/src/os/unix/ngx_daemon.c b/src/os/unix/ngx_daemon.c
index 385c49b..3719854 100644
--- a/src/os/unix/ngx_daemon.c
+++ b/src/os/unix/ngx_daemon.c
@@ -7,14 +7,17 @@
#include <ngx_config.h>
#include <ngx_core.h>
+#include <unistd.h>
ngx_int_t
ngx_daemon(ngx_log_t *log)
{
int fd;
+ /* retain the return value for passing back to caller */
+ pid_t pid_child = fork();
- switch (fork()) {
+ switch (pid_child) {
case -1:
ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "fork() failed");
return NGX_ERROR;
@@ -23,7 +26,8 @@ ngx_daemon(ngx_log_t *log)
break;
default:
- exit(0);
+ /* let caller do the exit() */
+ return pid_child;
}
ngx_parent = ngx_pid;
--
2.31.1

View File

@ -0,0 +1,88 @@
From 4e5f12d6584536ead82d20554d8f3f2ab0107b0b Mon Sep 17 00:00:00 2001
From: Lubos Uhliarik <luhliari@redhat.com>
Date: Fri, 30 Apr 2021 13:07:45 +0000
Subject: [PATCH 3/3] Support loading certificates from hardware token (PKCS#11)
---
src/event/ngx_event_openssl.c | 65 +++++++++++++++++++++++++++++++++++
1 file changed, 65 insertions(+)
diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c
index d762d6b..270b200 100644
--- a/src/event/ngx_event_openssl.c
+++ b/src/event/ngx_event_openssl.c
@@ -617,6 +617,71 @@ ngx_ssl_load_certificate(ngx_pool_t *pool, char **err, ngx_str_t *cert,
X509 *x509, *temp;
u_long n;
+ if (ngx_strncmp(cert->data, "engine:", sizeof("engine:") - 1) == 0) {
+
+#ifndef OPENSSL_NO_ENGINE
+
+ u_char *p, *last;
+ ENGINE *engine;
+
+ p = cert->data + sizeof("engine:") - 1;
+ last = (u_char *) ngx_strchr(p, ':');
+
+ if (last == NULL) {
+ *err = "invalid syntax";
+ return NULL;
+ }
+
+ *last = '\0';
+
+ engine = ENGINE_by_id((char *) p);
+
+ if (engine == NULL) {
+ *err = "ENGINE_by_id() failed";
+ return NULL;
+ }
+
+ if (!ENGINE_init(engine)) {
+ *err = "ENGINE_init() failed";
+ ENGINE_free(engine);
+ return NULL;
+ }
+
+ *last++ = ':';
+
+ struct {
+ const char *cert_id;
+ X509 *cert;
+ } params = { (char *) last, NULL };
+
+ if (!ENGINE_ctrl_cmd(engine, "LOAD_CERT_CTRL", 0, &params, NULL, 1)) {
+ *err = "ENGINE_ctrl_cmd() failed - Unable to get the certificate";
+ ENGINE_free(engine);
+ return NULL;
+ }
+
+ ENGINE_finish(engine);
+ ENGINE_free(engine);
+
+ /* set chain to null */
+
+ *chain = sk_X509_new_null();
+ if (*chain == NULL) {
+ *err = "sk_X509_new_null() failed";
+ X509_free(params.cert);
+ return NULL;
+ }
+
+ return params.cert;
+
+#else
+
+ *err = "loading \"engine:...\" certificate is not supported";
+ return NULL;
+
+#endif
+ }
+
if (ngx_strncmp(cert->data, "data:", sizeof("data:") - 1) == 0) {
bio = BIO_new_mem_buf(cert->data + sizeof("data:") - 1,
--
2.26.3

View File

@ -1,3 +1,13 @@
From 80c0ee172cceaef933ff5a451ec2a16213e03996 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lubo=C5=A1=20Uhliarik?= <luhliari@redhat.com>
Date: Wed, 22 Sep 2021 15:55:39 +0200
Subject: [PATCH] Set proper compiler optimalization level (O2) for perl
module.
---
src/http/modules/perl/Makefile.PL | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/http/modules/perl/Makefile.PL b/src/http/modules/perl/Makefile.PL diff --git a/src/http/modules/perl/Makefile.PL b/src/http/modules/perl/Makefile.PL
index 7edadcb..2ebb7c4 100644 index 7edadcb..2ebb7c4 100644
--- a/src/http/modules/perl/Makefile.PL --- a/src/http/modules/perl/Makefile.PL
@ -11,3 +21,6 @@ index 7edadcb..2ebb7c4 100644
LDDLFLAGS => "$ENV{NGX_PM_LDFLAGS}", LDDLFLAGS => "$ENV{NGX_PM_LDFLAGS}",
--
2.31.1

View File

@ -1,8 +1,17 @@
From a769a35a6197c76390e1dd8f5054d426fbbbda05 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lubo=C5=A1=20Uhliarik?= <luhliari@redhat.com>
Date: Wed, 22 Sep 2021 16:12:58 +0200
Subject: [PATCH] Init openssl engine properly
---
src/event/ngx_event_openssl.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c
index 7be4fb4..ab3865a 100644 index 270b200..f813458 100644
--- a/src/event/ngx_event_openssl.c --- a/src/event/ngx_event_openssl.c
+++ b/src/event/ngx_event_openssl.c +++ b/src/event/ngx_event_openssl.c
@@ -727,16 +727,24 @@ ngx_ssl_load_certificate_key(ngx_pool_t *pool, char **err, @@ -798,16 +798,24 @@ ngx_ssl_load_certificate_key(ngx_pool_t *pool, char **err,
return NULL; return NULL;
} }
@ -27,3 +36,6 @@ index 7be4fb4..ab3865a 100644
ENGINE_free(engine); ENGINE_free(engine);
return pkey; return pkey;
--
2.31.1

View File

@ -1,8 +1,21 @@
From cc7b92c61a2833ff9dc2b4dfba4591966769da78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lubo=C5=A1=20Uhliarik?= <luhliari@redhat.com>
Date: Tue, 21 Jun 2022 13:55:04 +0200
Subject: [PATCH] Enable TLSv1.3 by default in nginx
---
src/event/ngx_event_openssl.c | 77 ++++++++++++++------------
src/event/ngx_event_openssl.h | 1 +
src/http/modules/ngx_http_ssl_module.c | 3 +-
src/mail/ngx_mail_ssl_module.c | 3 +-
src/stream/ngx_stream_ssl_module.c | 3 +-
5 files changed, 46 insertions(+), 41 deletions(-)
diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c
index 345914f..d23967f 100644 index f813458..2e6a6c0 100644
--- a/src/event/ngx_event_openssl.c --- a/src/event/ngx_event_openssl.c
+++ b/src/event/ngx_event_openssl.c +++ b/src/event/ngx_event_openssl.c
@@ -252,6 +252,8 @@ ngx_ssl_init(ngx_log_t *log) @@ -258,6 +258,8 @@ ngx_ssl_init(ngx_log_t *log)
ngx_int_t ngx_int_t
ngx_ssl_create(ngx_ssl_t *ssl, ngx_uint_t protocols, void *data) ngx_ssl_create(ngx_ssl_t *ssl, ngx_uint_t protocols, void *data)
{ {
@ -11,7 +24,7 @@ index 345914f..d23967f 100644
ssl->ctx = SSL_CTX_new(SSLv23_method()); ssl->ctx = SSL_CTX_new(SSLv23_method());
if (ssl->ctx == NULL) { if (ssl->ctx == NULL) {
@@ -316,49 +318,54 @@ ngx_ssl_create(ngx_ssl_t *ssl, ngx_uint_t protocols, void *data) @@ -322,49 +324,54 @@ ngx_ssl_create(ngx_ssl_t *ssl, ngx_uint_t protocols, void *data)
SSL_CTX_set_options(ssl->ctx, SSL_OP_SINGLE_DH_USE); SSL_CTX_set_options(ssl->ctx, SSL_OP_SINGLE_DH_USE);
@ -77,7 +90,7 @@ index 345914f..d23967f 100644
+ +
+ /* Now, we have to scan for minimal protocol version, + /* Now, we have to scan for minimal protocol version,
+ *without allowing holes between min and max*/ + *without allowing holes between min and max*/
+#if SSL_OP_NO_TLSv1_3 +#ifdef SSL_OP_NO_TLSv1_3
+ if ((prot == TLS1_3_VERSION) && (protocols & NGX_SSL_TLSv1_2)) { + if ((prot == TLS1_3_VERSION) && (protocols & NGX_SSL_TLSv1_2)) {
+ prot = TLS1_2_VERSION; + prot = TLS1_2_VERSION;
+ } + }
@ -102,10 +115,10 @@ index 345914f..d23967f 100644
#ifdef SSL_OP_NO_COMPRESSION #ifdef SSL_OP_NO_COMPRESSION
SSL_CTX_set_options(ssl->ctx, SSL_OP_NO_COMPRESSION); SSL_CTX_set_options(ssl->ctx, SSL_OP_NO_COMPRESSION);
diff --git a/src/event/ngx_event_openssl.h b/src/event/ngx_event_openssl.h diff --git a/src/event/ngx_event_openssl.h b/src/event/ngx_event_openssl.h
index 61da0c5..fa7ac41 100644 index 329760d..5cee113 100644
--- a/src/event/ngx_event_openssl.h --- a/src/event/ngx_event_openssl.h
+++ b/src/event/ngx_event_openssl.h +++ b/src/event/ngx_event_openssl.h
@@ -145,6 +145,7 @@ typedef struct { @@ -152,6 +152,7 @@ typedef struct {
#endif #endif
@ -114,11 +127,11 @@ index 61da0c5..fa7ac41 100644
#define NGX_SSL_SSLv3 0x0004 #define NGX_SSL_SSLv3 0x0004
#define NGX_SSL_TLSv1 0x0008 #define NGX_SSL_TLSv1 0x0008
diff --git a/src/http/modules/ngx_http_ssl_module.c b/src/http/modules/ngx_http_ssl_module.c diff --git a/src/http/modules/ngx_http_ssl_module.c b/src/http/modules/ngx_http_ssl_module.c
index b3f8f47..8340a12 100644 index a47d696..94f30db 100644
--- a/src/http/modules/ngx_http_ssl_module.c --- a/src/http/modules/ngx_http_ssl_module.c
+++ b/src/http/modules/ngx_http_ssl_module.c +++ b/src/http/modules/ngx_http_ssl_module.c
@@ -613,8 +613,7 @@ ngx_http_ssl_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child) @@ -671,8 +671,7 @@ ngx_http_ssl_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
ngx_conf_merge_value(conf->early_data, prev->early_data, 0); ngx_conf_merge_value(conf->reject_handshake, prev->reject_handshake, 0);
ngx_conf_merge_bitmask_value(conf->protocols, prev->protocols, ngx_conf_merge_bitmask_value(conf->protocols, prev->protocols,
- (NGX_CONF_BITMASK_SET|NGX_SSL_TLSv1 - (NGX_CONF_BITMASK_SET|NGX_SSL_TLSv1
@ -128,10 +141,10 @@ index b3f8f47..8340a12 100644
ngx_conf_merge_size_value(conf->buffer_size, prev->buffer_size, ngx_conf_merge_size_value(conf->buffer_size, prev->buffer_size,
NGX_SSL_BUFSIZE); NGX_SSL_BUFSIZE);
diff --git a/src/mail/ngx_mail_ssl_module.c b/src/mail/ngx_mail_ssl_module.c diff --git a/src/mail/ngx_mail_ssl_module.c b/src/mail/ngx_mail_ssl_module.c
index 5544f75..3316a4b 100644 index 7eae83e..8328560 100644
--- a/src/mail/ngx_mail_ssl_module.c --- a/src/mail/ngx_mail_ssl_module.c
+++ b/src/mail/ngx_mail_ssl_module.c +++ b/src/mail/ngx_mail_ssl_module.c
@@ -291,8 +291,7 @@ ngx_mail_ssl_merge_conf(ngx_conf_t *cf, void *parent, void *child) @@ -306,8 +306,7 @@ ngx_mail_ssl_merge_conf(ngx_conf_t *cf, void *parent, void *child)
prev->prefer_server_ciphers, 0); prev->prefer_server_ciphers, 0);
ngx_conf_merge_bitmask_value(conf->protocols, prev->protocols, ngx_conf_merge_bitmask_value(conf->protocols, prev->protocols,
@ -142,10 +155,10 @@ index 5544f75..3316a4b 100644
ngx_conf_merge_uint_value(conf->verify, prev->verify, 0); ngx_conf_merge_uint_value(conf->verify, prev->verify, 0);
ngx_conf_merge_uint_value(conf->verify_depth, prev->verify_depth, 1); ngx_conf_merge_uint_value(conf->verify_depth, prev->verify_depth, 1);
diff --git a/src/stream/ngx_stream_ssl_module.c b/src/stream/ngx_stream_ssl_module.c diff --git a/src/stream/ngx_stream_ssl_module.c b/src/stream/ngx_stream_ssl_module.c
index ec9524e..37af046 100644 index d8c0471..cef590d 100644
--- a/src/stream/ngx_stream_ssl_module.c --- a/src/stream/ngx_stream_ssl_module.c
+++ b/src/stream/ngx_stream_ssl_module.c +++ b/src/stream/ngx_stream_ssl_module.c
@@ -625,8 +625,7 @@ ngx_stream_ssl_merge_conf(ngx_conf_t *cf, void *parent, void *child) @@ -641,8 +641,7 @@ ngx_stream_ssl_merge_conf(ngx_conf_t *cf, void *parent, void *child)
prev->prefer_server_ciphers, 0); prev->prefer_server_ciphers, 0);
ngx_conf_merge_bitmask_value(conf->protocols, prev->protocols, ngx_conf_merge_bitmask_value(conf->protocols, prev->protocols,
@ -155,3 +168,6 @@ index ec9524e..37af046 100644
ngx_conf_merge_uint_value(conf->verify, prev->verify, 0); ngx_conf_merge_uint_value(conf->verify, prev->verify, 0);
ngx_conf_merge_uint_value(conf->verify_depth, prev->verify_depth, 1); ngx_conf_merge_uint_value(conf->verify_depth, prev->verify_depth, 1);
--
2.31.1

View File

@ -7,7 +7,7 @@
<style type="text/css"> <style type="text/css">
/*<![CDATA[*/ /*<![CDATA[*/
body { body {
background-color: #fff; background-color: #FAF5F5;
color: #000; color: #000;
font-size: 0.9em; font-size: 0.9em;
font-family: sans-serif,helvetica; font-family: sans-serif,helvetica;
@ -15,19 +15,19 @@
padding: 0; padding: 0;
} }
:link { :link {
color: #c00; color: #0B2335;
} }
:visited { :visited {
color: #c00; color: #0B2335;
} }
a:hover { a:hover {
color: #f50; color: #0069DA;
} }
h1 { h1 {
text-align: center; text-align: center;
margin: 0; margin: 0;
padding: 0.6em 2em 0.4em; padding: 0.6em 2em 0.4em;
background-color: #900; background-color: #0B2335;
color: #fff; color: #fff;
font-weight: normal; font-weight: normal;
font-size: 1.75em; font-size: 1.75em;
@ -39,7 +39,7 @@
} }
h2 { h2 {
text-align: center; text-align: center;
background-color: #900; background-color: #0B2335;
font-size: 1.1em; font-size: 1.1em;
font-weight: bold; font-weight: bold;
color: #fff; color: #fff;
@ -64,7 +64,7 @@
} }
img { img {
border: 2px solid #fff; border: 2px solid #FAF5F5;
padding: 2px; padding: 2px;
margin: 2px; margin: 2px;
} }
@ -92,7 +92,7 @@
<p>Something has triggered missing webpage on your <p>Something has triggered missing webpage on your
website. This is the default 404 error page for website. This is the default 404 error page for
<strong>nginx</strong> that is distributed with <strong>nginx</strong> that is distributed with
Red Hat Enterprise Linux. It is located AlmaLinux. It is located
<tt>/usr/share/nginx/html/404.html</tt></p> <tt>/usr/share/nginx/html/404.html</tt></p>
<p>You should customize this error page for your own <p>You should customize this error page for your own
@ -100,7 +100,7 @@
the <strong>nginx</strong> configuration file the <strong>nginx</strong> configuration file
<tt>/etc/nginx/nginx.conf</tt>.</p> <tt>/etc/nginx/nginx.conf</tt>.</p>
<p>For information on Red Hat Enterprise Linux, please visit the <a href="http://www.redhat.com/">Red Hat, Inc. website</a>. The documentation for Red Hat Enterprise Linux is <a href="http://www.redhat.com/docs/manuals/enterprise/">available on the Red Hat, Inc. website</a>.</p> <p>For information on AlmaLinux, please visit the <a href="http://www.almalinux.org/">AlmaLinux website</a>.</p>
</div> </div>
</div> </div>
@ -110,10 +110,10 @@
src="nginx-logo.png" src="nginx-logo.png"
alt="[ Powered by nginx ]" alt="[ Powered by nginx ]"
width="121" height="32" /></a> width="121" height="32" /></a>
<a href="http://www.redhat.com/"><img <a href="http://www.almalinux.org/"><img
src="poweredby.png" src="poweredby.png"
alt="[ Powered by Red Hat Enterprise Linux ]" alt="[ Powered by AlmaLinux ]"
width="88" height="31" /></a> width="124" height="32" /></a>
</div> </div>
</div> </div>
</body> </body>

View File

@ -7,7 +7,7 @@
<style type="text/css"> <style type="text/css">
/*<![CDATA[*/ /*<![CDATA[*/
body { body {
background-color: #fff; background-color: #FAF5F5;
color: #000; color: #000;
font-size: 0.9em; font-size: 0.9em;
font-family: sans-serif,helvetica; font-family: sans-serif,helvetica;
@ -15,19 +15,19 @@
padding: 0; padding: 0;
} }
:link { :link {
color: #c00; color: #0B2335;
} }
:visited { :visited {
color: #c00; color: #0B2335;
} }
a:hover { a:hover {
color: #f50; color: #0069DA;
} }
h1 { h1 {
text-align: center; text-align: center;
margin: 0; margin: 0;
padding: 0.6em 2em 0.4em; padding: 0.6em 2em 0.4em;
background-color: #900; background-color: #0B2335;
color: #fff; color: #fff;
font-weight: normal; font-weight: normal;
font-size: 1.75em; font-size: 1.75em;
@ -39,7 +39,7 @@
} }
h2 { h2 {
text-align: center; text-align: center;
background-color: #900; background-color: #0B2335;
font-size: 1.1em; font-size: 1.1em;
font-weight: bold; font-weight: bold;
color: #fff; color: #fff;
@ -64,7 +64,7 @@
} }
img { img {
border: 2px solid #fff; border: 2px solid #FAF5F5;
padding: 2px; padding: 2px;
margin: 2px; margin: 2px;
} }
@ -92,7 +92,7 @@
<p>Something has triggered missing webpage on your <p>Something has triggered missing webpage on your
website. This is the default error page for website. This is the default error page for
<strong>nginx</strong> that is distributed with <strong>nginx</strong> that is distributed with
Red Hat Enterprise Linux. It is located AlmaLinux. It is located
<tt>/usr/share/nginx/html/50x.html</tt></p> <tt>/usr/share/nginx/html/50x.html</tt></p>
<p>You should customize this error page for your own <p>You should customize this error page for your own
@ -100,7 +100,7 @@
the <strong>nginx</strong> configuration file the <strong>nginx</strong> configuration file
<tt>/etc/nginx/nginx.conf</tt>.</p> <tt>/etc/nginx/nginx.conf</tt>.</p>
<p>For information on Red Hat Enterprise Linux, please visit the <a href="http://www.redhat.com/">Red Hat, Inc. website</a>. The documentation for Red Hat Enterprise Linux is <a href="http://www.redhat.com/docs/manuals/enterprise/">available on the Red Hat, Inc. website</a>.</p> <p>For information on AlmaLinux, please visit the <a href="http://www.almalinux.org/">AlmaLinux website</a>.</p>
</div> </div>
</div> </div>
@ -110,10 +110,10 @@
src="nginx-logo.png" src="nginx-logo.png"
alt="[ Powered by nginx ]" alt="[ Powered by nginx ]"
width="121" height="32" /></a> width="121" height="32" /></a>
<a href="http://www.redhat.com/"><img <a href="http://www.almalinux.org/"><img
src="poweredby.png" src="poweredby.png"
alt="[ Powered by Red Hat Enterprise Linux ]" alt="[ Powered by AlmaLinux ]"
width="88" height="31" /></a> width="124" height="32" /></a>
</div> </div>
</div> </div>
</body> </body>

View File

@ -16,5 +16,5 @@ Prevent dynamic modules from being enabled automatically
You may want to avoid dynamic modules being enabled automatically. Simply You may want to avoid dynamic modules being enabled automatically. Simply
remove this line from the top of /etc/nginx/nginx.conf: remove this line from the top of /etc/nginx/nginx.conf:
include /usr/lib64/nginx/modules/*.conf; include /usr/share/nginx/modules/*.conf;

View File

@ -1,117 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Test Page for the Nginx HTTP Server on Red Hat Enterprise Linux</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
/*<![CDATA[*/
body {
background-color: #fff;
color: #000;
font-size: 0.9em;
font-family: sans-serif,helvetica;
margin: 0;
padding: 0;
}
:link {
color: #c00;
}
:visited {
color: #c00;
}
a:hover {
color: #f50;
}
h1 {
text-align: center;
margin: 0;
padding: 0.6em 2em 0.4em;
background-color: #900;
color: #fff;
font-weight: normal;
font-size: 1.75em;
border-bottom: 2px solid #000;
}
h1 strong {
font-weight: bold;
font-size: 1.5em;
}
h2 {
text-align: center;
background-color: #900;
font-size: 1.1em;
font-weight: bold;
color: #fff;
margin: 0;
padding: 0.5em;
border-bottom: 2px solid #000;
}
hr {
display: none;
}
.content {
padding: 1em 5em;
}
.alert {
border: 2px solid #000;
}
img {
border: 2px solid #fff;
padding: 2px;
margin: 2px;
}
a:hover img {
border: 2px solid #294172;
}
.logos {
margin: 1em;
text-align: center;
}
/*]]>*/
</style>
</head>
<body>
<h1>Welcome to <strong>nginx</strong> on Red Hat Enterprise Linux!</h1>
<div class="content">
<p>This page is used to test the proper operation of the
<strong>nginx</strong> HTTP server after it has been
installed. If you can read this page, it means that the
web server installed at this site is working
properly.</p>
<div class="alert">
<h2>Website Administrator</h2>
<div class="content">
<p>This is the default <tt>index.html</tt> page that
is distributed with <strong>nginx</strong> on
Red Hat Enterprise Linux. It is located in
<tt>/usr/share/nginx/html</tt>.</p>
<p>You should now put your content in a location of
your choice and edit the <tt>root</tt> configuration
directive in the <strong>nginx</strong>
configuration file
<tt>/etc/nginx/nginx.conf</tt>.</p>
<p>For information on Red Hat Enterprise Linux, please visit the <a href="http://www.redhat.com/">Red Hat, Inc. website</a>. The documentation for Red Hat Enterprise Linux is <a href="http://www.redhat.com/docs/manuals/enterprise/">available on the Red Hat, Inc. website</a>.</p>
</div>
</div>
<div class="logos">
<a href="http://nginx.net/"><img
src="nginx-logo.png"
alt="[ Powered by nginx ]"
width="121" height="32" /></a>
<a href="http://www.redhat.com/"><img
src="poweredby.png"
alt="[ Powered by Red Hat Enterprise Linux ]"
width="88" height="31" /></a>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,20 @@
%_nginx_abiversion @@NGINX_ABIVERSION@@
%_nginx_srcdir @@NGINX_SRCDIR@@
%_nginx_buildsrcdir nginx-src
%_nginx_modsrcdir ..
%_nginx_modbuilddir ../%{_vpath_builddir}
%nginx_moddir @@NGINX_MODDIR@@
%nginx_modconfdir @@NGINX_MODCONFDIR@@
%nginx_modrequires Requires: nginx(abi) = %{_nginx_abiversion}
%nginx_modconfigure(:-:) \\\
%undefine _strict_symbol_defs_build \
cp -a "%{_nginx_srcdir}" "%{_nginx_buildsrcdir}" \
cd "%{_nginx_buildsrcdir}" \
nginx_ldopts="$RPM_LD_FLAGS -Wl,-E" \
./configure --with-compat --with-cc-opt="%{optflags} $(pcre-config --cflags)" --with-ld-opt="$nginx_ldopts" \\\
--add-dynamic-module=$(realpath %{_nginx_modsrcdir}) --builddir=$(realpath %{_nginx_modbuilddir}) %{**} \
cd -
%nginx_modbuild %{__make} -C "%{_nginx_buildsrcdir}" %{_make_output_sync} %{?_smp_mflags} %{_make_verbose} modules

View File

@ -1,13 +0,0 @@
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c
index aee7a58..bcceecb 100644
--- a/src/core/ngx_cycle.c
+++ b/src/core/ngx_cycle.c
@@ -1108,7 +1108,7 @@ ngx_reopen_files(ngx_cycle_t *cycle, ngx_uid_t user)
}
fd = ngx_open_file(file[i].name.data, NGX_FILE_APPEND,
- NGX_FILE_CREATE_OR_OPEN, NGX_FILE_DEFAULT_ACCESS);
+ NGX_FILE_CREATE_OR_OPEN, NGX_FILE_DEFAULT_ACCESS | 0220);
ngx_log_debug3(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
"reopen file \"%s\", old:%d new:%d",

View File

@ -0,0 +1,14 @@
-----BEGIN PGP SIGNATURE-----
iQHEBAABCAAuFiEEE8gqY7YDV2FW4wpOoOqYG2aw2WcFAmNPwgkQHGsucGF2bG92
QGY1LmNvbQAKCRCg6pgbZrDZZ521C/9stdPkXnyO46ZOHEBK0UhPXPLcLaeUPOj3
LZz0mS1pLeQrWVJcSzjn4x1VA1Mo24wJ2PDHVLDlz+wrGDWj+YQh0Pzt81AV/VWl
gDfbJ9ROfaXNUBMPWwKH5fxlocYYyYM3SlN/nwx5EDR8uB0mnSUPS+TV8SxW+252
IfGv8xtX4diEowVCCpkvqDkbEwWy4GQia1KHd0krfvi6Aha3NNNRkjyPUNrf42A5
lmqxp1PwKnb6IYEkoYYtehKARuFjY9d5rsaQSXzNXYnRqQYOzSB42wcxJCu/Lw2S
MfzY0b5j6PdVziBXQr/Bk8ge7sVT30oKD+LnKKL/CWHnFveykOAuvuihsD4VS1iB
1Ns2Pjdofzw7+OzlVWJ4SBlm6HPCXBSfg15jkXinDdU/lKT6Gv0n4Y4i3GWkdFKe
JuuDcvhM2dAl8PV9YrlaVK/1InHNb7jsksKLZ0MxOEj05QSOWT5kOAbQCRfKAc8/
S8kd48v9BSgC+PZjS6AG3+sM2YjwQvo=
=Ww/y
-----END PGP SIGNATURE-----

View File

@ -1,13 +0,0 @@
--- auto/cc/gcc.orig 2007-03-22 08:34:53.000000000 -0600
+++ auto/cc/gcc 2007-03-22 08:58:47.000000000 -0600
@@ -172,7 +172,9 @@
# stop on warning
-CFLAGS="$CFLAGS -Werror"
+# This combined with Fedora's FORTIFY_SOURCE=2 option causes it nginx
+# to not compile.
+#CFLAGS="$CFLAGS -Werror"
# debug
CFLAGS="$CFLAGS -g"

View File

@ -4,7 +4,7 @@
user nginx; user nginx;
worker_processes auto; worker_processes auto;
error_log /var/log/nginx/error.log; error_log /var/log/nginx/error.log notice;
pid /run/nginx.pid; pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
@ -23,9 +23,8 @@ http {
sendfile on; sendfile on;
tcp_nopush on; tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65; keepalive_timeout 65;
types_hash_max_size 2048; types_hash_max_size 4096;
include /etc/nginx/mime.types; include /etc/nginx/mime.types;
default_type application/octet-stream; default_type application/octet-stream;
@ -36,31 +35,28 @@ http {
include /etc/nginx/conf.d/*.conf; include /etc/nginx/conf.d/*.conf;
server { server {
listen 80 default_server; listen 80;
listen [::]:80 default_server; listen [::]:80;
server_name _; server_name _;
root /usr/share/nginx/html; root /usr/share/nginx/html;
# Load configuration files for the default server block. # Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf; include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html; error_page 404 /404.html;
location = /40x.html { location = /404.html {
} }
error_page 500 502 503 504 /50x.html; error_page 500 502 503 504 /50x.html;
location = /50x.html { location = /50x.html {
} }
} }
# Settings for a TLS enabled server. # Settings for a TLS enabled server.
# #
# server { # server {
# listen 443 ssl http2 default_server; # listen 443 ssl http2;
# listen [::]:443 ssl http2 default_server; # listen [::]:443 ssl http2;
# server_name _; # server_name _;
# root /usr/share/nginx/html; # root /usr/share/nginx/html;
# #
@ -74,15 +70,12 @@ http {
# # Load configuration files for the default server block. # # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf; # include /etc/nginx/default.d/*.conf;
# #
# location / {
# }
#
# error_page 404 /404.html; # error_page 404 /404.html;
# location = /40x.html { # location = /404.html {
# } # }
# #
# error_page 500 502 503 504 /50x.html; # error_page 500 502 503 504 /50x.html;
# location = /50x.html { # location = /50x.html {
# } # }
# } # }

View File

@ -1,10 +1,11 @@
/var/log/nginx/*log { /var/log/nginx/*.log {
create 0664 nginx root create 0640 nginx root
daily daily
rotate 10 rotate 10
missingok missingok
notifempty notifempty
compress compress
delaycompress
sharedscripts sharedscripts
postrotate postrotate
/bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true

View File

@ -1,6 +1,7 @@
[Unit] [Unit]
Description=The nginx HTTP and reverse proxy server Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service] [Service]
Type=forking Type=forking
@ -11,7 +12,7 @@ PIDFile=/run/nginx.pid
ExecStartPre=/usr/bin/rm -f /run/nginx.pid ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID ExecReload=/usr/sbin/nginx -s reload
KillSignal=SIGQUIT KillSignal=SIGQUIT
TimeoutStopSec=5 TimeoutStopSec=5
KillMode=mixed KillMode=mixed

14
SOURCES/nginxmods.attr Normal file
View File

@ -0,0 +1,14 @@
%__nginxmods_requires() %{lua:
-- Match buildroot paths of the form
-- /PATH/OF/BUILDROOT/usr/lib/nginx/modules/ and
-- /PATH/OF/BUILDROOT/usr/lib64/nginx/modules/
-- generating a line of the form:
-- nginx(abi) = VERSION
local path = rpm.expand("%1")
if path:match("/usr/lib%d*/nginx/modules/.*") then
local requires = "nginx(abi) = " .. rpm.expand("%{_nginx_abiversion}")
print(requires)
end
}
%__nginxmods_path ^%{_prefix}/lib(64)?/nginx/modules/.*\\.so$

View File

@ -5,10 +5,20 @@
# See: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af19 # See: https://src.fedoraproject.org/rpms/redhat-rpm-config/c/078af19
%undefine _strict_symbol_defs_build %undefine _strict_symbol_defs_build
%global with_gperftools 0
%bcond_with geoip %bcond_with geoip
# nginx gperftools support should be disabled for RHEL >= 8
# see: https://bugzilla.redhat.com/show_bug.cgi?id=1931402
%if 0%{?rhel} >= 8
%global with_gperftools 0
%else
# gperftools exists only on selected arches
# gperftools *detection* is failing on ppc64*, possibly only configure
# bug, but disable anyway.
%ifnarch s390 s390x ppc64 ppc64le
%global with_gperftools 1
%endif
%endif
%global with_aio 1 %global with_aio 1
@ -16,26 +26,58 @@
%global with_mailcap_mimetypes 1 %global with_mailcap_mimetypes 1
%endif %endif
# kTLS requires OpenSSL 3.0 (default in F36+ and EL9+, available in EPEL8)
%if 0%{?fedora} >= 36 || 0%{?rhel} >= 8
%global with_ktls 1
%endif
# Build against OpenSSL 1.1 on EL7
%if 0%{?rhel} == 7
%global openssl_pkgversion 11
%endif
# Build against OpenSSL 3 on EL8
%if 0%{?rhel} == 8
%global openssl_pkgversion 3
%endif
# Cf. https://www.nginx.com/blog/creating-installable-packages-dynamic-modules/
%global nginx_abiversion %{version}
%global nginx_moduledir %{_libdir}/nginx/modules
%global nginx_moduleconfdir %{_datadir}/nginx/modules
%global nginx_srcdir %{_usrsrc}/%{name}-%{version}-%{release}
# Do not generate provides/requires from nginx sources
%global __provides_exclude_from ^%{nginx_srcdir}/.*$
%global __requires_exclude_from ^%{nginx_srcdir}/.*$
Name: nginx Name: nginx
Epoch: 1 Epoch: 1
Version: 1.16.1 Version: 1.22.1
Release: 1%{?dist} Release: 3%{?dist}.alma
Summary: A high performance web server and reverse proxy server Summary: A high performance web server and reverse proxy server
Group: System Environment/Daemons
# BSD License (two clause) # BSD License (two clause)
# http://www.freebsd.org/copyright/freebsd-license.html # http://www.freebsd.org/copyright/freebsd-license.html
License: BSD License: BSD
URL: http://nginx.org/ URL: https://nginx.org
Source0: https://nginx.org/download/nginx-%{version}.tar.gz Source0: https://nginx.org/download/nginx-%{version}.tar.gz
Source1: https://nginx.org/download/nginx-%{version}.tar.gz.asc
# Keys are found here: https://nginx.org/en/pgp_keys.html
Source2: https://nginx.org/keys/maxim.key
Source3: https://nginx.org/keys/mdounin.key
Source4: https://nginx.org/keys/sb.key
Source5: https://nginx.org/keys/thresh.key
Source10: nginx.service Source10: nginx.service
Source11: nginx.logrotate Source11: nginx.logrotate
Source12: nginx.conf Source12: nginx.conf
Source13: nginx-upgrade Source13: nginx-upgrade
Source14: nginx-upgrade.8 Source14: nginx-upgrade.8
Source100: index.html Source15: macros.nginxmods.in
Source101: poweredby.png Source16: nginxmods.attr
Source102: nginx-logo.png Source102: nginx-logo.png
Source103: 404.html Source103: 404.html
Source104: 50x.html Source104: 50x.html
@ -44,55 +86,77 @@ Source210: UPGRADE-NOTES-1.6-to-1.10
# removes -Werror in upstream build scripts. -Werror conflicts with # removes -Werror in upstream build scripts. -Werror conflicts with
# -D_FORTIFY_SOURCE=2 causing warnings to turn into errors. # -D_FORTIFY_SOURCE=2 causing warnings to turn into errors.
Patch0: nginx-auto-cc-gcc.patch Patch0: 0001-remove-Werror-in-upstream-build-scripts.patch
# downstream patch - changing logs permissions to 664 instead # downstream patch - fix PIDFile race condition (rhbz#1869026)
# previous 644 # rejected upstream: https://trac.nginx.org/nginx/ticket/1897
Patch1: nginx-1.14.0-logs-perm.patch Patch1: 0002-fix-PIDFile-handling.patch
# PKCS#11 engine fix # downstream patch for RHEL - https://bugzilla.redhat.com/show_bug.cgi?id=1955564
Patch2: nginx-1.16.0-pkcs11.patch Patch2: 0003-Support-loading-cert-hardware-token-PKC.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1655530 # downstream patch for RHEL - https://bugzilla.redhat.com/show_bug.cgi?id=2006822
Patch3: nginx-1.14.1-perl-module-hardening.patch Patch3: 0004-Set-proper-compiler-optimalization-level-O2-for-perl.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1643647 # downstream patch for RHEL - https://bugzilla.redhat.com/show_bug.cgi?id=2006420
Patch4: nginx-1.16.0-enable-tls1v3-by-default.patch Patch4: 0005-Init-openssl-engine-properly.patch
# downstream patch for RHEL - https://bugzilla.redhat.com/show_bug.cgi?id=2028781
Patch5: 0007-Enable-TLSv1.3-by-default.patch
BuildRequires: make
BuildRequires: gcc
BuildRequires: gnupg2
%if 0%{?with_gperftools} %if 0%{?with_gperftools}
BuildRequires: gperftools-devel BuildRequires: gperftools-devel
%endif %endif
BuildRequires: openssl-devel BuildRequires: openssl%{?openssl_pkgversion}-devel
BuildRequires: pcre-devel BuildRequires: pcre2-devel
BuildRequires: zlib-devel BuildRequires: zlib-devel
Requires: nginx-filesystem = %{epoch}:%{version}-%{release} Requires: nginx-filesystem = %{epoch}:%{version}-%{release}
%if 0%{?el7}
%if 0%{?rhel} > 0 && 0%{?rhel} < 8 # centos-logos el7 does not provide 'system-indexhtml'
# Introduced at 1:1.10.0-1 to ease upgrade path. To be removed later. Requires: system-logos redhat-indexhtml
Requires: nginx-all-modules = %{epoch}:%{version}-%{release} # need to remove epel7 geoip sub-package, doesn't work anymore
# https://bugzilla.redhat.com/show_bug.cgi?id=1576034
# https://bugzilla.redhat.com/show_bug.cgi?id=1664957
Obsoletes: nginx-mod-http-geoip <= 1:1.16
%else
Requires: system-logos-httpd
%endif %endif
Requires: openssl
Requires: pcre
Requires(pre): nginx-filesystem
%if 0%{?with_mailcap_mimetypes}
Requires: nginx-mimetypes
%endif
Provides: webserver Provides: webserver
%if 0%{?fedora} || 0%{?rhel} >= 8
Recommends: logrotate
%endif
Requires: %{name}-core = %{epoch}:%{version}-%{release}
BuildRequires: systemd BuildRequires: systemd
Requires(post): systemd Requires(post): systemd
Requires(preun): systemd Requires(preun): systemd
Requires(postun): systemd Requires(postun): systemd
# For external nginx modules
Provides: nginx(abi) = %{nginx_abiversion}
%description %description
Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
IMAP protocols, with a strong focus on high concurrency, performance and low IMAP protocols, with a strong focus on high concurrency, performance and low
memory usage. memory usage.
%package core
Summary: nginx minimal core
%if 0%{?with_mailcap_mimetypes}
Requires: nginx-mimetypes
%endif
Requires: openssl%{?openssl_pkgversion}-libs
Requires(pre): nginx-filesystem
Conflicts: nginx < 1:1.20.1-13
%description core
nginx minimal core
%package all-modules %package all-modules
Group: System Environment/Daemons
Summary: A meta package that installs all available Nginx modules Summary: A meta package that installs all available Nginx modules
BuildArch: noarch BuildArch: noarch
@ -106,10 +170,9 @@ Requires: nginx-mod-mail = %{epoch}:%{version}-%{release}
Requires: nginx-mod-stream = %{epoch}:%{version}-%{release} Requires: nginx-mod-stream = %{epoch}:%{version}-%{release}
%description all-modules %description all-modules
A meta package that installs all available Nginx modules. Meta package that installs all available nginx modules.
%package filesystem %package filesystem
Group: System Environment/Daemons
Summary: The basic directory layout for the Nginx server Summary: The basic directory layout for the Nginx server
BuildArch: noarch BuildArch: noarch
Requires(pre): shadow-utils Requires(pre): shadow-utils
@ -121,10 +184,9 @@ directories.
%if %{with geoip} %if %{with geoip}
%package mod-http-geoip %package mod-http-geoip
Group: System Environment/Daemons
Summary: Nginx HTTP geoip module Summary: Nginx HTTP geoip module
BuildRequires: GeoIP-devel BuildRequires: GeoIP-devel
Requires: nginx Requires: nginx(abi) = %{nginx_abiversion}
Requires: GeoIP Requires: GeoIP
%description mod-http-geoip %description mod-http-geoip
@ -132,24 +194,22 @@ Requires: GeoIP
%endif %endif
%package mod-http-image-filter %package mod-http-image-filter
Group: System Environment/Daemons
Summary: Nginx HTTP image filter module Summary: Nginx HTTP image filter module
BuildRequires: gd-devel BuildRequires: gd-devel
Requires: nginx Requires: nginx(abi) = %{nginx_abiversion}
Requires: gd Requires: gd
%description mod-http-image-filter %description mod-http-image-filter
%{summary}. %{summary}.
%package mod-http-perl %package mod-http-perl
Group: System Environment/Daemons
Summary: Nginx HTTP perl module Summary: Nginx HTTP perl module
BuildRequires: perl-devel BuildRequires: perl-devel
%if 0%{?fedora} >= 24 %if 0%{?fedora} >= 24 || 0%{?rhel} >= 7
BuildRequires: perl-generators BuildRequires: perl-generators
%endif %endif
BuildRequires: perl(ExtUtils::Embed) BuildRequires: perl(ExtUtils::Embed)
Requires: nginx Requires: nginx(abi) = %{nginx_abiversion}
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
Requires: perl(constant) Requires: perl(constant)
@ -157,39 +217,55 @@ Requires: perl(constant)
%{summary}. %{summary}.
%package mod-http-xslt-filter %package mod-http-xslt-filter
Group: System Environment/Daemons
Summary: Nginx XSLT module Summary: Nginx XSLT module
BuildRequires: libxslt-devel BuildRequires: libxslt-devel
Requires: nginx Requires: nginx(abi) = %{nginx_abiversion}
%description mod-http-xslt-filter %description mod-http-xslt-filter
%{summary}. %{summary}.
%package mod-mail %package mod-mail
Group: System Environment/Daemons
Summary: Nginx mail modules Summary: Nginx mail modules
Requires: nginx Requires: nginx(abi) = %{nginx_abiversion}
%description mod-mail %description mod-mail
%{summary}. %{summary}.
%package mod-stream %package mod-stream
Group: System Environment/Daemons
Summary: Nginx stream modules Summary: Nginx stream modules
Requires: nginx Requires: nginx(abi) = %{nginx_abiversion}
%description mod-stream %description mod-stream
%{summary}. %{summary}.
%package mod-devel
Summary: Nginx module development files
Requires: nginx = %{epoch}:%{version}-%{release}
Requires: make
Requires: gcc
Requires: gd-devel
%if 0%{?with_gperftools}
Requires: gperftools-devel
%endif
%if %{with geoip}
Requires: GeoIP-devel
%endif
Requires: libxslt-devel
Requires: openssl%{?openssl_pkgversion}-devel
Requires: pcre2-devel
Requires: perl-devel
Requires: perl(ExtUtils::Embed)
Requires: zlib-devel
%description mod-devel
%{summary}.
%prep %prep
%setup -q # Combine all keys from upstream into one file
%patch0 -p0 cat %{S:2} %{S:3} %{S:4} %{S:5} > %{_builddir}/%{name}.gpg
%patch1 -p1 %{gpgverify} --keyring='%{_builddir}/%{name}.gpg' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%patch2 -p1 %autosetup -p1
%patch3 -p1
%patch4 -p1
cp %{SOURCE200} %{SOURCE210} %{SOURCE10} %{SOURCE12} . cp %{SOURCE200} %{SOURCE210} %{SOURCE10} %{SOURCE12} .
%if 0%{?rhel} > 0 && 0%{?rhel} < 8 %if 0%{?rhel} > 0 && 0%{?rhel} < 8
@ -197,6 +273,17 @@ sed -i -e 's#KillMode=.*#KillMode=process#g' nginx.service
sed -i -e 's#PROFILE=SYSTEM#HIGH:!aNULL:!MD5#' nginx.conf sed -i -e 's#PROFILE=SYSTEM#HIGH:!aNULL:!MD5#' nginx.conf
%endif %endif
%if 0%{?openssl_pkgversion}
sed \
-e 's|\(ngx_feature_path=\)$|\1%{_includedir}/openssl%{openssl_pkgversion}|' \
-e 's|\(ngx_feature_libs="\)|\1-L%{_libdir}/openssl%{openssl_pkgversion} |' \
-i auto/lib/openssl/conf
%endif
# Prepare sources for installation
cp -a ../%{name}-%{version} ../%{name}-%{version}-%{release}-src
mv ../%{name}-%{version}-%{release}-src .
%build %build
# nginx does not utilize a standard configure script. It has its own # nginx does not utilize a standard configure script. It has its own
@ -204,10 +291,12 @@ sed -i -e 's#PROFILE=SYSTEM#HIGH:!aNULL:!MD5#' nginx.conf
# to error out. This is is also the reason for the DESTDIR environment # to error out. This is is also the reason for the DESTDIR environment
# variable. # variable.
export DESTDIR=%{buildroot} export DESTDIR=%{buildroot}
./configure \ # So the perl module finds its symbols:
nginx_ldopts="$RPM_LD_FLAGS -Wl,-E"
if ! ./configure \
--prefix=%{_datadir}/nginx \ --prefix=%{_datadir}/nginx \
--sbin-path=%{_sbindir}/nginx \ --sbin-path=%{_sbindir}/nginx \
--modules-path=%{_libdir}/nginx/modules \ --modules-path=%{nginx_moduledir} \
--conf-path=%{_sysconfdir}/nginx/nginx.conf \ --conf-path=%{_sysconfdir}/nginx/nginx.conf \
--error-log-path=%{_localstatedir}/log/nginx/error.log \ --error-log-path=%{_localstatedir}/log/nginx/error.log \
--http-log-path=%{_localstatedir}/log/nginx/access.log \ --http-log-path=%{_localstatedir}/log/nginx/access.log \
@ -220,51 +309,61 @@ export DESTDIR=%{buildroot}
--lock-path=/run/lock/subsys/nginx \ --lock-path=/run/lock/subsys/nginx \
--user=%{nginx_user} \ --user=%{nginx_user} \
--group=%{nginx_user} \ --group=%{nginx_user} \
--with-compat \
--with-debug \
%if 0%{?with_aio} %if 0%{?with_aio}
--with-file-aio \ --with-file-aio \
%endif %endif
--with-ipv6 \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-stream_ssl_preread_module \
--with-http_addition_module \
--with-http_xslt_module=dynamic \
--with-http_image_filter_module=dynamic \
%if %{with geoip}
--with-http_geoip_module=dynamic \
%endif
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_degradation_module \
--with-http_slice_module \
--with-http_stub_status_module \
--with-http_perl_module=dynamic \
--with-http_auth_request_module \
--with-mail=dynamic \
--with-mail_ssl_module \
--with-pcre \
--with-pcre-jit \
--with-stream=dynamic \
--with-stream_ssl_module \
%if 0%{?with_gperftools} %if 0%{?with_gperftools}
--with-google_perftools_module \ --with-google_perftools_module \
%endif %endif
--with-debug \ --with-http_addition_module \
--with-cc-opt="%{optflags} $(pcre-config --cflags)" \ --with-http_auth_request_module \
--with-ld-opt="$RPM_LD_FLAGS -Wl,-E" # so the perl module finds its symbols --with-http_dav_module \
--with-http_degradation_module \
--with-http_flv_module \
%if %{with geoip}
--with-http_geoip_module=dynamic \
--with-stream_geoip_module=dynamic \
%endif
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_image_filter_module=dynamic \
--with-http_mp4_module \
--with-http_perl_module=dynamic \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_v2_module \
--with-http_xslt_module=dynamic \
--with-mail=dynamic \
--with-mail_ssl_module \
%if 0%{?with_ktls}
--with-openssl-opt=enable-ktls \
%endif
--with-pcre \
--with-pcre-jit \
--with-stream=dynamic \
--with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-threads \
--with-cc-opt="%{optflags} $(pcre2-config --cflags)" \
--with-ld-opt="$nginx_ldopts"; then
: configure failed
cat objs/autoconf.err
exit 1
fi
make %{?_smp_mflags} %make_build
%install %install
make install DESTDIR=%{buildroot} INSTALLDIRS=vendor %make_install INSTALLDIRS=vendor
find %{buildroot} -type f -name .packlist -exec rm -f '{}' \; find %{buildroot} -type f -name .packlist -exec rm -f '{}' \;
find %{buildroot} -type f -name perllocal.pod -exec rm -f '{}' \; find %{buildroot} -type f -name perllocal.pod -exec rm -f '{}' \;
@ -287,15 +386,39 @@ install -p -d -m 0700 %{buildroot}%{_localstatedir}/lib/nginx/tmp
install -p -d -m 0700 %{buildroot}%{_localstatedir}/log/nginx install -p -d -m 0700 %{buildroot}%{_localstatedir}/log/nginx
install -p -d -m 0755 %{buildroot}%{_datadir}/nginx/html install -p -d -m 0755 %{buildroot}%{_datadir}/nginx/html
install -p -d -m 0755 %{buildroot}%{_datadir}/nginx/modules install -p -d -m 0755 %{buildroot}%{nginx_moduleconfdir}
install -p -d -m 0755 %{buildroot}%{_libdir}/nginx/modules install -p -d -m 0755 %{buildroot}%{nginx_moduledir}
install -p -m 0644 ./nginx.conf \ install -p -m 0644 ./nginx.conf \
%{buildroot}%{_sysconfdir}/nginx %{buildroot}%{_sysconfdir}/nginx
install -p -m 0644 %{SOURCE100} \
%{buildroot}%{_datadir}/nginx/html rm -f %{buildroot}%{_datadir}/nginx/html/index.html
install -p -m 0644 %{SOURCE101} %{SOURCE102} \ %if 0%{?el7}
ln -s ../../doc/HTML/index.html \
%{buildroot}%{_datadir}/nginx/html/index.html
ln -s ../../doc/HTML/img \
%{buildroot}%{_datadir}/nginx/html/img
ln -s ../../doc/HTML/en-US \
%{buildroot}%{_datadir}/nginx/html/en-US
%else
ln -s ../../testpage/index.html \
%{buildroot}%{_datadir}/nginx/html/index.html
%endif
install -p -m 0644 %{SOURCE102} \
%{buildroot}%{_datadir}/nginx/html %{buildroot}%{_datadir}/nginx/html
ln -s nginx-logo.png %{buildroot}%{_datadir}/nginx/html/poweredby.png
mkdir -p %{buildroot}%{_datadir}/nginx/html/icons
# Symlink for the powered-by-$DISTRO image:
ln -s ../../../pixmaps/poweredby.png \
%{buildroot}%{_datadir}/nginx/html/icons/poweredby.png
%if 0%{?rhel} >= 9
ln -s ../../pixmaps/system-noindex-logo.png \
%{buildroot}%{_datadir}/nginx/html/system_noindex_logo.png
%endif
install -p -m 0644 %{SOURCE103} %{SOURCE104} \ install -p -m 0644 %{SOURCE103} %{SOURCE104} \
%{buildroot}%{_datadir}/nginx/html %{buildroot}%{_datadir}/nginx/html
@ -309,25 +432,41 @@ install -p -D -m 0644 %{_builddir}/nginx-%{version}/objs/nginx.8 \
install -p -D -m 0755 %{SOURCE13} %{buildroot}%{_bindir}/nginx-upgrade install -p -D -m 0755 %{SOURCE13} %{buildroot}%{_bindir}/nginx-upgrade
install -p -D -m 0644 %{SOURCE14} %{buildroot}%{_mandir}/man8/nginx-upgrade.8 install -p -D -m 0644 %{SOURCE14} %{buildroot}%{_mandir}/man8/nginx-upgrade.8
for i in ftdetect indent syntax; do for i in ftdetect ftplugin indent syntax; do
install -p -D -m644 contrib/vim/${i}/nginx.vim \ install -p -D -m644 contrib/vim/${i}/nginx.vim \
%{buildroot}%{_datadir}/vim/vimfiles/${i}/nginx.vim %{buildroot}%{_datadir}/vim/vimfiles/${i}/nginx.vim
done done
%if %{with geoip} %if %{with geoip}
echo 'load_module "%{_libdir}/nginx/modules/ngx_http_geoip_module.so";' \ echo 'load_module "%{nginx_moduledir}/ngx_http_geoip_module.so";' \
> %{buildroot}%{_datadir}/nginx/modules/mod-http-geoip.conf > %{buildroot}%{nginx_moduleconfdir}/mod-http-geoip.conf
%endif %endif
echo 'load_module "%{_libdir}/nginx/modules/ngx_http_image_filter_module.so";' \ echo 'load_module "%{nginx_moduledir}/ngx_http_image_filter_module.so";' \
> %{buildroot}%{_datadir}/nginx/modules/mod-http-image-filter.conf > %{buildroot}%{nginx_moduleconfdir}/mod-http-image-filter.conf
echo 'load_module "%{_libdir}/nginx/modules/ngx_http_perl_module.so";' \ echo 'load_module "%{nginx_moduledir}/ngx_http_perl_module.so";' \
> %{buildroot}%{_datadir}/nginx/modules/mod-http-perl.conf > %{buildroot}%{nginx_moduleconfdir}/mod-http-perl.conf
echo 'load_module "%{_libdir}/nginx/modules/ngx_http_xslt_filter_module.so";' \ echo 'load_module "%{nginx_moduledir}/ngx_http_xslt_filter_module.so";' \
> %{buildroot}%{_datadir}/nginx/modules/mod-http-xslt-filter.conf > %{buildroot}%{nginx_moduleconfdir}/mod-http-xslt-filter.conf
echo 'load_module "%{_libdir}/nginx/modules/ngx_mail_module.so";' \ echo 'load_module "%{nginx_moduledir}/ngx_mail_module.so";' \
> %{buildroot}%{_datadir}/nginx/modules/mod-mail.conf > %{buildroot}%{nginx_moduleconfdir}/mod-mail.conf
echo 'load_module "%{_libdir}/nginx/modules/ngx_stream_module.so";' \ echo 'load_module "%{nginx_moduledir}/ngx_stream_module.so";' \
> %{buildroot}%{_datadir}/nginx/modules/mod-stream.conf > %{buildroot}%{nginx_moduleconfdir}/mod-stream.conf
# Install files for supporting nginx module builds
## Install source files
mkdir -p %{buildroot}%{_usrsrc}
mv %{name}-%{version}-%{release}-src %{buildroot}%{nginx_srcdir}
## Install rpm macros
mkdir -p %{buildroot}%{_rpmmacrodir}
sed -e "s|@@NGINX_ABIVERSION@@|%{nginx_abiversion}|g" \
-e "s|@@NGINX_MODDIR@@|%{nginx_moduledir}|g" \
-e "s|@@NGINX_MODCONFDIR@@|%{nginx_moduleconfdir}|g" \
-e "s|@@NGINX_SRCDIR@@|%{nginx_srcdir}|g" \
%{SOURCE15} > %{buildroot}%{_rpmmacrodir}/macros.nginxmods
## Install dependency generator
install -Dpm0644 -t %{buildroot}%{_fileattrsdir} %{SOURCE16}
%pre filesystem %pre filesystem
getent group %{nginx_user} > /dev/null || groupadd -r %{nginx_user} getent group %{nginx_user} > /dev/null || groupadd -r %{nginx_user}
@ -381,21 +520,24 @@ if [ $1 -ge 1 ]; then
fi fi
%files %files
%license LICENSE
%doc CHANGES README README.dynamic
%if 0%{?rhel} == 7 %if 0%{?rhel} == 7
%doc UPGRADE-NOTES-1.6-to-1.10 %doc UPGRADE-NOTES-1.6-to-1.10
%endif %endif
%{_datadir}/nginx/html/* %{_datadir}/nginx/html/*
%{_bindir}/nginx-upgrade %{_bindir}/nginx-upgrade
%{_sbindir}/nginx
%{_datadir}/vim/vimfiles/ftdetect/nginx.vim %{_datadir}/vim/vimfiles/ftdetect/nginx.vim
%{_datadir}/vim/vimfiles/ftplugin/nginx.vim
%{_datadir}/vim/vimfiles/syntax/nginx.vim %{_datadir}/vim/vimfiles/syntax/nginx.vim
%{_datadir}/vim/vimfiles/indent/nginx.vim %{_datadir}/vim/vimfiles/indent/nginx.vim
%{_mandir}/man3/nginx.3pm* %{_mandir}/man3/nginx.3pm*
%{_mandir}/man8/nginx.8* %{_mandir}/man8/nginx.8*
%{_mandir}/man8/nginx-upgrade.8* %{_mandir}/man8/nginx-upgrade.8*
%{_unitdir}/nginx.service %{_unitdir}/nginx.service
%files core
%license LICENSE
%doc CHANGES README README.dynamic
%{_sbindir}/nginx
%config(noreplace) %{_sysconfdir}/nginx/fastcgi.conf %config(noreplace) %{_sysconfdir}/nginx/fastcgi.conf
%config(noreplace) %{_sysconfdir}/nginx/fastcgi.conf.default %config(noreplace) %{_sysconfdir}/nginx/fastcgi.conf.default
%config(noreplace) %{_sysconfdir}/nginx/fastcgi_params %config(noreplace) %{_sysconfdir}/nginx/fastcgi_params
@ -416,8 +558,11 @@ fi
%config(noreplace) %{_sysconfdir}/logrotate.d/nginx %config(noreplace) %{_sysconfdir}/logrotate.d/nginx
%attr(770,%{nginx_user},root) %dir %{_localstatedir}/lib/nginx %attr(770,%{nginx_user},root) %dir %{_localstatedir}/lib/nginx
%attr(770,%{nginx_user},root) %dir %{_localstatedir}/lib/nginx/tmp %attr(770,%{nginx_user},root) %dir %{_localstatedir}/lib/nginx/tmp
%attr(770,%{nginx_user},root) %dir %{_localstatedir}/log/nginx %attr(711,root,root) %dir %{_localstatedir}/log/nginx
%dir %{_libdir}/nginx/modules %ghost %attr(640,%{nginx_user},root) %{_localstatedir}/log/nginx/access.log
%ghost %attr(640,%{nginx_user},root) %{_localstatedir}/log/nginx/error.log
%dir %{nginx_moduledir}
%dir %{nginx_moduleconfdir}
%files all-modules %files all-modules
@ -432,97 +577,223 @@ fi
%if %{with geoip} %if %{with geoip}
%files mod-http-geoip %files mod-http-geoip
%{_datadir}/nginx/modules/mod-http-geoip.conf %{nginx_moduleconfdir}/mod-http-geoip.conf
%{_libdir}/nginx/modules/ngx_http_geoip_module.so %{nginx_moduledir}/ngx_http_geoip_module.so
%endif %endif
%files mod-http-image-filter %files mod-http-image-filter
%{_datadir}/nginx/modules/mod-http-image-filter.conf %{nginx_moduleconfdir}/mod-http-image-filter.conf
%{_libdir}/nginx/modules/ngx_http_image_filter_module.so %{nginx_moduledir}/ngx_http_image_filter_module.so
%files mod-http-perl %files mod-http-perl
%{_datadir}/nginx/modules/mod-http-perl.conf %{nginx_moduleconfdir}/mod-http-perl.conf
%{_libdir}/nginx/modules/ngx_http_perl_module.so %{nginx_moduledir}/ngx_http_perl_module.so
%dir %{perl_vendorarch}/auto/nginx %dir %{perl_vendorarch}/auto/nginx
%{perl_vendorarch}/nginx.pm %{perl_vendorarch}/nginx.pm
%{perl_vendorarch}/auto/nginx/nginx.so %{perl_vendorarch}/auto/nginx/nginx.so
%files mod-http-xslt-filter %files mod-http-xslt-filter
%{_datadir}/nginx/modules/mod-http-xslt-filter.conf %{nginx_moduleconfdir}/mod-http-xslt-filter.conf
%{_libdir}/nginx/modules/ngx_http_xslt_filter_module.so %{nginx_moduledir}/ngx_http_xslt_filter_module.so
%files mod-mail %files mod-mail
%{_datadir}/nginx/modules/mod-mail.conf %{nginx_moduleconfdir}/mod-mail.conf
%{_libdir}/nginx/modules/ngx_mail_module.so %{nginx_moduledir}/ngx_mail_module.so
%files mod-stream %files mod-stream
%{_datadir}/nginx/modules/mod-stream.conf %{nginx_moduleconfdir}/mod-stream.conf
%{_libdir}/nginx/modules/ngx_stream_module.so %{nginx_moduledir}/ngx_stream_module.so
%files mod-devel
%{_rpmmacrodir}/macros.nginxmods
%{_fileattrsdir}/nginxmods.attr
%{nginx_srcdir}/
%changelog %changelog
* Thu Aug 29 2019 Lubos Uhliarik <luhliari@redhat.com> - 1:1.16.1-1 * Wed Mar 29 2023 Eduard Abdullin <eabdullin@almalinux.org> - 1:1.22.1-3.alma
- update to 1.16.1 - Debrand for AlmaLinux
- Resolves: #1745697 - CVE-2019-9511 nginx:1.16/nginx: HTTP/2: large amount
of data request leads to denial of service
- Resolves: #1745690 - CVE-2019-9513 nginx:1.16/nginx: HTTP/2: flood using
PRIORITY frames resulting in excessive resource consumption
- Resolves: #1745645 - CVE-2019-9516 nginx:1.16/nginx: HTTP/2: 0-length
headers leads to denial of service
* Wed Jun 26 2019 Lubos Uhliarik <luhliari@redhat.com> - 1:1.16.0-2 * Sun Dec 18 2022 Luboš Uhliarik <luhliari@redhat.com> - 1:1.22.1-3
- Resolves: #1718929 - ssl_protocols config option has faulty behavior - Resolves: #2150932 - No logrotating nginx logs from nginx:1.22
in nginx:1.16
* Mon May 06 2019 Lubos Uhliarik <luhliari@redhat.com> - 1:1.16.0-1 * Thu Dec 01 2022 Neal Gompa <ngompa@datto.com> - 1:1.22.1-2
- new version 1.16.0 - Require pcre2-devel instead of pcre-devel in -mod-devel subpackage
- enable ngx_stream_ssl_preread module Resolves: rhbz#2149965
- main package does NOT require all-modules package
* Wed Dec 12 2018 Lubos Uhliarik <luhliari@redhat.com> - 1:1.14.1-8 * Sat Oct 22 2022 Luboš Uhliarik <luhliari@redhat.com> - 1:1.22.1-1
- enable TLS 1.3 by default (#1643647) - Resolves: #2096174 - RFE: add nginx:1.22 module stream
- TLSv1.0 and TLSv1.1 can be enabled now (#1644746) - switch to pcre2
- add stream_geoip_module and stream_realip_module
- enable kTLS support
* Wed Jun 22 2022 Luboš Uhliarik <luhliari@redhat.com> - 1:1.20.1-13
- Resolves: #2099752 - nginx minimisation for ubi-micro
* Tue Jun 21 2022 Luboš Uhliarik <luhliari@redhat.com> - 1:1.20.1-11
- Resolves: #2028781 - Protocol : TLSv1.3 missing in rhel9
* Wed Feb 02 2022 Luboš Uhliarik <luhliari@redhat.com> - 1:1.20.1-10
- Resolves: #1975747 - CVE-2021-3618 nginx: ALPACA: Application Layer Protocol
Confusion - Analyzing and Mitigating Cracks in TLS Authentication
* Thu Dec 2 2021 Joe Orton <jorton@redhat.com> - 1:1.20.1-9
- add delaycompress to logrotate config (#2015250)
* Wed Sep 22 2021 Luboš Uhliarik <luhliari@redhat.com> - 1:1.20.1-8
- Resolves: #2007019 - use proper wording in error pages
* Wed Sep 22 2021 Luboš Uhliarik <luhliari@redhat.com> - 1:1.20.1-7
- Resolves: #2006420 - Broken loading certificates from hardware token (PKCS#11)
* Wed Sep 22 2021 Luboš Uhliarik <luhliari@redhat.com> - 1:1.20.1-6
- Resolves: #2006822 - Hardening tests fail for nginx
* Tue Sep 21 2021 Luboš Uhliarik <luhliari@redhat.com> - 1:1.20.1-5
- Add -mod-devel subpackage for building external nginx modules
Resolves: rhbz#1991720 (Neal Gompa)
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1:1.20.1-4
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Mon Aug 09 2021 Luboš Uhliarik <luhliari@redhat.com> - 1:1.20.1-3
- Resolves: #1991600 - Add logo symlink required by new testpage
* Wed Jun 16 2021 Mohan Boddu <mboddu@redhat.com> - 1:1.20.1-2
- Rebuilt for RHEL 9 BETA for openssl 3.0
Related: rhbz#1971065
* Wed Jun 02 2021 Luboš Uhliarik <luhliari@redhat.com> - 1:1.20.1-1
- new version 1.20.1
- Resolves: #1964814 - CVE-2021-23017 nginx: Off-by-one in ngx_resolver_copy()
when labels are followed by a pointer to a root domain name
* Fri Apr 30 2021 Lubos Uhliarik <luhliari@redhat.com> - 1:1.20.0-5
- Resolves: #1955564 - [RFE] Support loading certificates from hardware
token (PKCS#11)
* Fri Apr 30 2021 Lubos Uhliarik <luhliari@redhat.com> - 1:1.20.0-4
- Resolves: #1955560 - centralizing default index.html on nginx
* Mon Apr 26 2021 Lubos Uhliarik <luhliari@redhat.com> - 1:1.20.0-3
- Resolve: #1953639 - Rebase nginx to 1.20
* Wed Apr 21 2021 Felix Kaechele <heffer@fedoraproject.org> - 1:1.20.0-2
- sync rawhide and EPEL7 spec files again
- systemd service reload now checks config file (rhbz#1565377)
- drop nginx requirement on nginx-all-modules (rhbz#1708799)
- let nginx handle log creation on logrotate (rhbz#1683388)
- have log directory owned by root (rhbz#1390183, CVE-2016-1247)
- remove obsolete --with-ipv6 (src PR#8)
- correction: pcre2 is actually not supported by nginx, reintroduce pcre
* Wed Apr 21 2021 Felix Kaechele <heffer@fedoraproject.org> - 1:1.20.0-1
- update to 1.20.0
- sync with mainline spec file
- order configure options alphabetically for easier comparinggit
- add --with-compat option (rhbz#1834452)
- add patch to fix PIDFile race condition (rhbz#1869026)
- use pcre2 instead of pcre (rhbz#1938984)
- add Wants=network-online.target to systemd unit (rhbz#1943779)
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1:1.18.0-6
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Mon Feb 22 2021 Lubos Uhliarik <luhliari@redhat.com> - 1:1.18.0-5
- Resolves: #1931402 - drop gperftools module
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.18.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.18.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jun 22 2020 Jitka Plesnikova <jplesnik@redhat.com> - 1:1.18.0-2
- Perl 5.32 rebuild
* Fri Apr 24 2020 Felix Kaechele <heffer@fedoraproject.org> - 1:1.18.0-1
- Update to 1.18.0
- Increased types_hash_max_size to 4096 in default config
- Add gpg source verification
- Add Recommends: logrotate
- Drop location / from default config (rhbz#1564768)
- Drop default_sever from default config (rhbz#1373822)
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.16.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Sun Sep 15 2019 Warren Togami <warren@blockstream.com>
- add conditionals for EPEL7, see rhbz#1750857
* Tue Aug 13 2019 Jamie Nguyen <jamielinux@fedoraproject.org> - 1:1.16.1-1
- Update to upstream release 1.16.1
- Fixes CVE-2019-9511, CVE-2019-9513, CVE-2019-9516
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.16.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu May 30 2019 Jitka Plesnikova <jplesnik@redhat.com> - 1:1.16.0-4
- Perl 5.30 rebuild
* Tue May 14 2019 Stephen Gallagher <sgallagh@redhat.com> - 1.16.0-3
- Move to common default index.html
- Resolves: rhbz#1636235
* Tue May 07 2019 Jamie Nguyen <jamielinux@fedoraproject.org> - 1:1.16.0-2
- Add missing directory for vim plugin
* Fri Apr 26 2019 Jamie Nguyen <jamielinux@fedoraproject.org> - 1:1.16.0-1
- Update to upstream release 1.16.0
* Mon Mar 04 2019 Jamie Nguyen <jamielinux@fedoraproject.org> - 1:1.15.9-1
- Update to upstream release 1.15.9
- Enable ngx_stream_ssl_preread module
- Remove redundant conditionals
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.14.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 1:1.14.1-4
- Rebuilt for libcrypt.so.2 (#1666033)
* Tue Dec 11 2018 Joe Orton <jorton@redhat.com> - 1:1.14.1-3 * Tue Dec 11 2018 Joe Orton <jorton@redhat.com> - 1:1.14.1-3
- fix unexpanded paths in nginx(8) (#1643069) - fix unexpanded paths in nginx(8)
* Mon Dec 03 2018 Lubos Uhliarik <luhliari@redhat.com> - 1:1.14.1-2 * Tue Nov 20 2018 Luboš Uhliarik <luhliari@redhat.com> - 1:1.14.1-2
- Resolves: #1655530 - Hardening tests fail for nginx
* Mon Nov 19 2018 Lubos Uhliarik <luhliari@redhat.com> - 1:1.14.1-1
- new version 1.14.1 - new version 1.14.1
- Resolves: #1647257 - CVE-2018-16845 nginx: Denial of service and - Resolves: #1584426 - Upstream Nginx 1.14.0 is now available
memory disclosure via mp4 module - Resolves: #1647255 - CVE-2018-16845 nginx: Denial of service and memory
- Resolves: #1647262 - CVE-2018-16844 nginx: Excessive CPU usage disclosure via mp4 module
via flaw in HTTP/2 implementation - Resolves: #1647259 - CVE-2018-16843 nginx: Excessive memory consumption
- Resolves: #1647263 - CVE-2018-16843 nginx: Excessive memory consumption
via flaw in HTTP/2 implementation via flaw in HTTP/2 implementation
- Resolves: #1647258 - CVE-2018-16844 nginx: Excessive CPU usage via flaw
in HTTP/2 implementation
* Wed Aug 8 2018 Joe Orton <jorton@redhat.com> - 1:1.14.0-3 * Mon Aug 06 2018 Luboš Uhliarik <luhliari@redhat.com> - 1:1.12.1-14
- fix PKCS#11 support (Anderson Sasaki, #1545526) - add requires on perl(constant) for mod-http-perl
* Mon Aug 06 2018 Lubos Uhliarik <luhliari@redhat.com> - 1:1.14.0-2 * Mon Jul 30 2018 Luboš Uhliarik <luhliari@redhat.com> - 1:1.12.1-13
- add dependency on perl(constant) - don't build with geoip by default
* Mon Jul 30 2018 Luboš Uhliarik <luhliari@redhat.com> - 1:1.14.0-1
- Resolves: #1558420 - directory permissions are now correct after processing
USR1 signal
- Resolves: #1601414 - nginx: drop GeoIP support
* Thu Jul 19 2018 Joe Orton <jorton@redhat.com> - 1:1.12.1-12 * Thu Jul 19 2018 Joe Orton <jorton@redhat.com> - 1:1.12.1-12
- add build conditional for geoip support - add build conditional for geoip support
* Thu May 03 2018 Luboš Uhliarik <luhliari@redhat.com> - 1:1.14.0-1 * Mon Jul 16 2018 Tadej Janež <tadej.j@nez.si> - 1:1.12.1-11
- new version 1.14.0 - Add gcc to BuildRequires to account for
https://fedoraproject.org/wiki/Changes/Remove_GCC_from_BuildRoot
* Wed Apr 25 2018 Luboš Uhliarik <luhliari@redhat.com> - 1:1.12.1-9 * Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.12.1-10
- changed directory permissions (#1558420) - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Mar 23 2018 Joe Orton <jorton@redhat.com> - 1:1.12.1-8 * Wed Jun 27 2018 Jitka Plesnikova <jplesnik@redhat.com> - 1:1.12.1-9
- disable gperftools (#1496868) - Perl 5.28 rebuild
* Thu Mar 22 2018 Joe Orton <jorton@redhat.com> - 1:1.12.1-7 * Mon May 14 2018 Luboš Uhliarik <luhliari@redhat.com> - 1:1.12.1-8
- update branding (#1512565) - Related: #1573942 - nginx fails on start
* Wed May 02 2018 Luboš Uhliarik <luhliari@redhat.com> - 1:1.12.1-7
- Resolves: #1573942 - nginx fails on start
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.12.1-6 * Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.12.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild