Compare commits
485 commits
experiment
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
84b0362183 | ||
|
|
ce21ceb30b | ||
|
|
b1188d6377 | ||
|
|
bf4e347d84 | ||
|
|
67b2e7933c | ||
|
|
653827e5a8 | ||
|
|
bfbdc5aef2 | ||
|
|
b3e6c7ec5b | ||
|
|
54cc798970 | ||
|
|
6c57927b8d | ||
|
|
3ef9946d9d | ||
|
|
c789199d37 | ||
|
|
58f592a8ab | ||
|
|
c5cca14382 | ||
|
|
191713f275 | ||
|
|
be95fff101 | ||
|
|
215777eecb | ||
|
|
2939b5f242 | ||
|
|
92496d21cf | ||
|
|
d2631d1b03 | ||
|
|
9fb3b99b3d | ||
|
|
215a9620ef | ||
|
|
1518af2753 | ||
|
|
2fe36c4448 | ||
|
|
2fb9d97244 | ||
|
|
359eb3866f | ||
|
|
71f2059cf8 | ||
|
|
f1e2f6cbb9 | ||
|
|
65bcb0d8dd | ||
|
|
9670e707d6 | ||
|
|
f180e25eb4 | ||
|
|
df67526348 | ||
|
|
0722a5648d | ||
|
|
9cd731914a | ||
|
|
6e88f6d858 | ||
|
|
6bb737822f | ||
|
|
a079a02186 | ||
|
|
7137628c08 | ||
|
|
80408ba19f | ||
|
|
b3d7b0f3ed | ||
|
|
1b2c31e354 | ||
|
|
45c7770c5e | ||
|
|
363e53be5d | ||
|
|
07bdbe9491 | ||
|
|
1b77cc4256 | ||
|
|
2a1513acc8 | ||
|
|
6ef563d4f4 | ||
|
|
3e7838a6b2 | ||
|
|
9ede767588 | ||
|
|
5651e6f455 | ||
|
|
6ccf66d20e | ||
|
|
2d4405e08a | ||
|
|
899ebe0261 | ||
|
|
880afec3d7 | ||
|
|
f5ed2727e5 | ||
|
|
2148a071bf | ||
|
|
5c050148b6 | ||
|
|
9b80dfac5a | ||
|
|
b023f3fbf6 | ||
|
|
7dc4f2ecb7 | ||
|
|
3fb6af3d34 | ||
|
|
a6a3352563 | ||
|
|
dad830baa6 | ||
|
|
4c1fc35cb6 | ||
|
|
e06e0da2ab | ||
|
|
0f09f394ed | ||
|
|
443e5c11eb | ||
|
|
dd2f4866aa | ||
|
|
a6bc03f8fb | ||
|
|
cd2d231dd0 | ||
|
|
488a716b96 | ||
|
|
0b33ebb4a3 | ||
|
|
fbe69d2fe0 | ||
|
|
ea0383bdb1 | ||
|
|
14846e923d | ||
|
|
5953afe398 | ||
|
|
192281805a | ||
|
|
9515e05cd0 | ||
|
|
0c9954b9d7 | ||
|
|
81aeb5321d | ||
|
|
b1313a97a6 | ||
|
|
6f007a8184 | ||
|
|
53a637ae66 | ||
|
|
60b5a28e2d | ||
|
|
f3ce71ad91 | ||
|
|
1c1713f747 | ||
|
|
dbecf37340 | ||
|
|
f72db03173 | ||
|
|
1af9890890 | ||
|
|
1669ce81fa | ||
|
|
d99a0ddc0b | ||
|
|
8c4549c82a | ||
|
|
7b0bfbb9f3 | ||
|
|
ed6370703d | ||
|
|
9d8220a199 | ||
|
|
82149d89bf | ||
|
|
b8d9144432 | ||
|
|
c40dd6a74f | ||
|
|
3f8de1c086 | ||
|
|
2d48a8c8ec | ||
|
|
54146b604b | ||
|
|
d6229b0698 | ||
|
|
b4078d94d4 | ||
|
|
bb973756e2 | ||
|
|
9fe5d1ba93 | ||
|
|
7478c72e84 | ||
|
|
557d688577 | ||
|
|
ba3751d77a | ||
|
|
8094197df9 | ||
|
|
3fdf9b9553 | ||
|
|
8cce84b858 | ||
|
|
9a5dedf461 | ||
|
|
c8b4d1401b | ||
|
|
b4368782e6 | ||
|
|
c1f58a85e1 | ||
|
|
bd50f6ef76 | ||
|
|
57e87d08df | ||
|
|
5864a7b5b0 | ||
|
|
f215469ef5 | ||
|
|
834bbcee5b | ||
|
|
bfcd400270 | ||
|
|
bb65ab50f4 | ||
|
|
d298d6b51b | ||
|
|
ed087b074e | ||
|
|
c7f0bac49b | ||
|
|
3a3786f1d4 | ||
|
|
309c257646 | ||
|
|
cd33a3034d | ||
|
|
40664a0df5 | ||
|
|
4ce2e9f8f5 | ||
|
|
0a2666b12c | ||
|
|
473f36a7d1 | ||
|
|
5f65c2c182 | ||
|
|
b6e0209bf2 | ||
|
|
820fb1eaab | ||
|
|
f7740951fb | ||
|
|
7ceb830e66 | ||
|
|
b0a64680b5 | ||
|
|
980bcea7f6 | ||
|
|
d720b646a5 | ||
|
|
1088db1699 | ||
|
|
9373935883 | ||
|
|
6bab81e56d | ||
|
|
94f4fc97bb | ||
|
|
8fefc3d77b | ||
|
|
a71d85a87f | ||
|
|
9cb0e1d9ee | ||
|
|
16ee97c874 | ||
|
|
7e238bfad9 | ||
|
|
c412740e4e | ||
|
|
32e7cc8921 | ||
|
|
e907e5063e | ||
|
|
e5c631271d | ||
|
|
ef3bb53436 | ||
|
|
ec0569d08d | ||
|
|
280d76fff3 | ||
|
|
f313b00cf3 | ||
|
|
50a7f05bb5 | ||
|
|
de8448d5bc | ||
|
|
2fe562a265 | ||
|
|
59d6bf43ae | ||
|
|
bfb15ce426 | ||
|
|
df50b02828 | ||
|
|
edf2683169 | ||
|
|
9090d6f143 | ||
|
|
804090a0ff | ||
|
|
881aa23e4b | ||
|
|
8e50af0215 | ||
|
|
dbb13b38d7 | ||
|
|
8273ea9b0e | ||
|
|
9d9704050f | ||
|
|
2572ddf3ff | ||
|
|
519c5d005b | ||
|
|
21195469f2 | ||
|
|
096c566945 | ||
|
|
4eef3437c0 | ||
|
|
b975df6df9 | ||
|
|
4a172ade6f | ||
|
|
7d7692e5fd | ||
|
|
46f12a0dc9 | ||
|
|
10a2613f37 | ||
|
|
34bfbac550 | ||
|
|
4fa2618502 | ||
|
|
075c5d85db | ||
|
|
11ca3f5693 | ||
|
|
ccd8b06890 | ||
|
|
2e0b1943b0 | ||
|
|
616ee02725 | ||
|
|
58657d6178 | ||
|
|
6c68d264f3 | ||
|
|
f868709a45 | ||
|
|
6b40792634 | ||
|
|
65aa43c3d5 | ||
|
|
ad7d6fcf98 | ||
|
|
b99e3ad524 | ||
|
|
393320b207 | ||
|
|
cb417c7e2c | ||
|
|
6d3c163fd3 | ||
|
|
f6fb6fb8d9 | ||
|
|
70c390852c | ||
|
|
fa37bc17ab | ||
|
|
c2ce778dcb | ||
|
|
a056949f1b | ||
|
|
dce642e642 | ||
|
|
273e508834 | ||
|
|
c3f0a00120 | ||
|
|
4243cedb55 | ||
|
|
1755a81da7 | ||
|
|
c2f4bc019b | ||
|
|
974e91ad9d | ||
|
|
304ba44d13 | ||
|
|
cc9cec6999 | ||
|
|
a8134e4741 | ||
|
|
8ac7c1efb5 | ||
|
|
372da465bf | ||
|
|
fe71c4981f | ||
|
|
dbf15d0b7a | ||
|
|
6cad8ef578 | ||
|
|
d9b4c476c1 | ||
|
|
9867fd4940 | ||
|
|
212327ed57 | ||
|
|
caf389149a | ||
|
|
a316cb99e4 | ||
|
|
08de4d4bc7 | ||
|
|
36887b5cd8 | ||
|
|
13a5fc3501 | ||
|
|
c9a408aa6f | ||
|
|
861f1be869 | ||
|
|
43b9a879c9 | ||
|
|
142c95ade0 | ||
|
|
0e2eaec4b2 | ||
|
|
0d813834ef | ||
|
|
461acc4f51 | ||
|
|
e9e5491b5e | ||
|
|
ff7cd7012d | ||
|
|
88d4d1577a | ||
|
|
ccd6718920 | ||
|
|
035ed7f34a | ||
|
|
1a3b001414 | ||
|
|
42508c8556 | ||
|
|
172eb7b12a | ||
|
|
7df2636a9d | ||
|
|
bf9c433dbb | ||
|
|
83ca2994f8 | ||
|
|
b1ee4a4291 | ||
|
|
9f1044b940 | ||
|
|
ed5bc15213 | ||
|
|
509adba304 | ||
|
|
15c55ec59b | ||
|
|
2784d3f935 | ||
|
|
87b5e38f6d | ||
|
|
d4b9d6a1da | ||
|
|
333875401c | ||
|
|
4b7212e745 | ||
|
|
20eb8ab414 | ||
|
|
a8ebc4ba0c | ||
|
|
c3f9fc730b | ||
|
|
5eec971e27 | ||
|
|
a013b18ff6 | ||
|
|
7224e5e7ca | ||
|
|
c394d8d999 | ||
|
|
5900bc832a | ||
|
|
24d9bd0290 | ||
|
|
f406308220 | ||
|
|
deedff451f | ||
|
|
493d6c7b86 | ||
|
|
9b87224f4f | ||
|
|
9a6a526958 | ||
|
|
aaaac9a28f | ||
|
|
78d84c5752 | ||
|
|
2c5ea38623 | ||
|
|
4514c0f658 | ||
|
|
ad330f7cb1 | ||
|
|
9c33aafeff | ||
|
|
747ca190d0 | ||
|
|
45005f76d4 | ||
|
|
9c7d79dce0 | ||
|
|
1fcb59adce | ||
|
|
48b9b6e3ea | ||
|
|
8735246ec0 | ||
|
|
9bc813d5a2 | ||
|
|
528e57d73d | ||
|
|
9cb8bb9efc | ||
|
|
c85dfc1d2b | ||
|
|
697ed23dad | ||
|
|
5c35f1696f | ||
|
|
2a278d9a55 | ||
|
|
7e21f77a90 | ||
|
|
98c979b948 | ||
|
|
c3be1137f3 | ||
|
|
2308f65897 | ||
|
|
ced892ac0d | ||
|
|
b58e677848 | ||
|
|
054b32430f | ||
|
|
6a0621d227 | ||
|
|
31e3a6a61b | ||
|
|
bc5f19ef77 | ||
|
|
4f1a2c590c | ||
|
|
4ea741ae27 | ||
|
|
bd32060ee7 | ||
|
|
a13d46c865 | ||
|
|
a9e81f1e3e | ||
|
|
4499fb4947 | ||
|
|
976d4826bb | ||
|
|
7bc0cfe077 | ||
|
|
70f87643c9 | ||
|
|
a63400c839 | ||
|
|
16da4dccd2 | ||
|
|
e5cbfb9f4b | ||
|
|
0b739c803e | ||
|
|
ecdfceccf1 | ||
|
|
da49114fdc | ||
|
|
28cea613e4 | ||
|
|
d5edfb4e7a | ||
|
|
371e61084f | ||
|
|
0c7efeffcd | ||
|
|
aa1f93ee24 | ||
|
|
bfdc885afc | ||
|
|
7df3da6863 | ||
|
|
d08f16833f | ||
|
|
704b0f0e37 | ||
|
|
b760bb04de | ||
|
|
f039c694b2 | ||
|
|
fd2d73b10f | ||
|
|
886b03658e | ||
|
|
cc65b80eb0 | ||
|
|
d9b51eb2ed | ||
|
|
6930b5ac14 | ||
|
|
8dfca737ef | ||
|
|
6982ab38dd | ||
|
|
b39ced7d98 | ||
|
|
a681a84cf0 | ||
|
|
a2ddfe2d0e | ||
|
|
3edca8428c | ||
|
|
478b737722 | ||
|
|
9fbad86c59 | ||
|
|
1459087c8f | ||
|
|
e3540f5188 | ||
|
|
4851b6ec88 | ||
|
|
c6872b4f53 | ||
|
|
134d203c26 | ||
|
|
693c482e5c | ||
|
|
8838bdc5f1 | ||
|
|
ead863a42c | ||
|
|
dd794d9830 | ||
|
|
5e6d8fe10a | ||
|
|
bc6e1b3c08 | ||
|
|
6ac8972bb0 | ||
|
|
3c7832e4c7 | ||
|
|
f1ae99061b | ||
|
|
13ba480abc | ||
|
|
b283023b77 | ||
|
|
f33d2ab408 | ||
|
|
b575cfe355 | ||
|
|
403f780a46 | ||
|
|
d089e10044 | ||
|
|
52a04bd90d | ||
|
|
7f0bb450a9 | ||
|
|
12e9c91f45 | ||
|
|
2b4e972bd3 | ||
|
|
3ef09c0f69 | ||
|
|
b58e974712 | ||
|
|
e5f8119f92 | ||
|
|
55ef39e8e1 | ||
|
|
f6841c97e2 | ||
|
|
06b6f5670e | ||
|
|
c9fc21913a | ||
|
|
bfd112b793 | ||
|
|
07d0cb5b71 | ||
|
|
132704ab76 | ||
|
|
85ba845433 | ||
|
|
b2a3e22c47 | ||
|
|
2a8a5799e7 | ||
|
|
c717ecb926 | ||
|
|
deba07f09f | ||
|
|
71e4915c0f | ||
|
|
d2bacdb1cf | ||
|
|
214580d479 | ||
|
|
62a54a8ba6 | ||
|
|
52307bcf97 | ||
|
|
76804da3f8 | ||
|
|
ff8b896b2b | ||
|
|
04c8606039 | ||
|
|
969f3934b1 | ||
|
|
1f43924c71 | ||
|
|
3f36d553d4 | ||
|
|
6fac1fb9f0 | ||
|
|
0b00911581 | ||
|
|
df764921f3 | ||
|
|
fd3bbc2f43 | ||
|
|
5f4d461c67 | ||
|
|
4ce7282be9 | ||
|
|
f6cff46e22 | ||
|
|
5d21039949 | ||
|
|
87dc3692ff | ||
|
|
6d142fab1b | ||
|
|
e36dee7443 | ||
|
|
bc3cf7aac7 | ||
|
|
52cc96d9b8 | ||
|
|
75d123cd1b | ||
|
|
4918bc1382 | ||
|
|
58f11854b6 | ||
|
|
7207dbf3b4 | ||
|
|
94e64517a4 | ||
|
|
063c1e94b6 | ||
|
|
0091e68c20 | ||
|
|
46c038d54e | ||
|
|
3ae03ddcfe | ||
|
|
a051533bf7 | ||
|
|
9120a3de9b | ||
|
|
6e014f97a7 | ||
|
|
bb56376490 | ||
|
|
1292f53fbc | ||
|
|
1746e53baa | ||
|
|
fdf581d046 | ||
|
|
55e1981acb | ||
|
|
bcf5fd16c3 | ||
|
|
510d68a971 | ||
|
|
d26992910e | ||
|
|
5b9f0b4827 | ||
|
|
0490248e0f | ||
|
|
7404f8bd77 | ||
|
|
1b9fa09ac5 | ||
|
|
c94e9b6bfd | ||
|
|
717fde6db4 | ||
|
|
6f5e080ac8 | ||
|
|
6648d2471a | ||
|
|
f81b4fb99a | ||
|
|
69c4661396 | ||
|
|
ee4b10edd7 | ||
|
|
72b4f71671 | ||
|
|
5fb0700fb2 | ||
|
|
8acbe3fbc4 | ||
|
|
33799993fc | ||
|
|
7f899937ab | ||
|
|
794cca0ebf | ||
|
|
08d6a8fe7a | ||
|
|
9f10b31488 | ||
|
|
b7b97c6c79 | ||
|
|
dfa79bec5c | ||
|
|
08248c9d96 | ||
|
|
10af9c3bef | ||
|
|
f056335a38 | ||
|
|
bf0c6fce6e | ||
|
|
0305fe8ea3 | ||
|
|
515a80bc0a | ||
|
|
e71a3e89c7 | ||
|
|
a5c72db783 | ||
|
|
cacbf319db | ||
|
|
1c5a8493ca | ||
|
|
2b0dc70024 | ||
|
|
2a7340c231 | ||
|
|
3582062c0e | ||
|
|
3ebf96c773 | ||
|
|
ee4f08f8b4 | ||
|
|
9ad7cddbce | ||
|
|
22aae23648 | ||
|
|
2005e7e35d | ||
|
|
e60711fcc7 | ||
|
|
7614ff61a9 | ||
|
|
70cb0befe7 | ||
|
|
75a3ff5eaa | ||
|
|
2a34dcb90f | ||
|
|
ef8a520c38 | ||
|
|
a17bcc8bee | ||
|
|
ec292afcb9 | ||
|
|
95f7f656da | ||
|
|
4ec25acef1 | ||
|
|
3d12f812d7 | ||
|
|
ab3dccab6a | ||
|
|
5ccd94c7e9 | ||
|
|
f4979c7c96 | ||
|
|
d546f527ee | ||
|
|
1dc67ccb2a | ||
|
|
22fe275a65 | ||
|
|
499c942816 | ||
|
|
accf9ea733 | ||
|
|
57a32c6bb8 | ||
|
|
c7803ecc60 | ||
|
|
5dcee0ba0a | ||
|
|
1084313b41 | ||
|
|
05b6bb9e3b | ||
|
|
ad6afaad13 | ||
|
|
501f9c7a40 | ||
|
|
6687faf49f |
1652 changed files with 149212 additions and 212148 deletions
10
.gitignore
vendored
Normal file
10
.gitignore
vendored
Normal 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
483
.hgtags
Normal 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
|
||||
1411
CHANGES.ru
1411
CHANGES.ru
File diff suppressed because it is too large
Load diff
4
LICENSE
4
LICENSE
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright (C) 2002-2017 Igor Sysoev
|
||||
* Copyright (C) 2011-2017 Nginx, Inc.
|
||||
* Copyright (C) 2002-2021 Igor Sysoev
|
||||
* Copyright (C) 2011-2024 Nginx, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
|
|
|||
|
|
@ -62,7 +62,6 @@ ngx_include_opt="-I"
|
|||
ngx_objout="-o"
|
||||
ngx_binout="-e"
|
||||
ngx_objext="obj"
|
||||
ngx_binext=".exe"
|
||||
|
||||
ngx_long_start='@&&|
|
||||
'
|
||||
|
|
|
|||
|
|
@ -5,8 +5,9 @@
|
|||
# clang
|
||||
|
||||
|
||||
NGX_CLANG_VER=`$CC -v 2>&1 | grep '\(clang\|LLVM\) version' 2>&1 \
|
||||
| sed -e 's/^.* version \(.*\)/\1/'`
|
||||
NGX_CLANG_VER=`$CC -v 2>&1 | grep 'version' 2>&1 \
|
||||
| sed -n -e 's/^.*clang version \(.*\)/\1/p' \
|
||||
-e 's/^.*LLVM version \(.*\)/\1/p'`
|
||||
|
||||
echo " + clang version: $NGX_CLANG_VER"
|
||||
|
||||
|
|
|
|||
38
auto/cc/conf
38
auto/cc/conf
|
|
@ -117,7 +117,7 @@ else
|
|||
. auto/cc/acc
|
||||
;;
|
||||
|
||||
msvc*)
|
||||
msvc)
|
||||
# MSVC++ 6.0 SP2, MSVC++ Toolkit 2003
|
||||
|
||||
. auto/cc/msvc
|
||||
|
|
@ -178,21 +178,25 @@ if [ "$NGX_PLATFORM" != win32 ]; then
|
|||
fi
|
||||
|
||||
|
||||
ngx_feature="gcc builtin atomic operations"
|
||||
ngx_feature_name=NGX_HAVE_GCC_ATOMIC
|
||||
ngx_feature_run=yes
|
||||
ngx_feature_incs=
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="long n = 0;
|
||||
if (!__sync_bool_compare_and_swap(&n, 0, 1))
|
||||
return 1;
|
||||
if (__sync_fetch_and_add(&n, 1) != 1)
|
||||
return 1;
|
||||
if (n != 2)
|
||||
return 1;
|
||||
__sync_synchronize();"
|
||||
. auto/feature
|
||||
if [ "$NGX_CC_NAME" = "sunc" ]; then
|
||||
echo "checking for gcc builtin atomic operations ... disabled"
|
||||
else
|
||||
ngx_feature="gcc builtin atomic operations"
|
||||
ngx_feature_name=NGX_HAVE_GCC_ATOMIC
|
||||
ngx_feature_run=yes
|
||||
ngx_feature_incs=
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="long n = 0;
|
||||
if (!__sync_bool_compare_and_swap(&n, 0, 1))
|
||||
return 1;
|
||||
if (__sync_fetch_and_add(&n, 1) != 1)
|
||||
return 1;
|
||||
if (n != 2)
|
||||
return 1;
|
||||
__sync_synchronize();"
|
||||
. auto/feature
|
||||
fi
|
||||
|
||||
|
||||
if [ "$NGX_CC_NAME" = "ccc" ]; then
|
||||
|
|
@ -209,7 +213,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
|
|||
var(0, buf, \"%d\", 1);
|
||||
if (buf[0] != '1') return 1"
|
||||
. auto/feature
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
ngx_feature="gcc variadic macros"
|
||||
|
|
|
|||
22
auto/cc/msvc
22
auto/cc/msvc
|
|
@ -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
|
||||
|
|
@ -108,7 +123,7 @@ CORE_LIBS="$CORE_LIBS kernel32.lib user32.lib"
|
|||
# msvc under Wine issues
|
||||
# C1902: Program database manager mismatch; please check your installation
|
||||
if [ -z "$NGX_WINE" ]; then
|
||||
CFLAGS="$CFLAGS -Zi"
|
||||
CFLAGS="$CFLAGS -Zi -Fd$NGX_OBJS/nginx.pdb"
|
||||
CORE_LINK="$CORE_LINK -debug"
|
||||
fi
|
||||
|
||||
|
|
@ -142,7 +157,6 @@ ngx_pic_opt=
|
|||
ngx_objout="-Fo"
|
||||
ngx_binout="-Fe"
|
||||
ngx_objext="obj"
|
||||
ngx_binext=".exe"
|
||||
|
||||
ngx_long_start='@<<
|
||||
'
|
||||
|
|
|
|||
|
|
@ -44,7 +44,11 @@ elif `$CC -v 2>&1 | grep 'gcc version' >/dev/null 2>&1`; then
|
|||
NGX_CC_NAME=gcc
|
||||
echo " + using GNU C compiler"
|
||||
|
||||
elif `$CC -v 2>&1 | grep '\(clang\|LLVM\) version' >/dev/null 2>&1`; then
|
||||
elif `$CC -v 2>&1 | grep 'clang version' >/dev/null 2>&1`; then
|
||||
NGX_CC_NAME=clang
|
||||
echo " + using Clang C compiler"
|
||||
|
||||
elif `$CC -v 2>&1 | grep 'LLVM version' >/dev/null 2>&1`; then
|
||||
NGX_CC_NAME=clang
|
||||
echo " + using Clang C compiler"
|
||||
|
||||
|
|
|
|||
|
|
@ -84,7 +84,6 @@ ngx_include_opt="-i="
|
|||
ngx_objout="-fo"
|
||||
ngx_binout="-fe="
|
||||
ngx_objext="obj"
|
||||
ngx_binext=".exe"
|
||||
|
||||
ngx_regex_dirsep='\\'
|
||||
ngx_dirsep="\\"
|
||||
|
|
|
|||
|
|
@ -8,7 +8,10 @@
|
|||
# Sun C 5.9 SunOS_i386 2007/05/03 Sun Studio 12
|
||||
# Sun C 5.9 SunOS_sparc 2007/05/03
|
||||
# Sun C 5.10 SunOS_i386 2009/06/03 Sun Studio 12.1
|
||||
# Sun C 5.11 SunOS_i386 2010/08/13 Sun Studio 12.2
|
||||
# Sun C 5.11 SunOS_i386 2010/08/13 Oracle Solaris Studio 12.2
|
||||
# Sun C 5.12 SunOS_i386 2011/11/16 Oracle Solaris Studio 12.3
|
||||
# Sun C 5.13 SunOS_i386 2014/10/20 Oracle Solaris Studio 12.4
|
||||
# Sun C 5.14 SunOS_i386 2016/05/31 Oracle Developer Studio 12.5
|
||||
|
||||
NGX_SUNC_VER=`$CC -V 2>&1 | grep 'Sun C' 2>&1 \
|
||||
| sed -e 's/^.* Sun C \(.*\)/\1/'`
|
||||
|
|
|
|||
|
|
@ -48,4 +48,6 @@ default: build
|
|||
|
||||
clean:
|
||||
rm -rf Makefile $NGX_OBJS
|
||||
|
||||
.PHONY: default clean
|
||||
END
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
@ -215,4 +215,6 @@ upgrade:
|
|||
test -f $NGX_PID_PATH.oldbin
|
||||
|
||||
kill -QUIT \`cat $NGX_PID_PATH.oldbin\`
|
||||
|
||||
.PHONY: build install modules upgrade
|
||||
END
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ if [ $USE_PCRE = YES -o $PCRE != NONE ]; then
|
|||
. auto/lib/pcre/conf
|
||||
|
||||
else
|
||||
if [ $USE_PCRE = DISABLED -a $HTTP_REWRITE = YES ]; then
|
||||
if [ $USE_PCRE = DISABLED -a $HTTP = YES -a $HTTP_REWRITE = YES ]; then
|
||||
|
||||
cat << END
|
||||
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@
|
|||
ngx_feature_incs=
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs="-lprofiler"
|
||||
ngx_feature_test="ProfilerStop()"
|
||||
ngx_feature_test="void ProfilerStop(void);
|
||||
ProfilerStop()"
|
||||
. auto/feature
|
||||
|
||||
|
||||
|
|
@ -45,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"
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@
|
|||
ngx_feature_incs="#include <gd.h>"
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs="-lgd"
|
||||
ngx_feature_test="gdImagePtr img = gdImageCreateFromGifPtr(1, NULL);"
|
||||
ngx_feature_test="gdImagePtr img = gdImageCreateFromGifPtr(1, NULL);
|
||||
(void) img"
|
||||
. auto/feature
|
||||
|
||||
|
||||
|
|
@ -64,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"
|
||||
|
|
@ -76,7 +94,8 @@ if [ $ngx_found = yes ]; then
|
|||
|
||||
ngx_feature="GD WebP support"
|
||||
ngx_feature_name="NGX_HAVE_GD_WEBP"
|
||||
ngx_feature_test="gdImagePtr img = gdImageCreateFromWebpPtr(1, NULL);"
|
||||
ngx_feature_test="gdImagePtr img = gdImageCreateFromWebpPtr(1, NULL);
|
||||
(void) img"
|
||||
. auto/feature
|
||||
|
||||
else
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
ngx_feature_libs="-lxml2 -lxslt"
|
||||
ngx_feature_test="xmlParserCtxtPtr ctxt = NULL;
|
||||
xsltStylesheetPtr sheet = NULL;
|
||||
xmlDocPtr doc;
|
||||
doc = xmlParseChunk(ctxt, NULL, 0, 0);
|
||||
xmlDocPtr doc = NULL;
|
||||
xmlParseChunk(ctxt, NULL, 0, 0);
|
||||
xsltApplyStylesheet(sheet, doc, NULL);"
|
||||
. auto/feature
|
||||
|
||||
|
|
|
|||
|
|
@ -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,14 +40,12 @@ 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"
|
||||
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
|
||||
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
|
||||
CORE_LIBS="$CORE_LIBS $NGX_LIBPTHREAD"
|
||||
|
||||
if [ "$NGX_PLATFORM" = win32 ]; then
|
||||
CORE_LIBS="$CORE_LIBS -lgdi32 -lcrypt32 -lws2_32"
|
||||
|
|
@ -59,7 +64,7 @@ else
|
|||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <openssl/ssl.h>"
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL"
|
||||
ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL $NGX_LIBPTHREAD"
|
||||
ngx_feature_test="SSL_CTX_set_options(NULL, 0)"
|
||||
. auto/feature
|
||||
|
||||
|
|
@ -71,11 +76,13 @@ else
|
|||
ngx_feature_path="/usr/local/include"
|
||||
|
||||
if [ $NGX_RPATH = YES ]; then
|
||||
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lssl -lcrypto $NGX_LIBDL"
|
||||
ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lssl -lcrypto"
|
||||
else
|
||||
ngx_feature_libs="-L/usr/local/lib -lssl -lcrypto $NGX_LIBDL"
|
||||
ngx_feature_libs="-L/usr/local/lib -lssl -lcrypto"
|
||||
fi
|
||||
|
||||
ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
|
||||
|
||||
. auto/feature
|
||||
fi
|
||||
|
||||
|
|
@ -87,11 +94,13 @@ else
|
|||
ngx_feature_path="/usr/pkg/include"
|
||||
|
||||
if [ $NGX_RPATH = YES ]; then
|
||||
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lssl -lcrypto $NGX_LIBDL"
|
||||
ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lssl -lcrypto"
|
||||
else
|
||||
ngx_feature_libs="-L/usr/pkg/lib -lssl -lcrypto $NGX_LIBDL"
|
||||
ngx_feature_libs="-L/usr/pkg/lib -lssl -lcrypto"
|
||||
fi
|
||||
|
||||
ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
|
||||
|
||||
. auto/feature
|
||||
fi
|
||||
|
||||
|
|
@ -103,11 +112,31 @@ else
|
|||
ngx_feature_path="/opt/local/include"
|
||||
|
||||
if [ $NGX_RPATH = YES ]; then
|
||||
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lssl -lcrypto $NGX_LIBDL"
|
||||
ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lssl -lcrypto"
|
||||
else
|
||||
ngx_feature_libs="-L/opt/local/lib -lssl -lcrypto $NGX_LIBDL"
|
||||
ngx_feature_libs="-L/opt/local/lib -lssl -lcrypto"
|
||||
fi
|
||||
|
||||
ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
|
||||
|
||||
. 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
|
||||
|
||||
|
|
@ -116,6 +145,35 @@ else
|
|||
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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
@ -51,7 +64,7 @@ END
|
|||
$OPENSSL/.openssl/include/openssl/ssl.h: $NGX_MAKEFILE
|
||||
cd $OPENSSL \\
|
||||
&& if [ -f Makefile ]; then \$(MAKE) clean; fi \\
|
||||
&& ./config --prefix=$ngx_prefix no-shared $OPENSSL_OPT \\
|
||||
&& ./config --prefix=$ngx_prefix no-shared no-threads $OPENSSL_OPT \\
|
||||
&& \$(MAKE) \\
|
||||
&& \$(MAKE) install_sw LIBDIR=lib
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -4,87 +4,62 @@
|
|||
|
||||
|
||||
if [ $PCRE != NONE ]; then
|
||||
CORE_INCS="$CORE_INCS $PCRE"
|
||||
|
||||
case "$NGX_CC_NAME" in
|
||||
if [ -f $PCRE/src/pcre2.h.generic ]; then
|
||||
|
||||
msvc | owc | bcc)
|
||||
have=NGX_PCRE . auto/have
|
||||
PCRE_LIBRARY=PCRE2
|
||||
|
||||
have=NGX_PCRE . auto/have
|
||||
have=NGX_PCRE2 . auto/have
|
||||
|
||||
if [ "$NGX_PLATFORM" = win32 ]; then
|
||||
have=PCRE2_STATIC . auto/have
|
||||
fi
|
||||
|
||||
CORE_INCS="$CORE_INCS $PCRE/src/"
|
||||
CORE_DEPS="$CORE_DEPS $PCRE/src/pcre2.h"
|
||||
|
||||
case "$NGX_CC_NAME" in
|
||||
|
||||
msvc)
|
||||
LINK_DEPS="$LINK_DEPS $PCRE/src/pcre2-8.lib"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/src/pcre2-8.lib"
|
||||
;;
|
||||
|
||||
*)
|
||||
LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre2-8.a"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/.libs/libpcre2-8.a"
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
else
|
||||
|
||||
PCRE_LIBRARY=PCRE
|
||||
|
||||
have=NGX_PCRE . auto/have
|
||||
|
||||
if [ "$NGX_PLATFORM" = win32 ]; then
|
||||
have=PCRE_STATIC . auto/have
|
||||
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
|
||||
LINK_DEPS="$LINK_DEPS $PCRE/pcre.lib"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre.lib"
|
||||
;;
|
||||
fi
|
||||
|
||||
icc)
|
||||
have=NGX_PCRE . auto/have
|
||||
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
|
||||
CORE_INCS="$CORE_INCS $PCRE"
|
||||
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
|
||||
|
||||
LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre.a"
|
||||
case "$NGX_CC_NAME" in
|
||||
|
||||
echo $ngx_n "checking for PCRE library ...$ngx_c"
|
||||
msvc | owc | bcc)
|
||||
LINK_DEPS="$LINK_DEPS $PCRE/pcre.lib"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre.lib"
|
||||
;;
|
||||
|
||||
if [ -f $PCRE/pcre.h ]; then
|
||||
ngx_pcre_ver=`grep PCRE_MAJOR $PCRE/pcre.h \
|
||||
| sed -e 's/^.*PCRE_MAJOR.* \(.*\)$/\1/'`
|
||||
|
||||
else if [ -f $PCRE/configure.in ]; then
|
||||
ngx_pcre_ver=`grep PCRE_MAJOR= $PCRE/configure.in \
|
||||
| sed -e 's/^.*=\(.*\)$/\1/'`
|
||||
|
||||
else
|
||||
ngx_pcre_ver=`grep pcre_major, $PCRE/configure.ac \
|
||||
| sed -e 's/^.*pcre_major,.*\[\(.*\)\].*$/\1/'`
|
||||
fi
|
||||
fi
|
||||
|
||||
echo " $ngx_pcre_ver major version found"
|
||||
|
||||
# to allow -ipo optimization we link with the *.o but not library
|
||||
|
||||
case "$ngx_pcre_ver" in
|
||||
4|5)
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre.o"
|
||||
;;
|
||||
|
||||
6)
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_chartables.o"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_compile.o"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_exec.o"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_fullinfo.o"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_globals.o"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_tables.o"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_try_flipped.o"
|
||||
;;
|
||||
|
||||
*)
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_chartables.o"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_compile.o"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_exec.o"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_fullinfo.o"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_globals.o"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_tables.o"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_try_flipped.o"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/pcre_newline.o"
|
||||
;;
|
||||
|
||||
esac
|
||||
;;
|
||||
|
||||
*)
|
||||
have=NGX_PCRE . auto/have
|
||||
|
||||
if [ "$NGX_PLATFORM" = win32 ]; then
|
||||
have=PCRE_STATIC . auto/have
|
||||
fi
|
||||
|
||||
CORE_DEPS="$CORE_DEPS $PCRE/pcre.h"
|
||||
LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre.a"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/.libs/libpcre.a"
|
||||
;;
|
||||
|
||||
esac
|
||||
*)
|
||||
LINK_DEPS="$LINK_DEPS $PCRE/.libs/libpcre.a"
|
||||
CORE_LIBS="$CORE_LIBS $PCRE/.libs/libpcre.a"
|
||||
;;
|
||||
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ $PCRE_JIT = YES ]; then
|
||||
have=NGX_HAVE_PCRE_JIT . auto/have
|
||||
|
|
@ -94,8 +69,48 @@ if [ $PCRE != NONE ]; then
|
|||
else
|
||||
|
||||
if [ "$NGX_PLATFORM" != win32 ]; then
|
||||
|
||||
PCRE=NO
|
||||
fi
|
||||
|
||||
if [ $PCRE = NO -a $PCRE2 != DISABLED ]; then
|
||||
|
||||
ngx_feature="PCRE2 library"
|
||||
ngx_feature_name="NGX_PCRE2"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#define PCRE2_CODE_UNIT_WIDTH 8
|
||||
#include <pcre2.h>"
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs="-lpcre2-8"
|
||||
ngx_feature_test="pcre2_code *re;
|
||||
re = pcre2_compile(NULL, 0, 0, NULL, NULL, NULL);
|
||||
if (re == NULL) return 1"
|
||||
. auto/feature
|
||||
|
||||
if [ $ngx_found = no ]; then
|
||||
|
||||
# pcre2-config
|
||||
|
||||
ngx_pcre2_prefix=`pcre2-config --prefix 2>/dev/null`
|
||||
|
||||
if [ -n "$ngx_pcre2_prefix" ]; then
|
||||
ngx_feature="PCRE2 library in $ngx_pcre2_prefix"
|
||||
ngx_feature_path=`pcre2-config --cflags \
|
||||
| sed -n -e 's/.*-I *\([^ ][^ ]*\).*/\1/p'`
|
||||
ngx_feature_libs=`pcre2-config --libs8`
|
||||
. auto/feature
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $ngx_found = yes ]; then
|
||||
have=NGX_PCRE . auto/have
|
||||
CORE_INCS="$CORE_INCS $ngx_feature_path"
|
||||
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
|
||||
PCRE=YES
|
||||
PCRE_LIBRARY=PCRE2
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $PCRE = NO ]; then
|
||||
|
||||
ngx_feature="PCRE library"
|
||||
ngx_feature_name="NGX_PCRE"
|
||||
|
|
@ -167,10 +182,27 @@ 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"
|
||||
PCRE=YES
|
||||
PCRE_LIBRARY=PCRE
|
||||
fi
|
||||
|
||||
if [ $PCRE = YES ]; then
|
||||
|
|
|
|||
|
|
@ -3,36 +3,139 @@
|
|||
# Copyright (C) Nginx, Inc.
|
||||
|
||||
|
||||
case "$NGX_CC_NAME" in
|
||||
if [ $PCRE_LIBRARY = PCRE2 ]; then
|
||||
|
||||
msvc)
|
||||
ngx_makefile=makefile.msvc
|
||||
ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC"
|
||||
ngx_pcre="PCRE=\"$PCRE\""
|
||||
;;
|
||||
# PCRE2
|
||||
|
||||
owc)
|
||||
ngx_makefile=makefile.owc
|
||||
ngx_opt="CPU_OPT=\"$CPU_OPT\""
|
||||
ngx_pcre=`echo PCRE=\"$PCRE\" | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||
;;
|
||||
if [ $NGX_CC_NAME = msvc ]; then
|
||||
|
||||
bcc)
|
||||
ngx_makefile=makefile.bcc
|
||||
ngx_opt="-DCPU_OPT=\"$CPU_OPT\""
|
||||
ngx_pcre=`echo \-DPCRE=\"$PCRE\" | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||
;;
|
||||
# With PCRE2, it is not possible to compile all sources.
|
||||
# Since list of source files changes between versions, we
|
||||
# test files which might not be present.
|
||||
|
||||
*)
|
||||
ngx_makefile=
|
||||
;;
|
||||
ngx_pcre_srcs="pcre2_auto_possess.c \
|
||||
pcre2_chartables.c \
|
||||
pcre2_compile.c \
|
||||
pcre2_config.c \
|
||||
pcre2_context.c \
|
||||
pcre2_dfa_match.c \
|
||||
pcre2_error.c \
|
||||
pcre2_jit_compile.c \
|
||||
pcre2_maketables.c \
|
||||
pcre2_match.c \
|
||||
pcre2_match_data.c \
|
||||
pcre2_newline.c \
|
||||
pcre2_ord2utf.c \
|
||||
pcre2_pattern_info.c \
|
||||
pcre2_string_utils.c \
|
||||
pcre2_study.c \
|
||||
pcre2_substitute.c \
|
||||
pcre2_substring.c \
|
||||
pcre2_tables.c \
|
||||
pcre2_ucd.c \
|
||||
pcre2_valid_utf.c \
|
||||
pcre2_xclass.c"
|
||||
|
||||
esac
|
||||
ngx_pcre_test="pcre2_chkdint.c \
|
||||
pcre2_convert.c \
|
||||
pcre2_extuni.c \
|
||||
pcre2_find_bracket.c \
|
||||
pcre2_script_run.c \
|
||||
pcre2_serialize.c"
|
||||
|
||||
for ngx_src in $ngx_pcre_test
|
||||
do
|
||||
if [ -f $PCRE/src/$ngx_src ]; then
|
||||
ngx_pcre_srcs="$ngx_pcre_srcs $ngx_src"
|
||||
fi
|
||||
done
|
||||
|
||||
ngx_pcre_objs=`echo $ngx_pcre_srcs \
|
||||
| sed -e "s#\([^ ]*\.\)c#\1$ngx_objext#g"`
|
||||
|
||||
ngx_pcre_srcs=`echo $ngx_pcre_srcs \
|
||||
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g"`
|
||||
ngx_pcre_objs=`echo $ngx_pcre_objs \
|
||||
| sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g"`
|
||||
|
||||
cat << END >> $NGX_MAKEFILE
|
||||
|
||||
PCRE_CFLAGS = -O2 -Ob1 -Oi -Gs $LIBC $CPU_OPT
|
||||
PCRE_FLAGS = -DHAVE_CONFIG_H -DPCRE2_STATIC -DPCRE2_CODE_UNIT_WIDTH=8 \\
|
||||
-DHAVE_MEMMOVE
|
||||
|
||||
PCRE_SRCS = $ngx_pcre_srcs
|
||||
PCRE_OBJS = $ngx_pcre_objs
|
||||
|
||||
$PCRE/src/pcre2.h:
|
||||
cd $PCRE/src \\
|
||||
&& copy /y config.h.generic config.h \\
|
||||
&& copy /y pcre2.h.generic pcre2.h \\
|
||||
&& copy /y pcre2_chartables.c.dist pcre2_chartables.c
|
||||
|
||||
$PCRE/src/pcre2-8.lib: $PCRE/src/pcre2.h $NGX_MAKEFILE
|
||||
cd $PCRE/src \\
|
||||
&& cl -nologo -c \$(PCRE_CFLAGS) -I . \$(PCRE_FLAGS) \$(PCRE_SRCS) \\
|
||||
&& link -lib -out:pcre2-8.lib -verbose:lib \$(PCRE_OBJS)
|
||||
|
||||
END
|
||||
|
||||
else
|
||||
|
||||
cat << END >> $NGX_MAKEFILE
|
||||
|
||||
$PCRE/src/pcre2.h: $PCRE/Makefile
|
||||
|
||||
$PCRE/Makefile: $NGX_MAKEFILE
|
||||
cd $PCRE \\
|
||||
&& if [ -f Makefile ]; then \$(MAKE) distclean; fi \\
|
||||
&& CC="\$(CC)" CFLAGS="$PCRE_OPT" \\
|
||||
./configure --disable-shared $PCRE_CONF_OPT
|
||||
|
||||
$PCRE/.libs/libpcre2-8.a: $PCRE/Makefile
|
||||
cd $PCRE \\
|
||||
&& \$(MAKE) libpcre2-8.la
|
||||
|
||||
END
|
||||
|
||||
fi
|
||||
|
||||
|
||||
if [ -n "$ngx_makefile" ]; then
|
||||
else
|
||||
|
||||
cat << END >> $NGX_MAKEFILE
|
||||
# PCRE
|
||||
|
||||
case "$NGX_CC_NAME" in
|
||||
|
||||
msvc)
|
||||
ngx_makefile=makefile.msvc
|
||||
ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC"
|
||||
ngx_pcre="PCRE=\"$PCRE\""
|
||||
;;
|
||||
|
||||
owc)
|
||||
ngx_makefile=makefile.owc
|
||||
ngx_opt="CPU_OPT=\"$CPU_OPT\""
|
||||
ngx_pcre=`echo PCRE=\"$PCRE\" | sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||
;;
|
||||
|
||||
bcc)
|
||||
ngx_makefile=makefile.bcc
|
||||
ngx_opt="-DCPU_OPT=\"$CPU_OPT\""
|
||||
ngx_pcre=`echo \-DPCRE=\"$PCRE\" \
|
||||
| sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||
;;
|
||||
|
||||
*)
|
||||
ngx_makefile=
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
|
||||
if [ -n "$ngx_makefile" ]; then
|
||||
|
||||
cat << END >> $NGX_MAKEFILE
|
||||
|
||||
`echo "$PCRE/pcre.lib: $PCRE/pcre.h $NGX_MAKEFILE" \
|
||||
| sed -e "s/\//$ngx_regex_dirsep/g"`
|
||||
|
|
@ -43,9 +146,9 @@ if [ -n "$ngx_makefile" ]; then
|
|||
|
||||
END
|
||||
|
||||
else
|
||||
else
|
||||
|
||||
cat << END >> $NGX_MAKEFILE
|
||||
cat << END >> $NGX_MAKEFILE
|
||||
|
||||
$PCRE/pcre.h: $PCRE/Makefile
|
||||
|
||||
|
|
@ -61,4 +164,6 @@ $PCRE/.libs/libpcre.a: $PCRE/Makefile
|
|||
|
||||
END
|
||||
|
||||
fi
|
||||
|
||||
fi
|
||||
|
|
|
|||
33
auto/make
33
auto/make
|
|
@ -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
|
||||
|
||||
|
|
@ -229,7 +235,7 @@ build: binary modules manpage
|
|||
binary: $NGX_OBJS${ngx_dirsep}nginx$ngx_binext
|
||||
|
||||
$NGX_OBJS${ngx_dirsep}nginx$ngx_binext: $ngx_deps$ngx_spacer
|
||||
\$(LINK) $ngx_long_start$ngx_binout$NGX_OBJS${ngx_dirsep}nginx$ngx_long_cont$ngx_objs$ngx_libs$ngx_link$ngx_main_link
|
||||
\$(LINK) $ngx_long_start$ngx_binout$NGX_OBJS${ngx_dirsep}nginx$ngx_binext$ngx_long_cont$ngx_objs$ngx_libs$ngx_link$ngx_main_link
|
||||
$ngx_rcc
|
||||
$ngx_long_end
|
||||
|
||||
|
|
@ -313,7 +319,7 @@ $ngx_obj: \$(CORE_DEPS) \$(HTTP_DEPS)$ngx_cont$ngx_src
|
|||
END
|
||||
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
|
|
@ -343,7 +349,7 @@ $ngx_obj: \$(CORE_DEPS) \$(MAIL_DEPS)$ngx_cont$ngx_src
|
|||
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
|
||||
|
||||
END
|
||||
done
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
|
|
@ -373,7 +379,7 @@ $ngx_obj: \$(CORE_DEPS) \$(STREAM_DEPS)$ngx_cont$ngx_src
|
|||
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
|
||||
|
||||
END
|
||||
done
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
|
|
@ -399,7 +405,7 @@ $ngx_obj: \$(CORE_DEPS) $ngx_cont$ngx_src
|
|||
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
|
||||
|
||||
END
|
||||
done
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
|
|
@ -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"`
|
||||
|
|
@ -431,7 +437,7 @@ $ngx_obj: \$(ADDON_DEPS)$ngx_cont$ngx_src
|
|||
$ngx_cc$ngx_tab$ngx_objout$ngx_obj$ngx_tab$ngx_src$NGX_AUX
|
||||
|
||||
END
|
||||
done
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
|
|
@ -502,6 +508,7 @@ fi
|
|||
for ngx_module in $DYNAMIC_MODULES
|
||||
do
|
||||
eval ngx_module_srcs="\$${ngx_module}_SRCS"
|
||||
eval ngx_module_shrd="\$${ngx_module}_SHRD"
|
||||
eval eval ngx_module_libs="\\\"\$${ngx_module}_LIBS\\\""
|
||||
|
||||
eval ngx_module_modules="\$${ngx_module}_MODULES"
|
||||
|
|
@ -567,14 +574,14 @@ END
|
|||
| sed -e "s/\(.*\.\)c/\1$ngx_objext/"`
|
||||
|
||||
ngx_module_objs=
|
||||
for ngx_src in $ngx_module_srcs
|
||||
for ngx_src in $ngx_module_srcs $ngx_module_shrd
|
||||
do
|
||||
case "$ngx_src" in
|
||||
src/*)
|
||||
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`"
|
||||
;;
|
||||
|
|
@ -636,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"`
|
||||
;;
|
||||
|
|
|
|||
44
auto/module
44
auto/module
|
|
@ -17,7 +17,6 @@ if [ "$ngx_module_link" = DYNAMIC ]; then
|
|||
done
|
||||
|
||||
DYNAMIC_MODULES="$DYNAMIC_MODULES $ngx_module"
|
||||
eval ${ngx_module}_SRCS=\"$ngx_module_srcs\"
|
||||
|
||||
eval ${ngx_module}_MODULES=\"$ngx_module_name\"
|
||||
|
||||
|
|
@ -31,6 +30,30 @@ if [ "$ngx_module_link" = DYNAMIC ]; then
|
|||
eval ${ngx_module}_ORDER=\"$ngx_module_order\"
|
||||
fi
|
||||
|
||||
srcs=
|
||||
shrd=
|
||||
for src in $ngx_module_srcs
|
||||
do
|
||||
found=no
|
||||
for old in $DYNAMIC_MODULES_SRCS
|
||||
do
|
||||
if [ $src = $old ]; then
|
||||
found=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $found = no ]; then
|
||||
srcs="$srcs $src"
|
||||
else
|
||||
shrd="$shrd $src"
|
||||
fi
|
||||
done
|
||||
eval ${ngx_module}_SRCS=\"$srcs\"
|
||||
eval ${ngx_module}_SHRD=\"$shrd\"
|
||||
|
||||
DYNAMIC_MODULES_SRCS="$DYNAMIC_MODULES_SRCS $srcs"
|
||||
|
||||
if test -n "$ngx_module_incs"; then
|
||||
CORE_INCS="$CORE_INCS $ngx_module_incs"
|
||||
fi
|
||||
|
|
@ -107,7 +130,24 @@ elif [ "$ngx_module_link" = ADDON ]; then
|
|||
eval ${ngx_module_type}_MODULES=\"\$${ngx_module_type}_MODULES \
|
||||
$ngx_module_name\"
|
||||
|
||||
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_module_srcs"
|
||||
srcs=
|
||||
for src in $ngx_module_srcs
|
||||
do
|
||||
found=no
|
||||
for old in $NGX_ADDON_SRCS
|
||||
do
|
||||
if [ $src = $old ]; then
|
||||
found=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $found = no ]; then
|
||||
srcs="$srcs $src"
|
||||
fi
|
||||
done
|
||||
|
||||
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $srcs"
|
||||
|
||||
if test -n "$ngx_module_incs"; then
|
||||
eval ${ngx_var}_INCS=\"\$${ngx_var}_INCS $ngx_module_incs\"
|
||||
|
|
|
|||
197
auto/modules
197
auto/modules
|
|
@ -102,18 +102,8 @@ if [ $HTTP = YES ]; then
|
|||
fi
|
||||
|
||||
|
||||
if [ $HTTP_SSI = YES ]; then
|
||||
HTTP_POSTPONE=YES
|
||||
fi
|
||||
|
||||
|
||||
if [ $HTTP_SLICE = YES ]; then
|
||||
HTTP_POSTPONE=YES
|
||||
fi
|
||||
|
||||
|
||||
if [ $HTTP_ADDITION = YES ]; then
|
||||
HTTP_POSTPONE=YES
|
||||
if [ $HTTP_V2 = YES -o $HTTP_V3 = YES ]; then
|
||||
HTTP_SRCS="$HTTP_SRCS $HTTP_HUFF_SRCS"
|
||||
fi
|
||||
|
||||
|
||||
|
|
@ -134,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
|
||||
|
|
@ -166,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 \
|
||||
|
|
@ -227,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=
|
||||
|
|
@ -252,13 +255,13 @@ if [ $HTTP = YES ]; then
|
|||
. auto/module
|
||||
fi
|
||||
|
||||
if [ $HTTP_POSTPONE = YES ]; then
|
||||
if :; then
|
||||
ngx_module_name=ngx_http_postpone_filter_module
|
||||
ngx_module_incs=
|
||||
ngx_module_deps=
|
||||
ngx_module_srcs=src/http/ngx_http_postpone_filter_module.c
|
||||
ngx_module_libs=
|
||||
ngx_module_link=$HTTP_POSTPONE
|
||||
ngx_module_link=YES
|
||||
|
||||
. auto/module
|
||||
fi
|
||||
|
|
@ -427,8 +430,7 @@ if [ $HTTP = YES ]; then
|
|||
src/http/v2/ngx_http_v2_module.h"
|
||||
ngx_module_srcs="src/http/v2/ngx_http_v2.c \
|
||||
src/http/v2/ngx_http_v2_table.c \
|
||||
src/http/v2/ngx_http_v2_huff_decode.c \
|
||||
src/http/v2/ngx_http_v2_huff_encode.c \
|
||||
src/http/v2/ngx_http_v2_encode.c \
|
||||
src/http/v2/ngx_http_v2_module.c"
|
||||
ngx_module_libs=
|
||||
ngx_module_link=$HTTP_V2
|
||||
|
|
@ -436,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=
|
||||
|
|
@ -506,6 +534,28 @@ if [ $HTTP = YES ]; then
|
|||
. auto/module
|
||||
fi
|
||||
|
||||
if [ $HTTP_MIRROR = YES ]; then
|
||||
ngx_module_name=ngx_http_mirror_module
|
||||
ngx_module_incs=
|
||||
ngx_module_deps=
|
||||
ngx_module_srcs=src/http/modules/ngx_http_mirror_module.c
|
||||
ngx_module_libs=
|
||||
ngx_module_link=$HTTP_MIRROR
|
||||
|
||||
. auto/module
|
||||
fi
|
||||
|
||||
if :; then
|
||||
ngx_module_name=ngx_http_try_files_module
|
||||
ngx_module_incs=
|
||||
ngx_module_deps=
|
||||
ngx_module_srcs=src/http/modules/ngx_http_try_files_module.c
|
||||
ngx_module_libs=
|
||||
ngx_module_link=YES
|
||||
|
||||
. auto/module
|
||||
fi
|
||||
|
||||
if [ $HTTP_AUTH_REQUEST = YES ]; then
|
||||
ngx_module_name=ngx_http_auth_request_module
|
||||
ngx_module_incs=
|
||||
|
|
@ -720,6 +770,17 @@ if [ $HTTP = YES ]; then
|
|||
. auto/module
|
||||
fi
|
||||
|
||||
if [ $HTTP_GRPC = YES -a $HTTP_V2 = YES ]; then
|
||||
ngx_module_name=ngx_http_grpc_module
|
||||
ngx_module_incs=
|
||||
ngx_module_deps=
|
||||
ngx_module_srcs=src/http/modules/ngx_http_grpc_module.c
|
||||
ngx_module_libs=
|
||||
ngx_module_link=$HTTP_GRPC
|
||||
|
||||
. auto/module
|
||||
fi
|
||||
|
||||
if [ $HTTP_PERL != NO ]; then
|
||||
ngx_module_name=ngx_http_perl_module
|
||||
ngx_module_incs=src/http/modules/perl
|
||||
|
|
@ -843,6 +904,17 @@ if [ $HTTP = YES ]; then
|
|||
. auto/module
|
||||
fi
|
||||
|
||||
if [ $HTTP_UPSTREAM_RANDOM = YES ]; then
|
||||
ngx_module_name=ngx_http_upstream_random_module
|
||||
ngx_module_incs=
|
||||
ngx_module_deps=
|
||||
ngx_module_srcs=src/http/modules/ngx_http_upstream_random_module.c
|
||||
ngx_module_libs=
|
||||
ngx_module_link=$HTTP_UPSTREAM_RANDOM
|
||||
|
||||
. auto/module
|
||||
fi
|
||||
|
||||
if [ $HTTP_UPSTREAM_KEEPALIVE = YES ]; then
|
||||
ngx_module_name=ngx_http_upstream_keepalive_module
|
||||
ngx_module_incs=
|
||||
|
|
@ -954,6 +1026,12 @@ if [ $MAIL != NO ]; then
|
|||
ngx_module_srcs=src/mail/ngx_mail_proxy_module.c
|
||||
|
||||
. auto/module
|
||||
|
||||
ngx_module_name=ngx_mail_realip_module
|
||||
ngx_module_deps=
|
||||
ngx_module_srcs=src/mail/ngx_mail_realip_module.c
|
||||
|
||||
. auto/module
|
||||
fi
|
||||
|
||||
|
||||
|
|
@ -1088,6 +1166,26 @@ 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=
|
||||
ngx_module_srcs=src/stream/ngx_stream_set_module.c
|
||||
ngx_module_libs=
|
||||
ngx_module_link=$STREAM_SET
|
||||
|
||||
. auto/module
|
||||
fi
|
||||
|
||||
if [ $STREAM_UPSTREAM_HASH = YES ]; then
|
||||
ngx_module_name=ngx_stream_upstream_hash_module
|
||||
ngx_module_deps=
|
||||
|
|
@ -1108,6 +1206,16 @@ if [ $STREAM != NO ]; then
|
|||
. auto/module
|
||||
fi
|
||||
|
||||
if [ $STREAM_UPSTREAM_RANDOM = YES ]; then
|
||||
ngx_module_name=ngx_stream_upstream_random_module
|
||||
ngx_module_deps=
|
||||
ngx_module_srcs=src/stream/ngx_stream_upstream_random_module.c
|
||||
ngx_module_libs=
|
||||
ngx_module_link=$STREAM_UPSTREAM_RANDOM
|
||||
|
||||
. auto/module
|
||||
fi
|
||||
|
||||
if [ $STREAM_UPSTREAM_ZONE = YES ]; then
|
||||
have=NGX_STREAM_UPSTREAM_ZONE . auto/have
|
||||
|
||||
|
|
@ -1212,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
|
||||
|
|
|
|||
40
auto/options
40
auto/options
|
|
@ -45,6 +45,8 @@ USE_THREADS=NO
|
|||
|
||||
NGX_FILE_AIO=NO
|
||||
|
||||
QUIC_BPF=NO
|
||||
|
||||
HTTP=YES
|
||||
|
||||
NGX_HTTP_LOG_PATH=
|
||||
|
|
@ -59,8 +61,8 @@ HTTP_CHARSET=YES
|
|||
HTTP_GZIP=YES
|
||||
HTTP_SSL=NO
|
||||
HTTP_V2=NO
|
||||
HTTP_V3=NO
|
||||
HTTP_SSI=YES
|
||||
HTTP_POSTPONE=NO
|
||||
HTTP_REALIP=NO
|
||||
HTTP_XSLT=NO
|
||||
HTTP_IMAGE_FILTER=NO
|
||||
|
|
@ -70,6 +72,7 @@ HTTP_DAV=NO
|
|||
HTTP_ACCESS=YES
|
||||
HTTP_AUTH_BASIC=YES
|
||||
HTTP_AUTH_REQUEST=NO
|
||||
HTTP_MIRROR=YES
|
||||
HTTP_USERID=YES
|
||||
HTTP_SLICE=NO
|
||||
HTTP_AUTOINDEX=YES
|
||||
|
|
@ -85,6 +88,7 @@ HTTP_PROXY=YES
|
|||
HTTP_FASTCGI=YES
|
||||
HTTP_UWSGI=YES
|
||||
HTTP_SCGI=YES
|
||||
HTTP_GRPC=YES
|
||||
HTTP_PERL=NO
|
||||
HTTP_MEMCACHED=YES
|
||||
HTTP_LIMIT_CONN=YES
|
||||
|
|
@ -100,6 +104,7 @@ HTTP_GZIP_STATIC=NO
|
|||
HTTP_UPSTREAM_HASH=YES
|
||||
HTTP_UPSTREAM_IP_HASH=YES
|
||||
HTTP_UPSTREAM_LEAST_CONN=YES
|
||||
HTTP_UPSTREAM_RANDOM=YES
|
||||
HTTP_UPSTREAM_KEEPALIVE=YES
|
||||
HTTP_UPSTREAM_ZONE=YES
|
||||
|
||||
|
|
@ -122,14 +127,19 @@ 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
|
||||
STREAM_UPSTREAM_RANDOM=YES
|
||||
STREAM_UPSTREAM_ZONE=YES
|
||||
STREAM_SSL_PREREAD=NO
|
||||
|
||||
DYNAMIC_MODULES=
|
||||
DYNAMIC_MODULES_SRCS=
|
||||
|
||||
NGX_ADDONS=
|
||||
NGX_ADDON_SRCS=
|
||||
NGX_ADDON_DEPS=
|
||||
DYNAMIC_ADDONS=
|
||||
|
||||
|
|
@ -140,8 +150,10 @@ PCRE=NONE
|
|||
PCRE_OPT=
|
||||
PCRE_CONF_OPT=
|
||||
PCRE_JIT=NO
|
||||
PCRE2=YES
|
||||
|
||||
USE_OPENSSL=NO
|
||||
USE_OPENSSL_QUIC=NO
|
||||
OPENSSL=NONE
|
||||
|
||||
USE_ZLIB=NO
|
||||
|
|
@ -159,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=
|
||||
|
|
@ -204,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"
|
||||
|
|
@ -221,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 ;;
|
||||
|
|
@ -249,6 +266,7 @@ $0: warning: the \"--with-ipv6\" option is deprecated"
|
|||
--without-http_userid_module) HTTP_USERID=NO ;;
|
||||
--without-http_access_module) HTTP_ACCESS=NO ;;
|
||||
--without-http_auth_basic_module) HTTP_AUTH_BASIC=NO ;;
|
||||
--without-http_mirror_module) HTTP_MIRROR=NO ;;
|
||||
--without-http_autoindex_module) HTTP_AUTOINDEX=NO ;;
|
||||
--without-http_status_module) HTTP_STATUS=NO ;;
|
||||
--without-http_geo_module) HTTP_GEO=NO ;;
|
||||
|
|
@ -260,6 +278,7 @@ $0: warning: the \"--with-ipv6\" option is deprecated"
|
|||
--without-http_fastcgi_module) HTTP_FASTCGI=NO ;;
|
||||
--without-http_uwsgi_module) HTTP_UWSGI=NO ;;
|
||||
--without-http_scgi_module) HTTP_SCGI=NO ;;
|
||||
--without-http_grpc_module) HTTP_GRPC=NO ;;
|
||||
--without-http_memcached_module) HTTP_MEMCACHED=NO ;;
|
||||
--without-http_limit_conn_module) HTTP_LIMIT_CONN=NO ;;
|
||||
--without-http_limit_req_module) HTTP_LIMIT_REQ=NO ;;
|
||||
|
|
@ -269,6 +288,8 @@ $0: warning: the \"--with-ipv6\" option is deprecated"
|
|||
--without-http_upstream_ip_hash_module) HTTP_UPSTREAM_IP_HASH=NO ;;
|
||||
--without-http_upstream_least_conn_module)
|
||||
HTTP_UPSTREAM_LEAST_CONN=NO ;;
|
||||
--without-http_upstream_random_module)
|
||||
HTTP_UPSTREAM_RANDOM=NO ;;
|
||||
--without-http_upstream_keepalive_module) HTTP_UPSTREAM_KEEPALIVE=NO ;;
|
||||
--without-http_upstream_zone_module) HTTP_UPSTREAM_ZONE=NO ;;
|
||||
|
||||
|
|
@ -317,10 +338,14 @@ 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 ;;
|
||||
--without-stream_upstream_least_conn_module)
|
||||
STREAM_UPSTREAM_LEAST_CONN=NO ;;
|
||||
--without-stream_upstream_random_module)
|
||||
STREAM_UPSTREAM_RANDOM=NO ;;
|
||||
--without-stream_upstream_zone_module)
|
||||
STREAM_UPSTREAM_ZONE=NO ;;
|
||||
|
||||
|
|
@ -344,6 +369,7 @@ use the \"--with-mail_ssl_module\" option instead"
|
|||
--with-pcre=*) PCRE="$value" ;;
|
||||
--with-pcre-opt=*) PCRE_OPT="$value" ;;
|
||||
--with-pcre-jit) PCRE_JIT=YES ;;
|
||||
--without-pcre2) PCRE2=DISABLED ;;
|
||||
|
||||
--with-openssl=*) OPENSSL="$value" ;;
|
||||
--with-openssl-opt=*) OPENSSL_OPT="$value" ;;
|
||||
|
|
@ -428,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
|
||||
|
|
@ -458,6 +487,7 @@ cat << END
|
|||
--without-http_userid_module disable ngx_http_userid_module
|
||||
--without-http_access_module disable ngx_http_access_module
|
||||
--without-http_auth_basic_module disable ngx_http_auth_basic_module
|
||||
--without-http_mirror_module disable ngx_http_mirror_module
|
||||
--without-http_autoindex_module disable ngx_http_autoindex_module
|
||||
--without-http_geo_module disable ngx_http_geo_module
|
||||
--without-http_map_module disable ngx_http_map_module
|
||||
|
|
@ -468,6 +498,7 @@ cat << END
|
|||
--without-http_fastcgi_module disable ngx_http_fastcgi_module
|
||||
--without-http_uwsgi_module disable ngx_http_uwsgi_module
|
||||
--without-http_scgi_module disable ngx_http_scgi_module
|
||||
--without-http_grpc_module disable ngx_http_grpc_module
|
||||
--without-http_memcached_module disable ngx_http_memcached_module
|
||||
--without-http_limit_conn_module disable ngx_http_limit_conn_module
|
||||
--without-http_limit_req_module disable ngx_http_limit_req_module
|
||||
|
|
@ -479,6 +510,8 @@ cat << END
|
|||
disable ngx_http_upstream_ip_hash_module
|
||||
--without-http_upstream_least_conn_module
|
||||
disable ngx_http_upstream_least_conn_module
|
||||
--without-http_upstream_random_module
|
||||
disable ngx_http_upstream_random_module
|
||||
--without-http_upstream_keepalive_module
|
||||
disable ngx_http_upstream_keepalive_module
|
||||
--without-http_upstream_zone_module
|
||||
|
|
@ -525,10 +558,14 @@ 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
|
||||
--without-stream_upstream_least_conn_module
|
||||
disable ngx_stream_upstream_least_conn_module
|
||||
--without-stream_upstream_random_module
|
||||
disable ngx_stream_upstream_random_module
|
||||
--without-stream_upstream_zone_module
|
||||
disable ngx_stream_upstream_zone_module
|
||||
|
||||
|
|
@ -553,6 +590,7 @@ cat << END
|
|||
--with-pcre=DIR set path to PCRE library sources
|
||||
--with-pcre-opt=OPTIONS set additional build options for PCRE
|
||||
--with-pcre-jit build PCRE with JIT compilation support
|
||||
--without-pcre2 do not use PCRE2 library
|
||||
|
||||
--with-zlib=DIR set path to zlib library sources
|
||||
--with-zlib-opt=OPTIONS set additional build options for zlib
|
||||
|
|
|
|||
28
auto/os/conf
28
auto/os/conf
|
|
@ -41,6 +41,14 @@ case "$NGX_PLATFORM" in
|
|||
'
|
||||
;;
|
||||
|
||||
NetBSD:*)
|
||||
CORE_INCS="$UNIX_INCS"
|
||||
CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
|
||||
CORE_SRCS="$UNIX_SRCS"
|
||||
|
||||
NGX_RPATH=YES
|
||||
;;
|
||||
|
||||
HP-UX:*)
|
||||
# HP/UX
|
||||
have=NGX_HPUX . auto/have_headers
|
||||
|
|
@ -102,6 +110,26 @@ case "$NGX_MACHINE" in
|
|||
NGX_MACH_CACHE_LINE=64
|
||||
;;
|
||||
|
||||
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
|
||||
|
|
|
|||
|
|
@ -44,12 +44,10 @@ if [ $osreldate -gt 300007 ]; then
|
|||
CORE_SRCS="$CORE_SRCS $FREEBSD_SENDFILE_SRCS"
|
||||
fi
|
||||
|
||||
if [ $NGX_FILE_AIO = YES ]; then
|
||||
if [ $osreldate -gt 502103 ]; then
|
||||
echo " + sendfile()'s SF_NODISKIO found"
|
||||
if [ $osreldate -gt 1100093 ]; then
|
||||
echo " + sendfile()'s SF_NODISKIO found"
|
||||
|
||||
have=NGX_HAVE_AIO_SENDFILE . auto/have
|
||||
fi
|
||||
have=NGX_HAVE_SENDFILE_NODISKIO . auto/have
|
||||
fi
|
||||
|
||||
# POSIX semaphores
|
||||
|
|
|
|||
124
auto/os/linux
124
auto/os/linux
|
|
@ -86,6 +86,31 @@ if [ $ngx_found = yes ]; then
|
|||
ee.data.ptr = NULL;
|
||||
epoll_ctl(efd, EPOLL_CTL_ADD, fd, &ee)"
|
||||
. auto/feature
|
||||
|
||||
|
||||
# eventfd()
|
||||
|
||||
ngx_feature="eventfd()"
|
||||
ngx_feature_name="NGX_HAVE_EVENTFD"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <sys/eventfd.h>"
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="(void) eventfd(0, 0)"
|
||||
. auto/feature
|
||||
|
||||
if [ $ngx_found = yes ]; then
|
||||
have=NGX_HAVE_SYS_EVENTFD_H . auto/have
|
||||
fi
|
||||
|
||||
|
||||
if [ $ngx_found = no ]; then
|
||||
|
||||
ngx_feature="eventfd() (SYS_eventfd)"
|
||||
ngx_feature_incs="#include <sys/syscall.h>"
|
||||
ngx_feature_test="(void) SYS_eventfd"
|
||||
. auto/feature
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
|
@ -157,17 +182,37 @@ ngx_feature_test="if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) == -1) return 1"
|
|||
. auto/feature
|
||||
|
||||
|
||||
# sched_setaffinity()
|
||||
# prctl(PR_SET_KEEPCAPS)
|
||||
|
||||
ngx_feature="sched_setaffinity()"
|
||||
ngx_feature_name="NGX_HAVE_SCHED_SETAFFINITY"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <sched.h>"
|
||||
ngx_feature="prctl(PR_SET_KEEPCAPS)"
|
||||
ngx_feature_name="NGX_HAVE_PR_SET_KEEPCAPS"
|
||||
ngx_feature_run=yes
|
||||
ngx_feature_incs="#include <sys/prctl.h>"
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="cpu_set_t mask;
|
||||
CPU_ZERO(&mask);
|
||||
sched_setaffinity(0, sizeof(cpu_set_t), &mask)"
|
||||
ngx_feature_test="if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) == -1) return 1"
|
||||
. auto/feature
|
||||
|
||||
|
||||
# capabilities
|
||||
|
||||
ngx_feature="capabilities"
|
||||
ngx_feature_name="NGX_HAVE_CAPABILITIES"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <linux/capability.h>
|
||||
#include <sys/syscall.h>"
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="struct __user_cap_data_struct data;
|
||||
struct __user_cap_header_struct header;
|
||||
|
||||
header.version = _LINUX_CAPABILITY_VERSION_1;
|
||||
data.effective = CAP_TO_MASK(CAP_NET_RAW);
|
||||
data.permitted = 0;
|
||||
|
||||
(void) header;
|
||||
(void) data;
|
||||
(void) SYS_capset"
|
||||
. auto/feature
|
||||
|
||||
|
||||
|
|
@ -183,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"
|
||||
|
|
|
|||
|
|
@ -11,12 +11,14 @@ CORE_SRCS="$WIN32_SRCS $IOCP_SRCS"
|
|||
OS_CONFIG="$WIN32_CONFIG"
|
||||
NGX_ICONS="$NGX_WIN32_ICONS"
|
||||
SELECT_SRCS=$WIN32_SELECT_SRCS
|
||||
POLL_SRCS=$WIN32_POLL_SRCS
|
||||
|
||||
ngx_pic_opt=
|
||||
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"
|
||||
|
|
@ -30,12 +32,7 @@ case "$NGX_CC_NAME" in
|
|||
esac
|
||||
|
||||
EVENT_MODULES="$EVENT_MODULES $IOCP_MODULE"
|
||||
EVENT_FOUND=YES
|
||||
|
||||
if [ $EVENT_SELECT = NO ]; then
|
||||
CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
|
||||
EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
|
||||
fi
|
||||
#EVENT_FOUND=YES
|
||||
|
||||
have=NGX_HAVE_INET6 . auto/have
|
||||
|
||||
|
|
|
|||
10
auto/sources
10
auto/sources
|
|
@ -83,18 +83,20 @@ 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 \
|
||||
src/event/ngx_event_posted.c \
|
||||
src/event/ngx_event_accept.c \
|
||||
src/event/ngx_event_udp.c \
|
||||
src/event/ngx_event_connect.c \
|
||||
src/event/ngx_event_pipe.c"
|
||||
|
||||
|
|
@ -105,6 +107,7 @@ WIN32_SELECT_SRCS=src/event/modules/ngx_win32_select_module.c
|
|||
|
||||
POLL_MODULE=ngx_poll_module
|
||||
POLL_SRCS=src/event/modules/ngx_poll_module.c
|
||||
WIN32_POLL_SRCS=src/event/modules/ngx_win32_poll_module.c
|
||||
|
||||
KQUEUE_MODULE=ngx_kqueue_module
|
||||
KQUEUE_SRCS=src/event/modules/ngx_kqueue_module.c
|
||||
|
|
@ -253,3 +256,6 @@ NGX_WIN32_RC="src/os/win32/nginx.rc"
|
|||
|
||||
|
||||
HTTP_FILE_CACHE_SRCS=src/http/ngx_http_file_cache.c
|
||||
|
||||
HTTP_HUFF_SRCS="src/http/ngx_http_huff_decode.c
|
||||
src/http/ngx_http_huff_encode.c"
|
||||
|
|
|
|||
|
|
@ -16,9 +16,9 @@ if [ $USE_PCRE = DISABLED ]; then
|
|||
|
||||
else
|
||||
case $PCRE in
|
||||
YES) echo " + using system PCRE library" ;;
|
||||
YES) echo " + using system $PCRE_LIBRARY library" ;;
|
||||
NONE) echo " + PCRE library is not used" ;;
|
||||
*) echo " + using PCRE library: $PCRE" ;;
|
||||
*) echo " + using $PCRE_LIBRARY library: $PCRE" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -17,4 +17,5 @@ END
|
|||
CORE_DEPS="$CORE_DEPS $THREAD_POOL_DEPS"
|
||||
CORE_SRCS="$CORE_SRCS $THREAD_POOL_SRCS"
|
||||
CORE_LIBS="$CORE_LIBS -lpthread"
|
||||
NGX_LIBPTHREAD="-lpthread"
|
||||
fi
|
||||
|
|
|
|||
219
auto/unix
219
auto/unix
|
|
@ -300,6 +300,18 @@ if [ $ngx_found = no ]; then
|
|||
fi
|
||||
|
||||
|
||||
ngx_feature="sched_setaffinity()"
|
||||
ngx_feature_name="NGX_HAVE_SCHED_SETAFFINITY"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <sched.h>"
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="cpu_set_t mask;
|
||||
CPU_ZERO(&mask);
|
||||
sched_setaffinity(0, sizeof(cpu_set_t), &mask)"
|
||||
. auto/feature
|
||||
|
||||
|
||||
ngx_feature="SO_SETFIB"
|
||||
ngx_feature_name="NGX_HAVE_SETFIB"
|
||||
ngx_feature_run=no
|
||||
|
|
@ -330,7 +342,7 @@ ngx_feature_test="setsockopt(0, SOL_SOCKET, SO_ACCEPTFILTER, NULL, 0)"
|
|||
. auto/feature
|
||||
|
||||
|
||||
# NetBSD bind to any address for transparent proxying
|
||||
# OpenBSD bind to any address for transparent proxying
|
||||
|
||||
ngx_feature="SO_BINDANY"
|
||||
ngx_feature_name="NGX_HAVE_TRANSPARENT_PROXY"
|
||||
|
|
@ -342,19 +354,6 @@ ngx_feature_test="setsockopt(0, SOL_SOCKET, SO_BINDANY, NULL, 0)"
|
|||
. auto/feature
|
||||
|
||||
|
||||
# Linux IP_BIND_ADDRESS_NO_PORT
|
||||
|
||||
ngx_feature="IP_BIND_ADDRESS_NO_PORT"
|
||||
ngx_feature_name="NGX_HAVE_IP_BIND_ADDRESS_NO_PORT"
|
||||
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_BIND_ADDRESS_NO_PORT, NULL, 0)"
|
||||
. auto/feature
|
||||
|
||||
|
||||
# Linux transparent proxying
|
||||
|
||||
ngx_feature="IP_TRANSPARENT"
|
||||
|
|
@ -381,6 +380,19 @@ ngx_feature_test="setsockopt(0, IPPROTO_IP, IP_BINDANY, NULL, 0)"
|
|||
. auto/feature
|
||||
|
||||
|
||||
# Linux IP_BIND_ADDRESS_NO_PORT
|
||||
|
||||
ngx_feature="IP_BIND_ADDRESS_NO_PORT"
|
||||
ngx_feature_name="NGX_HAVE_IP_BIND_ADDRESS_NO_PORT"
|
||||
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_BIND_ADDRESS_NO_PORT, NULL, 0)"
|
||||
. auto/feature
|
||||
|
||||
|
||||
# BSD way to get IPv4 datagram destination address
|
||||
|
||||
ngx_feature="IP_RECVDSTADDR"
|
||||
|
|
@ -416,7 +428,10 @@ 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_PKTINFO, NULL, 0)"
|
||||
ngx_feature_test="struct in_pktinfo pkt;
|
||||
pkt.ipi_spec_dst.s_addr = INADDR_ANY;
|
||||
(void) pkt;
|
||||
setsockopt(0, IPPROTO_IP, IP_PKTINFO, NULL, 0)"
|
||||
. auto/feature
|
||||
|
||||
|
||||
|
|
@ -433,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
|
||||
|
|
@ -567,29 +630,6 @@ Currently file AIO is supported on FreeBSD 4.3+ and Linux 2.6.22+ only
|
|||
END
|
||||
exit 1
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
ngx_feature="eventfd()"
|
||||
ngx_feature_name="NGX_HAVE_EVENTFD"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <sys/eventfd.h>"
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="(void) eventfd(0, 0)"
|
||||
. auto/feature
|
||||
|
||||
if [ $ngx_found = yes ]; then
|
||||
have=NGX_HAVE_SYS_EVENTFD_H . auto/have
|
||||
fi
|
||||
|
||||
if [ $ngx_found = no ]; then
|
||||
|
||||
ngx_feature="eventfd() (SYS_eventfd)"
|
||||
ngx_feature_incs="#include <sys/syscall.h>"
|
||||
ngx_feature_test="(void) SYS_eventfd"
|
||||
. auto/feature
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
|
@ -712,17 +752,33 @@ ngx_feature_test="char buf[1]; struct iovec vec[1]; ssize_t n;
|
|||
. auto/feature
|
||||
|
||||
|
||||
ngx_feature="sys_nerr"
|
||||
ngx_feature_name="NGX_SYS_NERR"
|
||||
ngx_feature_run=value
|
||||
ngx_feature_incs='#include <errno.h>
|
||||
#include <stdio.h>'
|
||||
# strerrordesc_np(), introduced in glibc 2.32
|
||||
|
||||
ngx_feature="strerrordesc_np()"
|
||||
ngx_feature_name="NGX_HAVE_STRERRORDESC_NP"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs='#include <string.h>'
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test='printf("%d", sys_nerr);'
|
||||
ngx_feature_test="char *p; p = strerrordesc_np(0);
|
||||
if (p == NULL) return 1"
|
||||
. auto/feature
|
||||
|
||||
|
||||
if [ $ngx_found = no ]; then
|
||||
|
||||
ngx_feature="sys_nerr"
|
||||
ngx_feature_name="NGX_SYS_NERR"
|
||||
ngx_feature_run=value
|
||||
ngx_feature_incs='#include <errno.h>
|
||||
#include <stdio.h>'
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test='printf("%d", sys_nerr);'
|
||||
. auto/feature
|
||||
fi
|
||||
|
||||
|
||||
if [ $ngx_found = no ]; then
|
||||
|
||||
# Cygiwn defines _sys_nerr
|
||||
|
|
@ -738,34 +794,6 @@ if [ $ngx_found = no ]; then
|
|||
fi
|
||||
|
||||
|
||||
if [ $ngx_found = no ]; then
|
||||
|
||||
# Solaris has no sys_nerr
|
||||
ngx_feature='maximum errno'
|
||||
ngx_feature_name=NGX_SYS_NERR
|
||||
ngx_feature_run=value
|
||||
ngx_feature_incs='#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>'
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test='int n;
|
||||
char *p;
|
||||
for (n = 1; n < 1000; n++) {
|
||||
errno = 0;
|
||||
p = strerror(n);
|
||||
if (errno == EINVAL
|
||||
|| p == NULL
|
||||
|| strncmp(p, "Unknown error", 13) == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
printf("%d", n);'
|
||||
. auto/feature
|
||||
fi
|
||||
|
||||
|
||||
ngx_feature="localtime_r()"
|
||||
ngx_feature_name="NGX_HAVE_LOCALTIME_R"
|
||||
ngx_feature_run=no
|
||||
|
|
@ -776,6 +804,30 @@ ngx_feature_test="struct tm t; time_t c=0; localtime_r(&c, &t)"
|
|||
. auto/feature
|
||||
|
||||
|
||||
ngx_feature="clock_gettime(CLOCK_MONOTONIC)"
|
||||
ngx_feature_name="NGX_HAVE_CLOCK_MONOTONIC"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <time.h>"
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts)"
|
||||
. auto/feature
|
||||
|
||||
|
||||
if [ $ngx_found = no ]; then
|
||||
|
||||
# Linux before glibc 2.17, notably CentOS 6
|
||||
|
||||
ngx_feature="clock_gettime(CLOCK_MONOTONIC) in librt"
|
||||
ngx_feature_libs="-lrt"
|
||||
. auto/feature
|
||||
|
||||
if [ $ngx_found = yes ]; then
|
||||
CORE_LIBS="$CORE_LIBS -lrt"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
ngx_feature="posix_memalign()"
|
||||
ngx_feature_name="NGX_HAVE_POSIX_MEMALIGN"
|
||||
ngx_feature_run=no
|
||||
|
|
@ -862,6 +914,7 @@ if [ $ngx_found = no ]; then
|
|||
|
||||
if [ $ngx_found = yes ]; then
|
||||
CORE_LIBS="$CORE_LIBS -lpthread"
|
||||
NGX_LIBPTHREAD="-lpthread"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
@ -903,6 +956,18 @@ ngx_feature_test="int i = FIONBIO; printf(\"%d\", i)"
|
|||
. auto/feature
|
||||
|
||||
|
||||
ngx_feature="ioctl(FIONREAD)"
|
||||
ngx_feature_name="NGX_HAVE_FIONREAD"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <sys/ioctl.h>
|
||||
#include <stdio.h>
|
||||
$NGX_INCLUDE_SYS_FILIO_H"
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="int i = FIONREAD; printf(\"%d\", i)"
|
||||
. auto/feature
|
||||
|
||||
|
||||
ngx_feature="struct tm.tm_gmtoff"
|
||||
ngx_feature_name="NGX_HAVE_GMTOFF"
|
||||
ngx_feature_run=no
|
||||
|
|
@ -949,6 +1014,16 @@ ngx_feature_test="sysconf(_SC_NPROCESSORS_ONLN)"
|
|||
. auto/feature
|
||||
|
||||
|
||||
ngx_feature="sysconf(_SC_LEVEL1_DCACHE_LINESIZE)"
|
||||
ngx_feature_name="NGX_HAVE_LEVEL1_DCACHE_LINESIZE"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs=
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="sysconf(_SC_LEVEL1_DCACHE_LINESIZE)"
|
||||
. auto/feature
|
||||
|
||||
|
||||
ngx_feature="openat(), fstatat()"
|
||||
ngx_feature_name="NGX_HAVE_OPENAT"
|
||||
ngx_feature_run=no
|
||||
|
|
|
|||
168
conf/mime.types
168
conf/mime.types
|
|
@ -1,89 +1,99 @@
|
|||
|
||||
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/png png;
|
||||
image/tiff tif tiff;
|
||||
image/vnd.wap.wbmp wbmp;
|
||||
image/x-icon ico;
|
||||
image/x-jng jng;
|
||||
image/x-ms-bmp bmp;
|
||||
image/svg+xml svg svgz;
|
||||
image/webp webp;
|
||||
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;
|
||||
|
||||
application/font-woff woff;
|
||||
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.ms-excel xls;
|
||||
application/vnd.ms-fontobject eot;
|
||||
application/vnd.ms-powerpoint ppt;
|
||||
application/vnd.wap.wmlc wmlc;
|
||||
application/vnd.google-earth.kml+xml kml;
|
||||
application/vnd.google-earth.kmz kmz;
|
||||
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;
|
||||
font/woff woff;
|
||||
font/woff2 woff2;
|
||||
|
||||
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/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/vnd.openxmlformats-officedocument.wordprocessingml.document docx;
|
||||
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;
|
||||
application/vnd.openxmlformats-officedocument.presentationml.presentation pptx;
|
||||
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/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;
|
||||
}
|
||||
|
|
|
|||
7
configure
vendored
7
configure
vendored
|
|
@ -36,7 +36,7 @@ if test -z "$NGX_PLATFORM"; then
|
|||
NGX_PLATFORM="$NGX_SYSTEM:$NGX_RELEASE:$NGX_MACHINE";
|
||||
|
||||
case "$NGX_SYSTEM" in
|
||||
MINGW32_*)
|
||||
MINGW32_* | MINGW64_* | MSYS_*)
|
||||
NGX_PLATFORM=win32
|
||||
;;
|
||||
esac
|
||||
|
|
@ -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
|
||||
|
|
@ -87,6 +88,10 @@ have=NGX_PID_PATH value="\"$NGX_PID_PATH\"" . auto/define
|
|||
have=NGX_LOCK_PATH value="\"$NGX_LOCK_PATH\"" . auto/define
|
||||
have=NGX_ERROR_LOG_PATH value="\"$NGX_ERROR_LOG_PATH\"" . auto/define
|
||||
|
||||
if [ ".$NGX_ERROR_LOG_PATH" = "." ]; then
|
||||
have=NGX_ERROR_LOG_STDERR . auto/have
|
||||
fi
|
||||
|
||||
have=NGX_HTTP_LOG_PATH value="\"$NGX_HTTP_LOG_PATH\"" . auto/define
|
||||
have=NGX_HTTP_CLIENT_TEMP_PATH value="\"$NGX_HTTP_CLIENT_TEMP_PATH\""
|
||||
. auto/define
|
||||
|
|
|
|||
69
configure.docker.sh
Executable file
69
configure.docker.sh
Executable 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
66
configure.sh
Executable 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
20
debian/README.Packaging → debian/README.source
vendored
20
debian/README.Packaging → debian/README.source
vendored
|
|
@ -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).
|
||||
|
||||
19
debian/apport/source_nginx.py
vendored
Normal file
19
debian/apport/source_nginx.py
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
'''
|
||||
apport package hook for nginx packages
|
||||
|
||||
Copyright (c) 2015, Thomas Ward <teward@ubuntu.com>
|
||||
'''
|
||||
|
||||
import apport.hookutils
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
def add_info(report, ui):
|
||||
if (report['Package'].split()[0] != 'nginx-common'
|
||||
and report['ProblemType'] == 'Package'
|
||||
and os.path.isdir('/run/systemd/system')):
|
||||
report['Journalctl_Nginx.txt'] = apport.hookutils.command_output(
|
||||
['journalctl', '-xe', '--unit=nginx.service'])
|
||||
report['SystemctlStatusFull_Nginx.txt'] = subprocess.Popen(
|
||||
['systemctl', '-l', 'status', 'nginx.service'],
|
||||
stdout=subprocess.PIPE).communicate()[0]
|
||||
800
debian/changelog
vendored
800
debian/changelog
vendored
|
|
@ -1,9 +1,786 @@
|
|||
nginx (1.13.0-1) 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 Arutyunyan’s 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
|
||||
package and all these modules are maintained in separate external packages.
|
||||
Removed namely these remaining modules:
|
||||
- libnginx-mod-http-geoip2
|
||||
- libnginx-mod-stream-geoip2
|
||||
- libnginx-mod-http-auth-pam
|
||||
- libnginx-mod-http-echo
|
||||
- libnginx-mod-http-upstream-fair
|
||||
- libnginx-mod-http-headers-more-filter
|
||||
- libnginx-mod-http-cache-purge
|
||||
- libnginx-mod-http-fancyindex
|
||||
- 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)
|
||||
instead of hardcoded /var/log/nginx/error.log (Closes: 1025858)
|
||||
* dh nginx: auto-detect build-dependency on ndk-dev
|
||||
* dh nginx: absolute /usr/sbin/nginx path for nginx tests
|
||||
* d/p/nginx-ssl_cert_cb_yield.patch SSL_CTX_set_cert_cb() callback yielding
|
||||
patch update
|
||||
* d/conf/nginx.conf: Set global error_log to /var/log/error.log
|
||||
Now that error_log default value is stderr, it is possible
|
||||
to override that config using nginx -g 'error_log stderr;'
|
||||
|
||||
[ Miao Wang ]
|
||||
* d/control: removed unnecessary dependencies after removing 3rd party modules
|
||||
* d/rules: enabled stream_realip_module (--with-stream_realip_module)
|
||||
* d/rules: explicitly disabled pcre2 (--without-pcre2)
|
||||
|
||||
-- Jan Mojžíš <jan.mojzis@gmail.com> Tue, 20 Dec 2022 10:36:19 +0100
|
||||
|
||||
nginx (1.22.1-4) unstable; urgency=medium
|
||||
|
||||
* d/t/*-module-deps: updated, added curl timeout 300 seconds and
|
||||
added nginx restart before calling curl
|
||||
* d/t/*-module-deps: update:
|
||||
- added tests for new ext. module libnginx-mod-http-set-misc
|
||||
- added tests for new ext. module libnginx-mod-http-brotli-filter
|
||||
- added tests for new ext. module libnginx-mod-http-brotli-static
|
||||
- added tests for new ext. module libnginx-mod-http-memc
|
||||
- added tests for new ext. module libnginx-mod-http-srcache-filter
|
||||
* removed 3th party modules and moved to separate packages:
|
||||
- libnginx-mod-nchan module
|
||||
- libnginx-mod-rtmp module
|
||||
- libnginx-mod-http-ndk module
|
||||
|
||||
-- Jan Mojžíš <jan.mojzis@gmail.com> Thu, 08 Dec 2022 14:15:15 +0100
|
||||
|
||||
nginx (1.22.1-3) unstable; urgency=medium
|
||||
|
||||
* d/control: added Multi-Arch: foreign for package nginx-dev
|
||||
* d/rules: enabled NDK upstream list module NDK_UPSTREAM_LIST
|
||||
* d/p/bug-1024605.patch: added header Forwarded: not-needed
|
||||
|
||||
-- Jan Mojžíš <jan.mojzis@gmail.com> Mon, 05 Dec 2022 18:25:16 +0100
|
||||
|
||||
nginx (1.22.1-2) unstable; urgency=medium
|
||||
|
||||
[ Jan Mojžíš ]
|
||||
* d/control: fixed spelling-error-in-description
|
||||
* d/nginx-*.postinst: fixed postinst script, used invoke-rc.d instead of
|
||||
pidof and ad-hoc tests, tnx Gioele Barabucci
|
||||
* d/tests/ssi-module-test added, simple ngx_http_ssi_filter_module test
|
||||
* d/p/bug-1024605.patch added: fixes problem when a subrequest has SSI
|
||||
enabled but its main request does not, the SSI module may crash the worker
|
||||
due to NULL-pointer dereference. The patch is backported from the upstream
|
||||
(Closes: 1024605)
|
||||
* d/control: updated implicit dependencies of third-party modules
|
||||
for easier transition to third-party modules in separate packages.
|
||||
|
||||
[ Jérémy Lal ]
|
||||
* d/debhelper: set nginx_mod buildsystem by default
|
||||
* d/control: nginx-dev provides dh-sequence-nginx (Closes: #1024879)
|
||||
* d/control: remove Uploaders that are part of nginx-team,
|
||||
keep only the most recent active one, per policy 5.6.3.
|
||||
|
||||
[ Debian Janitor ]
|
||||
* Remove constraints unnecessary since buster (oldstable):
|
||||
+ nginx-dev: Drop versioned constraint on dpkg-dev in Depends.
|
||||
|
||||
-- Jan Mojžíš <jan.mojzis@gmail.com> Wed, 30 Nov 2022 17:39:42 +0100
|
||||
|
||||
nginx (1.22.1-1) unstable; urgency=medium
|
||||
|
||||
[ Jan Mojžíš ]
|
||||
* New upstream version 1.22.1
|
||||
* d/control: added implicit version of dependency libnginx-mod-http-lua
|
||||
(>=1:0.10.22-3~), it is a rebuilt version with nginx 1.22.1.
|
||||
* Added libnginx-mod-http-lua powerpc architecture
|
||||
|
||||
[ Debian Janitor ]
|
||||
* Fix day-of-week for changelog entry 0.5.11-1.
|
||||
|
||||
-- Jan Mojžíš <jan.mojzis@gmail.com> Thu, 10 Nov 2022 18:21:43 +0100
|
||||
|
||||
nginx (1.22.0-3.1) unstable; urgency=medium
|
||||
|
||||
* Non-maintainer upload.
|
||||
* No source change upload to rebuild with debhelper 13.10.
|
||||
|
||||
-- Michael Biebl <biebl@debian.org> Sat, 15 Oct 2022 12:28:07 +0200
|
||||
|
||||
nginx (1.22.0-3) unstable; urgency=medium
|
||||
|
||||
* d/changelog: fixed typo in bug number 61261 -> 861261 (Closes: 861261)
|
||||
* d/p/nginx-ssl_cert_cb_yield.patch added (Closes: 884434)
|
||||
* http-lua: removed the http-lua module and moved it to a separate package
|
||||
|
||||
-- Jan Mojžíš <jan.mojzis@gmail.com> Wed, 17 Aug 2022 18:38:15 +0200
|
||||
|
||||
nginx (1.22.0-2) unstable; urgency=medium
|
||||
|
||||
[ Miao Wang ]
|
||||
* adding a new libnginx-mod-http-ndk-dev package including necessary
|
||||
headers to build a 3rd party module depending on ndk.
|
||||
|
||||
[ Jan Mojžíš ]
|
||||
* d/nginx-common.nginx.service: added Systemd dependency
|
||||
Wants=network-online.target and updated Systemd "After" dependency to
|
||||
recommended NGINX values, namely:
|
||||
- network-online.target (Closes: 861261) (Closes: 1000406)
|
||||
- remote-fs.target (Closes: 898896)
|
||||
- nss-lookup.target
|
||||
* d/p/0003-define_gnu_source-on-other-glibc-based-platforms.patch: forwarded
|
||||
to upstream (Closes: 859082)
|
||||
* d/t/reboot: added, tests if nginx works after reboot
|
||||
* d/m/p/http-subs-filter/pcre2.patch: added PCRE2 support
|
||||
* d/p/nginx-fix-pidfile.patch: Fix NGINX PIDfile handling to avoid
|
||||
SystemD race condition, this fix is backported from Ubuntu (Closes: 876365)
|
||||
* d/apport/source_nginx.py: Add apport hooks for additional bug
|
||||
information gathering, the script is backported from Ubuntu (Closes: 963668)
|
||||
* d/nginx-common.install: Add install rule for apport hooks.
|
||||
|
||||
[ Debian Janitor ]
|
||||
* Remove constraints unnecessary since buster:
|
||||
+ Build-Depends: Drop versioned constraint on dpkg-dev.
|
||||
+ nginx-common: Drop versioned constraint on lsb-base in Depends.
|
||||
+ nginx-core: Drop versioned constraint on nginx in Breaks.
|
||||
+ nginx-full: Drop versioned constraint on nginx in Breaks.
|
||||
+ nginx-light: Drop versioned constraint on nginx in Breaks.
|
||||
+ nginx-extras: Drop versioned constraint on nginx in Breaks.
|
||||
+ libnginx-mod-http-perl: Drop versioned constraint on nginx-extras in
|
||||
Replaces.
|
||||
+ Remove 5 maintscript entries from 1 files.
|
||||
|
||||
-- Jan Mojžíš <jan.mojzis@gmail.com> Sun, 07 Aug 2022 16:14:59 +0200
|
||||
|
||||
nginx (1.22.0-1) unstable; urgency=medium
|
||||
|
||||
[ Thomas Ward ]
|
||||
* New upstream release (1.22.0)
|
||||
* Additional changes:
|
||||
* d/conf/mime.types: Fix a typo in font/woff2 extension in
|
||||
mime.types. (Closes: #1010798)
|
||||
* d/upstream/signing-key.asc: Additional signing keys observed
|
||||
in upstream (Konstantin Pavlov <k.pavlov@f5.com>) during
|
||||
upstream merge/import by Thomas Ward, additional signing key
|
||||
was added to the keyring while keeping Maxim's key in signing
|
||||
keys as well.
|
||||
* d/copyright: Updated copyright for src/core/ngx_murmurhash.c
|
||||
and debian/modules/http-ndk/src/hash/murmurhash2.c to be
|
||||
public-domain (Closes: #1011936)
|
||||
* d/control: Use libluajit-5.1-dev for s390x.
|
||||
Due to src:luajit2 landing in Unstable, superseding src:luajit,
|
||||
and due to luajit2 having s390x support, we can use s390x now
|
||||
with luajit instead of standard Lua.
|
||||
Thanks to Paul Gevers for the heads up on luajit2 supporting s390x.
|
||||
* d/control: Use liblua for ppc64el - src:luajit2 is still not ppc64el
|
||||
stable and there seems to be nobody willing to support it. (Closes: 1013807)
|
||||
|
||||
[ Jan Mojžíš ]
|
||||
* d/patches/CVE-2021-3618.patch removed, fix is included in new upstream
|
||||
release
|
||||
* d/copyright: bump nginx copyright years
|
||||
* d/copyright: added copyright for src/stream/ngx_stream_set_module.c
|
||||
* d/copyright: removed copyright for src/http/v2/ngx_http_v2_huff_encode.c
|
||||
* d/control: bump Standards-Version to 4.6.1, no changes
|
||||
|
||||
[ Bastian Germann ]
|
||||
* d/copyright: Update copyright for d/debhelper/*
|
||||
|
||||
[ Miao Wang ]
|
||||
* dh_nginx: support auto generating module config files
|
||||
* adding a new nginx-dev package including necessary headers and debhelper
|
||||
scripts to build and package a 3rd party module. (Closes: 985133)
|
||||
* d/p/0002-Make-sure-signature-stays-the-same-in-all-nginx-buil.patch
|
||||
removed, because feature already implemented with --with-compat configure
|
||||
option since 1.11.5
|
||||
|
||||
-- Thomas Ward <teward@ubuntu.com> Tue, 10 May 2022 12:08:02 -0400
|
||||
|
||||
nginx (1.20.2-2) unstable; urgency=medium
|
||||
|
||||
[ Thomas Ward ]
|
||||
* d/patches/CVE-2021-3618.patch: Include upstream changeset from NGINX
|
||||
that adds mitigations into the Mail module for CVE-2021-3618.patch.
|
||||
(Closes: #991328)
|
||||
|
||||
[ Jan Mojžíš ]
|
||||
* d/p/0003-define_gnu_source-on-other-glibc-based-platforms.patch update,
|
||||
fixes build on hurd-i386 platform
|
||||
|
||||
-- Thomas Ward <teward@ubuntu.com> Wed, 04 May 2022 16:04:59 -0400
|
||||
|
||||
nginx (1.20.2-1) unstable; urgency=medium
|
||||
|
||||
[ Ondřej Nový ]
|
||||
* d/control: Update Uploaders for new maintainers.
|
||||
|
||||
[ Thomas Ward ]
|
||||
* Update to latest upstream Stable version (1.20.2) (Closes: #1008855)
|
||||
* d/patches/Resolver-fixed-off-by-one-write-in-ngx_resolver
|
||||
_copy.patch: Drop CVE-2021-23017 patch, as this is fixed in 1.20.1
|
||||
and we are now using 1.20.2 which already contains the patch.
|
||||
* Refreshed d/patches/0002-Make-sure-signature-stays-the-same-
|
||||
in-all-nginx-buil.patch (fuzz thanks to 1.20.2)
|
||||
* d/conf/mime.types: Update mime.types to more match upstream mime.types
|
||||
and include upstream changes with mime.types from 1.21.x via nginx.org
|
||||
mercurial repository versions.
|
||||
* d/control: Remove self from Uploaders per other Debian devs, who want
|
||||
that commit to be done by someone on the current uploaders/maintainers
|
||||
group instead.
|
||||
|
||||
-- Thomas Ward <teward@ubuntu.com> Tue, 19 Apr 2022 09:50:42 -0400
|
||||
|
||||
nginx (1.18.0-9) unstable; urgency=medium
|
||||
|
||||
[ Jan Mojžíš ]
|
||||
* http-lua: Downgrade to 0.10.13 (Closes: #1008787).
|
||||
* http-lua: Backport upstream bugfix for segfault in nginx core >= 1.15.0
|
||||
when libnginx-mod-http-lua is loaded and init_worker_by_lua* is used.
|
||||
* d/control: Add mips64el,ppc64,kfreebsd-amd64 to list of luajit platforms.
|
||||
* d/control: fix Homepage nginx.net -> nginx.org (Closes: #976158)
|
||||
|
||||
[ Thomas Ward ]
|
||||
* d/watch: Update watch syntax to match all even versions of NGINX releases
|
||||
rather than use a watch syntax that is static to one specific version.
|
||||
This will fix the untracked "New upstream stable versions" problem.
|
||||
* d/control: Update 'uploaders' as Thomas Ward is now a maintainer in
|
||||
the Salsa repository.
|
||||
|
||||
-- Jan Mojžíš <jan.mojzis@gmail.com> Tue, 05 Apr 2022 19:11:47 +0200
|
||||
|
||||
nginx (1.18.0-8) unstable; urgency=medium
|
||||
|
||||
* Restore patch:
|
||||
d/p/Resolver-fixed-off-by-one-write-in-ngx_resolver_copy.patch
|
||||
|
||||
-- Ondřej Nový <onovy@debian.org> Tue, 15 Mar 2022 13:23:06 +0100
|
||||
|
||||
nginx (1.18.0-7) unstable; urgency=medium
|
||||
|
||||
[ Ondřej Nový ]
|
||||
* d/p/CVE-2019-20372.patch: Drop, applied upstream.
|
||||
* http-auth-pam: Upgrade to 1.5.3.
|
||||
* http-echo: Upgrade to 0.62.
|
||||
* nchan: Upgrade to 1.2.15.
|
||||
* http-fancyindex: Upgrade to 0.5.2.
|
||||
* rtmp: Upgrade to 1.2.2.
|
||||
* http-lua: Upgrade to 0.10.15 (Closes: #994178).
|
||||
* http-lua: Rebase patch.
|
||||
* nchan: Drop GCC 10 patch, applied upstream.
|
||||
* d/watch: Bump version to 4.
|
||||
* Bump standards version to 4.6.1 (no changes).
|
||||
* d/copyright: Bump my copyright year.
|
||||
|
||||
[ Ondřej Surý ]
|
||||
* Add arm64 and ppc64el to list of luajit platforms.
|
||||
|
||||
[ Athos Ribeiro ]
|
||||
* d/nginx-common.nginx.service: Fix service shutdown description to mention
|
||||
SIGQUIT instead of SIGSTOP (LP: #1919965).
|
||||
|
||||
-- Ondřej Nový <onovy@debian.org> Tue, 15 Mar 2022 11:50:18 +0100
|
||||
|
||||
nginx (1.18.0-6.1) unstable; urgency=high
|
||||
|
||||
* Non-maintainer upload.
|
||||
* Resolver: fixed off-by-one write in ngx_resolver_copy() (CVE-2021-23017)
|
||||
(Closes: #989095)
|
||||
|
||||
-- Salvatore Bonaccorso <carnil@debian.org> Sat, 29 May 2021 16:21:37 +0200
|
||||
|
||||
nginx (1.18.0-6) unstable; urgency=medium
|
||||
|
||||
* Fix GCC-10 compatibility (Closes: #957605).
|
||||
|
||||
-- Ondřej Nový <onovy@debian.org> Wed, 19 Aug 2020 15:27:02 +0200
|
||||
|
||||
nginx (1.18.0-5) unstable; urgency=medium
|
||||
|
||||
* Prevented request smuggling in LUA
|
||||
CVE-2020-11724
|
||||
Closes: #964950
|
||||
|
||||
-- Ondřej Nový <onovy@debian.org> Tue, 14 Jul 2020 10:08:15 +0200
|
||||
|
||||
nginx (1.18.0-4) unstable; urgency=medium
|
||||
|
||||
* Revert: libnginx-mod-* now depends on nginx-<any flavour> (Closes: #963860).
|
||||
* Update ngx_http_auth_pam_module upstream URL.
|
||||
* libnginx-mod-* recommends nginx now.
|
||||
* http-auth-pam: Upgrade to 1.5.2 (Closes: #963567).
|
||||
* d/copyright: Bump year of http-auth-pam.
|
||||
|
||||
-- Ondřej Nový <onovy@debian.org> Fri, 03 Jul 2020 09:34:49 +0200
|
||||
|
||||
nginx (1.18.0-3) unstable; urgency=medium
|
||||
|
||||
* Source-only upload to allow migration.
|
||||
|
||||
-- Ondřej Nový <onovy@debian.org> Thu, 11 Jun 2020 15:14:59 +0200
|
||||
|
||||
nginx (1.18.0-2) unstable; urgency=medium
|
||||
|
||||
[ Ondřej Nový ]
|
||||
* d/copyright:
|
||||
- Update for upstream release
|
||||
- Add Thomas Ward from Ubuntu for debian/*
|
||||
* d/conf/sites-available/default: Update PHP path for PHP 7.4
|
||||
* d/conf/nginx.conf:
|
||||
- Enable TLSv1.3
|
||||
- Remove tcp_nodelay on, which is same as default
|
||||
- Remove keepalive_timeout 65 and use default value 75s.
|
||||
- Remove trailing whitespaces
|
||||
* Introduce nginx-core and make it new default for "nginx"
|
||||
* Add stream-geoip and stream-geoip2 modules
|
||||
* d/ngx-conf: Convert to Python 3
|
||||
* d/control: Add GeoIP2 into description
|
||||
* Build dynamic modules only in extras flavour
|
||||
* libnginx-mod-* now depends on nginx-<any flavour>
|
||||
* Check if port 80 is free before starting during install
|
||||
|
||||
[ Ondřej Surý ]
|
||||
* http-geoip2: Add ngx_http_geoip2_module 3.3
|
||||
|
||||
-- Ondřej Nový <onovy@debian.org> Fri, 05 Jun 2020 18:28:40 +0200
|
||||
|
||||
nginx (1.18.0-1) unstable; urgency=medium
|
||||
|
||||
[ Ondřej Nový ]
|
||||
* New upstream version 1.18.0
|
||||
* Add REMOTE_USER fastcgi param
|
||||
* Use debhelper-compat instead of debian/compat
|
||||
* Replace dh_systemd_enable with dh_installsystemd
|
||||
* Set Rules-Requires-Root: no
|
||||
* d/rules/dh_installinit: Replace --no-restart-on-upgrade with
|
||||
--no-stop-on-upgrade
|
||||
* Bump debhelper compat level to 13
|
||||
* Use package.maintscript instead of dpkg-maintscript-helper
|
||||
* Bump standards version to 4.5.0
|
||||
* d/watch: Change to 1.18.x
|
||||
* d/patches/CVE-2019-20372.patch: Rebase
|
||||
* Convert d/ngxmod to Python 3 (Closes: #953025)
|
||||
* nchan: Upgrade to 1.2.7
|
||||
* http-fancyindex: Upgrade to 0.4.4
|
||||
* d/copyright: Add myself for Debian part
|
||||
* Add myself as uploader
|
||||
|
||||
[ Mohamed Akram ]
|
||||
* Enable --with-compat configure option (Closes: #897926)
|
||||
|
||||
-- Ondřej Nový <onovy@debian.org> Fri, 29 May 2020 19:03:30 +0200
|
||||
|
||||
nginx (1.16.1-3) unstable; urgency=high
|
||||
|
||||
* Handle CVE-2019-20372, error page request smuggling
|
||||
(Closes: #948579)
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Sat, 11 Jan 2020 09:36:00 +0200
|
||||
|
||||
nginx (1.16.1-2) unstable; urgency=medium
|
||||
|
||||
* http-lua: Downgrade to 0.10.13 (Closes: #941917)
|
||||
Temporary fix FTBFS on architectures where Luajit is not available.
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Sat, 12 Oct 2019 17:59:23 +0300
|
||||
|
||||
nginx (1.16.1-1) unstable; urgency=medium
|
||||
|
||||
* New upstream version (Closes: #929200)
|
||||
* Follow stable 1.16 releases (Closes: #929199)
|
||||
* Drop already included debian patches
|
||||
* http-ndk: Upgrade to 0.3.1
|
||||
* http-lua: Upgrade to 0.10.15
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Mon, 09 Sep 2019 18:24:43 +0300
|
||||
|
||||
nginx (1.14.2-3) unstable; urgency=high
|
||||
|
||||
* Backport upstream fixes for 3 CVEs (Closes: #935037)
|
||||
Those fixes affect Nginx HTTP/2 implementation, which might cause
|
||||
excessive memory consumption and CPU usage.
|
||||
(CVE-2019-9511, CVE-2019-9513, CVE-2019-9516).
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Mon, 19 Aug 2019 11:30:08 +0300
|
||||
|
||||
nginx (1.14.2-2) unstable; urgency=medium
|
||||
|
||||
[ Kartik Mistry ]
|
||||
* po/tr.po:
|
||||
+ Added Turkish translation. Thanks Atila KOÇ <koc@artielektronik.com.tr>
|
||||
(Closes: #915728)
|
||||
|
||||
[ Christos Trochalakis ]
|
||||
* http-dav-ext: Upgrade to 3.0.0 (Closes: #851651)
|
||||
* Use a minimal export of the upstream signing key
|
||||
* Bump Standards-Version, no changes needed
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Thu, 27 Dec 2018 12:49:34 +0200
|
||||
|
||||
nginx (1.14.2-1) unstable; urgency=medium
|
||||
|
||||
[ Olaf van der Spek ]
|
||||
* Reference PHP 7.3 (Closes: 913250)
|
||||
|
||||
[ Christos Trochalakis ]
|
||||
* Adjust fastcgi_split_path_info snippet to handle the `/example.php/` case
|
||||
(Closes: #911398)
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Thu, 13 Dec 2018 10:05:37 +0200
|
||||
|
||||
nginx (1.14.1-1) unstable; urgency=medium
|
||||
|
||||
[ Kartik Mistry ]
|
||||
* Removed unused lintian override.
|
||||
* Fixed trailing whitespaces in changelog.
|
||||
|
||||
[ Christos Trochalakis ]
|
||||
* New upstream version. (Closes: #913090)
|
||||
+ CVE-2018-16843 Excessive memory usage in HTTP/2
|
||||
+ CVE-2018-16844 Excessive CPU usage in HTTP/2
|
||||
+ CVE-2018-16845 Memory disclosure in the ngx_http_mp4_module
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Wed, 07 Nov 2018 07:16:00 +0200
|
||||
|
||||
nginx (1.14.0-1) unstable; urgency=medium
|
||||
|
||||
[ Kartik Mistry ]
|
||||
* debian/control:
|
||||
+ Removed duplicate Build-Depends.
|
||||
+ Use https in Homepage.
|
||||
|
||||
[ Christos Trochalakis ]
|
||||
* http-lua: Upgrade to 0.10.13
|
||||
* http-lua: Drop our OpenSSL patch, OpenSSL 1.1 is now supported upstream
|
||||
* http-fancyindex: Upgrade to 0.4.3
|
||||
* Order nginx after nss-lookup.target to synchronize host/network name lookups
|
||||
(Closes: #900790)
|
||||
* Merge ru translations.
|
||||
Thanks to Lev Lamberov (Closes: #883104)
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Fri, 31 Aug 2018 15:28:04 +0300
|
||||
|
||||
nginx (1.13.12-1) unstable; urgency=medium
|
||||
|
||||
* New upstream version
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Wed, 11 Apr 2018 08:19:23 +0300
|
||||
|
||||
nginx (1.13.11-1) unstable; urgency=medium
|
||||
|
||||
* New upstream version
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Tue, 10 Apr 2018 14:55:11 +0300
|
||||
|
||||
nginx (1.13.10-1) unstable; urgency=medium
|
||||
|
||||
* New upstream version
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Wed, 21 Mar 2018 16:16:22 +0200
|
||||
|
||||
nginx (1.13.9-1) unstable; urgency=medium
|
||||
|
||||
[ Michael Lustfield ]
|
||||
* Remove non-uploading users
|
||||
|
||||
[ Christos Trochalakis ]
|
||||
* New upstream version 1.13.9
|
||||
* Move packaging repository to salsa.debian.org
|
||||
* Bump Standards-Version to 4.1.3, no changes needed
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Wed, 21 Feb 2018 11:24:53 +0200
|
||||
|
||||
nginx (1.13.8-1) unstable; urgency=medium
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Wed, 27 Dec 2017 09:24:36 +0200
|
||||
|
||||
nginx (1.13.7-1) unstable; urgency=medium
|
||||
|
||||
[ Christos Trochalakis ]
|
||||
* New upstream version 1.13.7
|
||||
* Bump Standards-Version, no changes needed
|
||||
* debian/watch: switch to HTTPS for the upstream check
|
||||
|
||||
[ Mpampis Kostas ]
|
||||
* Automate modules watch & upgrade process (Closes: #869499)
|
||||
|
||||
[ Christos Trochalakis ]
|
||||
* Bits & pieces for ngxmod
|
||||
* http-headers-more-filter: Upgrade to 0.33
|
||||
* http-echo: Upgrade to 0.61
|
||||
* http-lua: Upgrade to 0.10.11
|
||||
* http-dav-ext: Upgrade to 0.1.0 (Closes: #878611)
|
||||
* http-fancyindex: Upgrade to 0.4.2
|
||||
* rtmp: Upgrade to 1.2.1 (Closes: #880718)
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Thu, 14 Dec 2017 11:04:36 +0200
|
||||
|
||||
nginx (1.13.6-2) unstable; urgency=medium
|
||||
|
||||
* rtmp: Ship docs & examples (Closes: #878368)
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Fri, 13 Oct 2017 12:59:28 +0300
|
||||
|
||||
nginx (1.13.6-1) unstable; urgency=medium
|
||||
|
||||
* New upstream version
|
||||
* Normalize module paths in packaging repository
|
||||
* Bump Standards-Version, no changes needed
|
||||
* Drop dh-systemd dependency since we depend on debhelper >= 10
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Thu, 12 Oct 2017 10:37:29 +0300
|
||||
|
||||
nginx (1.13.5-1) unstable; urgency=medium
|
||||
|
||||
* New upstream version 1.13.5
|
||||
* doc: Improve example WordPress configuration
|
||||
Thanks to Larry Holish (Closes: #863343)
|
||||
* Remove upstart conffile (Closes: #874319)
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Wed, 06 Sep 2017 10:10:24 +0300
|
||||
|
||||
nginx (1.13.4-1) unstable; urgency=medium
|
||||
|
||||
* New upstream version 1.13.4
|
||||
* nginx-lua:
|
||||
+ Add a simple lua autopkgtest
|
||||
+ Discover LuaJIT 2.1 (FTBFS) (Closes: #873319)
|
||||
+ Update to v0.10.10
|
||||
+ Update OpenSSL 1.1 patch
|
||||
+ Drop patch to build against Nginx 1.11.11, now included upstream
|
||||
* tests: Fix race between reload and curl's http request
|
||||
* Explicitly disable autoreconf (debhelper 10)
|
||||
* Drop Upstart configuration
|
||||
* Bump Standards to 4.1.0
|
||||
+ Switch all packages to Priority optional, extra is considered deprecated
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Tue, 29 Aug 2017 10:49:03 +0300
|
||||
|
||||
nginx (1.13.3-1) unstable; urgency=high
|
||||
|
||||
* New upstream version 1.13.3.
|
||||
Fixes CVE-2017-7529 (Closes: #868109)
|
||||
* Drop gzip_disable "msie6" directive. (Closes: #867024)
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Wed, 12 Jul 2017 11:20:27 +0300
|
||||
|
||||
nginx (1.13.2-1) unstable; urgency=medium
|
||||
|
||||
[ Christos Trochalakis ]
|
||||
* New upstream version 1.13.2.
|
||||
* Fix nginx-cache-purge segfaults (Closes: #866750)
|
||||
* Merge ca translations.
|
||||
Thanks to Alytidae (Closes: #865996)
|
||||
* Merge es translations.
|
||||
Thanks to Jonathan Bustillos (Closes: #855610)
|
||||
* Merge pt translations.
|
||||
Thanks to Rui Branco (Closes: #858741)
|
||||
* Bump Standards to 4.0.0.
|
||||
- Switch the copyright-format URL to https.
|
||||
|
||||
[ Nicolas Dandrimont ]
|
||||
* Introduce libnginx-mod-rtmp (Closes: #843777)
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Mon, 03 Jul 2017 13:44:59 +0300
|
||||
|
||||
nginx (1.13.1-2) unstable; urgency=medium
|
||||
|
||||
* Upload to unstable.
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Tue, 20 Jun 2017 14:16:52 +0300
|
||||
|
||||
nginx (1.13.1-1) experimental; urgency=medium
|
||||
|
||||
* New upstream version 1.13.1.
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Wed, 31 May 2017 11:41:59 +0300
|
||||
|
||||
nginx (1.13.0-1) experimental; urgency=medium
|
||||
|
||||
* New upstream release.
|
||||
We now target nginx mainline (1.13.x).
|
||||
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Fri, 05 May 2017 13:01:30 +0300
|
||||
-- Christos Trochalakis <ctrochalakis@debian.org> Wed, 10 May 2017 11:40:38 +0300
|
||||
|
||||
nginx (1.12.0-1) experimental; urgency=medium
|
||||
|
||||
|
|
@ -1879,14 +2656,14 @@ nginx (0.7.61-2) unstable; urgency=low
|
|||
nginx (0.7.61-1) unstable; urgency=low
|
||||
|
||||
* New upstream version:
|
||||
*) Bugfix: nginx could not be built --without-http-cache; the bug had
|
||||
*) Bugfix: nginx could not be built --without-http-cache; the bug had
|
||||
appeared in 0.7.60.
|
||||
*) Bugfix: a segmentation fault occurred in worker process, if a
|
||||
backend 401 error was intercepted and the backend did not set the
|
||||
*) Bugfix: a segmentation fault occurred in worker process, if a
|
||||
backend 401 error was intercepted and the backend did not set the
|
||||
"WWW-Authenticate" response header line.
|
||||
Thanks to Eugene Mychlo.
|
||||
*) Feature: the "keepalive_requests" directive.
|
||||
*) Bugfix: in open_file_cache and proxy/fastcgi cache interaction on
|
||||
*) Bugfix: in open_file_cache and proxy/fastcgi cache interaction on
|
||||
start up.
|
||||
*) Bugfix: open_file_cache might cache open file descriptors too long.
|
||||
*) Bugfix: XLST filter did not work in subrequests.
|
||||
|
|
@ -2017,14 +2794,14 @@ nginx (0.5.33-1) unstable; urgency=low
|
|||
* New stable upstream release (Closes: #451173)
|
||||
* nginx now provides httpd, httpd-cgi virtual packages
|
||||
(Closes: #439468, #452025)
|
||||
* sites-enabled/default link is now provided only on fresh
|
||||
* sites-enabled/default link is now provided only on fresh
|
||||
installations (Closes: #432961)
|
||||
* Updated code for online upgrading of nginx (Closes: #445246)
|
||||
* Reviewed maintainer scripts for correct behaviour on updates
|
||||
(Closes: #452787, #435965)
|
||||
* Removed debian/nginx.links and debian/preinst.
|
||||
* Changing Maintainer address to bureado@debian.org.
|
||||
* Welcoming Fabio Tranchitella <kobold@debian.org> as an nginx
|
||||
* Welcoming Fabio Tranchitella <kobold@debian.org> as an nginx
|
||||
uploader for Debian. Thanks for your patches.
|
||||
|
||||
-- Jose Parrella <bureado@debian.org> Sat, 08 Dec 2007 11:27:54 -0400
|
||||
|
|
@ -2032,7 +2809,7 @@ nginx (0.5.33-1) unstable; urgency=low
|
|||
nginx (0.5.30-1) unstable; urgency=low
|
||||
|
||||
* New stable upstream release.
|
||||
* Adding mime.types (and other upstream conffiles) to the package
|
||||
* Adding mime.types (and other upstream conffiles) to the package
|
||||
since it was lost on 0.5.26 (Closes: #435964)
|
||||
|
||||
-- Jose Parrella <joseparrella@cantv.net> Sat, 04 Aug 2007 10:39:40 -0400
|
||||
|
|
@ -2062,7 +2839,7 @@ nginx (0.5.13-1) unstable; urgency=low
|
|||
|
||||
nginx (0.5.12-2) unstable; urgency=low
|
||||
|
||||
* Patching src/core/ngx_shmtx.h in order to solve FTBFS problems in
|
||||
* Patching src/core/ngx_shmtx.h in order to solve FTBFS problems in
|
||||
non-x86 archs (Thanks to Igor Sysoev) (Closes: #410884)
|
||||
|
||||
-- Jose Parrella <joseparrella@cantv.net> Wed, 14 Feb 2007 13:32:01 -0400
|
||||
|
|
@ -2078,7 +2855,7 @@ nginx (0.5.11-1) unstable; urgency=low
|
|||
|
||||
* New upstream version. (Closes: #405983)
|
||||
|
||||
-- Jose Parrella <joseparrella@cantv.net> Sun, 5 Feb 2007 19:35:56 -0400
|
||||
-- Jose Parrella <joseparrella@cantv.net> Mon, 05 Feb 2007 19:35:56 -0400
|
||||
|
||||
nginx (0.4.13-2) unstable; urgency=low
|
||||
|
||||
|
|
@ -2118,4 +2895,3 @@ nginx (0.4.2-1) unstable; urgency=low
|
|||
* Tweaked the configuration file and the path handling for Debian.
|
||||
|
||||
-- Jose Parrella <joseparrella@cantv.net> Thu, 14 Sep 2006 11:40:20 -0400
|
||||
|
||||
|
|
|
|||
1
debian/compat
vendored
1
debian/compat
vendored
|
|
@ -1 +0,0 @@
|
|||
10
|
||||
1
debian/conf/fastcgi.conf
vendored
1
debian/conf/fastcgi.conf
vendored
|
|
@ -18,6 +18,7 @@ fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
|
|||
|
||||
fastcgi_param REMOTE_ADDR $remote_addr;
|
||||
fastcgi_param REMOTE_PORT $remote_port;
|
||||
fastcgi_param REMOTE_USER $remote_user;
|
||||
fastcgi_param SERVER_ADDR $server_addr;
|
||||
fastcgi_param SERVER_PORT $server_port;
|
||||
fastcgi_param SERVER_NAME $server_name;
|
||||
|
|
|
|||
1
debian/conf/fastcgi_params
vendored
1
debian/conf/fastcgi_params
vendored
|
|
@ -17,6 +17,7 @@ fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
|
|||
|
||||
fastcgi_param REMOTE_ADDR $remote_addr;
|
||||
fastcgi_param REMOTE_PORT $remote_port;
|
||||
fastcgi_param REMOTE_USER $remote_user;
|
||||
fastcgi_param SERVER_ADDR $server_addr;
|
||||
fastcgi_param SERVER_PORT $server_port;
|
||||
fastcgi_param SERVER_NAME $server_name;
|
||||
|
|
|
|||
172
debian/conf/mime.types
vendored
172
debian/conf/mime.types
vendored
|
|
@ -1,89 +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/png png;
|
||||
image/tiff tif tiff;
|
||||
image/vnd.wap.wbmp wbmp;
|
||||
image/x-icon ico;
|
||||
image/x-jng jng;
|
||||
image/x-ms-bmp bmp;
|
||||
image/svg+xml svg svgz;
|
||||
image/webp webp;
|
||||
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;
|
||||
|
||||
application/font-woff woff;
|
||||
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.ms-excel xls;
|
||||
application/vnd.ms-fontobject eot;
|
||||
application/vnd.ms-powerpoint ppt;
|
||||
application/vnd.wap.wmlc wmlc;
|
||||
application/vnd.google-earth.kml+xml kml;
|
||||
application/vnd.google-earth.kmz kmz;
|
||||
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;
|
||||
font/woff woff;
|
||||
font/woff2 woff2;
|
||||
|
||||
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/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/vnd.openxmlformats-officedocument.wordprocessingml.document docx;
|
||||
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;
|
||||
application/vnd.openxmlformats-officedocument.presentationml.presentation pptx;
|
||||
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;
|
||||
}
|
||||
|
|
|
|||
18
debian/conf/nginx.conf
vendored
18
debian/conf/nginx.conf
vendored
|
|
@ -1,6 +1,8 @@
|
|||
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;
|
||||
|
||||
events {
|
||||
|
|
@ -16,10 +18,8 @@ http {
|
|||
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
keepalive_timeout 65;
|
||||
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;
|
||||
|
|
@ -31,22 +31,20 @@ http {
|
|||
# SSL Settings
|
||||
##
|
||||
|
||||
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 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
|
||||
##
|
||||
|
||||
access_log /var/log/nginx/access.log;
|
||||
error_log /var/log/nginx/error.log;
|
||||
|
||||
##
|
||||
# Gzip Settings
|
||||
##
|
||||
|
||||
gzip on;
|
||||
gzip_disable "msie6";
|
||||
|
||||
# gzip_vary on;
|
||||
# gzip_proxied any;
|
||||
|
|
@ -67,17 +65,17 @@ http {
|
|||
#mail {
|
||||
# # See sample authentication script at:
|
||||
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
|
||||
#
|
||||
#
|
||||
# # auth_http localhost/auth.php;
|
||||
# # pop3_capabilities "TOP" "USER";
|
||||
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
|
||||
#
|
||||
#
|
||||
# server {
|
||||
# listen localhost:110;
|
||||
# protocol pop3;
|
||||
# proxy on;
|
||||
# }
|
||||
#
|
||||
#
|
||||
# server {
|
||||
# listen localhost:143;
|
||||
# protocol imap;
|
||||
|
|
|
|||
2
debian/conf/sites-available/default
vendored
2
debian/conf/sites-available/default
vendored
|
|
@ -57,7 +57,7 @@ server {
|
|||
# include snippets/fastcgi-php.conf;
|
||||
#
|
||||
# # With php-fpm (or other unix sockets):
|
||||
# fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
|
||||
# fastcgi_pass unix:/run/php/php7.4-fpm.sock;
|
||||
# # With php-cgi (or other tcp sockets):
|
||||
# fastcgi_pass 127.0.0.1:9000;
|
||||
#}
|
||||
|
|
|
|||
2
debian/conf/snippets/fastcgi-php.conf
vendored
2
debian/conf/snippets/fastcgi-php.conf
vendored
|
|
@ -1,5 +1,5 @@
|
|||
# regex to split $uri to $fastcgi_script_name and $fastcgi_path
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
|
||||
|
||||
# Check that the PHP script exists before passing it
|
||||
try_files $fastcgi_script_name =404;
|
||||
|
|
|
|||
368
debian/control
vendored
368
debian/control
vendored
|
|
@ -1,47 +1,37 @@
|
|||
Source: nginx
|
||||
Section: httpd
|
||||
Priority: optional
|
||||
Maintainer: Debian Nginx Maintainers <pkg-nginx-maintainers@lists.alioth.debian.org>
|
||||
Uploaders: Kartik Mistry <kartik@debian.org>,
|
||||
Michael Lustfield <michael@lustfield.net>,
|
||||
Christos Trochalakis <ctrochalakis@debian.org>
|
||||
Build-Depends: autotools-dev,
|
||||
debhelper (>= 10),
|
||||
po-debconf,
|
||||
dh-systemd (>= 1.5),
|
||||
dpkg-dev (>= 1.15.5),
|
||||
Maintainer: Debian Nginx Maintainers <pkg-nginx-maintainers@alioth-lists.debian.net>
|
||||
Uploaders: Jan Mojžíš <janmojzis@debian.org>
|
||||
Build-Depends: debhelper-compat (= 13),
|
||||
libexpat-dev,
|
||||
libgd-dev,
|
||||
libgeoip-dev,
|
||||
libhiredis-dev,
|
||||
liblua5.1-0-dev [!i386 !amd64 !kfreebsd-i386 !armel !armhf !powerpc !powerpcspe !mips !mipsel],
|
||||
libluajit-5.1-dev [i386 amd64 kfreebsd-i386 armel armhf powerpc powerpcspe mips mipsel],
|
||||
libmhash-dev,
|
||||
libpam0g-dev,
|
||||
libpcre3-dev,
|
||||
libpcre2-dev,
|
||||
libperl-dev,
|
||||
libssl-dev,
|
||||
libxslt1-dev,
|
||||
po-debconf,
|
||||
quilt,
|
||||
zlib1g-dev
|
||||
Standards-Version: 3.9.8.0
|
||||
Homepage: http://nginx.net
|
||||
Vcs-Git: https://anonscm.debian.org/cgit/pkg-nginx/nginx.git
|
||||
Vcs-Browser: https://anonscm.debian.org/cgit/pkg-nginx/nginx.git
|
||||
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-full (<< ${source:Version}.1~) | nginx-light (<< ${source:Version}.1~) | nginx-extras (<< ${source:Version}.1~),
|
||||
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-full (by default),
|
||||
nginx-light or nginx-extras.
|
||||
|
||||
Package: nginx-doc
|
||||
Architecture: all
|
||||
|
|
@ -56,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 (>= 3.0-6), ${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
|
||||
|
|
@ -68,33 +60,86 @@ Description: small, powerful, scalable web/proxy server - common files
|
|||
This package contains base configuration files used by all versions of
|
||||
nginx.
|
||||
|
||||
Package: nginx-full
|
||||
Architecture: any
|
||||
Depends: libnginx-mod-http-auth-pam (= ${binary:Version}),
|
||||
libnginx-mod-http-dav-ext (= ${binary:Version}),
|
||||
libnginx-mod-http-echo (= ${binary:Version}),
|
||||
libnginx-mod-http-geoip (= ${binary:Version}),
|
||||
libnginx-mod-http-image-filter (= ${binary:Version}),
|
||||
libnginx-mod-http-subs-filter (= ${binary:Version}),
|
||||
libnginx-mod-http-upstream-fair (= ${binary:Version}),
|
||||
libnginx-mod-http-xslt-filter (= ${binary:Version}),
|
||||
libnginx-mod-mail (= ${binary:Version}),
|
||||
libnginx-mod-stream (= ${binary:Version}),
|
||||
nginx-common (= ${source:Version}),
|
||||
Package: nginx-dev
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: ${misc:Depends}, ${S:Build-Depends},
|
||||
${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
|
||||
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 development headers and necessary config scripts
|
||||
for the nginx web/proxy server, useful to develop and link third party
|
||||
additions to the Debian nginx web/proxy server packages.
|
||||
|
||||
Package: nginx-core
|
||||
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 (<< 1.4.5-1)
|
||||
Provides: httpd, httpd-cgi, nginx
|
||||
Conflicts: nginx-extras, nginx-light
|
||||
Suggests: nginx-doc (= ${source:Version})
|
||||
Breaks: nginx-full (<< 1.18.0-1),
|
||||
Replaces: nginx-full (<< 1.18.0-1),
|
||||
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 with the complete set of
|
||||
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.
|
||||
.
|
||||
STANDARD HTTP MODULES: Core, Access, Auth Basic, Auto Index, Browser, Empty
|
||||
GIF, FastCGI, Geo, Limit Connections, Limit Requests, Map, Memcached, Proxy,
|
||||
Referer, Rewrite, SCGI, Split Clients, UWSGI.
|
||||
.
|
||||
OPTIONAL HTTP MODULES: Addition, Auth Request, Charset, WebDAV, GeoIP, Gunzip,
|
||||
Gzip, Gzip Precompression, Headers, HTTP/2, Image Filter, Index, Log, Real IP,
|
||||
Slice, SSI, SSL, SSL Preread, Stub Status, Substitution, Thread Pool,
|
||||
Upstream, User ID, XSLT.
|
||||
.
|
||||
OPTIONAL MAIL MODULES: Mail Core, Auth HTTP, Proxy, SSL, IMAP, POP3, SMTP.
|
||||
.
|
||||
OPTIONAL STREAM MODULES: Stream Core, GeoIP
|
||||
|
||||
Package: nginx-full
|
||||
Architecture: all
|
||||
Depends: libnginx-mod-http-auth-pam,
|
||||
libnginx-mod-http-dav-ext,
|
||||
libnginx-mod-http-echo,
|
||||
libnginx-mod-http-geoip2,
|
||||
libnginx-mod-http-subs-filter,
|
||||
libnginx-mod-http-upstream-fair,
|
||||
libnginx-mod-stream-geoip2,
|
||||
nginx (>= ${source:Version}),
|
||||
nginx (<< ${source:Version}.1~),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
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
|
||||
and as a proxy to reduce the load on back-end HTTP or mail servers.
|
||||
.
|
||||
This metapackage provides a version of nginx with the complete set of
|
||||
standard modules included (but omitting some of those included in
|
||||
nginx-extra).
|
||||
nginx-extras).
|
||||
.
|
||||
STANDARD HTTP MODULES: Core, Access, Auth Basic, Auto Index, Browser, Empty
|
||||
GIF, FastCGI, Geo, Limit Connections, Limit Requests, Map, Memcached, Proxy,
|
||||
|
|
@ -105,28 +150,26 @@ Description: nginx web/proxy server (standard version)
|
|||
Slice, SSI, SSL, Stream, SSL Preread, Stub Status, Substitution, Thread Pool,
|
||||
Upstream, User ID, XSLT.
|
||||
.
|
||||
MAIL MODULES: Mail Core, Auth HTTP, Proxy, SSL, IMAP, POP3, SMTP.
|
||||
OPTIONAL MAIL MODULES: Mail Core, Auth HTTP, Proxy, SSL, IMAP, POP3, SMTP.
|
||||
.
|
||||
THIRD PARTY MODULES: Auth PAM, DAV Ext, Echo, HTTP Substitutions, Upstream
|
||||
Fair Queue.
|
||||
OPTIONAL STREAM MODULES: Stream Core, GeoIP, GeoIP2
|
||||
.
|
||||
THIRD PARTY MODULES: Auth PAM, DAV Ext, Echo, GeoIP2, HTTP Substitutions
|
||||
Upstream Fair Queue.
|
||||
|
||||
Package: nginx-light
|
||||
Architecture: any
|
||||
Priority: extra
|
||||
Depends: libnginx-mod-http-echo (= ${binary:Version}),
|
||||
nginx-common (= ${source:Version}),
|
||||
Architecture: all
|
||||
Depends: libnginx-mod-http-echo,
|
||||
nginx (>= ${source:Version}),
|
||||
nginx (<< ${source:Version}.1~),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Breaks: nginx (<< 1.4.5-1)
|
||||
Provides: httpd, httpd-cgi, nginx
|
||||
Conflicts: nginx-extras, nginx-full
|
||||
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,
|
||||
|
|
@ -140,37 +183,35 @@ Description: nginx web/proxy server (basic version)
|
|||
|
||||
Package: nginx-extras
|
||||
Architecture: any
|
||||
Priority: extra
|
||||
Depends: libnginx-mod-http-auth-pam (= ${binary:Version}),
|
||||
libnginx-mod-http-cache-purge (= ${binary:Version}),
|
||||
libnginx-mod-http-dav-ext (= ${binary:Version}),
|
||||
libnginx-mod-http-echo (= ${binary:Version}),
|
||||
libnginx-mod-http-fancyindex (= ${binary:Version}),
|
||||
Depends: nginx (= ${binary:Version}),
|
||||
libnginx-mod-http-geoip (= ${binary:Version}),
|
||||
libnginx-mod-http-headers-more-filter (= ${binary:Version}),
|
||||
libnginx-mod-http-image-filter (= ${binary:Version}),
|
||||
libnginx-mod-http-lua (= ${binary:Version}),
|
||||
libnginx-mod-http-perl (= ${binary:Version}),
|
||||
libnginx-mod-http-subs-filter (= ${binary:Version}),
|
||||
libnginx-mod-http-uploadprogress (= ${binary:Version}),
|
||||
libnginx-mod-http-upstream-fair (= ${binary:Version}),
|
||||
libnginx-mod-http-xslt-filter (= ${binary:Version}),
|
||||
libnginx-mod-mail (= ${binary:Version}),
|
||||
libnginx-mod-nchan (= ${binary:Version}),
|
||||
libnginx-mod-stream (= ${binary:Version}),
|
||||
nginx-common (= ${source:Version}),
|
||||
libnginx-mod-stream-geoip (= ${binary:Version}),
|
||||
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}
|
||||
Breaks: nginx (<< 1.4.5-1)
|
||||
Provides: httpd, httpd-cgi, nginx
|
||||
Conflicts: nginx-full, 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.
|
||||
.
|
||||
|
|
@ -181,18 +222,20 @@ Description: nginx web/proxy server (extended version)
|
|||
OPTIONAL HTTP MODULES: Addition, Auth Request, Charset, WebDAV, FLV, GeoIP,
|
||||
Gunzip, Gzip, Gzip Precompression, Headers, HTTP/2, Image Filter, Index, Log,
|
||||
MP4, Embedded Perl, Random Index, Real IP, Slice, Secure Link, SSI, SSL,
|
||||
Stream, SSL Preread, Stub Status, Substitution, Thread Pool, Upstream,
|
||||
User ID, XSLT.
|
||||
SSL Preread, Stub Status, Substitution, Thread Pool, Upstream, User ID, XSLT.
|
||||
.
|
||||
MAIL MODULES: Mail Core, Auth HTTP, Proxy, SSL, IMAP, POP3, SMTP.
|
||||
OPTIONAL MAIL MODULES: Mail Core, Auth HTTP, Proxy, SSL, IMAP, POP3, SMTP.
|
||||
.
|
||||
OPTIONAL STREAM MODULES: Stream, GeoIP, GeoIP2
|
||||
.
|
||||
THIRD PARTY MODULES: Auth PAM, Cache Purge, DAV Ext, Echo, Fancy Index,
|
||||
Headers More, Embedded Lua, HTTP Substitutions, Nchan, Upload Progress,
|
||||
GeoIP2, Headers More, Embedded Lua, HTTP Substitutions, Nchan, Upload Progress,
|
||||
Upstream Fair Queue.
|
||||
|
||||
Package: libnginx-mod-http-geoip
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends},
|
||||
Recommends: nginx,
|
||||
Description: GeoIP HTTP module for Nginx
|
||||
The ngx_http_geoip module creates variables with values depending on the
|
||||
client IP address, using the precompiled MaxMind databases.
|
||||
|
|
@ -202,7 +245,8 @@ Description: GeoIP HTTP module for Nginx
|
|||
|
||||
Package: libnginx-mod-http-image-filter
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends},
|
||||
Recommends: nginx,
|
||||
Description: HTTP image filter module for Nginx
|
||||
The ngx_http_image_filter module is a filter that transforms images in JPEG,
|
||||
GIF, and PNG formats.
|
||||
|
|
@ -212,7 +256,8 @@ Description: HTTP image filter module for Nginx
|
|||
|
||||
Package: libnginx-mod-http-xslt-filter
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends},
|
||||
Recommends: nginx,
|
||||
Description: XSLT Transformation module for Nginx
|
||||
The ngx_http_xslt_filter module is a filter that transforms XML responses
|
||||
using one or more XSLT stylesheets.
|
||||
|
|
@ -222,7 +267,8 @@ Description: XSLT Transformation module for Nginx
|
|||
|
||||
Package: libnginx-mod-mail
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends},
|
||||
Recommends: nginx,
|
||||
Description: Mail module for Nginx
|
||||
The nginx_mail module adds mail proxy support to nginx.
|
||||
.
|
||||
|
|
@ -231,7 +277,8 @@ Description: Mail module for Nginx
|
|||
|
||||
Package: libnginx-mod-stream
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends},
|
||||
Recommends: nginx,
|
||||
Description: Stream module for Nginx
|
||||
The nginx_stream module adds stream proxy support to nginx.
|
||||
.
|
||||
|
|
@ -239,10 +286,22 @@ Description: Stream module for Nginx
|
|||
also supports ACLs/connection limiting and configuring multiple operational
|
||||
parameters.
|
||||
|
||||
Package: libnginx-mod-stream-geoip
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends},
|
||||
libnginx-mod-stream (= ${binary:Version}),
|
||||
Recommends: nginx,
|
||||
Description: GeoIP Stream module for Nginx
|
||||
The ngx_stream_geoip module creates variables with values depending on the
|
||||
client IP address, using the precompiled MaxMind databases.
|
||||
.
|
||||
Those variables include country, region, city, latitude, longitude, postal
|
||||
code, etc.
|
||||
|
||||
Package: libnginx-mod-http-perl
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${perl:Depends}, ${shlibs:Depends}
|
||||
Replaces: nginx-extras (<< 1.9.14-1)
|
||||
Depends: ${misc:Depends}, ${perl:Depends}, ${shlibs:Depends},
|
||||
Recommends: nginx,
|
||||
Description: Perl module for Nginx
|
||||
Embed Perl runtime into nginx.
|
||||
.
|
||||
|
|
@ -250,136 +309,3 @@ Description: Perl module for Nginx
|
|||
in Perl and insert Perl calls into SSI.
|
||||
.
|
||||
Note that this module is marked experimental.
|
||||
|
||||
Package: libnginx-mod-http-auth-pam
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: PAM authentication module for Nginx
|
||||
The nginx_http_auth_pam module enables authentication using PAM.
|
||||
.
|
||||
The module uses PAM as a backend for simple http authentication. It
|
||||
also allows setting the pam service name to allow more fine grained control.
|
||||
|
||||
Package: libnginx-mod-http-lua
|
||||
Architecture: any
|
||||
Depends: libnginx-mod-http-ndk (= ${binary:Version}),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: Lua module for Nginx
|
||||
Embed Lua runtime into nginx.
|
||||
.
|
||||
This module embeds Lua, via the standard Lua 5.1 interpreter or LuaJIT
|
||||
2.0/2.1, into Nginx and by leveraging Nginx's subrequests, allows the
|
||||
integration of the powerful Lua threads (Lua coroutines) into the Nginx event
|
||||
model.
|
||||
|
||||
Package: libnginx-mod-http-ndk
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: Nginx Development Kit module
|
||||
The NDK is an Nginx module that is designed to extend the core functionality of
|
||||
the excellent Nginx webserver in a way that can be used as a basis of other
|
||||
Nginx modules.
|
||||
.
|
||||
It has functions and macros to deal with generic tasks that don't currently
|
||||
have generic code as part of the core distribution. The NDK itself adds few
|
||||
features that are seen from a user's point of view - it's just designed to help
|
||||
reduce the code that Nginx module developers need to write.
|
||||
|
||||
Package: libnginx-mod-nchan
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: Fast, flexible pub/sub server for Nginx
|
||||
Nchan is a scalable, flexible pub/sub server for the modern web, It can be
|
||||
configured as a standalone server, or as a shim between your application and
|
||||
tens, thousands, or millions of live subscribers. It can buffer messages in
|
||||
memory, on-disk, or via Redis. All connections are handled asynchronously and
|
||||
distributed among any number of worker processes. It can also scale to many
|
||||
nginx server instances with Redis.
|
||||
.
|
||||
Full documentation available at https://nchan.slact.net
|
||||
|
||||
Package: libnginx-mod-http-echo
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: Bring echo and more shell style goodies to Nginx
|
||||
Echo module wraps lots of Nginx internal APIs for streaming input and output,
|
||||
parallel/sequential subrequests, timers and sleeping, as well as various meta
|
||||
data accessing.
|
||||
.
|
||||
Basically it provides various utilities that help testing and debugging of
|
||||
other modules by trivially emulating different kinds of faked subrequest
|
||||
locations.
|
||||
.
|
||||
People will also find it useful in real-world applications that need to:
|
||||
.
|
||||
1. Serve static contents directly from memory.
|
||||
2. Wrap the upstream response with custom header and footer (kinda like the
|
||||
addition module but with contents read directly from the config file and
|
||||
Nginx variables).
|
||||
3. Merge contents of various "Nginx locations" (i.e., subrequests) together in
|
||||
a single main request (using echo_location and its friends).
|
||||
|
||||
Package: libnginx-mod-http-upstream-fair
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: Nginx Upstream Fair Proxy Load Balancer
|
||||
The Nginx fair proxy balancer enhances the standard round-robin load balancer
|
||||
provided with Nginx so that it tracks busy backend servers and adjusts
|
||||
balancing accordingly.
|
||||
|
||||
Package: libnginx-mod-http-headers-more-filter
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: Set and clear input and output headers for Nginx
|
||||
The Headers More module allows you to add, set, or clear any output or input
|
||||
header that you specify.
|
||||
.
|
||||
This is an enhanced version of the standard headers module because it provides
|
||||
more utilities like resetting or clearing "builtin headers" like Content-Type,
|
||||
Content-Length, and Server.
|
||||
|
||||
Package: libnginx-mod-http-cache-purge
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: Purge content from Nginx caches
|
||||
Cache Purge module adds purging capabilities to Nginx. It allows purging
|
||||
content from caches used by all of Nginx proxy modules, like FastCGI, Proxy,
|
||||
SCGI and uWSGI.
|
||||
|
||||
Package: libnginx-mod-http-fancyindex
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: Fancy indexes module for the Nginx
|
||||
The Fancy Index module makes possible the generation of file listings, like
|
||||
the built-in autoindex module does, but adding a touch of style by introducing
|
||||
ways to customize the result.
|
||||
|
||||
Package: libnginx-mod-http-uploadprogress
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: Upload progress system for Nginx
|
||||
Upload progress module is an implementation of an upload progress system, that
|
||||
monitors RFC1867 POST uploads as they are transmitted to upstream servers.
|
||||
.
|
||||
It works by tracking the uploads proxied by Nginx to upstream servers without
|
||||
analysing the uploaded content and offers a web API to report upload progress
|
||||
in Javscript, Json or any other format.
|
||||
|
||||
Package: libnginx-mod-http-subs-filter
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: Substitution filter module for Nginx
|
||||
Subsitution Nginx module can do both regular expression and fixed string
|
||||
substitutions on response bodies. The module is quite different from Nginx's
|
||||
native Substitution module. It scans the output chains buffer and
|
||||
matches string line by line, just like Apache's mod_substitute.
|
||||
|
||||
Package: libnginx-mod-http-dav-ext
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: WebDAV missing commands support for Nginx
|
||||
WebDAV Ext module complements the Nginx WebDAV module to provide a full
|
||||
WebDAV support.
|
||||
.
|
||||
WebDAV Ext provides the missing PROPFIND & OPTIONS methods.
|
||||
|
|
|
|||
204
debian/copyright
vendored
204
debian/copyright
vendored
|
|
@ -1,26 +1,14 @@
|
|||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: nginx
|
||||
Source: http://nginx.org/en/download.html
|
||||
Source: https://nginx.org/en/download.html
|
||||
|
||||
Files: *
|
||||
Copyright: 2002-2014 Igor Sysoev
|
||||
2011-2014 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: BSD-2-clause
|
||||
|
||||
Files: src/http/modules/ngx_http_scgi_module.c
|
||||
src/http/modules/ngx_http_uwsgi_module.c
|
||||
Copyright: Copyright (C) Igor Sysoev
|
||||
Copyright (C) Nginx, Inc.
|
||||
2009-2010 Unbit S.a.s.
|
||||
2008 Manlio Perillo (manlio.perillo@gmail.com)
|
||||
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
|
||||
|
|
@ -28,83 +16,67 @@ 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>
|
||||
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/modules/headers-more-nginx-module/*
|
||||
Copyright: Copyright (c) 2009-2014, Yichun "agentzh" Zhang (章亦春) <agentzh@gmail.com>, CloudFlare Inc.
|
||||
Copyright (c) 2010-2013, Bernd Dorn
|
||||
Copyright (c) Igor Sysoev
|
||||
Files: debian/apport/*
|
||||
Copyright: 2015, Thomas Ward <teward@ubuntu.com>
|
||||
License: BSD-2-clause
|
||||
|
||||
Files: debian/modules/nginx-development-kit/*
|
||||
Copyright: Marcus Clyne
|
||||
License: BSD-3-clause
|
||||
Files: debian/debhelper/*
|
||||
Copyright: 2022, Miao Wang
|
||||
License: Expat
|
||||
|
||||
Files: debian/modules/nginx-development-kit/src/hash/md5.h
|
||||
debian/modules/nginx-development-kit/src/hash/sha.h
|
||||
Copyright: Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
License: BSD-4-clause
|
||||
Files: debian/debhelper/dh_nginx
|
||||
Copyright: 2016, Christos Trochalakis <ctrochalakis@debian.org>
|
||||
License: GPL-2+
|
||||
|
||||
Files: debian/modules/nginx-auth-pam/*
|
||||
Copyright: 2008-2013, Sergio Talens Oliag
|
||||
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: debian/modules/nginx-echo/*
|
||||
Copyright: Copyright (c) 2009-2014, Yichun "agentzh" Zhang <agentzh@gmail.com>
|
||||
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: debian/modules/nginx-lua/*
|
||||
Copyright: Copyright (C) 2009-2014, by Xiaozhe Wang (chaoslawful) <chaoslawful@gmail.com>.
|
||||
Copyright (C) 2009-2014, by Yichun "agentzh" Zhang (章亦春) <agentzh@gmail.com>, CloudFlare Inc.
|
||||
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: debian/modules/nginx-upstream-fair/*
|
||||
Copyright: Copyright (c) 2007 Grzegorz Nosek
|
||||
Igor Sysoev
|
||||
Files: src/http/ngx_http_huff_encode.c
|
||||
Copyright: Valentin V. Bartenev
|
||||
Nginx, Inc.
|
||||
2015, Vlad Krasnov
|
||||
License: BSD-2-clause
|
||||
|
||||
Files: debian/modules/nchan/*
|
||||
Copyright: 2009-2016 Leo Ponomarev
|
||||
License: MIT
|
||||
|
||||
Files: debian/modules/nchan/src/store/redis/cmp.*
|
||||
Copyright: 2015 Charles Gunyon
|
||||
License: MIT
|
||||
|
||||
Files: debian/modules/nchan/src/hiredis/*
|
||||
Copyright: 2009-2011, Salvatore Sanfilippo
|
||||
2010-2011, Pieter Noordhuis
|
||||
Matt Stancliff
|
||||
Jan-Erik Rediger
|
||||
License: BSD-3-clause
|
||||
|
||||
Files: debian/modules/nginx-upload-progress/*
|
||||
Copyright: Brice Figureau
|
||||
2002-2007, Igor Sysoev
|
||||
License: BSD-2-clause
|
||||
|
||||
Files: debian/modules/nginx-cache-purge/*
|
||||
Copyright: 2009-2012, FRiCKLE <info@frickle.com>,
|
||||
2009-2012, Piotr Sikora <piotr.sikora@frickle.com>
|
||||
License: BSD-2-clause
|
||||
|
||||
Files: debian/modules/nginx-dav-ext-module/*
|
||||
Copyright: Arutyunyan Roman <arut@qip.ru>
|
||||
License: BSD-2-clause
|
||||
|
||||
Files: debian/modules/ngx-fancyindex/*
|
||||
Copyright: Copyright (c) Adrian Perez <aperez@igalia.com>
|
||||
License: BSD-2-clause
|
||||
|
||||
Files: debian/modules/ngx_http_substitutions_filter_module/*
|
||||
Copyright: Copyright (C) 2014 by Weibin Yao <yaoweibin@gmail.com>
|
||||
Files: src/stream/ngx_stream_set_module.c
|
||||
Copyright: Pavel Pautov
|
||||
Nginx, Inc.
|
||||
License: BSD-2-clause
|
||||
|
||||
License: BSD-2-clause
|
||||
|
|
@ -132,59 +104,7 @@ License: BSD-2-clause
|
|||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
License: BSD-3-clause
|
||||
All rights reserved.
|
||||
.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. Neither the name of the University nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this
|
||||
software without specific prior written permission.
|
||||
.
|
||||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS
|
||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
License: BSD-4-clause
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
4. Neither the name of the University nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
.
|
||||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
License: MIT
|
||||
License: Expat
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to
|
||||
deal in the Software without restriction, including without limitation the
|
||||
|
|
@ -202,3 +122,15 @@ License: MIT
|
|||
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'.
|
||||
|
|
|
|||
178
debian/dh_nginx → debian/debhelper/dh_nginx
vendored
178
debian/dh_nginx → debian/debhelper/dh_nginx
vendored
|
|
@ -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
|
||||
|
|
@ -48,7 +59,7 @@ sub nginx_modules_conf_installdir
|
|||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<dh_nginx> [S<I<debhelper options>>] [B<-n>|B<--noscripts>]
|
||||
B<dh_nginx> [S<I<debhelper options>>] [B<-n>|B<--noscripts>] [B<--in-nginx-tree>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
|
|
@ -63,6 +74,8 @@ It supports the following configuration types
|
|||
=item *
|
||||
Nginx modules
|
||||
|
||||
=back
|
||||
|
||||
=head1 INVOCATION
|
||||
|
||||
%:
|
||||
|
|
@ -82,6 +95,11 @@ Lists files to be registered with the Nginx HTTP server. The file is
|
|||
interpreted as line separated list of installation stanzas, where each entry
|
||||
consists of whitespace separated values conforming to the file semantics below.
|
||||
|
||||
When this file is missing but the name of the package looks like a nginx module,
|
||||
the module load file and its loading priority is automatically generated inferring
|
||||
from the package name. In this case, I<package-name>B<.install> or other mechanisms
|
||||
should be used for copying the B<.so> library into the correct place.
|
||||
|
||||
=head2 FILE SEMANTICS
|
||||
|
||||
Each line consists of a triple
|
||||
|
|
@ -128,6 +146,10 @@ configuration by default.
|
|||
|
||||
Do not modify F<postinst>/F<postrm>/F<prerm> maintainer scripts.
|
||||
|
||||
=item B<--in-nginx-tree>
|
||||
|
||||
Specify this option when building in-tree modules along with nginx. When
|
||||
specified, nginx abi version is not required in package name.
|
||||
|
||||
=back
|
||||
|
||||
|
|
@ -152,6 +174,7 @@ dh_nginx is heavily influnced by dh_apache2 written by Arno Toell
|
|||
|
||||
init(options => {
|
||||
"e|noenable" => \$dh{NOENABLE},
|
||||
"in-nginx-tree" => \$nginx_in_tree,
|
||||
});
|
||||
|
||||
foreach my $package ((@{$dh{DOPACKAGES}}))
|
||||
|
|
@ -162,85 +185,116 @@ foreach my $package ((@{$dh{DOPACKAGES}}))
|
|||
|
||||
my $file = pkgfile($package, "nginx");
|
||||
my $tmp = tmpdir($package);
|
||||
my $installdir = $tmp . "/" . nginx_modules_conf_installdir();
|
||||
my $modinstalldir = $tmp . "/" . nginx_api_installdir();
|
||||
|
||||
my @files_to_register = filedoublearray($file, ".") if $file;
|
||||
foreach my $line (@files_to_register)
|
||||
{
|
||||
my $type = lc(shift @{$line}) if $line->[0];
|
||||
my $source = shift @{$line} if $line->[0];
|
||||
my @arguments = @{$line};
|
||||
my $destination;
|
||||
|
||||
$type = "modules" if $type eq "mod";
|
||||
my $installdir = $tmp . "/" . nginx_modules_conf_installdir();
|
||||
|
||||
verbose_print("$type -- $source -- @arguments\n\n");
|
||||
|
||||
if ($type eq "modules")
|
||||
if ($file){
|
||||
my @files_to_register = filedoublearray($file, ".") if $file;
|
||||
foreach my $line (@files_to_register)
|
||||
{
|
||||
my $basesource = basename($source);
|
||||
my $type = lc(shift @{$line}) if $line->[0];
|
||||
my $source = shift @{$line} if $line->[0];
|
||||
my @arguments = @{$line};
|
||||
my $destination;
|
||||
|
||||
$type = "modules" if $type eq "mod";
|
||||
|
||||
verbose_print("$type -- $source -- @arguments\n\n");
|
||||
|
||||
if ($type eq "modules")
|
||||
{
|
||||
if ($basesource =~ m/\.conf$/)
|
||||
my $basesource = basename($source);
|
||||
|
||||
if ($type eq "modules")
|
||||
{
|
||||
my $enablename = $basesource;
|
||||
my $prio = $#arguments >= 0 ? $arguments[0] : 50;
|
||||
$destination = "$prio-$basesource";
|
||||
push @{$PACKAGE_TYPE{'has_a_module'}}, "$enablename:$destination";
|
||||
verbose_print("Installing module configuration $enablename into $installdir prio:$prio\n");
|
||||
}
|
||||
elsif ($basesource =~ m/\.so$/)
|
||||
{
|
||||
my $modinstalldir = $tmp . "/" . nginx_api_installdir();
|
||||
verbose_print("Installing module binary $source into $modinstalldir\n");
|
||||
if (! -d $modinstalldir)
|
||||
if ($basesource =~ m/\.conf$/)
|
||||
{
|
||||
complex_doit("mkdir","-p", $modinstalldir);
|
||||
complex_doit("chmod","755","$modinstalldir");
|
||||
my $enablename = $basesource;
|
||||
my $prio = $#arguments >= 0 ? $arguments[0] : 50;
|
||||
$destination = "$prio-$basesource";
|
||||
push @{$PACKAGE_TYPE{'has_a_module'}}, "$enablename:$destination";
|
||||
verbose_print("Installing module configuration $enablename into $installdir prio:$prio\n");
|
||||
}
|
||||
complex_doit("cp", $source, $modinstalldir);
|
||||
next;
|
||||
elsif ($basesource =~ m/\.so$/)
|
||||
{
|
||||
verbose_print("Installing module binary $source into $modinstalldir\n");
|
||||
if (! -d $modinstalldir)
|
||||
{
|
||||
complex_doit("mkdir","-p", $modinstalldir);
|
||||
complex_doit("chmod","755","$modinstalldir");
|
||||
}
|
||||
complex_doit("cp", $source, $modinstalldir);
|
||||
next;
|
||||
}
|
||||
|
||||
# TODO
|
||||
error("module: \"$basesource\" needs .conf, .so or suffix") if $basesource !~ m/\.(conf|so)/;
|
||||
}
|
||||
|
||||
# TODO
|
||||
error("module: \"$basesource\" needs .conf, .so or suffix") if $basesource !~ m/\.(conf|so)/;
|
||||
}
|
||||
if (! -d $installdir)
|
||||
{
|
||||
complex_doit("mkdir","-p",$installdir);
|
||||
complex_doit("chmod","755","$installdir");
|
||||
}
|
||||
complex_doit("cp",$source,$installdir);
|
||||
complex_doit("chmod","644","$installdir/$basesource");
|
||||
|
||||
if (! -d $installdir)
|
||||
}
|
||||
else
|
||||
{
|
||||
complex_doit("mkdir","-p",$installdir);
|
||||
complex_doit("chmod","755","$installdir");
|
||||
error("Unknown parameter: $type\n");
|
||||
}
|
||||
complex_doit("cp",$source,$installdir);
|
||||
complex_doit("chmod","644","$installdir/$basesource");
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
error("Unknown parameter: $type\n");
|
||||
}
|
||||
} elsif ($package =~ /^libnginx-mod-/){
|
||||
verbose_print("$package might be a nginx module\n");
|
||||
|
||||
my $module = $package;
|
||||
$module =~ s/^libnginx-mod-//;
|
||||
verbose_print("Guessed module name: $module\n");
|
||||
|
||||
my $modulepath = $module;
|
||||
$modulepath =~ s/-/_/g;
|
||||
|
||||
if (-e "$modinstalldir/ngx_${modulepath}_module.so"){
|
||||
my $prio = 50;
|
||||
if ($module =~ /^\w+-/ && !($module =~ /^http-/) ){
|
||||
$prio = 70;
|
||||
}
|
||||
verbose_print("Guessed load priority: $prio\n");
|
||||
|
||||
my $conf_name = "mod-$module.conf";
|
||||
install_dir($installdir);
|
||||
verbose_print("Installing module configuration $conf_name into $installdir prio:$prio\n");
|
||||
open(MOD_CONF, $dh{NO_ACT} ? ">&STDERR" : ">$installdir/$conf_name") or error("open($installdir/$conf_name): $!");
|
||||
print(MOD_CONF "load_module modules/ngx_${modulepath}_module.so;\n");
|
||||
close(MOD_CONF);
|
||||
chmod(0644, "$installdir/$conf_name") or error("chmod(0644, $installdir/$conf_name): $!");
|
||||
push @{$PACKAGE_TYPE{'has_a_module'}}, "$conf_name:$prio-$conf_name";
|
||||
} else {
|
||||
verbose_print("$package is not a nginx module because $modinstalldir/ngx_${modulepath}_module.so not found");
|
||||
verbose_print("If it is not correct, check if the module is installed before invoking this script");
|
||||
}
|
||||
}
|
||||
|
||||
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");
|
||||
}
|
||||
addsubstvar($package, "misc:Depends", nginx_depends());
|
||||
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})
|
||||
{
|
||||
14
debian/debhelper/nginx.pm
vendored
Normal file
14
debian/debhelper/nginx.pm
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/perl
|
||||
use warnings;
|
||||
use strict;
|
||||
use Debian::Debhelper::Dh_Lib;
|
||||
|
||||
add_command_options( "dh_auto_test", "--buildsystem=nginx_mod" );
|
||||
add_command_options( "dh_auto_configure", "--buildsystem=nginx_mod" );
|
||||
add_command_options( "dh_auto_build", "--buildsystem=nginx_mod" );
|
||||
add_command_options( "dh_auto_install", "--buildsystem=nginx_mod" );
|
||||
add_command_options( "dh_auto_clean", "--buildsystem=nginx_mod" );
|
||||
|
||||
insert_after("dh_install", "dh_nginx");
|
||||
|
||||
1;
|
||||
138
debian/debhelper/nginx_mod.pm
vendored
Normal file
138
debian/debhelper/nginx_mod.pm
vendored
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
# A build system class for handling nginx modules.
|
||||
#
|
||||
# Copyright: © 2022 Miao Wang
|
||||
# License: MIT
|
||||
|
||||
package Debian::Debhelper::Buildsystem::nginx_mod;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Dpkg::Deps qw(deps_parse);
|
||||
use Dpkg::Control::Info;
|
||||
use Debian::Debhelper::Dh_Lib qw(error doit getpackages addsubstvar);
|
||||
use File::Spec;
|
||||
use parent qw(Debian::Debhelper::Buildsystem::makefile);
|
||||
use Config;
|
||||
|
||||
sub DESCRIPTION {
|
||||
"Nginx Module (config)"
|
||||
}
|
||||
|
||||
sub check_auto_buildable {
|
||||
my ($this, $step) = @_;
|
||||
|
||||
return 1 if -e $this->get_sourcepath("config");
|
||||
}
|
||||
|
||||
sub _NGINX_SRC_DIR {
|
||||
"/usr/share/nginx/src"
|
||||
}
|
||||
|
||||
sub _NDK_SRC_DIR {
|
||||
"/usr/share/nginx-ndk/src"
|
||||
}
|
||||
|
||||
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");
|
||||
$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;
|
||||
}
|
||||
|
||||
sub configure {
|
||||
my $this=shift;
|
||||
|
||||
doit({
|
||||
"chdir" => $this->_NGINX_SRC_DIR,
|
||||
"update_env" => {
|
||||
"src_dir" => $this->get_sourcedir,
|
||||
"bld_dir" => $this->get_builddir,
|
||||
"pwd_dir" => $this->{cwd},
|
||||
},
|
||||
}, "bash", "-c", '. ./conf_flags
|
||||
./configure \\
|
||||
--with-cc-opt="$(cd "$pwd_dir/$src_dir"; dpkg-buildflags --get CFLAGS) -fPIC $(cd "$pwd_dir/$src_dir"; dpkg-buildflags --get CPPFLAGS)" \\
|
||||
--with-ld-opt="$(cd "$pwd_dir/$src_dir"; dpkg-buildflags --get LDFLAGS) -fPIC" \\
|
||||
"${NGX_CONF_FLAGS[@]}" \\
|
||||
--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", @_);
|
||||
}
|
||||
|
||||
sub build {
|
||||
my $this=shift;
|
||||
|
||||
$this->do_make("-f", File::Spec->catfile($this->{cwd}, $this->get_buildpath("Makefile")), "-C", $this->_NGINX_SRC_DIR, "modules");
|
||||
}
|
||||
|
||||
sub test {
|
||||
my $this=shift;
|
||||
|
||||
if ( $this->{has_ndk} and !grep( /^ndk_http_module.so$/, @_ ) ) {
|
||||
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
|
||||
echo "load_module modules/$pre_dep;" >> "$tmp_conf"
|
||||
done
|
||||
for i in *.so; do
|
||||
echo "load_module $PWD/$i;" >> "$tmp_conf"
|
||||
done
|
||||
echo "events{}" >> "$tmp_conf"
|
||||
/usr/sbin/nginx -g "error_log /dev/null; pid /dev/null;" -t -q -c "$PWD/$tmp_conf"
|
||||
rm -f "$tmp_conf"
|
||||
', "dummy", @_);
|
||||
}
|
||||
|
||||
sub install {
|
||||
my $this=shift;
|
||||
my $destdir=shift;
|
||||
|
||||
$this->doit_in_builddir("bash", "-e", "-o", "pipefail", "-c", '
|
||||
destdir=$1
|
||||
mkdir -p "$destdir/usr/lib/nginx/modules"
|
||||
for i in *.so; do
|
||||
cp "$i" "$destdir/usr/lib/nginx/modules/"
|
||||
done
|
||||
', "dummy", $destdir);
|
||||
}
|
||||
|
||||
sub clean {
|
||||
my $this=shift;
|
||||
$this->rmdir_builddir();
|
||||
}
|
||||
|
||||
sub has_build_dep {
|
||||
my $this=shift;
|
||||
my $bd=shift;
|
||||
my $control = Dpkg::Control::Info->new()->get_source();
|
||||
my $depends = deps_parse($control->{'Build-Depends'});
|
||||
foreach (split /,\s+/,$depends) {
|
||||
if ($_ =~ /$bd/) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
1
|
||||
11
debian/gbp.conf
vendored
11
debian/gbp.conf
vendored
|
|
@ -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
|
||||
|
|
|
|||
1
debian/help/examples/http
vendored
1
debian/help/examples/http
vendored
|
|
@ -38,7 +38,6 @@ http {
|
|||
##
|
||||
|
||||
gzip on;
|
||||
gzip_disable "msie6";
|
||||
|
||||
# gzip_vary on;
|
||||
# gzip_proxied any;
|
||||
|
|
|
|||
19
debian/help/examples/wordpress
vendored
19
debian/help/examples/wordpress
vendored
|
|
@ -34,8 +34,8 @@ server {
|
|||
}
|
||||
|
||||
# This location block protects against a known attack. It happens if
|
||||
# the attacker uploads a non-php file and attempts to run it as a
|
||||
# php file on the server.
|
||||
# the attacker uploads a non-PHP file and attempts to run it as a
|
||||
# PHP file on the server.
|
||||
location ~ \..*/.*\.php$ {
|
||||
return 403;
|
||||
}
|
||||
|
|
@ -43,7 +43,7 @@ server {
|
|||
# This is our primary location block. The try_files directive will
|
||||
# attempt to serve the data in the order listed. First try the exact
|
||||
# request (such as an image or text file). If it doesn't exist, see if
|
||||
# the directory exists. If not, then we move to the last options which
|
||||
# the directory exists. If not, then we move to the last option which
|
||||
# passes the request to /index.php with the requested query.
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php?q=$uri&$args;
|
||||
|
|
@ -51,7 +51,7 @@ server {
|
|||
|
||||
# If a PHP file is served, this block will handle the request. This block
|
||||
# works on the assumption you are using php-cgi listening on /tmp/phpcgi.socket.
|
||||
# Please see the php example (usr/share/doc/nginx/exmaples/php) for more
|
||||
# Please see the PHP example (/usr/share/doc/nginx-doc/php) for more
|
||||
# information about setting up PHP.
|
||||
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
|
||||
location ~ \.php$ {
|
||||
|
|
@ -61,12 +61,11 @@ server {
|
|||
fastcgi_intercept_errors on;
|
||||
fastcgi_pass unix:/tmp/phpcgi.socket;
|
||||
}
|
||||
|
||||
# As mentioned above, Nignx is king of static. If we're serving a static
|
||||
# file that ends with one of the following extensions, it is best to set
|
||||
# a very high expires time. This will generate fewer requests for the
|
||||
# file. These requests will be logged if found, but not if they don't
|
||||
# exist.
|
||||
|
||||
# If we're serving a static file that ends with one of the following
|
||||
# extensions, it is best to set a very high expires time. This will
|
||||
# generate fewer requests for the file. These requests will be logged if
|
||||
# found, but not if they don't exist.
|
||||
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
|
||||
expires max;
|
||||
log_not_found off;
|
||||
|
|
|
|||
13
debian/libnginx-mod-http-auth-pam.nginx
vendored
13
debian/libnginx-mod-http-auth-pam.nginx
vendored
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use File::Basename;
|
||||
|
||||
# Guess module name
|
||||
$module = basename($0, '.nginx');
|
||||
$module =~ s/^libnginx-mod-//;
|
||||
|
||||
$modulepath = $module;
|
||||
$modulepath =~ s/-/_/g;
|
||||
|
||||
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
|
||||
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";
|
||||
13
debian/libnginx-mod-http-dav-ext.nginx
vendored
13
debian/libnginx-mod-http-dav-ext.nginx
vendored
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use File::Basename;
|
||||
|
||||
# Guess module name
|
||||
$module = basename($0, '.nginx');
|
||||
$module =~ s/^libnginx-mod-//;
|
||||
|
||||
$modulepath = $module;
|
||||
$modulepath =~ s/-/_/g;
|
||||
|
||||
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
|
||||
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";
|
||||
13
debian/libnginx-mod-http-echo.nginx
vendored
13
debian/libnginx-mod-http-echo.nginx
vendored
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use File::Basename;
|
||||
|
||||
# Guess module name
|
||||
$module = basename($0, '.nginx');
|
||||
$module =~ s/^libnginx-mod-//;
|
||||
|
||||
$modulepath = $module;
|
||||
$modulepath =~ s/-/_/g;
|
||||
|
||||
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
|
||||
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";
|
||||
13
debian/libnginx-mod-http-fancyindex.nginx
vendored
13
debian/libnginx-mod-http-fancyindex.nginx
vendored
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use File::Basename;
|
||||
|
||||
# Guess module name
|
||||
$module = basename($0, '.nginx');
|
||||
$module =~ s/^libnginx-mod-//;
|
||||
|
||||
$modulepath = $module;
|
||||
$modulepath =~ s/-/_/g;
|
||||
|
||||
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
|
||||
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";
|
||||
2
debian/libnginx-mod-http-geoip.nginx
vendored
2
debian/libnginx-mod-http-geoip.nginx
vendored
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use File::Basename;
|
||||
|
||||
# Guess module name
|
||||
$module = basename($0, '.nginx');
|
||||
$module =~ s/^libnginx-mod-//;
|
||||
|
||||
$modulepath = $module;
|
||||
$modulepath =~ s/-/_/g;
|
||||
|
||||
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
|
||||
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";
|
||||
2
debian/libnginx-mod-http-image-filter.nginx
vendored
2
debian/libnginx-mod-http-image-filter.nginx
vendored
|
|
@ -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";
|
||||
|
|
|
|||
13
debian/libnginx-mod-http-lua.nginx
vendored
13
debian/libnginx-mod-http-lua.nginx
vendored
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use File::Basename;
|
||||
|
||||
# Guess module name
|
||||
$module = basename($0, '.nginx');
|
||||
$module =~ s/^libnginx-mod-//;
|
||||
|
||||
$modulepath = $module;
|
||||
$modulepath =~ s/-/_/g;
|
||||
|
||||
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
|
||||
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";
|
||||
2
debian/libnginx-mod-http-ndk.nginx
vendored
2
debian/libnginx-mod-http-ndk.nginx
vendored
|
|
@ -1,2 +0,0 @@
|
|||
mod debian/build-extras/objs/ndk_http_module.so
|
||||
mod debian/libnginx-mod.conf/mod-http-ndk.conf 10
|
||||
4
debian/libnginx-mod-http-perl.install
vendored
4
debian/libnginx-mod-http-perl.install
vendored
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
libnginx-mod-http-perl: wrong-section-according-to-package-name libnginx-mod-http-perl => perl
|
||||
2
debian/libnginx-mod-http-perl.nginx
vendored
2
debian/libnginx-mod-http-perl.nginx
vendored
|
|
@ -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";
|
||||
|
|
|
|||
13
debian/libnginx-mod-http-subs-filter.nginx
vendored
13
debian/libnginx-mod-http-subs-filter.nginx
vendored
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use File::Basename;
|
||||
|
||||
# Guess module name
|
||||
$module = basename($0, '.nginx');
|
||||
$module =~ s/^libnginx-mod-//;
|
||||
|
||||
$modulepath = $module;
|
||||
$modulepath =~ s/-/_/g;
|
||||
|
||||
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
|
||||
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";
|
||||
13
debian/libnginx-mod-http-uploadprogress.nginx
vendored
13
debian/libnginx-mod-http-uploadprogress.nginx
vendored
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use File::Basename;
|
||||
|
||||
# Guess module name
|
||||
$module = basename($0, '.nginx');
|
||||
$module =~ s/^libnginx-mod-//;
|
||||
|
||||
$modulepath = $module;
|
||||
$modulepath =~ s/-/_/g;
|
||||
|
||||
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
|
||||
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";
|
||||
13
debian/libnginx-mod-http-upstream-fair.nginx
vendored
13
debian/libnginx-mod-http-upstream-fair.nginx
vendored
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use File::Basename;
|
||||
|
||||
# Guess module name
|
||||
$module = basename($0, '.nginx');
|
||||
$module =~ s/^libnginx-mod-//;
|
||||
|
||||
$modulepath = $module;
|
||||
$modulepath =~ s/-/_/g;
|
||||
|
||||
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
|
||||
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";
|
||||
2
debian/libnginx-mod-http-xslt-filter.nginx
vendored
2
debian/libnginx-mod-http-xslt-filter.nginx
vendored
|
|
@ -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";
|
||||
|
|
|
|||
2
debian/libnginx-mod-mail.nginx
vendored
2
debian/libnginx-mod-mail.nginx
vendored
|
|
@ -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";
|
||||
|
|
|
|||
13
debian/libnginx-mod-nchan.nginx
vendored
13
debian/libnginx-mod-nchan.nginx
vendored
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
use File::Basename;
|
||||
|
||||
# Guess module name
|
||||
$module = basename($0, '.nginx');
|
||||
$module =~ s/^libnginx-mod-//;
|
||||
|
||||
$modulepath = $module;
|
||||
$modulepath =~ s/-/_/g;
|
||||
|
||||
print "mod debian/build-extras/objs/ngx_${modulepath}_module.so\n";
|
||||
print "mod debian/libnginx-mod.conf/mod-${module}.conf\n";
|
||||
|
|
@ -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/libnginx-mod.conf/mod-${module}.conf\n";
|
||||
print "mod debian/build-bin/objs/ngx_${modulepath}_module.so\n";
|
||||
print "mod debian/libnginx-mod.conf/mod-${module}.conf 70\n";
|
||||
2
debian/libnginx-mod-stream.nginx
vendored
2
debian/libnginx-mod-stream.nginx
vendored
|
|
@ -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
11
debian/libnginx-mod.abisubstvars
vendored
Normal 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
|
||||
|
|
@ -1 +0,0 @@
|
|||
load_module modules/ngx_http_auth_pam_module.so;
|
||||
|
|
@ -1 +0,0 @@
|
|||
load_module modules/ngx_http_cache_purge_module.so;
|
||||
|
|
@ -1 +0,0 @@
|
|||
load_module modules/ngx_http_dav_ext_module.so;
|
||||
1
debian/libnginx-mod.conf/mod-http-echo.conf
vendored
1
debian/libnginx-mod.conf/mod-http-echo.conf
vendored
|
|
@ -1 +0,0 @@
|
|||
load_module modules/ngx_http_echo_module.so;
|
||||
|
|
@ -1 +0,0 @@
|
|||
load_module modules/ngx_http_fancyindex_module.so;
|
||||
|
|
@ -1 +0,0 @@
|
|||
load_module modules/ngx_http_headers_more_filter_module.so;
|
||||
1
debian/libnginx-mod.conf/mod-http-lua.conf
vendored
1
debian/libnginx-mod.conf/mod-http-lua.conf
vendored
|
|
@ -1 +0,0 @@
|
|||
load_module modules/ngx_http_lua_module.so;
|
||||
|
|
@ -1 +0,0 @@
|
|||
load_module modules/ngx_http_subs_filter_module.so;
|
||||
|
|
@ -1 +0,0 @@
|
|||
load_module modules/ngx_http_uploadprogress_module.so;
|
||||
|
|
@ -1 +0,0 @@
|
|||
load_module modules/ngx_http_upstream_fair_module.so;
|
||||
1
debian/libnginx-mod.conf/mod-nchan.conf
vendored
1
debian/libnginx-mod.conf/mod-nchan.conf
vendored
|
|
@ -1 +0,0 @@
|
|||
load_module modules/ngx_nchan_module.so;
|
||||
1
debian/libnginx-mod.conf/mod-stream-geoip.conf
vendored
Normal file
1
debian/libnginx-mod.conf/mod-stream-geoip.conf
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
load_module modules/ngx_stream_geoip_module.so;
|
||||
63
debian/modules/README.Modules-versions
vendored
63
debian/modules/README.Modules-versions
vendored
|
|
@ -1,63 +0,0 @@
|
|||
README for Modules versions
|
||||
---------------------------
|
||||
|
||||
This file lists third party modules built with nginx in Debian, homepage and
|
||||
version.
|
||||
|
||||
headers-more-nginx-module
|
||||
Homepage: https://github.com/agentzh/headers-more-nginx-module
|
||||
Version: v0.32
|
||||
|
||||
nginx-development-kit
|
||||
Homepage: https://github.com/simpl/ngx_devel_kit/
|
||||
Version: v0.3.0
|
||||
|
||||
nginx-auth-pam
|
||||
Homepage: https://github.com/stogh/ngx_http_auth_pam_module
|
||||
Version: 1.5.1
|
||||
|
||||
nginx-echo
|
||||
Homepage: https://github.com/agentzh/echo-nginx-module
|
||||
Version: v0.60
|
||||
Patch: build-nginx-1.11.11.patch
|
||||
|
||||
nginx-lua
|
||||
Homepage: https://github.com/openresty/lua-nginx-module
|
||||
Version: v0.10.7
|
||||
Patch: openssl-1.1.0.patch
|
||||
Patch: build-nginx-1.11.11.patch
|
||||
|
||||
nginx-upstream-fair
|
||||
Homepage: https://github.com/gnosek/nginx-upstream-fair
|
||||
Version: a18b409
|
||||
Patch: dynamic-module.patch
|
||||
Patch: openssl-1.1.0.patch
|
||||
Patch: drop-default-port.patch
|
||||
|
||||
nchan
|
||||
Homepage: https://github.com/slact/nchan
|
||||
Version: 1.0.8
|
||||
|
||||
nginx-upload-progress
|
||||
Homepage: https://github.com/masterzen/nginx-upload-progress-module
|
||||
rm -r debian/nginx-upload-progress/test
|
||||
Version: v0.9.2
|
||||
|
||||
nginx-cache-purge
|
||||
Homepage: https://github.com/FRiCKLE/ngx_cache_purge/
|
||||
Version: 2.3
|
||||
Patch: dynamic-module.patch
|
||||
|
||||
nginx-dav-ext-module
|
||||
Homepage: https://github.com/arut/nginx-dav-ext-module
|
||||
Version: v0.0.3
|
||||
Patch: dynamic-module.patch
|
||||
|
||||
ngx-fancyindex
|
||||
Homepage: https://github.com/aperezdc/ngx-fancyindex
|
||||
Version: v0.4.1
|
||||
|
||||
ngx_http_substitutions_filter_module
|
||||
Homepage: https://github.com/yaoweibin/ngx_http_substitutions_filter_module
|
||||
Version: v0.6.4
|
||||
Patch: dynamic-module.patch
|
||||
694
debian/modules/nchan/README.md
vendored
694
debian/modules/nchan/README.md
vendored
|
|
@ -1,694 +0,0 @@
|
|||
<img class="logo" alt="NCHAN" src="https://nchan.slact.net/github-logo.png" />
|
||||
|
||||
https://nchan.slact.net
|
||||
|
||||
Nchan is a scalable, flexible pub/sub server for the modern web, built as a module for the [Nginx](http://nginx.org) web server. It can be configured as a standalone server, or as a shim between your application and hundreds, thousands, or millions of live subscribers. It can buffer messages in memory, on-disk, or via [Redis](http://redis.io). All connections are handled asynchronously and distributed among any number of worker processes. It can also scale to many Nginx servers with [Redis](http://redis.io).
|
||||
|
||||
Messages are [published](#publisher-endpoints) to channels with HTTP `POST` requests or Websocket, and [subscribed](#subscriber-endpoint) also through [Websocket](#websocket), [long-polling](#long-polling), [EventSource](#eventsource) (SSE), old-fashioned [interval polling](#interval-polling), [and](#http-chunked-transfer) [more](#http-multipart-mixed).
|
||||
|
||||
In a web browser, you can use Websocket or EventSource directly, or the [NchanSubscriber.js](https://github.com/slact/nchan/blob/master/NchanSubscriber.js) wrapper library. It supports Long-Polling, EventSource, and resumable Websockets, and has a few other added convenience options.
|
||||
|
||||
## Features
|
||||
- RESTful, HTTP-native API.
|
||||
- Supports [Websocket](https://nchan.slact.net/#websocket), [EventSource (Server-Sent Events)](https://nchan.slact.net/#eventsource), [Long-Polling](https://nchan.slact.net/#long-polling) and other HTTP-based subscribers.
|
||||
- No-repeat, no-loss message delivery guarantees with per-channel configurable message buffers.
|
||||
- Subscribe to [hundreds of channels](#channel-multiplexing) over a single subscriber connection.
|
||||
- HTTP request [callbacks and hooks](https://nchan.slact.net/details#application-callbacks) for easy integration.
|
||||
- Introspection with [channel events](https://nchan.slact.net/details#channel-events) and [url for monitoring performance statistics](https://nchan.slact.net/details#nchan_stub_status).
|
||||
- Fast ephemeral local message storage and optional, slower, persistent storage with [Redis](https://nchan.slact.net/details#connecting-to-a-redis-server).
|
||||
- Horizontally scalable (using [Redis](https://nchan.slact.net/details#connecting-to-a-redis-server)).
|
||||
- Highly Available with no single point of failure (using [Redis Cluster](https://nchan.slact.net/details#redis-cluster)).
|
||||
|
||||
<!-- toc -->
|
||||
|
||||
## Status and History
|
||||
|
||||
The latest Nchan release is v1.0.8 (November 28, 2016) ([changelog](https://nchan.slact.net/changelog)).
|
||||
|
||||
The first iteration of Nchan was written in 2009-2010 as the [Nginx HTTP Push Module](https://pushmodule.slact.net), and was vastly refactored into its present state in 2014-2016. The present release is in the **testing** phase. The core features and old functionality are thoroughly tested and stable. Some of the new functionality, especially Redis Cluster may be a bit buggy.
|
||||
|
||||
#### Upgrade from Nginx HTTP Push Module
|
||||
|
||||
Although Nchan is backwards-compatible with all Push Module configuration directives, some of the more unusual and rarely used settings have been disabled and will be ignored (with a warning). See the [upgrade page](https://nchan.slact.net/upgrade) for a detailed list of changes and improvements, as well as a full list of incompatibilities.
|
||||
|
||||
|
||||
## Does it scale?
|
||||
|
||||
<img class="benchmark_graph" alt="benchmarking internal subscriber response times" src="https://nchan.slact.net/img/benchmark_internal_total.png" />
|
||||
|
||||
Yes it does. Like Nginx, Nchan can easily handle as much traffic as you can throw at it. I've tried to benchmark it, but my benchmarking tools are much slower than Nchan. The data I've gathered is on how long Nchan itself takes to respond to every subscriber after publishing a message -- this excludes TCP handshake times and internal HTTP request parsing. Basically, it measures how Nchan scales assuming all other components are already tuned for scalability. The graphed data are averages of 5 runs with 50-byte messages.
|
||||
|
||||
With a well-tuned OS and network stack on commodity server hardware, expect to handle upwards of 300K concurrent subscribers per second at minimal CPU load. Nchan can also be scaled out to multiple Nginx instances using the [Redis storage engine](#nchan_use_redis), and that too can be scaled up beyond a single-point-of-failure by using [Redis Cluster](https://nchan.slact.net/details#using-redis).
|
||||
|
||||
Currently, Nchan's main bottleneck is not CPU load but memory bandwidth. This can be improved significantly in future versions with fewer allocations and better use of contiguous memory pools. Please consider supporting Nchan to speed up the work of memory cache optimization.
|
||||
|
||||
## Install
|
||||
|
||||
#### Download Packages
|
||||
- [Arch Linux](https://archlinux.org): [nginx-nchan](https://aur.archlinux.org/packages/nginx-nchan/) and [nginx-nchan-git](https://aur.archlinux.org/packages/nginx-nchan-git/) are available in the Arch User Repository.
|
||||
- Mac OS X: a [homebrew](http://brew.sh) package is available. `brew tap homebrew/nginx; brew install nginx-full --with-nchan-module`
|
||||
- [Debian](https://www.debian.org/): A dynamic module build for is available in the Debian package repository: [libnginx-mod-nchan](https://packages.debian.org/sid/libnginx-mod-nchan).
|
||||
Additionally, you can use the pre-built static module packages [nginx-common.deb](https://nchan.slact.net/download/nginx-common.deb) and [nginx-extras.deb](https://nchan.slact.net/download/nginx-extras.deb). Download both and install them with `dpkg -i`, followed by `sudo apt-get -f install`.
|
||||
- [Ubuntu](http://www.ubuntu.com/): [nginx-common.ubuntu.deb](https://nchan.slact.net/download/nginx-common.ubuntu.deb) and [nginx-extras.ubuntu.deb](https://nchan.slact.net/download/nginx-extras.ubuntu.deb). Download both and install them with `dpkg -i`, followed by `sudo apt-get -f install`. Who knows when Ubuntu will add them to their repository?...
|
||||
- [Fedora](https://fedoraproject.org): Dynamic module builds for Nginx > 1.10.0 are available: [nginx-mod-nchan.x86_64.rpm](https://nchan.slact.net/download/nginx-mod-nchan.x86-64.rpm), [nginx-mod-nchan.src.rpm](https://nchan.slact.net/download/nginx-mod-nchan.src.rpm).
|
||||
- A statically compiled binary and associated linux nginx installation files are also [available as a tarball](https://nchan.slact.net/download/nginx-nchan-latest.tar.gz).
|
||||
|
||||
|
||||
#### Build From Source
|
||||
Grab the latest copy of Nginx from [nginx.org](http://nginx.org). Grab the latest Nchan source from [github](https://github.com/slact/nchan/releases). Follow the instructions for [building Nginx](https://www.nginx.com/resources/wiki/start/topics/tutorials/install/#source-releases), except during the `configure` stage, add
|
||||
```
|
||||
./configure --add-module=path/to/nchan ...
|
||||
```
|
||||
|
||||
If you're using Nginx > 1.9.11, you can build Nchan as a [dynamic module](https://www.nginx.com/blog/dynamic-modules-nginx-1-9-11/) with `--add-dynamic-module=path/to/nchan`
|
||||
|
||||
Run `make`, `make install`, and enjoy. (Caution, contents may be hot.)
|
||||
|
||||
## Getting Started
|
||||
|
||||
Once you've built and installed Nchan, it's very easy to start using. Add two locations to your nginx config:
|
||||
|
||||
```nginx
|
||||
#...
|
||||
http {
|
||||
server {
|
||||
#...
|
||||
|
||||
location = /sub {
|
||||
nchan_subscriber;
|
||||
nchan_channel_id $arg_id;
|
||||
}
|
||||
|
||||
location = /pub {
|
||||
nchan_publisher;
|
||||
nchan_channel_id $arg_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
You can now publish messages to channels by `POST`ing data to `/sub?id=channel_id` , and subscribe by pointing Websocket, EventSource, or [NchanSubscriber.js](https://github.com/slact/nchan/blob/master/NchanSubscriber.js) to `sub/?id=channel_id`. It's that simple.
|
||||
|
||||
But Nchan is very flexible and highly configurable. So, of course, it can get a lot more complicated...
|
||||
|
||||
## Conceptual Overview
|
||||
|
||||
The basic unit of most pub/sub solutions is the messaging *channel*. Nchan is no different. Publishers send messages to channels with a certain *channel id*, and subscribers subscribed to those channels receive them. Some number of messages may be buffered for a time in a channel's message buffer before they are deleted. Pretty simple, right?
|
||||
|
||||
Well... the trouble is that nginx configuration does not deal with channels, publishers, and subscribers. Rather, it has several sections for incoming requests to match against *server* and *location* sections. **Nchan configuration directives map servers and locations onto channel publishing and subscribing endpoints**:
|
||||
|
||||
```nginx
|
||||
#very basic nchan config
|
||||
worker_processes 5;
|
||||
|
||||
http {
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
location = /sub {
|
||||
nchan_subscriber;
|
||||
nchan_channel_id foobar;
|
||||
}
|
||||
|
||||
location = /pub {
|
||||
nchan_publisher;
|
||||
nchan_channel_id foobar;
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The above maps requests to the URI `/sub` onto the channel `foobar`'s *subscriber endpoint* , and similarly `/pub` onto channel `foobar`'s *publisher endpoint*.
|
||||
|
||||
|
||||
#### Publisher Endpoints
|
||||
|
||||
Publisher endpoints are Nginx config *locations* with the [*`nchan_publisher`*](#nchan_publisher) directive.
|
||||
|
||||
Messages can be published to a channel by sending HTTP **POST** requests with the message contents to the *publisher endpoint* locations. You can also publish messages through a **Websocket** connection to the same location.
|
||||
|
||||
<!-- tag:publisher -->
|
||||
|
||||
##### Publishing Messages
|
||||
|
||||
Requests and websocket messages are responded to with information about the channel at time of message publication. Here's an example from publishing with `curl`:
|
||||
|
||||
```console
|
||||
> curl --request POST --data "test message" http://127.0.0.1:80/pub
|
||||
|
||||
queued messages: 5
|
||||
last requested: 18 sec. ago
|
||||
active subscribers: 0
|
||||
last message id: 1450755280:0
|
||||
```
|
||||
|
||||
The response can be in plaintext (as above), JSON, or XML, based on the request's *`Accept`* header:
|
||||
|
||||
```console
|
||||
> curl --request POST --data "test message" -H "Accept: text/json" http://127.0.0.2:80/pub
|
||||
|
||||
{"messages": 6, "requested": 55, "subscribers": 0, "last_message_id": "1450755317:0" }
|
||||
```
|
||||
|
||||
Websocket publishers also receive the same responses when publishing, with the encoding determined by the *`Accept`* header present during the handshake.
|
||||
|
||||
The response code for an HTTP request is *`202` Accepted* if no subscribers are present at time of publication, or *`201` Created* if at least 1 subscriber was present.
|
||||
|
||||
Metadata can be added to a message when using an HTTP POST request for publishing. A `Content-Type` header will be associated as the message's content type (and output to Long-Poll, Interval-Poll, and multipart/mixed subscribers). A `X-EventSource-Event` header can also be used to associate an EventSource `event:` line value with a message.
|
||||
|
||||
##### Other Publisher Endpoint Actions
|
||||
|
||||
**HTTP `GET`** requests return channel information without publishing a message. The response code is `200` if the channel exists, and `404` otherwise:
|
||||
```console
|
||||
> curl --request POST --data "test message" http://127.0.0.2:80/pub
|
||||
...
|
||||
|
||||
> curl -v --request GET -H "Accept: text/json" http://127.0.0.2:80/pub
|
||||
|
||||
{"messages": 1, "requested": 7, "subscribers": 0, "last_message_id": "1450755421:0" }
|
||||
```
|
||||
|
||||
|
||||
**HTTP `DELETE`** requests delete a channel and end all subscriber connections. Like the `GET` requests, this returns a `200` status response with channel info if the channel existed, and a `404` otherwise.
|
||||
|
||||
For an in-depth explanation of how settings are applied to channels from publisher locations, see the [details page](https://nchan.slact.net/details#publisher-endpoint-configs).
|
||||
|
||||
#### Subscriber Endpoints
|
||||
|
||||
Subscriber endpoints are Nginx config *locations* with the [*`nchan_subscriber`*](#nchan_subscriber) directive.
|
||||
|
||||
Nchan supports several different kinds of subscribers for receiving messages: [*Websocket*](#websocket), [*EventSource*](#eventsource) (Server Sent Events), [*Long-Poll*](#long-polling), [*Interval-Poll*](#interval-polling). [*HTTP chunked transfer*](#http-chunked-transfer), and [*HTTP multipart/mixed*](#http-multipart-mixed).
|
||||
|
||||
- ##### Long-Polling
|
||||
The tried-and-true server-push method supported by every browser out there.
|
||||
Initiated by sending an HTTP `GET` request to a channel subscriber endpoint.
|
||||
The long-polling subscriber walks through a channel's message queue via the built-in cache mechanism of HTTP clients, namely with the "`Last-Modified`" and "`Etag`" headers. Explicitly, to receive the next message for given a long-poll subscriber response, send a request with the "`If-Modified-Since`" header set to the previous response's "`Last-Modified`" header, and "`If-None-Match`" likewise set to the previous response's "`Etag`" header.
|
||||
Sending a request without a "`If-Modified-Since`" or "`If-None-Match`" headers returns the oldest message in a channel's message queue, or waits until the next published message, depending on the value of the `nchan_subscriber_first_message` config directive.
|
||||
A message's associated content type, if present, will be sent to this subscriber with the `Content-Type` header.
|
||||
<!-- tag:subscriber-longpoll -->
|
||||
|
||||
- ##### Interval-Polling
|
||||
Works just like long-polling, except if the requested message is not yet available, immediately responds with a `304 Not Modified`.
|
||||
There is no way to differentiate between long-poll and interval-poll subscriber requests, so long-polling must be disabled for a subscriber location if you wish to use interval-polling.
|
||||
|
||||
- ##### Websocket
|
||||
Bidirectional communication for web browsers. Part of the [HTML5 spec](http://www.w3.org/TR/2014/REC-html5-20141028/single-page.html). Nchan supports the latest protocol version 13 ([RFC 6455](https://tools.ietf.org/html/rfc6455)).
|
||||
Initiated by sending a websocket handshake to the desired subscriber endpoint location.
|
||||
If the websocket connection is closed by the server, the `close` frame will contain the HTTP response code and status line describing the reason for closing the connection. Server-initiated keep-alive pings can be configured with the [`nchan_websocket_ping_interval`](#nchan_websocket_ping_interval) config directive. Websocket extensions are not yet supported.
|
||||
Messages published through a websocket connection can be forwarded to an upstream application with the [`nchan_publisher_upstream_request`](#nchan_publisher_upstream_request) config directive.
|
||||
Websocket subscribers can use the custom `ws+meta.nchan` subprotocol to receive message metadata with messages, making websocket connections resumable. Messages received with this subprotocol are of the form
|
||||
<pre>
|
||||
id: message_id
|
||||
content-type: message_content_type
|
||||
\n
|
||||
message_data
|
||||
</pre>
|
||||
The `content-type:` line may be omitted.
|
||||
<!-- tag:subscriber-websocket -->
|
||||
|
||||
- ##### EventSource
|
||||
Also known as [Server-Sent Events](https://en.wikipedia.org/wiki/Server-sent_events) or SSE, it predates Websockets in the [HTML5 spec](http://www.w3.org/TR/2014/REC-html5-20141028/single-page.html), and is a [very simple protocol](http://www.w3.org/TR/eventsource/#event-stream-interpretation).
|
||||
Initiated by sending an HTTP `GET` request to a channel subscriber endpoint with the "`Accept: text/event-stream`" header.
|
||||
Each message `data: ` segment will be prefaced by the message `id: `.
|
||||
To resume a closed EventSource connection from the last-received message, one *should* start the connection with the "`Last-Event-ID`" header set to the last message's `id`.
|
||||
Unfortunately, browsers [don't support setting](http://www.w3.org/TR/2011/WD-eventsource-20111020/#concept-event-stream-last-event-id) this header for an `EventSource` object, so by default the last message id is set either from the "`Last-Event-Id`" header or the `last_event_id` url query string argument.
|
||||
This behavior can be configured via the [`nchan_subscriber_last_message_id`](#nchan_subscriber_last_message_id) config.
|
||||
A message's `content-type` will not be received by an EventSource subscriber, as the protocol makes no provisions for this metadata.
|
||||
A message's associated `event` type, if present, will be sent to this subscriber with the `event:` line.
|
||||
<!-- tag:subscriber-eventsource -->
|
||||
|
||||
- ##### HTTP [multipart/mixed](http://www.w3.org/Protocols/rfc1341/7_2_Multipart.html#z0)
|
||||
The `multipart/mixed` MIMEtype was conceived for emails, but hey, why not use it for HTTP? It's easy to parse and includes metadata with each message.
|
||||
Initiated by including an `Accept: multipart/mixed` header.
|
||||
The response headers and the unused "preamble" portion of the response body are sent right away, with the boundary string generated randomly for each subscriber. Each subsequent message will be sent as one part of the multipart message, and will include the message time and tag (`Last-Modified` and `Etag`) as well as the optional `Content-Type` headers.
|
||||
Each message is terminated with the next multipart message's boundary **without a trailing newline**. While this conforms to the multipart spec, it is unusual as multipart messages are defined as *starting*, rather than ending with a boundary.
|
||||
A message's associated content type, if present, will be sent to this subscriber with the `Content-Type` header.
|
||||
<!-- tag:subscriber-multipart -->
|
||||
|
||||
- ##### HTTP Raw Stream
|
||||
A simple subscription method similar to the [streaming subscriber](https://github.com/wandenberg/nginx-push-stream-module/blob/master/docs/directives/subscribers.textile#push_stream_subscriber) of the [Nginx HTTP Push Stream Module](https://github.com/wandenberg/nginx-push-stream-module). Messages are appended to the response body, separated by a newline or configurable by `nchan_subscriber_http_raw_stream_separator`.
|
||||
<!-- tag:subscriber-rawstream -->
|
||||
|
||||
- ##### HTTP [Chunked Transfer](http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.6.1)
|
||||
This subscription method uses the `chunked` `Transfer-Encoding` to receive messages.
|
||||
Initiated by explicitly including `chunked` in the [`TE` header](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.39):
|
||||
`TE: chunked` (or `TE: chunked;q=??` where the qval > 0)
|
||||
The response headers are sent right away, and each message will be sent as an individual chunk. Note that because a zero-length chunk terminates the transfer, **zero-length messages will not be sent** to the subscriber.
|
||||
Unlike the other subscriber types, the `chunked` subscriber cannot be used with http/2 because it dissallows chunked encoding.
|
||||
<!-- tag:subscriber-chunked -->
|
||||
|
||||
<!-- tag:subscriber -->
|
||||
|
||||
#### PubSub Endpoint
|
||||
|
||||
PubSub endpoints are Nginx config *locations* with the [*`nchan_pubsub`*](#nchan_pubsub) directive.
|
||||
|
||||
A combination of *publisher* and *subscriber* endpoints, this location treats all HTTP `GET`
|
||||
requests as subscribers, and all HTTP `POST` as publishers. One simple use case is an echo server:
|
||||
|
||||
```nginx
|
||||
location = /pubsub {
|
||||
nchan_pubsub;
|
||||
nchan_channel_id foobar;
|
||||
}
|
||||
```
|
||||
|
||||
A more applicable setup may set different publisher and subscriber channel ids:
|
||||
|
||||
```nginx
|
||||
location = /pubsub {
|
||||
nchan_pubsub;
|
||||
nchan_publisher_channel_id foo;
|
||||
nchan_subscriber_channel_id bar;
|
||||
}
|
||||
```
|
||||
|
||||
Here, subscribers will listen for messages on channel `foo`, and publishers will publish messages to channel `bar`. This can be useful when setting up websocket proxying between web clients and your application.
|
||||
|
||||
<!-- tag:pubsub -->
|
||||
|
||||
### The Channel ID
|
||||
|
||||
So far the examples have used static channel ids, which is not very useful in practice. It can be set to any nginx *variable*, such as a querystring argument, a header value, or a part of the location url:
|
||||
|
||||
```nginx
|
||||
location = /sub_by_ip {
|
||||
#channel id is the subscriber's IP address
|
||||
nchan_subscriber;
|
||||
nchan_channel_id $remote_addr;
|
||||
}
|
||||
|
||||
location /sub_by_querystring {
|
||||
#channel id is the query string parameter chanid
|
||||
# GET /sub/sub_by_querystring?foo=bar&chanid=baz will have the channel id set to 'baz'
|
||||
nchan_subscriber;
|
||||
nchan_channel_id $arg_chanid;
|
||||
}
|
||||
|
||||
location ~ /sub/(\w+)$ {
|
||||
#channel id is the word after /sub/
|
||||
# GET /sub/foobar_baz will have the channel id set to 'foobar_baz'
|
||||
# I hope you know your regular expressions...
|
||||
nchan_subscriber;
|
||||
nchan_channel_id $1; #first capture of the location match
|
||||
}
|
||||
```
|
||||
|
||||
<!-- tag:channel-id -->
|
||||
|
||||
#### Channel Multiplexing
|
||||
|
||||
With channel multiplexing, subscribers can subscribe to up to 255 channels per connection. Messages published to all the specified channels will be delivered in-order to the subscriber. There are two ways to enable multiplexing:
|
||||
|
||||
Up to 7 channel ids can be specified for the `nchan_channel_id` or `nchan_channel_subscriber_id` config directive:
|
||||
|
||||
```nginx
|
||||
location ~ /multisub/(\w+)/(\w+)$ {
|
||||
nchan_subscriber;
|
||||
nchan_channel_id "$1" "$2" "common_channel";
|
||||
#GET /multisub/foo/bar will be subscribed to:
|
||||
# channels 'foo', 'bar', and 'common_channel',
|
||||
#and will receive messages from all of the above.
|
||||
}
|
||||
```
|
||||
|
||||
For more than 7 channels, `nchan_channel_id_split_delimiter` can be used to split the `nchan_channel_id` or `nchan_channel_subscriber_id` into up to 255 individual channel ids:
|
||||
|
||||
```nginx
|
||||
location ~ /multisub-split/(.*)$ {
|
||||
nchan_subscriber;
|
||||
nchan_channel_id "$1";
|
||||
nchan_channel_id_split_delimiter ",";
|
||||
#GET /multisub-split/foo,bar,baz,a will be subscribed to:
|
||||
# channels 'foo', 'bar', 'baz', and 'a'
|
||||
#and will receive messages from all of the above.
|
||||
}
|
||||
```
|
||||
|
||||
Publishing to multiple channels with a single request is also possible, with similar configuration:
|
||||
|
||||
```nginx
|
||||
location ~ /multipub/(\w+)/(\w+)$ {
|
||||
nchan_publisher;
|
||||
nchan_channel_id "$1" "$2" "another_channel";
|
||||
}
|
||||
```
|
||||
|
||||
`DELETE` requests to a multiplexed channel broadcast the deletion to each of the channels it multiplexes, deletes all their messages and kicks out all clients subscribed to any of the channel ids.
|
||||
|
||||
See the [details page](https://nchan.slact.net/details#securing-channels) for more information about using good IDs and keeping channels secure.
|
||||
|
||||
<!-- tag:channel-multiplexing -->
|
||||
|
||||
## Storage
|
||||
|
||||
Nchan can stores messages in memory, on disk, or via Redis. Memory storage is much faster, whereas Redis has additional overhead as is considerably slower for publishing messages, but offers near unlimited scalability for broadcast use cases with far more subscribers than publishers.
|
||||
|
||||
<!-- tag:storage -->
|
||||
|
||||
### Memory Storage
|
||||
|
||||
This storage method uses a segment of shared memory to store messages and channel data. Large messages as determined by Nginx's caching layer are stored on-disk. The size of the memory segment is configured with `nchan_max_reserved_memory`. Data stored here is not persistent, and is lost if Nginx is restarted or reloaded.
|
||||
|
||||
<!-- tag:memstore -->
|
||||
|
||||
### Redis
|
||||
|
||||
Nchan can also store messages and channels on a Redis server, or in a Redis cluster. To use a Redis server, set `nchan_use_redis on;` and set the server url with `nchan_redis_url`. These two settings are inheritable by nested locations, so it is enough to set them within an `http { }` block to enable Redis for all Nchan locations in that block. Different locations can also use different Redis servers.
|
||||
|
||||
To use a Redis Cluster, the Redis servers acting as cluster nodes need to be configured in an `upstream { }` block:
|
||||
|
||||
```nginx
|
||||
upstream redis_cluster {
|
||||
nchan_redis_server redis://127.0.0.1:7000;
|
||||
nchan_redis_server redis://127.0.0.1:7001;
|
||||
nchan_redis_server redis://127.0.0.1:7002;
|
||||
}
|
||||
```
|
||||
|
||||
It is best to specify all master cluster nodes, but this is not required -- as long as Nchan can connect to at least 1 node, it will discover and connect to the whole cluster.
|
||||
|
||||
To use Redis Cluster in an Nchan location, use the `nchan_redis_pass` setting:
|
||||
|
||||
```nginx
|
||||
location ~ /pubsub/(\w+)$ {
|
||||
nchan_channel_id $1;
|
||||
nchan_pubsub;
|
||||
nchan_redis_pass redis_cluster;
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Note that `nchan_redis_pass` implies `nchan_use_redis on;`, and that this setting is *not* inherited by nested locations.
|
||||
|
||||
When connecting several Nchan servers to the same Redis server (or cluster), the servers **must have their times synced up**. Failure to do so may result in missing and duplicated messages.
|
||||
|
||||
See the [details page](https://nchan.slact.net/details#using-redis) for more information on using Redis.
|
||||
|
||||
<!-- tag:redis -->
|
||||
|
||||
## Variables
|
||||
|
||||
Nchan makes several variables usabled in the config file:
|
||||
|
||||
- `$nchan_channel_id`
|
||||
The channel id extracted from a publisher or subscriber location request. For multiplexed locations, this is the first channel id in the list.
|
||||
|
||||
- `$nchan_channel_id1`, `$nchan_channel_id2`, `$nchan_channel_id3`, `$nchan_channel_id4`
|
||||
As above, but for the nth channel id in multiplexed channels.
|
||||
|
||||
- `$nchan_subscriber_type`
|
||||
For subscriber locations, this variable is set to the subscriber type (websocket, longpoll, etc.).
|
||||
|
||||
- `$nchan_publisher_type`
|
||||
For subscriber locations, this variable is set to the subscriber type (http or websocket).
|
||||
|
||||
- `$nchan_prev_message_id`, `$nchan_message_id`
|
||||
The current and previous (if applicable) message id for publisher request or subscriber response.
|
||||
|
||||
- `$nchan_channel_event`
|
||||
For channel events, this is the event name. Useful when configuring `nchan_channel_event_string`.
|
||||
|
||||
Additionally, `nchan_stub_status` data is also exposed as variables. These are available only when `nchan_stub_status` is enabled on at least one location:
|
||||
|
||||
- `$nchan_stub_status_total_published_messages`
|
||||
- `$nchan_stub_status_stored_messages`
|
||||
- `$nchan_stub_status_shared_memory_used`
|
||||
- `$nchan_stub_status_channels`
|
||||
- `$nchan_stub_status_subscribers`
|
||||
- `$nchan_stub_status_redis_pending_commands`
|
||||
- `$nchan_stub_status_redis_connected_servers`
|
||||
- `$nchan_stub_status_total_ipc_alerts_received`
|
||||
- `$nchan_stub_status_ipc_queued_alerts`
|
||||
- `$nchan_stub_status_total_ipc_send_delay`
|
||||
- `$nchan_stub_status_total_ipc_receive_delay`
|
||||
|
||||
|
||||
## Configuration Directives
|
||||
|
||||
- **nchan_channel_id**
|
||||
arguments: 1 - 7
|
||||
default: `(none)`
|
||||
context: server, location, if
|
||||
> Channel id for a publisher or subscriber location. Can have up to 4 values to subscribe to up to 4 channels.
|
||||
[more details](#the-channel-id)
|
||||
|
||||
- **nchan_channel_id_split_delimiter**
|
||||
arguments: 1
|
||||
default: `(none)`
|
||||
context: server, location, if
|
||||
> Split the channel id into several ids for multiplexing using the delimiter string provided.
|
||||
[more details](#channel-multiplexing)
|
||||
|
||||
- **nchan_eventsource_event**
|
||||
arguments: 1
|
||||
default: `(none)`
|
||||
context: server, location, if
|
||||
> Set the EventSource `event:` line to this value. When used in a publisher location, overrides the published message's `X-EventSource-Event` header and associates the message with the given value. When used in a subscriber location, overrides all messages' associated `event:` string with the given value.
|
||||
|
||||
- **nchan_longpoll_multipart_response** `[ off | on | raw ]`
|
||||
arguments: 1
|
||||
default: `off`
|
||||
context: server, location, if
|
||||
> when set to 'on', enable sending multiple messages in a single longpoll response, separated using the multipart/mixed content-type scheme. If there is only one available message in response to a long-poll request, it is sent unmodified. This is useful for high-latency long-polling connections as a way to minimize round-trips to the server. When set to 'raw', sends multiple messages using the http-raw-stream message separator.
|
||||
|
||||
- **nchan_publisher** `[ http | websocket ]`
|
||||
arguments: 0 - 2
|
||||
default: `http websocket`
|
||||
context: server, location, if
|
||||
legacy name: push_publisher
|
||||
> Defines a server or location as a publisher endpoint. Requests to a publisher location are treated as messages to be sent to subscribers. See the protocol documentation for a detailed description.
|
||||
[more details](#publisher-endpoints)
|
||||
|
||||
- **nchan_publisher_channel_id**
|
||||
arguments: 1 - 7
|
||||
default: `(none)`
|
||||
context: server, location, if
|
||||
> Channel id for publisher location.
|
||||
|
||||
- **nchan_publisher_upstream_request** `<url>`
|
||||
arguments: 1
|
||||
context: server, location, if
|
||||
> Send POST request to internal location (which may proxy to an upstream server) with published message in the request body. Useful for bridging websocket publishers with HTTP applications, or for transforming message via upstream application before publishing to a channel.
|
||||
> The upstream response code determines how publishing will proceed. A `200 OK` will publish the message from the upstream response's body. A `304 Not Modified` will publish the message as it was received from the publisher. A `204 No Content` will result in the message not being published.
|
||||
[more details](https://nchan.slact.net/details#message-publishing-callbacks)
|
||||
|
||||
- **nchan_pubsub** `[ http | websocket | eventsource | longpoll | intervalpoll | chunked | multipart-mixed | http-raw-stream ]`
|
||||
arguments: 0 - 6
|
||||
default: `http websocket eventsource longpoll chunked multipart-mixed`
|
||||
context: server, location, if
|
||||
> Defines a server or location as a pubsub endpoint. For long-polling, GETs subscribe. and POSTs publish. For Websockets, publishing data on a connection does not yield a channel metadata response. Without additional configuration, this turns a location into an echo server.
|
||||
[more details](#pubsub-endpoint)
|
||||
|
||||
- **nchan_subscriber** `[ websocket | eventsource | longpoll | intervalpoll | chunked | multipart-mixed | http-raw-stream ]`
|
||||
arguments: 0 - 5
|
||||
default: `websocket eventsource longpoll chunked multipart-mixed`
|
||||
context: server, location, if
|
||||
legacy name: push_subscriber
|
||||
> Defines a server or location as a channel subscriber endpoint. This location represents a subscriber's interface to a channel's message queue. The queue is traversed automatically, starting at the position defined by the `nchan_subscriber_first_message` setting.
|
||||
> The value is a list of permitted subscriber types.
|
||||
[more details](#subscriber-endpoints)
|
||||
|
||||
- **nchan_subscriber_channel_id**
|
||||
arguments: 1 - 7
|
||||
default: `(none)`
|
||||
context: server, location, if
|
||||
> Channel id for subscriber location. Can have up to 4 values to subscribe to up to 4 channels.
|
||||
|
||||
- **nchan_subscriber_compound_etag_message_id**
|
||||
arguments: 1
|
||||
default: `off`
|
||||
context: server, location, if
|
||||
> Override the default behavior of using both `Last-Modified` and `Etag` headers for the message id.
|
||||
> Enabling this option packs the entire message id into the `Etag` header, and discards
|
||||
> `Last-Modified` and `If-Modified-Since` headers.
|
||||
[more details]()
|
||||
|
||||
- **nchan_subscriber_first_message** `[ oldest | newest | <number> ]`
|
||||
arguments: 1
|
||||
default: `oldest`
|
||||
context: server, location, if
|
||||
> Controls the first message received by a new subscriber. 'oldest' starts at the oldest available message in a channel's message queue, 'newest' waits until a message arrives. If a number `n` is specified, starts at `n`th message from the oldest. (`-n` starts at `n`th from now). 0 is equivalent to 'newest'.
|
||||
|
||||
- **nchan_subscriber_http_raw_stream_separator** `<string>`
|
||||
arguments: 1
|
||||
default: `\n`
|
||||
context: server, location, if
|
||||
> Message separator string for the http-raw-stream subscriber. Automatically terminated with a newline character.
|
||||
|
||||
- **nchan_subscriber_last_message_id**
|
||||
arguments: 1 - 5
|
||||
default: `$http_last_event_id $arg_last_event_id`
|
||||
context: server, location, if
|
||||
> If `If-Modified-Since` and `If-None-Match` headers are absent, set the message id to the first non-empty of these values. Used primarily as a workaround for the inability to set the first `Last-Message-Id` of a web browser's EventSource object.
|
||||
|
||||
- **nchan_subscriber_message_id_custom_etag_header**
|
||||
arguments: 1
|
||||
default: `(none)`
|
||||
context: server, location, if
|
||||
> Use a custom header instead of the Etag header for message ID in subscriber responses. This setting is a hack, useful when behind a caching proxy such as Cloudflare that under some conditions (like using gzip encoding) swallow the Etag header.
|
||||
|
||||
- **nchan_subscriber_timeout** `<number> (seconds)`
|
||||
arguments: 1
|
||||
default: `0 (none)`
|
||||
context: http, server, location, if
|
||||
legacy name: push_subscriber_timeout
|
||||
> Maximum time a subscriber may wait for a message before being disconnected. If you don't want a subscriber's connection to timeout, set this to 0. When possible, the subscriber will get a response with a `408 Request Timeout` status; otherwise the subscriber will simply be disconnected.
|
||||
|
||||
- **nchan_websocket_ping_interval** `<number> (seconds)`
|
||||
arguments: 1
|
||||
default: `0 (none)`
|
||||
context: server, location, if
|
||||
> Interval for sending websocket ping frames. Disabled by default.
|
||||
|
||||
- **nchan_authorize_request** `<url>`
|
||||
arguments: 1
|
||||
context: server, location, if
|
||||
> Send GET request to internal location (which may proxy to an upstream server) for authorization of a publisher or subscriber request. A 200 response authorizes the request, a 403 response forbids it.
|
||||
[more details](https://nchan.slact.net/details#request-authorization)
|
||||
|
||||
- **nchan_subscribe_request** `<url>`
|
||||
arguments: 1
|
||||
context: server, location, if
|
||||
> Send GET request to internal location (which may proxy to an upstream server) after subscribing. Disabled for longpoll and interval-polling subscribers.
|
||||
[more details](https://nchan.slact.net/details#subsribe-and-unsubscribe-callbacks)
|
||||
|
||||
- **nchan_unsubscribe_request** `<url>`
|
||||
arguments: 1
|
||||
context: server, location, if
|
||||
> Send GET request to internal location (which may proxy to an upstream server) after unsubscribing. Disabled for longpoll and interval-polling subscribers.
|
||||
[more details](https://nchan.slact.net/details#subsribe-and-unsubscribe-callbacks)
|
||||
|
||||
- **nchan_max_reserved_memory** `<size>`
|
||||
arguments: 1
|
||||
default: `32M`
|
||||
context: http
|
||||
legacy name: push_max_reserved_memory
|
||||
> The size of the shared memory chunk this module will use for message queuing and buffering.
|
||||
[more details](#memory-storage)
|
||||
|
||||
- **nchan_message_buffer_length** `[ <number> | <variable> ]`
|
||||
arguments: 1
|
||||
default: `10`
|
||||
context: http, server, location
|
||||
legacy names: push_max_message_buffer_length, push_message_buffer_length
|
||||
> Publisher configuration setting the maximum number of messages to store per channel. A channel's message buffer will retain a maximum of this many most recent messages. An Nginx variable can also be used to set the buffer length dynamically.
|
||||
|
||||
- **nchan_message_timeout** `[ <time> | <variable> ]`
|
||||
arguments: 1
|
||||
default: `1h`
|
||||
context: http, server, location
|
||||
legacy name: push_message_timeout
|
||||
> Publisher configuration setting the length of time a message may be queued before it is considered expired. If you do not want messages to expire, set this to 0. Note that messages always expire from oldest to newest, so an older message may prevent a newer one with a shorter timeout from expiring. An Nginx variable can also be used to set the timeout dynamically.
|
||||
|
||||
- **nchan_redis_idle_channel_cache_timeout** `<time>`
|
||||
arguments: 1
|
||||
default: `30s`
|
||||
context: http, server, location
|
||||
> A Redis-stored channel and its messages are removed from memory (local cache) after this timeout, provided there are no local subscribers.
|
||||
|
||||
- **nchan_redis_pass**
|
||||
arguments: 1
|
||||
context: http, server, location
|
||||
> Use an upstream config block for Redis servers.
|
||||
[more details](https://nchan.slact.net/details#using-redis)
|
||||
|
||||
- **nchan_redis_ping_interval**
|
||||
arguments: 1
|
||||
default: `4m`
|
||||
context: http, server, location
|
||||
> Send a keepalive command to redis to keep the Nchan redis clients from disconnecting. Set to 0 to disable.
|
||||
|
||||
- **nchan_redis_server**
|
||||
arguments: 1
|
||||
context: upstream
|
||||
> Used in upstream { } blocks to set redis servers.
|
||||
[more details](https://nchan.slact.net/details#using-redis)
|
||||
|
||||
- **nchan_redis_url**
|
||||
arguments: 1
|
||||
default: `127.0.0.1:6379`
|
||||
context: http, server, location
|
||||
> The path to a redis server, of the form 'redis://:password@hostname:6379/0'. Shorthand of the form 'host:port' or just 'host' is also accepted.
|
||||
[more details](https://nchan.slact.net/details#using-redis)
|
||||
|
||||
- **nchan_store_messages** `[ on | off ]`
|
||||
arguments: 1
|
||||
default: `on`
|
||||
context: http, server, location, if
|
||||
legacy name: push_store_messages
|
||||
> Publisher configuration. "`off`" is equivalent to setting `nchan_message_buffer_length 0`, which disables the buffering of old messages. Using this setting is not recommended when publishing very quickly, as it may result in missed messages.
|
||||
|
||||
- **nchan_use_redis** `[ on | off ]`
|
||||
arguments: 1
|
||||
default: `off`
|
||||
context: http, server, location
|
||||
> Use redis for message storage at this location.
|
||||
[more details](https://nchan.slact.net/details#using-redis)
|
||||
|
||||
- **nchan_access_control_allow_origin** `<string>`
|
||||
arguments: 1
|
||||
default: `*`
|
||||
context: http, server, location
|
||||
> Set the [Cross-Origin Resource Sharing (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS) `Access-Control-Allow-Origin` header to this value. If the publisher or subscriber request's `Origin` header does not match this value, respond with a `403 Forbidden`.
|
||||
|
||||
- **nchan_channel_group** `<string>`
|
||||
arguments: 1
|
||||
default: `(none)`
|
||||
context: server, location, if
|
||||
legacy name: push_channel_group
|
||||
> Because settings are bound to locations and not individual channels, it is useful to be able to have channels that can be reached only from some locations and never others. That's where this setting comes in. Think of it as a prefix string for the channel id.
|
||||
|
||||
- **nchan_subscribe_existing_channels_only** `[ on | off ]`
|
||||
arguments: 1
|
||||
default: `off`
|
||||
context: http, server, location
|
||||
legacy name: push_authorized_channels_only
|
||||
> Whether or not a subscriber may create a channel by sending a request to a subscriber location. If set to on, a publisher must send a POST or PUT request before a subscriber can request messages on the channel. Otherwise, all subscriber requests to nonexistent channels will get a 403 Forbidden response.
|
||||
|
||||
- **nchan_channel_event_string** `<string>`
|
||||
arguments: 1
|
||||
default: `"$nchan_channel_event $nchan_channel_id"`
|
||||
context: server, location, if
|
||||
> Contents of channel event message
|
||||
|
||||
- **nchan_channel_events_channel_id**
|
||||
arguments: 1
|
||||
context: server, location, if
|
||||
> Channel id where `nchan_channel_id`'s events should be sent. Events like subscriber enqueue/dequeue, publishing messages, etc. Useful for application debugging. The channel event message is configurable via nchan_channel_event_string. The channel group for events is hardcoded to 'meta'.
|
||||
[more details](https://nchan.slact.net/details#channel-events)
|
||||
|
||||
- **nchan_stub_status**
|
||||
arguments: 0
|
||||
context: location
|
||||
> Similar to Nginx's stub_status directive, requests to an `nchan_stub_status` location get a response with some vital Nchan statistics. This data does not account for information from other Nchan instances, and monitors only local connections, published messages, etc.
|
||||
[more details](https://nchan.slact.net/details#nchan_stub_status)
|
||||
|
||||
- **nchan_max_channel_id_length** `<number>`
|
||||
arguments: 1
|
||||
default: `512`
|
||||
context: http, server, location
|
||||
legacy name: push_max_channel_id_length
|
||||
> Maximum permissible channel id length (number of characters). Longer ids will be truncated.
|
||||
|
||||
- **nchan_max_channel_subscribers** `<number>`
|
||||
arguments: 1
|
||||
default: `0 (unlimited)`
|
||||
context: http, server, location
|
||||
legacy name: push_max_channel_subscribers
|
||||
> Maximum concurrent subscribers to the channel on this Nchan server. Does not include subscribers on other Nchan instances when using a shared Redis server.
|
||||
|
||||
- **nchan_channel_timeout**
|
||||
arguments: 1
|
||||
context: http, server, location
|
||||
legacy name: push_channel_timeout
|
||||
> Amount of time an empty channel hangs around. Don't mess with this setting unless you know what you are doing!
|
||||
|
||||
- **nchan_storage_engine** `[ memory | redis ]`
|
||||
arguments: 1
|
||||
default: `memory`
|
||||
context: http, server, location
|
||||
> Development directive to completely replace default storage engine. Don't use unless you are an Nchan developer.
|
||||
|
||||
## Contribute
|
||||
Please support this project with a donation to keep me warm through the winter. I accept bitcoin at 15dLBzRS4HLRwCCVjx4emYkxXcyAPmGxM3 . Other donation methods can be found at https://nchan.slact.net
|
||||
300
debian/modules/nchan/changelog.txt
vendored
300
debian/modules/nchan/changelog.txt
vendored
|
|
@ -1,300 +0,0 @@
|
|||
1.0.8 (Nov. 28 2016)
|
||||
fix: possible crash under severely heavy load, introduced in 1.0.7 with stack-overflow fix
|
||||
1.0.7 (Nov. 27 2016)
|
||||
fix: memory leak after websocket publisher uncleanly aborts connection
|
||||
fix: misbehaving websocket publisher with nchan_publisher_upstream_request
|
||||
fix: potential stack overflow with very large message buffers
|
||||
fix: invalid memory access with empty nchan_publisher_upstream_request for websocket publisher
|
||||
fix: incorrect handling of chunked response from nchan_publisher_upstream_request
|
||||
fix: publishing through websocket too fast may result in buffered messages that never arrive
|
||||
fix: DELETE to multiplexed channel should delete all listed channels
|
||||
fix: abort if publishing to multiple channels while using redis
|
||||
1.0.6 (Nov. 15 2016)
|
||||
fix: large messages were sometimes incorrectly cleaned up, leaving behind temp files
|
||||
fix: file descriptor leak when listening on a unix socket and suddenly
|
||||
aborting client connections
|
||||
fix: invalid memory access after reloading twice with redis enabled
|
||||
fix: crash after shutting down nginx when 'master_process' set to 'off'
|
||||
change: nchan_max_channel_subscribers now always refers to subscribers on this instance of
|
||||
Nchan, even when using Redis.
|
||||
feature: subscribe/unsubscribe callbacks with nchan_subscribe_request and nchan_unsubscribe_request
|
||||
1.0.4 (Oct. 28 2016)
|
||||
security: fix crash when receiving large messages over websocket with ws+nchan subprotocol
|
||||
1.0.3 (Sept. 3 2016)
|
||||
feature: nchan_message_timeout and nchan_message_buffer_length
|
||||
can now use nginx variables for dynamic values
|
||||
fix: unsolicited websocket PONGs disconnected the subscriber in violation of RFC6455
|
||||
fix: possible script error when getting channel from Redis
|
||||
fix: possible incorrect message IDs when using Redis (thanks @supertong)
|
||||
security: possible invalid memory access on publisher GET, POST, or DELETE when
|
||||
using Redis and the publisher connection is terminated before receiving
|
||||
a response
|
||||
fix: correct publisher response code when nchan_authorize_request is unavailable
|
||||
(502 instead of 500)
|
||||
security: crash if publisher POSTs request with no Content-Length header when
|
||||
using nchan_authorize_request
|
||||
1.0.2 (Aug. 29 2016)
|
||||
fix: more informative missed-message warnings
|
||||
fix: invalid memory access when Redis enabled without setting server URL
|
||||
fix: incomplete redis channel deletion
|
||||
fix: Redis command responses may not be processed after large message
|
||||
until next command
|
||||
feature: catch up with missed messages after reconnecting to Redis cluster
|
||||
fix: possible invalid memory access after disconnecting from Redis cluster
|
||||
fix: Redis-stored unbuffered messages may not be delivered
|
||||
fix: possible invalid memory access when using previously idling channels
|
||||
fix: invalid memory access if publisher POST request's connection terminates
|
||||
before receiving response
|
||||
fix: messages published rapidly to Redis via different Ncnan servers may
|
||||
be received out of order
|
||||
fix: possible stack overflow when receiving messages through Redis
|
||||
for multiplexed channels
|
||||
fix: channels with 'nchan_store_messages off' published 1 message per second
|
||||
fix: issue warning when out-of-order published message is detected
|
||||
fix: Redis cluster compatibility with channel ids containing '}' character
|
||||
fix: Redis-stored channel deleted too quickly when publishing short-lived messages
|
||||
1.0.1 (Aug. 22 2016)
|
||||
feature: nchan_stub_status shared memory accounting
|
||||
fix: various compiler warnings
|
||||
1.0.0 (Aug. 20 2016)
|
||||
fix: incorrectly repeated subscriber_enqueue channel events
|
||||
fix: badly handled Redis messages with TTL < 1 (again)
|
||||
fix: websocket didn't close connection on PING fail
|
||||
feature: nchan_stub_status stats location
|
||||
fix: bad memory access for Redis channels when unsubscribing and very busy
|
||||
optimize: SSE2 & AVX2 optimizations for websocket frame unmasking
|
||||
feature: Redis Cluster support
|
||||
(WARNING:) data in Redis from previous versions will be inaccessible
|
||||
feature: different locations can use different Redis servers
|
||||
feature: nchan_subscriber_first_message can take a number (positive or negative)
|
||||
for nth message (from first or last)
|
||||
feature: expire Redis-stored idle channels with nchan_redis_idle_channel_cache_timeout
|
||||
fix: some multiplexed channels never garbage-collected when inactive
|
||||
fix: unbuffered message garbage collector was too lazy
|
||||
fix: update nchan_message_buffer_length correctly when using Redis (thanks @supertong)
|
||||
fix: incorrect handling of missing/expired messages in multiplexed channels
|
||||
fix: memory leak when publishing via Websocket on a pubsub location
|
||||
fix: multiplexed channel DELETE when using Redis handled incorrectly
|
||||
fix: rare Redis script error when publishing message
|
||||
fix: Redis connection ping infinite loop when reloading
|
||||
fix: crash if Redis message TTL less than 1 sec
|
||||
fix: message delivery occasionally stopped when using Redis
|
||||
and rapidly publishing messages
|
||||
fix: logpoll-multipart sometimes failed to respond when using Redis
|
||||
and rapidly publishing messages
|
||||
fix: don't crash if Redis server is busy loading data
|
||||
0.99.16 (Jun 10 2016)
|
||||
fix: invalid memory access when upstream subscriber authorize request failed
|
||||
fix: longpoll-multipart subscriber was managed incorrectly on channel deletion
|
||||
fix: subscribers may not receive messages after Redis reconnection
|
||||
0.99.15 (May 31 2016)
|
||||
feature: Redis client keepalive configurable with nchan_redis_ping_interval
|
||||
feature: try to reconnect to Redis after lost connection to Redis
|
||||
fix: invalid memory access after lost connection to Redis
|
||||
fix: use-after-free error if subscriber disconnects before response
|
||||
from upstream authorize server (thanks Filip Jenicek)
|
||||
fix: corrupt longpoll-multipart boundary data with long messages
|
||||
feature: 'raw' mode for longpoll-multipart
|
||||
feature: http-raw-stream client, like Push Stream Module's 'stream' mode
|
||||
fix: incomplete longpoll-multipart response when using Redis
|
||||
fix: "subrequests cycle" error for websocket publisher for nginx > 1.9.4
|
||||
fix: nchan_channel_id_split_delimiter inheritance
|
||||
fix: subscriber memory leak from 0.99.8
|
||||
fix: reload crash from 0.99.14
|
||||
0.99.14 (May 4 2016)
|
||||
fix: trailing NULL character in Publisher response content-type for json, xml, and yaml
|
||||
fix: don't crash when out of shared memory
|
||||
fix: invalid memory access when using nchan_publisher_upstream_request with websocket
|
||||
fix: incorrect stored messages count when using Redis store
|
||||
fix: incorrect last_message_id on publisher GETs (memstore and Redis)
|
||||
fix: incorrect behavior when subscribing right after startup before all workers are ready
|
||||
fix: some internal event loop timers were not being canceled, leading to slow shutdown
|
||||
fix: resuming some subscribers with valid message ids didn't work when using Redis store
|
||||
fix: possible invalid memory access when restarting Nginx after using multiplexed channels
|
||||
fix: accept url-encoded message ids
|
||||
feature: add ws+meta.nchan websocket subprotocol that include message metadata
|
||||
fix: all requests after X-Accel-Redirect from upstream were treated as GETs
|
||||
0.99.13 (Apr. 20 2016)
|
||||
fix: invalid content-length for nchan_authorize_request publisher requests
|
||||
fix: "subrequests cycle" error after 200 websocket publish requests
|
||||
fix: zero-size buf warning when publishing empty messages via websocket
|
||||
fix: nchan_max_channel_subscribers was ignored
|
||||
fix: use a blocking Redis connection for commands during shutdown to ensure commands are sent
|
||||
fix: better TTL handling for Redis keys
|
||||
0.99.12 (Apr. 10 2016)
|
||||
fix: SPDY compatibility with EventSource and multipart/mixed subscribers
|
||||
fix: warnings when shutting down Redis storage
|
||||
feature: use system's hiredis library if present
|
||||
fix: incorrect handling of missing messages when publishing to Redis
|
||||
0.99.11 (Apr. 3 2016)
|
||||
feature: nchan can be built as a dynamic module (for nginx >= 1.9.11)
|
||||
0.99.10 (Apr. 2 2016)
|
||||
fix: messages not freed until expired after being deleted from channel
|
||||
fix: buffering and output issues for large messages
|
||||
update: hiredis updated to v0.13.3
|
||||
fix: Redis publishing and subscribing memory leaks
|
||||
optimize: per-channel Redis subscriber counts batched into 100-ms intervals
|
||||
to prevent Redis roundtrip floods
|
||||
fix: Redis subscriber memory leak
|
||||
refactor: extracted shared subscriber and message store logic
|
||||
fix: use-after-free error for Redis channels without subscribers
|
||||
fix: channel readying logic sometimes got confused and tripped up assert()s
|
||||
fix: even more proper handling of websocket close frames
|
||||
change: 408 Request Timeout instead of 304 No Content status code for timed out subscribers
|
||||
0.99.8 (Mar. 13 2016)
|
||||
fix: multipart/mixed subscriber output issues
|
||||
fix: memory leak for multiplexed > 4 channels
|
||||
fix: invalid memory access for aborted subscriber connection with Redis
|
||||
and nchan_subscribe_existing_channels_only
|
||||
fix: accept websocket binary data frames
|
||||
fix: proper handling of websocket close frames
|
||||
fix: incorrect expire calculation for cached Redis-stored messages
|
||||
fix: double free for multiplexed >4 websocket subs
|
||||
0.99.7 (Mar. 10 2016)
|
||||
fix: websocket infinite ping loop after reload
|
||||
feature: nchan_subscriber_message_id_custom_etag_header for misbehaving proxies that eat etags
|
||||
fix: 100% cpu after lost Redis connection
|
||||
fix: refined CORS cross-origin access control headers and logic
|
||||
fix: longpoll subscriber in multipart mode didn't output all messages
|
||||
fix: longpoll subscriber in multipart mode could access invalid memory
|
||||
fix: compatibility with supported Redis versions < 2.8.14
|
||||
fix: nchan_message_timeout 0 should not expire messages
|
||||
0.99.6 (Feb. 22 2016)
|
||||
fix: SIGHUP reloading under load
|
||||
0.99.5 (Feb 15 2016)
|
||||
fix: publishing with client_body_in_file_only enabled
|
||||
0.99.4 (Feb 12 2016)
|
||||
fix: invalid memory access in channel DELETE response
|
||||
fix: race condition in IPC during channel creation (thanks vtslothy)
|
||||
0.99.3 (Feb 10 2016)
|
||||
fix: SIGHUP reloading
|
||||
fix: startup with insufficient file descriptors shouldn't crash
|
||||
fix: longpoll-multipart failure to immediately respond
|
||||
fix: longpoll-multipart abort handling
|
||||
fix: Redis-store cached message timeouts
|
||||
fix: Redis connection-lost handling
|
||||
fix: startup with 'master_process off' (single-process mode)
|
||||
feature: EventSource 'event:' line support with custom header or config
|
||||
0.98 (Jan 21 2016)
|
||||
feature: publish to multiple channels with one request
|
||||
feature: nchan_longpoll_multipart_response config setting
|
||||
fix: large message (in-file) handling for multipart/mixed and chunked subscribers
|
||||
fix: 400 Bad Request error on 32-bit systems
|
||||
fix: memory allocation error for >8 multi-channel subscribers
|
||||
0.97 (Jan 5 2016)
|
||||
fix: build issues with debian
|
||||
fix: compatibility with nginx versions down to 1.0.15
|
||||
fix: publishing bug introduced in 0.96
|
||||
0.961 (Jan 4 2016)
|
||||
fix: compiler warning
|
||||
0.96 (Jan 1. 2016)
|
||||
feature: websocket ping with nchan_websocket_ping_interval
|
||||
fix: unsafe memory access for Redis publisher
|
||||
feature: nchan_publisher_upstream_request
|
||||
fix: http/2 compatibility for EventSource and multipart/mixed
|
||||
fix: nchan_authorize_request for publisher location endpoints
|
||||
fix: publishing long (stored in file) messages to Redis-store
|
||||
0.95 (Dec. 24 2015)
|
||||
feature: configurable nchan_access_control_origin_header, default to *
|
||||
fix: recognize non-preflighted CORS requests
|
||||
fix: Redis invalid memory access after timeout
|
||||
0.94 (Dec. 22 2015)
|
||||
feature: last mesage id in channel info response
|
||||
feature: subscribe up to 255 channel ids using nchan_channel_id_split_delimiter
|
||||
fix: tried connecting to Redis when not needed
|
||||
change: "last requested" no longer has a -1 value for 'never requested'.
|
||||
fix: "last requested" in channel info sometimes not updated
|
||||
fix: deleting empty channels
|
||||
change: more compact message ids
|
||||
0.931 (Dec. 14 2015)
|
||||
optimize: inter-process internal subscriber fetched too many messages
|
||||
0.93 (Dec. 12 2015)
|
||||
feature: optionally only use Etag for subscriber message id
|
||||
feature: optionally get requested message id from variable config
|
||||
0.92 (Dec. 11 2015)
|
||||
feature: HTTP multipart/mixed subscriber
|
||||
fix: EventSource bad memory access on disconnect
|
||||
feature: HTTP chunked encoding subscriber
|
||||
fix: resolved some strict compiler warnings
|
||||
fix: more stringent out-of-memory detection during response output. thanks @woodyhymns
|
||||
fix: less-than-optimal cache filename handling. thanks @ZhouBox
|
||||
fix: incorrect EventSource charset in header. thanks @eschultz
|
||||
fix: segfault when websocket publishes message and immediately disconnects
|
||||
fix: Duplicate "Connection: Upgrade" header for websocket handshake. thanks @eschultz
|
||||
0.904 (Dec. 7 2015)
|
||||
fix: more flexible Websocket handshake for "Connection" header. thanks @eschultz
|
||||
fix: out-of-memory safety check. thanks @woodyhymns
|
||||
0.903 (Dec 3 2015)
|
||||
fix: better Redis engine connection initializer
|
||||
change: simpler message buffer settings
|
||||
fix: more backwards-compatibility for pushmodule config settings
|
||||
0.9 (Dec. 2 2015) - first beta pre-release tag after rebranding as Nchan
|
||||
feature: meta channel events: track when subscribers connect and disconnect, and when messages are
|
||||
published, with configurable event strings
|
||||
feature: request authorization: send upstream request before publishing or subscribing.
|
||||
works just like the auth_request module.
|
||||
feature: channel multiplexing. up to 4 channels can be subscribed to from a single location
|
||||
fix: channel ids were not set within if statements in the nginx config
|
||||
feature: hybrid memstore + Redis storage. local caching + distributed message publishing, the best
|
||||
of both worlds. (still slower than pure memstore though)
|
||||
feature: pubsub locations, optional separate publisher and subscriber channel ids per location
|
||||
feature: websocket publisher support
|
||||
name change: we're nchan now. code renamed, and cleaned up. config options are backwards-compatible.
|
||||
feature: websocket subscriber support
|
||||
huge refactor: completely new in-memory storage engine. No more global lock.
|
||||
Actually, no more locks at all!
|
||||
feature: Redis storage engine.
|
||||
0.73 (Sep. 2 2014)
|
||||
fix: turning on gzip cleared Etag subscriber response header
|
||||
fix: channels incorrectly deleted when overwhelmed with connections
|
||||
feature: CORS support via OPTIONS request method response
|
||||
fix: file descriptor leak when restarting nginx via SIGHUP
|
||||
improve: concurrency for interprocess notifications
|
||||
refactor: completely encapsulated message store
|
||||
fix: slow memory leak introduced in 0.7
|
||||
fix: memory leak when not using message buffer
|
||||
0.712 (Mar. 21 2014)
|
||||
fix: intermittently dropped long-polling connections on internal redirects
|
||||
fix: unable to proxy long-polling subscribers. (thanks wandenberg and sanmai)
|
||||
0.711 (Mar. 13 2014)
|
||||
fix: incompatibility with cache manager (proxy_cache and fastcgi_cache directives)
|
||||
0.71 (Mar. 1 2014)
|
||||
fix: removed unused variables and functions to quiet down GCC
|
||||
0.7: (Feb. 20 2014)
|
||||
fix: last-in concurrency setting wasn't working reliably
|
||||
refactor: partially separated message storage. add a test harness.
|
||||
fix: segfault from concurrency bug while garbage-collecting channels
|
||||
fix: some large messages got lost
|
||||
0.692 (Feb. 3 2010)
|
||||
fix: error log reported failed close() for some publisher requests with large messages
|
||||
fix: occasional memory leak during message deletion
|
||||
fix: worker messages intended for dead worker processes were not deleted
|
||||
0.691 (Feb. 2 2010)
|
||||
fix: server reload (via SIGHUP signal) was failing
|
||||
fix: segfault on messages longer than client_body_buffer_size (thanks wfelipe)
|
||||
change: removed push_min_message_recipients, added push_delete_oldest_received_message
|
||||
0.69 (Nov. 17 2009)
|
||||
fix: publisher got a 201 Created response even if the channel had no subscribers at the time (should be 202 Accepted)
|
||||
fix: small memory leak after each message broadcast to a channel
|
||||
feature: optional push_max_channel_subscribers setting added
|
||||
fix: first-in concurrency setting wasn't responding to subscribers with a correct status code on conflict
|
||||
fix: reused subscriber connections sometimes failed to receive messages
|
||||
unfeature: no more nginx 0.6 support. not worth the hassle.
|
||||
0.683 (Nov. 10 2009)
|
||||
change: default max. reserved memory size changed form 16MB to 32 MB
|
||||
change: unused node garbage collection made a little more aggressive (max. 3 unused channels per channel search instead of 1)
|
||||
fix: unused nodes were deleted only on channel id hash collision (very rare)
|
||||
fix: segmentation fault from allocating insufficient memory for interprocess messaging
|
||||
0.681 (Nov. 6 2009)
|
||||
feature: added push_message_buffer_length setting, which sets push_message_max_buffer_length and push_message_min_buffer_length at once.
|
||||
fix: publisher channel info text/json response now uses double quotes instead of single.
|
||||
fix: interprocess messages were not removed from shared memory correctly, causing weird errors
|
||||
0.68 (Nov. 5 2009)
|
||||
change: default push_subscriber_concurrency value is now "broadcast"
|
||||
fix: incorrect error messages for invalid push_pubscriber and push_subscriber_concurrency settings
|
||||
change: removed deprecated push_buffer_size and push_queue_messages settings
|
||||
feature: rudimentary content-type negotiation for publisher channel info response.
|
||||
support text/plain, text/json, text/yaml and application/xml (and mimetype equivalents)
|
||||
fix: publisher GET response has HTTP status 0
|
||||
0.67beta (Nov. 4 2009) and older
|
||||
see git repository
|
||||
17
debian/modules/nchan/cloc-exclude.txt
vendored
17
debian/modules/nchan/cloc-exclude.txt
vendored
|
|
@ -1,17 +0,0 @@
|
|||
src/uthash.h
|
||||
src/hiredis
|
||||
src/store/redis/cmp.*
|
||||
src/nginx-source
|
||||
dev/package
|
||||
dev/nginx-nchan/*.patch
|
||||
dev/nginx-nchan/pkg
|
||||
dev/nginx-nchan/src
|
||||
dev/nginx-nchan/*.txt
|
||||
dev/nginx-nchan/nginx.conf
|
||||
dev/nginx-nchan/nginx.logrotate
|
||||
dev/nginx-nchan/*.tar
|
||||
dev/nginx-nchan/*.gz
|
||||
dev/clang-analyzer
|
||||
dev/package
|
||||
dev/src
|
||||
|
||||
24
debian/modules/nchan/src/hiredis/.travis.yml
vendored
24
debian/modules/nchan/src/hiredis/.travis.yml
vendored
|
|
@ -1,24 +0,0 @@
|
|||
language: c
|
||||
sudo: false
|
||||
compiler:
|
||||
- gcc
|
||||
- clang
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libc6-dbg
|
||||
- libc6-dev
|
||||
- libc6:i386
|
||||
- libc6-dev-i386
|
||||
- libc6-dbg:i386
|
||||
- gcc-multilib
|
||||
- valgrind
|
||||
|
||||
env:
|
||||
- CFLAGS="-Werror"
|
||||
- PRE="valgrind --track-origins=yes --leak-check=full"
|
||||
- TARGET="32bit" TARGET_VARS="32bit-vars" CFLAGS="-Werror"
|
||||
- TARGET="32bit" TARGET_VARS="32bit-vars" PRE="valgrind --track-origins=yes --leak-check=full"
|
||||
|
||||
script: make $TARGET CFLAGS="$CFLAGS" && make check PRE="$PRE" && make $TARGET_VARS hiredis-example
|
||||
110
debian/modules/nchan/src/hiredis/CHANGELOG.md
vendored
110
debian/modules/nchan/src/hiredis/CHANGELOG.md
vendored
|
|
@ -1,110 +0,0 @@
|
|||
### 0.13.3 (2015-09-16)
|
||||
|
||||
* Revert "Clear `REDIS_CONNECTED` flag when connection is closed".
|
||||
* Make tests pass on FreeBSD (Thanks, Giacomo Olgeni)
|
||||
|
||||
|
||||
If the `REDIS_CONNECTED` flag is cleared,
|
||||
the async onDisconnect callback function will never be called.
|
||||
This causes problems as the disconnect is never reported back to the user.
|
||||
|
||||
### 0.13.2 (2015-08-25)
|
||||
|
||||
* Prevent crash on pending replies in async code (Thanks, @switch-st)
|
||||
* Clear `REDIS_CONNECTED` flag when connection is closed (Thanks, Jerry Jacobs)
|
||||
* Add MacOS X addapter (Thanks, @dizzus)
|
||||
* Add Qt adapter (Thanks, Pietro Cerutti)
|
||||
* Add Ivykis adapter (Thanks, Gergely Nagy)
|
||||
|
||||
All adapters are provided as is and are only tested where possible.
|
||||
|
||||
### 0.13.1 (2015-05-03)
|
||||
|
||||
This is a bug fix release.
|
||||
The new `reconnect` method introduced new struct members, which clashed with pre-defined names in pre-C99 code.
|
||||
Another commit forced C99 compilation just to make it work, but of course this is not desirable for outside projects.
|
||||
Other non-C99 code can now use hiredis as usual again.
|
||||
Sorry for the inconvenience.
|
||||
|
||||
* Fix memory leak in async reply handling (Salvatore Sanfilippo)
|
||||
* Rename struct member to avoid name clash with pre-c99 code (Alex Balashov, ncopa)
|
||||
|
||||
### 0.13.0 (2015-04-16)
|
||||
|
||||
This release adds a minimal Windows compatibility layer.
|
||||
The parser, standalone since v0.12.0, can now be compiled on Windows
|
||||
(and thus used in other client libraries as well)
|
||||
|
||||
* Windows compatibility layer for parser code (tzickel)
|
||||
* Properly escape data printed to PKGCONF file (Dan Skorupski)
|
||||
* Fix tests when assert() undefined (Keith Bennett, Matt Stancliff)
|
||||
* Implement a reconnect method for the client context, this changes the structure of `redisContext` (Aaron Bedra)
|
||||
|
||||
### 0.12.1 (2015-01-26)
|
||||
|
||||
* Fix `make install`: DESTDIR support, install all required files, install PKGCONF in proper location
|
||||
* Fix `make test` as 32 bit build on 64 bit platform
|
||||
|
||||
### 0.12.0 (2015-01-22)
|
||||
|
||||
* Add optional KeepAlive support
|
||||
|
||||
* Try again on EINTR errors
|
||||
|
||||
* Add libuv adapter
|
||||
|
||||
* Add IPv6 support
|
||||
|
||||
* Remove possiblity of multiple close on same fd
|
||||
|
||||
* Add ability to bind source address on connect
|
||||
|
||||
* Add redisConnectFd() and redisFreeKeepFd()
|
||||
|
||||
* Fix getaddrinfo() memory leak
|
||||
|
||||
* Free string if it is unused (fixes memory leak)
|
||||
|
||||
* Improve redisAppendCommandArgv performance 2.5x
|
||||
|
||||
* Add support for SO_REUSEADDR
|
||||
|
||||
* Fix redisvFormatCommand format parsing
|
||||
|
||||
* Add GLib 2.0 adapter
|
||||
|
||||
* Refactor reading code into read.c
|
||||
|
||||
* Fix errno error buffers to not clobber errors
|
||||
|
||||
* Generate pkgconf during build
|
||||
|
||||
* Silence _BSD_SOURCE warnings
|
||||
|
||||
* Improve digit counting for multibulk creation
|
||||
|
||||
|
||||
### 0.11.0
|
||||
|
||||
* Increase the maximum multi-bulk reply depth to 7.
|
||||
|
||||
* Increase the read buffer size from 2k to 16k.
|
||||
|
||||
* Use poll(2) instead of select(2) to support large fds (>= 1024).
|
||||
|
||||
### 0.10.1
|
||||
|
||||
* Makefile overhaul. Important to check out if you override one or more
|
||||
variables using environment variables or via arguments to the "make" tool.
|
||||
|
||||
* Issue #45: Fix potential memory leak for a multi bulk reply with 0 elements
|
||||
being created by the default reply object functions.
|
||||
|
||||
* Issue #43: Don't crash in an asynchronous context when Redis returns an error
|
||||
reply after the connection has been made (this happens when the maximum
|
||||
number of connections is reached).
|
||||
|
||||
### 0.10.0
|
||||
|
||||
* See commit log.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue