Compare commits
937 Commits
Author | SHA1 | Date | |
---|---|---|---|
d831fd10d5 | |||
57626f0900 | |||
b0aae380e9 | |||
314099a267 | |||
8c983046fc | |||
ce9330e9bb | |||
f9941a035e | |||
b2a981f353 | |||
534eaf6f12 | |||
a372619fee | |||
12cdf39165 | |||
19c5343a0a | |||
4a4c8f84d5 | |||
f94208f493 | |||
f2cb9b36b2 | |||
1c5897895b | |||
64423f3a09 | |||
9fb3f04385 | |||
dd627cd7f4 | |||
eedf270127 | |||
a1af94f4e9 | |||
9f5bf06f95 | |||
40705caf7e | |||
9d5b9efc2f | |||
cc4251c5b7 | |||
8d74d34f2a | |||
7f996ea6d5 | |||
0aa4a4ba7a | |||
1ab36d891c | |||
5b5625a6f0 | |||
33a9cd02ba | |||
ca73651e12 | |||
fbd834716f | |||
914b4fae7b | |||
a1bf139188 | |||
a2f753986b | |||
d28f44335a | |||
0a925a6f21 | |||
132bff25df | |||
e1c16a8e68 | |||
4ee73fa272 | |||
30cfe65b39 | |||
40d5f9b5d2 | |||
809022b273 | |||
d0c0585553 | |||
d60929514b | |||
920e1f56c2 | |||
86122e1646 | |||
f9a27d6778 | |||
8b0be5c1fc | |||
686561dc5b | |||
b8b8e58586 | |||
54fd7c7e9a | |||
e060ae3176 | |||
7392a32cd8 | |||
8b724493cc | |||
9cb16accfd | |||
d5944ae69c | |||
6102c70855 | |||
6cc055dbba | |||
f51ce077a3 | |||
2de4c95446 | |||
63f70ba465 | |||
7ef68a9d6a | |||
90bf300bd8 | |||
f9528f1248 | |||
4861ec5a40 | |||
acf5b3579b | |||
d1460ab65b | |||
85bd773c55 | |||
ed3918b508 | |||
7c2766096c | |||
acd8b95114 | |||
34ff813e2a | |||
056cef7292 | |||
7c5f256d4a | |||
82749e4442 | |||
7890185e81 | |||
71fc0dd097 | |||
8373a0fa60 | |||
21264baaae | |||
703f9290c9 | |||
dd1b52c7d9 | |||
01003617cd | |||
bfe4bc2894 | |||
1c88037ea0 | |||
0027e6bdab | |||
87edbb2d3a | |||
5be92a96df | |||
0733af5239 | |||
216ed8c8ea | |||
58e3b8c5ad | |||
c6adfd9d67 | |||
672c58be01 | |||
6cf3b65953 | |||
936dda4773 | |||
047e327f01 | |||
032dc5c108 | |||
dc54e0e1c4 | |||
9124b0a7a3 | |||
dea47f601d | |||
67cf4c42d5 | |||
dc762196dc | |||
0a900dc275 | |||
6f58510431 | |||
666fb7ea2d | |||
f0778860e5 | |||
6aea546d6f | |||
e0a3291235 | |||
b88d7091c8 | |||
15cfa3bf62 | |||
9c9d1650d1 | |||
0ae09577f6 | |||
a59f82093a | |||
be95b56c10 | |||
ea0f7dde95 | |||
a59626c971 | |||
67a7534c21 | |||
39f3f5b2d9 | |||
eccc31a4b9 | |||
d31f238be0 | |||
27c26a77a2 | |||
ab503902c8 | |||
ed53b62f1b | |||
ad5ba54cd4 | |||
a6742b7f82 | |||
91bae4b1a8 | |||
4959d8079b | |||
a558bd9312 | |||
3e41163bbe | |||
10170b41c3 | |||
e0e91e8397 | |||
d2de0292cc | |||
0210ba9c13 | |||
117d7194af | |||
7587ef5136 | |||
087a797257 | |||
a02f42188c | |||
98e0bf22d3 | |||
1e2ff042b4 | |||
b8eb9196e8 | |||
db1df58955 | |||
2f5dc10399 | |||
4100615cd6 | |||
e27c3edaba | |||
3c9ea2b667 | |||
065f42af1d | |||
1d503f45ad | |||
5b5f9a069a | |||
77c7f9133f | |||
475281935e | |||
cdf248b1e2 | |||
85c0322313 | |||
ebc1ed4015 | |||
a25da7f771 | |||
c78f103ca6 | |||
4d50ed0b9d | |||
9ac2cfe611 | |||
85da0b419c | |||
3ddaa60de9 | |||
25641d956e | |||
3b8c33d49a | |||
f74a594e98 | |||
668ab8b85c | |||
98b190c626 | |||
9568a4f2b4 | |||
b41e0910b0 | |||
6448189d20 | |||
1694d510ec | |||
af7ccff846 | |||
381460fd97 | |||
b02a41751c | |||
e0acccc3c9 | |||
bcf27d78e5 | |||
ad54d0ed52 | |||
880a99adf8 | |||
3b11915eab | |||
82c799b9d1 | |||
99c0ca621b | |||
e1f60e3f83 | |||
5a6c229b27 | |||
86a436e9bf | |||
7516fd03a3 | |||
9826c20d1a | |||
12392b5190 | |||
4e57abb159 | |||
2b1ba60f24 | |||
638c868a07 | |||
b909330518 | |||
802072ec17 | |||
3c343eb775 | |||
8b67d06272 | |||
bc521504ca | |||
0797adf223 | |||
718039561e | |||
85698860ae | |||
50e131a4ff | |||
b733bb8ead | |||
e18d206248 | |||
2248b1f846 | |||
58e19e86f4 | |||
04d1862e3a | |||
7ecfc37854 | |||
21d7806064 | |||
c5b2d6cbc8 | |||
75c7e501ef | |||
dba0931b58 | |||
e0a7d6bfb9 | |||
add854d31b | |||
66b70a8043 | |||
1d1843bf3b | |||
0e23ba8f1a | |||
b6074da498 | |||
7e92d478a1 | |||
a9ec057b91 | |||
64a5e0d93f | |||
378e4ea34e | |||
ff670d044a | |||
fac212fafa | |||
e83c7e6691 | |||
e0c4877d76 | |||
457b5d2fe8 | |||
9cf8dacfbb | |||
b5d7d71e1e | |||
6fdc7be502 | |||
8fe858c5c6 | |||
0d7197381a | |||
651f45fe29 | |||
02270e0e3d | |||
cb692d73c8 | |||
1300cf23c5 | |||
3cb24410a8 | |||
be7ce4110e | |||
c07e4a8c01 | |||
ff8da9d246 | |||
b1faebae4a | |||
e96515433d | |||
5a8d2c3cb4 | |||
183a9d7088 | |||
c1384422c3 | |||
ccc0ebd0f9 | |||
9d4336d296 | |||
17bc9d3085 | |||
436f481a34 | |||
9e8215b213 | |||
e958a83dd4 | |||
f44b122262 | |||
26d1cf9186 | |||
895ee77c38 | |||
caf8b15f6d | |||
bc7f18064f | |||
355d3f44fb | |||
9de863e68b | |||
64b7f8e445 | |||
626f488cb4 | |||
10212e376a | |||
81462cd530 | |||
7d4e4ac646 | |||
0ed339f19d | |||
c6fc3560f2 | |||
b4cec0b4a8 | |||
d7030b6e9c | |||
7ed5bde426 | |||
75652ce667 | |||
91f801ee72 | |||
c6f567ae4a | |||
e1ca3c995d | |||
addc327f17 | |||
f2c12d548d | |||
ef36acb970 | |||
d5ca4e5f52 | |||
373ca30269 | |||
0d9d3a90de | |||
363481b0f1 | |||
38058450ce | |||
e672dc8094 | |||
c6682f2a3f | |||
4508a6687e | |||
a47c3cb16f | |||
9b42ced27f | |||
1a400d33fd | |||
96ee7252c2 | |||
b0624d3fd1 | |||
c329fab966 | |||
127c19fecd | |||
4c22793850 | |||
da74b9651c | |||
ce23a8dd32 | |||
30d106766a | |||
c4df88354b | |||
b65c1ed3a0 | |||
b329fb68a9 | |||
da179d9930 | |||
e7fee4c6ce | |||
4151749dc9 | |||
aee9521c91 | |||
7e46c83592 | |||
ba74abb753 | |||
9ddc0327d4 | |||
c34325fee7 | |||
db8443ef7d | |||
6c85f8c7a7 | |||
eea93d2607 | |||
e9f8ecbf7e | |||
48852e8cb4 | |||
55ec325961 | |||
59151fbf86 | |||
1c700b7b41 | |||
ff18bacd94 | |||
caf1de3bcf | |||
a9ad2924ac | |||
7ea2354540 | |||
760bba67e7 | |||
1fe3a4402d | |||
166c7978ee | |||
4f80e79886 | |||
b47a2c9ac5 | |||
1a5274b86b | |||
66236e91a2 | |||
36475aebc7 | |||
acd1f24a3f | |||
a74532fa0b | |||
59d4aef7c2 | |||
dfb291090d | |||
dac32f863e | |||
f3b56d3d94 | |||
eb95a427fa | |||
f16299b10b | |||
76bce44280 | |||
ee0a194b25 | |||
ef08346a74 | |||
fe0068da52 | |||
cd70fefc5e | |||
877f86a896 | |||
912036b260 | |||
a4e8847664 | |||
c492bf7eea | |||
cb086ff97f | |||
7e4da53c0b | |||
fe376f6a1e | |||
55a99f34d0 | |||
99df637aae | |||
d0c68096df | |||
1c464c2da1 | |||
5b15da98b4 | |||
d5a95f9224 | |||
a7dcfa18a2 | |||
4389b9feff | |||
cf03996bf2 | |||
e1a3bd3a92 | |||
58119598ae | |||
42a2afaef9 | |||
c2cfb4d1dc | |||
f0b0172434 | |||
8217cadc08 | |||
6ad047a8fc | |||
23ef742e08 | |||
1294767b44 | |||
eca645fc52 | |||
8598f34ebf | |||
cade483a00 | |||
df46248a0c | |||
6cddb94509 | |||
0e658828fb | |||
de04240ca6 | |||
40681328ec | |||
4dbdfb6972 | |||
bd9c8d65ef | |||
24ec634005 | |||
ff0e6a53fc | |||
ffb444dbeb | |||
d6f32516d8 | |||
29566bfe7d | |||
16d2b85c71 | |||
193b357a0c | |||
8ee8870c27 | |||
3c59de7c00 | |||
e87bf87046 | |||
b4f7a9a4f4 | |||
a360416655 | |||
26dbebbba7 | |||
04b77773c4 | |||
6f4a69703b | |||
d67f59f5b5 | |||
00d9abb612 | |||
c8920cff19 | |||
7293ba7d71 | |||
e73d7d9349 | |||
0e3be9b837 | |||
c600590aa6 | |||
1343f15a07 | |||
5fcaed086d | |||
130689d82b | |||
1efceb86fc | |||
1d92974447 | |||
de56f571c7 | |||
3670b8cefd | |||
425f5201a2 | |||
df3b29e6ff | |||
96a49bf476 | |||
2d975f275c | |||
76e30cf165 | |||
da603208b4 | |||
6dc7bdf72e | |||
d52ebaa412 | |||
c30a1f60ea | |||
2388c9f4e4 | |||
f41372680d | |||
7efb1cf7d3 | |||
0547fd3593 | |||
2800534445 | |||
e464050a40 | |||
73ec8cddd7 | |||
1c171b5d99 | |||
32f49b44b0 | |||
e2d4571ade | |||
3f19e7d73c | |||
93076dde56 | |||
3e78785dea | |||
68c9398f71 | |||
4b3a13797a | |||
4a2c75a609 | |||
34a64f30de | |||
4bdf0317c3 | |||
8624972d01 | |||
6bfaaaa557 | |||
b42c998095 | |||
56357c077b | |||
3def00370e | |||
e1a3285273 | |||
59b392af10 | |||
a8dde7b89b | |||
ecde26c823 | |||
567969d33c | |||
544a4de1e0 | |||
c341bf6d8c | |||
297869163e | |||
3ead6b67cd | |||
3cbea6c898 | |||
1f73ab4b05 | |||
8148c658cf | |||
15ddf28c6a | |||
16b5274963 | |||
f8e24f4629 | |||
1cf8a1f493 | |||
bc2c4cf80a | |||
9933d83cf8 | |||
1918c29fd7 | |||
84705aafc7 | |||
618202d426 | |||
8b9a7d2c8f | |||
d1335dca11 | |||
5e13b42abc | |||
b4b5a70a03 | |||
96aa1c30a6 | |||
1b0c183913 | |||
5d4a9a4aa1 | |||
31c12aebb5 | |||
40269c2a97 | |||
ed74ed6ed2 | |||
26e684eb0e | |||
fc66f79988 | |||
3c85a7f074 | |||
62d2a00e74 | |||
bb2b109707 | |||
c5008031b9 | |||
1d15d4e8d3 | |||
da898d5a19 | |||
f9c84c8c52 | |||
5d63ed6739 | |||
fdf4ebd43c | |||
dc9fdb7da8 | |||
2652c71c9e | |||
806d1fff42 | |||
c065e88e1e | |||
4641a44029 | |||
f544f75c36 | |||
720168f0a0 | |||
6dfecca91e | |||
10b38b5b0a | |||
dbc5d5c453 | |||
a3e0ba16f5 | |||
3c906102e1 | |||
566ac113e4 | |||
5abc8bd2af | |||
926b2e168e | |||
e475e8151d | |||
440f10e353 | |||
30256c7106 | |||
21946f38d0 | |||
549673664d | |||
b45d0c5a36 | |||
4df05c2890 | |||
d886089091 | |||
51158dde93 | |||
09fff7f1cb | |||
91f435f32f | |||
726ffddce2 | |||
4ecf692f46 | |||
2a461a9aac | |||
211b1fc23c | |||
df6bbb0b0c | |||
cfae20e0df | |||
3c0adde0c7 | |||
f511c9c938 | |||
20f88b37ef | |||
269501eaa0 | |||
330e1de3d1 | |||
25e14e2164 | |||
aa97aabb4e | |||
59cd2766e3 | |||
b7952d7f39 | |||
c380a4e4bd | |||
9c487cbfb8 | |||
6fc636535f | |||
4190318c85 | |||
2f554fd6f8 | |||
ae93cccde6 | |||
46e955e3a1 | |||
60057d7072 | |||
2850f131e2 | |||
440568a516 | |||
e31088aaf9 | |||
63b36e8569 | |||
726d359335 | |||
fc0858a4a3 | |||
f80103778a | |||
c09010c25a | |||
9cd1466e6b | |||
801be64ed3 | |||
d719137565 | |||
58aba96494 | |||
f8d7796099 | |||
241c41267b | |||
2ac1ff9be2 | |||
cb31b3987f | |||
c256398095 | |||
7bb8703bf9 | |||
0da00bf546 | |||
4866490cdf | |||
1547b1a581 | |||
511c77aa99 | |||
692a0e7ac2 | |||
fa25b45198 | |||
cdd25c389e | |||
133a6ff7b3 | |||
96add0ba65 | |||
f5096a1f26 | |||
3d4d087f07 | |||
953e62f103 | |||
084727c54a | |||
8ea192fcab | |||
dceba1f2f1 | |||
73878fbdc4 | |||
87d17088cc | |||
cc6c48fca8 | |||
e556a2ee23 | |||
50b866c5cf | |||
f83eed9ef9 | |||
cb9313a454 | |||
cf411efd1d | |||
1c956494a4 | |||
dbe3aa1efc | |||
4128d80974 | |||
057356a725 | |||
a69e91c541 | |||
8fccf3136c | |||
2435ab70ab | |||
f489862500 | |||
2642fa1ee2 | |||
2293b0703f | |||
1375e3e2f5 | |||
0ab5cce878 | |||
b567e91f68 | |||
eee31605b1 | |||
df9a7497b1 | |||
c6adb6df12 | |||
aeec7dae36 | |||
fa58909d44 | |||
06ed114fb6 | |||
bdef9d3bd7 | |||
b154b7296c | |||
8019f13479 | |||
1c6fd4125d | |||
1f99f1d5f4 | |||
30c77cfee5 | |||
afdc91f21f | |||
3470c5314d | |||
f0e824416b | |||
52ff67fb2c | |||
e9375b50b0 | |||
1f43a736b2 | |||
05a0a20197 | |||
2ee595553a | |||
2d4fe9e6d0 | |||
dc12bde068 | |||
b3fbbd3124 | |||
983336911c | |||
48b39ab005 | |||
5095d73de3 | |||
1192b1b422 | |||
43c528fdb6 | |||
da4b9922d4 | |||
7a8c89be9d | |||
3b37db1a36 | |||
5ae0f9d03f | |||
1dd1bf8bac | |||
8966002685 | |||
4ce810b421 | |||
730482e62f | |||
eac56a2e25 | |||
5c3a2357ef | |||
663a09b38d | |||
eaccce743f | |||
7cce23ae79 | |||
73c186b111 | |||
5ce0019ee5 | |||
ca8d315924 | |||
dfdac7adbd | |||
a33d7c64fe | |||
e37c9055b3 | |||
d15516f0ef | |||
4a1d6f4cc8 | |||
6393a4beec | |||
06125c48bc | |||
8cda04cc98 | |||
f20b7e8cee | |||
19dded141a | |||
d19cf1eaac | |||
d6b00bcd40 | |||
1b1fe61fd0 | |||
3bce783cbc | |||
5966f7d9d2 | |||
aed0b4941f | |||
9ef75c0e13 | |||
5f548705dd | |||
39d3c8402e | |||
5cb6265547 | |||
03dd537ea4 | |||
4af8f1bf03 | |||
ae8df648d5 | |||
5e24166318 | |||
4e10b4e017 | |||
87fdd644d4 | |||
2e356613ec | |||
91e9b736dd | |||
7f4cc1a239 | |||
3e3d46e72e | |||
460c2552a8 | |||
1a7fb83882 | |||
dfac6303bc | |||
8b77a93d60 | |||
fabfb10b97 | |||
65549cb0da | |||
bee137c6d9 | |||
a2a7122da9 | |||
0e798222a7 | |||
c890f1762a | |||
ea4d7ae92f | |||
1ef385b685 | |||
0875fb5fe0 | |||
b5186f7293 | |||
fa21fdc1cc | |||
3f4cd7f5a2 | |||
272fb2ca96 | |||
a7116bc971 | |||
502cbc2175 | |||
953d22de14 | |||
cacfc294d9 | |||
f8ca7002c2 | |||
6c728313f5 | |||
1a2dc67702 | |||
f7dbd050af | |||
c16b03c8b8 | |||
357e1aca54 | |||
c15890b4db | |||
f268237372 | |||
4d021e16a5 | |||
62ce6e6a60 | |||
c7109c646a | |||
43433cdb5a | |||
8d39c9a861 | |||
f8bf91426b | |||
f7934972ea | |||
4cadfd736f | |||
c46309ea8a | |||
37f26beb50 | |||
1c7a5439d5 | |||
ebc4c898ff | |||
56cf874d99 | |||
079ff50622 | |||
31888f5ef8 | |||
7a626abf15 | |||
3c7bd65bc9 | |||
01bf3b8245 | |||
a6c1998c81 | |||
0069b1bac3 | |||
25c5cad1d1 | |||
c689c0bd8c | |||
271dfc0d2b | |||
0032df3bf1 | |||
993e58773a | |||
8f4c038e23 | |||
81f2c57656 | |||
594853e251 | |||
cce8411c22 | |||
786906b0f7 | |||
aed37a391d | |||
cc6de583be | |||
b277e04efa | |||
95032cc74d | |||
3818351287 | |||
4d26b5a868 | |||
ac0dc7844f | |||
27e3597d5e | |||
9e8de2a702 | |||
165757176a | |||
a411b83a65 | |||
12900d914a | |||
190e9464ce | |||
57dd26baa9 | |||
19f3a97a8d | |||
375e5ee7dd | |||
05df378dce | |||
f1efea6800 | |||
81de6d2dfa | |||
9e38c31b64 | |||
b403f106fb | |||
30d5d5a892 | |||
9bc79f94df | |||
a0239e17e9 | |||
c8a58b4b04 | |||
b72e5e8386 | |||
565885a4c0 | |||
134d33c218 | |||
9cfb807fcb | |||
46adc1f059 | |||
9002555596 | |||
3b375b55c2 | |||
3f49570f45 | |||
7c3166e9be | |||
39b97f9163 | |||
af79be5002 | |||
a20a290836 | |||
e822463916 | |||
d2c3ea6901 | |||
83265768c1 | |||
27ce787fbd | |||
9c6ec2c52e | |||
3a4425fd4e | |||
6bb1598fa3 | |||
4eb6a4286e | |||
a9942ca412 | |||
8d21ae9813 | |||
ff8044f0c0 | |||
1b8917a57c | |||
a91c49fa52 | |||
e607348c7e | |||
b6ed919fbc | |||
109252be4e | |||
a4b98518e3 | |||
c3a42bf590 | |||
8b95afa96a | |||
6a49a766ca | |||
932584f8fc | |||
d7ba2957cd | |||
16ff14bda7 | |||
57c1d96b71 | |||
40f376e2b9 | |||
1a1d7d9ada | |||
d1c88971ae | |||
dc61f78916 | |||
a2ffe8c05e | |||
e1af003e4f | |||
19391858d4 | |||
5005244d1b | |||
15380cfc14 | |||
11b352458e | |||
b6680b18e7 | |||
ec4c2aa12f | |||
0e8c43cfdd | |||
958420ee44 | |||
2d8a54f05d | |||
d0f4cfe6b4 | |||
3ec23f92ec | |||
6baac1b4e0 | |||
1d8b8d8e9c | |||
50b0b2e2e9 | |||
20721491e8 | |||
eec46a137e | |||
9eae444104 | |||
576b4f03a5 | |||
2d0f76bb9c | |||
6492f4487b | |||
126669b718 | |||
6fd45c1f9d | |||
4eb3b762d4 | |||
f24afca1ba | |||
461810b06a | |||
20050662b2 | |||
2053415418 | |||
613d7b5ece | |||
db29c3ac13 | |||
c101d71d7c | |||
63a44c9268 | |||
5623a0b420 | |||
663e748b8d | |||
0cf62d334d | |||
0872012cd9 | |||
c2d8fe46d5 | |||
0310bfa3e3 | |||
efe0e8aa7b | |||
5c7e51feaf | |||
34de579c91 | |||
0ed9db05d2 | |||
46387e2f2b | |||
8913f13b36 | |||
e5007f1290 | |||
740c77a488 | |||
73ddea8864 | |||
10215af96d | |||
e67fee0264 | |||
5ece4f734a | |||
27409b615a | |||
8866fbd618 | |||
8885149cd3 | |||
89ddf2991b | |||
547b0de8a5 | |||
0461b24db3 | |||
c698e9c122 | |||
8f84a968de | |||
f8ea7fdc2b | |||
7b0d11b187 | |||
8dd3639576 | |||
364ad87e2b | |||
9380ef708a | |||
fd174b3459 | |||
21d27c314c | |||
0b89a49201 | |||
de718d9743 | |||
e6b4fb5af7 | |||
c227330d09 | |||
c769e282fb | |||
98722ed7ea | |||
b16f40c0de | |||
fd85f87ade | |||
add33f1ab3 | |||
3bfc438ae8 | |||
1dfe909bab | |||
75d17ea3c8 | |||
96d15337bb | |||
74a678c1e1 | |||
fed1846c6f | |||
f27d193cf6 | |||
7941b63543 | |||
21965ac8e8 | |||
7ca2ecb421 | |||
1dcfc03cbc | |||
0702e581a1 | |||
c78792a705 | |||
287c19e822 | |||
bc901d613d | |||
2192a8b0ec | |||
6cb4c58d9a | |||
4f521baafd | |||
81fda3f5b8 | |||
91c4dfc7c0 | |||
788296ea29 | |||
60c1fcbc48 | |||
fc6d90a04a | |||
faf0c6bbfa | |||
79f1e81745 | |||
7427961fcf | |||
d2f1d05a06 | |||
19f4146aca | |||
47154fa623 | |||
5c508515c4 | |||
2824139510 | |||
c2efdcabc5 | |||
6f622e4551 | |||
6d8c96b89f | |||
bf4bb414dd | |||
dee3361c1d | |||
c470c6255e | |||
6faca86bb4 | |||
4fed56443e | |||
1859365f9d | |||
ab87b8f881 | |||
b8b65da51c | |||
198e6f765c | |||
810e2a761f | |||
6ce71c1bc3 | |||
6b3a7ec827 | |||
ed2360d9f7 | |||
1ce71f9dc0 | |||
18508b5a2e | |||
621898f3c5 | |||
2c1d7f3dcc | |||
8bb5bc736d | |||
b270d527f4 | |||
1bd9e9078e | |||
a3361a7d97 | |||
ca1715118f | |||
27ecb7c7b6 | |||
be7fca254f | |||
b64ae8c8a5 | |||
b984eb2808 | |||
15905b2fe3 | |||
24615ed24b | |||
13481cea18 | |||
7faaa55436 | |||
11ddbc6f30 | |||
29e5880d8b | |||
63fd2cbaeb | |||
9c58308e6a | |||
5fb814a04f | |||
c69d2df0a2 | |||
46a7136b0d | |||
d2974f2e60 | |||
ed8fe8990b | |||
50703534b1 | |||
4a7c156bf8 | |||
54680a6edc | |||
bac57e355d | |||
b8b1f64959 | |||
cdcd6c4886 | |||
4e8640b380 | |||
9374e45449 | |||
31ffe4403c | |||
b37e9de24d | |||
23f9baa9f2 | |||
537ce83498 | |||
1732f7371c | |||
2aecb547d9 | |||
f2734dc3d8 | |||
bfe5c758ba | |||
c9f07e855e |
75
.clang-format
Normal file
@ -0,0 +1,75 @@
|
||||
---
|
||||
BasedOnStyle: LLVM
|
||||
BreakBeforeBraces: Stroustrup
|
||||
IndentWidth: 4
|
||||
TabWidth: 4
|
||||
AlignAfterOpenBracket: AlwaysBreak
|
||||
AlignConsecutiveMacros: 'true'
|
||||
AlignConsecutiveAssignments: 'false'
|
||||
AlignConsecutiveDeclarations: 'false'
|
||||
AlignEscapedNewlines: Right
|
||||
AlignOperands: 'true'
|
||||
AlignTrailingComments: 'true'
|
||||
AllowAllArgumentsOnNextLine: 'false'
|
||||
AllowAllConstructorInitializersOnNextLine: 'false'
|
||||
AllowAllParametersOfDeclarationOnNextLine: 'false'
|
||||
AllowShortBlocksOnASingleLine: 'true'
|
||||
AllowShortCaseLabelsOnASingleLine: 'false'
|
||||
AllowShortFunctionsOnASingleLine: None
|
||||
AllowShortIfStatementsOnASingleLine: Never
|
||||
AlwaysBreakAfterReturnType: None
|
||||
BinPackArguments: 'false'
|
||||
BinPackParameters: 'false'
|
||||
BreakBeforeBinaryOperators: NonAssignment
|
||||
BreakBeforeTernaryOperators: 'true'
|
||||
BreakConstructorInitializers: BeforeComma
|
||||
BreakInheritanceList: BeforeComma
|
||||
CompactNamespaces: 'false'
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: 'true'
|
||||
ConstructorInitializerIndentWidth: '4'
|
||||
ContinuationIndentWidth: '4'
|
||||
Cpp11BracedListStyle: 'false'
|
||||
FixNamespaceComments: 'true'
|
||||
IncludeBlocks: Regroup
|
||||
IndentCaseLabels: 'true'
|
||||
IndentPPDirectives: None
|
||||
IndentWrappedFunctionNames: 'false'
|
||||
KeepEmptyLinesAtTheStartOfBlocks: 'false'
|
||||
MaxEmptyLinesToKeep: '1'
|
||||
NamespaceIndentation: None
|
||||
PointerAlignment: Left
|
||||
ReflowComments: 'true'
|
||||
SortIncludes: 'true'
|
||||
SortUsingDeclarations: 'true'
|
||||
SpaceAfterCStyleCast: 'false'
|
||||
SpaceAfterLogicalNot: 'true'
|
||||
SpaceAfterTemplateKeyword: 'true'
|
||||
SpaceBeforeAssignmentOperators: 'true'
|
||||
SpaceBeforeCpp11BracedList: 'true'
|
||||
SpaceBeforeCtorInitializerColon: 'true'
|
||||
SpaceBeforeInheritanceColon: 'true'
|
||||
SpaceBeforeParens: ControlStatements
|
||||
SpaceBeforeRangeBasedForLoopColon: 'true'
|
||||
SpaceInEmptyParentheses: 'false'
|
||||
SpacesBeforeTrailingComments: '3'
|
||||
SpacesInAngles: 'false'
|
||||
SpacesInCStyleCastParentheses: 'false'
|
||||
SpacesInContainerLiterals: 'true'
|
||||
SpacesInParentheses: 'false'
|
||||
SpacesInSquareBrackets: 'false'
|
||||
UseTab: 'Always'
|
||||
|
||||
---
|
||||
Language: Cpp
|
||||
Standard: Cpp03
|
||||
ColumnLimit: '240'
|
||||
---
|
||||
Language: ObjC
|
||||
ColumnLimit: '240'
|
||||
---
|
||||
Language: Java
|
||||
ColumnLimit: '240'
|
||||
---
|
||||
Language: CSharp
|
||||
ColumnLimit: '240'
|
||||
...
|
40
.drone.jsonnet
Normal file
@ -0,0 +1,40 @@
|
||||
local registry = "084037375216.dkr.ecr.us-east-2.amazonaws.com";
|
||||
|
||||
local targets = [
|
||||
{ "os": "linux", "name": "sid", "isas": [ "386", "armv7", "amd64", "arm64", "mips64le", "ppc64le", "s390x", "riscv64" ], "events": [ "push", "tag", "custom" ] },
|
||||
];
|
||||
|
||||
local Build(platform, os, isa, events) = {
|
||||
"kind": "pipeline",
|
||||
"type": "docker",
|
||||
"pull": "always",
|
||||
"name": platform + " " + isa + " " + "build",
|
||||
"clone": { "depth": 1 },
|
||||
"steps": [
|
||||
{
|
||||
"name": "build",
|
||||
"image": registry + "/honda-builder",
|
||||
"commands": [
|
||||
"aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin " + registry,
|
||||
"./ci/scripts/build.sh " + platform + " " + isa + " " + "100.0.0+${DRONE_COMMIT_SHA:0:8}" + " " + "${DRONE_BUILD_EVENT}"
|
||||
]
|
||||
},
|
||||
// {
|
||||
// "name": "list",
|
||||
// "image": registry + "/honda-builder",
|
||||
// "commands": [ "ls -la " + platform ]
|
||||
// },
|
||||
],
|
||||
[ if isa == "arm64" || isa == "armv7" then "platform" ]: { os: os, arch: "arm64" },
|
||||
"trigger": { "event": events }
|
||||
};
|
||||
|
||||
// puttin on the bits
|
||||
|
||||
std.flattenArrays([
|
||||
[
|
||||
Build(p.name, p.os, isa, p.events)
|
||||
for isa in p.isas
|
||||
]
|
||||
for p in targets
|
||||
])
|
158
.drone.yml
Normal file
@ -0,0 +1,158 @@
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
kind: pipeline
|
||||
name: sid 386 build
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
|
||||
084037375216.dkr.ecr.us-east-2.amazonaws.com
|
||||
- ./ci/scripts/build.sh sid 386 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: build
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
kind: pipeline
|
||||
name: sid armv7 build
|
||||
platform:
|
||||
arch: arm64
|
||||
os: linux
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
|
||||
084037375216.dkr.ecr.us-east-2.amazonaws.com
|
||||
- ./ci/scripts/build.sh sid armv7 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: build
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
kind: pipeline
|
||||
name: sid amd64 build
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
|
||||
084037375216.dkr.ecr.us-east-2.amazonaws.com
|
||||
- ./ci/scripts/build.sh sid amd64 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: build
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
kind: pipeline
|
||||
name: sid arm64 build
|
||||
platform:
|
||||
arch: arm64
|
||||
os: linux
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
|
||||
084037375216.dkr.ecr.us-east-2.amazonaws.com
|
||||
- ./ci/scripts/build.sh sid arm64 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: build
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
kind: pipeline
|
||||
name: sid mips64le build
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
|
||||
084037375216.dkr.ecr.us-east-2.amazonaws.com
|
||||
- ./ci/scripts/build.sh sid mips64le 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: build
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
kind: pipeline
|
||||
name: sid ppc64le build
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
|
||||
084037375216.dkr.ecr.us-east-2.amazonaws.com
|
||||
- ./ci/scripts/build.sh sid ppc64le 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: build
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
kind: pipeline
|
||||
name: sid s390x build
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
|
||||
084037375216.dkr.ecr.us-east-2.amazonaws.com
|
||||
- ./ci/scripts/build.sh sid s390x 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: build
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
kind: pipeline
|
||||
name: sid riscv64 build
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
|
||||
084037375216.dkr.ecr.us-east-2.amazonaws.com
|
||||
- ./ci/scripts/build.sh sid riscv64 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: build
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
33
.github/ISSUE_TEMPLATE/bugs-and-issues.md
vendored
@ -11,38 +11,21 @@ assignees: ''
|
||||
|
||||
_Using these will ensure you get quicker support, and make this space available for code-related issues. Thank you!_
|
||||
|
||||
- [Knowledge Base](https://zerotier.atlassian.net/wiki/spaces/SD/overview) => Guides and documentation on how to use ZeroTier.
|
||||
- [Docs Site](https://docs.zerotier.com/zerotier/troubleshooting) => Troubleshooting, quickstarts, and more advanced topics.
|
||||
- [Discuss Forum](https://discuss.zerotier.com/) => Our discussion forum for users and support to mutually resolve issues & suggest ideas.
|
||||
- [Reddit](https://www.reddit.com/r/zerotier/) => Our subreddit, which we monitor regularly and is fairly active.
|
||||
- [Knowledge Base](https://zerotier.atlassian.net/wiki/spaces/SD/overview) => Older wiki.
|
||||
|
||||
If you are having a connection issue, it's much easier to diagnose through the discussion forum or the ticket system.
|
||||
|
||||
|
||||
# If you still want to file a Bug Report
|
||||
|
||||
## Required
|
||||
## Please let us know
|
||||
|
||||
- What you expect to be happening.
|
||||
- What is actually happening?
|
||||
- Any steps to reproduce the error.
|
||||
- Any screenshots that would help us out.
|
||||
- Any relevant console output or screenshots.
|
||||
- What operating system and ZeroTier version. Please try the latest ZeroTier release.
|
||||
|
||||
## Additional information
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- OS: [e.g. Mac, Linux, Windows, BSD]
|
||||
- OS/Distribution Version
|
||||
- ZeroTier Version [e.g. 1.4.6]
|
||||
|
||||
**Smartphone (please complete the following information):**
|
||||
- Device: [e.g. iPhone6]
|
||||
- OS: [e.g. iOS8.1]
|
||||
- ZeroTier Version [e.g. 1.4.6]
|
||||
|
||||
**Embedded & NAS (please complete the following information):**
|
||||
- Device: [e.g. Synology, Pi4]
|
||||
- OS/Distribution (if applicable)
|
||||
- ZeroTier Version [e.g. 1.4.6]
|
||||
|
||||
**Additional context**
|
||||
- ZeroTier Network Configuration: IPv4 & IPv6 networks defined on your ZeroTier Central
|
||||
- Router Config: are you permitting port 9993, uPnP, and NAT-PMP?
|
||||
- Firewall Config: are you permitting port 9993 on your OS; setting it to "Private" on Windows?
|
||||
- Are you using this at home, in an office, college, etc?
|
||||
|
107
.github/workflows/build.yml
vendored
Normal file
@ -0,0 +1,107 @@
|
||||
on: [ push ]
|
||||
|
||||
jobs:
|
||||
build_ubuntu:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: gitconfig
|
||||
run: |
|
||||
git config --global core.autocrlf input
|
||||
# git config --global core.eol lf
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Install Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
target: aarch64-apple-darwin
|
||||
override: true
|
||||
components: rustfmt, clippy
|
||||
|
||||
- name: Set up cargo cache
|
||||
uses: actions/cache@v3
|
||||
continue-on-error: false
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/bin/
|
||||
~/.cargo/registry/index/
|
||||
~/.cargo/registry/cache/
|
||||
~/.cargo/git/db/
|
||||
target/
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
restore-keys: ${{ runner.os }}-cargo-
|
||||
- name: make
|
||||
run: make
|
||||
- name: selftest
|
||||
run: |
|
||||
make selftest
|
||||
./zerotier-selftest
|
||||
|
||||
build_macos:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: gitconfig
|
||||
run: |
|
||||
git config --global core.autocrlf input
|
||||
# git config --global core.eol lf
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Install Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
target: aarch64-apple-darwin
|
||||
override: true
|
||||
components: rustfmt, clippy
|
||||
- name: Set up cargo cache
|
||||
uses: actions/cache@v3
|
||||
continue-on-error: false
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/bin/
|
||||
~/.cargo/registry/index/
|
||||
~/.cargo/registry/cache/
|
||||
~/.cargo/git/db/
|
||||
target/
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
restore-keys: ${{ runner.os }}-cargo-
|
||||
- name: make
|
||||
run: make
|
||||
- name: selftest
|
||||
run: |
|
||||
make selftest
|
||||
./zerotier-selftest
|
||||
|
||||
build_windows:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: gitconfig
|
||||
run: |
|
||||
git config --global core.autocrlf true
|
||||
# git config --global core.eol lf
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Install Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
target: aarch64-apple-darwin
|
||||
override: true
|
||||
components: rustfmt, clippy
|
||||
- name: Set up cargo cache
|
||||
uses: actions/cache@v3
|
||||
continue-on-error: false
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/bin/
|
||||
~/.cargo/registry/index/
|
||||
~/.cargo/registry/cache/
|
||||
~/.cargo/git/db/
|
||||
target/
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
restore-keys: ${{ runner.os }}-cargo-
|
||||
- name: setup msbuild
|
||||
uses: microsoft/setup-msbuild@v1.1.3
|
||||
- name: msbuild
|
||||
run: |
|
||||
msbuild windows\ZeroTierOne.sln /m /p:Configuration=Release /property:Platform=x64 /t:ZeroTierOne:Rebuild
|
24
.gitignore
vendored
@ -6,6 +6,11 @@
|
||||
/zerotier
|
||||
/nltest
|
||||
|
||||
# IDE stuff
|
||||
/.idea
|
||||
/.nova
|
||||
/compile_commands.json
|
||||
|
||||
# OS-created garbage files from various platforms
|
||||
.DS_Store
|
||||
.Apple*
|
||||
@ -30,7 +35,6 @@ Thumbs.db
|
||||
/windows/WebUIWrapper/obj
|
||||
/windows/lib
|
||||
/ext/installfiles/windows/ZeroTier One-SetupFiles
|
||||
/ext/installfiles/windows/Prerequisites
|
||||
/ext/installfiles/windows/*-cache
|
||||
/ZeroTier One.msi
|
||||
*.vcxproj.backup
|
||||
@ -58,7 +62,6 @@ zt1-src.tar.gz
|
||||
*.opensdf
|
||||
*.user
|
||||
*.cache
|
||||
*.obj
|
||||
*.tlog
|
||||
*.pid
|
||||
*.pkg
|
||||
@ -103,7 +106,6 @@ windows/ZeroTierOne/Debug/
|
||||
*.swp
|
||||
*~.nib
|
||||
DerivedData/
|
||||
build/
|
||||
*.pbxuser
|
||||
*.mode1v3
|
||||
*.mode2v3
|
||||
@ -114,7 +116,6 @@ build/
|
||||
!default.perspectivev3
|
||||
*.xccheckout
|
||||
xcuserdata/
|
||||
ext/librethinkdbxx/build
|
||||
.vscode
|
||||
__pycache__
|
||||
*~
|
||||
@ -122,3 +123,18 @@ attic/world/*.c25519
|
||||
attic/world/mkworld
|
||||
workspace/
|
||||
workspace2/
|
||||
zeroidc/target/
|
||||
|
||||
#snapcraft specifics
|
||||
/parts/
|
||||
/stage/
|
||||
/prime/
|
||||
|
||||
*.snap
|
||||
|
||||
.snapcraft
|
||||
__pycache__
|
||||
*.pyc
|
||||
*_source.tar.bz2
|
||||
snap/.snapcraft
|
||||
tcp-proxy/tcp-proxy
|
||||
|
28
Dockerfile.ci
Normal file
@ -0,0 +1,28 @@
|
||||
# vim: ft=dockerfile
|
||||
|
||||
FROM ubuntu:21.04 as stage
|
||||
|
||||
RUN apt-get update -qq && apt-get -qq install make clang
|
||||
COPY . .
|
||||
RUN /usr/bin/make
|
||||
RUN echo $PWD
|
||||
RUN cp zerotier-one /usr/sbin
|
||||
|
||||
FROM ubuntu:21.04
|
||||
|
||||
COPY --from=stage /zerotier-one /usr/sbin
|
||||
RUN ln -sf /usr/sbin/zerotier-one /usr/sbin/zerotier-idtool
|
||||
RUN ln -sf /usr/sbin/zerotier-one /usr/sbin/zerotier-cli
|
||||
|
||||
RUN echo "${VERSION}" > /etc/zerotier-version
|
||||
RUN rm -rf /var/lib/zerotier-one
|
||||
|
||||
|
||||
RUN apt-get -qq update
|
||||
RUN apt-get -qq install iproute2 net-tools fping 2ping iputils-ping iputils-arping
|
||||
|
||||
COPY entrypoint.sh.release /entrypoint.sh
|
||||
RUN chmod 755 /entrypoint.sh
|
||||
|
||||
CMD []
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
@ -1,22 +1,23 @@
|
||||
# vim: ft=dockerfile
|
||||
|
||||
FROM debian:buster as stage
|
||||
FROM debian:bullseye
|
||||
|
||||
ARG PACKAGE_BASEURL=https://download.zerotier.com/debian/buster/pool/main/z/zerotier-one/
|
||||
ARG ARCH=amd64
|
||||
ARG VERSION
|
||||
|
||||
RUN apt-get update -qq && apt-get install curl -y
|
||||
RUN curl -sSL -o zerotier-one.deb "${PACKAGE_BASEURL}/zerotier-one_${VERSION}_${ARCH}.deb"
|
||||
RUN apt-get update -qq && apt-get install curl gpg -y
|
||||
RUN mkdir -p /usr/share/zerotier && \
|
||||
curl -o /usr/share/zerotier/tmp.asc "https://download.zerotier.com/contact%40zerotier.com.gpg" && \
|
||||
gpg --no-default-keyring --keyring /usr/share/zerotier/zerotier.gpg --import /usr/share/zerotier/tmp.asc && \
|
||||
rm -f /usr/share/zerotier/tmp.asc && \
|
||||
echo "deb [signed-by=/usr/share/zerotier/zerotier.gpg] http://download.zerotier.com/debian/bullseye bullseye main" > /etc/apt/sources.list.d/zerotier.list
|
||||
|
||||
FROM debian:buster
|
||||
|
||||
COPY --from=stage zerotier-one.deb .
|
||||
|
||||
RUN dpkg -i zerotier-one.deb && rm -f zerotier-one.deb
|
||||
RUN echo "${VERSION}" >/etc/zerotier-version
|
||||
RUN apt-get update -qq && apt-get install zerotier-one=${VERSION} curl iproute2 net-tools iputils-ping openssl libssl1.1 -y
|
||||
RUN rm -rf /var/lib/zerotier-one
|
||||
|
||||
COPY entrypoint.sh.release /entrypoint.sh
|
||||
RUN chmod 755 /entrypoint.sh
|
||||
|
||||
CMD /entrypoint.sh
|
||||
HEALTHCHECK --interval=1s CMD bash /healthcheck.sh
|
||||
|
||||
CMD []
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
|
365
Jenkinsfile
vendored
@ -1,365 +0,0 @@
|
||||
pipeline {
|
||||
options {
|
||||
disableConcurrentBuilds()
|
||||
preserveStashes(buildCount: 10)
|
||||
timestamps()
|
||||
}
|
||||
parameters {
|
||||
booleanParam(name: "BUILD_ALL", defaultValue: false, description: "Build all supported platform/architecture combos. Defaults to x86/x64 only")
|
||||
}
|
||||
|
||||
agent none
|
||||
|
||||
stages {
|
||||
stage ("Build") {
|
||||
steps {
|
||||
script {
|
||||
def tasks = [:]
|
||||
tasks << buildStaticBinaries()
|
||||
tasks << buildDebianNative()
|
||||
tasks << buildCentosNative()
|
||||
|
||||
parallel tasks
|
||||
}
|
||||
}
|
||||
}
|
||||
stage ("Package Static") {
|
||||
steps {
|
||||
script {
|
||||
parallel packageStatic()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def buildStaticBinaries() {
|
||||
def tasks = [:]
|
||||
def dist = ["alpine"]
|
||||
def archs = []
|
||||
if (params.BUILD_ALL == true) {
|
||||
archs = ["arm64", "amd64", "i386", "armhf", "armel", "ppc64le", "s390x"]
|
||||
} else {
|
||||
archs = ["amd64", "i386"]
|
||||
}
|
||||
|
||||
tasks << getTasks(dist, archs, { distro, platform ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
sh "echo ${distro}-${platform}"
|
||||
def runtime = docker.image("ztbuild/${distro}-${platform}:latest")
|
||||
runtime.inside {
|
||||
dir("build") {
|
||||
sh 'make -j8 ZT_STATIC=1 all'
|
||||
sh "file ./zerotier-one"
|
||||
sh "mv zerotier-one zerotier-one-static-${platform}"
|
||||
stash includes: 'zerotier-one-static-*', name: "static-${platform}"
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
}
|
||||
}
|
||||
return myNode
|
||||
})
|
||||
|
||||
return tasks
|
||||
}
|
||||
|
||||
def getTasks(axisDistro, axisPlatform, task) {
|
||||
def tasks = [:]
|
||||
for(int i=0; i< axisDistro.size(); i++) {
|
||||
def axisDistroValue = axisDistro[i]
|
||||
for(int j=0; j< axisPlatform.size(); j++) {
|
||||
def axisPlatformValue = axisPlatform[j]
|
||||
tasks["${axisDistroValue}/${axisPlatformValue}"] = task(axisDistroValue, axisPlatformValue)
|
||||
}
|
||||
}
|
||||
return tasks
|
||||
}
|
||||
|
||||
def packageStatic() {
|
||||
def tasks = [:]
|
||||
|
||||
def centos6 = ["centos6"]
|
||||
def centos6Arch = ["i386", "amd64"]
|
||||
tasks << getTasks(centos6, centos6Arch, { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
runtime.inside {
|
||||
dir("build") {
|
||||
unstash "static-${arch}"
|
||||
sh "mv zerotier-one-static-${arch} zerotier-one && chmod +x zerotier-one"
|
||||
sh "make redhat"
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "cp -av `find ~/rpmbuild/ -type f -name \"*.rpm\"` ${distro}/"
|
||||
archiveArtifacts artifacts: "${distro}/*.rpm", onlyIfSuccessful: true
|
||||
}
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
}
|
||||
return myNode
|
||||
})
|
||||
|
||||
def centos7 = ["centos7"]
|
||||
def centos7Arch = ["i386"]
|
||||
tasks << getTasks(centos7, centos7Arch, { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
runtime.inside {
|
||||
dir("build") {
|
||||
unstash "static-${arch}"
|
||||
sh "mv zerotier-one-static-${arch} zerotier-one && chmod +x zerotier-one"
|
||||
sh "make redhat"
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "cp -av `find ~/rpmbuild/ -type f -name \"*.rpm\"` ${distro}/"
|
||||
archiveArtifacts artifacts: "${distro}/*.rpm", onlyIfSuccessful: true
|
||||
}
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
}
|
||||
return myNode
|
||||
})
|
||||
|
||||
if (params.BUILD_ALL == true) {
|
||||
def clefos7 = ["clefos"]
|
||||
def clefos7Arch = ["s390x"]
|
||||
tasks << getTasks(clefos7, clefos7Arch, { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
runtime.inside {
|
||||
dir("build/") {
|
||||
unstash "static-${arch}"
|
||||
sh "mv zerotier-one-static-${arch} zerotier-one && chmod +x zerotier-one"
|
||||
sh "make redhat"
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "cp -av `find ~/rpmbuild/ -type f -name \"*.rpm\"` ${distro}/"
|
||||
archiveArtifacts artifacts: "${distro}/*.rpm", onlyIfSuccessful: true
|
||||
}
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
}
|
||||
return myNode
|
||||
})
|
||||
}
|
||||
|
||||
def debianJessie = ["debian-jessie"]
|
||||
def debianJessieArchs = []
|
||||
if (params.BUILD_ALL == true) {
|
||||
debianJessieArch = ["armhf", "armel", "amd64", "i386"]
|
||||
} else {
|
||||
debianJessieArch = ["amd64", "i386"]
|
||||
}
|
||||
tasks << getTasks(debianJessie, debianJessieArch, { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
runtime.inside {
|
||||
sh "ls -la ."
|
||||
dir('build/') {
|
||||
sh "ls -la ."
|
||||
unstash "static-${arch}"
|
||||
sh "pwd"
|
||||
sh "mv zerotier-one-static-${arch} zerotier-one && chmod +x zerotier-one && file ./zerotier-one"
|
||||
sh "mv -f debian/rules.static debian/rules"
|
||||
sh "make debian"
|
||||
}
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "mv *.deb ${distro}"
|
||||
archiveArtifacts artifacts: "${distro}/*.deb", onlyIfSuccessful: true
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
}
|
||||
return myNode
|
||||
})
|
||||
|
||||
def ubuntuTrusty = ["ubuntu-trusty"]
|
||||
def ubuntuTrustyArch = []
|
||||
if (params.BUILD_ALL == true) {
|
||||
ubuntuTrustyArch = ["i386", "amd64", "armhf", "arm64", "ppc64le"]
|
||||
} else {
|
||||
ubuntuTrustyArch = ["i386", "amd64"]
|
||||
}
|
||||
tasks << getTasks(ubuntuTrusty, ubuntuTrustyArch, { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
runtime.inside {
|
||||
sh "ls -la ."
|
||||
dir('build/') {
|
||||
sh "ls -la ."
|
||||
unstash "static-${arch}"
|
||||
sh "pwd"
|
||||
sh "mv zerotier-one-static-${arch} zerotier-one && chmod +x zerotier-one && file ./zerotier-one"
|
||||
sh "mv -f debian/rules.static debian/rules"
|
||||
sh "make debian"
|
||||
}
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "mv *.deb ${distro}"
|
||||
archiveArtifacts artifacts: "${distro}/*.deb", onlyIfSuccessful: true
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
}
|
||||
return myNode
|
||||
})
|
||||
|
||||
def debianWheezy = ["debian-wheezy"]
|
||||
def debianWheezyArchs = []
|
||||
if (params.BUILD_ALL == true) {
|
||||
debianWheezyArchs = ["armhf", "armel", "amd64", "i386"]
|
||||
} else {
|
||||
debianWheezyArchs = ["amd64", "i386"]
|
||||
}
|
||||
tasks << getTasks(debianJessie, debianJessieArch, { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
runtime.inside {
|
||||
dir('build/') {
|
||||
unstash "static-${arch}"
|
||||
sh "mv zerotier-one-static-${arch} zerotier-one && chmod +x zerotier-one && file ./zerotier-one"
|
||||
sh "mv -f debian/rules.wheezy.static debian/rules"
|
||||
sh "mv -f debian/control.wheezy debian/control"
|
||||
sh "make debian"
|
||||
}
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "mv *.deb ${distro}"
|
||||
archiveArtifacts artifacts: "${distro}/*.deb", onlyIfSuccessful: true
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
}
|
||||
return myNode
|
||||
})
|
||||
|
||||
return tasks
|
||||
}
|
||||
|
||||
def buildDebianNative() {
|
||||
def tasks = [:]
|
||||
def buster = ["debian-buster", "debian-stretch", "debian-bullseye", "debian-sid"]
|
||||
def busterArchs = []
|
||||
if (params.BUILD_ALL) {
|
||||
busterArchs = ["s390x", "ppc64le", "i386", "armhf", "armel", "arm64", "amd64"]
|
||||
} else {
|
||||
busterArchs = ["amd64", "i386"]
|
||||
}
|
||||
|
||||
def build = { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
runtime.inside {
|
||||
dir("build") {
|
||||
sh 'make debian'
|
||||
}
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "mv *.deb ${distro}"
|
||||
archiveArtifacts artifacts: "${distro}/*.deb", onlyIfSuccessful: true
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
}
|
||||
}
|
||||
return myNode
|
||||
}
|
||||
|
||||
tasks << getTasks(buster, busterArchs, build)
|
||||
|
||||
// bash is broken when running under QEMU-s390x on Xenial
|
||||
def xenial = ["ubuntu-xenial"]
|
||||
def xenialArchs = []
|
||||
if (params.BUILD_ALL == true) {
|
||||
xenialArchs = ["i386", "amd64", "armhf", "arm64", "ppc64le"]
|
||||
} else {
|
||||
xenialArchs = ["i386", "amd64"]
|
||||
}
|
||||
tasks << getTasks(xenial, xenialArchs, build)
|
||||
|
||||
def ubuntu = ["ubuntu-bionic", "ubuntu-eoan"]
|
||||
def ubuntuArchs = []
|
||||
if (params.BUILD_ALL == true) {
|
||||
ubuntuArchs = ["i386", "amd64", "armhf", "arm64", "ppc64le", "s390x"]
|
||||
} else {
|
||||
ubuntuArchs = ["i386", "amd64"]
|
||||
}
|
||||
tasks << getTasks(ubuntu, ubuntuArchs, build)
|
||||
|
||||
def kali = ["kali-rolling"]
|
||||
def kaliArchs = ["amd64"]
|
||||
tasks << getTasks(kali, kaliArchs, build)
|
||||
|
||||
return tasks
|
||||
}
|
||||
|
||||
def buildCentosNative() {
|
||||
def tasks = [:]
|
||||
|
||||
def build = { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
runtime.inside {
|
||||
dir("build") {
|
||||
sh 'make -j4'
|
||||
sh 'make redhat'
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "cp -av `find ~/rpmbuild/ -type f -name \"*.rpm\"` ${distro}/"
|
||||
archiveArtifacts artifacts: "${distro}/*.rpm", onlyIfSuccessful: true
|
||||
}
|
||||
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
}
|
||||
}
|
||||
return myNode
|
||||
}
|
||||
|
||||
def centos8 = ["centos8"]
|
||||
def centos8Archs = []
|
||||
if (params.BUILD_ALL == true) {
|
||||
centos8Archs = ["amd64", "arm64", "ppc64le"]
|
||||
} else {
|
||||
centos8Archs = ["amd64"]
|
||||
}
|
||||
tasks << getTasks(centos8, centos8Archs, build)
|
||||
|
||||
def centos7 = ["centos7"]
|
||||
def centos7Archs = ["amd64"]
|
||||
tasks << getTasks(centos7, centos7Archs, build)
|
||||
|
||||
return tasks
|
||||
}
|
8
Makefile
@ -17,8 +17,8 @@ ifeq ($(OSTYPE),FreeBSD)
|
||||
include make-bsd.mk
|
||||
endif
|
||||
ifeq ($(OSTYPE),OpenBSD)
|
||||
CC=egcc
|
||||
CXX=eg++
|
||||
CC=clang
|
||||
CXX=clang++
|
||||
ZT_BUILD_PLATFORM=9
|
||||
include make-bsd.mk
|
||||
endif
|
||||
@ -26,3 +26,7 @@ endif
|
||||
ifeq ($(OSTYPE),NetBSD)
|
||||
include make-netbsd.mk
|
||||
endif
|
||||
|
||||
drone:
|
||||
@echo "rendering .drone.yaml from .drone.jsonnet"
|
||||
drone jsonnet --format --stream
|
||||
|
@ -14,7 +14,6 @@ The version must be incremented in all of the following files:
|
||||
/debian/changelog
|
||||
/ext/installfiles/mac/ZeroTier One.pkgproj
|
||||
/ext/installfiles/windows/ZeroTier One.aip
|
||||
/windows/WinUI/AboutView.xaml
|
||||
|
||||
The final .AIP file can only be edited on Windows with [Advanced Installer Enterprise](http://www.advancedinstaller.com/). In addition to incrementing the version be sure that a new product code is generated. (The "upgrade code" GUID on the other hand must never change.)
|
||||
|
||||
|
72
README.docker.md
Normal file
@ -0,0 +1,72 @@
|
||||
# ZeroTier One in a container!
|
||||
|
||||
**NOTE:** _Most of this information pertains to the docker image only. For more information about ZeroTier, check out the repository_: [here](https://github.com/zerotier/ZeroTierOne) or the [commercial website](https://www.zerotier.com).
|
||||
|
||||
[ZeroTier](https://www.zerotier.com) is a smart programmable Ethernet switch for planet Earth. It allows all networked devices, VMs, containers, and applications to communicate as if they all reside in the same physical data center or cloud region.
|
||||
|
||||
This is accomplished by combining a cryptographically addressed and secure peer to peer network (termed VL1) with an Ethernet emulation layer somewhat similar to VXLAN (termed VL2). Our VL2 Ethernet virtualization layer includes advanced enterprise SDN features like fine grained access control rules for network micro-segmentation and security monitoring.
|
||||
|
||||
All ZeroTier traffic is encrypted end-to-end using secret keys that only you control. Most traffic flows peer to peer, though we offer free (but slow) relaying for users who cannot establish peer to peer connections.
|
||||
|
||||
The goals and design principles of ZeroTier are inspired by among other things the original [Google BeyondCorp](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43231.pdf) paper and the [Jericho Forum](https://en.wikipedia.org/wiki/Jericho_Forum) with its notion of "deperimeterization."
|
||||
|
||||
Visit [ZeroTier's site](https://www.zerotier.com/) for more information and [pre-built binary packages](https://www.zerotier.com/download/). Apps for Android and iOS are available for free in the Google Play and Apple app stores.
|
||||
|
||||
ZeroTier is licensed under the [BSL version 1.1](https://mariadb.com/bsl11/). See [LICENSE.txt](https://github.com/zerotier/ZeroTierOne/blob/master/LICENSE.txt) and the [ZeroTier pricing page](https://www.zerotier.com/pricing) for details. ZeroTier is free to use internally in businesses and academic institutions and for non-commercial purposes. Certain types of commercial use such as building closed-source apps and devices based on ZeroTier or offering ZeroTier network controllers and network management as a SaaS service require a commercial license.
|
||||
|
||||
A small amount of third party code is also included in ZeroTier and is not subject to our BSL license. See [AUTHORS.md](https://github.com/zerotier/ZeroTierOne/blob/master/AUTHORS.md) for a list of third party code, where it is included, and the licenses that apply to it. All of the third party code in ZeroTier is liberally licensed (MIT, BSD, Apache, public domain, etc.).
|
||||
|
||||
## Building the docker image
|
||||
|
||||
Due to the network being a substrate for most applications and not an application unto itself, it makes sense that many people would want to build their own image based on our formula.
|
||||
|
||||
The image is based on `debian:buster`.
|
||||
|
||||
The `Dockerfile.release` file contains build instructions for building the described image in the rest of the README. The build is multi-arch and multi-release capable.
|
||||
|
||||
These build arguments power the build:
|
||||
|
||||
- `PACKAGE_BASEURL`: The base URL of the package repository to fetch from. (default: `https://download.zerotier.com/debian/buster/pool/main/z/zerotier-one/`)
|
||||
- `ARCH`: The architecture of the package, in debian format. Must match your image arch. (default: `amd64`)
|
||||
- `VERSION`: **REQUIRED** the version of ZeroTier to fetch.
|
||||
|
||||
You can build this image like so:
|
||||
|
||||
```
|
||||
docker build -f Dockerfile.release -t mybuild --build-arg VERSION=1.6.5 .
|
||||
```
|
||||
|
||||
## Using the docker image
|
||||
|
||||
The `entrypoint.sh` in the docker image is a little different; zerotier will be spawned in the background and the "main process" is actually just a sleeping shell script. This allows `zerotier-one` to gracefully terminate in some situations largely unique to docker.
|
||||
|
||||
The `zerotier/zerotier` image requires the `CAP_NET_ADMIN` capability and the `/dev/net/tun` device must be forwarded to it.
|
||||
|
||||
To join a network, simply supply it on the command-line; you can supply multiple networks.
|
||||
|
||||
```
|
||||
docker run --name myzerotier --rm --cap-add NET_ADMIN --device /dev/net/tun zerotier/zerotier:latest abcdefdeadbeef00
|
||||
```
|
||||
|
||||
Once joining all the networks you have provided, it will sleep until terminated. Note that in ZeroTier, joining a network does not necessarily mean you have an IP or can do anything, really. You will want to probe the control socket:
|
||||
|
||||
```
|
||||
docker exec myzerotier zerotier-cli listnetworks
|
||||
```
|
||||
|
||||
To ensure you have a network available before trying to listen on it. Without pre-configuring the identity, this usually means going to the central admin panel and clicking the checkmark against your zerotier identity.
|
||||
|
||||
### Environment Variables
|
||||
|
||||
You can control a few settings including the identity used and the authtoken used to interact with the control socket (which you can forward and access through `localhost:9993`).
|
||||
|
||||
- `ZEROTIER_JOIN_NETWORKS`: additional way to set networks to join.
|
||||
- `ZEROTIER_API_SECRET`: replaces the `authtoken.secret` before booting and allows you to manage the control socket's authentication key.
|
||||
- `ZEROTIER_IDENTITY_PUBLIC`: the `identity.public` file for zerotier-one. Use `zerotier-idtool` to generate one of these for you.
|
||||
- `ZEROTIER_IDENTITY_SECRET`: the `identity.secret` file for zerotier-one. Use `zerotier-idtool` to generate one of these for you.
|
||||
|
||||
### Tips
|
||||
|
||||
- Forwarding port `<dockerip>:9993` to somewhere outside is probably a good idea for highly trafficked services.
|
||||
- Forwarding `localhost:9993` to a control network where you can drive it remotely might be a good idea, just be sure to set your authtoken properly through environment variables.
|
||||
- Pre-generating your identities could be much simpler to do via our [terraform plugin](https://github.com/zerotier/terraform-provider-zerotier)
|
31
README.md
@ -1,6 +1,8 @@
|
||||
ZeroTier - Global Area Networking
|
||||
======
|
||||
|
||||
*This document is written for a software developer audience. For information on using ZeroTier, see the: [Website](https://www.zerotier.com), [Documentation Site](https://docs.zerotier.com), and [Discussion Forum](https://discuss.zerotier.com).*
|
||||
|
||||
ZeroTier is a smart programmable Ethernet switch for planet Earth. It allows all networked devices, VMs, containers, and applications to communicate as if they all reside in the same physical data center or cloud region.
|
||||
|
||||
This is accomplished by combining a cryptographically addressed and secure peer to peer network (termed VL1) with an Ethernet emulation layer somewhat similar to VXLAN (termed VL2). Our VL2 Ethernet virtualization layer includes advanced enterprise SDN features like fine grained access control rules for network micro-segmentation and security monitoring.
|
||||
@ -41,24 +43,29 @@ The base path contains the ZeroTier One service main entry point (`one.cpp`), se
|
||||
- `rule-compiler/`: JavaScript rules language compiler for defining network-level rules.
|
||||
- `service/`: the ZeroTier One service, which wraps the ZeroTier core and provides VPN-like connectivity to virtual networks for desktops, laptops, servers, VMs, and containers.
|
||||
- `windows/`: Visual Studio solution files, Windows service code, and the Windows task bar app UI.
|
||||
- `zeroidc/`: OIDC implementation used by ZeroTier service to log into SSO-enabled networks. (This part is written in Rust, and more Rust will be appearing in this repository in the future.)
|
||||
|
||||
### Build and Platform Notes
|
||||
|
||||
To build on Mac and Linux just type `make`. On FreeBSD and OpenBSD `gmake` (GNU make) is required and can be installed from packages or ports. For Windows there is a Visual Studio solution in `windows/`.
|
||||
|
||||
- **Mac**
|
||||
- Xcode command line tools for OSX 10.8 or newer are required.
|
||||
- Xcode command line tools for macOS 10.13 or newer are required.
|
||||
- Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*.
|
||||
- **Linux**
|
||||
- The minimum compiler versions required are GCC/G++ 4.9.3 or CLANG/CLANG++ 3.4.2. (Install `clang` on CentOS 7 as G++ is too old.)
|
||||
- Linux makefiles automatically detect and prefer clang/clang++ if present as it produces smaller and slightly faster binaries in most cases. You can override by supplying CC and CXX variables on the make command line.
|
||||
- Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*.
|
||||
- **Windows**
|
||||
- Windows 7 or newer is supported. This *may* work on Vista but isn't officially supported there. It will not work on Windows XP.
|
||||
- We build with Visual Studio 2017. Older versions may not work. Clang or MinGW will also probably work but may require some makefile hacking.
|
||||
- Visual Studio 2022 on Windows 10 or newer.
|
||||
- Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*.
|
||||
- **FreeBSD**
|
||||
- GNU make is required. Type `gmake` to build.
|
||||
- Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*.
|
||||
- **OpenBSD**
|
||||
- There is a limit of four network memberships on OpenBSD as there are only four tap devices (`/dev/tap0` through `/dev/tap3`).
|
||||
- GNU make is required. Type `gmake` to build.
|
||||
- Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*.
|
||||
|
||||
Typing `make selftest` will build a *zerotier-selftest* binary which unit tests various internals and reports on a few aspects of the build environment. It's a good idea to try this on novel platforms or architectures.
|
||||
|
||||
@ -66,10 +73,12 @@ Typing `make selftest` will build a *zerotier-selftest* binary which unit tests
|
||||
|
||||
Running *zerotier-one* with `-h` option will show help.
|
||||
|
||||
On Linux and BSD you can start the service with:
|
||||
On Linux and BSD, if you built from source, you can start the service with:
|
||||
|
||||
sudo ./zerotier-one -d
|
||||
|
||||
On most distributions, macOS, and Windows, the installer will start the service and set it up to start on boot.
|
||||
|
||||
A home folder for your system will automatically be created.
|
||||
|
||||
The service is controlled via the JSON API, which by default is available at 127.0.0.1 port 9993. We include a *zerotier-cli* command line utility to make API calls for standard things like joining and leaving networks. The *authtoken.secret* file in the home folder contains the secret token for accessing this API. See [service/README.md](service/README.md) for API documentation.
|
||||
@ -79,23 +88,17 @@ Here's where home folders live (by default) on each OS:
|
||||
* **Linux**: `/var/lib/zerotier-one`
|
||||
* **FreeBSD** / **OpenBSD**: `/var/db/zerotier-one`
|
||||
* **Mac**: `/Library/Application Support/ZeroTier/One`
|
||||
* **Windows**: `\ProgramData\ZeroTier\One` (That's for Windows 7. The base 'shared app data' folder might be different on different Windows versions.)
|
||||
|
||||
Running ZeroTier One on a Mac is the same, but OSX requires a kernel extension. We ship a signed binary build of the ZeroTier tap device driver, which can be installed on Mac with:
|
||||
|
||||
sudo make install-mac-tap
|
||||
|
||||
This will create the home folder for Mac, place *tap.kext* there, and set its modes correctly to enable ZeroTier One to manage it with *kextload* and *kextunload*.
|
||||
* **Windows**: `\ProgramData\ZeroTier\One` (That's the default. The base 'shared app data' folder might be different if Windows is installed with a non-standard drive letter assignment or layout.)
|
||||
|
||||
### Basic Troubleshooting
|
||||
|
||||
For most users, it just works.
|
||||
|
||||
If you are running a local system firewall, we recommend adding a rule permitting UDP port 9993 inbound and outbound. If you installed binaries for Windows this should be done automatically. Other platforms might require manual editing of local firewall rules depending on your configuration.
|
||||
If you are running a local system firewall, we recommend adding a rules permitting zerotier. If you installed binaries for Windows this should be done automatically. Other platforms might require manual editing of local firewall rules depending on your configuration.
|
||||
|
||||
The Mac firewall can be found under "Security" in System Preferences. Linux has a variety of firewall configuration systems and tools. If you're using Ubuntu's *ufw*, you can do this:
|
||||
See the [documentation site](https://docs.zerotier.com/zerotier/troubleshooting) for more information.
|
||||
|
||||
sudo ufw allow 9993/udp
|
||||
The Mac firewall can be found under "Security" in System Preferences. Linux has a variety of firewall configuration systems and tools.
|
||||
|
||||
On CentOS check `/etc/sysconfig/iptables` for IPTables rules. For other distributions consult your distribution's documentation. You'll also have to check the UIs or documentation for commercial third party firewall applications like Little Snitch (Mac), McAfee Firewall Enterprise (Windows), etc. if you are running any of those. Some corporate environments might have centrally managed firewall software, so you might also have to contact IT.
|
||||
|
||||
|
138
RELEASE-NOTES.md
@ -1,6 +1,144 @@
|
||||
ZeroTier Release Notes
|
||||
======
|
||||
|
||||
# 2023-03-10 -- Version 1.10.5
|
||||
|
||||
* Fix for high CPU usage bug on Windows
|
||||
|
||||
# 2023-03-07 -- Version 1.10.4
|
||||
|
||||
* SECURITY FIX (Windows): this version fixes a file permission problem on
|
||||
Windows that could allow non-privileged users on a Windows system to read
|
||||
privileged files in the ZeroTier service's working directory. This could
|
||||
allow an unprivileged local Windows user to administrate the local ZeroTier
|
||||
instance without appropriate local permissions. This issue is not remotely
|
||||
exploitable unless a remote user can read arbitrary local files, and does
|
||||
not impact other operating systems.
|
||||
|
||||
* Fix a bug in the handling of multiple IP address assignments to virtual
|
||||
interfaces on macOS.
|
||||
|
||||
# 2023-02-15 -- Version 1.10.3
|
||||
|
||||
* Fix for duplicate paths in client. Could cause connectivity issues. Affects all platforms.
|
||||
* Fix for Ethernet Tap MTU setting, would not properly apply on Linux.
|
||||
* Fix default route bugs (macOS.)
|
||||
* Enable Ping automatically for ZeroTier Adapters (Windows.)
|
||||
* SSO updates and minor bugfixes.
|
||||
* Add low-bandwidth mode.
|
||||
* Add forceTcpRelay mode (optionally enabled.)
|
||||
* Fix bug that prevented setting of custom TCP relay address.
|
||||
* Build script improvements and bug fixes.
|
||||
|
||||
# 2022-11-01 -- Version 1.10.2
|
||||
|
||||
* Fix another SSO "stuck client" issue in zeroidc.
|
||||
* Expose root-reported external IP/port information via the local JSON API for better diagnostics.
|
||||
* Multipath: CLI output improvement for inspecting bonds
|
||||
* Multipath: balance-aware mode
|
||||
* Multipath: Custom policies
|
||||
* Multipath: Link quality measurement improvements
|
||||
|
||||
Note that releases are coming few and far between because most of our dev effort is going into version 2.
|
||||
|
||||
# 2022-06-27 -- Version 1.10.1
|
||||
|
||||
* Fix an issue that could cause SSO clients to get "stuck" on stale auth URLs.
|
||||
* A few other SSO related bug fixes.
|
||||
|
||||
# 2022-06-07 -- Version 1.10.0
|
||||
|
||||
* Fix formatting problem in `zerotier-cli` when using SSO networks.
|
||||
* Fix a few other minor bugs in SSO signin to prepare for general availability.
|
||||
* Remove requirement for webview in desktop UI and instead just make everything available via the tray pulldown/menu. Use [libui-ng](https://github.com/libui-ng/libui-ng) for minor prompt dialogs. Saves space and eliminates installation headaches on Windows.
|
||||
* Fix SSO "spam" bug in desktop UI.
|
||||
* Use system default browser for SSO login so all your plugins, MFA devices, password managers, etc. will work as you have them configured.
|
||||
* Minor fix for bonding/multipath.
|
||||
|
||||
# 2022-05-10 -- Version 1.8.10
|
||||
|
||||
* Fixed a bug preventing SSO sign-on on Windows.
|
||||
|
||||
# 2022-04-25 -- Version 1.8.9
|
||||
|
||||
* Fixed a long-standing and strange bug that was causing sporadic "phantom" packet authentication failures. Not a security problem but could be behind sporadic reports of link failures under some conditions.
|
||||
* Fized a memory leak in SSO/OIDC support.
|
||||
* Fixed SSO/OIDC display error on CLI.
|
||||
* Fixed a bug causing nodes to sometimes fail to push certs to each other (primarily affects SSO/OIDC use cases).
|
||||
* Fixed a deadlock bug on leaving SSO/OIDC managed networks.
|
||||
* Added some new Linux distributions to the build subsystem.
|
||||
|
||||
# 2022-04-11 -- Version 1.8.8
|
||||
|
||||
* Fix a local privilege escalation bug in the Windows installer.
|
||||
* Dependency fix for some Ubuntu versions.
|
||||
* No changes for other platforms. Windows upgrade recommended, everyone else optional.
|
||||
|
||||
# 2022-03-30 -- Version 1.8.7
|
||||
|
||||
* Fix for dependency installations in Windows MSI package.
|
||||
* Fix for desktop UI setup when run by a non-super-user.
|
||||
* Bug fix in local OIDC / SSO support for auth0 and other providers.
|
||||
* Other minor fixes for e.g. old Linux distributions.
|
||||
|
||||
# 2022-03-04 -- Version 1.8.6
|
||||
|
||||
* Fixed an issue that could cause the UI to be non-responsive if not joined to any networks.
|
||||
* Fix dependency issues in Debian and RedHat packages for some distributions (Fedora, Mint).
|
||||
* Bumped the peer cache serialization version to prevent "coma" issues on upgrade due to changes in path logic behaving badly with old values.
|
||||
|
||||
# 2022-02-22 -- Version 1.8.5
|
||||
|
||||
* Plumbing under the hood for endpoint device SSO support.
|
||||
* Fix in LinuxEthernetTap to tap device support on very old (2.6) Linux kernels.
|
||||
* Fix an issue that could cause self-hosted roots ("moons") to fail to assist peers in making direct links. (GitHub issue #1512)
|
||||
* Merge a series of changes by Joseph Henry (of ZeroTier) that should fix some edge cases where ZeroTier would "forget" valid paths.
|
||||
* Minor multipath improvements for automatic path negotiation.
|
||||
|
||||
# 2021-11-30 -- Version 1.8.4
|
||||
|
||||
* Fixed an ugly font problem on some older macOS versions.
|
||||
* Fixed a bug that could cause the desktop tray app control panel to stop opening after a while on Windows.
|
||||
* Fixed a possible double "release" in macOS tray app code that crashed on older macOS versions.
|
||||
* Fixed installation on 32-bit Windows 10.
|
||||
* Fixed a build flags issue that could cause ZeroTier to crash on older ARM32 CPUs.
|
||||
|
||||
# 2021-11-15 -- Version 1.8.3
|
||||
|
||||
* Remove problematic spinlock, which was only used on x86_64 anyway. Just use pthread always.
|
||||
* Fix fd leak on MacOS that caused non-responsiveness after some time.
|
||||
* Fix Debian install scripts to set /usr/sbin/nologin as shell on service user.
|
||||
* Fix regression that could prevent managed routes from being deleted.
|
||||
* DesktopUI: Remove NSDate:now() call, now works on MacOS 10.13 or newer!
|
||||
|
||||
# 2021-11-08 -- Version 1.8.2
|
||||
|
||||
* Fix multicast on linux.
|
||||
* Fix a bug that could cause the tap adapter to have the wrong MAC on Linux.
|
||||
* Update build flags to possibly support MacOS older than 10.14, but more work needs to be done. It may not work yet.
|
||||
* Fix path variable setting on Windows.
|
||||
|
||||
# 2021-10-28 -- Version 1.8.1
|
||||
|
||||
* Fix numerous UI issues from 1.8.0 (never fully released).
|
||||
* Remove support for REALLY ancient 1.1.6 or earlier network controllers.
|
||||
* MacOS IPv6 no longer binds to temporary addresses as these can cause interruptions if they expire.
|
||||
* Added additional hardening against address impersonation on networks (also in 1.6.6).
|
||||
* Fix an issue that could cause clobbering of MacOS IP route settings on restart.
|
||||
|
||||
* NOTE: Windows 7 is no longer supported! Windows 7 users will have to use version 1.6.5 or earlier.
|
||||
|
||||
# 2021-09-15 -- Version 1.8.0 (preview release only)
|
||||
|
||||
* A *completely* rewritten desktop UI for Mac and Windows!
|
||||
* Implement a workaround for one potential source of a "coma" bug, which can occur if buggy NATs/routers stop allowing the service to communicate on a given port. ZeroTier now reassigns a new secondary port if it's offline for a while unless a secondary port is manually specified in local.conf. Working around crummy buggy routers is an ongoing effort.
|
||||
* Fix for MacOS MTU capping issue on feth devices
|
||||
* Fix for mistakenly using v6 source addresses for v4 routes on some platforms
|
||||
* Stop binding to temporary IPv6 addresses
|
||||
* Set MAC address before bringing up Linux TAP link
|
||||
* Check if DNS servers need to be applied on macOS
|
||||
* Upgrade json.hpp dependency to version 3.10.2
|
||||
|
||||
# 2021-09-21 -- Version 1.6.6
|
||||
|
||||
* Backport COM hash check mitigation against network member impersonation.
|
||||
|
95
SECURITY.md
Normal file
@ -0,0 +1,95 @@
|
||||
# Security
|
||||
|
||||
ZeroTier takes the security of our software products and services seriously, which
|
||||
includes all source code repositories managed through our GitHub organization.
|
||||
|
||||
## Supported Versions
|
||||
|
||||
The following versions of ZeroTier One receive security updates
|
||||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| 1.10.x | :white_check_mark: |
|
||||
| 1.8.x | :white_check_mark: |
|
||||
| < 1.8.0 | :x: |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
**Please do not report security issues through public GitHub issues**
|
||||
|
||||
Instead, please report vulnerabilities via email to security@zerotier.com. If possible,
|
||||
please encrypt with our PGP key (see below).
|
||||
|
||||
Please include the following information, or as much as you can provide to help us
|
||||
understand the nature and scope of the issue:
|
||||
|
||||
|
||||
* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
|
||||
* Full paths of source file(s) related to the manifestation of the issue
|
||||
* The location of the affected source code (tag/branch/commit or direct URL)
|
||||
* Any special configuration required to reproduce the issue
|
||||
* Step-by-step instructions to reproduce the issue
|
||||
* Proof-of-concept or exploit code (if possible)
|
||||
* Impact of the issue, including how an attacker might exploit the issue
|
||||
|
||||
|
||||
## Preferred Languages
|
||||
|
||||
We prefer all communications to be in English.
|
||||
|
||||
## security@zerotier.com PGP key
|
||||
|
||||
```
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
L455
|
||||
=lheL
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
```
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 361 KiB After Width: | Height: | Size: 361 KiB |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |