Compare commits

...
Sign in to create a new pull request.

157 commits

Author SHA1 Message Date
wrapper
84b0362183 allow vod and pckg to compile together 2025-07-16 10:47:23 +07:00
wrapper
ce21ceb30b forgot memc 2025-07-15 15:22:39 +07:00
wrapper
b1188d6377 dyn rec 2025-07-15 15:17:17 +07:00
wrapper
bf4e347d84 sid 2 2025-07-15 15:11:13 +07:00
wrapper
67b2e7933c sid init 2025-07-15 15:05:37 +07:00
Jan Mojžíš
653827e5a8
release nginx 1.26.3-3, upload to unstable 2025-05-15 15:32:06 +02:00
Thomas Ward
bfbdc5aef2 Move ConditionFileIsExecutable to proper section 2025-02-24 20:42:35 +00:00
Thomas Ward
b3e6c7ec5b Merge branch 'debbug1098477-fix' into 'main'
Fix DebBug #1098477, salsa issue nginx-team/nginx:#23

See merge request nginx-team/nginx!90
2025-02-23 18:17:04 +00:00
Thomas Ward
54cc798970 Fix DebBug #1098477, salsa issue nginx-team/nginx:#23 2025-02-23 18:17:04 +00:00
Jan Mojžíš
6c57927b8d
d/control: add libnginx-mod-http-lua dependency for nginx-extras package
for riscv64 platform
2025-02-12 20:15:46 +01:00
Jan Mojžíš
3ef9946d9d
d/changelog: fix whitespace in 1.26.3-2 record 2025-02-12 20:15:17 +01:00
Jérémy Lal
c789199d37
Release to unstable 2025-02-07 12:53:15 +01:00
Jérémy Lal
58f592a8ab
Release 2025-02-05 19:08:06 +01:00
Jérémy Lal
c5cca14382
Bump ABI 2025-02-05 19:07:54 +01:00
Jérémy Lal
191713f275 Update upstream source from tag 'upstream/1.26.3'
Update to upstream version '1.26.3'
with Debian dir ad8840312e
2025-02-05 19:03:37 +01:00
Jérémy Lal
be95fff101 New upstream version 1.26.3 2025-02-05 19:03:32 +01:00
Jérémy Lal
215777eecb
Release to experimental 2025-02-02 21:09:05 +01:00
Jan Mojžíš
2939b5f242
d/changelog: remove duplicit lines 2025-02-02 19:41:56 +01:00
Jan Mojžíš
92496d21cf
rm d/p/nginx-1.26.1.patch 2025-02-02 19:41:30 +01:00
Jan Mojžíš
d2631d1b03
rm d/p/CVE-2024-7347.patch 2025-02-02 19:41:03 +01:00
Jérémy Lal
9fb3b99b3d
Bump abi 2025-02-02 11:40:36 +01:00
Jérémy Lal
215a9620ef
Version 1.26.2 2025-02-02 11:33:47 +01:00
Jérémy Lal
1518af2753
Refresh patches 2025-02-02 11:24:45 +01:00
Jérémy Lal
2fe36c4448
Drop upstream patches 2025-02-02 11:24:35 +01:00
Jérémy Lal
2fb9d97244 Update upstream source from tag 'upstream/1.26.2'
Update to upstream version '1.26.2'
with Debian dir d8ae618778
2025-02-02 11:23:50 +01:00
Jérémy Lal
359eb3866f New upstream version 1.26.2 2025-02-02 11:23:45 +01:00
Jérémy Lal
71f2059cf8
Add Sergey Kandaurov <s.kandaurov@f5.com> pgp public key 2025-02-02 11:23:15 +01:00
Jan Mojžíš
f1e2f6cbb9
d/copyright: bump my copyright year 2025-01-28 17:54:27 +01:00
Jan Mojžíš
65bcb0d8dd
d/{control,copyright}: update my email to "janmojzis@debian.org" 2025-01-28 17:54:18 +01:00
Jan Mojžíš
9670e707d6
d/gbp.conf: add upstream-signatures = on 2025-01-28 17:54:08 +01:00
Jan Mojžíš
f180e25eb4
d/u/signing-key.asc add Sergey Kandaurov <s.kandaurov@f5.com> public key 2025-01-28 17:53:58 +01:00
Thomas Ward
df67526348 Actual release 2024-09-30 11:39:49 -04:00
Thomas Ward
0722a5648d Resolve dependency loop (debbugs #1082373) 2024-09-20 21:37:33 -04:00
Jan Mojžíš
9cd731914a
release nginx 1.26.0-2, upload to unstable 2024-08-19 18:46:47 +02:00
Jan Mojžíš
6e88f6d858
d/changelog fix whitespace 2024-08-19 10:59:44 +02:00
Jan Mojžíš
6bb737822f Merge branch 'wip-1.26.0-2' into 'main'
wip-1.26.0-2

See merge request nginx-team/nginx!85
2024-08-19 08:39:56 +00:00
Jan Mojžíš
a079a02186
d/changelog close bug for CVE-2024-7347 2024-08-18 21:07:25 +02:00
Jan Mojžíš
7137628c08
d/libnginx-mod.abisubstvars updated comment when ABI needs to be changed 2024-08-18 09:04:03 +02:00
Jan Mojžíš
80408ba19f Merge branch 'CVE-2024-7347' into 'wip-1.26.0-2'
d/p/CVE-2024-7347.patch add, backport CVE-2024-7347 fix

See merge request nginx-team/nginx!84
2024-08-18 06:34:06 +00:00
Jan Mojžíš
b3d7b0f3ed
d/p/CVE-2024-7347.patch add, backport CVE-2024-7347 fix 2024-08-18 08:15:33 +02:00
Jan Mojžíš
1b2c31e354 Merge branch 'patch-1.26.1' into 'wip-1.26.0-2'
d/p/nginx-1.26.1.patch add, backport changes from the nginx 1.26.1

See merge request nginx-team/nginx!81
2024-08-18 06:05:39 +00:00
Jan Mojžíš
45c7770c5e
d/p/nginx-1.26.1.patch add, backport changes from the nginx 1.26.1 2024-06-17 18:46:59 +02:00
Thomas Ward
363e53be5d Update nginx.conf: whitespace matching 2024-06-17 16:25:34 +00:00
Thomas Ward
07bdbe9491 Merge branch 'modern-security-practices' into 'wip-1.26.0-2'
Update nginx.conf defaults for modern security

See merge request nginx-team/nginx!80
2024-06-17 16:24:24 +00:00
Thomas Ward
1b77cc4256 Merge branch 'wip-1.26.0-2' into 'modern-security-practices' 2024-06-17 16:22:46 +00:00
Thomas Ward
2a1513acc8 Debian changelog entry 2024-06-17 11:53:50 -04:00
Thomas Ward
6ef563d4f4 Update comments 2024-06-17 11:52:46 -04:00
Thomas Ward
3e7838a6b2 Update nginx.conf defaults
- Match current security practices for SSL protocols and SSL Prefer Server Ciphers
- Hide NGINX version in responses, modern security practice
2024-06-17 15:43:12 +00:00
Jan Mojžíš
9ede767588
d/control: bump Standards-Version: 4.7.0, no changes 2024-05-07 19:12:52 +02:00
Jan Mojžíš
5651e6f455
d/rules: enable QUIC and HTTP/3 module 2024-05-07 19:12:06 +02:00
Jan Mojžíš
6ccf66d20e
release nginx 1.26.0-1, upload to unstable 2024-05-05 18:49:07 +02:00
Jan Mojžíš
2d4405e08a
d/gbp.conf: add sign-tags = True, [pull] track-missing = True,
[import-orig] merge-mode = replace
2024-05-01 12:18:01 +02:00
Jan Mojžíš
899ebe0261 Merge branch 'wip-1.26.0' into 'main'
New upstream version 1.26.0

See merge request nginx-team/nginx!79
2024-05-01 09:41:38 +00:00
Jan Mojžíš
880afec3d7
d/changelog fix whitespace 2024-05-01 06:48:05 +02:00
Jan Mojžíš
f5ed2727e5
debian/upstream/signing-key.asc remove extra signatures 2024-05-01 06:47:41 +02:00
Jan Mojžíš
2148a071bf
d/libnginx-mod.abisubstvars: remove third-party modules version constraints 2024-05-01 06:29:23 +02:00
Jan Mojžíš
5c050148b6
d/changelog update 2024-05-01 05:36:21 +02:00
Jan Mojžíš
9b80dfac5a
d/conf/nginx.conf: add worker_cpu_affinity auto 2024-05-01 05:33:34 +02:00
Jan Mojžíš
b023f3fbf6
d/copyright update 2024-04-30 22:04:10 +02:00
Jan Mojžíš
7dc4f2ecb7
d/copyright: bump my copyright year 2024-04-30 19:04:28 +02:00
Jan Mojžíš
3fb6af3d34
d/copyright: updated copyright related to new upstream version 2024-04-30 19:03:47 +02:00
Jan Mojžíš
a6a3352563
d/changelog update 2024-04-30 18:42:05 +02:00
Jan Mojžíš
dad830baa6 Merge branch 'add-xsl-xslt-mimetype' into 'wip-1.26.0'
Add xsl xslt mimetype to nginx mime.types

See merge request nginx-team/nginx!78
2024-04-30 16:38:40 +00:00
Jan Mojžíš
4c1fc35cb6
d/changelog update 2024-04-30 18:35:43 +02:00
Jan Mojžíš
e06e0da2ab Merge branch 'main' into 'wip-1.26.0'
Add QUIC UFW app

See merge request nginx-team/nginx!73
2024-04-30 16:32:16 +00:00
Jan Mojžíš
0f09f394ed
d/p/CVE-2023-44487.patch remove, fixed in upstream 2024-04-30 17:53:35 +02:00
Jan Mojžíš
443e5c11eb
nginx ABI release: nginx-abi-1.26.0-1 2024-04-30 17:44:10 +02:00
Jan Mojžíš
dd2f4866aa
d/changelog new version 1.26.0-1 2024-04-30 17:42:53 +02:00
Jan Mojžíš
a6bc03f8fb Update upstream source from tag 'upstream/1.26.0'
Update to upstream version '1.26.0'
with Debian dir 2750282929
2024-04-30 17:42:09 +02:00
Jan Mojžíš
cd2d231dd0 New upstream version 1.26.0 2024-04-30 17:41:57 +02:00
Jan Mojžíš
488a716b96
d/u/signing-key.asc add Roman Arutyunyan’s PGP public key 2024-04-30 17:41:25 +02:00
K Widholm
0b33ebb4a3 Update file mime.types 2023-10-27 02:15:04 +00:00
K Widholm
fbe69d2fe0 Update file mime.types 2023-10-27 02:06:46 +00:00
Jan Mojžíš
ea0383bdb1
release nginx 1.24.0-2, upload to unstable 2023-10-11 01:18:04 +02:00
Jan Mojžíš
14846e923d
d/changelog update CVE-2023-44487 description 2023-10-11 01:14:14 +02:00
Jan Mojžíš
5953afe398
Revert "release nginx 1.24.0-2, upload to unstable"
This reverts commit 192281805a.
2023-10-11 01:13:28 +02:00
Jan Mojžíš
192281805a
release nginx 1.24.0-2, upload to unstable 2023-10-11 00:39:21 +02:00
Jan Mojžíš
9515e05cd0
d/debhelper/nginx_mod.pm automatic libnginx-mod-stream dependencies 2023-10-10 23:54:50 +02:00
Jan Mojžíš
0c9954b9d7 Merge branch 'dhsequence-detect-stream' into 'main'
dh-sequence-nginx: automatic libnginx-mod-stream dependencies

See merge request nginx-team/nginx!74
2023-10-10 21:50:39 +00:00
Jan Mojžíš
81aeb5321d dh-sequence-nginx: automatic libnginx-mod-stream dependencies 2023-10-10 21:50:39 +00:00
Jan Mojžíš
b1313a97a6 Merge branch 'transition-dependency' into 'main'
d/control nginx-dev add dependency on ${nginx:abi}

See merge request nginx-team/nginx!75
2023-10-10 21:01:05 +00:00
Jan Mojžíš
6f007a8184 Merge branch 'main' into 'transition-dependency'
# Conflicts:
#   debian/changelog
2023-10-10 20:46:05 +00:00
Jan Mojžíš
53a637ae66 Merge branch 'CVE-2023-44487' into 'main'
CVE-2023-44487 fix

See merge request nginx-team/nginx!76
2023-10-10 20:22:50 +00:00
Jan Mojžíš
60b5a28e2d CVE-2023-44487 fix 2023-10-10 20:22:50 +00:00
Jan Mojžíš
f3ce71ad91
d/control add nginx-dev dependency on ${nginx:abi} 2023-10-10 16:25:14 +02:00
Marcus Bointon
1c1713f747 Add QUIC UFW app 2023-09-25 12:41:08 +00:00
Jan Mojžíš
dbecf37340
d/po/sv.po added Swedish debconf translation 2023-08-30 15:52:01 +02:00
Jan Mojžíš
f72db03173
d/po/sv.po added Swedish debconf translation 2023-08-30 15:50:18 +02:00
Jan Mojžíš
1af9890890 Merge branch 'mimetypes' into 'main'
d/conf/mime.types add video/ogg, video/x-matroska

See merge request nginx-team/nginx!71
2023-07-17 05:11:55 +00:00
Jan Mojžíš
1669ce81fa
d/conf/mime.types add video/ogg, video/x-matroska 2023-07-17 06:25:37 +02:00
Jan Mojžíš
d99a0ddc0b
d/conf/mime.types copy mime.types from upstream nginx,
no big changes, just reformat the text
2023-07-17 06:25:07 +02:00
Jan Mojžíš
8c4549c82a Merge branch 'rmdhstripoverride' into 'main'
d/rules remove override_dh_strip

See merge request nginx-team/nginx!69
2023-07-17 03:51:47 +00:00
Jan Mojžíš
7b0bfbb9f3
d/rules removed override_dh_strip 2023-07-17 05:24:19 +02:00
Jan Mojžíš
ed6370703d Merge branch 'rodebconf' into 'main'
d/po/ro.po add Romanian debconf translation

See merge request nginx-team/nginx!68
2023-07-15 20:19:27 +00:00
Jan Mojžíš
9d8220a199
d/po/ro.po add Romanian debconf translation 2023-07-15 21:24:09 +02:00
Jan Mojžíš
82149d89bf Merge branch 'fixdhstrip' into 'main'
* d/rules fixed debug-symbol-migration-possibly-complete lintian warning

See merge request nginx-team/nginx!67
2023-07-15 19:08:49 +00:00
Jan Mojžíš
b8d9144432
* d/rules fixed debug-symbol-migration-possibly-complete lintian warning 2023-07-15 20:24:35 +02:00
Jan Mojžíš
c40dd6a74f Merge branch 'fixdeps' into 'main'
d/control add dependency nginx-common to nginx

See merge request nginx-team/nginx!66
2023-07-15 14:55:46 +00:00
Jan Mojžíš
3f8de1c086
d/control fixed binNMU safe dependency declaration nginx to nginx-common 2023-07-15 08:26:10 +02:00
Jan Mojžíš
2d48a8c8ec
d/control add dependency nginx-common to nginx 2023-06-30 16:40:37 +02:00
Jan Mojžíš
54146b604b
release nginx 1.24.0-1, upload to unstable 2023-06-27 23:19:52 +02:00
Jan Mojžíš
d6229b0698
d/changelog fix whitespace 2023-06-26 15:20:12 +02:00
Jan Mojžíš
b4078d94d4
d/libnginx-mod.abisubstvars update version constraints of the 3rd party modules 2023-06-26 15:19:52 +02:00
Jan Mojžíš
bb973756e2
d/copyright: updated copyright 2023-04-25 22:40:28 +02:00
Jan Mojžíš
9fe5d1ba93
d/p/bug-{1024605,973861}.patch removed, fixed in upstream 2023-04-25 22:39:28 +02:00
Jan Mojžíš
7478c72e84
nginx ABI release: nginx-abi-1.24.0-1 2023-04-25 22:38:33 +02:00
Jan Mojžíš
557d688577
d/changelog New version 1.24.0-1 2023-04-25 22:37:22 +02:00
Jan Mojžíš
ba3751d77a Update upstream source from tag 'upstream/1.24.0'
Update to upstream version '1.24.0'
with Debian dir 60ea7399bd
2023-04-25 22:36:34 +02:00
Jan Mojžíš
8094197df9 New upstream version 1.24.0 2023-04-25 22:36:23 +02:00
Jan Mojžíš
3fdf9b9553
release nginx 1.22.1-9, upload to unstable 2023-03-14 16:19:37 +01:00
Jan Mojžíš
8cce84b858 Merge branch 'breaks-replaces' into 'main'
d/control: nginx-common Breaks+Replaces: nginx (<< 1.22.1-8)

See merge request nginx-team/nginx!64
2023-03-14 12:14:53 +00:00
Jan Mojžíš
9a5dedf461
d/control: nginx-common Breaks+Replaces: nginx (<< 1.22.1-8) 2023-03-14 12:53:14 +01:00
Jan Mojžíš
c8b4d1401b
release nginx 1.22.1-8, upload to unstable 2023-03-14 06:53:39 +01:00
Thomas Ward
b4368782e6 Merge branch 'rollback-nginx-common' into 'main'
Revert "move common files from nginx-common to nginx"

See merge request nginx-team/nginx!63
2023-03-13 20:30:56 +00:00
Jan Mojžíš
c1f58a85e1
Revert "move common files from nginx-common to nginx"
This reverts commit 473f36a7d1.
2023-03-13 18:54:13 +01:00
Jan Mojžíš
bd50f6ef76
d/libnginx-mod.abisubstvars: update libnginx-mod-http-lua version 2023-03-08 21:48:08 +01:00
Jan Mojžíš
57e87d08df
d/changelog: fix nginx-full dependencies 2023-03-08 21:44:28 +01:00
Jan Mojžíš
5864a7b5b0 Merge branch 'fixdeps' into 'main'
d/control fix nginx-full dependencies

See merge request nginx-team/nginx!62
2023-03-08 20:43:30 +00:00
Jan Mojžíš
f215469ef5
d/control fix nginx-full dependencies 2023-02-13 20:18:20 +01:00
Jan Mojžíš
834bbcee5b
release nginx 1.22.1-7, upload to unstable 2023-02-13 13:04:39 +01:00
Jan Mojžíš
bfcd400270
d/copyright: updated to be compatible with 'cme update dpkg-copyright' 2023-02-12 15:59:12 +01:00
Jan Mojžíš
bb65ab50f4
d/libnginx-mod.abisubstvars update lua version to 1:0.10.23~rc2-2 2023-02-12 15:20:52 +01:00
Jan Mojžíš
d298d6b51b
d/gbb.conf: switched to debian branch main (debian-branch = main) 2023-02-10 18:07:33 +01:00
Jan Mojžíš
ed087b074e
d/p/bug-973861: add, lingering close for connections with pipelined requests 2023-02-10 17:34:26 +01:00
Jan Mojžíš
c7f0bac49b
d/changelog update 2023-02-10 17:33:09 +01:00
Jérémy Lal
3a3786f1d4
Switch to pcre2. 2023-02-10 17:32:41 +01:00
Jan Mojžíš
309c257646
nginx: provide nginx-abi-<VERSION> 2023-02-10 17:29:30 +01:00
Jan Mojžíš
cd33a3034d
release nginx 1.22.1-6, upload to unstable 2023-02-08 17:23:54 +01:00
Jan Mojžíš
40664a0df5
d/control: bump Standards-Version: 4.6.2, no changes 2023-02-08 11:43:05 +01:00
Jan Mojžíš
4ce2e9f8f5
d/changelog update 2023-02-08 11:42:55 +01:00
Jan Mojžíš
0a2666b12c
fixes
- d/control: remove unnecesary 'Suggests'
- d/control: remove Provides: nginx for nginx package
- debian/apport/source_nginx.py: nginx-common -> nginx
2023-02-08 11:10:14 +01:00
Jan Mojžíš
473f36a7d1
move common files from nginx-common to nginx 2023-02-08 11:08:32 +01:00
Jan Mojžíš
5f65c2c182
move binaries to nginx package instead nginx-bin 2023-02-08 11:08:21 +01:00
Jan Mojžíš
b6e0209bf2 Merge branch 'noquilt' into 'master'
B-D: remove quilt, no longer needed

See merge request nginx-team/nginx!58
2023-01-23 07:15:59 +00:00
Jan Mojžíš
820fb1eaab
revert warnings d/nginx-{light,core,extras,full}.postinst 2023-01-23 08:13:48 +01:00
Jérémy Lal
f7740951fb
Remove very old README.Debian 2023-01-22 13:16:21 +01:00
Jérémy Lal
7ceb830e66
B-D: remove quilt, no longer needed 2023-01-22 13:09:10 +01:00
Jan Mojžíš
b0a64680b5
d/control: remove dependency on obsolete package lsb-base 2023-01-21 16:30:49 +01:00
Jan Mojžíš
980bcea7f6
d/po/it.po: add 2023-01-13 17:31:47 +01:00
Jan Mojžíš
d720b646a5
d/copyright fix GPL2 2023-01-12 18:50:32 +01:00
Jan Mojžíš
1088db1699
d/control: fix dependencies for safe binNMU 2023-01-12 18:22:37 +01:00
Jan Mojžíš
9373935883
d/control fix nginx-common dependency 2023-01-12 18:17:16 +01:00
Jan Mojžíš
6bab81e56d
d/changelog fix whitespace 2023-01-12 18:05:11 +01:00
Jan Mojžíš
94f4fc97bb
d/copyright: add missing copyright for debian/help/examples/nginx_modsite 2023-01-12 17:53:39 +01:00
Jan Mojžíš
8fefc3d77b
d/copyright: add missing GPL-2+ copyright for debian/debhelper/dh_nginx 2023-01-12 17:51:19 +01:00
Jan Mojžíš
a71d85a87f
d/copyright: add missing copyright for debian/apport/* 2023-01-12 17:42:09 +01:00
Jan Mojžíš
9cb0e1d9ee
d/copyright: update debian/* copyright 2023-01-12 17:40:55 +01:00
Jan Mojžíš
16ee97c874 Merge branch 'onlycoreflavour' into 'master'
add nginx-bin package and replace core/light/extras by a dependency package

See merge request nginx-team/nginx!53
2023-01-12 16:23:25 +00:00
Jan Mojžíš
7e238bfad9 add nginx-bin package and replace core/light/extras by a dependency package
and fix dependencies for safe binNMU
2023-01-12 16:23:24 +00:00
Jan Mojžíš
c412740e4e
release nginx 1.22.1-5, upload to unstable 2022-12-20 10:36:40 +01:00
Jan Mojžíš
32e7cc8921
d/control: update nginx-common dependency,
fixes lintian warning maybe-not-arch-all-binnmuable
2022-12-20 08:56:12 +01:00
Jan Mojžíš
e907e5063e Merge branch 'autopkgtestupdate' into 'master'
d/tests: all *-simple and *-deps tests update

See merge request nginx-team/nginx!56
2022-12-20 07:46:50 +00:00
Jan Mojžíš
e5c631271d
d/control bump libnginx-mod-nchan version (>= 1:1.3.5+dfsg-3~) 2022-12-20 08:19:48 +01:00
Jan Mojžíš
ef3bb53436
d/tests: all *-simple and *-deps tests updated to check if nginx works
after installation/reload/restart for all flavours
2022-12-19 18:05:38 +01:00
Jan Mojžíš
ec0569d08d Merge branch 'readme' into 'master'
Rename and Update README.source

See merge request nginx-team/nginx!54
2022-12-19 06:25:57 +00:00
Jérémy Lal
280d76fff3
README.source: update 2022-12-18 19:33:21 +01:00
Jérémy Lal
f313b00cf3 README.Packaging -> README.source 2022-12-18 19:29:11 +01:00
1047 changed files with 195071 additions and 4443 deletions

10
.gitignore vendored Normal file
View file

@ -0,0 +1,10 @@
objs/*
!objs/ndk_*
.pc/
.vscode/
modules/media-framework/
modules/nginx-srt-module/
modules/nginx-vod-module/
Makefile
*.orig
*.txt

483
.hgtags Normal file
View file

@ -0,0 +1,483 @@
551102312e19b704cd22bd7254a9444b9ea14e96 release-0.1.0
23fb87bddda14ce9faec90f774085634106aded4 release-0.1.1
295d97d70c698585705345f1a8f92b02e63d6d0d release-0.1.2
ded1284520cc939ad5ae6ddab39925375e64237d release-0.1.3
0491b909ef7612d8411f1f59054186c1f3471b52 release-0.1.4
a88a3e4e158fade0aaa6f3eb25597d5ced2c1075 release-0.1.5
1f31dc6d33a3a4e65240b08066bf186df9e33b79 release-0.1.6
5aecc125bc33d81d6214c91d73eb44230a903dde release-0.1.7
bbd6b0b4a2b15ef8c8f1aaf7b027b6da47303524 release-0.1.8
2ff194b74f1e60cd04670986973e3b1a6aa3bece release-0.1.9
31ee1b50354fb829564b81a6f34e8d6ceb2d3f48 release-0.1.10
8e8f3af115b5b903b2b8f3335de971f18891246f release-0.1.11
c3c2848fc081e19aec5ffa97e468ad20ddb81df0 release-0.1.12
ad1e9ebf93bb5ae4c748d471fad2de8a0afc4d2a release-0.1.13
c5240858380136a67bec261c59b1532560b57885 release-0.1.14
fd661d14a7fad212e326a7dad6234ea0de992fbf release-0.1.15
621229427cba1b0af417ff2a101fc4f17a7d93c8 release-0.1.16
4ebe09b07e3021f1a63b459903ec58f162183b26 release-0.1.17
31ff3e943e1675a2caf745ba7a981244445d4c98 release-0.1.18
45a460f82aec80b0f61136aa09f412436d42203a release-0.1.19
0f836f0288eee4980f57736d50a7a60fa082d8e9 release-0.1.20
975f62e77f0244f1b631f740be77c72c8f2da1de release-0.1.21
fc9909c369b2b4716304ac8e38da57b8fb781211 release-0.1.22
d7c90bb5ce83dab08715e98f9c7b81c7df4b37be release-0.1.23
64d9afb209da0cd4a917202b7b77e51cc23e2229 release-0.1.24
d4ea69372b946dc4ec37fc3f5ddd93ff7c3da675 release-0.1.25
b1648294f6935e993e436fd8a68bca75c74c826d release-0.1.26
ee66921ecd47a7fa459f70f4a9d660f91f6a1b94 release-0.1.27
cd3117ad9aab9c58c6f7e677e551e1adbdeaba54 release-0.1.28
9b8c906f6e63ec2c71cecebfff35819a7d32227d release-0.1.29
c12967aadd8726daf2d85e3f3e622d89c42db176 release-0.1.30
fbbf16224844e7d560c00043e8ade8a560415bba release-0.1.31
417a087c9c4d9abb9b0b9b3f787aff515c43c035 release-0.1.32
dadfa78d227027348d7f9d1e7b7093d06ba545a0 release-0.1.33
12234c998d83bfbbaa305273b3dd1b855ca325dc release-0.1.34
6f00349b98e5f706b82115c6e4dc84456fc0d770 release-0.1.35
2019117e6b38cc3e89fe4f56a23b271479c627a6 release-0.1.36
09b42134ac0c42625340f16628e29690a04f8db5 release-0.1.37
7fa11e5c6e9612ecff5eb58274cc846ae742d1d2 release-0.1.38
e5d7d0334fdb946133c17523c198800142ac9fe9 release-0.1.39
c3bd8cdabb8f73e5600a91f198eb7df6fac65e92 release-0.1.40
d6e48c08d718bf5a9e58c20a37e8ae172bff1139 release-0.1.41
563ad09abf5042eb41e8ecaf5b4e6c9deaa42731 release-0.1.42
c9ad0d9c7d59b2fa2a5fe669f1e88debd03e6c04 release-0.1.43
371c1cee100d7a1b0e6cad4d188e05c98a641ee7 release-0.1.44
b09ee85d0ac823e36861491eedfc4dfafe282997 release-0.1.45
511a89da35ada16ae806667d699f9610b4f8499a release-0.2.0
0148586012ab3dde69b394ec5a389d44bb11c869 release-0.2.1
818fbd4750b99d14d2736212c939855a11b1f1ef release-0.2.2
e16a8d574da511622b97d6237d005f40f2cddb30 release-0.2.3
483cca23060331f2078b1c2984870d80f288ad41 release-0.2.4
45033d85b30e3f12c407b7cfc518d76e0eda0263 release-0.2.5
7bd37aef1e7e87858c12b124e253e98558889b50 release-0.2.6
ecd9c160f25b7a7075dd93383d98a0fc8d8c0a41 release-0.3.0
c1f965ef97188fd7ef81342dcf8719da18c554d2 release-0.3.1
e48ebafc69393fc94fecfdf9997c4179fd1ce473 release-0.3.2
9c2f3ed7a24711d3b42b124d5f831155c8beff95 release-0.3.3
7c1369d37c7eb0017c28ebcaa0778046f5aafdcc release-0.3.4
1af2fcb3be8a63796b6b23a488049c92a6bc12f4 release-0.3.5
174f1e853e1e831b01000aeccfd06a9c8d4d95a2 release-0.3.6
458b6c3fea65a894c99dd429334a77bb164c7e83 release-0.3.7
58475592100cb792c125101b6d2d898f5adada30 release-0.3.8
fcd6fc7ff7f9b132c35193d834e6e7d05026c716 release-0.3.9
4d9ea73a627a914d364e83e20c58eb1283f4031d release-0.3.10
4c5c2c55975c1152b5ca5d5d55b32d4dd7945f7a release-0.3.11
326634fb9d47912ad94221dc2f8fa4bec424d40c release-0.3.12
4e296b7d25bf62390ca2afb599e395426b94f785 release-0.3.13
401de5a43ba5a8acdb9c52465193c0ea7354afe7 release-0.3.14
284cc140593bb16ac71094acd509ab415ff4837d release-0.3.15
d4e858a5751a7fd08e64586795ed7d336011fbc0 release-0.3.16
8c0cdd81580eb76d774cfc5724de68e7e5cbbdc2 release-0.3.17
425af804d968f30eeff01e33b808bc2e8c467f2c release-0.3.18
ebc68d8ca4962fe3531b7e13444f7ac4395d9c6e release-0.3.19
9262f520ce214d3d5fd7c842891519336ef85ca6 release-0.3.20
869b6444d2341a587183859d4df736c7f3381169 release-0.3.21
77f77f53214a0e3a68fef8226c15532b54f2c365 release-0.3.22
858700ae46b453ea111b966b6d03f2c21ddcb94e release-0.3.23
5dac8c7fb71b86aafed8ea352305e7f85759f72e release-0.3.24
77cdfe394a94a625955e7585e09983b3af9b889b release-0.3.25
608cf78b24ef7baaf9705e4715a361f26bb16ba9 release-0.3.26
3f8a2132b93d66ac19bec006205a304a68524a0b release-0.3.27
c73c5c58c619c22dd3a5a26c91bb0567a62c6930 release-0.3.28
5ef026a2ac7481f04154f29ab49377bf99aaf96f release-0.3.29
51b27717f140b71a2e9158807d79da17c888ce4c release-0.3.30
7a16e281c01f1c7ab3b79c64b43ddb754ea7935e release-0.3.31
93e85a79757c49d502e42a1cb8264a0f133b0b00 release-0.3.32
0216fd1471f386168545f772836156761eddec08 release-0.3.33
fbed40ce7cb4fd7203fecc22a617b9ce5b950fb3 release-0.3.34
387450de0b4d21652f0b6242a5e26a31e3be8d8c release-0.3.35
65bf042c0b4f39f18a235464c52f980e9fa24f6b release-0.3.36
5d2b8078c1c2593b95ec50acfeeafbefa65be344 release-0.3.37
f971949ffb585d400e0f15508a56232a0f897c80 release-0.3.38
18268abd340cb351e0c01b9c44e9f8cc05492364 release-0.3.39
e60fe4cf1d4ea3c34be8c49047c712c6d46c1727 release-0.3.40
715d243270806d38be776fc3ed826d97514a73d6 release-0.3.41
5e8fb59c18c19347a5607fb5af075fe1e2925b9a release-0.3.42
947c6fd27699e0199249ad592151f844c8a900b0 release-0.3.43
4946078f0a79e6cc952d3e410813aac9b8bda650 release-0.3.44
95d7da23ea5315a6e9255ce036ed2c51f091f180 release-0.3.45
1e720b0be7ecd92358da8a60944669fa493e78cd release-0.3.46
39b7d7b33c918d8f4abc86c4075052d8c19da3c7 release-0.3.47
7cbef16c71a1f43a07f8141f02e0135c775f0f5b release-0.3.48
4c8cd5ae5cc100add5c08c252d991b82b1838c6b release-0.3.49
400711951595aef7cd2ef865b84b31df52b15782 release-0.3.50
649c9063d0fda23620eaeaf0f6393be0a672ebe7 release-0.3.51
9079ee4735aefa98165bb2cb26dee4f58d58c1d7 release-0.3.52
6d5c1535bb9dcd891c5963971f767421a334a728 release-0.3.53
5fd7a5e990477189c40718c8c3e01002a2c20b81 release-0.3.54
63a820b0bc6ca629c8e45a069b52d622ddc27a2d release-0.3.55
562806624c4afb1687cba83bc1852f5d0fecbac3 release-0.3.56
cec32b3753acf610ac1a6227d14032c1a89d6319 release-0.3.57
b80f94fa2197b99db5e033fec92e0426d1fe5026 release-0.3.58
e924670896abe2769ea0fcfd2058b405bed8e8ec release-0.3.59
921a7ce4baf42fd1091b7e40f89c858c6b23053e release-0.3.60
df95dcff753a6dc5e94257302aea02c18c7a7c87 release-0.3.61
7e24168b0853ee7e46c9c7b943ef077dc64f17f5 release-0.4.0
8183d4ba50f8500465efb27e66dd23f98775dd21 release-0.4.1
610267a772c7bf911b499d37f66c21ce8f2ebaf7 release-0.4.2
39dd0b045441e21512e0a6061a03d0df63414d8b release-0.4.3
5e42c1615f4de0079bd4d8913886d588ce6a295d release-0.4.4
40266f92b829a870808b3d4ee54c8fccdecbd2d6 release-0.4.5
56e33c6efee7ff63cdc52bd1cf172bde195079df release-0.4.6
119bad43bfd493400c57a05848eada2c35a46810 release-0.4.7
0f404f82a1343cb4e4b277a44e3417385798e5e5 release-0.4.8
d24a717314365c857b9f283d6072c2a427d5e342 release-0.4.9
d6f0a00015fdef861fd67fb583b9690638650656 release-0.4.10
e372368dadd7b2ecd0182b2f1b11db86fc27b2c3 release-0.4.11
fd57967d850d2361072c72562d1ed03598473478 release-0.4.12
979045fdcbd20cf7188545c1c589ff240251f890 release-0.4.13
93c94cfa9f78f0a5740595dde4466ec4fba664f8 release-0.4.14
589ee12e8d7c2ae5e4f4676bcc7a1279a76f9e8e release-0.5.0
13416db8a807e5acb4021bc3c581203de57e2f50 release-0.5.1
06c58edc88831fb31c492a8eddcf2c6056567f18 release-0.5.2
e2ac5fa41bcba14adbbb722d45c083c30c07bb5c release-0.5.3
393dbc659df15ccd411680b5c1ce87ed86d4c144 release-0.5.4
38cc7bd8e04f2c519fd4526c12841a876be353cb release-0.5.5
6d1fcec2ea79101c756316c015f72e75f601a5ab release-0.5.6
aed8a9de62456c4b360358bc112ccca32ce02e8d release-0.5.7
7642f45af67d805452df2667486201c36efaff85 release-0.5.8
779216610662c3a459935d506f66a9b16b9c9576 release-0.5.9
9eeb585454f3daa30cf768e95c088a092fe229b9 release-0.5.10
bb491c8197e38ca10ae63b1f1ecb36bf6fdaf950 release-0.5.11
613369e08810f36bbcc9734ef1059a03ccbf5e16 release-0.5.12
bd796ef5c9c9dd34bfac20261b98685e0410122a release-0.5.13
8a730c49f906d783b47e4b44d735efd083936c64 release-0.5.14
cb447039152d85e9145139ff2575a6199b9af9d4 release-0.5.15
64854c7c95d04f838585ca08492823000503fa61 release-0.5.16
d1ffcf84ea1244f659145c36ff28de6fcdf528b2 release-0.5.17
796a6e30ca9d29504195c10210dbc8deced0ae83 release-0.5.18
1f81c711d2a039e1f93b9b515065a2235372d455 release-0.5.19
8e8f6082654aedb4438c8fca408cfc316c7c5a2a release-0.5.20
e9551132f7dd40da5719dd5bcf924c86f1436f85 release-0.5.21
533a252896c4d1cff1586ae42129d610f7497811 release-0.5.22
f461a49b6c747e0b67f721f2be172902afea5528 release-0.5.23
2d5ef73671f690b65bf6d9e22e7155f68f484d5a release-0.5.24
77bf42576050862c268e267ef3e508b145845a25 release-0.5.25
2aefee4d4ed69eb7567680bf27a2efd212232488 release-0.6.0
7ac0fe9bec9a2b5f8e191f6fdd6922bfd916a6cb release-0.6.1
4882735ebc71eeec0fbfe645bdfdb31306872d82 release-0.6.2
b94731c73d0922f472ff938b9d252ba29020f20c release-0.6.3
13e649b813d6ccba5db33a61e08ebe09d683cd5b release-0.6.4
80de622646b0059fd4c553eff47c391bf7503b89 release-0.6.5
3b05edb2619d5935023b979ee7a9611b61b6c9e5 release-0.6.6
1dcfd375100c4479611f71efb99271d0a3059215 release-0.6.7
0228185d4c5772947b842e856ad74cf7f7fd52f3 release-0.6.8
d1879c52326ecac45c713203670f54220879911e release-0.6.9
5a80c6ccbe2ad24fa3d4ff6f9fe4a2b07408d19d release-0.6.10
f88a8b0b39601b19cd740e4db614ab0b5b874686 release-0.6.11
5557460a7247a1602ae96efd1d0ccf781344cb58 release-0.6.12
451b02cc770a794cd41363461b446948ae1d8bc8 release-0.6.13
537b6ef014c4a133e0ab0b7dc817508e0647e315 release-0.6.14
5e68764f0d6e91a983170fa806e7450a9e9b33fe release-0.6.15
158aa4e8cc46fcf9504a61469d22daf3476b17bf release-0.6.16
d8fcca555542619228d9fab89e1665b993f8c3ee release-0.6.17
60707ebc037086cf004736a0d4979e2a608da033 release-0.6.18
3c2a99d3a71af846855be35e62edb9a12f363f44 release-0.6.19
3e0a27f9358ffc1b5249e0ea2311ce7da5c8967e release-0.6.20
143f4d65b1c875d6563ccb7f653d9157afc72194 release-0.6.21
95e6160d2b7d0af8ffd1b95a23cadadf8f0b3f6d release-0.6.22
69a03d5e3b6e6660079ef1ef172db7ac08d8370e release-0.6.23
3e2a58fb48f1e1a99ebf851e0d47a7034c52ae22 release-0.6.24
3b8607c05a8bebcfa59235c2126a70d737f0ccf5 release-0.6.25
07ad5b2606614c4be4ee720c46cf4af126059d31 release-0.6.26
be531addfabe5214f409d457140c1038af10d199 release-0.6.27
58f05255d3a345d04baef5cff0ca1ae0ac7ecebb release-0.6.28
eb2bd21dc8d03f6c94016f04ffb9adaf83a2b606 release-0.6.29
55408deb3cd171efa9b81d23d7a1dd1ccde0b839 release-0.6.30
d4288915bba73c4c3c9cf5d39d34e86879eb2b45 release-0.6.31
0a189588830b8629c4dfea68feb49af36b59e4a9 release-0.7.0
6ab27a06f3346cf9ec8737f5dbcc82dd4031e30f release-0.7.1
a07e258cef3b0a0b6e76a6ff4ba4651c5facc85a release-0.7.2
9992c4583513d2804fc2e7fec860fbc7ab043009 release-0.7.3
4dc24d50230fbadfc037a414a86390db2de69dd2 release-0.7.4
9527137b4354a648a229c7169850c7c65272c00d release-0.7.5
c2f0f7cf306f302254beae512bda18713922375c release-0.7.6
bbcf6d75556fdcee8bd4aba8f6c27014be9920ee release-0.7.7
43bde71f0bbe5a33b161760d7f9f980d50386597 release-0.7.8
769f0dd7081e9011394f264aa22aa66fd79730d8 release-0.7.9
511edfa732da637f5f0c9476335df7dca994706d release-0.7.10
0e7023bf6b2461309c29885935443449a41be807 release-0.7.11
9ad1bd2b21d93902863807528e426862aedee737 release-0.7.12
d90ea21e24ea35379aef50c5d70564158e110a15 release-0.7.13
c07d2d20d95c83d804079bbdcecbce4a0c8282f0 release-0.7.14
0cd7bb051f67eac2b179fb9f9cc988b9ba18ed76 release-0.7.15
eab2e87deba73ae6abd9cc740e8d4365bed96322 release-0.7.16
91d7a9eb8ade90e9421d7b1e3c2e47a6bc427876 release-0.7.17
fc10f7b5cb1305fb930f8ac40b46882d0828d61e release-0.7.18
9dba9779e37e5969a2d408c792084fd7acfec062 release-0.7.19
61838d1bcbddc7bc4dd9f30d535573a6fddca8f9 release-0.7.20
5f665d0fa6a5f6e748157f2ccbc445b2db8125d0 release-0.7.21
24763afa5efe91e54f00b2ae5b87666eb6c08c3b release-0.7.22
0562fb355a25266150cbe8c8d4e00f55e3654df3 release-0.7.23
19c452ecd083550816873a8a31eb3ed9879085e6 release-0.7.24
46b68faf271d6fdcaaf3ad2c69f6167ea9e9fa28 release-0.7.25
d04bfca0c7e3ae2e4422bc1d383553139d6f0a19 release-0.7.26
9425d9c7f8ead95b00a3929a9a5e487e0e3c8499 release-0.7.27
fbc3e7e8b3ee756568a875f87d8a954a2f9d3bf6 release-0.7.28
5176dfdf153fc785b18604197d58806f919829ad release-0.7.29
87e07ccdf0a4ec53458d9d7a4ea66e1239910968 release-0.7.30
9fddd7e1a7a27f8463867f41a461aad57df461b2 release-0.7.31
780b2ba1ec6daf6e3773774e26b05b9ff0d5483e release-0.7.32
83027471a25385b1c671968be761e9aa7a8591a7 release-0.7.33
1e9a362c3dcee221ca6e34308c483ed93867aca2 release-0.7.34
c7ee9e15717b54ead5f4a554686e74abe66c6b07 release-0.7.35
b84548abe9b9d4f4e203f848696e52c8c82c308f release-0.7.36
3286f0bab8e77dbc7ebb370b1dc379592ccff123 release-0.7.37
11a4e2ed5b166b9c9f119171aa399a9e3aa4684a release-0.7.38
f822655d4120629977794c32d3b969343b6c30db release-0.7.39
8a350e49d2b6751296db6d8e27277ccf63ed412a release-0.7.40
c4a56c197eeafd71fc1caef7a9d890a330e3c23d release-0.7.41
a9575a57a5443df39611774cf3840e9088132b0e release-0.7.42
7503d95d6eadad14c28b2db183ba09848265274b release-0.7.43
9be652e9114435fc6f1fdec84c0458d56702db91 release-0.7.44
797e070d480a34b31ddac0d364784773f1bbbcf9 release-0.7.45
9b5037e7ec7db25875c40f9d1cf20a853388b124 release-0.7.46
d1d0e6d7ff0ca3c0dd1be1ef1cfff2e3fd0b4e1c release-0.7.47
9816fb28eda599bfd53940e6d3b6617d1ecb6323 release-0.7.48
452b9d09df8e3f2fb04b2a33d04d2f3a6436eb34 release-0.7.49
e4350efa7cf7a0e868c2236a1137de8a33bd8ec6 release-0.7.50
f51f2bec766c8b6d7e1799d904f18f8ea631bd44 release-0.7.51
18e39e566781c9c187e2eb62bebd9d669d68f08c release-0.7.52
b073eaa1dcea296a3488b83d455fab6621a73932 release-0.7.53
01c6fe6c2a55998434cd3b05dd10ca487ac3fb6c release-0.7.54
3ed9377e686f2521e6ec15873084381033fb490d release-0.7.55
a1e44954549c35023b409f728c678be8bf898148 release-0.7.56
fbb1918a85e38a7becdb1a001dbaf5933f23a919 release-0.7.57
87f4a49a9cc34a5b11c8784cc5ea89e97b4b2bd8 release-0.7.58
0c22cb4862c8beb4ee1b9e4627125162a29a5304 release-0.7.59
82d56c2425ef857cd430b8530a3f9e1127145a67 release-0.8.0
f4acb784b53cd952559567971b97dde1e818a2b6 release-0.8.1
b3503597c1a0f0f378afdc5e5e5b85e2c095a4be release-0.8.2
c98da980514a02ba81c421b25bf91803ffffddf3 release-0.8.3
db34ec0c53c4b9dec12ffdf70caf89a325ab9577 release-0.8.4
0914802433b8678ba2cdf91280766f00f4b9b76e release-0.8.5
ff52ee9e6422f3759f43a442b7ba615595b3a3d4 release-0.8.6
7607237b4829fff1f60999f4663c50ed9d5182f7 release-0.8.7
1cef1807bc12cb05ac52fb0e7a0f111d3760b569 release-0.8.8
a40f8475511d74a468ade29c1505e8986600d7a3 release-0.8.9
2d9faf2260df6c3e5d4aa1781493c31f27a557d0 release-0.8.10
d0d61c32331a6505381b5218318f7b69db167ca8 release-0.8.11
ca7a1c6c798a7eb5b294d4ac3179ec87ecf297d3 release-0.8.12
81c8277cd8ed55febcb2dd9d9213076f6c0ccb09 release-0.8.13
3089486a8dc5844b5b6e9f78d536b4b26f7ffa16 release-0.8.14
d364c2c12dd9723a2dfac3f096f5e55d4cfe6838 release-0.8.15
52163a1027c3efd6b4c461b60a2ca6266c23e193 release-0.8.16
06564e9a2d9ec5852132c212e85eda0bf1300307 release-0.8.17
7aaa959da85e09e29bcac3b1cadec35b0a25b64d release-0.8.18
4bc73c644329a510da4e96b7241b80ead7772f83 release-0.8.19
ea3d168fb99c32a5c3545717ecc61e85a375e5dd release-0.8.20
27951ca037e63dae45ff5b6279124c224ae1255a release-0.8.21
d56c8b5df517c2bf6e7bc2827b8bf3e08cda90e1 release-0.8.22
3c6ac062b379b126212cbb27e98a3c8275ef381a release-0.8.23
89b9173476de14688b1418fbf7df10f91d1719ef release-0.8.24
aa550cb4159ae0d566006e091fb1c7a888771050 release-0.8.25
06ce92293f6a65651b08c466f90f55bd69984b98 release-0.8.26
ea50b0d79ef1d7d901cd0e4dcd7373447849d719 release-0.8.27
e68b1c35cad86105ff1c5b240f53442f4c36356e release-0.8.28
78d3582a30afe63fc0adb17c3ac8891a64e47146 release-0.8.29
9852c5965a3292a1b6127dbb4da9fce4912d898a release-0.8.30
4f84115914490e572bcbee5069157b7334df2744 release-0.8.31
59dee6f7f3afeb1fad6ed5983756e48c81ad2a5c release-0.8.32
a4456378d234c07038456cf32bfe3c651f1d5e82 release-0.8.33
21cb50799a20575a42f9733342d37a426f79db4d release-0.8.34
7cb3cb8d78ef7ae63561733ed91fd07933896bc8 release-0.8.35
aed68639d4eb6afe944b7fb50499c16f7f3f503c release-0.8.36
265b7fd2ae21c75bbffa5115b83a0123d6c4acb4 release-0.8.37
fa5f1ca353c0c5aa5415f51d72fd7bbcc02d1ed7 release-0.8.38
af10bf9d4c6532850aa1f70cdf7504bd109b284c release-0.8.39
4846ec9f83cb5bc4c8519d5641b35fb9b190430c release-0.8.40
718b4cb3faf7efe4e0648140f064bf7a92c3f7e8 release-0.8.41
b5a3065749093282ddd19845e0b77ffc2e54333e release-0.8.42
34df9fb22fed415cdad52def04095dc6d4b48222 release-0.8.43
00ec8cd76fb89af27363b76c40d9f88bf4679c3b release-0.8.44
e16dd52a0d226c23dcae9a11252564a04753bbed release-0.8.45
f034d9173df0a433e0bbcf5974f12ea9eb9076c0 release-0.8.46
4434dc967087315efcd0658206a67fe6c85528f3 release-0.8.47
0b65c962e0cd6783a854877b52c903cb058eec8c release-0.8.48
a2b7e94b9807e981866bf07e37b715847d1b7120 release-0.8.49
e7bdb8edc1bab2bc352a9fb6ce765c46575c35bf release-0.8.50
21dacebd12f65cb57ceb8d2688db5b07fad6e06d release-0.8.51
67dd7533b99c8945b5b8b5b393504d4e003a1c50 release-0.8.52
010468d890dbac33a4cae6dfb2017db70721b2fe release-0.8.53
62b599022a2fa625b526c2ad1711dc6db7d66786 release-0.9.0
71281dd73b17a0ead5535d531afaee098da723cb release-0.9.1
16cff36b0e49fc9fdeee13b2e92690286bcc1b3d release-0.9.2
b7b306325972661117694879d3e22faf4cf0df32 release-0.9.3
fe671505a8ea86a76f0358b3ec4de84a9037ac2b release-0.9.4
70542931bc5436d1bbd38f152245d93ac063968d release-0.9.5
27e2f3b7a3db1819c5d0ba28327ceaba84a13c4e release-0.9.6
657d05d63915ce2f6c4d763091059f5f85bb10e5 release-0.9.7
e0fd9f36005923b8f98d1ba1ea583cb7625f318f release-1.0.0
f8f89eb4e0c27e857ec517d893d4f9a454985084 release-1.0.1
c50df367648e53d55e80b60a447c9c66caa0d326 release-1.0.2
80d586db316512b5a9d39f00fe185f7f91523f52 release-1.0.3
c9c2805ac9245cc48ce6efeba2b4a444f859d6aa release-1.0.4
fa2c37b1122c2c983b6e91d1188e387d72dde4d6 release-1.0.5
f31aea5b06654c9163be5acd6d9b7aaf0fdf6b33 release-1.1.0
44bf95f670656fae01ccb266b3863843ea13d324 release-1.1.1
da1289482a143dfa016769649bdff636c26f53c8 release-1.1.2
bac8ba08a6570bac2ecd3bf2ad64b0ac3030c903 release-1.1.3
911060bc8221d4113a693ae97952a1fa88663ca8 release-1.1.4
e47531dfabbf8e5f8b8aff9ff353642ea4aa7abb release-1.1.5
f9ddecfe331462f870a95e4c1c3ba1bb8f19f2d3 release-1.1.6
378c297bb7459fb99aa9c77decac0d35391a3932 release-1.1.7
71600ce67510af093d4bc0117a78b3b4678c6b3a release-1.1.8
482d7d907f1ab92b78084d8b8631ed0eb7dd08f7 release-1.1.9
c7e65deabf0db5109e8d8f6cf64cd3fb7633a3d1 release-1.1.10
9590f0cf5aab8e6e0b0c8ae59c70187b2b97d886 release-1.1.11
ade8fc136430cfc04a8d0885c757968b0987d56c release-1.1.12
6a6836e65827fd3cb10a406e7bbbe36e0dad8736 release-1.1.13
6845f4ac909233f5a08ed8a51de137713a888328 release-1.1.14
2397e9c72f1bc5eac67006e12ad3e33e0ea9ba74 release-1.1.15
7b7c49639a7bceecabf4963c60b26b65a77d6ce0 release-1.1.16
f7e1113a9a1648cad122543e7080e895cf2d88f4 release-1.1.17
2b22743c3079b41233ded0fc35af8aa89bcfab91 release-1.1.18
0f0b425659e0b26f5bc8ea14a42dbf34de2eaba6 release-1.1.19
f582d662cc408eb7a132c21f4b298b71d0701abb release-1.2.0
9ee68d629722f583d43d92271f2eb84281afc630 release-1.3.0
61b6a3438afef630774e568eefd89c53e3b93287 release-1.3.1
7ccd50a0a455f2f2d3b241f376e1193ad956196d release-1.2.1
0000000000000000000000000000000000000000 release-1.2.1
50107e2d96bbfc2c59e46f889b1a5f68dd10cf19 release-1.3.2
2c5e1e88c8cf710caf551c5c67eba00443601efe release-1.3.3
a43447fb82aa03eabcd85352758ae14606a84d35 release-1.3.4
90f3b4ea7992a7bf9385851a3e77173363091eea release-1.3.5
3aeb14f88daeb973e4708310daa3dc68ac1200f7 release-1.3.6
dafd375f1c882b15fa4a9b7aa7c801c55082395e release-1.3.7
ab7ce0eb4cf78a656750ab1d8e55ef61f7e535ec release-1.3.8
1b1a9337a7399ad3cdc5e3a2f9fbaaec990271d5 release-1.3.9
2c053b2572694eb9cd4aed26a498b6cb1f51bbcc release-1.3.10
36409ac209872ce53019f084e4e07467c5d9d25e release-1.3.11
560dc55e90c13860a79d8f3e0d67a81c7b0257bb release-1.3.12
dc195ffe0965b2b9072f8e213fe74ecce38f6773 release-1.3.13
e04428778567dd4de329bbbe97ad653e22801612 release-1.3.14
cd84e467c72967b9f5fb4d96bfc708c93edeb634 release-1.3.15
23159600bdea695db8f9d2890aaf73424303e49c release-1.3.16
7809529022b83157067e7d1e2fb65d57db5f4d99 release-1.4.0
48a84bc3ff074a65a63e353b9796ff2b14239699 release-1.5.0
99eed1a88fc33f32d66e2ec913874dfef3e12fcc release-1.5.1
5bdca4812974011731e5719a6c398b54f14a6d61 release-1.5.2
644a079526295aca11c52c46cb81e3754e6ad4ad release-1.5.3
376a5e7694004048a9d073e4feb81bb54ee3ba91 release-1.5.4
60e0409b9ec7ee194c6d8102f0656598cc4a6cfe release-1.5.5
70c5cd3a61cb476c2afb3a61826e59c7cda0b7a7 release-1.5.6
9ba2542d75bf62a3972278c63561fc2ef5ec573a release-1.5.7
eaa76f24975948b0ce8be01838d949122d44ed67 release-1.5.8
5a1759f33b7fa6270e1617c08d7e655b7b127f26 release-1.5.9
b798fc020e3a84ef68e6c9f47865a319c826d33c release-1.5.10
f995a10d4c7e9a817157a6ce7b753297ad32897e release-1.5.11
97b47d95e4449cbde976657cf8cbbc118351ffe0 release-1.5.12
fd722b890eabc600394349730a093f50dac31639 release-1.5.13
d161d68df8be32e5cbf72b07db1a707714827803 release-1.7.0
0351a6d89c3dbcc7a76295024ba6b70e27b9a497 release-1.7.1
0bd223a546192fdf2e862f33938f4ec2a3b5b283 release-1.7.2
fe7cd01828d5ca7491059f0690bb4453645eb28b release-1.7.3
cbb146b120296852e781079d5138b04495bab6df release-1.7.4
fe129aa02db9001d220f1db7c3c056f79482c111 release-1.7.5
a8d111bb68847f61d682a3c8792fecb2e52efa2c release-1.7.6
6d2fbc30f8a7f70136cf08f32d5ff3179d524873 release-1.7.7
d5ea659b8bab2d6402a2266efa691f705e84001e release-1.7.8
34b201c1abd1e2d4faeae4650a21574771a03c0e release-1.7.9
860cfbcc4606ee36d898a9cd0c5ae8858db984d6 release-1.7.10
2b3b737b5456c05cd63d3d834f4fb4d3776953d0 release-1.7.11
3ef00a71f56420a9c3e9cec311c9a2109a015d67 release-1.7.12
53d850fe292f157d2fb999c52788ec1dc53c91ed release-1.9.0
884a967c369f73ab16ea859670d690fb094d3850 release-1.9.1
3a32d6e7404a79a0973bcd8d0b83181c5bf66074 release-1.9.2
e27a215601292872f545a733859e06d01af1017d release-1.9.3
5cb7e2eed2031e32d2e5422caf9402758c38a6ad release-1.9.4
942475e10cb47654205ede7ccbe7d568698e665b release-1.9.5
b78018cfaa2f0ec20494fccb16252daa87c48a31 release-1.9.6
54117529e40b988590ea2d38aae909b0b191663f release-1.9.7
1bdc497c81607d854e3edf8b9a3be324c3d136b6 release-1.9.8
ef107f3ddc237a3007e2769ec04adde0dcf627fa release-1.9.9
be00ca08e41a69e585b6aff70a725ed6c9e1a876 release-1.9.10
fe66cff450a95beed36a2515210eb2d7ef62c9d3 release-1.9.11
ead3907d74f90a14d1646f1b2b56ba01d3d11702 release-1.9.12
5936b7ed929237f1a73b467f662611cdc0309e51 release-1.9.13
4106db71cbcb9c8274700199ac17e520902c6c0f release-1.9.14
13070ecfda67397985f0e986eb9c42ecb46d05b5 release-1.9.15
271ee30c6791847980cd139d31807541f5e569bf release-1.11.0
cb783d9cc19761e14e1285d91c38f4b84d0b8756 release-1.11.1
4d3b3a13a8cf5fc3351a7f167d1c13325e00f21c release-1.11.2
b83a067949a3384a49fd3d943eb8d0997b31f87b release-1.11.3
953512ca02c6f63b4fcbbc3e10d0d9835896bf99 release-1.11.4
5253015a339aaca0a3111473d3e931b6d4752393 release-1.11.5
5e371426b3bcba4312ce08606194b89b758927d1 release-1.11.6
5c8f60faf33ca8926473d2da27b4c3c417bd4630 release-1.11.7
4591da489a30f790def29bc5987f43409b503cae release-1.11.8
20a45c768e5ed26b740679d0e22045c98727c3cc release-1.11.9
1ad0999a7ded3d4fb01c7acf8ff57c80b643da7e release-1.11.10
d8b321a876d6254e9e98795e3b194ef053290354 release-1.11.11
7f394e433f0003222aa6531931ecc0b24740d5e4 release-1.11.12
3d0e8655f897959e48cc74e87670bb5492a58871 release-1.11.13
3671096a45bce570a2afa20b9faf42c7fb0f7e66 release-1.13.0
539f7893ecb96bee60965528c8958d7eb2f1ce6b release-1.13.1
5be2b25bdc65775a85f18f68a4be4f58c7384415 release-1.13.2
8457ce87640f9bfe6221c4ac4466ced20e03bebe release-1.13.3
bbc642c813c829963ce8197c0ca237ab7601f3d4 release-1.13.4
0d45b4cf7c2e4e626a5a16e1fe604402ace1cea5 release-1.13.5
f87da7d9ca02b8ced4caa6c5eb9013ccd47b0117 release-1.13.6
47cca243d0ed39bf5dcb9859184affc958b79b6f release-1.13.7
20ca4bcff108d3e66977f4d97508637093492287 release-1.13.8
fb1212c7eca4c5328fe17d6cd95b010c67336aac release-1.13.9
31c929e16910c38492581ef474e72fa67c28f124 release-1.13.10
64179f242cb55fc206bca59de9bfdc4cf5ebcec7 release-1.13.11
051e5fa03b92b8a564f6b12debd483d267391e82 release-1.13.12
990b3e885636d763b97ed02d0d2cfc161a4e0c09 release-1.15.0
4189160cb946bb38d0bc0a452b5eb4cdd8979fb5 release-1.15.1
b234199c7ed8a156a6bb98f7ff58302c857c954f release-1.15.2
28b3e17ca7eba1e6a0891afde0e4bc5bcc99c861 release-1.15.3
49d49835653857daa418e68d6cbfed4958c78fca release-1.15.4
f062e43d74fc2578bb100a9e82a953efa1eb9e4e release-1.15.5
2351853ce6867b6166823bdf94333c0a76633c0a release-1.15.6
051a039ce1c7e09144de4a4846669ec7116cecea release-1.15.7
ee551e3f6dba336c0d875e266d7d55385f379b42 release-1.15.8
d2fd76709909767fc727a5b4affcf1dc9ca488a7 release-1.15.9
75f5c7f628411c79c7044102049f7ab4f7a246e7 release-1.15.10
5155d0296a5ef9841f035920527ffdb771076b44 release-1.15.11
0130ca3d58437b3c7c707cdddd813d530c68da9a release-1.15.12
054c1c46395caff79bb4caf16f40b331f71bb6dd release-1.17.0
7816bd7dabf6ee86c53c073b90a7143161546e06 release-1.17.1
2fc9f853a6b7cd29dc84e0af2ed3cf78e0da6ca8 release-1.17.2
ed4303aa1b31a9aad5440640c0840d9d0af45fed release-1.17.3
ce2ced3856909f36f8130c99eaa4dbdbae636ddc release-1.17.4
9af0dddbddb2c368bfedd2801bc100ffad01e19b release-1.17.5
de68d0d94320cbf033599c6f3ca37e5335c67fd7 release-1.17.6
e56295fe0ea76bf53b06bffa77a2d3a9a335cb8c release-1.17.7
fdacd273711ddf20f778c1fb91529ab53979a454 release-1.17.8
5e8d52bca714d4b85284ddb649d1ba4a3ca978a8 release-1.17.9
c44970de01474f6f3e01b0adea85ec1d03e3a5f2 release-1.17.10
cbe6ba650211541310618849168631ce0b788f35 release-1.19.0
062920e2f3bf871ef7a3d8496edec1b3065faf80 release-1.19.1
a7b46539f507e6c64efa0efda69ad60b6f4ffbce release-1.19.2
3cbc2602325f0ac08917a4397d76f5155c34b7b1 release-1.19.3
dc0cc425fa63a80315f6efb68697cadb6626cdf2 release-1.19.4
8e5b068f761cd512d10c9671fbde0b568c1fd08b release-1.19.5
f618488eb769e0ed74ef0d93cd118d2ad79ef94d release-1.19.6
3fa6e2095a7a51acc630517e1c27a7b7ac41f7b3 release-1.19.7
8c65d21464aaa5923775f80c32474adc7a320068 release-1.19.8
da571b8eaf8f30f36c43b3c9b25e01e31f47149c release-1.19.9
ffcbb9980ee2bad27b4d7b1cd680b14ff47b29aa release-1.19.10
df34dcc9ac072ffd0945e5a1f3eb7987e8275375 release-1.21.0
a68ac0677f8553b1f84d357bc9da114731ab5f47 release-1.21.1
bfbc52374adcbf2f9060afd62de940f6fab3bba5 release-1.21.2
2217a9c1d0b86026f22700b3c089545db1964f55 release-1.21.3
39be8a682c58308d9399cddd57e37f9fdb7bdf3e release-1.21.4
d986378168fd4d70e0121cabac274c560cca9bdf release-1.21.5
714eb4b2c09e712fb2572a2164ce2bf67638ccac release-1.21.6
5da2c0902e8e2aa4534008a582a60c61c135960e release-1.23.0
a63d0a70afea96813ba6667997bc7d68b5863f0d release-1.23.1
aa901551a7ebad1e8b0f8c11cb44e3424ba29707 release-1.23.2
ff3afd1ce6a6b65057741df442adfaa71a0e2588 release-1.23.3
ac779115ed6ee4f3039e9aea414a54e560450ee2 release-1.23.4
12dcf92b0c2c68552398f19644ce3104459807d7 release-1.25.0
f8134640e8615448205785cf00b0bc810489b495 release-1.25.1
1d839f05409d1a50d0f15a2bf36547001f99ae40 release-1.25.2
294a3d07234f8f65d7b0e0b0e2c5b05c12c5da0a release-1.25.3
173a0a7dbce569adbb70257c6ec4f0f6bc585009 release-1.25.4
8618e4d900cc71082fbe7dc72af087937d64faf5 release-1.25.5
a58202a8c41bf0bd97eef1b946e13105a105520d release-1.26.0
a63c124e34bcf2d1d1feb8d40ff075103b967c4c release-1.26.1
e4c5da06073ca24e2ffc5c8f8b8d7833a926356f release-1.26.2

301
CHANGES
View file

@ -1,15 +1,310 @@
Changes with nginx 1.22.1 19 Oct 2022
Changes with nginx 1.26.3 05 Feb 2025
*) Security: insufficient check in virtual servers handling with TLSv1.3
SNI allowed to reuse SSL sessions in a different virtual server, to
bypass client SSL certificates verification (CVE-2025-23419).
*) Bugfix: in the ngx_http_mp4_module.
Thanks to Nils Bars.
*) Workaround: "gzip filter failed to use preallocated memory" alerts
appeared in logs when using zlib-ng.
*) Bugfix: nginx could not build libatomic library using the library
sources if the --with-libatomic=DIR option was used.
*) Bugfix: nginx now ignores QUIC version negotiation packets from
clients.
*) Bugfix: nginx could not be built on Solaris 10 and earlier with the
ngx_http_v3_module.
*) Bugfixes in HTTP/3.
Changes with nginx 1.26.2 14 Aug 2024
*) Security: processing of a specially crafted mp4 file by the
ngx_http_mp4_module might cause a worker process crash
(CVE-2024-7347).
Thanks to Nils Bars.
Changes with nginx 1.26.1 29 May 2024
*) Security: when using HTTP/3, processing of a specially crafted QUIC
session might cause a worker process crash, worker process memory
disclosure on systems with MTU larger than 4096 bytes, or might have
potential other impact (CVE-2024-32760, CVE-2024-31079,
CVE-2024-35200, CVE-2024-34161).
Thanks to Nils Bars of CISPA.
*) Bugfix: reduced memory consumption for long-lived requests if "gzip",
"gunzip", "ssi", "sub_filter", or "grpc_pass" directives are used.
*) Bugfix: nginx could not be built by gcc 14 if the --with-libatomic
option was used.
Thanks to Edgar Bonet.
*) Bugfix: in HTTP/3.
Changes with nginx 1.26.0 23 Apr 2024
*) 1.26.x stable branch.
Changes with nginx 1.25.5 16 Apr 2024
*) Feature: virtual servers in the stream module.
*) Feature: the ngx_stream_pass_module.
*) Feature: the "deferred", "accept_filter", and "setfib" parameters of
the "listen" directive in the stream module.
*) Feature: cache line size detection for some architectures.
Thanks to Piotr Sikora.
*) Feature: support for Homebrew on Apple Silicon.
Thanks to Piotr Sikora.
*) Bugfix: Windows cross-compilation bugfixes and improvements.
Thanks to Piotr Sikora.
*) Bugfix: unexpected connection closure while using 0-RTT in QUIC.
Thanks to Vladimir Khomutov.
Changes with nginx 1.25.4 14 Feb 2024
*) Security: when using HTTP/3 a segmentation fault might occur in a
worker process while processing a specially crafted QUIC session
(CVE-2024-24989, CVE-2024-24990).
*) Bugfix: connections with pending AIO operations might be closed
prematurely during graceful shutdown of old worker processes.
*) Bugfix: socket leak alerts no longer logged when fast shutdown was
requested after graceful shutdown of old worker processes.
*) Bugfix: a socket descriptor error, a socket leak, or a segmentation
fault in a worker process (for SSL proxying) might occur if AIO was
used in a subrequest.
*) Bugfix: a segmentation fault might occur in a worker process if SSL
proxying was used along with the "image_filter" directive and errors
with code 415 were redirected with the "error_page" directive.
*) Bugfixes and improvements in HTTP/3.
Changes with nginx 1.25.3 24 Oct 2023
*) Change: improved detection of misbehaving clients when using HTTP/2.
*) Feature: startup speedup when using a large number of locations.
Thanks to Yusuke Nojima.
*) Bugfix: a segmentation fault might occur in a worker process when
using HTTP/2 without SSL; the bug had appeared in 1.25.1.
*) Bugfix: the "Status" backend response header line with an empty
reason phrase was handled incorrectly.
*) Bugfix: memory leak during reconfiguration when using the PCRE2
library.
Thanks to ZhenZhong Wu.
*) Bugfixes and improvements in HTTP/3.
Changes with nginx 1.25.2 15 Aug 2023
*) Feature: path MTU discovery when using HTTP/3.
*) Feature: TLS_AES_128_CCM_SHA256 cipher suite support when using
HTTP/3.
*) Change: now nginx uses appname "nginx" when loading OpenSSL
configuration.
*) Change: now nginx does not try to load OpenSSL configuration if the
--with-openssl option was used to built OpenSSL and the OPENSSL_CONF
environment variable is not set.
*) Bugfix: in the $body_bytes_sent variable when using HTTP/3.
*) Bugfix: in HTTP/3.
Changes with nginx 1.25.1 13 Jun 2023
*) Feature: the "http2" directive, which enables HTTP/2 on a per-server
basis; the "http2" parameter of the "listen" directive is now
deprecated.
*) Change: HTTP/2 server push support has been removed.
*) Change: the deprecated "ssl" directive is not supported anymore.
*) Bugfix: in HTTP/3 when using OpenSSL.
Changes with nginx 1.25.0 23 May 2023
*) Feature: experimental HTTP/3 support.
Changes with nginx 1.23.4 28 Mar 2023
*) Change: now TLSv1.3 protocol is enabled by default.
*) Change: now nginx issues a warning if protocol parameters of a
listening socket are redefined.
*) Change: now nginx closes connections with lingering if pipelining was
used by the client.
*) Feature: byte ranges support in the ngx_http_gzip_static_module.
*) Bugfix: port ranges in the "listen" directive did not work; the bug
had appeared in 1.23.3.
Thanks to Valentin Bartenev.
*) Bugfix: incorrect location might be chosen to process a request if a
prefix location longer than 255 characters was used in the
configuration.
*) Bugfix: non-ASCII characters in file names on Windows were not
supported by the ngx_http_autoindex_module, the ngx_http_dav_module,
and the "include" directive.
*) Change: the logging level of the "data length too long", "length too
short", "bad legacy version", "no shared signature algorithms", "bad
digest length", "missing sigalgs extension", "encrypted length too
long", "bad length", "bad key update", "mixed handshake and non
handshake data", "ccs received early", "data between ccs and
finished", "packet length too long", "too many warn alerts", "record
too small", and "got a fin before a ccs" SSL errors has been lowered
from "crit" to "info".
*) Bugfix: a socket leak might occur when using HTTP/2 and the
"error_page" directive to redirect errors with code 400.
*) Bugfix: messages about logging to syslog errors did not contain
information that the errors happened while logging to syslog.
Thanks to Safar Safarly.
*) Workaround: "gzip filter failed to use preallocated memory" alerts
appeared in logs when using zlib-ng.
*) Bugfix: in the mail proxy server.
Changes with nginx 1.23.3 13 Dec 2022
*) Bugfix: an error might occur when reading PROXY protocol version 2
header with large number of TLVs.
*) Bugfix: a segmentation fault might occur in a worker process if SSI
was used to process subrequests created by other modules.
Thanks to Ciel Zhao.
*) Workaround: when a hostname used in the "listen" directive resolves
to multiple addresses, nginx now ignores duplicates within these
addresses.
*) Bugfix: nginx might hog CPU during unbuffered proxying if SSL
connections to backends were used.
Changes with nginx 1.23.2 19 Oct 2022
*) Security: processing of a specially crafted mp4 file by the
ngx_http_mp4_module might cause a worker process crash, worker
process memory disclosure, or might have potential other impact
(CVE-2022-41741, CVE-2022-41742).
*) Feature: the "$proxy_protocol_tlv_..." variables.
Changes with nginx 1.22.0 24 May 2022
*) Feature: TLS session tickets encryption keys are now automatically
rotated when using shared memory in the "ssl_session_cache"
directive.
*) 1.22.x stable branch.
*) Change: the logging level of the "bad record type" SSL errors has
been lowered from "crit" to "info".
Thanks to Murilo Andrade.
*) Change: now when using shared memory in the "ssl_session_cache"
directive the "could not allocate new session" errors are logged at
the "warn" level instead of "alert" and not more often than once per
second.
*) Bugfix: nginx/Windows could not be built with OpenSSL 3.0.x.
*) Bugfix: in logging of the PROXY protocol errors.
Thanks to Sergey Brester.
*) Workaround: shared memory from the "ssl_session_cache" directive was
spent on sessions using TLS session tickets when using TLSv1.3 with
OpenSSL.
*) Workaround: timeout specified with the "ssl_session_timeout"
directive did not work when using TLSv1.3 with OpenSSL or BoringSSL.
Changes with nginx 1.23.1 19 Jul 2022
*) Feature: memory usage optimization in configurations with SSL
proxying.
*) Feature: looking up of IPv4 addresses while resolving now can be
disabled with the "ipv4=off" parameter of the "resolver" directive.
*) Change: the logging level of the "bad key share", "bad extension",
"bad cipher", and "bad ecpoint" SSL errors has been lowered from
"crit" to "info".
*) Bugfix: while returning byte ranges nginx did not remove the
"Content-Range" header line if it was present in the original backend
response.
*) Bugfix: a proxied response might be truncated during reconfiguration
on Linux; the bug had appeared in 1.17.5.
Changes with nginx 1.23.0 21 Jun 2022
*) Change in internal API: now header lines are represented as linked
lists.
*) Change: now nginx combines arbitrary header lines with identical
names when sending to FastCGI, SCGI, and uwsgi backends, in the
$r->header_in() method of the ngx_http_perl_module, and during lookup
of the "$http_...", "$sent_http_...", "$sent_trailer_...",
"$upstream_http_...", and "$upstream_trailer_..." variables.
*) Bugfix: if there were multiple "Vary" header lines in the backend
response, nginx only used the last of them when caching.
*) Bugfix: if there were multiple "WWW-Authenticate" header lines in the
backend response and errors with code 401 were intercepted or the
"auth_request" directive was used, nginx only sent the first of the
header lines to the client.
*) Change: the logging level of the "application data after close
notify" SSL errors has been lowered from "crit" to "info".
*) Bugfix: connections might hang if nginx was built on Linux 2.6.17 or
newer, but was used on systems without EPOLLRDHUP support, notably
with epoll emulation layers; the bug had appeared in 1.17.5.
Thanks to Marcus Ball.
*) Bugfix: nginx did not cache the response if the "Expires" response
header line disabled caching, but following "Cache-Control" header
line enabled caching.
Changes with nginx 1.21.6 25 Jan 2022

View file

@ -1,5 +1,235 @@
Изменения в nginx 1.22.1 19.10.2022
Изменения в nginx 1.26.3 05.02.2025
*) Безопасность: недостаточная проверка в обработке виртуальных серверов
при использовании SNI в TLSv1.3 позволяла повторно использовать
SSL-сессию в контексте другого виртуального сервера, чтобы обойти
проверку клиентских SSL-сертификатов (CVE-2025-23419).
*) Исправление: в модуле ngx_http_mp4_module.
Спасибо Nils Bars.
*) Изменение: при использовании zlib-ng в логах появлялись сообщения
"gzip filter failed to use preallocated memory".
*) Исправление: nginx не мог собрать библиотеку libatomic из исходных
текстов, если использовался параметр --with-libatomic=DIR.
*) Исправление: теперь nginx игнорирует пакеты согласования версий QUIC
от клиентов.
*) Исправление: nginx не собирался на Solaris 10 и более ранних с
модулем ngx_http_v3_module.
*) Исправления в HTTP/3.
Изменения в nginx 1.26.2 14.08.2024
*) Безопасность: обработка специально созданного mp4-файла модулем
ngx_http_mp4_module могла приводить к падению рабочего процесса
(CVE-2024-7347).
Спасибо Nils Bars.
Изменения в nginx 1.26.1 29.05.2024
*) Безопасность: при использовании HTTP/3 обработка специально созданной
QUIC-сессии могла приводить к падению рабочего процесса, отправке
клиенту содержимого памяти рабочего процесса на системах с MTU больше
4096 байт, а также потенциально могла иметь другие последствия
(CVE-2024-32760, CVE-2024-31079, CVE-2024-35200, CVE-2024-34161).
Спасибо Nils Bars из CISPA.
*) Исправление: уменьшено потребление памяти для долгоживущих запросов,
если используются директивы gzip, gunzip, ssi, sub_filter или
grpc_pass.
*) Исправление: nginx не собирался gcc 14, если использовался параметр
--with-libatomic.
Спасибо Edgar Bonet.
*) Исправление: в HTTP/3.
Изменения в nginx 1.26.0 23.04.2024
*) Стабильная ветка 1.26.x.
Изменения в nginx 1.25.5 16.04.2024
*) Добавление: виртуальные сервера в модуле stream.
*) Добавление: модуль ngx_stream_pass_module.
*) Добавление: параметры deferred, accept_filter и setfib директивы
listen в модуле stream.
*) Добавление: определение размера строки кеша процессора для некоторых
архитектур.
Спасибо Piotr Sikora.
*) Добавление: поддержка Homebrew на Apple Silicon.
Спасибо Piotr Sikora.
*) Исправление: улучшения и исправления кросс-компиляции для Windows.
Спасибо Piotr Sikora.
*) Исправление: неожиданное закрытие соединения при использовании 0-RTT
в QUIC.
Спасибо Владимиру Хомутову.
Изменения в nginx 1.25.4 14.02.2024
*) Безопасность: при использовании HTTP/3 в рабочем процессе мог
произойти segmentation fault во время обработки специально созданной
QUIC-сессии (CVE-2024-24989, CVE-2024-24990).
*) Исправление: соединения с незавершенными AIO-операциями могли
закрываться преждевременно во время плавного завершения старых
рабочих процессов.
*) Исправление: теперь nginx не пишет в лог сообщения об утечке сокетов,
если во время плавного завершения старых рабочих процессов было
запрошено быстрое завершение.
*) Исправление: при использовании AIO в подзапросе могла происходить
ошибка на сокете, утечка сокетов, либо segmentation fault в рабочем
процессе (при SSL-проксировании).
*) Исправление: в рабочем процессе мог произойти segmentation fault,
если использовалось SSL-проксирование и директива image_filter, а
ошибки с кодом 415 перенаправлялись с помощью директивы error_page.
*) Исправления и улучшения в HTTP/3.
Изменения в nginx 1.25.3 24.10.2023
*) Изменение: улучшено детектирование некорректного поведения клиентов
при использовании HTTP/2.
*) Добавление: уменьшение времени запуска при использовании большого
количества location'ов.
Спасибо Yusuke Nojima.
*) Исправление: при использовании HTTP/2 без SSL в рабочем процессе мог
произойти segmentation fault; ошибка появилась в 1.25.1.
*) Исправление: строка "Status" в заголовке ответа бэкенда с пустой
поясняющей фразой обрабатывалась некорректно.
*) Исправление: утечки памяти во время переконфигурации при
использовании библиотеки PCRE2.
Спасибо ZhenZhong Wu.
*) Исправления и улучшения в HTTP/3.
Изменения в nginx 1.25.2 15.08.2023
*) Добавление: path MTU discovery при использовании HTTP/3.
*) Добавление: поддержка шифра TLS_AES_128_CCM_SHA256 при использовании
HTTP/3.
*) Изменение: теперь при загрузке конфигурации OpenSSL nginx использует
appname "nginx".
*) Изменение: теперь nginx не пытается загружать конфигурацию OpenSSL,
если для сборки OpenSSL использовался параметр --with-openssl и
переменная окружения OPENSSL_CONF не установлена.
*) Исправление: в переменной $body_bytes_sent при использовании HTTP/3.
*) Исправление: в HTTP/3.
Изменения в nginx 1.25.1 13.06.2023
*) Добавление: директива http2, позволяющая включать HTTP/2 в отдельных
блоках server; параметр http2 директивы listen объявлен устаревшим.
*) Изменение: поддержка HTTP/2 server push упразднена.
*) Изменение: устаревшая директива ssl больше не поддерживается.
*) Исправление: в HTTP/3 при использовании OpenSSL.
Изменения в nginx 1.25.0 23.05.2023
*) Добавление: экспериментальная поддержка HTTP/3.
Изменения в nginx 1.23.4 28.03.2023
*) Изменение: теперь протокол TLSv1.3 разрешён по умолчанию.
*) Изменение: теперь nginx выдаёт предупреждение при переопределении
параметров listen-сокета, задающих используемые протоколы.
*) Изменение: теперь, если клиент использует pipelining, nginx закрывает
соединения с ожиданием дополнительных данных (lingering close).
*) Добавление: поддержка byte ranges для ответов модуля
ngx_http_gzip_static_module.
*) Исправление: диапазоны портов в директиве listen не работали; ошибка
появилась в 1.23.3.
Спасибо Валентину Бартеневу.
*) Исправление: для обработки запроса мог быть выбран неверный location,
если в конфигурации использовался префиксный location длиннее 255
символов.
*) Исправление: не-ASCII символы в именах файлов на Windows не
поддерживались модулями ngx_http_autoindex_module и
ngx_http_dav_module, а также директивой include.
*) Изменение: уровень логгирования ошибок SSL "data length too long",
"length too short", "bad legacy version", "no shared signature
algorithms", "bad digest length", "missing sigalgs extension",
"encrypted length too long", "bad length", "bad key update", "mixed
handshake and non handshake data", "ccs received early", "data
between ccs and finished", "packet length too long", "too many warn
alerts", "record too small", и "got a fin before a ccs" понижен с
уровня crit до info.
*) Исправление: при использовании HTTP/2 и директивы error_page для
перенаправления ошибок с кодом 400 могла происходить утечка сокетов.
*) Исправление: сообщения об ошибках записи в syslog не содержали
информации о том, что ошибки происходили в процессе записи в syslog.
Спасибо Safar Safarly.
*) Изменение: при использовании zlib-ng в логах появлялись сообщения
"gzip filter failed to use preallocated memory".
*) Исправление: в почтовом прокси-сервере.
Изменения в nginx 1.23.3 13.12.2022
*) Исправление: при чтении заголовка протокола PROXY версии 2,
содержащего большое количество TLV, могла возникать ошибка.
*) Исправление: при использовании SSI для обработки подзапросов,
созданных другими модулями, в рабочем процессе мог произойти
segmentation fault.
Спасибо Ciel Zhao.
*) Изменение: теперь, если при преобразовании в адреса имени хоста,
указанного в директиве listen, возвращается несколько адресов, nginx
игнорирует дубликаты среди этих адресов.
*) Исправление: nginx мог нагружать процессор при небуферизированном
проксировании, если использовались SSL-соединения с бэкендами.
Изменения в nginx 1.23.2 19.10.2022
*) Безопасность: обработка специально созданного mp4-файла модулем
ngx_http_mp4_module могла приводить к падению рабочего процесса,
@ -7,10 +237,84 @@
потенциально могла иметь другие последствия (CVE-2022-41741,
CVE-2022-41742).
*) Добавление: переменные "$proxy_protocol_tlv_...".
Изменения в nginx 1.22.0 24.05.2022
*) Добавление: ключи шифрования TLS session tickets теперь автоматически
меняются при использовании разделяемой памяти в ssl_session_cache.
*) Стабильная ветка 1.22.x.
*) Изменение: уровень логгирования ошибок SSL "bad record type" понижен
с уровня crit до info.
Спасибо Murilo Andrade.
*) Изменение: теперь при использовании разделяемой памяти в
ssl_session_cache сообщения "could not allocate new session"
логгируются на уровне warn вместо alert и не чаще одного раза в
секунду.
*) Исправление: nginx/Windows не собирался с OpenSSL 3.0.x.
*) Исправление: в логгировании ошибок протокола PROXY.
Спасибо Сергею Брестеру.
*) Изменение: при использовании TLSv1.3 с OpenSSL разделяемая память из
ssl_session_cache расходовалась в том числе на сессии, использующие
TLS session tickets.
*) Изменение: таймаут, заданный с помощью директивы ssl_session_timeout,
не работал при использовании TLSv1.3 с OpenSSL или BoringSSL.
Изменения в nginx 1.23.1 19.07.2022
*) Добавление: оптимизация использования памяти в конфигурациях с
SSL-проксированием.
*) Добавление: теперь с помощью параметра "ipv4=off" директивы
"resolver" можно запретить поиск IPv4-адресов при преобразовании имён
в адреса.
*) Изменение: уровень логгирования ошибок SSL "bad key share", "bad
extension", "bad cipher" и "bad ecpoint" понижен с уровня crit до
info.
*) Исправление: при возврате диапазонов nginx не удалял строку заголовка
"Content-Range", если она присутствовала в исходном ответе бэкенда.
*) Исправление: проксированный ответ мог быть отправлен не полностью при
переконфигурации на Linux; ошибка появилась в 1.17.5.
Изменения в nginx 1.23.0 21.06.2022
*) Изменение во внутреннем API: теперь строки заголовков представлены
связными списками.
*) Изменение: теперь nginx объединяет произвольные строки заголовков с
одинаковыми именами при отправке на FastCGI-, SCGI- и uwsgi-бэкенды,
в методе $r->header_in() модуля ngx_http_perl_module, и при доступе
через переменные "$http_...", "$sent_http_...", "$sent_trailer_...",
"$upstream_http_..." и "$upstream_trailer_...".
*) Исправление: если в заголовке ответа бэкенда было несколько строк
"Vary", при кэшировании nginx учитывал только последнюю из них.
*) Исправление: если в заголовке ответа бэкенда было несколько строк
"WWW-Authenticate" и использовался перехват ошибок с кодом 401 от
бэкенда или директива auth_request, nginx пересылал клиенту только
первую из этих строк.
*) Изменение: уровень логгирования ошибок SSL "application data after
close notify" понижен с уровня crit до info.
*) Исправление: соединения могли зависать, если nginx был собран на
Linux 2.6.17 и новее, а использовался на системах без поддержки
EPOLLRDHUP, в частности, на системах с эмуляцией epoll; ошибка
появилась в 1.17.5.
Спасибо Marcus Ball.
*) Исправление: nginx не кэшировал ответ, если строка заголовка ответа
"Expires" запрещала кэширование, а последующая строка заголовка
"Cache-Control" разрешала кэширование.
Изменения в nginx 1.21.6 25.01.2022

View file

@ -1,6 +1,6 @@
/*
* Copyright (C) 2002-2021 Igor Sysoev
* Copyright (C) 2011-2022 Nginx, Inc.
* Copyright (C) 2011-2024 Nginx, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without

View file

@ -117,7 +117,7 @@ else
. auto/cc/acc
;;
msvc*)
msvc)
# MSVC++ 6.0 SP2, MSVC++ Toolkit 2003
. auto/cc/msvc

View file

@ -11,8 +11,8 @@
# MSVC 2015 (14.0) cl 19.00
NGX_MSVC_VER=`$NGX_WINE $CC 2>&1 | grep 'Compiler Version' 2>&1 \
| sed -e 's/^.* Version \(.*\)/\1/'`
NGX_MSVC_VER=`$NGX_WINE $CC 2>&1 | grep 'C/C++.* [0-9][0-9]*\.[0-9]' 2>&1 \
| sed -e 's/^.* \([0-9][0-9]*\.[0-9].*\)/\1/'`
echo " + cl version: $NGX_MSVC_VER"
@ -22,6 +22,21 @@ have=NGX_COMPILER value="\"cl $NGX_MSVC_VER\"" . auto/define
ngx_msvc_ver=`echo $NGX_MSVC_VER | sed -e 's/^\([0-9]*\).*/\1/'`
# detect x64 builds
case "$NGX_MSVC_VER" in
*x64)
NGX_MACHINE=amd64
;;
*)
NGX_MACHINE=i386
;;
esac
# optimizations
# maximize speed, equivalent to -Og -Oi -Ot -Oy -Ob2 -Gs -GF -Gy

View file

@ -112,7 +112,7 @@ install: build $NGX_INSTALL_PERL_MODULES
test ! -f '\$(DESTDIR)$NGX_SBIN_PATH' \\
|| mv '\$(DESTDIR)$NGX_SBIN_PATH' \\
'\$(DESTDIR)$NGX_SBIN_PATH.old'
cp $NGX_OBJS/nginx '\$(DESTDIR)$NGX_SBIN_PATH'
cp $NGX_OBJS/nginx$ngx_binext '\$(DESTDIR)$NGX_SBIN_PATH'
test -d '\$(DESTDIR)$NGX_CONF_PREFIX' \\
|| mkdir -p '\$(DESTDIR)$NGX_CONF_PREFIX'

View file

@ -64,6 +64,23 @@ if [ $ngx_found = no ]; then
fi
if [ $ngx_found = no ]; then
# Homebrew on Apple Silicon
ngx_feature="GeoIP library in /opt/homebrew/"
ngx_feature_path="/opt/homebrew/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lGeoIP"
else
ngx_feature_libs="-L/opt/homebrew/lib -lGeoIP"
fi
. auto/feature
fi
if [ $ngx_found = yes ]; then
CORE_INCS="$CORE_INCS $ngx_feature_path"

View file

@ -46,6 +46,22 @@ if [ $ngx_found = no ]; then
fi
if [ $ngx_found = no ]; then
# Homebrew on Apple Silicon
ngx_feature="Google perftools in /opt/homebrew/"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lprofiler"
else
ngx_feature_libs="-L/opt/homebrew/lib -lprofiler"
fi
. auto/feature
fi
if [ $ngx_found = yes ]; then
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"

View file

@ -7,8 +7,8 @@ if [ $NGX_LIBATOMIC != YES ]; then
have=NGX_HAVE_LIBATOMIC . auto/have
CORE_INCS="$CORE_INCS $NGX_LIBATOMIC/src"
LINK_DEPS="$LINK_DEPS $NGX_LIBATOMIC/src/libatomic_ops.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBATOMIC/src/libatomic_ops.a"
LINK_DEPS="$LINK_DEPS $NGX_LIBATOMIC/build/lib/libatomic_ops.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBATOMIC/build/lib/libatomic_ops.a"
else
@ -19,7 +19,7 @@ else
#include <atomic_ops.h>"
ngx_feature_path=
ngx_feature_libs="-latomic_ops"
ngx_feature_test="long n = 0;
ngx_feature_test="AO_t n = 0;
if (!AO_compare_and_swap(&n, 0, 1))
return 1;
if (AO_fetch_and_add(&n, 1) != 1)

View file

@ -3,14 +3,19 @@
# Copyright (C) Nginx, Inc.
case $NGX_LIBATOMIC in
/*) ngx_prefix="$NGX_LIBATOMIC/build" ;;
*) ngx_prefix="$PWD/$NGX_LIBATOMIC/build" ;;
esac
cat << END >> $NGX_MAKEFILE
$NGX_LIBATOMIC/src/libatomic_ops.a: $NGX_LIBATOMIC/Makefile
cd $NGX_LIBATOMIC && \$(MAKE)
$NGX_LIBATOMIC/build/lib/libatomic_ops.a: $NGX_LIBATOMIC/Makefile
cd $NGX_LIBATOMIC && \$(MAKE) && \$(MAKE) install
$NGX_LIBATOMIC/Makefile: $NGX_MAKEFILE
cd $NGX_LIBATOMIC \\
&& if [ -f Makefile ]; then \$(MAKE) distclean; fi \\
&& ./configure
&& ./configure --prefix=$ngx_prefix
END

View file

@ -65,6 +65,23 @@ if [ $ngx_found = no ]; then
fi
if [ $ngx_found = no ]; then
# Homebrew on Apple Silicon
ngx_feature="GD library in /opt/homebrew/"
ngx_feature_path="/opt/homebrew/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lgd"
else
ngx_feature_libs="-L/opt/homebrew/lib -lgd"
fi
. auto/feature
fi
if [ $ngx_found = yes ]; then
CORE_INCS="$CORE_INCS $ngx_feature_path"

View file

@ -5,12 +5,19 @@
if [ $OPENSSL != NONE ]; then
have=NGX_OPENSSL . auto/have
have=NGX_SSL . auto/have
have=NGX_OPENSSL_NO_CONFIG . auto/have
if [ $USE_OPENSSL_QUIC = YES ]; then
have=NGX_QUIC . auto/have
have=NGX_QUIC_OPENSSL_COMPAT . auto/have
fi
case "$CC" in
cl | bcc32)
have=NGX_OPENSSL . auto/have
have=NGX_SSL . auto/have
CFLAGS="$CFLAGS -DNO_SYS_TYPES_H"
CORE_INCS="$CORE_INCS $OPENSSL/openssl/include"
@ -33,9 +40,6 @@ if [ $OPENSSL != NONE ]; then
;;
*)
have=NGX_OPENSSL . auto/have
have=NGX_SSL . auto/have
CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
@ -118,11 +122,58 @@ else
. auto/feature
fi
if [ $ngx_found = no ]; then
# Homebrew on Apple Silicon
ngx_feature="OpenSSL library in /opt/homebrew/"
ngx_feature_path="/opt/homebrew/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lssl -lcrypto"
else
ngx_feature_libs="-L/opt/homebrew/lib -lssl -lcrypto"
fi
ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
. auto/feature
fi
if [ $ngx_found = yes ]; then
have=NGX_SSL . auto/have
CORE_INCS="$CORE_INCS $ngx_feature_path"
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
OPENSSL=YES
if [ $USE_OPENSSL_QUIC = YES ]; then
ngx_feature="OpenSSL QUIC support"
ngx_feature_name="NGX_QUIC"
ngx_feature_test="SSL_set_quic_method(NULL, NULL)"
. auto/feature
if [ $ngx_found = no ]; then
have=NGX_QUIC_OPENSSL_COMPAT . auto/have
ngx_feature="OpenSSL QUIC compatibility"
ngx_feature_test="SSL_CTX_add_custom_ext(NULL, 0, 0,
NULL, NULL, NULL, NULL, NULL)"
. auto/feature
fi
if [ $ngx_found = no ]; then
cat << END
$0: error: certain modules require OpenSSL QUIC support.
You can either do not enable the modules, or install the OpenSSL library with
QUIC support into the system, or build the OpenSSL library with QUIC support
statically from the source with nginx by using --with-openssl=<path> option.
END
exit 1
fi
fi
fi
fi

View file

@ -7,11 +7,24 @@ case "$CC" in
cl)
case "$NGX_MACHINE" in
amd64)
OPENSSL_TARGET=VC-WIN64A
;;
*)
OPENSSL_TARGET=VC-WIN32
;;
esac
cat << END >> $NGX_MAKEFILE
$OPENSSL/openssl/include/openssl/ssl.h: $NGX_MAKEFILE
\$(MAKE) -f auto/lib/openssl/makefile.msvc \
OPENSSL="$OPENSSL" OPENSSL_OPT="$OPENSSL_OPT"
OPENSSL="$OPENSSL" OPENSSL_OPT="$OPENSSL_OPT" \
OPENSSL_TARGET="$OPENSSL_TARGET"
END

View file

@ -6,7 +6,7 @@
all:
cd $(OPENSSL)
perl Configure VC-WIN32 no-shared \
perl Configure $(OPENSSL_TARGET) no-shared no-threads \
--prefix="%cd%/openssl" \
--openssldir="%cd%/openssl/ssl" \
$(OPENSSL_OPT)

View file

@ -182,6 +182,22 @@ else
. auto/feature
fi
if [ $ngx_found = no ]; then
# Homebrew on Apple Silicon
ngx_feature="PCRE library in /opt/homebrew/"
ngx_feature_path="/opt/homebrew/include"
if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lpcre"
else
ngx_feature_libs="-L/opt/homebrew/lib -lpcre"
fi
. auto/feature
fi
if [ $ngx_found = yes ]; then
CORE_INCS="$CORE_INCS $ngx_feature_path"
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"

View file

@ -36,7 +36,8 @@ if [ $PCRE_LIBRARY = PCRE2 ]; then
pcre2_valid_utf.c \
pcre2_xclass.c"
ngx_pcre_test="pcre2_convert.c \
ngx_pcre_test="pcre2_chkdint.c \
pcre2_convert.c \
pcre2_extuni.c \
pcre2_find_bracket.c \
pcre2_script_run.c \

View file

@ -2,13 +2,19 @@
# Copyright (C) Igor Sysoev
# Copyright (C) Nginx, Inc.
basename_last2() {
local basename_1=`basename \`dirname $1\``
local basename_2=$(basename "$1")
echo $(printf "$basename_1/$basename_2" | sed 's/\.\.\///')
}
echo "creating $NGX_MAKEFILE"
mkdir -p $NGX_OBJS/src/core $NGX_OBJS/src/event $NGX_OBJS/src/event/modules \
$NGX_OBJS/src/event/quic \
$NGX_OBJS/src/os/unix $NGX_OBJS/src/os/win32 \
$NGX_OBJS/src/http $NGX_OBJS/src/http/v2 $NGX_OBJS/src/http/modules \
$NGX_OBJS/src/http/modules/perl \
$NGX_OBJS/src/http $NGX_OBJS/src/http/v2 $NGX_OBJS/src/http/v3 \
$NGX_OBJS/src/http/modules $NGX_OBJS/src/http/modules/perl \
$NGX_OBJS/src/mail \
$NGX_OBJS/src/stream \
$NGX_OBJS/src/misc
@ -173,7 +179,7 @@ ngx_all_srcs=`echo $ngx_all_srcs | sed -e "s/\//$ngx_regex_dirsep/g"`
for ngx_src in $NGX_ADDON_SRCS
do
ngx_obj="addon/`basename \`dirname $ngx_src\``"
ngx_obj="addon/`basename_last2 \`dirname $ngx_src\``"
test -d $NGX_OBJS/$ngx_obj || mkdir -p $NGX_OBJS/$ngx_obj
@ -412,7 +418,7 @@ if test -n "$NGX_ADDON_SRCS"; then
for ngx_src in $NGX_ADDON_SRCS
do
ngx_obj="addon/`basename \`dirname $ngx_src\``"
ngx_obj="addon/`basename_last2 \`dirname $ngx_src\``"
ngx_obj=`echo $ngx_obj/\`basename $ngx_src\` \
| sed -e "s/\//$ngx_regex_dirsep/g"`
@ -575,7 +581,7 @@ END
ngx_obj=$ngx_src
;;
*)
ngx_obj="addon/`basename \`dirname $ngx_src\``"
ngx_obj="addon/`basename_last2 \`dirname $ngx_src\``"
mkdir -p $NGX_OBJS/$ngx_obj
ngx_obj="$ngx_obj/`basename $ngx_src`"
;;
@ -637,7 +643,7 @@ END
ngx_obj=`echo $ngx_source | sed -e "s/\//$ngx_regex_dirsep/g"`
;;
*)
ngx_obj="addon/`basename \`dirname $ngx_source\``"
ngx_obj="addon/`basename_last2 \`dirname $ngx_source\``"
ngx_obj=`echo $ngx_obj/\`basename $ngx_source\` \
| sed -e "s/\//$ngx_regex_dirsep/g"`
;;

View file

@ -102,7 +102,7 @@ if [ $HTTP = YES ]; then
fi
if [ $HTTP_V2 = YES ]; then
if [ $HTTP_V2 = YES -o $HTTP_V3 = YES ]; then
HTTP_SRCS="$HTTP_SRCS $HTTP_HUFF_SRCS"
fi
@ -124,6 +124,7 @@ if [ $HTTP = YES ]; then
# ngx_http_header_filter
# ngx_http_chunked_filter
# ngx_http_v2_filter
# ngx_http_v3_filter
# ngx_http_range_header_filter
# ngx_http_gzip_filter
# ngx_http_postpone_filter
@ -156,6 +157,7 @@ if [ $HTTP = YES ]; then
ngx_http_header_filter_module \
ngx_http_chunked_filter_module \
ngx_http_v2_filter_module \
ngx_http_v3_filter_module \
ngx_http_range_header_filter_module \
ngx_http_gzip_filter_module \
ngx_http_postpone_filter_module \
@ -217,6 +219,17 @@ if [ $HTTP = YES ]; then
. auto/module
fi
if [ $HTTP_V3 = YES ]; then
ngx_module_name=ngx_http_v3_filter_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=src/http/v3/ngx_http_v3_filter_module.c
ngx_module_libs=
ngx_module_link=$HTTP_V3
. auto/module
fi
if :; then
ngx_module_name=ngx_http_range_header_filter_module
ngx_module_incs=
@ -410,7 +423,6 @@ if [ $HTTP = YES ]; then
if [ $HTTP_V2 = YES ]; then
have=NGX_HTTP_V2 . auto/have
have=NGX_HTTP_HEADERS . auto/have
ngx_module_name=ngx_http_v2_module
ngx_module_incs=src/http/v2
@ -426,6 +438,32 @@ if [ $HTTP = YES ]; then
. auto/module
fi
if [ $HTTP_V3 = YES ]; then
USE_OPENSSL_QUIC=YES
HTTP_SSL=YES
have=NGX_HTTP_V3 . auto/have
ngx_module_name=ngx_http_v3_module
ngx_module_incs=src/http/v3
ngx_module_deps="src/http/v3/ngx_http_v3.h \
src/http/v3/ngx_http_v3_encode.h \
src/http/v3/ngx_http_v3_parse.h \
src/http/v3/ngx_http_v3_table.h \
src/http/v3/ngx_http_v3_uni.h"
ngx_module_srcs="src/http/v3/ngx_http_v3.c \
src/http/v3/ngx_http_v3_encode.c \
src/http/v3/ngx_http_v3_parse.c \
src/http/v3/ngx_http_v3_table.c \
src/http/v3/ngx_http_v3_uni.c \
src/http/v3/ngx_http_v3_request.c \
src/http/v3/ngx_http_v3_module.c"
ngx_module_libs=
ngx_module_link=$HTTP_V3
. auto/module
fi
if :; then
ngx_module_name=ngx_http_static_module
ngx_module_incs=
@ -1128,6 +1166,16 @@ if [ $STREAM != NO ]; then
. auto/module
fi
if [ $STREAM_PASS = YES ]; then
ngx_module_name=ngx_stream_pass_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_pass_module.c
ngx_module_libs=
ngx_module_link=$STREAM_PASS
. auto/module
fi
if [ $STREAM_SET = YES ]; then
ngx_module_name=ngx_stream_set_module
ngx_module_deps=
@ -1272,6 +1320,63 @@ if [ $USE_OPENSSL = YES ]; then
fi
if [ $USE_OPENSSL_QUIC = YES ]; then
ngx_module_type=CORE
ngx_module_name=ngx_quic_module
ngx_module_incs=
ngx_module_deps="src/event/quic/ngx_event_quic.h \
src/event/quic/ngx_event_quic_transport.h \
src/event/quic/ngx_event_quic_protection.h \
src/event/quic/ngx_event_quic_connection.h \
src/event/quic/ngx_event_quic_frames.h \
src/event/quic/ngx_event_quic_connid.h \
src/event/quic/ngx_event_quic_migration.h \
src/event/quic/ngx_event_quic_streams.h \
src/event/quic/ngx_event_quic_ssl.h \
src/event/quic/ngx_event_quic_tokens.h \
src/event/quic/ngx_event_quic_ack.h \
src/event/quic/ngx_event_quic_output.h \
src/event/quic/ngx_event_quic_socket.h \
src/event/quic/ngx_event_quic_openssl_compat.h"
ngx_module_srcs="src/event/quic/ngx_event_quic.c \
src/event/quic/ngx_event_quic_udp.c \
src/event/quic/ngx_event_quic_transport.c \
src/event/quic/ngx_event_quic_protection.c \
src/event/quic/ngx_event_quic_frames.c \
src/event/quic/ngx_event_quic_connid.c \
src/event/quic/ngx_event_quic_migration.c \
src/event/quic/ngx_event_quic_streams.c \
src/event/quic/ngx_event_quic_ssl.c \
src/event/quic/ngx_event_quic_tokens.c \
src/event/quic/ngx_event_quic_ack.c \
src/event/quic/ngx_event_quic_output.c \
src/event/quic/ngx_event_quic_socket.c \
src/event/quic/ngx_event_quic_openssl_compat.c"
ngx_module_libs=
ngx_module_link=YES
ngx_module_order=
. auto/module
if [ $QUIC_BPF = YES -a $SO_COOKIE_FOUND = YES ]; then
ngx_module_type=CORE
ngx_module_name=ngx_quic_bpf_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs="src/event/quic/ngx_event_quic_bpf.c \
src/event/quic/ngx_event_quic_bpf_code.c"
ngx_module_libs=
ngx_module_link=YES
ngx_module_order=
. auto/module
have=NGX_QUIC_BPF . auto/have
fi
fi
if [ $USE_PCRE = YES ]; then
ngx_module_type=CORE
ngx_module_name=ngx_regex_module

View file

@ -45,6 +45,8 @@ USE_THREADS=NO
NGX_FILE_AIO=NO
QUIC_BPF=NO
HTTP=YES
NGX_HTTP_LOG_PATH=
@ -59,6 +61,7 @@ HTTP_CHARSET=YES
HTTP_GZIP=YES
HTTP_SSL=NO
HTTP_V2=NO
HTTP_V3=NO
HTTP_SSI=YES
HTTP_REALIP=NO
HTTP_XSLT=NO
@ -124,6 +127,7 @@ STREAM_GEOIP=NO
STREAM_MAP=YES
STREAM_SPLIT_CLIENTS=YES
STREAM_RETURN=YES
STREAM_PASS=YES
STREAM_SET=YES
STREAM_UPSTREAM_HASH=YES
STREAM_UPSTREAM_LEAST_CONN=YES
@ -149,6 +153,7 @@ PCRE_JIT=NO
PCRE2=YES
USE_OPENSSL=NO
USE_OPENSSL_QUIC=NO
OPENSSL=NONE
USE_ZLIB=NO
@ -166,6 +171,8 @@ USE_GEOIP=NO
NGX_GOOGLE_PERFTOOLS=NO
NGX_CPP_TEST=NO
SO_COOKIE_FOUND=NO
NGX_LIBATOMIC=NO
NGX_CPU_CACHE_LINE=
@ -211,6 +218,8 @@ do
--with-file-aio) NGX_FILE_AIO=YES ;;
--without-quic_bpf_module) QUIC_BPF=NONE ;;
--with-ipv6)
NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
$0: warning: the \"--with-ipv6\" option is deprecated"
@ -228,6 +237,7 @@ $0: warning: the \"--with-ipv6\" option is deprecated"
--with-http_ssl_module) HTTP_SSL=YES ;;
--with-http_v2_module) HTTP_V2=YES ;;
--with-http_v3_module) HTTP_V3=YES ;;
--with-http_realip_module) HTTP_REALIP=YES ;;
--with-http_addition_module) HTTP_ADDITION=YES ;;
--with-http_xslt_module) HTTP_XSLT=YES ;;
@ -328,6 +338,7 @@ use the \"--with-mail_ssl_module\" option instead"
--without-stream_split_clients_module)
STREAM_SPLIT_CLIENTS=NO ;;
--without-stream_return_module) STREAM_RETURN=NO ;;
--without-stream_pass_module) STREAM_PASS=NO ;;
--without-stream_set_module) STREAM_SET=NO ;;
--without-stream_upstream_hash_module)
STREAM_UPSTREAM_HASH=NO ;;
@ -443,8 +454,11 @@ cat << END
--with-file-aio enable file AIO support
--without-quic_bpf_module disable ngx_quic_bpf_module
--with-http_ssl_module enable ngx_http_ssl_module
--with-http_v2_module enable ngx_http_v2_module
--with-http_v3_module enable ngx_http_v3_module
--with-http_realip_module enable ngx_http_realip_module
--with-http_addition_module enable ngx_http_addition_module
--with-http_xslt_module enable ngx_http_xslt_module
@ -544,6 +558,7 @@ cat << END
--without-stream_split_clients_module
disable ngx_stream_split_clients_module
--without-stream_return_module disable ngx_stream_return_module
--without-stream_pass_module disable ngx_stream_pass_module
--without-stream_set_module disable ngx_stream_set_module
--without-stream_upstream_hash_module
disable ngx_stream_upstream_hash_module

View file

@ -110,11 +110,26 @@ case "$NGX_MACHINE" in
NGX_MACH_CACHE_LINE=64
;;
aarch64 )
aarch64 | arm64)
have=NGX_ALIGNMENT value=16 . auto/define
NGX_MACH_CACHE_LINE=64
;;
ppc64* | powerpc64*)
have=NGX_ALIGNMENT value=16 . auto/define
NGX_MACH_CACHE_LINE=128
;;
riscv64)
have=NGX_ALIGNMENT value=16 . auto/define
NGX_MACH_CACHE_LINE=64
;;
s390x)
have=NGX_ALIGNMENT value=16 . auto/define
NGX_MACH_CACHE_LINE=256
;;
*)
have=NGX_ALIGNMENT value=16 . auto/define
NGX_MACH_CACHE_LINE=32

View file

@ -228,8 +228,71 @@ ngx_feature_test="struct crypt_data cd;
crypt_r(\"key\", \"salt\", &cd);"
. auto/feature
if [ $ngx_found = yes ]; then
CRYPT_LIB="-lcrypt"
fi
ngx_include="sys/vfs.h"; . auto/include
# BPF sockhash
ngx_feature="BPF sockhash"
ngx_feature_name="NGX_HAVE_BPF"
ngx_feature_run=no
ngx_feature_incs="#include <linux/bpf.h>
#include <sys/syscall.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="union bpf_attr attr = { 0 };
attr.map_flags = 0;
attr.map_type = BPF_MAP_TYPE_SOCKHASH;
syscall(__NR_bpf, 0, &attr, 0);"
. auto/feature
if [ $ngx_found = yes ]; then
CORE_SRCS="$CORE_SRCS src/core/ngx_bpf.c"
CORE_DEPS="$CORE_DEPS src/core/ngx_bpf.h"
if [ $QUIC_BPF != NONE ]; then
QUIC_BPF=YES
fi
fi
ngx_feature="SO_COOKIE"
ngx_feature_name="NGX_HAVE_SO_COOKIE"
ngx_feature_run=no
ngx_feature_incs="#include <sys/socket.h>
$NGX_INCLUDE_INTTYPES_H"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="socklen_t optlen = sizeof(uint64_t);
uint64_t cookie;
getsockopt(0, SOL_SOCKET, SO_COOKIE, &cookie, &optlen)"
. auto/feature
if [ $ngx_found = yes ]; then
SO_COOKIE_FOUND=YES
fi
# UDP segmentation offloading
ngx_feature="UDP_SEGMENT"
ngx_feature_name="NGX_HAVE_UDP_SEGMENT"
ngx_feature_run=no
ngx_feature_incs="#include <sys/socket.h>
#include <netinet/udp.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="socklen_t optlen = sizeof(int);
int val;
getsockopt(0, SOL_UDP, UDP_SEGMENT, &val, &optlen)"
. auto/feature
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"

View file

@ -18,7 +18,7 @@ ngx_binext=".exe"
case "$NGX_CC_NAME" in
gcc)
clang | gcc)
CORE_LIBS="$CORE_LIBS -ladvapi32 -lws2_32"
MAIN_LINK="$MAIN_LINK -Wl,--export-all-symbols"
MAIN_LINK="$MAIN_LINK -Wl,--out-implib=$NGX_OBJS/libnginx.a"

View file

@ -83,13 +83,14 @@ CORE_SRCS="src/core/nginx.c \
EVENT_MODULES="ngx_events_module ngx_event_core_module"
EVENT_INCS="src/event src/event/modules"
EVENT_INCS="src/event src/event/modules src/event/quic"
EVENT_DEPS="src/event/ngx_event.h \
src/event/ngx_event_timer.h \
src/event/ngx_event_posted.h \
src/event/ngx_event_connect.h \
src/event/ngx_event_pipe.h"
src/event/ngx_event_pipe.h \
src/event/ngx_event_udp.h"
EVENT_SRCS="src/event/ngx_event.c \
src/event/ngx_event_timer.c \

View file

@ -448,6 +448,54 @@ ngx_feature_test="setsockopt(0, IPPROTO_IPV6, IPV6_RECVPKTINFO, NULL, 0)"
. auto/feature
# IP packet fragmentation
ngx_feature="IP_MTU_DISCOVER"
ngx_feature_name="NGX_HAVE_IP_MTU_DISCOVER"
ngx_feature_run=no
ngx_feature_incs="#include <sys/socket.h>
#include <netinet/in.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="(void) IP_PMTUDISC_DO;
setsockopt(0, IPPROTO_IP, IP_MTU_DISCOVER, NULL, 0)"
. auto/feature
ngx_feature="IPV6_MTU_DISCOVER"
ngx_feature_name="NGX_HAVE_IPV6_MTU_DISCOVER"
ngx_feature_run=no
ngx_feature_incs="#include <sys/socket.h>
#include <netinet/in.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="(void) IPV6_PMTUDISC_DO;
setsockopt(0, IPPROTO_IPV6, IPV6_MTU_DISCOVER, NULL, 0)"
. auto/feature
ngx_feature="IP_DONTFRAG"
ngx_feature_name="NGX_HAVE_IP_DONTFRAG"
ngx_feature_run=no
ngx_feature_incs="#include <sys/socket.h>
#include <netinet/in.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="setsockopt(0, IPPROTO_IP, IP_DONTFRAG, NULL, 0)"
. auto/feature
ngx_feature="IPV6_DONTFRAG"
ngx_feature_name="NGX_HAVE_IPV6_DONTFRAG"
ngx_feature_run=no
ngx_feature_incs="#include <sys/socket.h>
#include <netinet/in.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="setsockopt(0, IPPROTO_IP, IPV6_DONTFRAG, NULL, 0)"
. auto/feature
ngx_feature="TCP_DEFER_ACCEPT"
ngx_feature_name="NGX_HAVE_DEFERRED_ACCEPT"
ngx_feature_run=no

1
configure vendored
View file

@ -44,6 +44,7 @@ if test -z "$NGX_PLATFORM"; then
else
echo "building for $NGX_PLATFORM"
NGX_SYSTEM=$NGX_PLATFORM
NGX_MACHINE=i386
fi
. auto/cc/conf

69
configure.docker.sh Executable file
View file

@ -0,0 +1,69 @@
#!/bin/bash
./configure \
--with-cc-opt="-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fPIC -D_FORTIFY_SOURCE=2 -I/tmp/build/quickjs/" \
--with-ld-opt="-Wl,-z,relro -Wl,-z,now -fPIC -L/tmp/build/quickjs/" \
--sbin-path=/usr/local/sbin/nginx \
--conf-path=/video_server/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx/nginx.lock \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/tmp/nginx-client-body \
--with-compat \
--with-debug \
--with-pcre-jit \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_auth_request_module \
--with-http_v2_module \
--with-http_dav_module \
--with-http_slice_module \
--with-threads \
--with-http_addition_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_sub_module \
--with-mail_ssl_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-stream_realip_module \
--with-http_geoip_module=dynamic \
--with-http_image_filter_module=dynamic \
--with-http_perl_module=dynamic \
--with-http_xslt_module=dynamic \
--with-mail=dynamic \
--with-stream=dynamic \
--with-stream_geoip_module=dynamic \
--add-module=./modules_deb/libnginx-mod-http-ndk-0.3.4 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-brotli-1.0.0~rc \
--add-dynamic-module=./modules_deb/libnginx-mod-http-cache-purge-2.5.3 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-echo-0.63 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-geoip2-3.4 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-headers-more-filter-0.38 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-memc-0.20 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-set-misc-0.33 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-srcache-filter-0.33 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-subs-filter-0.6.4 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-upstream-fair-0.0~git20120408.a18b409 \
--add-dynamic-module=./modules_deb/libnginx-mod-nchan-1.3.7+dfsg \
--add-dynamic-module=./modules/njs/nginx \
--add-dynamic-module=./modules/nginx-vod-module \
--add-module=./modules/media-framework/nginx-common \
--add-dynamic-module=./modules/nginx-stream-preread-str-module \
--add-dynamic-module=./modules/media-framework/nginx-kmp-in-module \
--add-dynamic-module=./modules/media-framework/nginx-kmp-out-module \
--add-dynamic-module=./modules/media-framework/nginx-rtmp-module \
--add-dynamic-module=./modules/media-framework/nginx-rtmp-kmp-module \
--add-dynamic-module=./modules/media-framework/nginx-mpegts-module \
--add-dynamic-module=./modules/media-framework/nginx-mpegts-kmp-module \
--add-dynamic-module=./modules/media-framework/nginx-kmp-cc-module \
--add-dynamic-module=./modules/media-framework/nginx-kmp-rtmp-module \
--add-dynamic-module=./modules/media-framework/nginx-live-module \
--add-dynamic-module=./modules/nginx-srt-module \
--add-dynamic-module=./modules/media-framework/nginx-pckg-module \
--add-dynamic-module=./modules/nginx-secure-token-module

66
configure.sh Executable file
View file

@ -0,0 +1,66 @@
#!/bin/bash
./configure \
--with-cc-opt="-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fPIC -D_FORTIFY_SOURCE=2 -I/usr/local/include/quickjs/" \
--with-ld-opt="-Wl,-z,relro -Wl,-z,now -fPIC -L/usr/local/lib/quickjs/" \
--prefix=/usr/local/temp/nginx/ \
--error-log-path=stderr \
--lock-path=/var/lock/nginx.lock \
--pid-path=/run/nginx.pid \
--with-compat \
--with-debug \
--with-pcre-jit \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_auth_request_module \
--with-http_v2_module \
--with-http_dav_module \
--with-http_slice_module \
--with-threads \
--with-http_addition_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_sub_module \
--with-mail_ssl_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-stream_realip_module \
--with-http_geoip_module=dynamic \
--with-http_image_filter_module=dynamic \
--with-http_perl_module=dynamic \
--with-http_xslt_module=dynamic \
--with-mail=dynamic \
--with-stream=dynamic \
--with-stream_geoip_module=dynamic \
--add-module=./modules_deb/libnginx-mod-http-ndk-0.3.4 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-brotli-1.0.0~rc \
--add-dynamic-module=./modules_deb/libnginx-mod-http-cache-purge-2.5.3 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-echo-0.63 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-geoip2-3.4 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-headers-more-filter-0.38 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-memc-0.20 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-set-misc-0.33 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-srcache-filter-0.33 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-subs-filter-0.6.4 \
--add-dynamic-module=./modules_deb/libnginx-mod-http-upstream-fair-0.0~git20120408.a18b409 \
--add-dynamic-module=./modules_deb/libnginx-mod-nchan-1.3.7+dfsg \
--add-dynamic-module=./modules/njs/nginx \
--add-dynamic-module=./modules/nginx-vod-module \
--add-module=./modules/media-framework/nginx-common \
--add-dynamic-module=./modules/nginx-stream-preread-str-module \
--add-dynamic-module=./modules/media-framework/nginx-kmp-in-module \
--add-dynamic-module=./modules/media-framework/nginx-kmp-out-module \
--add-dynamic-module=./modules/media-framework/nginx-rtmp-module \
--add-dynamic-module=./modules/media-framework/nginx-rtmp-kmp-module \
--add-dynamic-module=./modules/media-framework/nginx-mpegts-module \
--add-dynamic-module=./modules/media-framework/nginx-mpegts-kmp-module \
--add-dynamic-module=./modules/media-framework/nginx-kmp-cc-module \
--add-dynamic-module=./modules/media-framework/nginx-kmp-rtmp-module \
--add-dynamic-module=./modules/media-framework/nginx-live-module \
--add-dynamic-module=./modules/nginx-srt-module \
--add-dynamic-module=./modules/media-framework/nginx-pckg-module \
--add-dynamic-module=./modules/nginx-secure-token-module

File diff suppressed because it is too large Load diff

View file

@ -1,8 +1,7 @@
Debian Packaging
================
We use git-buildpackage for packaging. Our repository can be found at
git.debian.org:/git/collab-maint/nginx.git.
We use git-buildpackage for packaging.
Workflow for Unstable
=====================
@ -14,15 +13,9 @@ Dynamic Modules
Since v1.9.11 Nginx added dynamic module support. This will sanitize the
nginx packaging flow in the long term, but there is a lot work to be done
in order to get there. We will gradually convert all modules to dynamic
in order to get there. We gradually convert all modules to dynamic
as they add support for it.
Currently nginx modules need to be build together with nginx, but this
will be fixed upstream [0]. Since we already ship 3rd party modules under
debian/modules/ we will start shipping module packages (libnginx-mod) from
the same source. Once upstream implements separated building we will
split each module to a separate source.
[0] https://www.nginx.com/blog/dynamic-modules-nginx-1-9-11/
Workflow for Experimental
@ -34,7 +27,7 @@ as they lack security support.
The workflow we use is based on the assumption that packaging work happens on
origin/master and experimental builds are a trivial patch away from that.
The direct consequense of treating experimental as a patchset for origin/master
The direct consequence of treating experimental as a patchset for origin/master
is that the relevant branches are forced-pushed whenever we release a new
1.11.x version. In other words, **it is not safe to base your work on the
experimental branch**.
@ -67,11 +60,4 @@ them.
Older 1.11.x releases are not referenced by any branch, but they can be found
by the relevant debian/* tag.
3rd party experimental workflow
===============================
As we described, it is better not base you work on our forced-pushed
experimental branch. A better approach would be to maintain a custom-build
branch that is rebased to our latest experimental branch (basically git rebase
--onto the relevant commits should work).

185
debian/changelog vendored
View file

@ -1,4 +1,181 @@
nginx (1.22.1-5) UNRELEASED; urgency=medium
nginx (1.26.3-3) unstable; urgency=medium
[ Jan Mojžíš ]
* d/changelog: fix whitespace in 1.26.3-2 record
* d/control: add libnginx-mod-http-lua dependency for nginx-extras package
for riscv64 platform
[ Thomas Ward ]
* d/nginx-common.nginx.service: Add ConditionFileIsExecutable to
SystemD service file, prevents starting of service if nginx is
not installed (which can happen if nginx-common is installed
independently from `nginx` itself (Closes: #1098477)
-- Jan Mojžíš <janmojzis@debian.org> Thu, 15 May 2025 15:31:38 +0200
nginx (1.26.3-2) unstable; urgency=medium
* Team upload
* Upload to unstable
-- Jérémy Lal <kapouer@melix.org> Fri, 07 Feb 2025 12:53:11 +0100
nginx (1.26.3-1) experimental; urgency=medium
* Team upload
* New upstream version 1.26.3
-- Jérémy Lal <kapouer@melix.org> Wed, 05 Feb 2025 19:08:02 +0100
nginx (1.26.2-1) experimental; urgency=medium
* Team upload
* New upstream version 1.26.2
* Add Sergey Kandaurov <s.kandaurov@f5.com> pgp public key
* Drop upstream patches
[ Jan Mojžíš ]
* d/gbp.conf: add upstream-signatures = on
* d/{control,copyright}: update my email to "janmojzis@debian.org"
* d/copyright: bump my copyright year
-- Jérémy Lal <kapouer@melix.org> Sun, 02 Feb 2025 21:08:45 +0100
nginx (1.26.0-3) unstable; urgency=medium
* d/control: Resolve dependency loop between nginx and nginx-common.
(Fixes: #1082373)
-- Thomas Ward <teward@ubuntu.com> Fri, 20 Sep 2024 21:35:42 -0400
nginx (1.26.0-2) unstable; urgency=medium
[ Jan Mojžíš ]
* d/rules: enable QUIC and HTTP/3 module (Closes: 1070488)
* d/control: bump Standards-Version: 4.7.0, no changes
* d/p/nginx-1.26.1.patch add, backport changes from the nginx 1.26.1 and fix
CVE-2024-32760, CVE-2024-31079, CVE-2024-35200, CVE-2024-34161
* d/p/CVE-2024-7347.patch add, backport CVE-2024-7347 fix (Closes: 1078971)
* d/libnginx-mod.abisubstvars updated comment when ABI needs to be changed
[ Thomas Ward ]
* d/conf/nginx.conf: Update default options for current security
practices and standards. SSL protos, disable prefer server
ciphers, hide server tokens/versions in responses.
-- Jan Mojžíš <jan.mojzis@gmail.com> Mon, 19 Aug 2024 18:46:30 +0200
nginx (1.26.0-1) unstable; urgency=medium
* New upstream version 1.26.0
* nginx ABI release: nginx-abi-1.26.0-1 (Closes: 1069997)
* d/libnginx-mod.abisubstvars: remove third-party modules version constraints
* d/u/signing-key.asc add Roman Arutyunyans PGP public key,
the key is used to sign the 1.26.0 release
* d/p/CVE-2023-44487.patch remove, fixed in upstream
* d/ufw/nginx update, add QUICK, thanks Marcus Bointon
* d/conf/mime.types add application/xslt+xml, thanks K. Widholm
* d/copyright: updated copyright related to new upstream version
* d/copyright: bump my copyright year
* d/conf/nginx.conf: add worker_cpu_affinity auto (Closes: 1063659)
* d/gbp.conf: add sign-tags = True, [pull] track-missing = True,
[import-orig] merge-mode = replace
-- Jan Mojžíš <jan.mojzis@gmail.com> Sun, 05 May 2024 18:48:05 +0200
nginx (1.24.0-2) unstable; urgency=medium
* d/control added dependency nginx-common to nginx (Closes: 1039905)
After nginx installation, the nginx-common package is installed
automatically due to its dependencies. The nginx-common package includes
the systemd unit, which becomes enabled and activated upon installation.
When the nginx is removed, nginx-common package and the systemd unit will
remain in the system. Adding a dependency nginx-common to nginx solves
this problem.
* d/control fixed binNMU safe dependency declaration nginx to nginx-common,
nginx is 'any', nginx-common is 'all' -> dependency '= ${source:Version}'
* d/rules removed override_dh_strip, migration to automatic debug symbols is
already done, fixes debug-symbol-migration-possibly-complete lint. warning
* d/po/ro.po added Romanian debconf translation. (Closes: 1033084),
Thanks to Remus-Gabriel Chelu
* d/po/sv.po added Swedish debconf translation. (Closes: 1050443),
Thanks to Peter Kvillegård
* d/conf/mime.types added video/ogg, video/x-matroska (Closes: 1028144)
* d/p/CVE-2023-44487.patch adds additional mitigations for CVE-2023-44487
that according to NGINX developers on nginx-devel are already suitably
mitigated with the default config options for keepalive. (Closes: 1053770)
* d/control added nginx-dev dependency on ${nginx:abi}
* d/debhelper/nginx_mod.pm automatic libnginx-mod-stream dependencies
-- Jan Mojžíš <jan.mojzis@gmail.com> Wed, 11 Oct 2023 01:17:51 +0200
nginx (1.24.0-1) unstable; urgency=medium
* New upstream version 1.24.0
* nginx ABI release: nginx-abi-1.24.0-1
* d/libnginx-mod.abisubstvars update version constraints of the 3rd party
modules
* d/p/bug-{1024605,973861}.patch removed, fixed in upstream
* d/copyright: updated copyright for files src/event/ngx_event_udp.h,
src/os/win32/ngx_dlopen
-- Jan Mojžíš <jan.mojzis@gmail.com> Tue, 27 Jun 2023 23:19:31 +0200
nginx (1.22.1-9) unstable; urgency=medium
* d/control: nginx-common Breaks+Replaces: nginx (<< 1.22.1-8)
(Closes: 1032929)
-- Jan Mojžíš <jan.mojzis@gmail.com> Tue, 14 Mar 2023 16:19:32 +0100
nginx (1.22.1-8) unstable; urgency=medium
* Main change:
Configuration files returned to nginx-common package. This fixes
the serious problem of losing configuration files during upgrade.
This is a rollback of a change made in 1.22.1-6 (Closes: 1032517)
* d/control: fix nginx-full dependencies
* d/libnginx-mod.abisubstvars: update libnginx-mod-http-lua version
-- Jan Mojžíš <jan.mojzis@gmail.com> Tue, 14 Mar 2023 06:53:32 +0100
nginx (1.22.1-7) unstable; urgency=medium
* nginx ABI release: nginx-abi-1.22.1-7
* nginx ABI: Nginx now provides nginx-abi-<VERSION> to better manage
dependencies between nginx and 3rd party modules. Credit to Jérémy Lal.
* switched to libpcre2 (Closes: 1000013)
* d/p/bug-973861: added, lingering close for connections with pipelined
requests. The patch is backported from the upstream. (Closes: 973861)
* d/gbb.conf: switched to debian branch main (debian-branch = main)
* d/copyright: updated to be compatible with 'cme update dpkg-copyright'
-- Jan Mojžíš <jan.mojzis@gmail.com> Mon, 13 Feb 2023 13:04:16 +0100
nginx (1.22.1-6) unstable; urgency=medium
* Main change:
Nginx binary moved to package nginx, also moved basic
configuration files from nginx-common to package nginx.
The packages nginx-{light,core,extras,common} are replaced
by a metapackage. (Closes: 1025763)
Users should simply install 'nginx' and 'libnginx-mod-...'
instead of these packages.
* Additional changes:
* d/nginx-{light,core,extras,full,common}.NEWS: added warning that
nginx-{light,core,extras,full,common} are deprecated
* d/control: fixed dependencies for safe binNMU
* d/copyright: updated debian/* copyright
* d/copyright: added missing copyright for d/apport/*
* d/copyright: added missing GPL-2+ copyright for d/debhelper/dh_nginx
* d/copyright: added missing copyright for d/help/examples/nginx_modsite
* d/po/it.po: added Italian debconf translation. (Closes: 1019160)
* d/control: removed dependency on obsolete package lsb-base
* d/control: bump Standards-Version: 4.6.2, no changes
-- Jan Mojžíš <jan.mojzis@gmail.com> Wed, 08 Feb 2023 17:20:27 +0100
nginx (1.22.1-5) unstable; urgency=medium
[ Jan Mojžíš ]
* Since version 1.22.1-5 all third party modules are removed from Debian NGINX
@ -15,6 +192,10 @@ nginx (1.22.1-5) UNRELEASED; urgency=medium
- libnginx-mod-http-uploadprogress
- libnginx-mod-http-subs-filter
- libnginx-mod-http-dav-ext
* d/tests: all *-simple and *-deps tests updated to check if nginx works
after installation/reload/restart for all flavours
* d/control: updated nginx-common dependency, fixes lintian warning
maybe-not-arch-all-binnmuable
[ Jérémy Lal ]
* d/rules: default error-log-path is stderr (--error-log-path=stderr)
@ -32,7 +213,7 @@ nginx (1.22.1-5) UNRELEASED; urgency=medium
* d/rules: enabled stream_realip_module (--with-stream_realip_module)
* d/rules: explicitly disabled pcre2 (--without-pcre2)
-- Jan Mojžíš <jan.mojzis@gmail.com> Fri, 09 Dec 2022 16:33:16 +0100
-- Jan Mojžíš <jan.mojzis@gmail.com> Tue, 20 Dec 2022 10:36:19 +0100
nginx (1.22.1-4) unstable; urgency=medium

179
debian/conf/mime.types vendored
View file

@ -1,96 +1,101 @@
types {
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/javascript js;
application/atom+xml atom;
application/rss+xml rss;
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/javascript js;
application/atom+xml atom;
application/rss+xml rss;
text/mathml mml;
text/plain txt;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
text/mathml mml;
text/plain txt;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
image/avif avif;
image/png png;
image/svg+xml svg svgz;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/webp webp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
image/avif avif;
image/png png;
image/svg+xml svg svgz;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/webp webp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
font/woff woff;
font/woff2 woff2;
font/woff woff;
font/woff2 woff2;
application/java-archive jar war ear;
application/json json;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.apple.mpegurl m3u8;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/vnd.ms-excel xls;
application/vnd.ms-fontobject eot;
application/vnd.ms-powerpoint ppt;
application/vnd.oasis.opendocument.graphics odg;
application/vnd.oasis.opendocument.presentation odp;
application/vnd.oasis.opendocument.spreadsheet ods;
application/vnd.oasis.opendocument.text odt;
application/vnd.openxmlformats-officedocument.presentationml.presentation pptx;
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;
application/vnd.openxmlformats-officedocument.wordprocessingml.document docx;
application/vnd.wap.wmlc wmlc;
application/wasm wasm;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/xspf+xml xspf;
application/zip zip;
application/java-archive jar war ear;
application/json json;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.apple.mpegurl m3u8;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/vnd.ms-excel xls;
application/vnd.ms-fontobject eot;
application/vnd.ms-powerpoint ppt;
application/vnd.oasis.opendocument.graphics odg;
application/vnd.oasis.opendocument.presentation odp;
application/vnd.oasis.opendocument.spreadsheet ods;
application/vnd.oasis.opendocument.text odt;
application/vnd.openxmlformats-officedocument.presentationml.presentation
pptx;
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
xlsx;
application/vnd.openxmlformats-officedocument.wordprocessingml.document
docx;
application/vnd.wap.wmlc wmlc;
application/wasm wasm;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/xslt+xml xsl xslt;
application/xspf+xml xspf;
application/zip zip;
application/octet-stream bin exe dll;
application/octet-stream deb;
application/octet-stream dmg;
application/octet-stream iso img;
application/octet-stream msi msp msm;
application/octet-stream bin exe dll;
application/octet-stream deb;
application/octet-stream dmg;
application/octet-stream iso img;
application/octet-stream msi msp msm;
audio/midi mid midi kar;
audio/mpeg mp3;
audio/ogg ogg;
audio/x-m4a m4a;
audio/x-realaudio ra;
audio/midi mid midi kar;
audio/mpeg mp3;
audio/ogg ogg;
audio/x-m4a m4a;
audio/x-realaudio ra;
video/3gpp 3gpp 3gp;
video/mp2t ts;
video/mp4 mp4;
video/mpeg mpeg mpg;
video/quicktime mov;
video/webm webm;
video/x-flv flv;
video/x-m4v m4v;
video/x-mng mng;
video/x-ms-asf asx asf;
video/x-ms-wmv wmv;
video/x-msvideo avi;
video/3gpp 3gpp 3gp;
video/mp2t ts;
video/mp4 mp4;
video/mpeg mpeg mpg;
video/ogg ogv;
video/quicktime mov;
video/webm webm;
video/x-flv flv;
video/x-m4v m4v;
video/x-matroska mkv;
video/x-mng mng;
video/x-ms-asf asx asf;
video/x-ms-wmv wmv;
video/x-msvideo avi;
}

View file

@ -1,5 +1,6 @@
user www-data;
worker_processes auto;
worker_cpu_affinity auto;
pid /run/nginx.pid;
error_log /var/log/nginx/error.log;
include /etc/nginx/modules-enabled/*.conf;
@ -18,7 +19,7 @@ http {
sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
# server_tokens off;
server_tokens off; # Recommended practice is to turn this off
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
@ -30,8 +31,8 @@ http {
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1.2 TLSv1.3; # Dropping SSLv3 (POODLE), TLS 1.0, 1.1
ssl_prefer_server_ciphers off; # Don't force server cipher order.
##
# Logging Settings

113
debian/control vendored
View file

@ -2,36 +2,36 @@ Source: nginx
Section: httpd
Priority: optional
Maintainer: Debian Nginx Maintainers <pkg-nginx-maintainers@alioth-lists.debian.net>
Uploaders: Jan Mojžíš <jan.mojzis@gmail.com>
Uploaders: Jan Mojžíš <janmojzis@debian.org>
Build-Depends: debhelper-compat (= 13),
libexpat-dev,
libgd-dev,
libgeoip-dev,
libpcre3-dev,
libpcre2-dev,
libperl-dev,
libssl-dev,
libxslt1-dev,
po-debconf,
quilt,
zlib1g-dev
Standards-Version: 4.6.1
Standards-Version: 4.7.0
Homepage: https://nginx.org
Vcs-Git: https://salsa.debian.org/nginx-team/nginx.git
Vcs-Browser: https://salsa.debian.org/nginx-team/nginx
Rules-Requires-Root: no
Package: nginx
Architecture: all
Depends: nginx-core (<< ${source:Version}.1~) | nginx-full (<< ${source:Version}.1~) | nginx-light (<< ${source:Version}.1~) | nginx-extras (<< ${source:Version}.1~),
nginx-core (>= ${source:Version}) | nginx-full (>= ${source:Version}) | nginx-light (>= ${source:Version}) | nginx-extras (>= ${source:Version}),
${misc:Depends}
Architecture: any
Depends: ${misc:Depends},
${shlibs:Depends},
iproute2,
nginx-common (= ${source:Version}),
Breaks: nginx-light (<< 1.22.1-6~), nginx-extras (<< 1.22.1-6~), nginx-core (<< 1.22.1-6~),
Replaces: nginx-light (<< 1.22.1-6~), nginx-extras (<< 1.22.1-6~), nginx-core (<< 1.22.1-6~),
Provides: httpd, httpd-cgi, ${nginx:abi}
Description: small, powerful, scalable web/proxy server
Nginx ("engine X") is a high-performance web and reverse proxy server
created by Igor Sysoev. It can be used both as a standalone web server
and as a proxy to reduce the load on back-end HTTP or mail servers.
.
This is a dependency package to install either nginx-core (by default),
nginx-full, nginx-light or nginx-extras.
Package: nginx-doc
Architecture: all
@ -46,9 +46,11 @@ Description: small, powerful, scalable web/proxy server - documentation
This package provides extra documentation to help unleash the power of Nginx.
Package: nginx-common
Breaks: nginx (<< 1.22.1-8)
Replaces: nginx (<< 1.22.1-8)
Architecture: all
Multi-Arch: foreign
Depends: lsb-base, ${misc:Depends}
Depends: ${misc:Depends}
Suggests: fcgiwrap, nginx-doc, ssl-cert
Description: small, powerful, scalable web/proxy server - common files
Nginx ("engine X") is a high-performance web and reverse proxy server
@ -62,8 +64,9 @@ Package: nginx-dev
Architecture: all
Multi-Arch: foreign
Depends: ${misc:Depends}, ${S:Build-Depends},
nginx-core (<< ${source:Version}.1~) | nginx-light (<< ${source:Version}.1~) | nginx-extras (<< ${source:Version}.1~),
nginx-core (>= ${source:Version}) | nginx-light (>= ${source:Version}) | nginx-extras (>= ${source:Version})
${nginx:abi},
nginx (<< ${source:Version}.1~),
nginx (>= ${source:Version}),
Provides: dh-sequence-nginx
Description: nginx web/proxy server - development headers
Nginx ("engine X") is a high-performance web and reverse proxy server
@ -75,28 +78,31 @@ Description: nginx web/proxy server - development headers
additions to the Debian nginx web/proxy server packages.
Package: nginx-core
Architecture: any
Depends: libnginx-mod-http-geoip (= ${binary:Version}),
libnginx-mod-http-image-filter (= ${binary:Version}),
libnginx-mod-http-xslt-filter (= ${binary:Version}),
libnginx-mod-mail (= ${binary:Version}),
libnginx-mod-stream (= ${binary:Version}),
libnginx-mod-stream-geoip (= ${binary:Version}),
nginx-common (= ${source:Version}),
iproute2,
Architecture: all
Depends: libnginx-mod-http-geoip (>= ${source:Version}),
libnginx-mod-http-geoip (<< ${source:Version}.1~),
libnginx-mod-http-image-filter (>= ${source:Version}),
libnginx-mod-http-image-filter (<< ${source:Version}.1~),
libnginx-mod-http-xslt-filter (>= ${source:Version}),
libnginx-mod-http-xslt-filter (<< ${source:Version}.1~),
libnginx-mod-mail (>= ${source:Version}),
libnginx-mod-mail (<< ${source:Version}.1~),
libnginx-mod-stream (>= ${source:Version}),
libnginx-mod-stream (<< ${source:Version}.1~),
libnginx-mod-stream-geoip (>= ${source:Version}),
libnginx-mod-stream-geoip (<< ${source:Version}.1~),
nginx (>= ${source:Version}),
nginx (<< ${source:Version}.1~),
${misc:Depends},
${shlibs:Depends}
Breaks: nginx-full (<< 1.18.0-1),
Replaces: nginx-full (<< 1.18.0-1),
Provides: httpd, httpd-cgi, nginx
Conflicts: nginx-extras, nginx-light
Suggests: nginx-doc (= ${source:Version})
Description: nginx web/proxy server (standard version)
Nginx ("engine X") is a high-performance web and reverse proxy server
created by Igor Sysoev. It can be used both as a standalone web server
and as a proxy to reduce the load on back-end HTTP or mail servers.
.
This package provides a version of nginx identical to that of nginx-full,
This metapackage provides a version of nginx identical to that of nginx-full,
but without any third-party modules, and only modules in the original
nginx code base.
.
@ -122,12 +128,10 @@ Depends: libnginx-mod-http-auth-pam,
libnginx-mod-http-subs-filter,
libnginx-mod-http-upstream-fair,
libnginx-mod-stream-geoip2,
nginx-core (>= ${source:Version}),
nginx-core (<< ${source:Version}.1~),
nginx (>= ${source:Version}),
nginx (<< ${source:Version}.1~),
${misc:Depends},
${shlibs:Depends}
Provides: httpd, httpd-cgi, nginx
Suggests: nginx-doc (= ${source:Version})
Description: nginx web/proxy server (standard version with 3rd parties)
Nginx ("engine X") is a high-performance web and reverse proxy server
created by Igor Sysoev. It can be used both as a standalone web server
@ -154,21 +158,18 @@ Description: nginx web/proxy server (standard version with 3rd parties)
Upstream Fair Queue.
Package: nginx-light
Architecture: any
Depends: libnginx-mod-http-echo (>= 1:0.63-3~),
nginx-common (= ${source:Version}),
iproute2,
Architecture: all
Depends: libnginx-mod-http-echo,
nginx (>= ${source:Version}),
nginx (<< ${source:Version}.1~),
${misc:Depends},
${shlibs:Depends}
Provides: httpd, httpd-cgi, nginx
Conflicts: nginx-extras, nginx-core
Suggests: nginx-doc (= ${source:Version})
Description: nginx web/proxy server (basic version)
Nginx ("engine X") is a high-performance web and reverse proxy server
created by Igor Sysoev. It can be used both as a standalone web server
and as a proxy to reduce the load on back-end HTTP or mail servers.
.
This package provides a very light version of nginx with only the
This metapackage provides a very light version of nginx with only the
minimal set of features and modules.
.
STANDARD HTTP MODULES: Core, Access, Auth Basic, Auto Index, Empty GIF,
@ -182,39 +183,35 @@ Description: nginx web/proxy server (basic version)
Package: nginx-extras
Architecture: any
Depends: libnginx-mod-http-auth-pam (>= 1:1.5.3-2~),
libnginx-mod-http-cache-purge (>= 1:2.3-3~),
libnginx-mod-http-dav-ext (>= 1:3.0.0-2~),
libnginx-mod-http-echo (>= 1:0.63-3~),
libnginx-mod-http-fancyindex (>= 1:0.5.2-2~),
Depends: nginx (= ${binary:Version}),
libnginx-mod-http-geoip (= ${binary:Version}),
libnginx-mod-http-geoip2 (>= 1:3.4-2~),
libnginx-mod-http-headers-more-filter (>= 1:0.34-2~),
libnginx-mod-http-image-filter (= ${binary:Version}),
libnginx-mod-http-lua (>=1:0.10.22-3~) [amd64 arm64 armel armhf i386 mips64el mipsel s390x powerpc],
libnginx-mod-http-perl (= ${binary:Version}),
libnginx-mod-http-subs-filter (>= 1:0.6.4-2~),
libnginx-mod-http-uploadprogress (>= 1:0.9.2-2~),
libnginx-mod-http-upstream-fair (>= 1:0.0~git20120408.a18b409-2~),
libnginx-mod-http-xslt-filter (= ${binary:Version}),
libnginx-mod-mail (= ${binary:Version}),
libnginx-mod-nchan (>= 1:1.3.5+dfsg-2~),
libnginx-mod-stream (= ${binary:Version}),
libnginx-mod-stream-geoip (= ${binary:Version}),
libnginx-mod-stream-geoip2 (>= 1:3.4-2~),
nginx-common (= ${source:Version}),
iproute2,
libnginx-mod-http-auth-pam,
libnginx-mod-http-cache-purge,
libnginx-mod-http-dav-ext,
libnginx-mod-http-echo,
libnginx-mod-http-fancyindex,
libnginx-mod-http-geoip2,
libnginx-mod-http-headers-more-filter,
libnginx-mod-http-lua [amd64 arm64 armel armhf i386 mips64el mipsel s390x riscv64 powerpc],
libnginx-mod-http-subs-filter,
libnginx-mod-http-uploadprogress,
libnginx-mod-http-upstream-fair,
libnginx-mod-nchan,
libnginx-mod-stream-geoip2,
${misc:Depends},
${shlibs:Depends}
Provides: httpd, httpd-cgi, nginx
Conflicts: nginx-core, nginx-light
Suggests: nginx-doc (= ${source:Version})
Description: nginx web/proxy server (extended version)
Nginx ("engine X") is a high-performance web and reverse proxy server
created by Igor Sysoev. It can be used both as a standalone web server
and as a proxy to reduce the load on back-end HTTP or mail servers.
.
This package provides a version of nginx with the standard modules, plus
This metapackage provides a version of nginx with the standard modules, plus
extra features and modules such as the Perl module, which allows the
addition of Perl in configuration files.
.

112
debian/copyright vendored
View file

@ -3,32 +3,12 @@ Upstream-Name: nginx
Source: https://nginx.org/en/download.html
Files: *
Copyright: 2002-2021, Igor Sysoev
2011-2022, Nginx, Inc.
Maxim Dounin
Valentin V. Bartenev
Roman Arutyunyan
Ruslan Ermilov
License: BSD-2-clause
Files: src/core/ngx_murmurhash.c
Copyright: Copyright (C) Austin Appleby
License: public-domain
All MurmurHash versions are public domain software, and the author
disclaims all copyright to their code.
Files: src/stream/ngx_stream_set_module.c
Copyright: Copyright (C) Pavel Pautov
Copyright (C) Nginx, Inc.
License: BSD-2-clause
Files: src/http/modules/ngx_http_scgi_module.c
src/http/modules/ngx_http_uwsgi_module.c
Copyright: 2009-2010, Unbit S.a.s.
2008, Manlio Perillo (manlio.perillo@gmail.com)
Igor Sysoev
Nginx, Inc.
Copyright: Valentin V. Bartenev
Ruslan Ermilov
Roman Arutyunyan
Maxim Dounin
2011-2024, Nginx, Inc.
2002-2021, Igor Sysoev
License: BSD-2-clause
Files: contrib/geo2nginx.pl
@ -36,21 +16,69 @@ Copyright: 2005, Andrei Nigmatulin
License: BSD-2-clause
Files: debian/*
Copyright: 2007-2009, Fabio Tranchitella <kobold@debian.org>
2008, Jose Parrella <joseparrella@cantv.net>
2009-2014, Kartik Mistry <kartik@debian.org>
2010-2014, Michael Lustfield <michael@lustfield.net>
2011 Dmitry E. Oboukhov <unera@debian.org>
2011-2013, Cyril Lavier <cyril.lavier@davromaniak.eu>
2013-2016, Christos Trochalakis <ctrochalakis@debian.org>
2019-2022, Thomas Ward <teward@ubuntu.com>
2020-2022, Ondřej Nový <onovy@debian.org>
Copyright: 2022-2025, Jan Mojžíš <janmojzis@debian.org>
2020-2022, Ondřej Nový <onovy@debian.org>
2019-2022, Thomas Ward <teward@ubuntu.com>
2013-2016, Christos Trochalakis <ctrochalakis@debian.org>
2011-2013, Cyril Lavier <cyril.lavier@davromaniak.eu>
2011, Dmitry E. Oboukhov <unera@debian.org>
2010-2014, Michael Lustfield <michael@lustfield.net>
2009-2014, Kartik Mistry <kartik@debian.org>
2008, Jose Parrella <joseparrella@cantv.net>
2007-2009, Fabio Tranchitella <kobold@debian.org>
License: BSD-2-clause
Files: debian/apport/*
Copyright: 2015, Thomas Ward <teward@ubuntu.com>
License: BSD-2-clause
Files: debian/debhelper/*
Copyright: 2022 Miao Wang
Copyright: 2022, Miao Wang
License: Expat
Files: debian/debhelper/dh_nginx
Copyright: 2016, Christos Trochalakis <ctrochalakis@debian.org>
License: GPL-2+
Files: debian/ngx-conf/ngx-conf
Copyright: 2015, Michael Lustfield <michael@lustfield.net>
License: Expat
Files: man/*
Copyright: Nginx, Inc.
2010, 2019, Sergey A. Osokin
License: BSD-2-clause
Files: src/core/ngx_murmurhash.c
Copyright: Austin Appleby
License: public-domain
All MurmurHash versions are public domain software, and the author
disclaims all copyright to their code.
Files: src/http/modules/ngx_http_scgi_module.c
Copyright: Nginx, Inc.
Manlio Perillo (manlio.perillo@gmail.com)
Igor Sysoev
License: BSD-2-clause
Files: src/http/modules/ngx_http_uwsgi_module.c
Copyright: Nginx, Inc.
Igor Sysoev
2009, 2010, Unbit S.a.s.
2008, Manlio Perillo (manlio.perillo@gmail.com)
License: BSD-2-clause
Files: src/http/ngx_http_huff_encode.c
Copyright: Valentin V. Bartenev
Nginx, Inc.
2015, Vlad Krasnov
License: BSD-2-clause
Files: src/stream/ngx_stream_set_module.c
Copyright: Pavel Pautov
Nginx, Inc.
License: BSD-2-clause
License: BSD-2-clause
All rights reserved.
.
@ -94,3 +122,15 @@ License: Expat
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
License: GPL-2+
This is free software, licensed under:
.
The GNU General Public License, Version 2, June 1991
.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 dated June, 1991, or (at
your option) any later version.
On Debian systems, the complete text of version 2 of the GNU General
Public License can be found in '/usr/share/common-licenses/GPL-2'.

View file

@ -23,17 +23,28 @@
use strict;
use File::Find;
use Debian::Debhelper::Dh_Lib;
use Dpkg::Substvars;
=head1 NAME
dh_nginx - register configuration snippets to the nginx web server
=cut
my $nginx_in_tree;
my $abi;
sub nginx_depends
{
return 'nginx-common (= ${source:Version})'
if (!$abi) {
my $sv = Dpkg::Substvars->new();
if ($nginx_in_tree) {
$sv->load("debian/libnginx-mod.abisubstvars");
}
else {
$sv->load("/usr/share/nginx/src/debian/libnginx-mod.abisubstvars");
}
$abi = $sv->get("nginx:abi");
}
return "$abi";
}
sub nginx_api_installdir
@ -161,8 +172,6 @@ dh_nginx is heavily influnced by dh_apache2 written by Arno Toell
## main code starts here
##
my $nginx_in_tree;
init(options => {
"e|noenable" => \$dh{NOENABLE},
"in-nginx-tree" => \$nginx_in_tree,
@ -268,30 +277,24 @@ foreach my $package ((@{$dh{DOPACKAGES}}))
}
}
my @postinst_autoscripts;
my @postinst_autoscripts;
if ($#{$PACKAGE_TYPE{'has_a_module'}} >= 0)
{
if ($package !~ m/libnginx-mod-\w+?/)
{
warning("Package $package appears to be an Nginx module. It should comply to the package naming scheme libnginx-mod-<modulename>\n");
}
if ($nginx_in_tree){
addsubstvar($package, "misc:Depends", nginx_depends());
} else {
my $ngx_ver = `grep 'define NGINX_VERSION' /usr/share/nginx/src/src/core/nginx.h | sed -e 's/^.*"\\(.*\\)".*/\\1/'`;
chomp($ngx_ver);
addsubstvar($package, "misc:Depends", "nginx-common (>= $ngx_ver), nginx-common (<< $ngx_ver.1~)");
}
if ($#{$PACKAGE_TYPE{'has_a_module'}} >= 0)
{
if ($package !~ m/libnginx-mod-\w+?/)
{
warning("Package $package appears to be an Nginx module. It should comply to the package naming scheme libnginx-mod-<modulename>\n");
}
addsubstvar($package, "misc:Depends", nginx_depends());
my $modules = "";
foreach my $module (@{$PACKAGE_TYPE{'has_a_module'}})
{
$modules .= "$module ";
}
my $modules = "";
foreach my $module (@{$PACKAGE_TYPE{'has_a_module'}})
{
$modules .= "$module ";
}
push @postinst_autoscripts, ["module", $modules];
}
push @postinst_autoscripts, ["module", $modules];
}
if (! $dh{NOSCRIPTS})
{

View file

@ -35,12 +35,18 @@ sub _NDK_SRC_DIR {
sub new {
my $class=shift;
my $this= $class->SUPER::new(@_);
my $ngx_ver = `grep 'define NGINX_VERSION' /usr/share/nginx/src/src/core/nginx.h | sed -e 's/^.*"\\(.*\\)".*/\\1/'`;
chomp($ngx_ver);
$this->prefer_out_of_source_building(@_);
$this->{has_ndk} = $this->has_build_dep("libnginx-mod-http-ndk-dev");
if ($this->{has_ndk} == 1){
foreach my $cur (getpackages('arch')) {
$this->{has_stream} = $this->has_build_dep("libnginx-mod-stream");
foreach my $cur (getpackages('arch')) {
if ($this->{has_ndk} == 1) {
addsubstvar($cur, "misc:Depends", "libnginx-mod-http-ndk");
}
if ($this->{has_stream} == 1) {
addsubstvar($cur, "misc:Depends", "libnginx-mod-stream (>= $ngx_ver), libnginx-mod-stream (<< $ngx_ver.1~)");
}
}
return $this;
}
@ -63,6 +69,7 @@ sub configure {
--add-dynamic-module="$pwd_dir/$src_dir" \\
--builddir="$pwd_dir/$bld_dir" \\
' . ($this->{has_ndk} ? '--add-module=' . $this->_NDK_SRC_DIR : '') . ' \\
' . ($this->{has_stream} ? '--with-stream' : '') . ' \\
"$@"', "dummy", @_);
}
@ -79,6 +86,10 @@ sub test {
unshift @_, "ndk_http_module.so";
}
if ( $this->{has_stream} and !grep( /^ngx_stream_module.so$/, @_ ) ) {
unshift @_, "ngx_stream_module.so";
}
$this->doit_in_builddir("bash", "-e", "-o", "pipefail", "-c", '
tmp_conf=$(mktemp -p .)
for pre_dep in "$@"; do

11
debian/gbp.conf vendored
View file

@ -1,4 +1,13 @@
[DEFAULT]
pristine-tar = True
debian-branch = main
upstream-branch = upstream
upstream-tag = upstream/%(version)s
pristine-tar = True
sign-tags = True
upstream-signatures = on
[import-orig]
merge-mode = replace
[pull]
track-missing = True

View file

@ -9,5 +9,5 @@ $module =~ s/^libnginx-mod-//;
$modulepath = $module;
$modulepath =~ s/-/_/g;
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
print "mod debian/build-bin/objs/ngx_${modulepath}_module.so\n";
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";

View file

@ -9,5 +9,5 @@ $module =~ s/^libnginx-mod-//;
$modulepath = $module;
$modulepath =~ s/-/_/g;
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
print "mod debian/build-bin/objs/ngx_${modulepath}_module.so\n";
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";

View file

@ -3,5 +3,5 @@
use Config;
my $vendorarch = substr($Config{vendorarch}, 1);
print "debian/build-extras/objs/src/http/modules/perl/blib/arch/auto/nginx/* $vendorarch/auto/nginx\n";
print "debian/build-extras/objs/src/http/modules/perl/blib/lib/nginx.pm $vendorarch\n";
print "debian/build-bin/objs/src/http/modules/perl/blib/arch/auto/nginx/* $vendorarch/auto/nginx\n";
print "debian/build-bin/objs/src/http/modules/perl/blib/lib/nginx.pm $vendorarch\n";

View file

@ -9,5 +9,5 @@ $module =~ s/^libnginx-mod-//;
$modulepath = $module;
$modulepath =~ s/-/_/g;
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
print "mod debian/build-bin/objs/ngx_${modulepath}_module.so\n";
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";

View file

@ -9,5 +9,5 @@ $module =~ s/^libnginx-mod-//;
$modulepath = $module;
$modulepath =~ s/-/_/g;
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
print "mod debian/build-bin/objs/ngx_${modulepath}_module.so\n";
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";

View file

@ -9,5 +9,5 @@ $module =~ s/^libnginx-mod-//;
$modulepath = $module;
$modulepath =~ s/-/_/g;
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
print "mod debian/build-bin/objs/ngx_${modulepath}_module.so\n";
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";

View file

@ -9,5 +9,5 @@ $module =~ s/^libnginx-mod-//;
$modulepath = $module;
$modulepath =~ s/-/_/g;
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
print "mod debian/build-bin/objs/ngx_${modulepath}_module.so\n";
print "mod debian/libnginx-mod.conf/mod-${module}.conf 70\n";

View file

@ -9,5 +9,5 @@ $module =~ s/^libnginx-mod-//;
$modulepath = $module;
$modulepath =~ s/-/_/g;
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
print "mod debian/build-bin/objs/ngx_${modulepath}_module.so\n";
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";

11
debian/libnginx-mod.abisubstvars vendored Normal file
View file

@ -0,0 +1,11 @@
# ABI must be changed:
# - when upstream nginx version is changed
# - when module signature is changed (e.g. time_t change from 32bit integer to 64bit integer https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1069997)
# - when symbols/structures/... (exported from header files) are changed
#
# ABI format: nginx-abi-{UPSTREAM_VERSION}-{SUFFIX}
# the {SUFFIX} provides a mechanism on rare cases when there have to be ABI
# changes without upgrading the upstream nginx version, e.g. security updates
# in oldstable
nginx:abi=nginx-abi-1.26.3-1

View file

@ -1,45 +0,0 @@
Noteworthy Changes Wheezy => Jessie
===================================
* Disabled SSLv3 by default
After POODLE we followed suit and disabled SSLv3 by default.
* /var/log/nginx permissions
/var/log/nginx/ is now not readable by default (www-data:adm 750),
If you depend on that you can add a manual override with dpkg-statoverride.
* New upgrade & rotate initscript commands
You can now upgrade the nginx binary on the fly with /etc/init.d/nginx upgrade
(Read more on http://nginx.org/en/docs/control.html#upgrade)
* Synced configuration files are with upstream
Unfortunately that might break existing configuration for some users, especially
fastcgi scripts. /usr/share/doc/nginx-common/NEWS.Debian.gz contains some
more information about the changes made.
* Changed document root to /var/www/html
The default document root has now changed to /var/www/html/.
* Added a snippets directory
A /etc/nginx/snippets has been added, it contains common configuration
stangas. For now we ship a snakeoil.conf (self-signed ssl) and a simple
fastcgi-php.conf.
* Switched to graceful stop
Both systemd and the initscript's stop function try to graceful stop
nginx (SIGQUIT) before stopping it fast (SIGTERM). That allows nginx to
serve connected clients before shutting down.
* Dropped nginx-naxsi
Packaging naxsi was not trivial and, unfortunately, none of the
maintainers uses it. That's the reason nginx-naxsi was not in a good
shape and we are not feeling comfortable to release and support it.

View file

@ -15,6 +15,7 @@ Description=A high performance web server and a reverse proxy server
Documentation=man:nginx(8)
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
ConditionFileIsExecutable=/usr/sbin/nginx
[Service]
Type=forking

9
debian/nginx-core.NEWS vendored Normal file
View file

@ -0,0 +1,9 @@
nginx-core (1.22.1-6) unstable; urgency=medium
The packages nginx-core, nginx-full, nginx-light, nginx-extras are deprecated.
Packages no longer distribute the nginx binary and are replaced
by a metapackage to keep upgrades smooth.
Please simply install 'nginx' and 'libnginx-mod-...' modules You need
instead of these packages.
-- Jan Mojžíš <jan.mojzis@gmail.com> Wed, 11 Jan 2023 20:23:22 +0100

View file

@ -1 +0,0 @@
debian/build-core/objs/nginx usr/sbin

View file

@ -1 +0,0 @@
debian/build-core/objs/nginx.8

View file

@ -2,6 +2,7 @@ debian/build-src/auto usr/share/nginx/src/
debian/build-src/src usr/share/nginx/src/
debian/build-src/conf_flags usr/share/nginx/src/
debian/build-src/configure usr/share/nginx/src/
debian/libnginx-mod.abisubstvars usr/share/nginx/src/debian/
debian/debhelper/nginx.pm usr/share/perl5/Debian/Debhelper/Sequence/
debian/debhelper/dh_nginx usr/bin/
debian/debhelper/nginx_mod.pm usr/share/perl5/Debian/Debhelper/Buildsystem/

View file

@ -1,6 +1,9 @@
nginx-extras (1.10.1-2) unstable; urgency=medium
nginx-extras (1.22.1-6) unstable; urgency=medium
Starting with this release the HTTP Push module has been replaced by Nchan.
More info for the upgrade can be found at https://nchan.slact.net/upgrade.
The packages nginx-core, nginx-full, nginx-light, nginx-extras are deprecated.
Packages no longer distribute the nginx binary and are replaced
by a metapackage to keep upgrades smooth.
Please simply install 'nginx' and 'libnginx-mod-...' modules You need
instead of these packages.
-- Christos Trochalakis <yatiohi@ideopolis.gr> Wed, 31 Aug 2016 15:07:20 +0300
-- Jan Mojžíš <jan.mojzis@gmail.com> Wed, 11 Jan 2023 20:23:22 +0100

View file

@ -1 +0,0 @@
debian/build-extras/objs/nginx usr/sbin

View file

@ -1 +0,0 @@
debian/build-extras/objs/nginx.8

View file

@ -1,33 +0,0 @@
#!/bin/sh
set -e
case "$1" in
abort-upgrade|abort-remove|abort-deconfigure|configure)
;;
triggered)
if invoke-rc.d --quiet nginx status >/dev/null; then
echo "Triggering nginx reload ..."
invoke-rc.d nginx reload || true
fi
exit 0
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
if invoke-rc.d --quiet nginx status >/dev/null; then
invoke-rc.d nginx upgrade || invoke-rc.d nginx restart
exit $?
else
if [ -z "$(ss -nlt 'sport = 80' | grep -v ^State)" ]; then
invoke-rc.d nginx start || exit $?
echo "Not attempting to start NGINX, port 80 is already in use."
exit 0
fi
fi
#DEBHELPER#
exit 0

View file

@ -1,22 +0,0 @@
#!/bin/sh
set -e
case "$1" in
remove|remove-in-favour|deconfigure|deconfigure-in-favour)
if [ -x /etc/init.d/nginx ]; then
invoke-rc.d nginx stop || exit $?
fi
;;
upgrade|failed-upgrade)
;;
*)
echo "prerm called with unknown argument \`$1'" >&2
exit 1
;;
esac
#DEBHELPER#
exit 0

View file

@ -1 +0,0 @@
interest-noawait nginx-reload

9
debian/nginx-full.NEWS vendored Normal file
View file

@ -0,0 +1,9 @@
nginx-full (1.22.1-6) unstable; urgency=medium
The packages nginx-core, nginx-full, nginx-light, nginx-extras are deprecated.
Packages no longer distribute the nginx binary and are replaced
by a metapackage to keep upgrades smooth.
Please simply install 'nginx' and 'libnginx-mod-...' modules You need
instead of these packages.
-- Jan Mojžíš <jan.mojzis@gmail.com> Wed, 11 Jan 2023 20:23:22 +0100

9
debian/nginx-light.NEWS vendored Normal file
View file

@ -0,0 +1,9 @@
nginx-light (1.22.1-6) unstable; urgency=medium
The packages nginx-core, nginx-full, nginx-light, nginx-extras are deprecated.
Packages no longer distribute the nginx binary and are replaced
by a metapackage to keep upgrades smooth.
Please simply install 'nginx' and 'libnginx-mod-...' modules You need
instead of these packages.
-- Jan Mojžíš <jan.mojzis@gmail.com> Wed, 11 Jan 2023 20:23:22 +0100

View file

@ -1 +0,0 @@
usr/sbin

View file

@ -1 +0,0 @@
debian/build-light/objs/nginx usr/sbin

View file

@ -1 +0,0 @@
debian/build-light/objs/nginx.8

View file

@ -1,33 +0,0 @@
#!/bin/sh
set -e
case "$1" in
abort-upgrade|abort-remove|abort-deconfigure|configure)
;;
triggered)
if invoke-rc.d --quiet nginx status >/dev/null; then
echo "Triggering nginx reload ..."
invoke-rc.d nginx reload || true
fi
exit 0
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
if invoke-rc.d --quiet nginx status >/dev/null; then
invoke-rc.d nginx upgrade || invoke-rc.d nginx restart
exit $?
else
if [ -z "$(ss -nlt 'sport = 80' | grep -v ^State)" ]; then
invoke-rc.d nginx start || exit $?
echo "Not attempting to start NGINX, port 80 is already in use."
exit 0
fi
fi
#DEBHELPER#
exit 0

View file

@ -1,22 +0,0 @@
#!/bin/sh
set -e
case "$1" in
remove|remove-in-favour|deconfigure|deconfigure-in-favour)
if [ -x /etc/init.d/nginx ]; then
invoke-rc.d nginx stop || exit $?
fi
;;
upgrade|failed-upgrade)
;;
*)
echo "prerm called with unknown argument \`$1'" >&2
exit 1
;;
esac
#DEBHELPER#
exit 0

View file

@ -1 +0,0 @@
interest-noawait nginx-reload

1
debian/nginx.install vendored Normal file
View file

@ -0,0 +1 @@
debian/build-bin/objs/nginx usr/sbin

1
debian/nginx.manpages vendored Normal file
View file

@ -0,0 +1 @@
debian/build-bin/objs/nginx.8

View file

@ -23,6 +23,7 @@ if invoke-rc.d --quiet nginx status >/dev/null; then
else
if [ -z "$(ss -nlt 'sport = 80' | grep -v ^State)" ]; then
invoke-rc.d nginx start || exit $?
else
echo "Not attempting to start NGINX, port 80 is already in use."
exit 0
fi

View file

@ -1,102 +0,0 @@
Description: SSI: handling of subrequests from other modules
Author: User Ciel Zhao <i@ciel.dev>
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024605
Last-Update: 2022-11-21
Origin: https://hg.nginx.org/nginx/raw-rev/49e7db44b57c
Forwarded: not-needed
---
# HG changeset patch
# User Ciel Zhao <i@ciel.dev>
# Date 1669039294 -10800
# Node ID 49e7db44b57c9f4d54b87d19a696178b913aec5c
# Parent 42bc158a47ecb3c2bd0396c723c307c757f2770e
SSI: handling of subrequests from other modules (ticket #1263).
As the SSI parser always uses the context from the main request for storing
variables and blocks, that context should always exist for subrequests using
SSI, even though the main request does not necessarily have SSI enabled.
However, `ngx_http_get_module_ctx(r->main, ...)` is getting NULL in such cases,
resulting in the worker crashing SIGSEGV when accessing its attributes.
This patch links the first initialized context to the main request, and
upgrades it only when main context is initialized.
diff -r 42bc158a47ec -r 49e7db44b57c src/http/modules/ngx_http_ssi_filter_module.c
--- a/src/http/modules/ngx_http_ssi_filter_module.c Tue Nov 08 12:48:21 2022 +0300
+++ b/src/http/modules/ngx_http_ssi_filter_module.c Mon Nov 21 17:01:34 2022 +0300
@@ -329,7 +329,7 @@
static ngx_int_t
ngx_http_ssi_header_filter(ngx_http_request_t *r)
{
- ngx_http_ssi_ctx_t *ctx;
+ ngx_http_ssi_ctx_t *ctx, *mctx;
ngx_http_ssi_loc_conf_t *slcf;
slcf = ngx_http_get_module_loc_conf(r, ngx_http_ssi_filter_module);
@@ -341,6 +341,8 @@
return ngx_http_next_header_filter(r);
}
+ mctx = ngx_http_get_module_ctx(r->main, ngx_http_ssi_filter_module);
+
ctx = ngx_pcalloc(r->pool, sizeof(ngx_http_ssi_ctx_t));
if (ctx == NULL) {
return NGX_ERROR;
@@ -367,6 +369,26 @@
r->filter_need_in_memory = 1;
if (r == r->main) {
+
+ if (mctx) {
+
+ /*
+ * if there was a shared context previously used as main,
+ * copy variables and blocks
+ */
+
+ ctx->variables = mctx->variables;
+ ctx->blocks = mctx->blocks;
+
+#if (NGX_PCRE)
+ ctx->ncaptures = mctx->ncaptures;
+ ctx->captures = mctx->captures;
+ ctx->captures_data = mctx->captures_data;
+#endif
+
+ mctx->shared = 0;
+ }
+
ngx_http_clear_content_length(r);
ngx_http_clear_accept_ranges(r);
@@ -379,6 +401,10 @@
} else {
ngx_http_weak_etag(r);
}
+
+ } else if (mctx == NULL) {
+ ngx_http_set_ctx(r->main, ctx, ngx_http_ssi_filter_module);
+ ctx->shared = 1;
}
return ngx_http_next_header_filter(r);
@@ -405,6 +431,7 @@
ctx = ngx_http_get_module_ctx(r, ngx_http_ssi_filter_module);
if (ctx == NULL
+ || (ctx->shared && r == r->main)
|| (in == NULL
&& ctx->buf == NULL
&& ctx->in == NULL
diff -r 42bc158a47ec -r 49e7db44b57c src/http/modules/ngx_http_ssi_filter_module.h
--- a/src/http/modules/ngx_http_ssi_filter_module.h Tue Nov 08 12:48:21 2022 +0300
+++ b/src/http/modules/ngx_http_ssi_filter_module.h Mon Nov 21 17:01:34 2022 +0300
@@ -71,6 +71,7 @@
u_char *captures_data;
#endif
+ unsigned shared:1;
unsigned conditional:2;
unsigned encoding:2;
unsigned block:1;

View file

@ -7,7 +7,7 @@ Last-Update: 2020-06-24
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -339,14 +339,21 @@
@@ -340,14 +340,21 @@
ngx_process = NGX_PROCESS_MASTER;
}
@ -30,7 +30,7 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
return 1;
}
@@ -359,8 +366,19 @@
@@ -360,8 +367,19 @@
#endif

View file

@ -16,7 +16,7 @@ connections.
--- a/src/event/ngx_event_openssl.c
+++ b/src/event/ngx_event_openssl.c
@@ -1832,6 +1832,23 @@
@@ -1914,6 +1914,23 @@
return NGX_AGAIN;
}
@ -40,7 +40,7 @@ connections.
err = (sslerr == SSL_ERROR_SYSCALL) ? ngx_errno : 0;
c->ssl->no_wait_shutdown = 1;
@@ -1968,6 +1985,21 @@
@@ -2050,6 +2067,21 @@
c->read->handler = ngx_ssl_handshake_handler;
c->write->handler = ngx_ssl_handshake_handler;

View file

@ -1,4 +1,3 @@
0003-define_gnu_source-on-other-glibc-based-platforms.patch
nginx-fix-pidfile.patch
nginx-ssl_cert_cb_yield.patch
bug-1024605.patch

56
debian/po/it.po vendored Normal file
View file

@ -0,0 +1,56 @@
# Nginx debconf translations
# Copyright (C) 2016 Christos Trochalakis
# This file is distributed under the same license as the nginx package.
# Christos Trochalakis <ctrochalakis@debian.org>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: nginx\n"
"Report-Msgid-Bugs-To: nginx@packages.debian.org\n"
"POT-Creation-Date: 2016-10-04 20:03+0300\n"
"PO-Revision-Date: 2022-08-25 00:00+0000\n"
"Last-Translator: Ceppo <ceppo@oziosi.org>\n"
"Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: note
#. Description
#: ../nginx-common.templates:1001
msgid "Possible insecure nginx log files"
msgstr "Documenti di log di nginx potenzialmente non sicuri"
#. Type: note
#. Description
#: ../nginx-common.templates:1001
msgid ""
"The following log files under /var/log/nginx directory are symlinks owned by "
"www-data:"
msgstr ""
"I seguenti documenti di log nel percorso /var/log/nginx sono collegamenti "
"simbolici (symlink) posseduti da www-data:"
#. Type: note
#. Description
#: ../nginx-common.templates:1001
msgid "${logfiles}"
msgstr "${logfiles}"
#. Type: note
#. Description
#: ../nginx-common.templates:1001
msgid ""
"Since nginx 1.4.4-4 /var/log/nginx was owned by www-data. As a result www-"
"data could symlink log files to sensitive locations, which in turn could "
"lead to privilege escalation attacks. Although /var/log/nginx permissions "
"are now fixed it is possible that such insecure links already exist. So, "
"please make sure to check the above locations."
msgstr ""
"Da nginx 1.4.4-4 /var/log/nginx era posseduto da www-data. Di conseguenza "
"www-data poteva creare collegamenti simbolici (symlink) a documenti di log "
"in percorsi sensibili, il che a sua volta poteva portare ad attacchi di "
"usurpazione di privilegi. Sebbene i permessi di /var/log/nginx siano adesso "
"corretti è possibile che questi link non sicuri esistano già. Quindi, "
"controllare i percorsi indicati sopra."

81
debian/po/ro.po vendored Normal file
View file

@ -0,0 +1,81 @@
# Mesajele în limba română pentru pachetul nginx.
# Romanian translation of nginx.
# Copyright © 2023 Christos Trochalakis
# This file is distributed under the same license as the nginx package.
# Christos Trochalakis <ctrochalakis@debian.org>, 2016.
#
# Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2023.
#
# Cronologia traducerii fișierului „nginx”:
# Traducerea inițială, făcută de R-GC, pentru versiunea nginx 1.22.1-7(2016-10-04).
# Actualizare a traducerii pentru versiunea Y, făcută de X, Y(anul).
#
msgid ""
msgstr ""
"Project-Id-Version: nginx 1.22.1-7\n"
"Report-Msgid-Bugs-To: nginx@packages.debian.org\n"
"POT-Creation-Date: 2016-10-04 20:03+0300\n"
"PO-Revision-Date: 2023-03-13 12:29+0100\n"
"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
"Language-Team: Romanian <debian-l10n-romanian@lists.debian.org>\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n==0 || (n!=1 && n%100>=1 && "
"n%100<=19) ? 1 : 2);\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Poedit 3.2.2\n"
# R-GC, scrie:
# după revzarea fișierului, RA spune:
# „Unele fișiere jurnal de «nginx» parsă fie nesecurizate” → „... par să ...”
# ****
# Corecție aplicată!
#. Type: note
#. Description
#: ../nginx.templates:1001
msgid "Possible insecure nginx log files"
msgstr "Unele fișiere jurnal de «nginx» par să fie nesecurizate"
#. Type: note
#. Description
#: ../nginx.templates:1001
msgid ""
"The following log files under /var/log/nginx directory are symlinks owned by "
"www-data:"
msgstr ""
"Următoarele fișiere jurnal din directorul „/var/log/nginx” sunt legături "
"simbolice deținute de „www-data”:"
#. Type: note
#. Description
#: ../nginx.templates:1001
msgid "${logfiles}"
msgstr "${logfiles}"
# R-GC, scrie:
# după revzarea fișierului, RA spune:
# „Deoarece până la nginx 1.4.4-4 directorul „/var/log/nginx” a fost deținut de „www-data”. Ca rezultat, „www-data” ar putea crea legături simbolice ...”
# → aici avem o fraza incompleta. Acel "deoarece" are nevoie de un efect, de exemplu:
# „Deoarece până la nginx 1.4.4-4 directorul ... a fost deținut de „www-data”, ca rezultat, ...”
# *****
# Corecție aplicată, cu o corecție ;) →
# „... deținut de „www-data”; ca rezultat, ...”
# adică: , → ;
#. Type: note
#. Description
#: ../nginx.templates:1001
msgid ""
"Since nginx 1.4.4-4 /var/log/nginx was owned by www-data. As a result www-data "
"could symlink log files to sensitive locations, which in turn could lead to "
"privilege escalation attacks. Although /var/log/nginx permissions are now fixed "
"it is possible that such insecure links already exist. So, please make sure to "
"check the above locations."
msgstr ""
"Deoarece până la nginx 1.4.4-4 directorul „/var/log/nginx” a fost deținut de "
"„www-data”; ca rezultat, „www-data” ar putea crea legături simbolice a "
"fișierelor jurnal către locații sensibile, ceea ce, la rândul său, ar putea "
"duce la atacuri de escaladare a privilegiilor. Deși permisiunile directorului „/"
"var/log/nginx” sunt acum remediate, este posibil ca astfel de legături nesigure "
"să existe deja. Prin urmare, asigurați-vă că verificați locațiile de mai sus."

58
debian/po/sv.po vendored Normal file
View file

@ -0,0 +1,58 @@
# Swedish translation of nginx debconf messages
# Copyright (C) 2016 Christos Trochalakis
# This file is distributed under the same license as the nginx package.
# Christos Trochalakis <ctrochalakis@debian.org>, 2016.
# Peter Kvillegård <peterkvillegard@posteo.net>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: nginx 1.24.0-1\n"
"Report-Msgid-Bugs-To: nginx@packages.debian.org\n"
"POT-Creation-Date: 2016-10-04 20:03+0300\n"
"PO-Revision-Date: 2023-08-21 19:01+0200\n"
"Last-Translator: Peter Kvillegård <peterkvillegard@posteo.net>\n"
"Language-Team: Swedish <debian-l10n-swedish@lists.debian.org>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.2.2\n"
#. Type: note
#. Description
#: ../nginx-common.templates:1001
msgid "Possible insecure nginx log files"
msgstr "Möjligen osäkra loggfiler för nginx"
#. Type: note
#. Description
#: ../nginx-common.templates:1001
msgid ""
"The following log files under /var/log/nginx directory are symlinks owned by "
"www-data:"
msgstr ""
"Följande loggfiler i katalogen /var/log/nginx är symboliska länkar som ägs "
"av www-data:"
#. Type: note
#. Description
#: ../nginx-common.templates:1001
msgid "${logfiles}"
msgstr "${logfiles}"
#. Type: note
#. Description
#: ../nginx-common.templates:1001
msgid ""
"Since nginx 1.4.4-4 /var/log/nginx was owned by www-data. As a result www-"
"data could symlink log files to sensitive locations, which in turn could "
"lead to privilege escalation attacks. Although /var/log/nginx permissions "
"are now fixed it is possible that such insecure links already exist. So, "
"please make sure to check the above locations."
msgstr ""
"Före nginx 1.4.4-4 ägdes /var/log/nginx av www-data, vilket innebar att www-"
"data kunde skapa loggfiler som var symboliska länkar till känsliga platser, "
"vilket i sin tur kunde leda till behörighetsintrång. Även om rättigheterna "
"för /var/log/nginx är fixade nu så är det möjligt att sådana osäkra länkar "
"finns kvar. Se till att kontrollera ovan nämnda platser."

59
debian/rules vendored
View file

@ -5,15 +5,7 @@ export DEB_BUILD_MAINT_OPTIONS=hardening=+all
debian_cflags:=$(shell dpkg-buildflags --get CFLAGS) -fPIC $(shell dpkg-buildflags --get CPPFLAGS)
debian_ldflags:=$(shell dpkg-buildflags --get LDFLAGS) -fPIC
FLAVOURS := core light extras
DYN_MODS := \
http-geoip \
http-image-filter \
http-perl \
http-xslt-filter \
mail \
stream \
stream-geoip
FLAVOURS := bin
BASEDIR = $(CURDIR)
$(foreach flavour,$(FLAVOURS) src ,$(eval BUILDDIR_$(flavour) = $(CURDIR)/debian/build-$(flavour)))
@ -45,12 +37,12 @@ basic_configure_flags := \
--with-compat \
--with-debug \
--with-pcre-jit \
--without-pcre2 \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_auth_request_module \
--with-http_v2_module \
--with-http_v3_module \
--with-http_dav_module \
--with-http_slice_module \
--with-threads
@ -60,53 +52,33 @@ common_configure_flags := \
--with-ld-opt="$(debian_ldflags)" \
$(basic_configure_flags)
light_configure_flags := \
$(common_configure_flags) \
--with-http_gzip_static_module \
--without-http_browser_module \
--without-http_geo_module \
--without-http_limit_req_module \
--without-http_limit_conn_module \
--without-http_memcached_module \
--without-http_referer_module \
--without-http_split_clients_module \
--without-http_userid_module
core_configure_flags := \
$(common_configure_flags) \
--with-http_addition_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_sub_module \
extras_configure_flags := \
bin_configure_flags := \
$(common_configure_flags) \
--with-http_addition_module \
--with-http_flv_module \
--with-http_geoip_module=dynamic \
--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_secure_link_module \
--with-http_sub_module \
--with-http_xslt_module=dynamic \
--with-mail=dynamic \
--with-mail_ssl_module \
--with-stream=dynamic \
--with-stream_geoip_module=dynamic \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-stream_realip_module
--with-stream_realip_module \
--with-http_geoip_module=dynamic \
--with-http_image_filter_module=dynamic \
--with-http_perl_module=dynamic \
--with-http_xslt_module=dynamic \
--with-mail=dynamic \
--with-stream=dynamic \
--with-stream_geoip_module=dynamic
%:
dh $@ --without autoreconf
override_dh_auto_configure: $(foreach flavour,$(FLAVOURS),config.arch.$(flavour)) config.src
override_dh_auto_build: $(foreach flavour,$(FLAVOURS),build.arch.$(flavour)) build.src
override_dh_strip: $(foreach flavour,$(FLAVOURS),strip.arch.$(flavour)) $(foreach mod,$(DYN_MODS),strip.mods.$(mod))
override_dh_clean: $(foreach flavour,$(FLAVOURS),clean.$(flavour)) clean.src
dh_clean
@ -123,6 +95,9 @@ override_dh_installsystemd:
override_dh_installlogrotate:
dh_installlogrotate --package nginx-common --name=nginx
override_dh_gencontrol:
dh_gencontrol -- -Tdebian/substvars -Tdebian/libnginx-mod.abisubstvars
build.arch.%:
$(MAKE) -C $(BUILDDIR_$*) build
@ -134,12 +109,6 @@ build.src:
echo "NGX_CONF_FLAGS=(" $(basic_configure_flags) ")" > $(BUILDDIR_src)/conf_flags
pod2man debian/debhelper/dh_nginx > $(BUILDDIR_src)/dh_nginx.1
strip.arch.%:
dh_strip --package=nginx-$(*) -O--dbgsym-migration='nginx-$(*)-dbg (<< 1.10.1-3~)'
strip.mods.%:
dh_strip --package=libnginx-mod-$(*) -O--automatic-dbgsym
config.arch.%:
dh_testdir
mkdir -p $(BUILDDIR_$*)

16
debian/tests/control vendored
View file

@ -1,5 +1,5 @@
Tests: light-simple
Restrictions: allow-stderr isolation-container
Restrictions: allow-stderr isolation-container needs-root
Depends: nginx-light, curl
Tests: ec-x25519
@ -7,15 +7,15 @@ Restrictions: allow-stderr isolation-container needs-root
Depends: nginx-light, ssl-cert, curl
Tests: core-simple
Restrictions: allow-stderr isolation-container
Restrictions: allow-stderr isolation-container needs-root
Depends: nginx-core, curl
Tests: full-simple
Restrictions: allow-stderr isolation-container
Restrictions: allow-stderr isolation-container needs-root
Depends: nginx-full, curl
Tests: extras-simple
Restrictions: allow-stderr isolation-container
Restrictions: allow-stderr isolation-container needs-root
Depends: nginx-extras, curl
Tests: core-module-deps
@ -31,7 +31,7 @@ Depends: nginx-core,
libnginx-mod-http-geoip2,
libnginx-mod-http-headers-more-filter,
libnginx-mod-http-image-filter,
libnginx-mod-http-lua [amd64 arm64 armel armhf i386 mips64el mipsel s390x powerpc],
libnginx-mod-http-lua [amd64 arm64 armel armhf i386 mips64el mipsel s390x riscv64 powerpc],
libnginx-mod-http-perl,
libnginx-mod-http-subs-filter,
libnginx-mod-http-uploadprogress,
@ -62,7 +62,7 @@ Depends: nginx-full,
libnginx-mod-http-geoip2,
libnginx-mod-http-headers-more-filter,
libnginx-mod-http-image-filter,
libnginx-mod-http-lua [amd64 arm64 armel armhf i386 mips64el mipsel s390x powerpc],
libnginx-mod-http-lua [amd64 arm64 armel armhf i386 mips64el mipsel s390x riscv64 powerpc],
libnginx-mod-http-perl,
libnginx-mod-http-subs-filter,
libnginx-mod-http-uploadprogress,
@ -93,7 +93,7 @@ Depends: nginx-light,
libnginx-mod-http-geoip2,
libnginx-mod-http-headers-more-filter,
libnginx-mod-http-image-filter,
libnginx-mod-http-lua [amd64 arm64 armel armhf i386 mips64el mipsel s390x powerpc],
libnginx-mod-http-lua [amd64 arm64 armel armhf i386 mips64el mipsel s390x riscv64 powerpc],
libnginx-mod-http-perl,
libnginx-mod-http-subs-filter,
libnginx-mod-http-uploadprogress,
@ -124,7 +124,7 @@ Depends: nginx-extras,
libnginx-mod-http-geoip2,
libnginx-mod-http-headers-more-filter,
libnginx-mod-http-image-filter,
libnginx-mod-http-lua [amd64 arm64 armel armhf i386 mips64el mipsel s390x powerpc],
libnginx-mod-http-lua [amd64 arm64 armel armhf i386 mips64el mipsel s390x riscv64 powerpc],
libnginx-mod-http-perl,
libnginx-mod-http-subs-filter,
libnginx-mod-http-uploadprogress,

View file

@ -1,7 +0,0 @@
#!/bin/sh
# restart nginx before the test
invoke-rc.d nginx restart || :
sleep 30
curl --max-time 300 --silent --fail -o /dev/null -w "response_code: %{http_code}\n" http://127.0.0.1/

1
debian/tests/core-module-deps vendored Symbolic link
View file

@ -0,0 +1 @@
generic

View file

@ -1,3 +0,0 @@
#!/bin/bash
curl --silent --fail -o /dev/null -w "response_code: %{http_code}\n" http://127.0.0.1/

1
debian/tests/core-simple vendored Symbolic link
View file

@ -0,0 +1 @@
generic

View file

@ -1 +1 @@
core-module-deps
generic

View file

@ -1,3 +0,0 @@
#!/bin/bash
curl --silent --fail -o /dev/null -w "response_code: %{http_code}\n" http://127.0.0.1/

1
debian/tests/extras-simple vendored Symbolic link
View file

@ -0,0 +1 @@
generic

View file

@ -1 +1 @@
core-module-deps
generic

View file

@ -1,3 +0,0 @@
#!/bin/bash
curl --silent --fail -o /dev/null -w "response_code: %{http_code}\n" http://127.0.0.1/

1
debian/tests/full-simple vendored Symbolic link
View file

@ -0,0 +1 @@
generic

73
debian/tests/generic vendored Normal file
View file

@ -0,0 +1,73 @@
#!/bin/sh
# version 20221215
# generic test that only verifies that nginx is running with the given
# libnginx-... module
# - after installation
# - after nginx reload
# - after nginx restart
EX=0
CURL_CMD="curl --max-time 60 --silent --fail -o /dev/null"
#change directory to $AUTOPKGTEST_TMP
cd "${AUTOPKGTEST_TMP}"
echo -n "curl after installation: http status="
if $CURL_CMD -w "response_code: %{http_code}, ... " http://127.0.0.1/; then
echo "OK"
else
EX=1
echo "FAILED"
fi
echo -n "nginx reload ... "
if invoke-rc.d nginx reload; then
echo "OK"
else
EX=1
echo "FAILED"
fi
sleep 5
echo -n "curl after reload: http status="
if $CURL_CMD -w "response_code: %{http_code}, ... " http://127.0.0.1/; then
echo "OK"
else
EX=1
echo "FAILED"
fi
echo -n "nginx restart ... "
if invoke-rc.d nginx restart; then
echo "OK"
else
EX=1
echo "FAILED"
fi
sleep 5
echo -n "curl after restart: http status="
if $CURL_CMD -w "response_code: %{http_code}, ... " http://127.0.0.1/; then
echo "OK"
else
EX=1
echo "FAILED"
fi
if [ ${EX} -ne 0 ]; then
echo "=== journalctl ==="
journalctl -n all -xu nginx.service || :
echo "=== error.log ==="
if [ `wc -l /var/log/nginx/error.log | cut -d ' ' -f1` -gt 100 ]; then
head -n 50 /var/log/nginx/error.log
echo '...'
tail -n 50 /var/log/nginx/error.log
else
cat /var/log/nginx/error.log
fi
fi
exit ${EX}

View file

@ -1 +1 @@
core-module-deps
generic

View file

@ -1,3 +0,0 @@
#!/bin/bash
curl --silent --fail -o /dev/null -w "response_code: %{http_code}\n" http://127.0.0.1/

1
debian/tests/light-simple vendored Symbolic link
View file

@ -0,0 +1 @@
generic

5
debian/ufw/nginx vendored
View file

@ -12,3 +12,8 @@ ports=443/tcp
title=Web Server (Nginx, HTTP + HTTPS)
description=Small, but very powerful and efficient web server
ports=80,443/tcp
[Nginx QUIC]
title=Web Server (Nginx, HTTP + HTTPS + QUIC)
description=Small, but very powerful and efficient web server
ports=80,443/tcp|443/udp

View file

@ -1,94 +1,257 @@
# Previously used as signing key up through May 24, 2022
# and may be used in future. Keep this around intentionally as such.
# gpg: pub rsa2048/520A9993A1C052F8 2011-11-27 Maxim Dounin <mdounin@mdounin.ru>
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBE7SKu8BCADQo6x4ZQfAcPlJMLmL8zBEBUS6GyKMMMDtrTh3Yaq481HB54oR
0cpKL05Ff9upjrIzLD5TJUCzYYM9GQOhguDUP8+ZU9JpSz3yO2TvH7WBbUZ8FADf
hblmmUBLNgOWgLo3W+FYhl3mz1GFS2Fvid6Tfn02L8CBAj7jxbjL1Qj/OA/WmLLc
m6BMTqI7IBlYW2vyIOIHasISGiAwZfp0ucMeXXvTtt14LGa8qXVcFnJTdwbf03AS
ljhYrQnKnpl3VpDAoQt8C68YCwjaNJW59hKqWB+XeIJ9CW98+EOAxLAFszSyGanp
rCqPd0numj9TIddjcRkTA/ZbmCWK+xjpVBGXABEBAAG0IU1heGltIERvdW5pbiA8
bWRvdW5pbkBtZG91bmluLnJ1PokBOAQTAQIAIgUCTtIq7wIbAwYLCQgHAwIGFQgC
CQoLBBYCAwECHgECF4AACgkQUgqZk6HAUvj+iwf/b4FS6zVzJ5T0v1vcQGD4ZzXe
D5xMC4BJW414wVMU15rfX7aCdtoCYBNiApPxEd7SwiyxWRhRA9bikUq87JEgmnyV
0iYbHZvCvc1jOkx4WR7E45t1Mi29KBoPaFXA9X5adZkYcOQLDxa2Z8m6LGXnlF6N
tJkxQ8APrjZsdrbDvo3HxU9muPcq49ydzhgwfLwpUs11LYkwB0An9WRPuv3jporZ
/XgI6RfPMZ5NIx+FRRCjn6DnfHboY9rNF6NzrOReJRBhXCi6I+KkHHEnMoyg8XET
9lVkfHTOl81aIZqrAloX3/00TkYWyM2zO9oYpOg6eUFCX/Lw4MJZsTcT5EKVxLkB
DQRO0irvAQgA0LjCc8S6oZzjiap2MjRNhRFA5BYjXZRZBdKF2VP74avt2/RELq8G
W0n7JWmKn6vvrXabEGLyfkCngAhTq9tJ/K7LPx/bmlO5+jboO/1inH2BTtLiHjAX
vicXZk3oaZt2Sotx5mMI3yzpFQRVqZXsi0LpUTPJEh3oS8IdYRjslQh1A7P5hfCZ
wtzwb/hKm8upODe/ITUMuXeWfLuQj/uEU6wMzmfMHb+jlYMWtb+v98aJa2FODeKP
mWCXLa7bliXp1SSeBOEfIgEAmjM6QGlDx5sZhr2Ss2xSPRdZ8DqD7oiRVzmstX1Y
oxEzC0yXfaefC7SgM0nMnaTvYEOYJ9CH3wARAQABiQEfBBgBAgAJBQJO0irvAhsM
AAoJEFIKmZOhwFL4844H/jo8icCcS6eOWvnen7lg0FcCo1fIm4wW3tEmkQdchSHE
CJDq7pgTloN65pwB5tBoT47cyYNZA9eTfJVgRc74q5cexKOYrMC3KuAqWbwqXhkV
s0nkWxnOIidTHSXvBZfDFA4Idwte94Thrzf8Pn8UESudTiqrWoCBXk2UyVsl03gJ
blSJAeJGYPPeo+Yj6m63OWe2+/S2VTgmbPS/RObn0Aeg7yuff0n5+ytEt2KL51gO
QE2uIxTCawHr12PsllPkbqPk/PagIttfEJqn9b0CrqPC3HREePb2aMJ/Ctw/76CO
wn0mtXeIXLCTvBmznXfaMKllsqbsy2nCJ2P2uJjOntw=
=NeQn
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
vcV0wl+DODz9hw==
=oWlI
-----END PGP PUBLIC KEY BLOCK-----
# First observed on May 24, 2022
#
# pub rsa3072 2018-05-07 [SC] [expires: 2027-05-17]
# 13C82A63B603576156E30A4EA0EA981B66B0D967
#uid [ unknown] Konstantin Pavlov <thresh@nginx.com>
#uid [ unknown] Konstantin Pavlov <k.pavlov@f5.com>
#sub rsa3072 2018-05-07 [E] [expires: 2027-05-17]
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
RLqjzrWSHmPGClI=
=J2qy
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
ozw9yNdOZmnk2Prj7+mBuchbT3BJOQ==
=AgHy
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
UYda9m8fOnaIew==
=TEOn
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGKE4psBEADpHSM/IxFD1nXBmnODYXzcl2A+6b6m9m1m2Y4Dlr0ed+y5Lxne
QidE9I74A2KSm6+eHW2yh4i1ZwZbmwpmQqM+j5BMt7axoXOdKSyN+fYtUakzNbBN
EDRKT79q/zIzkgTJradHkCQkwF1W3go+qPXjR2ZEnLma9dZED9VNI6PmOpeYaASo
IkEfbKbwa/vPrvnDSSYY6Y02RXSRk5U1NvQgVUTJP9WGK7NlPUcTBDELLQv6fFPU
kjBOel6MecsQ+v8iq4RJF2cbVF0hNjbAiNldjLV74Xd7yWVRlCbdb2agyvQjMNrD
jHSvbEMiNB3R8yBHVW2Zldv8q0XjcwoDfdiZYFJe3lRUYmv6I2p+/DptD4r/3ILI
peGZtSeOdQEw+vvODL/Ehq03anTrzcpZ6sDLfLrYJhYcrltj0/LMUnLDAjciwRUq
XI46EfxwqsdLeqoZFQeO3LOFsh0kJKR2xOrUHIVy84NJ4Gmro6WmUkb1NfdjyHzF
z8Lfbo46NKoTcwFsFF0q74jVVIVNUyIS91DusiMqLCsP8jqDOz/kyP4bOJQ+aUXf
BANn4Ll1TFWsJ417moxz+Pi5sTaI0na8z2XB1N9WPsSml3FS75hJPJshN2T3VIea
zB7GFWqk33ynSDt+cAisG5nsK9fFdcH+t5wm59oobyFbFhKxwX6ROuxlZwARAQAB
tCRTZXJnZXkgS2FuZGF1cm92IDxwbHVrbmV0QG5naW54LmNvbT6JAk4EEwEKADgW
IQTWeGzjA9mpAimY3GzIRk1UmvdcCgUCYoTimwIbAwULCQgHAwUVCgkICwUWAwIB
AAIeAQIXgAAKCRDIRk1UmvdcCqbOD/9Htgk3mWvUFmrApkWQTIDNmLACZ1Sw1PXj
Uqte8StYB0bYY+nmAXs7O5eC2h1ViParl7En1joEEMQQmH0qSnw4X1CM/hA8TAYW
mBPITTNWo/R52WoyWeWGFnFNIperQmuIZc+pXm0VEFVPiX/2DXbCIu+jaXySvlCN
LekmOD4VC7dJS8/ohoaXOR2T8ufS+1CsyPXomEb+COhqRZ3EVBa+k7pnElkFft3Y
a1fR0AgatZFQpy+ukePhK7s/M5RGhDJWHgSAZFkf+X2jVV4NRJ+XsY80gU5DD2ZX
QT6Je6Knxqk7FnWNSxkhReH6Ss5flZSoGDCmJ2AsPtGeUhus2fGqeN+waGKTZC35
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
x0VGHDmuaYQ=
=HmVo
-----END PGP PUBLIC KEY BLOCK-----

0
modules/PLACEHOLDER Normal file
View file

Some files were not shown because too many files have changed in this diff Show more