mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2026-09-22 15:29:03 -07:00
Compare commits
1133
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f5dab30e8 | ||
|
|
6bf7bb67b3 | ||
|
|
f5ea9422a6 | ||
|
|
3dcbde5185 | ||
|
|
66479cd2da | ||
|
|
2e6fe413b6 | ||
|
|
ca3d17ddb0 | ||
|
|
2e7e4a58a8 | ||
|
|
b2bd72953a | ||
|
|
2f0cae4447 | ||
|
|
121ce0e8b9 | ||
|
|
53acb42f11 | ||
|
|
54b61f3927 | ||
|
|
4097f646a9 | ||
|
|
9a0f635045 | ||
|
|
50bfed682a | ||
|
|
cb65567de3 | ||
|
|
5951981622 | ||
|
|
1f6a1fd51f | ||
|
|
edcc066d25 | ||
|
|
0797626b3e | ||
|
|
4bcff9d3e3 | ||
|
|
64cc25baf6 | ||
|
|
8304ec79fe | ||
|
|
fcb016b9c1 | ||
|
|
75b51ec229 | ||
|
|
5640b82252 | ||
|
|
ab9efc722c | ||
|
|
4706ed9682 | ||
|
|
bf426497b0 | ||
|
|
afd8a828df | ||
|
|
7192b65a2c | ||
|
|
7be64c6bac | ||
|
|
4a517e2d27 | ||
|
|
6f57a77c43 | ||
|
|
8271fcadf2 | ||
|
|
111228128f | ||
|
|
fd98e0baa3 | ||
|
|
b6d5fb6fce | ||
|
|
c02c649cd3 | ||
|
|
ace5352388 | ||
|
|
deee555fbf | ||
|
|
404fa9b2f9 | ||
|
|
4988d53d0e | ||
|
|
14faaaa13e | ||
|
|
8ae153b44c | ||
|
|
f1c6a64035 | ||
|
|
0e637a1de6 | ||
|
|
e09e7b5c9b | ||
|
|
052ea55636 | ||
|
|
378dd27361 | ||
|
|
a4904c97b0 | ||
|
|
407bfdfd0b | ||
|
|
85eec45372 | ||
|
|
fede9b9afb | ||
|
|
a3a45a75a7 | ||
|
|
a001eba98f | ||
|
|
af7c882315 | ||
|
|
eec53a5866 | ||
|
|
174130c080 | ||
|
|
f76e6b916c | ||
|
|
3dffacc024 | ||
|
|
29f5464dbd | ||
|
|
346dc907a1 | ||
|
|
a3b1a346c4 | ||
|
|
9c2d5cd74c | ||
|
|
fc5c3ec220 | ||
|
|
fe29cd8888 | ||
|
|
b1427153aa | ||
|
|
2ed9b86852 | ||
|
|
f87d5477f6 | ||
|
|
544809e738 | ||
|
|
d678338b28 | ||
|
|
80f5e81d8c | ||
|
|
9a9a8c09c3 | ||
|
|
ac20c320cf | ||
|
|
1c755845f0 | ||
|
|
7b44e0a3a5 | ||
|
|
b79592c71f | ||
|
|
f0522a7cdb | ||
|
|
8c3a777108 | ||
|
|
23d395d781 | ||
|
|
7b747aff3b | ||
|
|
484d9e0d8c | ||
|
|
55aa87c372 | ||
|
|
aa586efbb5 | ||
|
|
0e8ec661c8 | ||
|
|
d2361a9a66 | ||
|
|
910334c2a5 | ||
|
|
4ca5c9b820 | ||
|
|
1f3a04f303 | ||
|
|
af7eae5d9e | ||
|
|
ea5c91b0e9 | ||
|
|
20f7311622 | ||
|
|
dd6e69f530 | ||
|
|
78b25f4ae2 | ||
|
|
895b06033d | ||
|
|
b047038ca1 | ||
|
|
7ec42461d8 | ||
|
|
e49b347a8f | ||
|
|
7faf30d0cc | ||
|
|
d9507dd895 | ||
|
|
2c57f85e25 | ||
|
|
a840b94e0d | ||
|
|
03aa33bba7 | ||
|
|
a2340bf60c | ||
|
|
e918ec44d5 | ||
|
|
34777b6bb4 | ||
|
|
97db010112 | ||
|
|
e81053aed7 | ||
|
|
91428eacae | ||
|
|
936801a51b | ||
|
|
8f1b213994 | ||
|
|
7f47b2ba8f | ||
|
|
eac140aa73 | ||
|
|
d9a7f62a5c | ||
|
|
38f4d124b0 | ||
|
|
0ad6b19705 | ||
|
|
ae7ee51b9d | ||
|
|
294af67370 | ||
|
|
0f0e6b3b16 | ||
|
|
c653e764b8 | ||
|
|
35f7bf2291 | ||
|
|
ccb9a45d21 | ||
|
|
68a96344ed | ||
|
|
67648579b5 | ||
|
|
fa601636aa | ||
|
|
d2b4b6e91d | ||
|
|
a77009e4f0 | ||
|
|
9c2bd25d86 | ||
|
|
22b47f851e | ||
|
|
2342926442 | ||
|
|
458c5c9709 | ||
|
|
4f6b9038f1 | ||
|
|
2ba50f4544 | ||
|
|
50daf9537b | ||
|
|
20007a73df | ||
|
|
7f5850a943 | ||
|
|
8e5d81728f | ||
|
|
300b05aaf0 | ||
|
|
595a70c5ed | ||
|
|
00dca6a2c0 | ||
|
|
9e53fe4b12 | ||
|
|
fb162084f5 | ||
|
|
1d9f06d4ac | ||
|
|
48311896f8 | ||
|
|
616698fa91 | ||
|
|
b8e3ca6a2c | ||
|
|
f231561276 | ||
|
|
ce5556a677 | ||
|
|
8d4cb1e05b | ||
|
|
45773f0b6e | ||
|
|
5c27068b80 | ||
|
|
30c4484731 | ||
|
|
c21ff23477 | ||
|
|
76ba89060b | ||
|
|
77aa8c7bf8 | ||
|
|
bf0fe2c09a | ||
|
|
19ccc98f91 | ||
|
|
e3f65ff359 | ||
|
|
47367673f9 | ||
|
|
46a8cd7b67 | ||
|
|
946d96f482 | ||
|
|
b92fb93f8f | ||
|
|
6b74bf289a | ||
|
|
fe221b9359 | ||
|
|
ab75985766 | ||
|
|
6df7366753 | ||
|
|
1ef7ea0fe6 | ||
|
|
18714c7785 | ||
|
|
a75d06ad64 | ||
|
|
4861b7df1e | ||
|
|
0d21250b62 | ||
|
|
3bbf194594 | ||
|
|
fb75369597 | ||
|
|
a8b5c89efa | ||
|
|
80f82132dd | ||
|
|
7faf705e10 | ||
|
|
1f557b516f | ||
|
|
aecd7fdace | ||
|
|
dad1a1eda6 | ||
|
|
f028213c7f | ||
|
|
b4f018b918 | ||
|
|
20a67ab1de | ||
|
|
02908e5202 | ||
|
|
97d20a1155 | ||
|
|
315bf240fc | ||
|
|
c6b7c263d2 | ||
|
|
e51e516f85 | ||
|
|
069d7c1862 | ||
|
|
4b9724c8fa | ||
|
|
f2d4a882d9 | ||
|
|
6196e87303 | ||
|
|
d96d3b27d2 | ||
|
|
0cf5ab9375 | ||
|
|
4f2717c244 | ||
|
|
6113bad61e | ||
|
|
895b8211e1 | ||
|
|
cb2de5aae1 | ||
|
|
ad1fc5fb3d | ||
|
|
a28a6d1bf5 | ||
|
|
6921628610 | ||
|
|
5d18a57518 | ||
|
|
b62b9e28b9 | ||
|
|
be5baa76b9 | ||
|
|
a6d2e80b08 | ||
|
|
b0ba0d7227 | ||
|
|
bc0a42651b | ||
|
|
a16d6dbc01 | ||
|
|
7b7d39becc | ||
|
|
1ce37e7770 | ||
|
|
3e6a22c3d8 | ||
|
|
493cc4fe4f | ||
|
|
7aa451bec1 | ||
|
|
012443acfa | ||
|
|
dd3dbb6f24 | ||
|
|
223fa90e6c | ||
|
|
ee87eb3101 | ||
|
|
facca364fb | ||
|
|
1d65c1e43e | ||
|
|
1ba4ccd98d | ||
|
|
934aa93ef8 | ||
|
|
88f08fa58c | ||
|
|
f51bfdb666 | ||
|
|
ffd34a3e46 | ||
|
|
190d836b42 | ||
|
|
fad7123417 | ||
|
|
006ced2900 | ||
|
|
ebf66b7920 | ||
|
|
71d68e9a60 | ||
|
|
a78ac17d10 | ||
|
|
36219c59ae | ||
|
|
69efa924e2 | ||
|
|
3d72a43a19 | ||
|
|
7ad264df92 | ||
|
|
024824c2fe | ||
|
|
5db2abab73 | ||
|
|
a4d762d404 | ||
|
|
74f0525470 | ||
|
|
ba6200fb96 | ||
|
|
282d7c7f9d | ||
|
|
48ff61b392 | ||
|
|
a061c86594 | ||
|
|
a18e370d48 | ||
|
|
e9565cf97c | ||
|
|
3b7958aec1 | ||
|
|
20746b2754 | ||
|
|
b16d9372b8 | ||
|
|
f208007226 | ||
|
|
dcd583f62b | ||
|
|
3616c4026b | ||
|
|
03a198a1b5 | ||
|
|
67526d494a | ||
|
|
a51029a503 | ||
|
|
8bd96d360f | ||
|
|
f754d716d0 | ||
|
|
70d24fc7eb | ||
|
|
40f6508717 | ||
|
|
7d5a60b44e | ||
|
|
2264452ad8 | ||
|
|
73e3287fd6 | ||
|
|
f33e706887 | ||
|
|
686653509a | ||
|
|
ce84de605d | ||
|
|
7e4e7ef753 | ||
|
|
b94fa2d95d | ||
|
|
c9c8e95d60 | ||
|
|
d216a3739f | ||
|
|
092fc268d3 | ||
|
|
1da9e24905 | ||
|
|
158d24545a | ||
|
|
96aa893df4 | ||
|
|
4516e6a340 | ||
|
|
2416c42df7 | ||
|
|
4f07599992 | ||
|
|
6ceb8eac97 | ||
|
|
3ad352c08e | ||
|
|
9d73c346b7 | ||
|
|
4abf90247d | ||
|
|
594d227f92 | ||
|
|
7fd112eb4f | ||
|
|
000f3d5a8c | ||
|
|
3f3e684811 | ||
|
|
a841e96bd2 | ||
|
|
3ff4d67d21 | ||
|
|
b09956ae59 | ||
|
|
4395574706 | ||
|
|
1dae4c4c5f | ||
|
|
d31b3a08db | ||
|
|
0f3a5148b1 | ||
|
|
d3f1ec74ba | ||
|
|
3470ceb13d | ||
|
|
648f0915e5 | ||
|
|
21e20f2104 | ||
|
|
f43bc3d10c | ||
|
|
3ad36c773d | ||
|
|
22484c708f | ||
|
|
cab33dfc89 | ||
|
|
e1db40d932 | ||
|
|
97681b589e | ||
|
|
09f1ee77e1 | ||
|
|
0f13363895 | ||
|
|
7c1bfc97c4 | ||
|
|
2a647d497a | ||
|
|
70f9fe0412 | ||
|
|
0753556aa3 | ||
|
|
a5bd262b3a | ||
|
|
4ddb1fbe58 | ||
|
|
195d5b47f0 | ||
|
|
496e69e666 | ||
|
|
0f63783592 | ||
|
|
db6e698245 | ||
|
|
b114896e7b | ||
|
|
17b48d78cb | ||
|
|
e347f895b8 | ||
|
|
d119547a95 | ||
|
|
85f23356a3 | ||
|
|
3187c2ffce | ||
|
|
9bdd564bdc | ||
|
|
7f3b15011e | ||
|
|
bbba390e97 | ||
|
|
ad044f9272 | ||
|
|
f8a4a5d6af | ||
|
|
5a62824049 | ||
|
|
bfa4bd2584 | ||
|
|
1e62d69762 | ||
|
|
bed6557a6d | ||
|
|
0d3ed4769e | ||
|
|
bee3ea79f0 | ||
|
|
ca4e35d52c | ||
|
|
6623aa3a7d | ||
|
|
67360aaeef | ||
|
|
3e21edb891 | ||
|
|
6e6fc9a704 | ||
|
|
2833d0e4f4 | ||
|
|
95224379aa | ||
|
|
86f402edb7 | ||
|
|
6bf7b4d9ba | ||
|
|
2f2f864aa8 | ||
|
|
ebe8fdb08e | ||
|
|
c479cba71a | ||
|
|
650fc0c74b | ||
|
|
b90ad51723 | ||
|
|
4237830a97 | ||
|
|
4fab227c23 | ||
|
|
e4147f7b80 | ||
|
|
d4ee95e445 | ||
|
|
a842ad8b61 | ||
|
|
3a209e2930 | ||
|
|
ccb0fa748f | ||
|
|
bf8c9d0124 | ||
|
|
0e94891e5b | ||
|
|
564d29e445 | ||
|
|
06b2ce9f30 | ||
|
|
ab208bb8f9 | ||
|
|
eb422ddf08 | ||
|
|
c668990b4d | ||
|
|
f079f8bc82 | ||
|
|
c21636b295 | ||
|
|
3cd413ed1f | ||
|
|
8518d28dc4 | ||
|
|
52de8ff62d | ||
|
|
d3d738f93b | ||
|
|
837f15d01b | ||
|
|
f6d52dd96c | ||
|
|
9aff094b6f | ||
|
|
4b3b847c7f | ||
|
|
a55216310a | ||
|
|
44d0e81572 | ||
|
|
f9500ca5ff | ||
|
|
e822811f29 | ||
|
|
02a3929472 | ||
|
|
41c4642a21 | ||
|
|
f319078694 | ||
|
|
a548c7ea71 | ||
|
|
6e34b192e3 | ||
|
|
969e8ff0ec | ||
|
|
66a8c01d0e | ||
|
|
21986038be | ||
|
|
3eb7ed2892 | ||
|
|
2410389912 | ||
|
|
a8ead37312 | ||
|
|
ecec45697b | ||
|
|
2c5ded78e3 | ||
|
|
d51b82d0e6 | ||
|
|
815c20c822 | ||
|
|
92838fa1b2 | ||
|
|
307c4ed4b6 | ||
|
|
14c0ccc94c | ||
|
|
4aea588eef | ||
|
|
4c4a360469 | ||
|
|
a0253a0970 | ||
|
|
7662ffb64a | ||
|
|
9375c48e33 | ||
|
|
5494c44a30 | ||
|
|
3f19712178 | ||
|
|
4a15671e84 | ||
|
|
51b2f284f0 | ||
|
|
055be92ef0 | ||
|
|
67c2336176 | ||
|
|
6667c57e89 | ||
|
|
4edeacd1f0 | ||
|
|
01bd4373b6 | ||
|
|
2db20f0a6c | ||
|
|
7934fef84c | ||
|
|
58c80ff0ab | ||
|
|
4b6ff77fea | ||
|
|
a0cc7babdf | ||
|
|
cf77a6a805 | ||
|
|
b3da8d9aa1 | ||
|
|
d8272b7370 | ||
|
|
5329326591 | ||
|
|
06bc1e5e6b | ||
|
|
9b31fe1e98 | ||
|
|
0ae551a970 | ||
|
|
8e733ff0da | ||
|
|
52b6355a54 | ||
|
|
54fb480ade | ||
|
|
b292d4f06d | ||
|
|
076ed83b81 | ||
|
|
b12bc59b57 | ||
|
|
8e5522647a | ||
|
|
3fd42ad2a0 | ||
|
|
99cd9d174b | ||
|
|
f71a85a675 | ||
|
|
b9de551e0c | ||
|
|
0e87c21d87 | ||
|
|
2c2574e182 | ||
|
|
5c3daca2a0 | ||
|
|
5232af0a61 | ||
|
|
7f835b414a | ||
|
|
8895ad182f | ||
|
|
3784b66cdb | ||
|
|
0c7afe3d0a | ||
|
|
478cd2840b | ||
|
|
fbac205e65 | ||
|
|
697011df7b | ||
|
|
67e8f344ac | ||
|
|
5fb8d2aa37 | ||
|
|
d50ec3094f | ||
|
|
7473d1942d | ||
|
|
e22c80dce6 | ||
|
|
8affcb0e3d | ||
|
|
16dd3fd7af | ||
|
|
a46fb73260 | ||
|
|
db6045fe9c | ||
|
|
4efd206dd4 | ||
|
|
b0889e1454 | ||
|
|
69de477d0b | ||
|
|
5eb3cd2699 | ||
|
|
226bb1d4ef | ||
|
|
8753829c1b | ||
|
|
55e9320299 | ||
|
|
c4af2d79c5 | ||
|
|
ce708df877 | ||
|
|
342fa9d33f | ||
|
|
fd9a23f30f | ||
|
|
d72b98b434 | ||
|
|
813fb7a394 | ||
|
|
6d532944bd | ||
|
|
ba2a4a605c | ||
|
|
d45f280cb7 | ||
|
|
7cf0d7a5d8 | ||
|
|
8b77ef538a | ||
|
|
e366661a09 | ||
|
|
8636fe3c33 | ||
|
|
08e0da7921 | ||
|
|
27021ff425 | ||
|
|
ecedddb19b | ||
|
|
ee73ac1a74 | ||
|
|
169250d484 | ||
|
|
4fea4fc76f | ||
|
|
6fa849c956 | ||
|
|
3cef1b0842 | ||
|
|
08b1ceb9a1 | ||
|
|
af0a9118c1 | ||
|
|
568da750bb | ||
|
|
d5f6f6b98e | ||
|
|
10ac0c2e1a | ||
|
|
1ffadf31de | ||
|
|
224ee88b91 | ||
|
|
b42067e654 | ||
|
|
c9e08c951a | ||
|
|
42f760d72f | ||
|
|
c68acebe31 | ||
|
|
4b7c5159a3 | ||
|
|
4a8daf43e4 | ||
|
|
182148a26c | ||
|
|
af715ca0ff | ||
|
|
990ecb5eb1 | ||
|
|
7c88b3f124 | ||
|
|
f4053c8af3 | ||
|
|
af3f8b00a4 | ||
|
|
db06c98608 | ||
|
|
332a7d1488 | ||
|
|
48f9f7de14 | ||
|
|
35d37559c8 | ||
|
|
1a6c0a5f12 | ||
|
|
2c8f032a76 | ||
|
|
bcc766f70d | ||
|
|
dcadc2c4d4 | ||
|
|
55ed5d61e0 | ||
|
|
86f424130d | ||
|
|
4e9b69f0a7 | ||
|
|
0a17738f39 | ||
|
|
fb7b07fc42 | ||
|
|
1d2130610c | ||
|
|
0b04f772ef | ||
|
|
5c73fe9304 | ||
|
|
2af105000f | ||
|
|
cadfa0bc4d | ||
|
|
f2521c8536 | ||
|
|
d353e0c6fa | ||
|
|
346731ea5d | ||
|
|
2ef38d84d1 | ||
|
|
5630d48a66 | ||
|
|
b44a9b8b62 | ||
|
|
f5b0fc6a8f | ||
|
|
a20bc772f2 | ||
|
|
010c4b0d64 | ||
|
|
dcb4bc5ef4 | ||
|
|
47e05d5a23 | ||
|
|
17abb58651 | ||
|
|
05b60bd818 | ||
|
|
5998f1497a | ||
|
|
269c8d415a | ||
|
|
cd191778c2 | ||
|
|
3e7aacf301 | ||
|
|
6b113c8270 | ||
|
|
a2162c01e3 | ||
|
|
870c221690 | ||
|
|
87ad848202 | ||
|
|
b736b6835d | ||
|
|
91bec01da8 | ||
|
|
a0c3f432c4 | ||
|
|
b5c51796b9 | ||
|
|
724002f142 | ||
|
|
377a9d6f41 | ||
|
|
003b4cf876 | ||
|
|
b12dd19d44 | ||
|
|
82c6454950 | ||
|
|
969c0ee6e3 | ||
|
|
c092b63987 | ||
|
|
47efee1df4 | ||
|
|
18a5452de8 | ||
|
|
c3794ba8d4 | ||
|
|
75a5b4438b | ||
|
|
185a3a2c76 | ||
|
|
3fcef51137 | ||
|
|
f959c2f4ca | ||
|
|
b7a6e106fd | ||
|
|
7dca7fac11 | ||
|
|
4ef2d4cc8e | ||
|
|
55bbd2aec6 | ||
|
|
36b4659f77 | ||
|
|
0b5666bde2 | ||
|
|
e1c72e6d51 | ||
|
|
5799d9a15b | ||
|
|
74404f56ee | ||
|
|
e53abe8bde | ||
|
|
29ef10e759 | ||
|
|
1e679cc94d | ||
|
|
96ba1079b2 | ||
|
|
f190df8621 | ||
|
|
6b078ee935 | ||
|
|
3de5cbd105 | ||
|
|
6faee38395 | ||
|
|
a44fd40889 | ||
|
|
5b7e1ceb68 | ||
|
|
d9d58c8bde | ||
|
|
d34481d830 | ||
|
|
307befa892 | ||
|
|
7647c8e8d1 | ||
|
|
b2d71f900a | ||
|
|
9e4ce68444 | ||
|
|
4920b68d2c | ||
|
|
5ce3d1e7a1 | ||
|
|
8140264cb6 | ||
|
|
a0acc82e99 | ||
|
|
98e532de20 | ||
|
|
e1ee3eb494 | ||
|
|
4a485df0c7 | ||
|
|
2522d29fdc | ||
|
|
560d6fba1b | ||
|
|
223ec0c59d | ||
|
|
6bc785e771 | ||
|
|
fb8cbb69aa | ||
|
|
861147b845 | ||
|
|
763caaebab | ||
|
|
276259394a | ||
|
|
46c0d1a732 | ||
|
|
31d2dcec17 | ||
|
|
c9234ee027 | ||
|
|
9a8d715666 | ||
|
|
8d474e1395 | ||
|
|
52e3d9b804 | ||
|
|
8f5cc4ed33 | ||
|
|
059d05f41f | ||
|
|
c86b91c5f0 | ||
|
|
e42848d37d | ||
|
|
bf7dddbd84 | ||
|
|
95983ba168 | ||
|
|
c97943d69d | ||
|
|
b813ea70a5 | ||
|
|
e734019216 | ||
|
|
b7d9290de9 | ||
|
|
b1a30ae4ff | ||
|
|
8283a6d6d4 | ||
|
|
36adae3d82 | ||
|
|
f176e2539e | ||
|
|
d6bfb8889a | ||
|
|
24fb1ced3c | ||
|
|
82b8a4f584 | ||
|
|
979bca57d5 | ||
|
|
93fd93da5c | ||
|
|
508527f7cd | ||
|
|
64634c916c | ||
|
|
34cc26176c | ||
|
|
e2840b0eb8 | ||
|
|
f4edb092b7 | ||
|
|
8caede300c | ||
|
|
f9c6ee0181 | ||
|
|
f5cc7746b6 | ||
|
|
41a4690372 | ||
|
|
9d57ccd7b1 | ||
|
|
ad60d708e1 | ||
|
|
f79af92599 | ||
|
|
f368fdbc76 | ||
|
|
2f3ea8882b | ||
|
|
e32fecd16d | ||
|
|
dca77cb0d2 | ||
|
|
9ec6c2901c | ||
|
|
e915d10953 | ||
|
|
ddb2759a52 | ||
|
|
28cf1423c9 | ||
|
|
0fb9d43998 | ||
|
|
91e7ce87f0 | ||
|
|
e59790b401 | ||
|
|
d0b8f76ecb | ||
|
|
fe05372c67 | ||
|
|
4394ab58d7 | ||
|
|
fcaf008beb | ||
|
|
1e15a510fd | ||
|
|
9de2b90528 | ||
|
|
a71e0bf551 | ||
|
|
280cc77e23 | ||
|
|
a681fbf533 | ||
|
|
448df73a35 | ||
|
|
1982071d46 | ||
|
|
4dfb15e37c | ||
|
|
154b72b4f1 | ||
|
|
de4ee08ad4 | ||
|
|
5ae862ff54 | ||
|
|
859031dcd9 | ||
|
|
39e1aabd2a | ||
|
|
9f499827af | ||
|
|
9bde5b9065 | ||
|
|
acaebbd75e | ||
|
|
3ed6379c4c | ||
|
|
b4eb39fb16 | ||
|
|
6be0e67a5c | ||
|
|
abad7d8fe1 | ||
|
|
72cf3f2315 | ||
|
|
c02ea1bf60 | ||
|
|
b9d0cf9c89 | ||
|
|
80cfc2bd26 | ||
|
|
08d85d4ae1 | ||
|
|
43b141547e | ||
|
|
d658c1187c | ||
|
|
1f4c00c7b5 | ||
|
|
bbe97dd080 | ||
|
|
9724e04e6e | ||
|
|
364ac499eb | ||
|
|
8b15fa2422 | ||
|
|
41cb6fb0d5 | ||
|
|
5d8bd674cd | ||
|
|
2e6cda38f6 | ||
|
|
6e8fcce777 | ||
|
|
559e8a907b | ||
|
|
024649c175 | ||
|
|
7fb3711ed6 | ||
|
|
1dff0c6b5f | ||
|
|
768c6242cd | ||
|
|
bca650e1fc | ||
|
|
0bf67bf67c | ||
|
|
99ef1e2696 | ||
|
|
57b6b790c1 | ||
|
|
3593a2d49f | ||
|
|
dad33c9bde | ||
|
|
683d332abc | ||
|
|
ac6d532651 | ||
|
|
d1a306a021 | ||
|
|
4cd1dcfee1 | ||
|
|
3ab31545f4 | ||
|
|
197bbbb267 | ||
|
|
58adecc3a1 | ||
|
|
830d96d2ed | ||
|
|
f027d8f519 | ||
|
|
8b44ac984c | ||
|
|
5542dbcc0b | ||
|
|
0ca8ae7970 | ||
|
|
0b83f850e4 | ||
|
|
06399c86f6 | ||
|
|
663ed73768 | ||
|
|
d37dce508a | ||
|
|
2e882b4af2 | ||
|
|
1aa31e0414 | ||
|
|
a477688e51 | ||
|
|
5533b82450 | ||
|
|
1bd2fecbf6 | ||
|
|
8b5ac93388 | ||
|
|
2fd50b104c | ||
|
|
0088cef2fc | ||
|
|
85cab3d0f1 | ||
|
|
f89cde8186 | ||
|
|
e171384c19 | ||
|
|
c89683fb0f | ||
|
|
e7ed1e4f93 | ||
|
|
c6d5dc1534 | ||
|
|
9ae8b0b3b6 | ||
|
|
327eb9013b | ||
|
|
42f290b037 | ||
|
|
b7fb4eeda5 | ||
|
|
f03aae7a34 | ||
|
|
78eb35010f | ||
|
|
fd9afdce34 | ||
|
|
21e4e2924e | ||
|
|
e3d1565261 | ||
|
|
557b92a167 | ||
|
|
e299eea2b1 | ||
|
|
e1f1d05e08 | ||
|
|
125257f264 | ||
|
|
2d49931300 | ||
|
|
8426677c55 | ||
|
|
d322f332e8 | ||
|
|
f8359f554b | ||
|
|
60fb8c941a | ||
|
|
cb6a99408c | ||
|
|
d865c42ef8 | ||
|
|
69c590ff81 | ||
|
|
72533cbd13 | ||
|
|
c974a159af | ||
|
+6 |
54efb62731 | ||
|
|
464bca5d20 | ||
|
|
7637ef10d7 | ||
|
+6 |
0e5651f353 | ||
|
|
ffb63f3ee5 | ||
|
|
0859a0d1e5 | ||
|
|
e41a6f2ec4 | ||
|
|
c53c6bd9c3 | ||
|
|
707d7deed2 | ||
|
|
ed0a388bcd | ||
|
|
826a1ee346 | ||
|
|
d4e63fcdfe | ||
|
|
0806b881ea | ||
|
|
5becb41bd4 | ||
|
|
ead68038a3 | ||
|
|
b8b5d0bff8 | ||
|
|
e18172d434 | ||
|
|
a15883d49b | ||
|
|
714ef59814 | ||
|
|
1d095e81d9 | ||
|
|
d976a9f5a0 | ||
|
|
f2060e0c76 | ||
|
|
b81ad9a84d | ||
|
|
53bc05fe89 | ||
|
|
a6d5c452d5 | ||
|
|
515fdc22a5 | ||
|
|
424e276150 | ||
|
|
b071d6bbec | ||
|
|
27a9cc6254 | ||
|
|
bb9ad5e41a | ||
|
|
d91f80464d | ||
|
|
d826ddb294 | ||
|
|
a7600c8072 | ||
|
|
82a9122fc3 | ||
|
|
0e9e7f2ebc | ||
|
|
14671009f8 | ||
|
|
802c9907a1 | ||
|
|
88b96265d7 | ||
|
|
0bc10923a1 | ||
|
|
0dc92c2d7b | ||
|
|
04a3206e53 | ||
|
|
98360d94a5 | ||
|
|
a9c8307d97 | ||
|
|
581489f67b | ||
|
|
5e89d5a03f | ||
|
|
d71d051c53 | ||
|
|
d2aeff6752 | ||
|
|
36be14de06 | ||
|
|
f9af9a15f2 | ||
|
|
4674bb5c8b | ||
|
|
a6b764bf7c | ||
|
|
c6f07ee19f | ||
|
|
e36127283c | ||
|
|
230ae6bd16 | ||
|
|
5b5ef07350 | ||
|
|
fb6af1971b | ||
|
|
41f9bdc5db | ||
|
|
12e64aa191 | ||
|
|
22ab673480 | ||
|
|
03841dcb81 | ||
|
|
64c2634b71 | ||
|
|
f1019dc4ee | ||
|
|
50ede37a58 | ||
|
|
60ddca1354 | ||
|
|
19f1f02d91 | ||
|
|
5a36b315a3 | ||
|
|
b67cd2cf7a | ||
|
|
97492eec7c | ||
|
|
fdc2e0f692 | ||
|
|
2672d037a8 | ||
|
|
ee663d61cd | ||
|
|
008a768f15 | ||
|
|
33b2e6a856 | ||
|
|
6540107ccb | ||
|
|
1ce08a62a9 | ||
|
|
b82bdc7782 | ||
|
|
e0e21dfdda | ||
|
|
981d09cc28 | ||
|
|
2fbd5dc828 | ||
|
|
931b02dbb1 | ||
|
|
0962af5e72 | ||
|
|
9b7d13476f | ||
|
|
3efb731b40 | ||
|
|
ce989d0d67 | ||
|
|
405f96c4b7 | ||
|
|
5ad0212b93 | ||
|
|
30799dd73f | ||
|
|
8ebe2c563a | ||
|
|
57588dec7a | ||
|
|
9a8b74d744 | ||
|
|
e11d70e408 | ||
|
|
60d2138f30 | ||
|
|
259ee610a6 | ||
|
|
4192f6a6d9 | ||
|
|
54decda7a4 | ||
|
|
f42841a6ab | ||
|
|
524363dcf7 | ||
|
|
17f6b3a10b | ||
|
|
da71e2524c | ||
|
|
f3da2b4031 | ||
|
|
e2dad367b4 | ||
|
|
9b7ff43118 | ||
|
|
adfbbc3fb0 | ||
|
|
f621261ff9 | ||
|
|
00d55fc4b4 | ||
|
|
74dc41c7c7 | ||
|
|
925599cab0 | ||
|
|
a43048a1ad | ||
|
|
d6c5a6cd59 | ||
|
|
54f339f0c0 | ||
|
|
115b9147b9 | ||
|
|
6b5c9b1b8e | ||
|
|
06b487119d | ||
|
|
4ca3f27293 | ||
|
|
785a121825 | ||
|
|
f73e51e94c | ||
|
|
e6802690b8 | ||
|
|
595e033776 | ||
|
|
e5fc89821f | ||
|
|
411e54023a | ||
|
|
8f05c85838 | ||
|
|
e4cb74896b | ||
|
|
8e6e4ede6d | ||
|
|
0b03ad9a21 | ||
|
|
0e6a314d86 | ||
|
|
1b59712c48 | ||
|
|
7c8d5b0afd | ||
|
|
7f63d896f9 | ||
|
|
2115b18ae3 | ||
|
|
4ac3e7b864 | ||
|
|
03bd96d1d1 | ||
|
|
4a85cf5e74 | ||
|
|
a8fde9e530 | ||
|
|
1f9a15dd18 | ||
|
|
a872cc3418 | ||
|
|
646147c275 | ||
|
|
314099a267 | ||
|
|
ce9330e9bb | ||
|
|
b2a981f353 | ||
|
|
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 | ||
|
|
9ddc0327d4 |
No files matched your search
+46
-47
@@ -4,72 +4,71 @@ BreakBeforeBraces: Stroustrup
|
||||
IndentWidth: 4
|
||||
TabWidth: 4
|
||||
AlignAfterOpenBracket: AlwaysBreak
|
||||
AlignConsecutiveMacros: 'true'
|
||||
AlignConsecutiveAssignments: 'false'
|
||||
AlignConsecutiveDeclarations: 'false'
|
||||
AlignConsecutiveMacros: "true"
|
||||
AlignConsecutiveAssignments: "false"
|
||||
AlignConsecutiveDeclarations: "false"
|
||||
AlignEscapedNewlines: Right
|
||||
AlignOperands: 'true'
|
||||
AlignTrailingComments: 'true'
|
||||
AllowAllArgumentsOnNextLine: 'false'
|
||||
AllowAllConstructorInitializersOnNextLine: 'false'
|
||||
AllowAllParametersOfDeclarationOnNextLine: 'false'
|
||||
AllowShortBlocksOnASingleLine: 'true'
|
||||
AllowShortCaseLabelsOnASingleLine: 'false'
|
||||
AlignOperands: "true"
|
||||
AlignTrailingComments: "true"
|
||||
AllowAllArgumentsOnNextLine: "false"
|
||||
AllowAllConstructorInitializersOnNextLine: "false"
|
||||
AllowAllParametersOfDeclarationOnNextLine: "false"
|
||||
AllowShortBlocksOnASingleLine: "true"
|
||||
AllowShortCaseLabelsOnASingleLine: "false"
|
||||
AllowShortFunctionsOnASingleLine: None
|
||||
AllowShortIfStatementsOnASingleLine: Never
|
||||
AlwaysBreakAfterReturnType: None
|
||||
BinPackArguments: 'false'
|
||||
BinPackParameters: 'false'
|
||||
BinPackArguments: "true"
|
||||
BinPackParameters: OnePerLine
|
||||
BreakBeforeBinaryOperators: NonAssignment
|
||||
BreakBeforeTernaryOperators: 'true'
|
||||
BreakBeforeTernaryOperators: "true"
|
||||
BreakConstructorInitializers: BeforeComma
|
||||
BreakInheritanceList: BeforeComma
|
||||
CompactNamespaces: 'false'
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: 'true'
|
||||
ConstructorInitializerIndentWidth: '4'
|
||||
ContinuationIndentWidth: '4'
|
||||
Cpp11BracedListStyle: 'false'
|
||||
FixNamespaceComments: 'true'
|
||||
CompactNamespaces: "false"
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: "true"
|
||||
ConstructorInitializerIndentWidth: "4"
|
||||
ContinuationIndentWidth: "4"
|
||||
Cpp11BracedListStyle: "false"
|
||||
FixNamespaceComments: "true"
|
||||
IncludeBlocks: Regroup
|
||||
IndentCaseLabels: 'true'
|
||||
IndentCaseLabels: "true"
|
||||
IndentPPDirectives: None
|
||||
IndentWrappedFunctionNames: 'false'
|
||||
KeepEmptyLinesAtTheStartOfBlocks: 'false'
|
||||
MaxEmptyLinesToKeep: '1'
|
||||
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'
|
||||
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'
|
||||
SpaceBeforeRangeBasedForLoopColon: "true"
|
||||
SpaceInEmptyParentheses: "false"
|
||||
SpacesBeforeTrailingComments: "3"
|
||||
SpacesInAngles: "false"
|
||||
SpacesInCStyleCastParentheses: "false"
|
||||
SpacesInContainerLiterals: "true"
|
||||
SpacesInParentheses: "false"
|
||||
SpacesInSquareBrackets: "false"
|
||||
UseTab: "Always"
|
||||
|
||||
---
|
||||
Language: Cpp
|
||||
Standard: Cpp03
|
||||
ColumnLimit: '240'
|
||||
ColumnLimit: "120"
|
||||
---
|
||||
Language: ObjC
|
||||
ColumnLimit: '240'
|
||||
ColumnLimit: "120"
|
||||
---
|
||||
Language: Java
|
||||
ColumnLimit: '240'
|
||||
ColumnLimit: "120"
|
||||
---
|
||||
Language: CSharp
|
||||
ColumnLimit: '240'
|
||||
...
|
||||
ColumnLimit: "120"
|
||||
@@ -0,0 +1,11 @@
|
||||
CompileFlags:
|
||||
Add:
|
||||
- "-std=c++17"
|
||||
- "-I../ext"
|
||||
- "-I../ext/prometheus-cpp-lite-1.0/core/include"
|
||||
- "-I../ext/prometheus-cpp-lite-1.0/simpleapi/include"
|
||||
- "-I../ext/opentelemetry-cpp-1.21.0/api/include"
|
||||
- "-I./ext"
|
||||
- "-I./ext/prometheus-cpp-lite-1.0/core/include"
|
||||
- "-I./ext/prometheus-cpp-lite-1.0/simpleapi/include"
|
||||
- "-I./ext/opentelemetry-cpp-1.21.0/api/include"
|
||||
@@ -1,2 +1,12 @@
|
||||
.git/
|
||||
workspace/
|
||||
# Local from-source dependency builds (scripts/bootstrap-deps.sh) and CMake output;
|
||||
# never ship these into an image -- they are host-specific and large.
|
||||
.deps/
|
||||
.deps-build/
|
||||
build/
|
||||
build-*/
|
||||
out/
|
||||
# Dockerfiles are supplied via -f; keeping them out of the context means editing
|
||||
# them does not invalidate the COPY layers (and the heavy build cache).
|
||||
ext/central-controller-docker/Dockerfile*
|
||||
@@ -1,68 +0,0 @@
|
||||
|
||||
local targets = [
|
||||
//
|
||||
// Render these into .drone.yaml by running "make drone"
|
||||
//
|
||||
{ "os": "linux", "name": "el9", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", "name": "el8", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", "name": "el7", "isas": [ "amd64", "ppc64le"], "events": [ "tag" ] },
|
||||
{ "os": "linux", "name": "el6", "isas": [ "amd64" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", "name": "amzn2", "isas": [ "amd64", "arm64" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", "name": "fc37", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", "name": "fc36", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", "name": "fc35", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", "name": "jammy", "isas": [ "amd64", "arm64", "armv7", "riscv64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", "name": "focal", "isas": [ "amd64", "arm64", "armv7", "riscv64", "ppc64le" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", "name": "bionic", "isas": [ "amd64", "arm64", "386", "ppc64le", "s390x" ], "events": ["tag" ] },
|
||||
{ "os": "linux", "name": "xenial", "isas": [ "amd64", "arm64", "386" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", "name": "sid", "isas": [ "386", "amd64", "arm64", "armv7", "riscv64", "mips64le", "ppc64le", "s390x" ], "events": [ "push", "tag" ] },
|
||||
{ "os": "linux", "name": "bookworm", "isas": [ "amd64", "arm64", "armv7", "386", "mips64le", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", "name": "bullseye", "isas": [ "amd64", "arm64", "armv7", "386", "mips64le", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", "name": "buster", "isas": [ "amd64", "arm64", "armv7", "386", "mips64le", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", "name": "stretch", "isas": [ "amd64", "arm64", "386" ], "events": [ "tag" ] },
|
||||
// { "os": "windows", "name": "win2k19", "isas": [ "amd64" ], "events": ["push", "tag" ] }
|
||||
];
|
||||
|
||||
local Build(platform, os, isa, events) = {
|
||||
"kind": "pipeline",
|
||||
"type": "docker",
|
||||
"pull": "always",
|
||||
"name": platform + " " + isa + " " + "build",
|
||||
"clone": { "depth": 1 },
|
||||
"steps": [
|
||||
{
|
||||
"name": "build",
|
||||
"image": "registry.sean.farm/honda-builder",
|
||||
"commands": [ "./ci/scripts/build.sh " + platform + " " + isa + " " + "100.0.0+${DRONE_COMMIT_SHA:0:8}" + " " + "${DRONE_BUILD_EVENT}" ]
|
||||
},
|
||||
{
|
||||
"name": "list",
|
||||
"image": "registry.sean.farm/honda-builder",
|
||||
"commands": [ "ls -la " + platform ]
|
||||
},
|
||||
{
|
||||
"name": "notify-mattermost",
|
||||
"image": "registry.sean.farm/mattermost-notify",
|
||||
"environment": {
|
||||
"token": { "from_secret": "mattermost-token" },
|
||||
"host": { "from_secret": "mattermost-host" },
|
||||
"channel": { "from_secret": "mattermost-channel" },
|
||||
"maxRetry": 3,
|
||||
},
|
||||
"when": { "status": [ "failure" ] }
|
||||
}
|
||||
],
|
||||
"image_pull_secrets": [ "dockerconfigjson" ],
|
||||
[ 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
|
||||
])
|
||||
-2655
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,126 @@
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
|
||||
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@v4
|
||||
- name: Install Rust
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
toolchain: stable
|
||||
targets: x86_64-unknown-linux-gnu
|
||||
components: rustfmt, clippy
|
||||
|
||||
- name: Set up cargo cache
|
||||
uses: Swatinem/rust-cache@v2
|
||||
continue-on-error: false
|
||||
with:
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('rustybits//Cargo.lock') }}
|
||||
shared-key: ${{ runner.os }}-cargo-
|
||||
workspaces: |
|
||||
rustybits/
|
||||
|
||||
- name: make
|
||||
run: make
|
||||
- name: selftest
|
||||
run: |
|
||||
make selftest
|
||||
./zerotier-selftest
|
||||
- name: 'Tar files' # keeps permissions (execute)
|
||||
run: tar -cvf zerotier-one.tar zerotier-one
|
||||
- name: Archive production artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zerotier-one-ubuntu-x64
|
||||
path: zerotier-one.tar
|
||||
retention-days: 7
|
||||
|
||||
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@v4
|
||||
- name: Install Rust aarch64
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
toolchain: stable
|
||||
target: aarch64-apple-darwin
|
||||
components: rustfmt, clippy
|
||||
- name: Install Rust x86_64
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
toolchain: stable
|
||||
target: x86_64-apple-darwin
|
||||
components: rustfmt, clippy
|
||||
- name: Set up cargo cache
|
||||
uses: Swatinem/rust-cache@v2
|
||||
continue-on-error: false
|
||||
with:
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('rustybits//Cargo.lock') }}
|
||||
shared-key: ${{ runner.os }}-cargo-
|
||||
workspaces: |
|
||||
rustybits/
|
||||
- name: make
|
||||
run: make
|
||||
- name: selftest
|
||||
run: |
|
||||
make selftest
|
||||
./zerotier-selftest
|
||||
- name: 'Tar files' # keeps permissions (execute)
|
||||
run: tar -cvf zerotier-one.tar zerotier-one
|
||||
- name: Archive production artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zerotier-one-mac
|
||||
path: zerotier-one.tar
|
||||
retention-days: 7
|
||||
|
||||
|
||||
build_windows:
|
||||
runs-on: windows-2022
|
||||
steps:
|
||||
- name: gitconfig
|
||||
run: |
|
||||
git config --global core.autocrlf true
|
||||
# git config --global core.eol lf
|
||||
- name: checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Install Rust
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
toolchain: stable
|
||||
targets: x86_64-pc-windows-msvc
|
||||
components: rustfmt, clippy
|
||||
- name: Set up cargo cache
|
||||
uses: Swatinem/rust-cache@v2
|
||||
continue-on-error: false
|
||||
with:
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('rustybits//Cargo.lock') }}
|
||||
shared-key: ${{ runner.os }}-cargo-
|
||||
workspaces: |
|
||||
rustybits/
|
||||
|
||||
- name: setup msbuild
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
- name: msbuild
|
||||
run: |
|
||||
msbuild windows\ZeroTierOne.sln /m /p:Configuration=Release /property:Platform=x64 /t:ZeroTierOne
|
||||
- name: Archive production artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zerotier-one-windows
|
||||
path: windows/Build
|
||||
retention-days: 7
|
||||
@@ -0,0 +1,104 @@
|
||||
# on:
|
||||
# workflow_dispatch:
|
||||
on:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
central_controller:
|
||||
name: Central Controller Build
|
||||
strategy:
|
||||
matrix:
|
||||
runner: [gha-runner-x64, gha-runner-arm64]
|
||||
runs-on: ${{ matrix.runner }}
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: GCP Auth
|
||||
uses: google-github-actions/auth@v3
|
||||
with:
|
||||
credentials_json: ${{ secrets.DOCKER_REGISTRY_WRITER}}
|
||||
|
||||
- name: Set up GCloud CLI
|
||||
uses: google-github-actions/setup-gcloud@v3
|
||||
with:
|
||||
# v3 no longer uses the tool cache by default; restore the prior caching
|
||||
# behavior on these self-hosted runners (perf: avoids re-fetching the SDK).
|
||||
cache: true
|
||||
|
||||
- name: Docker Auth
|
||||
run: gcloud auth configure-docker us-central1-docker.pkg.dev --quiet
|
||||
|
||||
- name: Get branch name and sanitize
|
||||
id: branch
|
||||
run: |
|
||||
BRANCH_NAME="${GITHUB_REF##*/}"
|
||||
SANITIZED_BRANCH="${BRANCH_NAME//\//-}"
|
||||
echo "branch_name=$SANITIZED_BRANCH" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Get short git commit SHA
|
||||
id: sha
|
||||
run: |
|
||||
calculatedSha=$(git rev-parse --short ${{ github.sha }})
|
||||
echo "COMMIT_SHORT_SHA=$calculatedSha" >> $GITHUB_ENV
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v4
|
||||
|
||||
- name: Build & Push Docker Image
|
||||
# Registry layer cache (mode=max) so the expensive builder stage -- which
|
||||
# builds opentelemetry-cpp + google-cloud-cpp from source -- is reused across
|
||||
# runs and fresh runners. The cache invalidates automatically when the
|
||||
# bootstrap inputs change. Cache is per-arch (the deps layer is arch-specific).
|
||||
run: |
|
||||
CACHE=us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller-buildcache:${{ runner.arch }}
|
||||
docker buildx build \
|
||||
-t us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}-${{ runner.arch }} \
|
||||
-f ext/central-controller-docker/Dockerfile \
|
||||
--cache-from type=registry,ref=$CACHE \
|
||||
--cache-to type=registry,ref=$CACHE,mode=max \
|
||||
--provenance false \
|
||||
--push .
|
||||
|
||||
multi-arch-docker:
|
||||
runs-on: gha-runner-x64
|
||||
needs: central_controller
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: GCP Auth
|
||||
uses: google-github-actions/auth@v3
|
||||
with:
|
||||
credentials_json: ${{ secrets.DOCKER_REGISTRY_WRITER}}
|
||||
|
||||
- name: Set up GCloud CLI
|
||||
uses: google-github-actions/setup-gcloud@v3
|
||||
with:
|
||||
# v3 no longer uses the tool cache by default; restore the prior caching
|
||||
# behavior on these self-hosted runners (perf: avoids re-fetching the SDK).
|
||||
cache: true
|
||||
|
||||
- name: Docker Auth
|
||||
run: gcloud auth configure-docker us-central1-docker.pkg.dev --quiet
|
||||
|
||||
- name: Get branch name and sanitize
|
||||
id: branch
|
||||
run: |
|
||||
BRANCH_NAME="${GITHUB_REF##*/}"
|
||||
SANITIZED_BRANCH="${BRANCH_NAME//\//-}"
|
||||
echo "branch_name=$SANITIZED_BRANCH" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Get short git commit SHA
|
||||
id: sha
|
||||
run: |
|
||||
calculatedSha=$(git rev-parse --short ${{ github.sha }})
|
||||
echo "COMMIT_SHORT_SHA=$calculatedSha" >> $GITHUB_ENV
|
||||
|
||||
- name: Create and push multi-arch manifest
|
||||
run: |
|
||||
docker manifest create us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }} \
|
||||
--amend us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}-X64 \
|
||||
--amend us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}-ARM64
|
||||
docker manifest push us-central1-docker.pkg.dev/zerotier-421eb9/docker-images/ztcentral-controller:${{ env.COMMIT_SHORT_SHA }}-${{ steps.branch.outputs.branch_name }}
|
||||
Executable
+497
@@ -0,0 +1,497 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This test script joins Earth and pokes some stuff
|
||||
|
||||
TEST_NETWORK=8056c2e21c000001
|
||||
RUN_LENGTH=30
|
||||
TEST_FINISHED=false
|
||||
ZTO_VER=$(git describe --tags $(git rev-list --tags --max-count=1))
|
||||
ZTO_COMMIT=$(git rev-parse HEAD)
|
||||
ZTO_COMMIT_SHORT=$(git rev-parse --short HEAD)
|
||||
TEST_DIR_PREFIX="$ZTO_VER-$ZTO_COMMIT_SHORT-test-results"
|
||||
|
||||
TEST_OK=0
|
||||
TEST_FAIL=1
|
||||
|
||||
echo "Performing test on: $ZTO_VER-$ZTO_COMMIT_SHORT"
|
||||
TEST_FILEPATH_PREFIX="$TEST_DIR_PREFIX/$ZTO_COMMIT_SHORT"
|
||||
mkdir $TEST_DIR_PREFIX
|
||||
|
||||
# How long we will wait for ZT to come online before considering it a failure
|
||||
MAX_WAIT_SECS=30
|
||||
|
||||
ZT_PORT_NODE_1=9996
|
||||
ZT_PORT_NODE_2=9997
|
||||
|
||||
################################################################################
|
||||
# Multi-node connectivity and performance test #
|
||||
################################################################################
|
||||
|
||||
test() {
|
||||
|
||||
echo -e "\nPerforming pre-flight checks"
|
||||
|
||||
check_exit_on_invalid_identity
|
||||
|
||||
echo -e "\nRunning test for $RUN_LENGTH seconds"
|
||||
|
||||
export NS1="ip netns exec ns1"
|
||||
export NS2="ip netns exec ns2"
|
||||
|
||||
export ZT1="$NS1 ./zerotier-cli -p9996 -D$(pwd)/node1"
|
||||
# Specify custom port on one node to ensure that feature works
|
||||
export ZT2="$NS2 ./zerotier-cli -p9997 -D$(pwd)/node2"
|
||||
|
||||
echo -e "\nSetting up network namespaces..."
|
||||
echo "Setting up ns1"
|
||||
|
||||
ip netns add ns1
|
||||
$NS1 ip link set dev lo up
|
||||
ip link add veth0 type veth peer name veth1
|
||||
ip link set veth1 netns ns1
|
||||
ip addr add 192.168.0.1/24 dev veth0
|
||||
ip link set dev veth0 up
|
||||
|
||||
$NS1 ip addr add 192.168.0.2/24 dev veth1
|
||||
$NS1 ip link set dev veth1 up
|
||||
|
||||
# Add default route
|
||||
$NS1 ip route add default via 192.168.0.1
|
||||
|
||||
iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 \
|
||||
-o eth0 -j MASQUERADE
|
||||
iptables -A FORWARD -i eth0 -o veth0 -j ACCEPT
|
||||
iptables -A FORWARD -o eth0 -i veth0 -j ACCEPT
|
||||
|
||||
echo "Setting up ns2"
|
||||
ip netns add ns2
|
||||
$NS2 ip link set dev lo up
|
||||
ip link add veth2 type veth peer name veth3
|
||||
ip link set veth3 netns ns2
|
||||
ip addr add 192.168.1.1/24 dev veth2
|
||||
ip link set dev veth2 up
|
||||
|
||||
$NS2 ip addr add 192.168.1.2/24 dev veth3
|
||||
$NS2 ip link set dev veth3 up
|
||||
$NS2 ip route add default via 192.168.1.1
|
||||
|
||||
iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 \
|
||||
-o eth0 -j MASQUERADE
|
||||
iptables -A FORWARD -i eth0 -o veth2 -j ACCEPT
|
||||
iptables -A FORWARD -o eth0 -i veth2 -j ACCEPT
|
||||
|
||||
# Allow forwarding
|
||||
sysctl -w net.ipv4.ip_forward=1
|
||||
|
||||
################################################################################
|
||||
# Memory Leak Check #
|
||||
################################################################################
|
||||
|
||||
export FILENAME_MEMORY_LOG="$TEST_FILEPATH_PREFIX-memory.log"
|
||||
|
||||
echo -e "\nStarting a ZeroTier instance in each namespace..."
|
||||
|
||||
export time_test_start=$(date +%s)
|
||||
|
||||
# Spam the CLI as ZeroTier is starting
|
||||
spam_cli 100
|
||||
|
||||
echo "Starting memory leak check"
|
||||
$NS1 sudo valgrind --demangle=yes --exit-on-first-error=yes \
|
||||
--error-exitcode=1 \
|
||||
--xml=yes \
|
||||
--xml-file=$FILENAME_MEMORY_LOG \
|
||||
--leak-check=full \
|
||||
./zerotier-one node1 -p$ZT_PORT_NODE_1 -U >>node_1.log 2>&1 &
|
||||
|
||||
# Second instance, not run in memory profiler
|
||||
# Don't set up internet access until _after_ zerotier is running
|
||||
# This has been a source of stuckness in the past.
|
||||
$NS2 ip addr del 192.168.1.2/24 dev veth3
|
||||
$NS2 sudo ./zerotier-one node2 -U -p$ZT_PORT_NODE_2 >>node_2.log 2>&1 &
|
||||
|
||||
sleep 10; # New HTTP control plane is a bit sluggish, so we delay here
|
||||
|
||||
check_bind_to_correct_ports $ZT_PORT_NODE_1
|
||||
check_bind_to_correct_ports $ZT_PORT_NODE_2
|
||||
|
||||
$NS2 ip addr add 192.168.1.2/24 dev veth3
|
||||
$NS2 ip route add default via 192.168.1.1
|
||||
|
||||
echo -e "\nPing from host to namespaces"
|
||||
|
||||
ping -c 3 192.168.0.1
|
||||
ping -c 3 192.168.1.1
|
||||
|
||||
echo -e "\nPing from namespace to host"
|
||||
|
||||
$NS1 ping -c 3 192.168.0.1
|
||||
$NS1 ping -c 3 192.168.0.1
|
||||
$NS2 ping -c 3 192.168.0.2
|
||||
$NS2 ping -c 3 192.168.0.2
|
||||
|
||||
echo -e "\nPing from ns1 to ns2"
|
||||
|
||||
$NS1 ping -c 3 192.168.0.1
|
||||
|
||||
echo -e "\nPing from ns2 to ns1"
|
||||
|
||||
$NS2 ping -c 3 192.168.0.1
|
||||
|
||||
################################################################################
|
||||
# Online Check #
|
||||
################################################################################
|
||||
|
||||
echo "Waiting for ZeroTier to come online before attempting test..."
|
||||
node1_online=false
|
||||
node2_online=false
|
||||
both_instances_online=false
|
||||
time_zt_node1_start=$(date +%s)
|
||||
time_zt_node2_start=$(date +%s)
|
||||
|
||||
for ((s = 0; s <= $MAX_WAIT_SECS; s++)); do
|
||||
node1_online="$($ZT1 -j info | jq '.online' 2>/dev/null)"
|
||||
node2_online="$($ZT2 -j info | jq '.online' 2>/dev/null)"
|
||||
echo "Checking for online status: try #$s, node1:$node1_online, node2:$node2_online"
|
||||
if [[ "$node2_online" == "true" && "$node1_online" == "true" ]]; then
|
||||
export both_instances_online=true
|
||||
export time_to_both_nodes_online=$(date +%s)
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
echo -e "\n\nContents of ZeroTier home paths:"
|
||||
|
||||
ls -lga node1
|
||||
tree node1
|
||||
ls -lga node2
|
||||
tree node2
|
||||
|
||||
echo -e "\n\nRunning ZeroTier processes:"
|
||||
echo -e "\nNode 1:\n"
|
||||
$NS1 ps aux | grep zerotier-one
|
||||
echo -e "\nNode 2:\n"
|
||||
$NS2 ps aux | grep zerotier-one
|
||||
|
||||
echo -e "\n\nStatus of each instance:"
|
||||
|
||||
echo -e "\n\nNode 1:\n"
|
||||
$ZT1 status
|
||||
echo -e "\n\nNode 2:\n"
|
||||
$ZT2 status
|
||||
|
||||
if [[ "$both_instances_online" != "true" ]]; then
|
||||
exit_test_and_generate_report $TEST_FAIL "one or more nodes failed to come online"
|
||||
fi
|
||||
|
||||
echo -e "\nJoining networks"
|
||||
|
||||
$ZT1 join $TEST_NETWORK
|
||||
$ZT2 join $TEST_NETWORK
|
||||
|
||||
sleep 10
|
||||
|
||||
node1_ip4=$($ZT1 get $TEST_NETWORK ip4)
|
||||
node2_ip4=$($ZT2 get $TEST_NETWORK ip4)
|
||||
|
||||
echo "node1_ip4=$node1_ip4"
|
||||
echo "node2_ip4=$node2_ip4"
|
||||
|
||||
echo -e "\nPinging each node"
|
||||
|
||||
PING12_FILENAME="$TEST_FILEPATH_PREFIX-ping-1-to-2.txt"
|
||||
PING21_FILENAME="$TEST_FILEPATH_PREFIX-ping-2-to-1.txt"
|
||||
|
||||
$NS1 ping -c 16 $node2_ip4 >$PING12_FILENAME
|
||||
$NS2 ping -c 16 $node1_ip4 >$PING21_FILENAME
|
||||
|
||||
ping_loss_percent_1_to_2=$(cat $PING12_FILENAME |
|
||||
grep "packet loss" | awk '{print $6}' | sed 's/%//')
|
||||
ping_loss_percent_2_to_1=$(cat $PING21_FILENAME |
|
||||
grep "packet loss" | awk '{print $6}' | sed 's/%//')
|
||||
|
||||
# Normalize loss value
|
||||
export ping_loss_percent_1_to_2=$(echo "scale=2; $ping_loss_percent_1_to_2/100.0" | bc)
|
||||
export ping_loss_percent_2_to_1=$(echo "scale=2; $ping_loss_percent_2_to_1/100.0" | bc)
|
||||
|
||||
################################################################################
|
||||
# CLI Check #
|
||||
################################################################################
|
||||
|
||||
echo "Testing basic CLI functionality..."
|
||||
|
||||
spam_cli 10
|
||||
|
||||
$ZT1 join $TEST_NETWORK
|
||||
|
||||
$ZT1 -h
|
||||
$ZT1 -v
|
||||
$ZT1 status
|
||||
$ZT1 info
|
||||
$ZT1 listnetworks
|
||||
$ZT1 peers
|
||||
$ZT1 listpeers
|
||||
|
||||
$ZT1 -j status
|
||||
$ZT1 -j info
|
||||
$ZT1 -j listnetworks
|
||||
$ZT1 -j peers
|
||||
$ZT1 -j listpeers
|
||||
|
||||
$ZT1 dump
|
||||
|
||||
$ZT1 get $TEST_NETWORK allowDNS
|
||||
$ZT1 get $TEST_NETWORK allowDefault
|
||||
$ZT1 get $TEST_NETWORK allowGlobal
|
||||
$ZT1 get $TEST_NETWORK allowManaged
|
||||
$ZT1 get $TEST_NETWORK bridge
|
||||
$ZT1 get $TEST_NETWORK broadcastEnabled
|
||||
$ZT1 get $TEST_NETWORK dhcp
|
||||
$ZT1 get $TEST_NETWORK id
|
||||
$ZT1 get $TEST_NETWORK mac
|
||||
$ZT1 get $TEST_NETWORK mtu
|
||||
$ZT1 get $TEST_NETWORK name
|
||||
$ZT1 get $TEST_NETWORK netconfRevision
|
||||
$ZT1 get $TEST_NETWORK nwid
|
||||
$ZT1 get $TEST_NETWORK portDeviceName
|
||||
$ZT1 get $TEST_NETWORK portError
|
||||
$ZT1 get $TEST_NETWORK status
|
||||
$ZT1 get $TEST_NETWORK type
|
||||
|
||||
# Test an invalid command
|
||||
$ZT1 get $TEST_NETWORK derpderp
|
||||
|
||||
# TODO: Validate JSON
|
||||
|
||||
# Performance Test
|
||||
|
||||
export FILENAME_PERF_JSON="$TEST_FILEPATH_PREFIX-iperf.json"
|
||||
|
||||
echo -e "\nBeginning performance test:"
|
||||
|
||||
echo -e "\nStarting server:"
|
||||
|
||||
echo "$NS1 iperf3 -s &"
|
||||
sleep 1
|
||||
|
||||
echo -e "\nStarting client:"
|
||||
sleep 1
|
||||
|
||||
echo "$NS2 iperf3 --json -c $node1_ip4 > $FILENAME_PERF_JSON"
|
||||
|
||||
cat $FILENAME_PERF_JSON
|
||||
|
||||
# Let ZeroTier idle long enough for various timers
|
||||
|
||||
echo -e "\nIdling ZeroTier for $RUN_LENGTH seconds..."
|
||||
sleep $RUN_LENGTH
|
||||
|
||||
echo -e "\nLeaving networks"
|
||||
|
||||
$ZT1 leave $TEST_NETWORK
|
||||
$ZT2 leave $TEST_NETWORK
|
||||
|
||||
sleep 5
|
||||
|
||||
exit_test_and_generate_report $TEST_OK "completed test"
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Generate report #
|
||||
################################################################################
|
||||
|
||||
exit_test_and_generate_report() {
|
||||
|
||||
echo -e "\nStopping memory check..."
|
||||
sudo pkill -15 -f valgrind
|
||||
sleep 10
|
||||
|
||||
time_test_end=$(date +%s)
|
||||
|
||||
echo "Exiting test with reason: $2 ($1)"
|
||||
|
||||
# Collect ZeroTier dump files
|
||||
|
||||
echo -e "\nCollecting ZeroTier dump files"
|
||||
|
||||
node1_id=$($ZT1 -j status | jq -r .address)
|
||||
node2_id=$($ZT2 -j status | jq -r .address)
|
||||
|
||||
$ZT1 dump
|
||||
mv zerotier_dump.txt "$TEST_FILEPATH_PREFIX-node-dump-$node1_id.txt"
|
||||
|
||||
$ZT2 dump
|
||||
mv zerotier_dump.txt "$TEST_FILEPATH_PREFIX-node-dump-$node2_id.txt"
|
||||
|
||||
# Copy ZeroTier stdout/stderr logs
|
||||
|
||||
cp node_1.log "$TEST_FILEPATH_PREFIX-node-log-$node1_id.txt"
|
||||
cp node_2.log "$TEST_FILEPATH_PREFIX-node-log-$node2_id.txt"
|
||||
|
||||
# Generate report
|
||||
|
||||
cat $FILENAME_MEMORY_LOG
|
||||
|
||||
DEFINITELY_LOST=$(xmlstarlet sel -t -v '/valgrindoutput/error/xwhat' \
|
||||
$FILENAME_MEMORY_LOG | grep "definitely" | awk '{print $1;}')
|
||||
POSSIBLY_LOST=$(xmlstarlet sel -t -v '/valgrindoutput/error/xwhat' \
|
||||
$FILENAME_MEMORY_LOG | grep "possibly" | awk '{print $1;}')
|
||||
|
||||
# Generate coverage report artifact and summary
|
||||
|
||||
FILENAME_COVERAGE_JSON="$TEST_FILEPATH_PREFIX-coverage.json"
|
||||
FILENAME_COVERAGE_HTML="$TEST_FILEPATH_PREFIX-coverage.html"
|
||||
|
||||
echo -e "\nGenerating coverage test report..."
|
||||
|
||||
gcovr -r . --exclude ext --json-summary $FILENAME_COVERAGE_JSON \
|
||||
--html >$FILENAME_COVERAGE_HTML
|
||||
|
||||
cat $FILENAME_COVERAGE_JSON
|
||||
|
||||
COVERAGE_LINE_COVERED=$(cat $FILENAME_COVERAGE_JSON | jq .line_covered)
|
||||
COVERAGE_LINE_TOTAL=$(cat $FILENAME_COVERAGE_JSON | jq .line_total)
|
||||
COVERAGE_LINE_PERCENT=$(cat $FILENAME_COVERAGE_JSON | jq .line_percent)
|
||||
|
||||
COVERAGE_LINE_COVERED="${COVERAGE_LINE_COVERED:-0}"
|
||||
COVERAGE_LINE_TOTAL="${COVERAGE_LINE_TOTAL:-0}"
|
||||
COVERAGE_LINE_PERCENT="${COVERAGE_LINE_PERCENT:-0}"
|
||||
|
||||
# Default values
|
||||
|
||||
DEFINITELY_LOST="${DEFINITELY_LOST:-0}"
|
||||
POSSIBLY_LOST="${POSSIBLY_LOST:-0}"
|
||||
ping_loss_percent_1_to_2="${ping_loss_percent_1_to_2:-100.0}"
|
||||
ping_loss_percent_2_to_1="${ping_loss_percent_2_to_1:-100.0}"
|
||||
time_to_both_nodes_online="${time_to_both_nodes_online:--1}"
|
||||
|
||||
# Summarize and emit json for trend reporting
|
||||
|
||||
FILENAME_SUMMARY="$TEST_FILEPATH_PREFIX-summary.json"
|
||||
|
||||
time_length_test=$((time_test_end - time_test_start))
|
||||
if [[ $time_to_both_nodes_online != -1 ]];
|
||||
then
|
||||
time_to_both_nodes_online=$((time_to_both_nodes_online - time_test_start))
|
||||
fi
|
||||
#time_length_zt_join=$((time_zt_join_end-time_zt_join_start))
|
||||
#time_length_zt_leave=$((time_zt_leave_end-time_zt_leave_start))
|
||||
#time_length_zt_can_still_ping=$((time_zt_can_still_ping-time_zt_leave_start))
|
||||
|
||||
summary=$(
|
||||
cat <<EOF
|
||||
{
|
||||
"version":"$ZTO_VER",
|
||||
"commit":"$ZTO_COMMIT",
|
||||
"arch_m":"$(uname -m)",
|
||||
"arch_a":"$(uname -a)",
|
||||
"binary_size":"$(stat -c %s zerotier-one)",
|
||||
"time_length_test":$time_length_test,
|
||||
"time_to_both_nodes_online":$time_to_both_nodes_online,
|
||||
"num_possible_bytes_lost": $POSSIBLY_LOST,
|
||||
"num_definite_bytes_lost": $DEFINITELY_LOST,
|
||||
"num_bad_formattings": $POSSIBLY_LOST,
|
||||
"coverage_lines_covered": $COVERAGE_LINE_COVERED,
|
||||
"coverage_lines_total": $COVERAGE_LINE_TOTAL,
|
||||
"coverage_lines_percent": $COVERAGE_LINE_PERCENT,
|
||||
"ping_loss_percent_1_to_2": $ping_loss_percent_1_to_2,
|
||||
"ping_loss_percent_2_to_1": $ping_loss_percent_2_to_1,
|
||||
"test_exit_code": $1,
|
||||
"test_exit_reason":"$2"
|
||||
}
|
||||
EOF
|
||||
)
|
||||
|
||||
echo $summary >$FILENAME_SUMMARY
|
||||
cat $FILENAME_SUMMARY
|
||||
|
||||
exit 0
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# CLI Check #
|
||||
################################################################################
|
||||
|
||||
spam_cli() {
|
||||
echo "Spamming CLI..."
|
||||
# Rapidly spam the CLI with joins/leaves
|
||||
|
||||
MAX_TRIES="${1:-10}"
|
||||
|
||||
for ((s = 0; s <= MAX_TRIES; s++)); do
|
||||
$ZT1 status
|
||||
$ZT2 status
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
SPAM_TRIES=128
|
||||
|
||||
for ((s = 0; s <= SPAM_TRIES; s++)); do
|
||||
$ZT1 join $TEST_NETWORK
|
||||
done
|
||||
|
||||
for ((s = 0; s <= SPAM_TRIES; s++)); do
|
||||
$ZT1 leave $TEST_NETWORK
|
||||
done
|
||||
|
||||
for ((s = 0; s <= SPAM_TRIES; s++)); do
|
||||
$ZT1 leave $TEST_NETWORK
|
||||
$ZT1 join $TEST_NETWORK
|
||||
done
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Check for proper exit on load of invalid identity #
|
||||
################################################################################
|
||||
|
||||
check_exit_on_invalid_identity() {
|
||||
echo "Checking ZeroTier exits on invalid identity..."
|
||||
mkdir -p $(pwd)/exit_test
|
||||
ZT1="sudo ./zerotier-one -p9999 $(pwd)/exit_test"
|
||||
echo "asdfasdfasdfasdf" > $(pwd)/exit_test/identity.secret
|
||||
echo "asdfasdfasdfasdf" > $(pwd)/exit_test/authtoken.secret
|
||||
|
||||
echo "Launch ZeroTier with an invalid identity"
|
||||
$ZT1 &
|
||||
my_pid=$!
|
||||
|
||||
echo "Waiting 5 seconds"
|
||||
sleep 5
|
||||
|
||||
# check if process is running
|
||||
kill -0 $my_pid
|
||||
if [ $? -eq 0 ]; then
|
||||
exit_test_and_generate_report $TEST_FAIL "Exit test FAILED: Process still running after being fed an invalid identity"
|
||||
fi
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Check that we're binding to the primary port for TCP/TCP6/UDP #
|
||||
################################################################################
|
||||
|
||||
check_bind_to_correct_ports() {
|
||||
PORT_NUMBER=$1
|
||||
echo "Checking bound ports:"
|
||||
sudo netstat -anp | grep "$PORT_NUMBER" | grep "zerotier"
|
||||
if [[ $(sudo netstat -anp | grep "$PORT_NUMBER" | grep "zerotier" | grep "tcp") ]];
|
||||
then
|
||||
:
|
||||
else
|
||||
exit_test_and_generate_report $TEST_FAIL "ZeroTier did not bind to tcp/$1"
|
||||
fi
|
||||
if [[ $(sudo netstat -anp | grep "$PORT_NUMBER" | grep "zerotier" | grep "tcp6") ]];
|
||||
then
|
||||
:
|
||||
else
|
||||
exit_test_and_generate_report $TEST_FAIL "ZeroTier did not bind to tcp6/$1"
|
||||
fi
|
||||
if [[ $(sudo netstat -anp | grep "$PORT_NUMBER" | grep "zerotier" | grep "udp") ]];
|
||||
then
|
||||
:
|
||||
else
|
||||
exit_test_and_generate_report $TEST_FAIL "ZeroTier did not bind to udp/$1"
|
||||
fi
|
||||
}
|
||||
|
||||
test "$@"
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
################################################################################
|
||||
# Set exit code depending on tool reports #
|
||||
################################################################################
|
||||
|
||||
DEFINITELY_LOST=$(cat *test-results/*summary.json | jq .num_definite_bytes_lost)
|
||||
EXIT_CODE=$(cat *test-results/*summary.json | jq .exit_code)
|
||||
EXIT_REASON=$(cat *test-results/*summary.json | jq .exit_reason)
|
||||
|
||||
cat *test-results/*summary.json
|
||||
|
||||
echo -e "\nBytes of memory definitely lost: $DEFINITELY_LOST"
|
||||
|
||||
if [[ "$DEFINITELY_LOST" -gt 0 ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Catch-all for other non-zero exit codes
|
||||
|
||||
if [[ "$EXIT_CODE" -gt 0 ]]; then
|
||||
echo "Test failed: $EXIT_REASON"
|
||||
exit 1
|
||||
fi
|
||||
@@ -0,0 +1,56 @@
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build_ubuntu:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: gitconfig
|
||||
run: |
|
||||
git config --global core.autocrlf input
|
||||
|
||||
- name: checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Rust
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
toolchain: stable
|
||||
targets: x86_64-unknown-linux-gnu
|
||||
components: rustfmt, clippy
|
||||
|
||||
- name: Set up cargo cache
|
||||
uses: Swatinem/rust-cache@v2
|
||||
continue-on-error: false
|
||||
with:
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('rustybits//Cargo.lock') }}
|
||||
shared-key: ${{ runner.os }}-cargo-
|
||||
workspaces: |
|
||||
rustybits/
|
||||
|
||||
- name: validate-1m-linux
|
||||
env:
|
||||
CC: 'gcc'
|
||||
CXX: 'g++'
|
||||
BRANCH: ${{ github.ref_name }}
|
||||
run: |
|
||||
sudo apt update && sudo apt install -y valgrind xmlstarlet gcovr iperf3 tree
|
||||
make one ZT_COVERAGE=1 ZT_TRACE=1
|
||||
sudo chmod +x ./.github/workflows/validate-linux.sh
|
||||
sudo ./.github/workflows/validate-linux.sh
|
||||
|
||||
- name: Archive test results
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{github.sha}}-test-results
|
||||
path: "*test-results*"
|
||||
|
||||
- name: final-report
|
||||
run: |
|
||||
sudo chmod +x ./.github/workflows/validate-report.sh
|
||||
sudo ./.github/workflows/validate-report.sh
|
||||
|
||||
+20
-6
@@ -6,16 +6,19 @@
|
||||
/zerotier
|
||||
/nltest
|
||||
|
||||
# IDE stuff
|
||||
# IDE and dev tool stuff
|
||||
/.idea
|
||||
/.nova
|
||||
/compile_commands.json
|
||||
/.claude
|
||||
/.aider
|
||||
|
||||
# OS-created garbage files from various platforms
|
||||
.DS_Store
|
||||
.Apple*
|
||||
Thumbs.db
|
||||
@eaDir
|
||||
lost+found
|
||||
._*
|
||||
|
||||
# Windows build droppings
|
||||
@@ -58,6 +61,9 @@ zt1-src.tar.gz
|
||||
/MacEthernetTapAgent
|
||||
|
||||
# Miscellaneous temporaries, build files, etc.
|
||||
ext/installfiles/windows/*.back*.aip
|
||||
tcp-proxy/tcp-proxy
|
||||
rustybits/target
|
||||
*.log
|
||||
*.opensdf
|
||||
*.user
|
||||
@@ -85,6 +91,7 @@ debian/zerotier-one*.debhelper
|
||||
debian/*.log
|
||||
debian/zerotier-one.substvars
|
||||
root-watcher/config.json
|
||||
build/
|
||||
|
||||
# Java/Android/JNI build droppings
|
||||
java/obj/
|
||||
@@ -100,8 +107,8 @@ windows/WinUI/bin/
|
||||
windows/ZeroTierOne/Debug/
|
||||
/ext/installfiles/windows/chocolatey/zerotier-one/*.nupkg
|
||||
|
||||
|
||||
# Miscellaneous mac/Xcode droppings
|
||||
.DS_Store
|
||||
.Trashes
|
||||
*.swp
|
||||
*~.nib
|
||||
@@ -124,16 +131,23 @@ attic/world/mkworld
|
||||
workspace/
|
||||
workspace2/
|
||||
zeroidc/target/
|
||||
tcp-proxy/target
|
||||
|
||||
#snapcraft specifics
|
||||
# Snapcraft Linux build stuff
|
||||
/parts/
|
||||
/stage/
|
||||
/prime/
|
||||
|
||||
*.snap
|
||||
|
||||
.snapcraft
|
||||
__pycache__
|
||||
*.pyc
|
||||
*_source.tar.bz2
|
||||
snap/.snapcraft
|
||||
snap/.snapcraft
|
||||
build/
|
||||
|
||||
# Local dependency bootstrap output (scripts/bootstrap-deps.sh): the install
|
||||
# prefix and the build/clone scratch dir. Large + host-specific; never commit.
|
||||
.deps/
|
||||
.deps-build/
|
||||
|
||||
.claude/*.local.*
|
||||
-75
@@ -1,75 +0,0 @@
|
||||
# Authors and Third Party Code Licensing Information
|
||||
|
||||
## Primary Authors
|
||||
|
||||
* ZeroTier Core and ZeroTier One virtual networking service<br>
|
||||
Adam Ierymenko / adam.ierymenko@zerotier.com
|
||||
Joseph Henry / joseph.henry@zerotier.com (QoS and multipath)
|
||||
|
||||
* Java JNI Interface to enable Android application development, and Android app itself (code for that is elsewhere)<br>
|
||||
Grant Limberg / glimberg@gmail.com
|
||||
|
||||
* ZeroTier SDK (formerly known as Network Containers)<br>
|
||||
Joseph Henry / joseph.henry@zerotier.com
|
||||
|
||||
## Third Party Contributors
|
||||
|
||||
* A number of fixes and improvements to the new controller, other stuff.<br>
|
||||
Kees Bos / https://github.com/keesbos/
|
||||
|
||||
* Debugging and testing, OpenWRT support fixes.<br>
|
||||
Moritz Warning / moritzwarning@web.de
|
||||
|
||||
* Debian GNU/Linux packaging, manual pages, and license compliance edits.<br>
|
||||
Ben Finney <ben+zerotier@benfinney.id.au>
|
||||
|
||||
* Several others made smaller contributions, which GitHub tracks here:<br>
|
||||
https://github.com/zerotier/ZeroTierOne/graphs/contributors/
|
||||
|
||||
## Third-Party Code
|
||||
|
||||
ZeroTier includes the following third party code, either in ext/ or incorporated into the ZeroTier core. This third party code remains licensed under its original license and is not subject to ZeroTier's BSL license.
|
||||
|
||||
* LZ4 compression algorithm by Yann Collet
|
||||
|
||||
* Files: node/Packet.cpp (bundled within anonymous namespace)
|
||||
* Home page: http://code.google.com/p/lz4/
|
||||
* License grant: BSD 2-clause
|
||||
|
||||
* http-parser by Joyent, Inc. (many authors)
|
||||
|
||||
* Files: ext/http-parser/*
|
||||
* Home page: https://github.com/joyent/http-parser/
|
||||
* License grant: MIT/Expat
|
||||
|
||||
* C++11 json (nlohmann/json) by Niels Lohmann
|
||||
|
||||
* Files: ext/json/*
|
||||
* Home page: https://github.com/nlohmann/json
|
||||
* License grant: MIT
|
||||
|
||||
* tap-windows6 by the OpenVPN project
|
||||
|
||||
* Files: windows/TapDriver6/*
|
||||
* Home page: https://github.com/OpenVPN/tap-windows6/
|
||||
* License grant: GNU GPL v2
|
||||
* ZeroTier Modifications: change name of driver to ZeroTier, add ioctl() to get L2 multicast memberships (source is in ext/ and modifications inherit GPL)
|
||||
|
||||
* Salsa20 stream cipher, Curve25519 elliptic curve cipher, Ed25519 digital signature algorithm, and Poly1305 MAC algorithm, all by Daniel J. Bernstein
|
||||
|
||||
* Files: node/Salsa20.* node/C25519.* node/Poly1305.*
|
||||
* Home page: http://cr.yp.to/
|
||||
* License grant: public domain
|
||||
* ZeroTier Modifications: slight cryptographically-irrelevant modifications for inclusion into ZeroTier core
|
||||
|
||||
* MiniUPNPC and libnatpmp by Thomas Bernard
|
||||
|
||||
* Files: ext/libnatpmp/* ext/miniupnpc/*
|
||||
* Home page: http://miniupnp.free.fr/
|
||||
* License grant: BSD attribution no-endorsement
|
||||
|
||||
* cpp-httplib by yhirose
|
||||
|
||||
* Files: ext/cpp-httplib/*
|
||||
* Home page: https://github.com/yhirose/cpp-httplib
|
||||
* License grant: MIT
|
||||
@@ -0,0 +1,28 @@
|
||||
# Central Controller build dependencies for macOS development.
|
||||
#
|
||||
# brew bundle # install the deps below
|
||||
# ZT_CONTROLLER_DEPS=1 scripts/bootstrap-deps.sh # build the two pinned controller deps (full OTel + google-cloud-cpp)
|
||||
#
|
||||
# The two version-sensitive C++ libraries (opentelemetry-cpp, google-cloud-cpp)
|
||||
# are NOT taken from Homebrew -- they are pinned and built from source by
|
||||
# scripts/bootstrap-deps.sh so every dev/CI machine uses the same versions
|
||||
# (the role conda previously filled). Everything below is stable enough to take
|
||||
# from Homebrew.
|
||||
|
||||
brew "cmake"
|
||||
brew "ninja"
|
||||
brew "pkg-config"
|
||||
brew "rustup-init" # then: rustup-init -y && rustup default stable
|
||||
|
||||
brew "libpqxx"
|
||||
brew "libpq" # keg-only; add $(brew --prefix libpq) to CMAKE_PREFIX_PATH so find_package(PostgreSQL) resolves
|
||||
brew "hiredis"
|
||||
brew "jemalloc"
|
||||
brew "nlohmann-json"
|
||||
brew "openssl@3"
|
||||
brew "abseil"
|
||||
brew "protobuf"
|
||||
brew "grpc"
|
||||
brew "googletest" # google-cloud-cpp requires GTest/GMock at configure (builds its *_mocks libs)
|
||||
brew "curl"
|
||||
brew "inja"
|
||||
+676
-7
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"version": 3,
|
||||
"cmakeMinimumRequired": { "major": 3, "minor": 21, "patch": 0 },
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "unix-base",
|
||||
"hidden": true,
|
||||
"generator": "Unix Makefiles",
|
||||
"binaryDir": "${sourceDir}/build-${presetName}",
|
||||
"cacheVariables": {
|
||||
"CMAKE_PREFIX_PATH": "${sourceDir}/.deps",
|
||||
"CMAKE_BUILD_TYPE": "Release"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "linux-base",
|
||||
"hidden": true,
|
||||
"inherits": "unix-base",
|
||||
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" }
|
||||
},
|
||||
{
|
||||
"name": "macos-base",
|
||||
"hidden": true,
|
||||
"inherits": "unix-base",
|
||||
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" },
|
||||
"cacheVariables": {
|
||||
"CMAKE_PREFIX_PATH": "${sourceDir}/.deps;$env{HOMEBREW_PREFIX};$env{HOMEBREW_PREFIX}/opt/openssl@3;$env{HOMEBREW_PREFIX}/opt/libpq"
|
||||
}
|
||||
},
|
||||
|
||||
{ "name": "linux-release", "inherits": "linux-base", "displayName": "Linux daemon (Release)" },
|
||||
{ "name": "linux-debug", "inherits": "linux-base", "displayName": "Linux daemon (Debug)", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" } },
|
||||
{ "name": "linux-controller-release", "inherits": "linux-base", "displayName": "Linux Central Controller (Release)", "cacheVariables": { "ZT1_CENTRAL_CONTROLLER": "ON" } },
|
||||
{ "name": "linux-controller-debug", "inherits": "linux-base", "displayName": "Linux Central Controller (Debug)", "cacheVariables": { "ZT1_CENTRAL_CONTROLLER": "ON", "CMAKE_BUILD_TYPE": "Debug" } },
|
||||
{ "name": "linux-free-release", "inherits": "linux-base", "displayName": "Linux daemon, free / no controller (Release)", "cacheVariables": { "ZT_NONFREE": "OFF" } },
|
||||
{ "name": "linux-free-debug", "inherits": "linux-base", "displayName": "Linux daemon, free / no controller (Debug)", "cacheVariables": { "ZT_NONFREE": "OFF", "CMAKE_BUILD_TYPE": "Debug" } },
|
||||
|
||||
{ "name": "macos-release", "inherits": "macos-base", "displayName": "macOS daemon (Release)" },
|
||||
{ "name": "macos-debug", "inherits": "macos-base", "displayName": "macOS daemon (Debug)", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" } },
|
||||
{ "name": "macos-controller-release", "inherits": "macos-base", "displayName": "macOS Central Controller (Release)", "cacheVariables": { "ZT1_CENTRAL_CONTROLLER": "ON" } },
|
||||
{ "name": "macos-controller-debug", "inherits": "macos-base", "displayName": "macOS Central Controller (Debug)", "cacheVariables": { "ZT1_CENTRAL_CONTROLLER": "ON", "CMAKE_BUILD_TYPE": "Debug" } },
|
||||
{ "name": "macos-free-release", "inherits": "macos-base", "displayName": "macOS daemon, free / no controller (Release)", "cacheVariables": { "ZT_NONFREE": "OFF" } },
|
||||
{ "name": "macos-free-debug", "inherits": "macos-base", "displayName": "macOS daemon, free / no controller (Debug)", "cacheVariables": { "ZT_NONFREE": "OFF", "CMAKE_BUILD_TYPE": "Debug" } },
|
||||
{ "name": "macos-universal-release", "inherits": "macos-base", "displayName": "macOS universal daemon (arm64 + x86_64, Release)", "cacheVariables": { "CMAKE_OSX_ARCHITECTURES": "arm64;x86_64" } },
|
||||
{ "name": "macos-universal-debug", "inherits": "macos-base", "displayName": "macOS universal daemon (arm64 + x86_64, Debug)", "cacheVariables": { "CMAKE_OSX_ARCHITECTURES": "arm64;x86_64", "CMAKE_BUILD_TYPE": "Debug" } },
|
||||
|
||||
{
|
||||
"name": "freebsd-base",
|
||||
"hidden": true,
|
||||
"inherits": "unix-base",
|
||||
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "FreeBSD" }
|
||||
},
|
||||
{
|
||||
"name": "openbsd-base",
|
||||
"hidden": true,
|
||||
"inherits": "unix-base",
|
||||
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "OpenBSD" }
|
||||
},
|
||||
{
|
||||
"name": "netbsd-base",
|
||||
"hidden": true,
|
||||
"inherits": "unix-base",
|
||||
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "NetBSD" }
|
||||
},
|
||||
|
||||
{ "name": "freebsd-release", "inherits": "freebsd-base", "displayName": "FreeBSD daemon (Release)" },
|
||||
{ "name": "freebsd-debug", "inherits": "freebsd-base", "displayName": "FreeBSD daemon (Debug)", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" } },
|
||||
{ "name": "freebsd-free-release", "inherits": "freebsd-base", "displayName": "FreeBSD daemon, free / no controller (Release)", "cacheVariables": { "ZT_NONFREE": "OFF" } },
|
||||
{ "name": "freebsd-free-debug", "inherits": "freebsd-base", "displayName": "FreeBSD daemon, free / no controller (Debug)", "cacheVariables": { "ZT_NONFREE": "OFF", "CMAKE_BUILD_TYPE": "Debug" } },
|
||||
|
||||
{ "name": "openbsd-release", "inherits": "openbsd-base", "displayName": "OpenBSD daemon (Release)" },
|
||||
{ "name": "openbsd-debug", "inherits": "openbsd-base", "displayName": "OpenBSD daemon (Debug)", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" } },
|
||||
{ "name": "openbsd-free-release", "inherits": "openbsd-base", "displayName": "OpenBSD daemon, free / no controller (Release)", "cacheVariables": { "ZT_NONFREE": "OFF" } },
|
||||
{ "name": "openbsd-free-debug", "inherits": "openbsd-base", "displayName": "OpenBSD daemon, free / no controller (Debug)", "cacheVariables": { "ZT_NONFREE": "OFF", "CMAKE_BUILD_TYPE": "Debug" } },
|
||||
|
||||
{ "name": "netbsd-release", "inherits": "netbsd-base", "displayName": "NetBSD daemon (Release)" },
|
||||
{ "name": "netbsd-debug", "inherits": "netbsd-base", "displayName": "NetBSD daemon (Debug)", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" } },
|
||||
{ "name": "netbsd-free-release", "inherits": "netbsd-base", "displayName": "NetBSD daemon, free / no controller (Release)", "cacheVariables": { "ZT_NONFREE": "OFF" } },
|
||||
{ "name": "netbsd-free-debug", "inherits": "netbsd-base", "displayName": "NetBSD daemon, free / no controller (Debug)", "cacheVariables": { "ZT_NONFREE": "OFF", "CMAKE_BUILD_TYPE": "Debug" } },
|
||||
|
||||
{
|
||||
"name": "windows-x64",
|
||||
"displayName": "Windows x64 daemon (MSVC + vcpkg)",
|
||||
"generator": "Visual Studio 17 2022",
|
||||
"architecture": "x64",
|
||||
"binaryDir": "${sourceDir}/build-${presetName}",
|
||||
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" },
|
||||
"cacheVariables": {
|
||||
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
|
||||
"VCPKG_TARGET_TRIPLET": "x64-windows-static",
|
||||
"CMAKE_PREFIX_PATH": "${sourceDir}/.deps/x64"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "windows-arm64",
|
||||
"inherits": "windows-x64",
|
||||
"displayName": "Windows ARM64 daemon (MSVC + vcpkg)",
|
||||
"architecture": "ARM64",
|
||||
"cacheVariables": { "VCPKG_TARGET_TRIPLET": "arm64-windows-static", "CMAKE_PREFIX_PATH": "${sourceDir}/.deps/ARM64" }
|
||||
},
|
||||
{
|
||||
"name": "windows-x86",
|
||||
"inherits": "windows-x64",
|
||||
"displayName": "Windows x86 daemon (MSVC + vcpkg)",
|
||||
"architecture": "Win32",
|
||||
"cacheVariables": { "VCPKG_TARGET_TRIPLET": "x86-windows-static", "CMAKE_PREFIX_PATH": "${sourceDir}/.deps/Win32" }
|
||||
},
|
||||
{
|
||||
"name": "windows-x64-free",
|
||||
"inherits": "windows-x64",
|
||||
"displayName": "Windows x64 daemon (free / ZT_NONFREE=OFF, no bundled controller)",
|
||||
"cacheVariables": { "ZT_NONFREE": "OFF" }
|
||||
},
|
||||
{
|
||||
"name": "windows-arm64-free",
|
||||
"inherits": "windows-arm64",
|
||||
"displayName": "Windows ARM64 daemon (free / ZT_NONFREE=OFF, no bundled controller)",
|
||||
"cacheVariables": { "ZT_NONFREE": "OFF" }
|
||||
},
|
||||
{
|
||||
"name": "windows-x86-free",
|
||||
"inherits": "windows-x86",
|
||||
"displayName": "Windows x86 daemon (free / ZT_NONFREE=OFF, no bundled controller)",
|
||||
"cacheVariables": { "ZT_NONFREE": "OFF" }
|
||||
}
|
||||
],
|
||||
"buildPresets": [
|
||||
{ "name": "linux-release", "configurePreset": "linux-release" },
|
||||
{ "name": "linux-debug", "configurePreset": "linux-debug" },
|
||||
{ "name": "linux-controller-release", "configurePreset": "linux-controller-release" },
|
||||
{ "name": "linux-controller-debug", "configurePreset": "linux-controller-debug" },
|
||||
{ "name": "linux-free-release", "configurePreset": "linux-free-release" },
|
||||
{ "name": "linux-free-debug", "configurePreset": "linux-free-debug" },
|
||||
{ "name": "macos-release", "configurePreset": "macos-release" },
|
||||
{ "name": "macos-debug", "configurePreset": "macos-debug" },
|
||||
{ "name": "macos-controller-release", "configurePreset": "macos-controller-release" },
|
||||
{ "name": "macos-controller-debug", "configurePreset": "macos-controller-debug" },
|
||||
{ "name": "macos-free-release", "configurePreset": "macos-free-release" },
|
||||
{ "name": "macos-free-debug", "configurePreset": "macos-free-debug" },
|
||||
{ "name": "macos-universal-release", "configurePreset": "macos-universal-release" },
|
||||
{ "name": "macos-universal-debug", "configurePreset": "macos-universal-debug" },
|
||||
{ "name": "freebsd-release", "configurePreset": "freebsd-release" },
|
||||
{ "name": "freebsd-debug", "configurePreset": "freebsd-debug" },
|
||||
{ "name": "freebsd-free-release", "configurePreset": "freebsd-free-release" },
|
||||
{ "name": "freebsd-free-debug", "configurePreset": "freebsd-free-debug" },
|
||||
{ "name": "openbsd-release", "configurePreset": "openbsd-release" },
|
||||
{ "name": "openbsd-debug", "configurePreset": "openbsd-debug" },
|
||||
{ "name": "openbsd-free-release", "configurePreset": "openbsd-free-release" },
|
||||
{ "name": "openbsd-free-debug", "configurePreset": "openbsd-free-debug" },
|
||||
{ "name": "netbsd-release", "configurePreset": "netbsd-release" },
|
||||
{ "name": "netbsd-debug", "configurePreset": "netbsd-debug" },
|
||||
{ "name": "netbsd-free-release", "configurePreset": "netbsd-free-release" },
|
||||
{ "name": "netbsd-free-debug", "configurePreset": "netbsd-free-debug" },
|
||||
{ "name": "windows-x64-release", "configurePreset": "windows-x64", "configuration": "Release" },
|
||||
{ "name": "windows-x64-debug", "configurePreset": "windows-x64", "configuration": "Debug" },
|
||||
{ "name": "windows-arm64-release", "configurePreset": "windows-arm64", "configuration": "Release" },
|
||||
{ "name": "windows-arm64-debug", "configurePreset": "windows-arm64", "configuration": "Debug" },
|
||||
{ "name": "windows-x86-release", "configurePreset": "windows-x86", "configuration": "Release" },
|
||||
{ "name": "windows-x86-debug", "configurePreset": "windows-x86", "configuration": "Debug" },
|
||||
{ "name": "windows-x64-free-release", "configurePreset": "windows-x64-free", "configuration": "Release" },
|
||||
{ "name": "windows-x64-free-debug", "configurePreset": "windows-x64-free", "configuration": "Debug" },
|
||||
{ "name": "windows-arm64-free-release", "configurePreset": "windows-arm64-free", "configuration": "Release" },
|
||||
{ "name": "windows-arm64-free-debug", "configurePreset": "windows-arm64-free", "configuration": "Debug" },
|
||||
{ "name": "windows-x86-free-release", "configurePreset": "windows-x86-free", "configuration": "Release" },
|
||||
{ "name": "windows-x86-free-debug", "configurePreset": "windows-x86-free", "configuration": "Debug" }
|
||||
]
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
ZeroTier One, an endpoint server for the ZeroTier virtual network layer.
|
||||
Copyright © 2011–2019 ZeroTier, Inc.
|
||||
|
||||
ZeroTier is released under the terms of the BSL version 1.1. See the
|
||||
file LICENSE.txt for details.
|
||||
|
||||
..
|
||||
Local variables:
|
||||
coding: utf-8
|
||||
mode: text
|
||||
End:
|
||||
vim: fileencoding=utf-8 filetype=text :
|
||||
+8
-13
@@ -1,22 +1,17 @@
|
||||
# vim: ft=dockerfile
|
||||
|
||||
FROM debian:buster as stage
|
||||
FROM debian:bookworm
|
||||
|
||||
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/bookworm bookworm main" > /etc/apt/sources.list.d/zerotier.list
|
||||
|
||||
FROM debian:buster
|
||||
|
||||
RUN apt-get update -qq && apt-get install openssl libssl1.1 -y
|
||||
|
||||
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 libssl3 -y
|
||||
RUN rm -rf /var/lib/zerotier-one
|
||||
|
||||
COPY entrypoint.sh.release /entrypoint.sh
|
||||
|
||||
Vendored
-365
@@ -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
|
||||
}
|
||||
File renamed without changes.
+3
-147
@@ -1,149 +1,5 @@
|
||||
-----------------------------------------------------------------------------
|
||||
See LICENSE-MPL.txt for all code in node/, osdep/. service/, and everywhere else except ext/ and nonfree/.
|
||||
|
||||
Business Source License 1.1
|
||||
See nonfree/LICENSE.md for all non-free ("source available") portions of this repository.
|
||||
|
||||
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
|
||||
"Business Source License" is a trademark of MariaDB Corporation Ab.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Parameters
|
||||
|
||||
Licensor: ZeroTier, Inc.
|
||||
Licensed Work: ZeroTier Network Virtualization Engine 1.4.4
|
||||
The Licensed Work is (c)2019 ZeroTier, Inc.
|
||||
Additional Use Grant: You may make use of the Licensed Work, provided you
|
||||
do not use it in any of the following ways:
|
||||
|
||||
* Sell hosted ZeroTier services as a "SaaS" Product
|
||||
|
||||
(1) Operate or sell access to ZeroTier root servers,
|
||||
network controllers, or authorization key or certificate
|
||||
generation components of the Licensed Work as a
|
||||
for-profit service, regardless of whether the use of
|
||||
these components is sold alone or is bundled with other
|
||||
services. Note that this does not apply to the use of
|
||||
ZeroTier behind the scenes to operate a service not
|
||||
related to ZeroTier network administration.
|
||||
|
||||
* Create Non-Open-Source Commercial Derviative Works
|
||||
|
||||
(2) Link or directly include the Licensed Work in a
|
||||
commercial or for-profit application or other product
|
||||
not distributed under an Open Source Initiative (OSI)
|
||||
compliant license. See: https://opensource.org/licenses
|
||||
|
||||
(3) Remove the name, logo, copyright, or other branding
|
||||
material from the Licensed Work to create a "rebranded"
|
||||
or "white labeled" version to distribute as part of
|
||||
any commercial or for-profit product or service.
|
||||
|
||||
* Certain Government Uses
|
||||
|
||||
(4) Use or deploy the Licensed Work in a government
|
||||
setting in support of any active government function
|
||||
or operation with the exception of the following:
|
||||
physical or mental health care, family and social
|
||||
services, social welfare, senior care, child care, and
|
||||
the care of persons with disabilities.
|
||||
|
||||
Change Date: 2025-01-01
|
||||
|
||||
Change License: Apache License version 2.0 as published by the Apache
|
||||
Software Foundation
|
||||
https://www.apache.org/licenses/
|
||||
|
||||
Alternative Licensing
|
||||
|
||||
If you would like to use the Licensed Work in any way that conflicts with
|
||||
the stipulations of the Additional Use Grant, contact ZeroTier, Inc. to
|
||||
obtain an alternative commercial license.
|
||||
|
||||
Visit us on the web at: https://www.zerotier.com/
|
||||
|
||||
Notice
|
||||
|
||||
The Business Source License (this document, or the "License") is not an Open
|
||||
Source license. However, the Licensed Work will eventually be made available
|
||||
under an Open Source License, as stated in this License.
|
||||
|
||||
For more information on the use of the Business Source License for ZeroTier
|
||||
products, please visit our pricing page which contains license details and
|
||||
and license FAQ: https://zerotier.com/pricing
|
||||
|
||||
For more information on the use of the Business Source License generally,
|
||||
please visit the Adopting and Developing Business Source License FAQ at
|
||||
https://mariadb.com/bsl-faq-adopting.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Business Source License 1.1
|
||||
|
||||
Terms
|
||||
|
||||
The Licensor hereby grants you the right to copy, modify, create derivative
|
||||
works, redistribute, and make non-production use of the Licensed Work. The
|
||||
Licensor may make an Additional Use Grant, above, permitting limited
|
||||
production use.
|
||||
|
||||
Effective on the Change Date, or the fourth anniversary of the first publicly
|
||||
available distribution of a specific version of the Licensed Work under this
|
||||
License, whichever comes first, the Licensor hereby grants you rights under
|
||||
the terms of the Change License, and the rights granted in the paragraph
|
||||
above terminate.
|
||||
|
||||
If your use of the Licensed Work does not comply with the requirements
|
||||
currently in effect as described in this License, you must purchase a
|
||||
commercial license from the Licensor, its affiliated entities, or authorized
|
||||
resellers, or you must refrain from using the Licensed Work.
|
||||
|
||||
All copies of the original and modified Licensed Work, and derivative works
|
||||
of the Licensed Work, are subject to this License. This License applies
|
||||
separately for each version of the Licensed Work and the Change Date may vary
|
||||
for each version of the Licensed Work released by Licensor.
|
||||
|
||||
You must conspicuously display this License on each original or modified copy
|
||||
of the Licensed Work. If you receive the Licensed Work in original or
|
||||
modified form from a third party, the terms and conditions set forth in this
|
||||
License apply to your use of that work.
|
||||
|
||||
Any use of the Licensed Work in violation of this License will automatically
|
||||
terminate your rights under this License for the current and all other
|
||||
versions of the Licensed Work.
|
||||
|
||||
This License does not grant you any right in any trademark or logo of
|
||||
Licensor or its affiliates (provided that you may use a trademark or logo of
|
||||
Licensor as expressly required by this License).
|
||||
|
||||
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
|
||||
AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
|
||||
EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
|
||||
TITLE.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
MariaDB hereby grants you permission to use this License’s text to license
|
||||
your works, and to refer to it using the trademark "Business Source License",
|
||||
as long as you comply with the Covenants of Licensor below.
|
||||
|
||||
Covenants of Licensor
|
||||
|
||||
In consideration of the right to use this License’s text and the "Business
|
||||
Source License" name and trademark, Licensor covenants to MariaDB, and to all
|
||||
other recipients of the licensed work to be provided by Licensor:
|
||||
|
||||
1. To specify as the Change License the GPL Version 2.0 or any later version,
|
||||
or a license that is compatible with GPL Version 2.0 or a later version,
|
||||
where "compatible" means that software provided under the Change License can
|
||||
be included in a program with software provided under GPL Version 2.0 or a
|
||||
later version. Licensor may specify additional Change Licenses without
|
||||
limitation.
|
||||
|
||||
2. To either: (a) specify an additional grant of rights to use that does not
|
||||
impose any additional restriction on the right granted in this License, as
|
||||
the Additional Use Grant; or (b) insert the text "None".
|
||||
|
||||
3. To specify a Change Date.
|
||||
|
||||
4. Not to modify this License in any other way.
|
||||
Code in ext/ is external code included for build convenience or backward compatibility and retains its original license.
|
||||
Loaded 20 of 14257 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user