mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-07-15 12:55:36 +08:00
Compare commits
3953 Commits
pure-shell
...
docs-ai
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
71d20a8322 | ||
|
|
01a0b26a2a | ||
|
|
abc6e3695f | ||
|
|
a1ccaaca36 | ||
|
|
c1eefb8399 | ||
|
|
4d00e338af | ||
|
|
422323a41d | ||
|
|
6144f7affb | ||
|
|
6d58d53f7d | ||
|
|
c54fa78ad1 | ||
|
|
4d6f334cbb | ||
|
|
e99423c7d1 | ||
|
|
44daaad548 | ||
|
|
4dac0d18b4 | ||
|
|
79db27da04 | ||
|
|
d04d82a1f1 | ||
|
|
dca24585d4 | ||
|
|
7edd8359d5 | ||
|
|
be8f239259 | ||
|
|
6c7a47c9b5 | ||
|
|
859c06a470 | ||
|
|
274706084a | ||
|
|
0bd94b0ebd | ||
|
|
150998723d | ||
|
|
303dca5f59 | ||
|
|
d7902b9931 | ||
|
|
43b2da0511 | ||
|
|
6dc5c5b770 | ||
|
|
f3afd81c81 | ||
|
|
1dce506222 | ||
|
|
323f21a6f2 | ||
|
|
ab30c9dc49 | ||
|
|
996cca12c0 | ||
|
|
5451945972 | ||
|
|
fc1673e37f | ||
|
|
f1722a0f3e | ||
|
|
8034ae37ea | ||
|
|
c9f24b980d | ||
|
|
5ffbf2d5fe | ||
|
|
facc7bc5a7 | ||
|
|
160d7f5537 | ||
|
|
afa5f535e9 | ||
|
|
0dde151632 | ||
|
|
e906edb332 | ||
|
|
83ce54b62b | ||
|
|
7d6c082c86 | ||
|
|
db4f7c6a0c | ||
|
|
ca0167c83e | ||
|
|
5a5c784c4f | ||
|
|
331da67049 | ||
|
|
cc448d463b | ||
|
|
dc55881b78 | ||
|
|
a59473e4ab | ||
|
|
c6a227f4de | ||
|
|
392733b7c3 | ||
|
|
3870269330 | ||
|
|
03f1313eec | ||
|
|
b9def51f86 | ||
|
|
8533702cf6 | ||
|
|
fe3cd15f81 | ||
|
|
dc33b55fd0 | ||
|
|
c9401a0b7a | ||
|
|
fa040bc346 | ||
|
|
ab37b34fb5 | ||
|
|
0b02f62b7e | ||
|
|
924fac137c | ||
|
|
d9c41a73da | ||
|
|
dd1e70a394 | ||
|
|
1bdbdfc08c | ||
|
|
90846ab149 | ||
|
|
8dd7882869 | ||
|
|
7f6be12bf1 | ||
|
|
45b97581d8 | ||
|
|
12a5217f17 | ||
|
|
5913cb07fd | ||
|
|
dd69155539 | ||
|
|
a81dd6d5c9 | ||
|
|
b4ed673261 | ||
|
|
db2d9a909f | ||
|
|
38e01a9b88 | ||
|
|
2b210f9403 | ||
|
|
be329c1d56 | ||
|
|
227b8f0b0a | ||
|
|
c88041b7e0 | ||
|
|
3bb84f3b94 | ||
|
|
c31bf73685 | ||
|
|
c4d7ca819b | ||
|
|
fd8ab71d80 | ||
|
|
2a7966aa4b | ||
|
|
ef83ff074e | ||
|
|
06864fc3f6 | ||
|
|
408d8f755c | ||
|
|
1f291a9036 | ||
|
|
127fb1989f | ||
|
|
af771cf2b5 | ||
|
|
5df65d926c | ||
|
|
bdc7bbe1f1 | ||
|
|
89dca1f0fb | ||
|
|
064a1f05ae | ||
|
|
88cb6749b8 | ||
|
|
0010e35882 | ||
|
|
728c8dd598 | ||
|
|
bf6216e59f | ||
|
|
f66e68754e | ||
|
|
411ad7cc0f | ||
|
|
0761267eb3 | ||
|
|
072a3b5505 | ||
|
|
0e5738b710 | ||
|
|
3ff9426e50 | ||
|
|
6057394641 | ||
|
|
2f4fb9d28f | ||
|
|
96ab2de4b1 | ||
|
|
6c59456c02 | ||
|
|
0e8a806640 | ||
|
|
c641c3b8db | ||
|
|
48d6e9ebc2 | ||
|
|
6cab47db67 | ||
|
|
ec3fd0f4b0 | ||
|
|
e72f9aa623 | ||
|
|
c666cd6cd0 | ||
|
|
b8dd508148 | ||
|
|
37d8b87c3b | ||
|
|
582a88ef60 | ||
|
|
153003b75c | ||
|
|
899555a964 | ||
|
|
891a222c39 | ||
|
|
39beb68024 | ||
|
|
5172580294 | ||
|
|
99e05aa22b | ||
|
|
0807e9e253 | ||
|
|
1a779be028 | ||
|
|
bdfd3eb269 | ||
|
|
7ae5d742c2 | ||
|
|
95be291a84 | ||
|
|
d89add106a | ||
|
|
a36129c6cd | ||
|
|
3f3edd62a1 | ||
|
|
82b77af317 | ||
|
|
df26b93e58 | ||
|
|
d1b4c05381 | ||
|
|
e1658bc0e6 | ||
|
|
5053620b61 | ||
|
|
9366cbacd9 | ||
|
|
b8ce9f7787 | ||
|
|
6772403d81 | ||
|
|
60a91a82e1 | ||
|
|
4a274b69ac | ||
|
|
e4edd0a00f | ||
|
|
ae26ef3bdb | ||
|
|
049ecfe0a5 | ||
|
|
01a4d872ad | ||
|
|
a9e54bb725 | ||
|
|
ad9b9ec69f | ||
|
|
8a37303925 | ||
|
|
52d234f1f4 | ||
|
|
a3c39576df | ||
|
|
3f7bad75ec | ||
|
|
a3f135d26c | ||
|
|
0732c1f0b0 | ||
|
|
9b64ad8299 | ||
|
|
4d1ae0093d | ||
|
|
db11d5a420 | ||
|
|
b20c1fa5c2 | ||
|
|
bf38212814 | ||
|
|
42fdc4eb87 | ||
|
|
685f5c565f | ||
|
|
b8ee484e81 | ||
|
|
c186038dca | ||
|
|
36e738f849 | ||
|
|
2cc3c8c9af | ||
|
|
0469b658bf | ||
|
|
7107566da7 | ||
|
|
02d8f51bb2 | ||
|
|
21c868463a | ||
|
|
079a30c5b1 | ||
|
|
64d9650f88 | ||
|
|
e63d49ec13 | ||
|
|
9dbb178bf3 | ||
|
|
3f48413281 | ||
|
|
dc6e63e1ba | ||
|
|
6ad4b6a4af | ||
|
|
270f131f54 | ||
|
|
ceade306b8 | ||
|
|
629b5b6b2d | ||
|
|
7b79767355 | ||
|
|
2ed4b10260 | ||
|
|
184a091fd9 | ||
|
|
e6642459b8 | ||
|
|
af3c6a6d08 | ||
|
|
e930873e60 | ||
|
|
cd803c75c5 | ||
|
|
ad7475246f | ||
|
|
b09cc968e6 | ||
|
|
bf308e89a5 | ||
|
|
bf326de985 | ||
|
|
4f9a555bf3 | ||
|
|
04df87cd5f | ||
|
|
e4201a28ca | ||
|
|
1b30c98fbd | ||
|
|
61747f6f4e | ||
|
|
c374163a05 | ||
|
|
ee21199ebb | ||
|
|
01607a06c9 | ||
|
|
fd4bf90a70 | ||
|
|
73bf9ff93f | ||
|
|
dcf1c5942c | ||
|
|
4695f846f5 | ||
|
|
37b5f89ee1 | ||
|
|
5e40982e85 | ||
|
|
1d1f58f3a1 | ||
|
|
be039802c0 | ||
|
|
5529e66a61 | ||
|
|
641ad8becf | ||
|
|
a19c4470bb | ||
|
|
143ae4b8c4 | ||
|
|
a980b0a1df | ||
|
|
a8a851659f | ||
|
|
6b6025d3f0 | ||
|
|
4507c8feb4 | ||
|
|
9f80d6b2a8 | ||
|
|
ca8a28a364 | ||
|
|
8e3e790cc3 | ||
|
|
4218f2905a | ||
|
|
4f06548c28 | ||
|
|
b92a06a468 | ||
|
|
88d2f0fc52 | ||
|
|
9d4a8dd7c3 | ||
|
|
742752fd66 | ||
|
|
e93d103e99 | ||
|
|
9e4a622f42 | ||
|
|
506cb15654 | ||
|
|
43663d2966 | ||
|
|
0cecda791d | ||
|
|
d3b7c9106f | ||
|
|
8e46cda227 | ||
|
|
640d973693 | ||
|
|
d54e39353d | ||
|
|
aecc227b9a | ||
|
|
2ae5a876f0 | ||
|
|
ecf10bec7c | ||
|
|
90d7fe46d7 | ||
|
|
8537ad7b19 | ||
|
|
737728ac24 | ||
|
|
ffe998697f | ||
|
|
6b53c0afae | ||
|
|
c9ce96044d | ||
|
|
2bcf62249f | ||
|
|
2c8c7214f0 | ||
|
|
d745c7d9ec | ||
|
|
48c3be7e70 | ||
|
|
d458f57c84 | ||
|
|
c454a1dc8e | ||
|
|
9ed2b18d06 | ||
|
|
e70f5252a1 | ||
|
|
d080a86f2b | ||
|
|
55dff48545 | ||
|
|
27c364f692 | ||
|
|
a73e6c0e7e | ||
|
|
02713fafb5 | ||
|
|
269cd600f8 | ||
|
|
3c4f39735e | ||
|
|
523335fc35 | ||
|
|
c8dbd19ba2 | ||
|
|
860ff38dae | ||
|
|
3583cbe119 | ||
|
|
13e2d0c969 | ||
|
|
8ff90dbb7d | ||
|
|
ecaebe0054 | ||
|
|
4a9087c35c | ||
|
|
4abbc1c9ac | ||
|
|
c39155898a | ||
|
|
05900c2d6c | ||
|
|
69d4c16fcb | ||
|
|
2045055591 | ||
|
|
a348e838d7 | ||
|
|
a175c5862d | ||
|
|
e3b07d701e | ||
|
|
3ff0742ff1 | ||
|
|
182f4ee0d0 | ||
|
|
e22e615ba4 | ||
|
|
4413529d83 | ||
|
|
8e970f37dc | ||
|
|
764894e930 | ||
|
|
f6f7b629e3 | ||
|
|
165372d17b | ||
|
|
7b66a88af1 | ||
|
|
3816b94a9b | ||
|
|
79d0cd4d19 | ||
|
|
d37e23218b | ||
|
|
9fc2b64b6b | ||
|
|
e8b8abea47 | ||
|
|
5d76e0b6cb | ||
|
|
8cc5c82595 | ||
|
|
4ddc137eae | ||
|
|
f8ed1aa86e | ||
|
|
f4918ba92c | ||
|
|
ffc677e4b3 | ||
|
|
0dbbf7abb2 | ||
|
|
be034b756b | ||
|
|
60d206cac0 | ||
|
|
2e2548d3de | ||
|
|
75a7b21a6f | ||
|
|
24231f793a | ||
|
|
d2f007d4c4 | ||
|
|
c505430187 | ||
|
|
cc713069c2 | ||
|
|
6ee4759444 | ||
|
|
f327dda615 | ||
|
|
4671be623b | ||
|
|
661b0fe887 | ||
|
|
564e204111 | ||
|
|
bca1fb5410 | ||
|
|
e7bf945b96 | ||
|
|
8ee9d134b3 | ||
|
|
6976e9db96 | ||
|
|
39a975dc90 | ||
|
|
4f1ed70c96 | ||
|
|
626bdc3509 | ||
|
|
ec399052ed | ||
|
|
ae7552f5a2 | ||
|
|
25891a8648 | ||
|
|
e83a997d0c | ||
|
|
58eb769ddf | ||
|
|
e33aff18cc | ||
|
|
9fb1dcbe93 | ||
|
|
869c9a06e3 | ||
|
|
4ba565b461 | ||
|
|
6ef012e204 | ||
|
|
6e354b4c6a | ||
|
|
864fa9d0eb | ||
|
|
db8520d8f0 | ||
|
|
3808457b52 | ||
|
|
d29bd12bcc | ||
|
|
f46240b55e | ||
|
|
35b23a532f | ||
|
|
323f1ec00e | ||
|
|
6b29d92579 | ||
|
|
1320a74460 | ||
|
|
4c07bcc95f | ||
|
|
a27f5cc8be | ||
|
|
26a14bccbe | ||
|
|
cf48d131b3 | ||
|
|
544fd15c0b | ||
|
|
b04b079267 | ||
|
|
da49c056c9 | ||
|
|
7fc5dd428d | ||
|
|
6b62255091 | ||
|
|
9d777ca650 | ||
|
|
7e2cfe2950 | ||
|
|
20f95efcba | ||
|
|
1d0ccdec45 | ||
|
|
fb7730989c | ||
|
|
4d2036f20e | ||
|
|
cd14f6253b | ||
|
|
28e102100f | ||
|
|
e25d95c26b | ||
|
|
b45e64ec16 | ||
|
|
1a027003b1 | ||
|
|
6ed35eaa85 | ||
|
|
f1bd64ec06 | ||
|
|
2256f47aed | ||
|
|
631549073a | ||
|
|
3805c06caa | ||
|
|
402e105b6b | ||
|
|
39f6a628da | ||
|
|
6630fbdce8 | ||
|
|
4d73af45c2 | ||
|
|
ee2e887625 | ||
|
|
1bee20ac61 | ||
|
|
9b8e0c794a | ||
|
|
105f0328e6 | ||
|
|
2f260e4d09 | ||
|
|
9182cf1e34 | ||
|
|
c207269998 | ||
|
|
097af804a7 | ||
|
|
a5a3a990bf | ||
|
|
2bc0d05242 | ||
|
|
d7ee946864 | ||
|
|
9a0d239b58 | ||
|
|
ad631f9b6e | ||
|
|
a3624b1510 | ||
|
|
2a80d5a05d | ||
|
|
ee854eed41 | ||
|
|
921870eaea | ||
|
|
76fc5abfe7 | ||
|
|
30c9a3f7a3 | ||
|
|
baa21d6e94 | ||
|
|
8e91e02806 | ||
|
|
8fa27ae59c | ||
|
|
028aa45c17 | ||
|
|
85b9f5e055 | ||
|
|
f8d24e2b3a | ||
|
|
991da260ba | ||
|
|
d411fac9a1 | ||
|
|
ddb9e3e7e4 | ||
|
|
fef361225a | ||
|
|
0b2b1d51e1 | ||
|
|
820d77b8b2 | ||
|
|
cd3eb3d41d | ||
|
|
e5e6e26f67 | ||
|
|
c671cfd13b | ||
|
|
51b8a0cab5 | ||
|
|
fb8f8d4ef8 | ||
|
|
1a476d0e80 | ||
|
|
e5ad72214c | ||
|
|
c339b900f8 | ||
|
|
852a0437bd | ||
|
|
3ded9881e1 | ||
|
|
08a6bf38a4 | ||
|
|
cae668a947 | ||
|
|
e592488d7a | ||
|
|
a7184d0411 | ||
|
|
d316ea81e4 | ||
|
|
b96586e4d3 | ||
|
|
d535e4f102 | ||
|
|
5a5f54bdcd | ||
|
|
8f7897e13b | ||
|
|
daae5f2a7c | ||
|
|
844bb69f0d | ||
|
|
766f7fa34f | ||
|
|
ecf712b2b7 | ||
|
|
94dd44e68d | ||
|
|
2fa07700ef | ||
|
|
13a15b1a5a | ||
|
|
d2c7fee8fa | ||
|
|
9cd3125544 | ||
|
|
590a94a723 | ||
|
|
b625d80dc0 | ||
|
|
93c099dd31 | ||
|
|
fcd0052d12 | ||
|
|
6c52451c6c | ||
|
|
175567fd11 | ||
|
|
bf05af7e16 | ||
|
|
7c3022b7e3 | ||
|
|
2a50015c12 | ||
|
|
1f42f1a479 | ||
|
|
41f5948392 | ||
|
|
6d91f8b2d3 | ||
|
|
141c737380 | ||
|
|
d35cbd7bf8 | ||
|
|
d076df6b04 | ||
|
|
a99b6bebae | ||
|
|
af97263596 | ||
|
|
864678ab46 | ||
|
|
c03508a84b | ||
|
|
963e2a084a | ||
|
|
508cfa67e5 | ||
|
|
08dca4253d | ||
|
|
e4434643ff | ||
|
|
adff728999 | ||
|
|
9af132d67e | ||
|
|
a950f3d716 | ||
|
|
33f33439d1 | ||
|
|
36177e4948 | ||
|
|
801d41efeb | ||
|
|
43d8c9d9d6 | ||
|
|
75dd01aa91 | ||
|
|
bf4d227a55 | ||
|
|
520767638f | ||
|
|
5ff973e446 | ||
|
|
230be2ebe8 | ||
|
|
bd73b4a6dc | ||
|
|
327bb8bc0f | ||
|
|
deb979416f | ||
|
|
f6e00c67cc | ||
|
|
7df861696d | ||
|
|
92861669c2 | ||
|
|
893f640469 | ||
|
|
eff7037e74 | ||
|
|
1213cb578e | ||
|
|
d1ec473f21 | ||
|
|
19bfb6bc83 | ||
|
|
94c579a453 | ||
|
|
d7d41f4d89 | ||
|
|
4c6b7a3d55 | ||
|
|
5404926a14 | ||
|
|
295df19484 | ||
|
|
b970bf8e3a | ||
|
|
54915028d7 | ||
|
|
03cd7e141c | ||
|
|
9f3e353699 | ||
|
|
b21d5716e1 | ||
|
|
464ddeb29d | ||
|
|
0c389d9069 | ||
|
|
1d2916fa8f | ||
|
|
46132ee1c8 | ||
|
|
3c9e868ce1 | ||
|
|
c5efcc0c93 | ||
|
|
64d692e105 | ||
|
|
dc79ac9c9a | ||
|
|
e9be3a41db | ||
|
|
00649d816e | ||
|
|
11376cc6ad | ||
|
|
c6207d8c7c | ||
|
|
b0eff0ba6e | ||
|
|
9d748a6e08 | ||
|
|
b0522205da | ||
|
|
beeb0b8721 | ||
|
|
823fe96942 | ||
|
|
f2fa29809a | ||
|
|
463ec546fa | ||
|
|
9e2a5ce188 | ||
|
|
0b0ecd17c3 | ||
|
|
c81146bf18 | ||
|
|
c1f2fd49a6 | ||
|
|
60b2aea09e | ||
|
|
1ee8bc7d34 | ||
|
|
a24fae7a55 | ||
|
|
b5b917ce32 | ||
|
|
b1a59dad79 | ||
|
|
98a618f1cd | ||
|
|
738c61b682 | ||
|
|
83c266a713 | ||
|
|
0a60ebad17 | ||
|
|
0101e6c52b | ||
|
|
63bee0db13 | ||
|
|
154adc1f48 | ||
|
|
5d309ee998 | ||
|
|
ca15ccd4d1 | ||
|
|
20b693d1fa | ||
|
|
2327f32e41 | ||
|
|
22c5403e98 | ||
|
|
25bec6b974 | ||
|
|
deef11c86a | ||
|
|
bfb6fcd436 | ||
|
|
170371abf7 | ||
|
|
02d40d197b | ||
|
|
b89e941ab2 | ||
|
|
65c3263b25 | ||
|
|
d79128cdbf | ||
|
|
ba253ea2a5 | ||
|
|
21e2a0194c | ||
|
|
3f812fe5fc | ||
|
|
1670b61ed7 | ||
|
|
15e7678615 | ||
|
|
fe302bf8b9 | ||
|
|
e30a10f60f | ||
|
|
271013f2d6 | ||
|
|
6ed620683f | ||
|
|
935fbbd31a | ||
|
|
a288533fc3 | ||
|
|
067749ab1b | ||
|
|
63d28bdc01 | ||
|
|
54e301d55c | ||
|
|
6af55323b3 | ||
|
|
f85f29e628 | ||
|
|
74865025bd | ||
|
|
7a690fd9a3 | ||
|
|
e9023520de | ||
|
|
9d65c491e7 | ||
|
|
9713b76935 | ||
|
|
cbc8feebfd | ||
|
|
32bdacd5a5 | ||
|
|
528469514b | ||
|
|
371a1af572 | ||
|
|
6f372a74a2 | ||
|
|
c7f611fe80 | ||
|
|
54f53fd104 | ||
|
|
91ee94f349 | ||
|
|
e523fff0ab | ||
|
|
13ab3e2b6c | ||
|
|
32bb0aadce | ||
|
|
59a8b65f6f | ||
|
|
4625c6a885 | ||
|
|
f35f133115 | ||
|
|
cbfeefc808 | ||
|
|
85b0cd8b4b | ||
|
|
1fcb74ad9b | ||
|
|
1049a3ce66 | ||
|
|
1b8b53d47f | ||
|
|
a232f578a4 | ||
|
|
f6a9dac504 | ||
|
|
70285cb53b | ||
|
|
a335d050cf | ||
|
|
ef4b2997a7 | ||
|
|
901da8fa41 | ||
|
|
e49a5d7a50 | ||
|
|
0719c45a29 | ||
|
|
f414bd289c | ||
|
|
fa7de0642a | ||
|
|
c5b11f47c3 | ||
|
|
d8dda09fb6 | ||
|
|
f83565b058 | ||
|
|
e31aeabf12 | ||
|
|
d7eb33ff1e | ||
|
|
281b958075 | ||
|
|
e31f64864e | ||
|
|
92f5b56c74 | ||
|
|
1400dc649f | ||
|
|
e73bad9d23 | ||
|
|
2d906a8145 | ||
|
|
bc26e3d37c | ||
|
|
e0d2ee91f7 | ||
|
|
465549f97d | ||
|
|
2350d2d5ca | ||
|
|
086c855a43 | ||
|
|
4fa5292913 | ||
|
|
b89a29d5f3 | ||
|
|
9634b8bcda | ||
|
|
5d5a50a33c | ||
|
|
1edf14e642 | ||
|
|
2277390a1a | ||
|
|
f93ad27c17 | ||
|
|
b690566b39 | ||
|
|
16e772e1a8 | ||
|
|
ad356b4a23 | ||
|
|
404195a38b | ||
|
|
7856f7e03a | ||
|
|
4a572a1372 | ||
|
|
61d50cd28b | ||
|
|
38715bba21 | ||
|
|
8fdfcf8fcd | ||
|
|
659b75cedd | ||
|
|
cf2e1d9819 | ||
|
|
b226887bd2 | ||
|
|
552a8a1ea2 | ||
|
|
a678d908d5 | ||
|
|
8cc5877f3c | ||
|
|
b185d27ad7 | ||
|
|
dc0b3b8cec | ||
|
|
705435eccb | ||
|
|
77e129881a | ||
|
|
1f768ffc64 | ||
|
|
424228d81e | ||
|
|
b90356bc1d | ||
|
|
247a254af4 | ||
|
|
6d2c43d3e5 | ||
|
|
a9e6e4a226 | ||
|
|
ad0118718f | ||
|
|
8f10e0d070 | ||
|
|
0c86d82b98 | ||
|
|
2676875ccd | ||
|
|
19d6d669c0 | ||
|
|
88af4a719f | ||
|
|
b0b3220716 | ||
|
|
5669642cf3 | ||
|
|
0548aba248 | ||
|
|
07fd1bcd03 | ||
|
|
780232fa60 | ||
|
|
fbbed6d5c1 | ||
|
|
fc807ec7c9 | ||
|
|
58c02dfab3 | ||
|
|
5e84fed19a | ||
|
|
d0b6a02432 | ||
|
|
368ce75261 | ||
|
|
32b7fee8d8 | ||
|
|
8c4e3d58a3 | ||
|
|
8a51d64685 | ||
|
|
055bc7bc3c | ||
|
|
84f6dab882 | ||
|
|
abdaaab6e6 | ||
|
|
5298ee4f97 | ||
|
|
94fb7a643e | ||
|
|
715f33ac4d | ||
|
|
f7277cc012 | ||
|
|
00c08e0c0c | ||
|
|
671ebd2582 | ||
|
|
12d4009a21 | ||
|
|
dc0a80975f | ||
|
|
174ef3dba7 | ||
|
|
4f2ca17bde | ||
|
|
029f8efa12 | ||
|
|
7cedd45567 | ||
|
|
28f4a5c523 | ||
|
|
6ef5e9e067 | ||
|
|
64b0e72908 | ||
|
|
a7b04d9081 | ||
|
|
0a07f6b27c | ||
|
|
550f6cad60 | ||
|
|
40e36982d3 | ||
|
|
ed5a516004 | ||
|
|
2d550a8db4 | ||
|
|
d316684995 | ||
|
|
c218aef947 | ||
|
|
7623b9e673 | ||
|
|
fa175963f9 | ||
|
|
8c7d113c2f | ||
|
|
b3d67b928a | ||
|
|
f9fe2adb1d | ||
|
|
28c82b811b | ||
|
|
cfce177070 | ||
|
|
d6ec0b7809 | ||
|
|
0e80f29e61 | ||
|
|
da1f348daa | ||
|
|
e9279940d7 | ||
|
|
bb257cffd6 | ||
|
|
3238c44745 | ||
|
|
a57b48fda6 | ||
|
|
0f012f267b | ||
|
|
08595cca73 | ||
|
|
28bbdf5401 | ||
|
|
a357510109 | ||
|
|
7d7902e0e9 | ||
|
|
2a8fa7d155 | ||
|
|
d495455902 | ||
|
|
471df00ea3 | ||
|
|
bc7ac812b1 | ||
|
|
bbab685247 | ||
|
|
ee5aabbe34 | ||
|
|
059f785e0d | ||
|
|
2fdb0b406f | ||
|
|
f1e9dd8de8 | ||
|
|
1095807e5b | ||
|
|
753fdd725e | ||
|
|
0be4e859f3 | ||
|
|
7a3f10bd77 | ||
|
|
508f635f01 | ||
|
|
18434b68f6 | ||
|
|
67ef8f6608 | ||
|
|
d83a597689 | ||
|
|
5623fed37f | ||
|
|
38140d115f | ||
|
|
98117c3a04 | ||
|
|
b01d3ce12c | ||
|
|
608c915e14 | ||
|
|
c680299654 | ||
|
|
794ab16b32 | ||
|
|
661723c99a | ||
|
|
d9834d05c6 | ||
|
|
9a53ef3498 | ||
|
|
f680731f9d | ||
|
|
0fe1442f7e | ||
|
|
1e4780397b | ||
|
|
6b67cb90fc | ||
|
|
82bf317911 | ||
|
|
041b08f10f | ||
|
|
7c3ac484b3 | ||
|
|
5c7ab48718 | ||
|
|
478b85879f | ||
|
|
cf5a946de1 | ||
|
|
95f34fbbc3 | ||
|
|
d8d9f389ba | ||
|
|
c72a2b6228 | ||
|
|
368461d1ad | ||
|
|
ca9dc25f9a | ||
|
|
b6d8bf5639 | ||
|
|
a5f8402703 | ||
|
|
d163c3dff6 | ||
|
|
fd40b92041 | ||
|
|
6be4da26aa | ||
|
|
425010fbb0 | ||
|
|
67bea25214 | ||
|
|
aad710ed3e | ||
|
|
9912b213f0 | ||
|
|
2874336f0e | ||
|
|
b42601d288 | ||
|
|
017fabd556 | ||
|
|
0c386e967a | ||
|
|
d6af728e79 | ||
|
|
fa1b71bebf | ||
|
|
127697b814 | ||
|
|
4cfd8f4ca3 | ||
|
|
f2d389d89a | ||
|
|
bd11533865 | ||
|
|
e9a411cc66 | ||
|
|
272338775e | ||
|
|
a832cc2114 | ||
|
|
880bb8799b | ||
|
|
d999bfcd11 | ||
|
|
fba2676d80 | ||
|
|
39a207076e | ||
|
|
3cfab10f85 | ||
|
|
1eec88fd6c | ||
|
|
8f798c9006 | ||
|
|
7ae16e5be8 | ||
|
|
807b90b182 | ||
|
|
a07265787b | ||
|
|
a75060e5f6 | ||
|
|
97634b009f | ||
|
|
8fc2da9acf | ||
|
|
b3bbe0a751 | ||
|
|
0d32b7bfdb | ||
|
|
81ce777bf2 | ||
|
|
9f2132c001 | ||
|
|
2a4959d973 | ||
|
|
4d4b1a334f | ||
|
|
6bd3646a02 | ||
|
|
b9af9ba056 | ||
|
|
16f94466fd | ||
|
|
3fa2d69813 | ||
|
|
0652d4aa03 | ||
|
|
8f44b07a12 | ||
|
|
e9c27dee1f | ||
|
|
0afa1dd80c | ||
|
|
e2011e1c18 | ||
|
|
08d20205a7 | ||
|
|
c40eaeef5d | ||
|
|
b5c14d6f26 | ||
|
|
a02f287d97 | ||
|
|
0d4cde79fa | ||
|
|
274098b3a6 | ||
|
|
b89ff3c083 | ||
|
|
38f742156d | ||
|
|
6fdbf629dc | ||
|
|
7041e060f2 | ||
|
|
103b5b3585 | ||
|
|
c536fedff7 | ||
|
|
09ddd2fdd8 | ||
|
|
a2409d9c0f | ||
|
|
6688819605 | ||
|
|
2e8f6bbb31 | ||
|
|
e4d6723b01 | ||
|
|
e732543bd7 | ||
|
|
fddcdb8796 | ||
|
|
3492992b56 | ||
|
|
a6c79e30a8 | ||
|
|
19e11caa83 | ||
|
|
6ee8dc7994 | ||
|
|
3d102363c4 | ||
|
|
82ab14165e | ||
|
|
1586825b5b | ||
|
|
23db10d3cd | ||
|
|
5a8341203b | ||
|
|
f437efebb7 | ||
|
|
f4a29c4830 | ||
|
|
455d42d162 | ||
|
|
f232588dbe | ||
|
|
a414c65f37 | ||
|
|
7a262feb35 | ||
|
|
0cfa2036f0 | ||
|
|
c5882c1f8e | ||
|
|
4531c9fe57 | ||
|
|
51415fb6bf | ||
|
|
3a575f0bf7 | ||
|
|
ccd948e58a | ||
|
|
a709221223 | ||
|
|
223dd10ac6 | ||
|
|
c27ed8b0b4 | ||
|
|
22fc7030f6 | ||
|
|
7b725bb4da | ||
|
|
ae748757d1 | ||
|
|
1865762f80 | ||
|
|
75cfd7e4ed | ||
|
|
a0cab24e56 | ||
|
|
2c22bf25ea | ||
|
|
cfb8cc9fc5 | ||
|
|
1c28f0f455 | ||
|
|
b3c450291a | ||
|
|
372760e469 | ||
|
|
6cf4c40cd2 | ||
|
|
af75ffaf24 | ||
|
|
ae0217b3a1 | ||
|
|
1e2b4017ac | ||
|
|
19f941797e | ||
|
|
0b863cbc70 | ||
|
|
b09337de09 | ||
|
|
d902e70b4d | ||
|
|
cd2dc5bce4 | ||
|
|
34910d18e9 | ||
|
|
3a17cec521 | ||
|
|
94644d374f | ||
|
|
f8b0c2c980 | ||
|
|
6bbb3c969c | ||
|
|
76025b95c1 | ||
|
|
1be353fd13 | ||
|
|
54001ab868 | ||
|
|
890ff475f1 | ||
|
|
559a2909a9 | ||
|
|
fff2484529 | ||
|
|
d1b194999d | ||
|
|
64f7a3553e | ||
|
|
a06cc32491 | ||
|
|
022fdb2fc5 | ||
|
|
7688a55656 | ||
|
|
08388c0b15 | ||
|
|
e7a88f1df7 | ||
|
|
2f3122627e | ||
|
|
93a35908de | ||
|
|
5ef4623051 | ||
|
|
e952f1c76a | ||
|
|
09b89a30f9 | ||
|
|
9a681a9fa6 | ||
|
|
8650ce4f8f | ||
|
|
f7ca621efe | ||
|
|
6b5200002e | ||
|
|
53f7cdefe0 | ||
|
|
e1a14bbb9f | ||
|
|
9e051c8c80 | ||
|
|
e677be74d7 | ||
|
|
037d224fd7 | ||
|
|
ce44e00bd4 | ||
|
|
0247458853 | ||
|
|
656a58c3fa | ||
|
|
9fdfef5057 | ||
|
|
dd5762fbd3 | ||
|
|
1707c679e8 | ||
|
|
18c5ccfe9d | ||
|
|
d064e1353c | ||
|
|
acd0e2b23a | ||
|
|
c1c31a730b | ||
|
|
910f10a1dd | ||
|
|
fefcbf4029 | ||
|
|
88d135a4e5 | ||
|
|
f8952da2a3 | ||
|
|
63c7aa8d38 | ||
|
|
355da340b4 | ||
|
|
a4fd618a10 | ||
|
|
9a91aecb28 | ||
|
|
8bf2f42596 | ||
|
|
4e841cfc67 | ||
|
|
da8b7c2bc4 | ||
|
|
c4cec15c18 | ||
|
|
e3f9894331 | ||
|
|
6d292b4c54 | ||
|
|
f6b47ad810 | ||
|
|
7c8b40a49a | ||
|
|
48fbeab7e4 | ||
|
|
eb0a36e379 | ||
|
|
4bbe56dd9f | ||
|
|
fe0b983f6c | ||
|
|
2080407283 | ||
|
|
3c89ce6c7f | ||
|
|
07ea1e2887 | ||
|
|
f0b5e4f59e | ||
|
|
a54021bf19 | ||
|
|
dc05ad23c9 | ||
|
|
458af6ac78 | ||
|
|
66d3af518b | ||
|
|
2901d32ba7 | ||
|
|
794d92c9d8 | ||
|
|
97e337cea2 | ||
|
|
bde1440617 | ||
|
|
78375632b4 | ||
|
|
f68adc3256 | ||
|
|
4a968757ba | ||
|
|
bcaef59a15 | ||
|
|
b0f630f95f | ||
|
|
ac01867e9c | ||
|
|
808aed2a66 | ||
|
|
e004d10861 | ||
|
|
0db26be826 | ||
|
|
a4bd2a79a9 | ||
|
|
7b16f683fc | ||
|
|
78234ef147 | ||
|
|
80128edd39 | ||
|
|
b384345723 | ||
|
|
f4bb0263f6 | ||
|
|
321f2e13e8 | ||
|
|
11e7a590c8 | ||
|
|
20e0711747 | ||
|
|
80d922ab3b | ||
|
|
a1cadecc54 | ||
|
|
127c935106 | ||
|
|
eab105965d | ||
|
|
abd6c2fa3a | ||
|
|
df6c27c98d | ||
|
|
3ff762c4c8 | ||
|
|
6775cb4674 | ||
|
|
88b86d3eaf | ||
|
|
dbc6dbee53 | ||
|
|
baddd60113 | ||
|
|
2f09ace82f | ||
|
|
dce63d3c87 | ||
|
|
d3b0f5de79 | ||
|
|
9ad7147155 | ||
|
|
47ab5d7584 | ||
|
|
b2182b4fe1 | ||
|
|
1d5aec037b | ||
|
|
6b5f702719 | ||
|
|
7bdcda1d62 | ||
|
|
66840a8eed | ||
|
|
106b55d4e7 | ||
|
|
93a697ebbf | ||
|
|
7fa6fd08d4 | ||
|
|
52553fb5ed | ||
|
|
c925914925 | ||
|
|
d16f5a972c | ||
|
|
ee46c1c387 | ||
|
|
64fde5fd8c | ||
|
|
dc5bf6dc98 | ||
|
|
20892ab194 | ||
|
|
e9d3f7e7eb | ||
|
|
2f8570b59e | ||
|
|
71d803d36f | ||
|
|
daa87e1350 | ||
|
|
98773ee5a6 | ||
|
|
719d818fd1 | ||
|
|
c38f174a6b | ||
|
|
9903c2294c | ||
|
|
b8444070ee | ||
|
|
5b4f4f8e55 | ||
|
|
22d263c0a8 | ||
|
|
150d866c15 | ||
|
|
c051a48d56 | ||
|
|
b965ffcd82 | ||
|
|
7f863d182f | ||
|
|
d1041c57dc | ||
|
|
14b822a185 | ||
|
|
7204d277b4 | ||
|
|
5a0fd40dc4 | ||
|
|
59a6e27532 | ||
|
|
6b3b841c0e | ||
|
|
14bfb4198a | ||
|
|
e6591ffe9c | ||
|
|
f6c818d3c0 | ||
|
|
e316971764 | ||
|
|
d55278714f | ||
|
|
cb7eca9049 | ||
|
|
5b8c9e6f09 | ||
|
|
5d1043334d | ||
|
|
f24cbcf909 | ||
|
|
76a07c32ba | ||
|
|
e0c69086dc | ||
|
|
5606b70c1c | ||
|
|
28ae4242a6 | ||
|
|
f14df1925c | ||
|
|
e9ad3c0011 | ||
|
|
e2ad31e858 | ||
|
|
af614cd7ce | ||
|
|
e21b0ec89d | ||
|
|
3069b51c09 | ||
|
|
1662ac4cf8 | ||
|
|
1e09017549 | ||
|
|
84e9f13688 | ||
|
|
2b0a0bdad9 | ||
|
|
e8d1970f55 | ||
|
|
6861e9c2c7 | ||
|
|
376b8e7569 | ||
|
|
875e1d05cd | ||
|
|
9382161b6f | ||
|
|
a1b8d201ae | ||
|
|
1fed8f2802 | ||
|
|
ecea6c12cd | ||
|
|
81dce02431 | ||
|
|
a33ca44ca9 | ||
|
|
aee733b51f | ||
|
|
54ceca8680 | ||
|
|
90981e3877 | ||
|
|
d69826eb4a | ||
|
|
dc83282019 | ||
|
|
23c0d6f4aa | ||
|
|
8e4d4b7be5 | ||
|
|
ee906aaff9 | ||
|
|
e2b80e7f03 | ||
|
|
09073c5517 | ||
|
|
00050f4d0e | ||
|
|
cff6ec17ea | ||
|
|
64079d9331 | ||
|
|
541889d17b | ||
|
|
c91128995d | ||
|
|
fd2b7af1dc | ||
|
|
081e2d2846 | ||
|
|
9edb9417a1 | ||
|
|
4ae4165ba2 | ||
|
|
e441a575ea | ||
|
|
1575016885 | ||
|
|
987ad4b846 | ||
|
|
f4b03ae835 | ||
|
|
d6de01d05c | ||
|
|
09b7159119 | ||
|
|
4198ddd5d1 | ||
|
|
8332ed87e0 | ||
|
|
f6b091498f | ||
|
|
a45f314447 | ||
|
|
8c8cb70174 | ||
|
|
f09c18e78f | ||
|
|
f5d93d2f54 | ||
|
|
7402fbf7c1 | ||
|
|
2c590e5895 | ||
|
|
463a98b1bf | ||
|
|
6d1c6d7f61 | ||
|
|
08362fb6e5 | ||
|
|
4d5641f6ec | ||
|
|
f34ecf9468 | ||
|
|
aa5c829fae | ||
|
|
fc118d709e | ||
|
|
589a4a9803 | ||
|
|
944e314bab | ||
|
|
0b17ce9e61 | ||
|
|
ed4978bb89 | ||
|
|
7a4f28e939 | ||
|
|
5cb6a75e7d | ||
|
|
757af25d8f | ||
|
|
5e3e7eccbf | ||
|
|
9738fcd6cd | ||
|
|
5a6a33303c | ||
|
|
ae15d6c5f5 | ||
|
|
ff15973a25 | ||
|
|
b88a68dab8 | ||
|
|
b05bdcd83d | ||
|
|
6a4ad34324 | ||
|
|
9a2d94cc33 | ||
|
|
f1d1d4fe10 | ||
|
|
fa6fa1c425 | ||
|
|
f8c8300c9c | ||
|
|
09198b431f | ||
|
|
f426ced789 | ||
|
|
bab330b64e | ||
|
|
b59a06face | ||
|
|
bb44e88c3b | ||
|
|
8649068159 | ||
|
|
5476385553 | ||
|
|
56bac35768 | ||
|
|
4cdc6a07ae | ||
|
|
c30b34ae5c | ||
|
|
da5c6fd084 | ||
|
|
a4b6499530 | ||
|
|
eb4445ea59 | ||
|
|
be51bcfdfc | ||
|
|
7bc4131c02 | ||
|
|
da8debdade | ||
|
|
ef5e664981 | ||
|
|
8e50af3a7e | ||
|
|
8e96c64918 | ||
|
|
8a9c8a279d | ||
|
|
72ca0cecd1 | ||
|
|
3564f6d0a7 | ||
|
|
d3e2b4b5b2 | ||
|
|
c6de6e7056 | ||
|
|
55322a282c | ||
|
|
6789ea81ff | ||
|
|
ac8a9af89c | ||
|
|
553b817b2a | ||
|
|
96592bce3e | ||
|
|
4e393886aa | ||
|
|
2e13be2a7a | ||
|
|
41fb29eba4 | ||
|
|
b519291fa2 | ||
|
|
dd752cd5be | ||
|
|
6a153f9aa0 | ||
|
|
bba390dbcc | ||
|
|
32efeb970c | ||
|
|
310335813f | ||
|
|
487980c9a8 | ||
|
|
f8801e224f | ||
|
|
5e229a0b01 | ||
|
|
49cfcbe92d | ||
|
|
4e4ce282db | ||
|
|
e2fd3e18d6 | ||
|
|
605c06f85c | ||
|
|
4cdefeab81 | ||
|
|
8ab09898f0 | ||
|
|
9c8b4d627c | ||
|
|
8923077120 | ||
|
|
29c31d90e5 | ||
|
|
e281d26a3a | ||
|
|
8ed68f481a | ||
|
|
b1abff61a5 | ||
|
|
15638cea4c | ||
|
|
9ed77c10e0 | ||
|
|
ccf262d202 | ||
|
|
4be894bc10 | ||
|
|
6440863ce4 | ||
|
|
25d7c72b6e | ||
|
|
dc4dd6ffa4 | ||
|
|
bf79134405 | ||
|
|
4f8b9d0f81 | ||
|
|
70bda268e5 | ||
|
|
e559dce9d5 | ||
|
|
6a98a6bf5e | ||
|
|
9b53133ba4 | ||
|
|
5b319b0df1 | ||
|
|
572bf919aa | ||
|
|
1d960a9084 | ||
|
|
4b28d1c2df | ||
|
|
9c8fd4d45d | ||
|
|
b62f029da7 | ||
|
|
c711a3666e | ||
|
|
487c6da4ac | ||
|
|
e942b13d73 | ||
|
|
c5ae719b9c | ||
|
|
7b6e707e24 | ||
|
|
0114700dad | ||
|
|
ec9364db69 | ||
|
|
033e29985e | ||
|
|
61cba2342d | ||
|
|
a3acad4ef3 | ||
|
|
1e13eb4abe | ||
|
|
1bac06fe3c | ||
|
|
762a768969 | ||
|
|
d0a6e3a860 | ||
|
|
995187d258 | ||
|
|
5333a04e1c | ||
|
|
19be5263b5 | ||
|
|
6e79401ab5 | ||
|
|
903036f1c0 | ||
|
|
6bd3eea0fe | ||
|
|
f28a3cf5a3 | ||
|
|
c828c2c6e4 | ||
|
|
26ccaa4449 | ||
|
|
ae1193ab16 | ||
|
|
6d6a29368e | ||
|
|
897cb00351 | ||
|
|
8a1689b79d | ||
|
|
018dfae15e | ||
|
|
c83e803c85 | ||
|
|
fa4d33671d | ||
|
|
f8d77b9b50 | ||
|
|
6594811536 | ||
|
|
cc7eb7cd84 | ||
|
|
e6408b4693 | ||
|
|
330c3486af | ||
|
|
b9dfb5afe3 | ||
|
|
565ac87b65 | ||
|
|
f0c39c1770 | ||
|
|
896cf889e4 | ||
|
|
6b91570054 | ||
|
|
31906b36e5 | ||
|
|
4e2d4f3f05 | ||
|
|
ffdc2dc85a | ||
|
|
911bc74bf4 | ||
|
|
3467c9d291 | ||
|
|
15cd8543f1 | ||
|
|
864db0ebc5 | ||
|
|
9ee623112d | ||
|
|
d789b1a472 | ||
|
|
17a25b44e2 | ||
|
|
781260f3fc | ||
|
|
6c43fa55b1 | ||
|
|
c4440668bb | ||
|
|
e437bf2ffe | ||
|
|
0f2d2d5734 | ||
|
|
a49ae05599 | ||
|
|
8ae2755dbe | ||
|
|
3966bd5f0a | ||
|
|
384ba54c79 | ||
|
|
26dbc922eb | ||
|
|
31a4498056 | ||
|
|
044275d909 | ||
|
|
c5316f9231 | ||
|
|
2d1a61d184 | ||
|
|
f7744188f4 | ||
|
|
5b6c923eef | ||
|
|
b0b031afb2 | ||
|
|
fe09d8c03e | ||
|
|
c2813d5736 | ||
|
|
8b2b658ced | ||
|
|
e862bacc8a | ||
|
|
cac57dbf79 | ||
|
|
345fe783cc | ||
|
|
55efe6d65b | ||
|
|
dccbc30972 | ||
|
|
f914a82379 | ||
|
|
18979d8fb6 | ||
|
|
21149f6807 | ||
|
|
93e6dcab1d | ||
|
|
59dedbea2c | ||
|
|
8bda4fd31e | ||
|
|
8039ea49f9 | ||
|
|
fc90b4ae23 | ||
|
|
e02be69e40 | ||
|
|
35a90f2769 | ||
|
|
fa87149631 | ||
|
|
8dfe722e14 | ||
|
|
dcbfe1e0ab | ||
|
|
e11946fd10 | ||
|
|
44399cd185 | ||
|
|
927d7f55ba | ||
|
|
e323d7b155 | ||
|
|
d0b253c346 | ||
|
|
81430e6853 | ||
|
|
83696e92b7 | ||
|
|
b0538c09bf | ||
|
|
40f89d1dca | ||
|
|
fa2e041cc9 | ||
|
|
3c614663a3 | ||
|
|
b5c7185374 | ||
|
|
d0a9a3a594 | ||
|
|
2e6329bb86 | ||
|
|
d3ba04fc5b | ||
|
|
7a78ea0185 | ||
|
|
36b04f9eba | ||
|
|
79ab6490fd | ||
|
|
191d345250 | ||
|
|
311ee40ae4 | ||
|
|
808d224b08 | ||
|
|
4247883664 | ||
|
|
3198cc40c1 | ||
|
|
8680e83af3 | ||
|
|
0156f33a20 | ||
|
|
df8b2dbf16 | ||
|
|
30e174ac95 | ||
|
|
b9f8f02d98 | ||
|
|
0b0ae270da | ||
|
|
893ce31b17 | ||
|
|
e35d6c2651 | ||
|
|
8dd0512335 | ||
|
|
5c1194ea92 | ||
|
|
953ed83df5 | ||
|
|
c330d02e78 | ||
|
|
af6a23011c | ||
|
|
882ae07deb | ||
|
|
be7c002869 | ||
|
|
e621e4a5a1 | ||
|
|
bd815d4ea2 | ||
|
|
4bc30b0b6f | ||
|
|
4d3501118e | ||
|
|
8d303348d9 | ||
|
|
2a2f4120b9 | ||
|
|
15f8887f14 | ||
|
|
fe945ab3ea | ||
|
|
e2b6f4cedd | ||
|
|
d82c86cf62 | ||
|
|
9df2867175 | ||
|
|
5c803d1553 | ||
|
|
d45b1853f8 | ||
|
|
1ac621fb9c | ||
|
|
4e74ac1937 | ||
|
|
959734ac31 | ||
|
|
166f3de52f | ||
|
|
e3adfff16f | ||
|
|
7cbc374278 | ||
|
|
129041402d | ||
|
|
9ac578dfd6 | ||
|
|
ef709a169b | ||
|
|
2eeba33f94 | ||
|
|
f4b2b9ae7d | ||
|
|
e44efb2a54 | ||
|
|
598f6d55c5 | ||
|
|
a2c5c7e6e6 | ||
|
|
4f6e646812 | ||
|
|
a79564f685 | ||
|
|
a77e49cbc9 | ||
|
|
cefb737fd2 | ||
|
|
8c8aba2dd5 | ||
|
|
97b18e9121 | ||
|
|
ddc9cc2237 | ||
|
|
aff803f334 | ||
|
|
38ec03fe30 | ||
|
|
55836771c9 | ||
|
|
08a68796bf | ||
|
|
3b9efcb2d4 | ||
|
|
022ba3dce4 | ||
|
|
86973e622d | ||
|
|
0fa38bad6d | ||
|
|
465bd3ce85 | ||
|
|
0c9130ab6c | ||
|
|
6c75ecf0c4 | ||
|
|
d533a0591b | ||
|
|
3f74d58503 | ||
|
|
1ba92ccc99 | ||
|
|
75db184077 | ||
|
|
66902d74c4 | ||
|
|
f6cc6af39c | ||
|
|
0da8dcf04a | ||
|
|
190be6c7b9 | ||
|
|
2972ab31d7 | ||
|
|
4b4ae9b014 | ||
|
|
20db00afcc | ||
|
|
56c90ca4a3 | ||
|
|
fad2314539 | ||
|
|
460eb02086 | ||
|
|
5a30d509e7 | ||
|
|
0f0050115c | ||
|
|
bf55db959e | ||
|
|
39a9840d49 | ||
|
|
866ca264d9 | ||
|
|
f18725083a | ||
|
|
20fbbb1dbe | ||
|
|
1a7bf2d070 | ||
|
|
fc7e8ebc53 | ||
|
|
532360886e | ||
|
|
117a54d077 | ||
|
|
f2c131a2cc | ||
|
|
6f0310e8f7 | ||
|
|
c7141003db | ||
|
|
d32bdb2825 | ||
|
|
a66abfa583 | ||
|
|
2551772de4 | ||
|
|
25fe794acc | ||
|
|
694fd2f1e0 | ||
|
|
5a4b920ae2 | ||
|
|
95f1b65bca | ||
|
|
25401e5959 | ||
|
|
3da58d5c24 | ||
|
|
08ab3c17d6 | ||
|
|
ecdb94b429 | ||
|
|
00892c20fa | ||
|
|
c433aed521 | ||
|
|
1243fb9678 | ||
|
|
d9c2247f99 | ||
|
|
0d4d4283d1 | ||
|
|
effefd4844 | ||
|
|
2d409db2f9 | ||
|
|
00f262571c | ||
|
|
4eac953c71 | ||
|
|
43352ab986 | ||
|
|
9803bf6c3f | ||
|
|
ba326973e5 | ||
|
|
a1f2126c00 | ||
|
|
b1da64d46b | ||
|
|
2694dd9e21 | ||
|
|
37e0f1d3f3 | ||
|
|
f80aee5133 | ||
|
|
65ee7479ac | ||
|
|
868f6d408b | ||
|
|
efdfbf437a | ||
|
|
2b57bca55c | ||
|
|
99ccbf8a40 | ||
|
|
9fe322375f | ||
|
|
d13e369994 | ||
|
|
a46ad7b81e | ||
|
|
324ba0d3dc | ||
|
|
1c7fa0132d | ||
|
|
93223a9d44 | ||
|
|
b6d4af218b | ||
|
|
448941f741 | ||
|
|
7e0e9091be | ||
|
|
8104ff7236 | ||
|
|
75f734daa8 | ||
|
|
779a724875 | ||
|
|
e975e151f9 | ||
|
|
a5351e1546 | ||
|
|
af90b840ee | ||
|
|
2558c02470 | ||
|
|
df60ccff0e | ||
|
|
2ed8bbf391 | ||
|
|
ef3025798d | ||
|
|
bea3bd8392 | ||
|
|
99e8900aba | ||
|
|
1c4a6ca02e | ||
|
|
b5fa7be53f | ||
|
|
3804e842bb | ||
|
|
e6832ecf61 | ||
|
|
ed3e29bade | ||
|
|
811aeb58ea | ||
|
|
6b5aaa38ae | ||
|
|
4e9545262d | ||
|
|
d48c84d81b | ||
|
|
cbddb2652d | ||
|
|
5f629253ac | ||
|
|
8d84a95c01 | ||
|
|
2cabaf6402 | ||
|
|
ad25ac49b8 | ||
|
|
d0412a88df | ||
|
|
a3ae1eb2f0 | ||
|
|
2e616af836 | ||
|
|
4fd8afcee4 | ||
|
|
e96b4f5541 | ||
|
|
9978a56b1e | ||
|
|
d3a5be13ea | ||
|
|
5ba0de12eb | ||
|
|
a73c097c94 | ||
|
|
d3840b19fa | ||
|
|
b34b6594de | ||
|
|
2fba61e9bd | ||
|
|
1e9434221b | ||
|
|
afd6791075 | ||
|
|
b3b53b6b4d | ||
|
|
b8b8cf6ea9 | ||
|
|
9a340e1ad8 | ||
|
|
29dc5e4ea7 | ||
|
|
08fa49b791 | ||
|
|
333b776e77 | ||
|
|
f68f060be2 | ||
|
|
722bb31815 | ||
|
|
e28580de00 | ||
|
|
cc447a089a | ||
|
|
0c9a30256e | ||
|
|
fa10142f13 | ||
|
|
c342741670 | ||
|
|
64d49003e0 | ||
|
|
b0c93c7418 | ||
|
|
085abd635e | ||
|
|
3789c7c335 | ||
|
|
4fb4e42896 | ||
|
|
81e7a0c554 | ||
|
|
4cbe4ea82d | ||
|
|
ea4905cd0d | ||
|
|
3c09ba59d7 | ||
|
|
430f436b79 | ||
|
|
93001dce88 | ||
|
|
2d6d25cadf | ||
|
|
b644da8210 | ||
|
|
f1a9a28ed7 | ||
|
|
643926886c | ||
|
|
9a5a59d876 | ||
|
|
e7fe91faef | ||
|
|
e6cf05ddff | ||
|
|
c3e9a2816b | ||
|
|
0bb8e83d68 | ||
|
|
d0053534ab | ||
|
|
38725c2bb4 | ||
|
|
b8fe70e5ee | ||
|
|
3960a21e05 | ||
|
|
e14301d991 | ||
|
|
65f74044d8 | ||
|
|
f6eba32be5 | ||
|
|
af62e55da8 | ||
|
|
22a8191b97 | ||
|
|
17ff5f63bf | ||
|
|
48a7d814f8 | ||
|
|
2c5cf07e9c | ||
|
|
cace504a63 | ||
|
|
efa47af347 | ||
|
|
1c9fbdb032 | ||
|
|
ac2eb3adae | ||
|
|
d6081ee10f | ||
|
|
8b9b72958e | ||
|
|
34edb6e329 | ||
|
|
9487051796 | ||
|
|
7d0577460f | ||
|
|
6b23f4b34a | ||
|
|
451de4a6f6 | ||
|
|
33d587ee9e | ||
|
|
6b381238fe | ||
|
|
07d66ade85 | ||
|
|
e1c9240698 | ||
|
|
d3e8af23bc | ||
|
|
5f9fe2948c | ||
|
|
4c54d99621 | ||
|
|
72beba76c3 | ||
|
|
1047d471ed | ||
|
|
0496af47df | ||
|
|
0ae4bcbd6f | ||
|
|
c58bc038f4 | ||
|
|
ecaa31f38d | ||
|
|
96a7aabda0 | ||
|
|
be857913cd | ||
|
|
601444d0a5 | ||
|
|
3c972ac905 | ||
|
|
6984c29a3a | ||
|
|
cb0ea67a28 | ||
|
|
fcdb029b10 | ||
|
|
5f33a07f4c | ||
|
|
357c04def0 | ||
|
|
0dfa6e63bd | ||
|
|
af10cacdff | ||
|
|
5f5d934d58 | ||
|
|
fda637bb03 | ||
|
|
76d17ebef0 | ||
|
|
df76ecb60f | ||
|
|
83dae09208 | ||
|
|
430364aacd | ||
|
|
81f359dbcf | ||
|
|
9ed3c8b498 | ||
|
|
72abd63b69 | ||
|
|
ed67393d33 | ||
|
|
e8bc892d8b | ||
|
|
fafe7d5778 | ||
|
|
a968b19be0 | ||
|
|
e9dbeb1e34 | ||
|
|
feaff0a08c | ||
|
|
342192fd67 | ||
|
|
4efb3dfc9a | ||
|
|
b9bec5b526 | ||
|
|
1ae0752933 | ||
|
|
0696acb9c5 | ||
|
|
3087dc86f8 | ||
|
|
973c8f082f | ||
|
|
85e89e4326 | ||
|
|
fb106a3d41 | ||
|
|
fb2d676293 | ||
|
|
944cca709f | ||
|
|
5b4cbbb669 | ||
|
|
a8492f06bb | ||
|
|
b6f673cd68 | ||
|
|
42b4272965 | ||
|
|
5beb083c55 | ||
|
|
cf529adc79 | ||
|
|
5a4da8ed5d | ||
|
|
bd3092ae90 | ||
|
|
76094fd305 | ||
|
|
e1edaa24cc | ||
|
|
d0d51ccf82 | ||
|
|
05053b5cd6 | ||
|
|
978552136c | ||
|
|
fb62a0e338 | ||
|
|
630f861c62 | ||
|
|
c2b3b78846 | ||
|
|
6e74dabc1c | ||
|
|
2cb1a95132 | ||
|
|
70a9ffe4a2 | ||
|
|
3cbd52c1f9 | ||
|
|
753c720716 | ||
|
|
d627363132 | ||
|
|
da8c38575e | ||
|
|
a355e4d0e7 | ||
|
|
5482f130ba | ||
|
|
18a5215da9 | ||
|
|
a3efe86cac | ||
|
|
ed3a78b56d | ||
|
|
af63723794 | ||
|
|
a0edca5e5b | ||
|
|
a9fab86269 | ||
|
|
821411cfd6 | ||
|
|
a8be88d771 | ||
|
|
b4392aded7 | ||
|
|
37a453b3cd | ||
|
|
51fcc6b231 | ||
|
|
199b3b5582 | ||
|
|
6c3ff7da32 | ||
|
|
a375ab9780 | ||
|
|
f47c3a2d20 | ||
|
|
029f2db620 | ||
|
|
0acf238c74 | ||
|
|
27a4d5af54 | ||
|
|
ea56e460d0 | ||
|
|
00e78dd84f | ||
|
|
7eb5fb4520 | ||
|
|
8ff52e2e36 | ||
|
|
8c5dc91895 | ||
|
|
155e22a9f9 | ||
|
|
7177afd7f8 | ||
|
|
eca7a43a01 | ||
|
|
dd99f258c1 | ||
|
|
5c9a3e236b | ||
|
|
7b07137b5b | ||
|
|
eb898a8867 | ||
|
|
c86360c9c4 | ||
|
|
1d6b2bd002 | ||
|
|
41bb3e7319 | ||
|
|
f500945298 | ||
|
|
6da3f78df6 | ||
|
|
407f6d4671 | ||
|
|
6c76187f5d | ||
|
|
8c8800f156 | ||
|
|
b3f1103143 | ||
|
|
84e470d213 | ||
|
|
52a623f31e | ||
|
|
abd7d3cfb4 | ||
|
|
f543b55f19 | ||
|
|
f2a3ae409f | ||
|
|
4e4cf4bbc7 | ||
|
|
d532b57810 | ||
|
|
aa337c0c84 | ||
|
|
cc1f899948 | ||
|
|
848c30547c | ||
|
|
c8cc0131da | ||
|
|
b0c0ecb59c | ||
|
|
45f257ef14 | ||
|
|
fa38fa1410 | ||
|
|
ee492dcde1 | ||
|
|
22bec873a8 | ||
|
|
958fd0cdcb | ||
|
|
0d0c789d8b | ||
|
|
3d19299d30 | ||
|
|
4c56c96326 | ||
|
|
42e2f6a89d | ||
|
|
c715f20fe3 | ||
|
|
e02ce4c151 | ||
|
|
9f7a7a5703 | ||
|
|
147fd396cf | ||
|
|
293a95da6d | ||
|
|
952ecb2eec | ||
|
|
31e7cd31c1 | ||
|
|
51ec8199e4 | ||
|
|
f75c58b7d2 | ||
|
|
f8970a21be | ||
|
|
b6be20727d | ||
|
|
9c4a6b46b6 | ||
|
|
779c7cec30 | ||
|
|
154a21fbaf | ||
|
|
a2e0efaed3 | ||
|
|
0d408e0df1 | ||
|
|
b5ceda5955 | ||
|
|
ffa5219d23 | ||
|
|
099425abc8 | ||
|
|
dea3c4afeb | ||
|
|
4cdafe2497 | ||
|
|
a88f9933d2 | ||
|
|
a095d489f3 | ||
|
|
2c81ca2bf8 | ||
|
|
f2ccabf062 | ||
|
|
6dd4406782 | ||
|
|
062cc84d51 | ||
|
|
dfbc9a7fff | ||
|
|
1888b735d1 | ||
|
|
a44dc0a5f6 | ||
|
|
6634ade6b4 | ||
|
|
6962d24b52 | ||
|
|
eb56690684 | ||
|
|
4b7020fbbb | ||
|
|
f9a8231820 | ||
|
|
7e977414a7 | ||
|
|
c96d503dae | ||
|
|
8c603d59c6 | ||
|
|
bdb705e89a | ||
|
|
9172c39a26 | ||
|
|
3ca7c15208 | ||
|
|
cfda1e93a0 | ||
|
|
8f8a493b20 | ||
|
|
5aa9255909 | ||
|
|
107fb08e34 | ||
|
|
95a94da66f | ||
|
|
c8eb62e8f0 | ||
|
|
4010a84d88 | ||
|
|
c0db3a69d7 | ||
|
|
5dbf401615 | ||
|
|
c5811ae947 | ||
|
|
e1595e1091 | ||
|
|
aa366d4213 | ||
|
|
20ab4afb4b | ||
|
|
1300919c44 | ||
|
|
81b96c2b30 | ||
|
|
a98f72cc32 | ||
|
|
9ba9b87405 | ||
|
|
1e42ef042b | ||
|
|
206bc95ee2 | ||
|
|
b746e50233 | ||
|
|
a8dcfce99e | ||
|
|
f69f8d1e4a | ||
|
|
9c9ffb615f | ||
|
|
62a58d410f | ||
|
|
9e7e2e30a4 | ||
|
|
3350888af6 | ||
|
|
22552262b3 | ||
|
|
a0f474db20 | ||
|
|
d5cd42b0e7 | ||
|
|
307d3dda20 | ||
|
|
86e3e51b5a | ||
|
|
4fc081fcc6 | ||
|
|
ff30e0f99a | ||
|
|
6594f6b653 | ||
|
|
0942637d12 | ||
|
|
bb96db4395 | ||
|
|
f31f0d6168 | ||
|
|
1f4a3e4b8f | ||
|
|
b30f2bc193 | ||
|
|
b43d0746f4 | ||
|
|
227210209c | ||
|
|
3dd3cf2814 | ||
|
|
e98e221d93 | ||
|
|
81a59be0c4 | ||
|
|
8eb7723114 | ||
|
|
45d96734dd | ||
|
|
915ffd84c8 | ||
|
|
161a92aff7 | ||
|
|
9b207807eb | ||
|
|
0bdafed92f | ||
|
|
2ebd230a08 | ||
|
|
6d60000952 | ||
|
|
1b6422eed3 | ||
|
|
a643c44ac6 | ||
|
|
02732036de | ||
|
|
c0483b4b34 | ||
|
|
eff6c0666b | ||
|
|
ed97669d9e | ||
|
|
ddb14e2db7 | ||
|
|
c452252a7d | ||
|
|
6fcd301cf5 | ||
|
|
52862a3d63 | ||
|
|
ff092b4e9d | ||
|
|
0d6453751d | ||
|
|
082b9a907b | ||
|
|
5675a1e2ad | ||
|
|
8601c26f2d | ||
|
|
ece7a04437 | ||
|
|
9d2d3d2d0a | ||
|
|
cec445eab5 | ||
|
|
8116e8898e | ||
|
|
be0dbcd9eb | ||
|
|
5c44703f53 | ||
|
|
c364970e05 | ||
|
|
b2385cf80c | ||
|
|
2b1d03d9d4 | ||
|
|
5b6f33a2a1 | ||
|
|
352955d608 | ||
|
|
e07b281577 | ||
|
|
71f4e45256 | ||
|
|
828f51500d | ||
|
|
4a0a7e0df3 | ||
|
|
3c8b588312 | ||
|
|
711d61d120 | ||
|
|
bce363e543 | ||
|
|
d66d7b3a73 | ||
|
|
024542d361 | ||
|
|
7d85aacace | ||
|
|
31b2e6779d | ||
|
|
2b39a6d535 | ||
|
|
e490a1763a | ||
|
|
bf4b35aa0a | ||
|
|
1f7d3ec91d | ||
|
|
23412d6bfa | ||
|
|
bd0042f079 | ||
|
|
0ccf1a1c5d | ||
|
|
76d7002646 | ||
|
|
38cc4cfe7e | ||
|
|
d91b476f33 | ||
|
|
f7080c61d5 | ||
|
|
26842fba27 | ||
|
|
dce1065af5 | ||
|
|
f0af17abe4 | ||
|
|
fbd56da7ad | ||
|
|
0ef8b8c175 | ||
|
|
230879a0db | ||
|
|
2ef64e4597 | ||
|
|
6c18862fd1 | ||
|
|
6c109c52f6 | ||
|
|
f3400b8756 | ||
|
|
b79b1f5750 | ||
|
|
9b72f57463 | ||
|
|
6f9a45b54a | ||
|
|
683461d918 | ||
|
|
ada203c00c | ||
|
|
01887d652c | ||
|
|
fff23649cf | ||
|
|
c7762a5b65 | ||
|
|
d07fadde76 | ||
|
|
ac7a09edd1 | ||
|
|
f30f095f00 | ||
|
|
d91a66ee8d | ||
|
|
7db7ed97ee | ||
|
|
6b9d49eb71 | ||
|
|
7c9e8e3e40 | ||
|
|
5586f627d3 | ||
|
|
04f3f0872d | ||
|
|
e4921087d9 | ||
|
|
005b78413c | ||
|
|
c752f4d4b5 | ||
|
|
991e2dee5a | ||
|
|
33d974bb3d | ||
|
|
0a1677af95 | ||
|
|
7ffbb10587 | ||
|
|
3d45890a2d | ||
|
|
bb5eb64b28 | ||
|
|
e6a050de82 | ||
|
|
7e7eb844a7 | ||
|
|
e56c628bec | ||
|
|
c604f88685 | ||
|
|
83db186972 | ||
|
|
e675af9a18 | ||
|
|
ca8cd7ff3d | ||
|
|
b05002ee9b | ||
|
|
b3c665907b | ||
|
|
64776e3868 | ||
|
|
df4d66ad4b | ||
|
|
f0612591be | ||
|
|
5838c87140 | ||
|
|
1ce3ba0f30 | ||
|
|
dc8f7de75a | ||
|
|
d3f8e94fe9 | ||
|
|
88cf0184cc | ||
|
|
b9e096abfa | ||
|
|
ec959f6239 | ||
|
|
5f2459ae43 | ||
|
|
9af3b745a2 | ||
|
|
a5cd5fcb31 | ||
|
|
ec153fa6ff | ||
|
|
dd72b32559 | ||
|
|
4f4e1ca80d | ||
|
|
dd6c1d9607 | ||
|
|
7b5f4e9dd0 | ||
|
|
9cd17fca1c | ||
|
|
385a46b96f | ||
|
|
04cbba3f4e | ||
|
|
5ab5908ef5 | ||
|
|
9bf65ffe83 | ||
|
|
10c8fe1f26 | ||
|
|
01517f82b8 | ||
|
|
67277ccc21 | ||
|
|
b12cb3350f | ||
|
|
3ff8c504f8 | ||
|
|
939b9eb8a8 | ||
|
|
9935eba336 | ||
|
|
4024f9d6dd | ||
|
|
a097484a51 | ||
|
|
b0cfb4b2c4 | ||
|
|
05f3abe944 | ||
|
|
a191c136dc | ||
|
|
e31e228d10 | ||
|
|
47cbdf555f | ||
|
|
26aca723cb | ||
|
|
93d6a45a78 | ||
|
|
2ac20cf3af | ||
|
|
112f607d6e | ||
|
|
c9d33bffc8 | ||
|
|
59f9143a3c | ||
|
|
d7f3005b69 | ||
|
|
5f8cd972cd | ||
|
|
013a19e25b | ||
|
|
94c38df1ba | ||
|
|
d65d82ff0a | ||
|
|
3070376fb6 | ||
|
|
e019b65ef7 | ||
|
|
ccdb6a031f | ||
|
|
e5c5b77a9a | ||
|
|
3444e308fd | ||
|
|
8b37c64088 | ||
|
|
f6a1065cd7 | ||
|
|
4a2b28e88c | ||
|
|
6355a97b47 | ||
|
|
20c4056561 | ||
|
|
a5a87b975b | ||
|
|
456d12fb58 | ||
|
|
c735960ff8 | ||
|
|
cebd95b2c7 | ||
|
|
aff3373b78 | ||
|
|
420fe497a5 | ||
|
|
f6a292b57b | ||
|
|
39ffb8d99d | ||
|
|
2ac5438f6b | ||
|
|
76b36cef35 | ||
|
|
4b38da76b1 | ||
|
|
cc285ae8d8 | ||
|
|
a5a020eef1 | ||
|
|
6f68d7b7f1 | ||
|
|
abe27598de | ||
|
|
5577cd0fab | ||
|
|
0695fb9381 | ||
|
|
b5aa7fc213 | ||
|
|
b16638d813 | ||
|
|
a0564628c4 | ||
|
|
719bde87b7 | ||
|
|
d8ee308a5f | ||
|
|
a5d26d6517 | ||
|
|
8b3a22cbe4 | ||
|
|
8d47e56010 | ||
|
|
a6d68b9ecf | ||
|
|
d275d6cc69 | ||
|
|
e5ea32e9c0 | ||
|
|
5bc4504e37 | ||
|
|
fd89e83798 | ||
|
|
88f9172866 | ||
|
|
27f57cc23a | ||
|
|
f6c6011061 | ||
|
|
408b3b4060 | ||
|
|
55fd7ba8e6 | ||
|
|
e34eb502db | ||
|
|
292df38c10 | ||
|
|
a483c42893 | ||
|
|
bebcb978f6 | ||
|
|
ba7f994a71 | ||
|
|
9c7e2171f6 | ||
|
|
b7e8587608 | ||
|
|
0a33fba23e | ||
|
|
5370af4a84 | ||
|
|
df0d5fdbe8 | ||
|
|
7b33ee79dd | ||
|
|
ad8322b6a6 | ||
|
|
c43a10027b | ||
|
|
2ebdc4509c | ||
|
|
4cb4c9c6a5 | ||
|
|
9190335a70 | ||
|
|
4e244789a2 | ||
|
|
6de7b8e63b | ||
|
|
68e500eea0 | ||
|
|
840e09a684 | ||
|
|
d00a5223d3 | ||
|
|
3965a899c7 | ||
|
|
956667bf08 | ||
|
|
51e23d21cd | ||
|
|
44c6d6288e | ||
|
|
e5848086c3 | ||
|
|
138e5588e9 | ||
|
|
ab5828a560 | ||
|
|
1839f13149 | ||
|
|
320c21d272 | ||
|
|
e1e48922de | ||
|
|
3940f032af | ||
|
|
956688d9f4 | ||
|
|
7f45f4aeec | ||
|
|
78666ff7de | ||
|
|
dbdf10c75a | ||
|
|
2564da2615 | ||
|
|
bd25de15cc | ||
|
|
fcaa7c5f42 | ||
|
|
e36800b951 | ||
|
|
977fbaa8ef | ||
|
|
6ed62aa05c | ||
|
|
1d29ac228c | ||
|
|
a44d90671c | ||
|
|
d6b0912492 | ||
|
|
d588e6e4fd | ||
|
|
19ddddf618 | ||
|
|
a7bf1e9676 | ||
|
|
02f2837f86 | ||
|
|
0598eff9c5 | ||
|
|
a6364389ba | ||
|
|
9e9474a026 | ||
|
|
c23c5ae614 | ||
|
|
de3cb2f686 | ||
|
|
454b5a77ad | ||
|
|
4a493f3f6d | ||
|
|
61274cb865 | ||
|
|
8145a7536b | ||
|
|
e41d7899c7 | ||
|
|
88d99a7dea | ||
|
|
90823e3b17 | ||
|
|
3357f286ab | ||
|
|
ad080da026 | ||
|
|
25c2def710 | ||
|
|
604131b31d | ||
|
|
924da6ae69 | ||
|
|
12aadf18cc | ||
|
|
aa516522aa | ||
|
|
efb1ff5a93 | ||
|
|
aff9ff20e8 | ||
|
|
4c8a173213 | ||
|
|
b6240f16fb | ||
|
|
f5281535d9 | ||
|
|
96babd0939 | ||
|
|
464c2dca85 | ||
|
|
43dc04b4d0 | ||
|
|
e92f043cfa | ||
|
|
ff95b464ce | ||
|
|
69e1acd5ae | ||
|
|
e162a0ecd6 | ||
|
|
383045d1c0 | ||
|
|
e6bec8eb57 | ||
|
|
d2dea83c63 | ||
|
|
797aaf1ea8 | ||
|
|
5a7fd8c24e | ||
|
|
cc4ec4b598 | ||
|
|
55d78579c8 | ||
|
|
d94542049c | ||
|
|
6dec25b4f4 | ||
|
|
8c7049913b | ||
|
|
7edd8e6e19 | ||
|
|
2b4eb7127d | ||
|
|
9a3ce775a8 | ||
|
|
2ff78e531e | ||
|
|
03a33d87ff | ||
|
|
176e5627e5 | ||
|
|
5801d05047 | ||
|
|
815ba75c76 | ||
|
|
fff16b4019 | ||
|
|
e408a2cf1d | ||
|
|
b535600297 | ||
|
|
762c554468 | ||
|
|
a8c7057aba | ||
|
|
935f3fc37c | ||
|
|
fae2878c41 | ||
|
|
d30ccb810c | ||
|
|
8d75a85d6d | ||
|
|
625bfd1bec | ||
|
|
b04ffadf13 | ||
|
|
b142610800 | ||
|
|
5681722c09 | ||
|
|
9a3a536479 | ||
|
|
55f01149e4 | ||
|
|
6f5fc43490 | ||
|
|
cb62ffdfc2 | ||
|
|
40ac705c46 | ||
|
|
3ac4a71085 | ||
|
|
2963ced1d5 | ||
|
|
175aafee50 | ||
|
|
b75a3d6e81 | ||
|
|
5334727528 | ||
|
|
253206de22 | ||
|
|
5a60f4c02b | ||
|
|
63fcdd9db4 | ||
|
|
832c0230e2 | ||
|
|
e1028b0348 | ||
|
|
2433752273 | ||
|
|
1b0b551fc6 | ||
|
|
74849a8d48 | ||
|
|
ee0de6933f | ||
|
|
bd863dba34 | ||
|
|
f9af24e246 | ||
|
|
864c55feaf | ||
|
|
7628847a46 | ||
|
|
955b586908 | ||
|
|
32a1fd45df | ||
|
|
15fbde29d4 | ||
|
|
2cce02bfa9 | ||
|
|
7e35de8a0e | ||
|
|
9a98fd9cff | ||
|
|
f6d25153c6 | ||
|
|
1409d1b47b | ||
|
|
853294e168 | ||
|
|
1a4296386a | ||
|
|
c464f78340 | ||
|
|
8992c96014 | ||
|
|
62a13f2da6 | ||
|
|
f9005757bd | ||
|
|
cd6aca832d | ||
|
|
1b4eb039ae | ||
|
|
6c47065686 | ||
|
|
9bfcea6feb | ||
|
|
58d979712e | ||
|
|
a0f99858e3 | ||
|
|
2abbb75f98 | ||
|
|
3f92df0865 | ||
|
|
be0b98c467 | ||
|
|
7d45415990 | ||
|
|
f3f581fe2d | ||
|
|
f6837079d3 | ||
|
|
5cd987ba3a | ||
|
|
8293160a01 | ||
|
|
625ee2703d | ||
|
|
c3b520c3d4 | ||
|
|
80687dfea3 | ||
|
|
7f9da6478f | ||
|
|
056971fcbc | ||
|
|
ba26359dde | ||
|
|
a2f0640b1b | ||
|
|
16a4245ad7 | ||
|
|
608a5559ac | ||
|
|
dfac385d21 | ||
|
|
40d602c82e | ||
|
|
fbd6360bda | ||
|
|
a0047e3ad7 | ||
|
|
437d6810b7 | ||
|
|
82ec7733ba | ||
|
|
1357990c4c | ||
|
|
61a9264802 | ||
|
|
4a70f260f3 | ||
|
|
bcea2007bd | ||
|
|
fcf2c967ab | ||
|
|
2f8e225abd | ||
|
|
5f3f999222 | ||
|
|
2bc9fef758 | ||
|
|
aec03b2f24 | ||
|
|
ba6ed137c6 | ||
|
|
32dc5d3cdb | ||
|
|
597db25178 | ||
|
|
c2d6b9ad2c | ||
|
|
4977286936 | ||
|
|
cc09184183 | ||
|
|
a9713c3bfa | ||
|
|
3af40a66dd | ||
|
|
6e70f16e1b | ||
|
|
16fccf8184 | ||
|
|
804468f7b9 | ||
|
|
7dc3b7c8ac | ||
|
|
b42409efd1 | ||
|
|
cb010d81ac | ||
|
|
15979d4636 | ||
|
|
1a164fa057 | ||
|
|
a76f49f927 | ||
|
|
becee5b426 | ||
|
|
4ecaffd908 | ||
|
|
74b1dda884 | ||
|
|
d6858e18df | ||
|
|
92284e92c9 | ||
|
|
f709f3bb18 | ||
|
|
8e2dffc3b5 | ||
|
|
ae569316ff | ||
|
|
eee2ff6d61 | ||
|
|
65b828c424 | ||
|
|
f10ba86218 | ||
|
|
24e19deb58 | ||
|
|
f7a3f80689 | ||
|
|
b4168d09b5 | ||
|
|
ba0ea5b40a | ||
|
|
04cefda66c | ||
|
|
8c6a708764 | ||
|
|
a1e76d9d02 | ||
|
|
82ee6f0dee | ||
|
|
d58534b07d | ||
|
|
f37c863092 | ||
|
|
e71f76288b | ||
|
|
d094824d76 | ||
|
|
d635b10e24 | ||
|
|
dca43d6d8d | ||
|
|
abf3bfb98e | ||
|
|
c46f8513dd | ||
|
|
92338d478e | ||
|
|
c1e68323c7 | ||
|
|
f64eb0dea5 | ||
|
|
c1870af1b1 | ||
|
|
71783088c0 | ||
|
|
7057a135cf | ||
|
|
5cb107b844 | ||
|
|
57b22782d3 | ||
|
|
cb0a90d1d9 | ||
|
|
1c439a01a1 | ||
|
|
2bfc8e92ef | ||
|
|
68548cf248 | ||
|
|
3a64feefd0 | ||
|
|
da75d2d707 | ||
|
|
3a85d96fa4 | ||
|
|
883cc4b6fd | ||
|
|
aa61a9e77b | ||
|
|
9de5c62136 | ||
|
|
7b3ea7e12e | ||
|
|
bafa67c8de | ||
|
|
0d3a80e582 | ||
|
|
5a401a5f92 | ||
|
|
0e88cdb258 | ||
|
|
e5cd3adf97 | ||
|
|
6253b7a912 | ||
|
|
fe455bf901 | ||
|
|
3a0d21eb44 | ||
|
|
45ec0cef24 | ||
|
|
1468bb99f0 | ||
|
|
3efabee153 | ||
|
|
962de5b25f | ||
|
|
b265d6dd56 | ||
|
|
302cf8345d | ||
|
|
d249391816 | ||
|
|
0a24a6af1f | ||
|
|
52f40b7f9f | ||
|
|
8fbe6ee8ff | ||
|
|
5a3a8db772 | ||
|
|
56cd6711ce | ||
|
|
29339b962c | ||
|
|
d9cd4d7e36 | ||
|
|
56080f40ef | ||
|
|
bb0a3589c1 | ||
|
|
db109e3586 | ||
|
|
289f4b300a | ||
|
|
0ee9a0cfa4 | ||
|
|
d9f7aa760e | ||
|
|
01ab0d3530 | ||
|
|
8bd7794a2e | ||
|
|
fcfbb59637 | ||
|
|
089b94d753 | ||
|
|
bfba598ef4 | ||
|
|
e2efaab2b2 | ||
|
|
28e5e584b4 | ||
|
|
e0734fe848 | ||
|
|
2ea8a7e662 | ||
|
|
c0ea47ce75 | ||
|
|
84fb354bc0 | ||
|
|
9f35c954ac | ||
|
|
78b3778442 | ||
|
|
0e092284eb | ||
|
|
4be1e75128 | ||
|
|
62a581393d | ||
|
|
cec5274ea3 | ||
|
|
80f2912026 | ||
|
|
70b91867cb | ||
|
|
a1ccddb53c | ||
|
|
5a7db86471 | ||
|
|
518ed3a7fd | ||
|
|
d322be1666 | ||
|
|
a503aaa8a0 | ||
|
|
a7771e95f2 | ||
|
|
311de9381c | ||
|
|
c3aa7356ec | ||
|
|
63656cf383 | ||
|
|
6d3e2d9316 | ||
|
|
dcdd167db3 | ||
|
|
9ed62b02b6 | ||
|
|
6b330fa869 | ||
|
|
5cc753dec4 | ||
|
|
f7a0f50f87 | ||
|
|
8466970a1f | ||
|
|
48cb87ada2 | ||
|
|
145fe7ce13 | ||
|
|
b320eb853a | ||
|
|
474fe63ad3 | ||
|
|
da45aa7f15 | ||
|
|
11f21304f9 | ||
|
|
6cb2cdd5a2 | ||
|
|
9e8119e69c | ||
|
|
25c2bafa88 | ||
|
|
ae56bed032 | ||
|
|
4c8f9e154d | ||
|
|
0ed6f2924e | ||
|
|
8896d477aa | ||
|
|
1b08a250f6 | ||
|
|
8b09e1a446 | ||
|
|
720251458f | ||
|
|
a48680c26f | ||
|
|
684b5d4534 | ||
|
|
aedcc86fc5 | ||
|
|
978975d396 | ||
|
|
c9e9119bff | ||
|
|
20f222d19e | ||
|
|
187d51e501 | ||
|
|
fa744bb802 | ||
|
|
bed5b9d4ef | ||
|
|
13540c8008 | ||
|
|
48df491c31 | ||
|
|
3fbf8fcfb8 | ||
|
|
104038bc7e | ||
|
|
bb37c0058e | ||
|
|
f4e1d7d4c1 | ||
|
|
e6c9a82cd3 | ||
|
|
0ca71b62db | ||
|
|
936c4d8696 | ||
|
|
1c1f7b19dd | ||
|
|
0558d67240 | ||
|
|
3bb9a7b1f8 | ||
|
|
123cc92756 | ||
|
|
9babe7f1d2 | ||
|
|
f46b714990 | ||
|
|
3497b2a760 | ||
|
|
acd10bd978 | ||
|
|
802950d941 | ||
|
|
f158fba48d | ||
|
|
059d134990 | ||
|
|
f7871c0036 | ||
|
|
42943b315c | ||
|
|
37b9ccfaa8 | ||
|
|
1cf2a3dd3f | ||
|
|
1718806042 | ||
|
|
7d26aa533a | ||
|
|
521af84797 | ||
|
|
53eb6dcc80 | ||
|
|
6ed440d861 | ||
|
|
a99c4a3fee | ||
|
|
0ebd44bc4f | ||
|
|
2f53915064 | ||
|
|
08d3849c43 | ||
|
|
bb1f086674 | ||
|
|
f4771b4f21 | ||
|
|
2093b4ec85 | ||
|
|
e5f483de1d | ||
|
|
23be5484e3 | ||
|
|
0b8543e6dd | ||
|
|
a3025479e7 | ||
|
|
a6ea49981d | ||
|
|
2a39fb0bd5 | ||
|
|
2dde53760a | ||
|
|
a7e48a8d3b | ||
|
|
4fae158a3c | ||
|
|
7d87856f4a | ||
|
|
cfa525351a | ||
|
|
f9de43c7d4 | ||
|
|
e00227f0c6 | ||
|
|
e31942bf1e | ||
|
|
111de20a57 | ||
|
|
635fbae3c9 | ||
|
|
f29ee95176 | ||
|
|
0d91ad7d94 | ||
|
|
715650c4db | ||
|
|
a68212672b | ||
|
|
fce115d39c | ||
|
|
301f2d8a97 | ||
|
|
500c19d900 | ||
|
|
617b0de31f | ||
|
|
92ad792eff | ||
|
|
560f684f7f | ||
|
|
a0c0555089 | ||
|
|
9fa1fb7b44 | ||
|
|
f5fa49338d | ||
|
|
df7cfa0d6a | ||
|
|
a0579efbc2 | ||
|
|
b6a1182876 | ||
|
|
4582e1f508 | ||
|
|
621e396373 | ||
|
|
300723419b | ||
|
|
f75ab9f428 | ||
|
|
dbc7ff5de7 | ||
|
|
856db3df08 | ||
|
|
1479bef00d | ||
|
|
3761a9c8ba | ||
|
|
7c4c8c6275 | ||
|
|
3b9670c202 | ||
|
|
861010af0e | ||
|
|
57b527c886 | ||
|
|
31652e8b04 | ||
|
|
8b94a7174f | ||
|
|
01a79fcc6e | ||
|
|
17b4c18830 | ||
|
|
86541b1aa8 | ||
|
|
e022a45048 | ||
|
|
94e31f1953 | ||
|
|
ad8581db97 | ||
|
|
e2191113b0 | ||
|
|
161a553948 | ||
|
|
80f63e66c3 | ||
|
|
2f25409475 | ||
|
|
67320d3eb3 | ||
|
|
92aeb2d816 | ||
|
|
3420f6ca42 | ||
|
|
8e5efb923f | ||
|
|
ab4e0bc406 | ||
|
|
8993b3f4f0 | ||
|
|
499c281931 | ||
|
|
bb7e0f6f89 | ||
|
|
8919a2fcca | ||
|
|
ba0796c9ea | ||
|
|
1b7404f194 | ||
|
|
5add534848 | ||
|
|
ef7ebdfd1f | ||
|
|
42f356d322 | ||
|
|
dabf52511f | ||
|
|
df85f97646 | ||
|
|
a9d37bb2a2 | ||
|
|
6b689f1584 | ||
|
|
4b0fa94b3c | ||
|
|
c53b06c3d2 | ||
|
|
ed87a7cd67 | ||
|
|
108bf34cca | ||
|
|
8b98792ccf | ||
|
|
7c009b6dce | ||
|
|
5ae5a3d75d | ||
|
|
396ddd3e6f | ||
|
|
da7a125faf | ||
|
|
febf9b1815 | ||
|
|
55b4ba5832 | ||
|
|
3bc5ac28be | ||
|
|
93eb6378ba | ||
|
|
61837f0d68 | ||
|
|
c44b8b1029 | ||
|
|
8312ce4d4c | ||
|
|
3052b1cca5 | ||
|
|
ad3860981a | ||
|
|
2dbcbc6963 | ||
|
|
8767181a80 | ||
|
|
4c64707138 | ||
|
|
764fdd4d08 | ||
|
|
4c124770ed | ||
|
|
78b2a89b0a | ||
|
|
6147721314 | ||
|
|
2a5915f4b6 | ||
|
|
5382362168 | ||
|
|
3867b9933d | ||
|
|
4299abf68b | ||
|
|
b68701f51b | ||
|
|
c551efb75c | ||
|
|
92acb95a58 | ||
|
|
e2ea10d2eb | ||
|
|
d833d8946c | ||
|
|
3662e079ac | ||
|
|
c972a94876 | ||
|
|
234df8d11f | ||
|
|
14ca782672 | ||
|
|
9665473669 | ||
|
|
a8987d48ed | ||
|
|
f83715c370 | ||
|
|
a9d5dcf4a2 | ||
|
|
e568041143 | ||
|
|
4ce7374ac9 | ||
|
|
ed35b65390 | ||
|
|
15dc672bcf | ||
|
|
51891478e4 | ||
|
|
c2d5afc4e9 | ||
|
|
835fc1e360 | ||
|
|
2a70b998e3 | ||
|
|
5eecd14ce0 | ||
|
|
0afe0e5f46 | ||
|
|
396d4b341f | ||
|
|
bc002d500e | ||
|
|
6a86b28977 | ||
|
|
b91c83b6cd | ||
|
|
4b8412dfdb | ||
|
|
3713ae8c93 | ||
|
|
310be957b6 | ||
|
|
c29ca9722f | ||
|
|
64b6f98ce7 | ||
|
|
4a44282556 | ||
|
|
e3d7969b96 | ||
|
|
b68d71b7b7 | ||
|
|
b376d1682f | ||
|
|
af51469b62 | ||
|
|
fc7df585bd | ||
|
|
3ff31d20cf | ||
|
|
11c116480f | ||
|
|
fd5bc54cd0 | ||
|
|
95380168ef | ||
|
|
d349627fa1 | ||
|
|
3f8d297fb1 | ||
|
|
aae6c2c98b | ||
|
|
7698ceb108 | ||
|
|
495e868a71 | ||
|
|
95a2f4600b | ||
|
|
c43423a7d0 | ||
|
|
fa285ecc82 | ||
|
|
f47daac3cc | ||
|
|
03ca3f4f59 | ||
|
|
a9f81dd38e | ||
|
|
93c6928624 | ||
|
|
1e50dac5a6 | ||
|
|
545a653c0d | ||
|
|
20b6870f90 | ||
|
|
ca6f19f77d | ||
|
|
14a0e1a6cc | ||
|
|
38dfcdabd0 | ||
|
|
683371adaa | ||
|
|
7ba1948101 | ||
|
|
5bd53ed714 | ||
|
|
bff99fa537 | ||
|
|
54ff71798c | ||
|
|
81474336c1 | ||
|
|
6b50700d8c | ||
|
|
f708907d99 | ||
|
|
117923791a | ||
|
|
ea7c145c62 | ||
|
|
bdd764218b | ||
|
|
1fbd2c1adc | ||
|
|
2ff300970a | ||
|
|
f88c10d4aa | ||
|
|
eab8c27e4a | ||
|
|
c1e91e1ccb | ||
|
|
05e9129a66 | ||
|
|
76a9be2167 | ||
|
|
872673655e | ||
|
|
1ae27c7b5a | ||
|
|
b402b735d6 | ||
|
|
22001792cd | ||
|
|
9557c9ef21 | ||
|
|
6fe8b591ce | ||
|
|
23ae3f60f3 | ||
|
|
03b634b961 | ||
|
|
2897fdda04 | ||
|
|
f5fffafd43 | ||
|
|
e884f97621 | ||
|
|
e4028da886 | ||
|
|
a65bc95091 | ||
|
|
14563417a7 | ||
|
|
a3ee3e5a24 | ||
|
|
16a36b8315 | ||
|
|
861c49c9bc | ||
|
|
b3dacf9c5a | ||
|
|
2c13eb257b | ||
|
|
348decf72f | ||
|
|
92483cf188 | ||
|
|
8143b1d768 | ||
|
|
e7d6f37e98 | ||
|
|
d275a44895 | ||
|
|
f755d66342 | ||
|
|
22a438ed5e | ||
|
|
a014294d58 | ||
|
|
39953b5223 | ||
|
|
bd341db54a | ||
|
|
455ed7d503 | ||
|
|
637ae89583 | ||
|
|
7fd858b472 | ||
|
|
74d8377400 | ||
|
|
a29992b907 | ||
|
|
57097d1275 | ||
|
|
b21c62c11d | ||
|
|
0b3421e3cd | ||
|
|
a7adec1341 | ||
|
|
a236ee3ac3 | ||
|
|
d7b9e5a7d4 | ||
|
|
3d1738b14b | ||
|
|
f0e634a4fa | ||
|
|
0f5f60e477 | ||
|
|
9fe09f57f6 | ||
|
|
cf24b88bc8 | ||
|
|
d34fa0ba4e | ||
|
|
f40170ee6f | ||
|
|
2da750d5f9 | ||
|
|
720e700701 | ||
|
|
b452f7f32a | ||
|
|
7bfb8d6f53 | ||
|
|
b06db1f920 | ||
|
|
61eafa48ff | ||
|
|
8b07b15f6c | ||
|
|
5e67133495 | ||
|
|
30b740b7f0 | ||
|
|
7501ae4b4d | ||
|
|
4391c30299 | ||
|
|
536641eadd | ||
|
|
21594cd4c0 | ||
|
|
d4b263bc9f | ||
|
|
4e4eaed123 | ||
|
|
610843398e | ||
|
|
615e680b9b | ||
|
|
4e67c63808 | ||
|
|
f556f375ee | ||
|
|
f21f833aed | ||
|
|
0c6dd7a577 | ||
|
|
fc4872c5d6 | ||
|
|
3fe50e9ca3 | ||
|
|
a5e4d6a5ec | ||
|
|
0524129b64 | ||
|
|
7ce13751a0 | ||
|
|
e149ee0d70 | ||
|
|
2f3c71e55a | ||
|
|
5c04638cb4 | ||
|
|
6dd6d807b6 | ||
|
|
237d39f09c | ||
|
|
7a2f77193f | ||
|
|
d21980170e | ||
|
|
7dec34bdfe | ||
|
|
62d619b6cd | ||
|
|
67afffeb96 | ||
|
|
c58ea0c3bd | ||
|
|
acb8cea437 | ||
|
|
11f0957963 | ||
|
|
2d7c052fd9 | ||
|
|
23bd216cc7 | ||
|
|
50cfc5899b | ||
|
|
01d3cb4b11 | ||
|
|
a940200164 | ||
|
|
4e5c0f0a48 | ||
|
|
8e5657eff0 | ||
|
|
631a1b5864 | ||
|
|
67d2ad5511 | ||
|
|
ab4d7fae7d | ||
|
|
0e4a3f5e2b | ||
|
|
87c0535624 | ||
|
|
5648681ecc | ||
|
|
2c0bb1f7ba | ||
|
|
16d82212dd | ||
|
|
6ea1d06460 | ||
|
|
936413a6d9 | ||
|
|
88ce2eafab | ||
|
|
3915c8410b | ||
|
|
4115e42dc6 | ||
|
|
48f257f85a | ||
|
|
acdec64144 | ||
|
|
0beb97648a | ||
|
|
5564559192 | ||
|
|
8cb93bc1fe | ||
|
|
ae23b721b3 | ||
|
|
df06a4bb2c | ||
|
|
f37110605e | ||
|
|
8459754692 | ||
|
|
fc08e5cf23 | ||
|
|
6dec44bdc3 | ||
|
|
8cd69b2b70 | ||
|
|
625a03e799 | ||
|
|
aa4d4db11f | ||
|
|
76c353e790 | ||
|
|
8909b62dc4 | ||
|
|
371a588396 | ||
|
|
ee54b6d347 | ||
|
|
3ba215c35c | ||
|
|
161a3924d2 | ||
|
|
7b6fae6d92 | ||
|
|
71b52e58b2 | ||
|
|
d0a66ab16b | ||
|
|
9d75265e25 | ||
|
|
744e066d5f | ||
|
|
1791b443bc | ||
|
|
e850df505c | ||
|
|
918223e7da | ||
|
|
1552d992df | ||
|
|
f0a895691b | ||
|
|
1f7c805da4 | ||
|
|
1ad33556e9 | ||
|
|
6b5e83b98e | ||
|
|
6fb9c2df3b | ||
|
|
1b29803ed2 | ||
|
|
3477857584 | ||
|
|
0ce2c894e9 | ||
|
|
92470a35da | ||
|
|
6447fec028 | ||
|
|
0bc143cac3 | ||
|
|
8a4ba7a876 | ||
|
|
146a4d334b | ||
|
|
d86b7c4cec | ||
|
|
b1931059a5 | ||
|
|
a2476690c2 | ||
|
|
99be7b078b | ||
|
|
8925e97e62 | ||
|
|
4558204962 | ||
|
|
b4f3657323 | ||
|
|
91a3a01c39 | ||
|
|
4cc985a39b | ||
|
|
39a66daf04 | ||
|
|
2681a88488 | ||
|
|
e1162606f5 | ||
|
|
c6d4934dd6 | ||
|
|
21265cd561 | ||
|
|
a6b843f4dd | ||
|
|
d643051759 | ||
|
|
58eafe5100 | ||
|
|
74edcb7d6f | ||
|
|
e7bac8f78d | ||
|
|
5caf5b7694 | ||
|
|
76ac57edf4 | ||
|
|
d15b387bea | ||
|
|
b534cdce11 | ||
|
|
f246125677 | ||
|
|
2c644d5c18 | ||
|
|
ec3c0dc934 | ||
|
|
09c0e43501 | ||
|
|
878e17ddb4 | ||
|
|
c52ab62fa6 | ||
|
|
40ea306008 | ||
|
|
be3d68cebe | ||
|
|
4e32ff47df | ||
|
|
c6552f6800 | ||
|
|
511fd0e301 | ||
|
|
77bbc7fcaa | ||
|
|
53f82d286c | ||
|
|
bed40c3d05 | ||
|
|
29a0f2facb | ||
|
|
4bc4c2ff05 | ||
|
|
460699c48c | ||
|
|
89e8c152dc | ||
|
|
5caaa4d1d4 | ||
|
|
939fd88789 | ||
|
|
067b02f6d7 | ||
|
|
2afd39fbf1 | ||
|
|
1ce1c326b2 | ||
|
|
b6324fd71e | ||
|
|
7e462d6625 | ||
|
|
2a9cd436b6 | ||
|
|
4eeb48cdc2 | ||
|
|
23bfad6f87 | ||
|
|
36dc18012a | ||
|
|
d30d1fc447 | ||
|
|
15c7e41501 | ||
|
|
b6243d8478 | ||
|
|
cf30418be9 | ||
|
|
a95d034e98 | ||
|
|
29ea46bd17 | ||
|
|
8a17e2384e | ||
|
|
60dbb18504 | ||
|
|
5f53b34fae | ||
|
|
6b227d88ac | ||
|
|
34934368a2 | ||
|
|
15af034b34 | ||
|
|
1f281cd376 | ||
|
|
95d741496e | ||
|
|
21de1a2291 | ||
|
|
d047176fc9 | ||
|
|
7b1e2fb89e | ||
|
|
cb73222e21 | ||
|
|
9c878ce613 | ||
|
|
4beea4ad39 | ||
|
|
0aab10ba31 | ||
|
|
daa6196afc | ||
|
|
75ee69b07d | ||
|
|
f19e90afd7 | ||
|
|
36b4ef306e | ||
|
|
4bd3a2ae25 | ||
|
|
dd647c53ec | ||
|
|
0c0d16bbb3 | ||
|
|
c665a18b79 | ||
|
|
16d448b97c | ||
|
|
27ccc1189f | ||
|
|
eecebbcd4d | ||
|
|
2ca5ad075b | ||
|
|
20dad4cdb3 | ||
|
|
a3e0ad6b9f | ||
|
|
4b16631d45 | ||
|
|
944f4af914 | ||
|
|
4865c1c124 | ||
|
|
78aea56de4 | ||
|
|
adbe2e80f3 | ||
|
|
192c8cde87 | ||
|
|
d4ec366c5f | ||
|
|
bad28fa263 | ||
|
|
985cd6781e | ||
|
|
44dcc830f4 | ||
|
|
10ef4c0d3b | ||
|
|
d0fbc5ab2d | ||
|
|
1bc7bc3421 | ||
|
|
8b9b70704a | ||
|
|
804020210d | ||
|
|
5c51305978 | ||
|
|
43cc9d0ba3 | ||
|
|
52869218e0 | ||
|
|
82e11e52dd | ||
|
|
955c367a47 | ||
|
|
a613e9a84f | ||
|
|
c4b9660cd7 | ||
|
|
f433866671 | ||
|
|
fdc4a907c7 | ||
|
|
cf37e16e38 | ||
|
|
2aa42123f6 | ||
|
|
bc7dba6125 | ||
|
|
3ce24da15c | ||
|
|
3659e20b0d | ||
|
|
a90a57ffab | ||
|
|
45bdb6a66b | ||
|
|
64258e3513 | ||
|
|
fe72b800c6 | ||
|
|
39bc44322e | ||
|
|
1a0e6ee717 | ||
|
|
cc088b6382 | ||
|
|
b9f709c23d | ||
|
|
05b602d38c | ||
|
|
a8a071de1a | ||
|
|
391555b1f5 | ||
|
|
62b0bf8eca | ||
|
|
1ab464431f | ||
|
|
f04b54bc2a | ||
|
|
e1652a4b36 | ||
|
|
8c586fe7d9 | ||
|
|
d2c929cb72 | ||
|
|
b9584e48ac | ||
|
|
e269d1ba00 | ||
|
|
87750c462f | ||
|
|
219edb6b59 | ||
|
|
4f87e01bff | ||
|
|
5f69e957ac | ||
|
|
756bdbf92f | ||
|
|
610fb66b0c | ||
|
|
1186bac49c | ||
|
|
f6fe902c76 | ||
|
|
f984516a67 | ||
|
|
0d2f6456fb | ||
|
|
2fc61d8e5c | ||
|
|
12b119e235 | ||
|
|
6fa5f75963 | ||
|
|
1fa5514c57 | ||
|
|
73e3480bdf | ||
|
|
ddafdf8987 | ||
|
|
2bfc5e1d74 | ||
|
|
3c4d47d072 | ||
|
|
0fb7784a20 | ||
|
|
ef18264de3 | ||
|
|
e752874f22 | ||
|
|
ec584bf704 | ||
|
|
ca8ec70c40 | ||
|
|
3c802119ed | ||
|
|
58095a61c8 | ||
|
|
774919e03c | ||
|
|
566f6980ca | ||
|
|
648c43cc7f | ||
|
|
357dfc53c9 | ||
|
|
948b55026c | ||
|
|
d6bea6295e | ||
|
|
83ab430b9a | ||
|
|
c09bf1e878 | ||
|
|
ecb17cc4c9 | ||
|
|
7d56822e91 | ||
|
|
850e6afbd0 | ||
|
|
09c36844e6 | ||
|
|
bc2fe576a7 | ||
|
|
7facbc7a08 | ||
|
|
85df4731d1 | ||
|
|
d93c8fcb45 | ||
|
|
67a31ef4fa | ||
|
|
5349ebe73f | ||
|
|
f067a510b7 | ||
|
|
54cf6fe692 | ||
|
|
3bdeafa6b6 | ||
|
|
3f55d0cec3 | ||
|
|
ee8d9eeee9 | ||
|
|
732fa06abb | ||
|
|
c800e3b93a | ||
|
|
0568d4b4c8 | ||
|
|
7325368a4f | ||
|
|
dc9d6703bc | ||
|
|
c841ef5b9a | ||
|
|
1ce3c1bc47 | ||
|
|
25850ef8eb | ||
|
|
8f80548739 | ||
|
|
4d551f3994 | ||
|
|
cfda286532 | ||
|
|
24aac06051 | ||
|
|
6af0a85dce | ||
|
|
4e88dba630 | ||
|
|
2f320507ae | ||
|
|
b62963489a | ||
|
|
5383cf7c25 | ||
|
|
c840165fa8 | ||
|
|
4e95d969e3 | ||
|
|
330dd2bfc6 | ||
|
|
29efc2c5a5 | ||
|
|
e35836943e | ||
|
|
2beecee219 | ||
|
|
ad098d085e | ||
|
|
c55ccf242b | ||
|
|
b45081dd9c | ||
|
|
326d682e44 | ||
|
|
b354e017ba | ||
|
|
3ce302d0e6 | ||
|
|
a38f9e6344 | ||
|
|
4e08295cea | ||
|
|
73654e5984 | ||
|
|
077da6f6a4 | ||
|
|
0665af2537 | ||
|
|
d5832c22e3 | ||
|
|
d231364c1a | ||
|
|
fdb5c6aa1d | ||
|
|
47ba881870 | ||
|
|
9fd0508417 | ||
|
|
51442dc9ac | ||
|
|
17c27cb7e8 | ||
|
|
c53f1d947c | ||
|
|
3e013cd642 | ||
|
|
4f5177d57e | ||
|
|
9259f8e53d | ||
|
|
e67e13e81f | ||
|
|
874010f225 | ||
|
|
ca6d5da10f | ||
|
|
fbae0021a3 | ||
|
|
b52fe05363 | ||
|
|
c40e41cebe | ||
|
|
3711db1093 | ||
|
|
54f7837f2b | ||
|
|
151c38fa37 | ||
|
|
758b697cee | ||
|
|
4dbbf05d5c | ||
|
|
c0e08a617a | ||
|
|
de4e219dac | ||
|
|
37b48380a5 | ||
|
|
8ca21c42f5 | ||
|
|
daa8fad466 | ||
|
|
b1bcf254e4 | ||
|
|
5bd9115a20 | ||
|
|
0839130845 | ||
|
|
6583517dc5 | ||
|
|
7fb8417216 | ||
|
|
9170d71dc7 | ||
|
|
2f6987c07b | ||
|
|
dc514eb176 | ||
|
|
fb85d7c32f | ||
|
|
aad260c31e | ||
|
|
778cd7b2c7 | ||
|
|
ea3cb0218a | ||
|
|
d9e9c8c6b7 | ||
|
|
eec8ee03bf | ||
|
|
386e9adf44 | ||
|
|
1c670f433b | ||
|
|
4432a177a7 | ||
|
|
73179de5dd | ||
|
|
67c2421528 | ||
|
|
893fc97dba | ||
|
|
c8355d8381 | ||
|
|
cdf3e76528 | ||
|
|
5d39766298 | ||
|
|
26d72203c5 | ||
|
|
fcd2610d79 | ||
|
|
d769b51af2 | ||
|
|
c28a1bccac | ||
|
|
5a869b5c77 | ||
|
|
26cff8ebd0 | ||
|
|
bf5bbf24f2 | ||
|
|
bfaf540bb9 | ||
|
|
1d9c008100 | ||
|
|
c842416a9a | ||
|
|
bdc6b2807a | ||
|
|
c6a22fbd14 | ||
|
|
3c0eb68c70 | ||
|
|
522d8b4890 | ||
|
|
29cd50206c | ||
|
|
8d9f7be051 | ||
|
|
96484b0dbd | ||
|
|
72a3c01b31 | ||
|
|
3e077543a7 | ||
|
|
ab948dedaf | ||
|
|
2cfb672f4e | ||
|
|
0dc463ef2a | ||
|
|
e64213eaaa | ||
|
|
bd73a04c9d | ||
|
|
b31539f0f4 | ||
|
|
eb00e0012f | ||
|
|
f645c8869a | ||
|
|
351e391221 | ||
|
|
1d78a231db | ||
|
|
9463cf94ca | ||
|
|
ba127f4e00 | ||
|
|
d4da18e869 | ||
|
|
334a3bdf5d | ||
|
|
a1f632e8c9 | ||
|
|
3445a2cd58 | ||
|
|
3100911802 | ||
|
|
a6236eb98c | ||
|
|
c22488ec57 | ||
|
|
0857a19c3c | ||
|
|
2a03c32bc0 | ||
|
|
0b8a0504a2 | ||
|
|
e9aff8f1d8 | ||
|
|
93cb7e9fbb | ||
|
|
2d2607cd7f | ||
|
|
d80406b8e0 | ||
|
|
db9645641f | ||
|
|
b3018af61c | ||
|
|
7e6c2b4432 | ||
|
|
1ae1c81f9c | ||
|
|
eff698cbe8 | ||
|
|
036e4f52b7 | ||
|
|
d258417afb | ||
|
|
3057d02e37 | ||
|
|
af8204fbf0 | ||
|
|
968b3acbce | ||
|
|
5d2bd93bd7 | ||
|
|
4ba92b08ca | ||
|
|
11076b1355 | ||
|
|
71770a0a5f | ||
|
|
98d3766fe8 | ||
|
|
1fdb6b439e | ||
|
|
3136d6edc1 | ||
|
|
3e84becf77 | ||
|
|
1632c25223 | ||
|
|
e6c308c242 | ||
|
|
3fcb7ebf03 | ||
|
|
7416b8079b | ||
|
|
bde18054e5 | ||
|
|
954f8f4ddc | ||
|
|
0fee628842 | ||
|
|
69e6d82e83 | ||
|
|
e1e6270d86 | ||
|
|
30af182aff | ||
|
|
3ecc603770 | ||
|
|
15c2935d48 | ||
|
|
7a8e0a7e67 | ||
|
|
d98d6aeffb | ||
|
|
aaa4510f25 | ||
|
|
b14894fab7 | ||
|
|
1a87ce4194 | ||
|
|
6b96feb538 | ||
|
|
21dbb8af46 | ||
|
|
4d227ca7ef | ||
|
|
3a2683bb0c | ||
|
|
bd8f91d466 | ||
|
|
254844b5ec | ||
|
|
4cb1764439 | ||
|
|
847535721c | ||
|
|
e3c542d9df | ||
|
|
b4ed4ea956 | ||
|
|
99aadd3e73 | ||
|
|
c77dc1af6c | ||
|
|
9fd56987ef | ||
|
|
1e494a2213 | ||
|
|
da6d9ffb4b | ||
|
|
d3a001d808 | ||
|
|
d445668d9f | ||
|
|
32f14e16c8 | ||
|
|
46984b6df1 | ||
|
|
96c3e6b935 | ||
|
|
8092f1e481 | ||
|
|
632f904f30 | ||
|
|
8358a985b3 | ||
|
|
e21b5676e7 | ||
|
|
94b3afe6bc | ||
|
|
e4d8e5e4d2 | ||
|
|
88796bc017 | ||
|
|
e23daaa355 | ||
|
|
71017361b5 | ||
|
|
d202de3f50 | ||
|
|
03510073c6 | ||
|
|
8e58592a6e | ||
|
|
96dd5ba87b | ||
|
|
d4c0290195 | ||
|
|
f5d1df5407 | ||
|
|
9664709f21 | ||
|
|
b46655ecfe | ||
|
|
842e0add29 | ||
|
|
254764761d | ||
|
|
5f6c1a0f40 | ||
|
|
d5dcd193cf | ||
|
|
5012da96be | ||
|
|
df0e37cd0f | ||
|
|
4ab7b6bfdc | ||
|
|
f498250001 | ||
|
|
3945ac037b | ||
|
|
b0d8b00fcc | ||
|
|
62b0bf8af0 | ||
|
|
905e080770 | ||
|
|
097ecd3fb0 | ||
|
|
b9359759dd | ||
|
|
50fe366c42 | ||
|
|
9dd89e6b02 | ||
|
|
c03220d1ee | ||
|
|
9db843ab66 | ||
|
|
304973d9bc | ||
|
|
ab386f820c | ||
|
|
4adf1f5e2e | ||
|
|
b4ae87585c | ||
|
|
ae3298472d | ||
|
|
d241cb993e | ||
|
|
8376122634 | ||
|
|
a30e054d7d | ||
|
|
78f4317660 | ||
|
|
3ac3dab6c8 | ||
|
|
1a7e436ee1 | ||
|
|
f11b36ab3c | ||
|
|
e2ef195a84 | ||
|
|
645e2a9fc2 | ||
|
|
d59b8457c6 | ||
|
|
a2d1262cbf | ||
|
|
2f9a1e8601 | ||
|
|
b239f60fe4 | ||
|
|
983521e225 | ||
|
|
aeed04a5ec | ||
|
|
faed569e8a | ||
|
|
49ddb3ec13 | ||
|
|
71c0387ab0 | ||
|
|
e5d2d5e689 | ||
|
|
be2394b39b | ||
|
|
158298b96c | ||
|
|
ffa84f8b91 | ||
|
|
0954ddcc96 | ||
|
|
d9bd96af71 | ||
|
|
2649dcd05c | ||
|
|
939db75268 | ||
|
|
227bf73870 | ||
|
|
05e3898e7a | ||
|
|
9777c9aa93 | ||
|
|
b8d8461e61 | ||
|
|
b977543c72 | ||
|
|
4d87cd11cc | ||
|
|
957daf0547 | ||
|
|
3dae904122 | ||
|
|
e835196972 | ||
|
|
52ed0e2cee | ||
|
|
1e898d271d | ||
|
|
39754cde59 | ||
|
|
a6f7b938e1 | ||
|
|
0ad501af9a | ||
|
|
73035067e3 | ||
|
|
421b3830b6 | ||
|
|
59dcb905fe | ||
|
|
d222190fc7 | ||
|
|
06e9864d19 | ||
|
|
0b1a321615 | ||
|
|
9ee7d7769a | ||
|
|
2440a65d8e | ||
|
|
839931d65f | ||
|
|
2591b48abe | ||
|
|
2549597871 | ||
|
|
2064172bed | ||
|
|
dc19d0c61d | ||
|
|
05c6dc6dab | ||
|
|
4b653bc293 | ||
|
|
1c3476b8e9 | ||
|
|
61ca501c2a | ||
|
|
d916feec62 | ||
|
|
0dcecf6ca4 | ||
|
|
a04deb458f | ||
|
|
34f810571e | ||
|
|
5ab4d140d5 | ||
|
|
104778d17a | ||
|
|
5f8641f417 | ||
|
|
17b69ec1e9 | ||
|
|
8de942c274 | ||
|
|
a7d5a48b48 | ||
|
|
fdc00301c0 | ||
|
|
7620d5900e | ||
|
|
e973fe743e | ||
|
|
149e844d59 | ||
|
|
12ea3218e8 | ||
|
|
f9e7af1c9a | ||
|
|
8d2f6baaa2 | ||
|
|
25a2684e5a | ||
|
|
13e0e12181 | ||
|
|
81df124b42 | ||
|
|
d3d8230a09 | ||
|
|
d4eb199504 | ||
|
|
6562bc200c | ||
|
|
0b322f494b | ||
|
|
ceed1005cc | ||
|
|
6efcb75224 | ||
|
|
a45f2f357d | ||
|
|
0c2de9f936 | ||
|
|
ac005d1e0f | ||
|
|
fce0c2f896 | ||
|
|
a0a0b01cc3 | ||
|
|
450ec21c90 | ||
|
|
7b2c3ac12d | ||
|
|
8d4a375400 | ||
|
|
eda3a9b486 | ||
|
|
5b581a54aa | ||
|
|
5549068275 | ||
|
|
daf0d2eb32 | ||
|
|
bff1a6168f | ||
|
|
54ba41d1b3 | ||
|
|
cb5e13e39a | ||
|
|
269e95e0fe | ||
|
|
dabdb518ce | ||
|
|
eac4763d82 | ||
|
|
fa0ea5443d | ||
|
|
31c71f180b | ||
|
|
5c7552f826 | ||
|
|
fa1bd340f1 | ||
|
|
539aaefd72 | ||
|
|
d54bf42ba8 | ||
|
|
cbfbec41b4 | ||
|
|
db7532cad3 | ||
|
|
6b8df97282 | ||
|
|
584f96484c | ||
|
|
e1e5515694 | ||
|
|
d3ff6fd8c0 | ||
|
|
6bcda6a5a0 | ||
|
|
3828ba7c77 | ||
|
|
a632caed54 | ||
|
|
1e0265e673 | ||
|
|
a39cd9a238 | ||
|
|
2d437952f2 | ||
|
|
7e5b0d6f43 | ||
|
|
cf198e0f0a | ||
|
|
248918e458 | ||
|
|
c4cfc01b88 | ||
|
|
339c03adb2 | ||
|
|
48551cc602 | ||
|
|
e0550b4a45 | ||
|
|
93a55e87d5 | ||
|
|
e68f1ce3fe | ||
|
|
3573007485 | ||
|
|
b961c34d9a | ||
|
|
33e1759caa | ||
|
|
d72ee53cb4 | ||
|
|
a5fa46b82d | ||
|
|
bc15de0dfb | ||
|
|
1f7bdb94fb | ||
|
|
ea64e50ce5 | ||
|
|
ed8b606761 | ||
|
|
b722b3edd4 | ||
|
|
9266a4c504 | ||
|
|
d8ce5f69f4 | ||
|
|
0cfac49560 | ||
|
|
3e9ddc8e01 | ||
|
|
83dd1bd5c3 | ||
|
|
42f448cf17 | ||
|
|
f0319de93e | ||
|
|
c7e9294908 | ||
|
|
c1758bd754 | ||
|
|
bba2d0dbf7 | ||
|
|
00689b951b | ||
|
|
98b7164de3 | ||
|
|
d3e4470e1f | ||
|
|
433c91b68d | ||
|
|
3185d98b1a | ||
|
|
e603e441e7 | ||
|
|
b1bf8bb848 | ||
|
|
b1958ea0c4 | ||
|
|
930849758c | ||
|
|
7ee431725c | ||
|
|
7c866cb0e3 | ||
|
|
266108b25f | ||
|
|
82e3a86f17 | ||
|
|
ba18819b41 | ||
|
|
6b23c90bba | ||
|
|
edfd371973 | ||
|
|
8ed95602e2 | ||
|
|
cee1346bec | ||
|
|
400007c206 | ||
|
|
443e615066 | ||
|
|
ed22945ae2 | ||
|
|
5db084ba0e | ||
|
|
c7b3275a72 | ||
|
|
41cd319d4e | ||
|
|
1c307d0d59 | ||
|
|
9dcda873f3 | ||
|
|
4400c6271e | ||
|
|
0589690eaa | ||
|
|
5449e05898 | ||
|
|
93e64e1d5a | ||
|
|
7a2e237069 | ||
|
|
c95da8c150 | ||
|
|
89afd44344 | ||
|
|
04f100da8b | ||
|
|
2e24976b71 | ||
|
|
36a30cc23b | ||
|
|
869130572f | ||
|
|
2bb08af89b | ||
|
|
b3d41ef969 | ||
|
|
9c904409cd | ||
|
|
859182abff | ||
|
|
c0e88bf4bd | ||
|
|
79bcd35c0e | ||
|
|
2e637524fc | ||
|
|
a2c687599f | ||
|
|
d09a3074ad | ||
|
|
5736964b2e | ||
|
|
edaa82b8c5 | ||
|
|
2a6441a500 | ||
|
|
3bd5a05725 | ||
|
|
a6fbcc954e | ||
|
|
66cebb5fe4 | ||
|
|
e3671387fc | ||
|
|
f7c73c00af | ||
|
|
74536bd2e1 | ||
|
|
a8f2b0096b | ||
|
|
2d192fc390 | ||
|
|
031da802f3 | ||
|
|
5fdeb33031 | ||
|
|
347da67b71 | ||
|
|
65ef9ab20c | ||
|
|
3d64c6349e | ||
|
|
31cf9bb5b7 | ||
|
|
7c4a991c0e | ||
|
|
07f943af7e | ||
|
|
fbf5c958d0 | ||
|
|
672a4102cd | ||
|
|
52d61365b7 | ||
|
|
ff74f0cdaf | ||
|
|
dccfde9f39 | ||
|
|
5db23e1db7 | ||
|
|
b1ae48a209 | ||
|
|
3604ea6d67 | ||
|
|
967292be5c | ||
|
|
4f5335bba4 | ||
|
|
c0b52fc2d1 | ||
|
|
ac7a236763 | ||
|
|
1bf39c1f06 | ||
|
|
678283cd98 | ||
|
|
97a76aba8a | ||
|
|
af464e7b3d | ||
|
|
5ee7dd9200 | ||
|
|
9e1c2c6dd5 | ||
|
|
d29ba16cbc | ||
|
|
7bef45eb32 | ||
|
|
772ab77d2e | ||
|
|
58897c6941 | ||
|
|
8230e1bcec | ||
|
|
279a1dab4b | ||
|
|
9fb5173e3e | ||
|
|
0b37080cdd | ||
|
|
8747266df6 | ||
|
|
12cc422d5b | ||
|
|
bfc56cff72 | ||
|
|
d5405ce436 | ||
|
|
e158cc5886 | ||
|
|
aee040d6a4 | ||
|
|
e637cce6f2 | ||
|
|
98b906db40 | ||
|
|
7625f585d2 | ||
|
|
ed8837fe9f | ||
|
|
a5754125a8 | ||
|
|
6b848da4dd | ||
|
|
2768dc0c40 | ||
|
|
90b2e5568c | ||
|
|
b4f9235cb6 | ||
|
|
86ce7e9d25 | ||
|
|
2e47e8af6b | ||
|
|
d40f2cafec | ||
|
|
e84a246dd2 | ||
|
|
98f32ae0f0 | ||
|
|
5499109278 | ||
|
|
9a5b02692d | ||
|
|
970a74896a | ||
|
|
29179ecb84 | ||
|
|
5e0cccfe3d | ||
|
|
ed52ec9ee1 | ||
|
|
f25d2d5db4 | ||
|
|
e00908d8cb | ||
|
|
c24dc8f518 | ||
|
|
d381e48605 | ||
|
|
8dcec73929 | ||
|
|
9b9644fe63 | ||
|
|
8a70da6291 | ||
|
|
c84eb723ec | ||
|
|
5934e5e881 | ||
|
|
99150e2cef | ||
|
|
8191444fe9 | ||
|
|
5cfba6e83b | ||
|
|
4e9b8980d0 | ||
|
|
c800a53f77 | ||
|
|
6cc7e6cff6 | ||
|
|
d56c060863 | ||
|
|
b6409bded4 | ||
|
|
ca1189b6ca | ||
|
|
75b9d66698 | ||
|
|
6dfd35348f | ||
|
|
0007043f4a | ||
|
|
da1cbeb79c | ||
|
|
a83a457905 | ||
|
|
a4dc177621 | ||
|
|
a7265bf624 | ||
|
|
64dfb57366 | ||
|
|
658e8e74bd | ||
|
|
46b0ecf3fa | ||
|
|
830f379bf6 | ||
|
|
c9b544f8c4 | ||
|
|
11af370fe1 | ||
|
|
1e11559c4b | ||
|
|
8b188bd1b9 | ||
|
|
e0e3bc6d97 | ||
|
|
dbb566ac7c | ||
|
|
37b9704fbb | ||
|
|
c225aeffed | ||
|
|
2e3544f296 | ||
|
|
ce60a9c804 | ||
|
|
b6c0b998b3 | ||
|
|
6277539a79 | ||
|
|
9520d68cda | ||
|
|
812c71f31f | ||
|
|
b3cc360eeb | ||
|
|
39fe6fa081 | ||
|
|
243ee63283 | ||
|
|
24c946d687 | ||
|
|
84d1c789bd | ||
|
|
a983667b90 | ||
|
|
8d9cace469 | ||
|
|
e9d3e48f90 | ||
|
|
ed53394389 | ||
|
|
8893d08ba9 | ||
|
|
5a13daee39 | ||
|
|
c1e9cd2ea3 | ||
|
|
30213da70a | ||
|
|
5d363bdb0b | ||
|
|
630c0d3a5d | ||
|
|
56caef78e3 | ||
|
|
29be3a2e39 | ||
|
|
fbe149bcac | ||
|
|
92cafb36f6 | ||
|
|
8636f2e7c9 | ||
|
|
8f43a09533 | ||
|
|
654c5cba0c | ||
|
|
f9685b82a1 | ||
|
|
f2371d3702 | ||
|
|
fe39aecd72 | ||
|
|
68d176ad26 | ||
|
|
d7627dd81a | ||
|
|
a4e173f16d | ||
|
|
1437be3a9d | ||
|
|
059c32e59c | ||
|
|
e3a4cd6e1d | ||
|
|
dd9a5d8316 | ||
|
|
3b83c1fa7b | ||
|
|
ff128df76b | ||
|
|
cd04a9ea4f | ||
|
|
3b793005fe | ||
|
|
87e073a0b9 | ||
|
|
db8aa15677 | ||
|
|
6ed9749732 | ||
|
|
4e99211bc3 | ||
|
|
824748c2a7 | ||
|
|
fe6a98b30d | ||
|
|
49149cebf1 | ||
|
|
7b6a1b4212 | ||
|
|
965e7a25e2 | ||
|
|
0c3885c33d | ||
|
|
be32190829 | ||
|
|
f1d5916090 | ||
|
|
b2ea479fac | ||
|
|
16cc5df66d | ||
|
|
a63e3f4575 | ||
|
|
6b061e6332 | ||
|
|
4a17491aaa | ||
|
|
06f29712e2 | ||
|
|
4b1d59c5a9 | ||
|
|
1a81fe6a0d | ||
|
|
c63136d484 | ||
|
|
4b500f2dd8 | ||
|
|
9da20497cc | ||
|
|
5efc15b404 | ||
|
|
fa0740f216 | ||
|
|
52430cbdde | ||
|
|
01c4538ce0 | ||
|
|
3183ecceaf | ||
|
|
dd2e7cc129 | ||
|
|
adfa620ef4 | ||
|
|
1a32ddc70a | ||
|
|
4bfca6fe93 | ||
|
|
dbec043894 | ||
|
|
727d78a689 | ||
|
|
9b1e784604 | ||
|
|
50d44d8310 | ||
|
|
3b300698f3 | ||
|
|
899eb94b8b | ||
|
|
451a0c0e34 | ||
|
|
085c1a159c | ||
|
|
ca3f8a350d | ||
|
|
5025850f71 | ||
|
|
fe2f658e08 | ||
|
|
00a49c662b | ||
|
|
be8eb90b86 | ||
|
|
54e98666e7 | ||
|
|
e8b277ad0d | ||
|
|
3bd037f48f | ||
|
|
4d0e825b43 | ||
|
|
b14179a8de | ||
|
|
01111c51ee | ||
|
|
e7230d9f50 | ||
|
|
c22c5617ad | ||
|
|
cae7bb1dda | ||
|
|
c0830a9e1f | ||
|
|
33798ff108 | ||
|
|
8d348b9e14 | ||
|
|
3d2f6e4c3a | ||
|
|
88e9639482 | ||
|
|
0381a1c412 | ||
|
|
fdc3a7a04b | ||
|
|
6de5c1dab0 | ||
|
|
dc28ce0899 | ||
|
|
9286153742 | ||
|
|
f90892c92f | ||
|
|
5359f3a79a | ||
|
|
42fbf18bba | ||
|
|
ed227ce00e | ||
|
|
6c49d35aec | ||
|
|
238fd7fc74 | ||
|
|
1ebc58664e | ||
|
|
bcf64cbeef | ||
|
|
dc12d4d982 | ||
|
|
42e5877a7f | ||
|
|
a8924ac4fe | ||
|
|
7fb27c0c29 | ||
|
|
3d9a3194b2 | ||
|
|
e7e0ac006f | ||
|
|
cf35a270bb | ||
|
|
3e7ef49bde | ||
|
|
100d31791a | ||
|
|
15905c063a | ||
|
|
4c46f6a762 | ||
|
|
f4327c8c81 | ||
|
|
4a4b0e209c | ||
|
|
60e06737d7 | ||
|
|
d326154241 | ||
|
|
4766ae146f | ||
|
|
21a4ba7478 | ||
|
|
dfdeab70f1 | ||
|
|
c8fa767576 | ||
|
|
9c57ed6439 | ||
|
|
585826b438 | ||
|
|
cf22949f3b | ||
|
|
a00f8945ba | ||
|
|
2bc02bdaac | ||
|
|
b97327d6d7 | ||
|
|
61d1507a4d | ||
|
|
a6f07051c3 | ||
|
|
75417d15b7 | ||
|
|
4bab7ecfab | ||
|
|
7298e2441b | ||
|
|
1ed104d2f6 | ||
|
|
cf6125b9cc | ||
|
|
f2cfe33cdd | ||
|
|
a1e4125ded | ||
|
|
7a1433a994 | ||
|
|
460238a6b0 | ||
|
|
2a197487d5 | ||
|
|
51ce2befd8 | ||
|
|
e909dd15b0 | ||
|
|
aaf712be3c | ||
|
|
725e6b25dc | ||
|
|
ea322c0d3b | ||
|
|
f7730735c0 | ||
|
|
752b88f62d | ||
|
|
6131e1881b | ||
|
|
980da4ea0f | ||
|
|
b698ae2f50 | ||
|
|
50632f6527 | ||
|
|
6d4755d8c9 | ||
|
|
75b85c26dc | ||
|
|
1c8bbfbbdf | ||
|
|
c5a70f101a | ||
|
|
956c87a657 | ||
|
|
778b0eadcd | ||
|
|
b8e6f9d1be | ||
|
|
0e024a8c43 | ||
|
|
65b0bd01c8 | ||
|
|
3745dfc931 | ||
|
|
0186ae5ff2 | ||
|
|
f1eacac4fd | ||
|
|
4abe0064e6 | ||
|
|
cbc3adbec0 | ||
|
|
0902f80b46 | ||
|
|
47101d058b | ||
|
|
bc978ecbde | ||
|
|
a2cb5165d3 | ||
|
|
e582fa8b22 | ||
|
|
8ec8838634 | ||
|
|
8f259ffed9 | ||
|
|
74c2cf824b | ||
|
|
9ea3b04e82 | ||
|
|
99cb8c77b7 | ||
|
|
7056280c57 | ||
|
|
c14421c9ca | ||
|
|
97eff64b5b | ||
|
|
e522258693 | ||
|
|
b84c68fe11 | ||
|
|
8505feaa66 | ||
|
|
41f49c20ff | ||
|
|
1912ae36e6 | ||
|
|
08efc81cf0 | ||
|
|
a3b09c69cc | ||
|
|
5cf105c3a5 | ||
|
|
7408781d13 | ||
|
|
0afc8ea2c3 | ||
|
|
67b073776c | ||
|
|
8b48cf7f70 | ||
|
|
63287dd9c4 | ||
|
|
fc7ac921e2 | ||
|
|
57e3193a2a | ||
|
|
388f547878 | ||
|
|
f2e483540b | ||
|
|
7d31c371e0 | ||
|
|
bc750733d5 | ||
|
|
a66e22d9ed | ||
|
|
cc5974d07d | ||
|
|
085437e925 | ||
|
|
fa17a48483 | ||
|
|
78c1484570 | ||
|
|
9c2ea79bec | ||
|
|
b7ffe3fd1f | ||
|
|
dac14ae16e | ||
|
|
4872ff58bb | ||
|
|
755246cb6a | ||
|
|
9806422279 | ||
|
|
d5aea9f7d6 | ||
|
|
b852471596 | ||
|
|
fdf36ad726 | ||
|
|
c49e6ba0a2 | ||
|
|
0569c69634 | ||
|
|
1b734073b0 | ||
|
|
47d068e6d3 | ||
|
|
74a34362c3 | ||
|
|
0e33380df5 | ||
|
|
3db9c70e1b | ||
|
|
b2f3ffcc00 | ||
|
|
aa9ec6e50e | ||
|
|
dcb3d91610 | ||
|
|
9e71a98eda | ||
|
|
f2ef783b13 | ||
|
|
874e104570 | ||
|
|
1398086c38 | ||
|
|
db1586e2ec | ||
|
|
1158931d91 | ||
|
|
ee1b03b060 | ||
|
|
b99378ea38 | ||
|
|
c9692d502c | ||
|
|
3f6e659c6a | ||
|
|
4537bfb247 | ||
|
|
37556c9e02 | ||
|
|
34cd9d7cc1 | ||
|
|
030ac531a6 | ||
|
|
e19bd39fea | ||
|
|
0fe432dd8e | ||
|
|
c5b24ab136 | ||
|
|
fb06cc1e1a | ||
|
|
71e4ea166c | ||
|
|
fdf8834163 | ||
|
|
1fd70c9a99 | ||
|
|
7c3826f4a4 | ||
|
|
7fb3d05b2c | ||
|
|
f831b4d61d | ||
|
|
56b5c1b138 | ||
|
|
1cca826e8a | ||
|
|
41aa129b97 | ||
|
|
09ba11affb | ||
|
|
c9b47c392e | ||
|
|
4a9b171bb4 | ||
|
|
1b6d0e35ea | ||
|
|
6d638f3721 | ||
|
|
125556b73b | ||
|
|
db3728bc00 | ||
|
|
f002c8021c | ||
|
|
e47bd8ae3c | ||
|
|
0b3aefaefe | ||
|
|
f281d5eeb7 | ||
|
|
89ad11ebb6 | ||
|
|
2e50ee37a9 | ||
|
|
a4204347c1 | ||
|
|
afe81c4306 | ||
|
|
f0e431dd63 | ||
|
|
09f1574264 | ||
|
|
b7f64e46c2 | ||
|
|
a329445701 | ||
|
|
7527f9f099 | ||
|
|
9daa10e939 | ||
|
|
a59e338438 | ||
|
|
2767ac524f | ||
|
|
a714482cfb | ||
|
|
0138ab3934 | ||
|
|
a294671cf1 | ||
|
|
a8825c1f22 | ||
|
|
9abf696725 | ||
|
|
a1f34a7df9 | ||
|
|
c83e8eb787 | ||
|
|
4ec9f9b6cd | ||
|
|
0a1f200c69 | ||
|
|
67e9cba399 | ||
|
|
8065b30ba0 | ||
|
|
6af1ba6284 | ||
|
|
a0d817803e | ||
|
|
669c7b188b | ||
|
|
1c2343f740 | ||
|
|
280284e4c2 | ||
|
|
85ac553ded | ||
|
|
5bda711500 | ||
|
|
399835e7d1 | ||
|
|
75bb66776c | ||
|
|
7f952804d0 | ||
|
|
289645caa0 | ||
|
|
b280c0abd8 | ||
|
|
2d597ed690 | ||
|
|
b3296842b7 | ||
|
|
d73cefc280 | ||
|
|
6f4aebfc4c | ||
|
|
cac3ffc7d7 | ||
|
|
893fa5bfd6 | ||
|
|
40102a661d | ||
|
|
d7305c434e | ||
|
|
0bed76da11 | ||
|
|
117cd93e8f | ||
|
|
0bd62b0d5f | ||
|
|
8df4ade754 | ||
|
|
ea055afd3c | ||
|
|
9e92b1844a | ||
|
|
297b3a61a0 | ||
|
|
4b7b2291aa | ||
|
|
65d66c6073 | ||
|
|
7df46be6eb | ||
|
|
5ce9229e7d | ||
|
|
e6c9112575 | ||
|
|
f0a987ba3a | ||
|
|
42b2d36319 | ||
|
|
5d5ffe8866 | ||
|
|
8cd45e3f3f | ||
|
|
baf513bd56 | ||
|
|
5333da35cb | ||
|
|
fe85f138df | ||
|
|
684149eb50 | ||
|
|
8018f2c570 | ||
|
|
2fdbe6ba8c | ||
|
|
018c76ba41 | ||
|
|
48f40b4304 | ||
|
|
528ad1199a | ||
|
|
4c0d35c723 | ||
|
|
1540af266b | ||
|
|
8fb8b34239 | ||
|
|
4b7c2fe84f | ||
|
|
61a76dc0c9 | ||
|
|
e4de37708b | ||
|
|
ea40d25125 | ||
|
|
eacb24a482 | ||
|
|
65a32a977f | ||
|
|
40d09bc82e | ||
|
|
fa437644f5 | ||
|
|
762f6043c5 | ||
|
|
ab1109df90 | ||
|
|
c40da1a71a | ||
|
|
05490c1785 | ||
|
|
103f76e190 | ||
|
|
01bf2ae63b | ||
|
|
03b987c78e | ||
|
|
960addc8f2 | ||
|
|
5b09e95e51 | ||
|
|
2bbb66f844 | ||
|
|
4777f86f7e | ||
|
|
f95b3bcd4b | ||
|
|
6de0d81ea3 | ||
|
|
31fee5645d | ||
|
|
651bb747f1 | ||
|
|
52d787c903 | ||
|
|
0b4253090d | ||
|
|
50a1fcfc20 | ||
|
|
e2aa21fbea | ||
|
|
62aeb6dc7b | ||
|
|
a7d500422d | ||
|
|
76e95b8c55 | ||
|
|
9970986a52 | ||
|
|
abfc60511d | ||
|
|
663d0c05c7 | ||
|
|
76c39ef08a | ||
|
|
bcd45e87c8 | ||
|
|
5c54434300 | ||
|
|
feb20fad83 | ||
|
|
bb52b87d2f | ||
|
|
40b6980cdc | ||
|
|
bbeb399004 | ||
|
|
bdf99ba9f1 | ||
|
|
9161aff942 | ||
|
|
298a758166 | ||
|
|
000ebef28b | ||
|
|
54efec60b8 | ||
|
|
7f5f15a41d | ||
|
|
2766450696 | ||
|
|
24c6a3a637 | ||
|
|
d3b8baa5e7 | ||
|
|
fd57d40ca9 | ||
|
|
feae9b59f5 | ||
|
|
24ce235ed4 | ||
|
|
31a02082de | ||
|
|
f4ebca927b | ||
|
|
84daa9b151 | ||
|
|
213a6680dc | ||
|
|
978b59c0dc | ||
|
|
4063b8454b | ||
|
|
29e0269588 | ||
|
|
1731cc1202 | ||
|
|
09e5c16570 | ||
|
|
3709bcc5e4 | ||
|
|
b9b686b9cf | ||
|
|
b0ac50941f | ||
|
|
b8a58b270c | ||
|
|
a20cc5bd26 | ||
|
|
d31e1b00e8 | ||
|
|
1f11e25593 | ||
|
|
6af40cd92d | ||
|
|
84b1732683 | ||
|
|
17e0265ed0 | ||
|
|
da03db051d | ||
|
|
357b25905b | ||
|
|
e62cefa9e5 | ||
|
|
fd835deb8d | ||
|
|
063b55ae0d | ||
|
|
79efecb5a9 | ||
|
|
4fb6d8cafd | ||
|
|
3a5ccb7f8d | ||
|
|
e7c1345dcb | ||
|
|
e4b37b9f9a | ||
|
|
f06736315d | ||
|
|
3c438914c2 | ||
|
|
d8a1a3c838 | ||
|
|
6b0baa8365 | ||
|
|
c93a4e843f | ||
|
|
3daafa0b0e | ||
|
|
9ce92e39d5 | ||
|
|
4edd05f4df | ||
|
|
3af2811951 | ||
|
|
cfa89e3003 | ||
|
|
b87a633496 | ||
|
|
880242ed93 | ||
|
|
3d33c75a05 | ||
|
|
65d38d5efc | ||
|
|
db75b18da4 | ||
|
|
7b8b829c21 | ||
|
|
4eee09c390 | ||
|
|
64054f16c5 | ||
|
|
ae66327e98 | ||
|
|
d00e3d3129 | ||
|
|
df609e28ca | ||
|
|
21c582d309 | ||
|
|
3488bce63d | ||
|
|
5d347adbcf | ||
|
|
36ce06c3ca | ||
|
|
3071297bd5 | ||
|
|
0707bcab68 | ||
|
|
fe7196f2aa | ||
|
|
220252da74 | ||
|
|
65ebe4dfa6 | ||
|
|
580565de23 | ||
|
|
9e8af298d4 | ||
|
|
1ca64d6626 | ||
|
|
1b38f23268 | ||
|
|
1b2ed00cbb | ||
|
|
14a3c28044 | ||
|
|
5767d9a275 | ||
|
|
da802d5e70 | ||
|
|
50b6f5244d | ||
|
|
7f860e46f3 | ||
|
|
5a354d58fa | ||
|
|
f186c4572b | ||
|
|
fb592bf103 | ||
|
|
195c922f4e | ||
|
|
464eca3588 | ||
|
|
0fbef677ca | ||
|
|
99bdb1fec1 | ||
|
|
f6d777a668 | ||
|
|
1515e9d9d5 | ||
|
|
d164b567bf | ||
|
|
38baa371ca | ||
|
|
6c62d032fe | ||
|
|
10541ddcc7 | ||
|
|
f73a02b9a9 | ||
|
|
d755803e90 | ||
|
|
23d8a014ce | ||
|
|
09c5cdae11 | ||
|
|
1b88682fcb | ||
|
|
9cc703d424 | ||
|
|
8fd3cab450 | ||
|
|
b2a4fb115c | ||
|
|
ace647d6c4 | ||
|
|
5048fb5b48 | ||
|
|
4c55f4a22b | ||
|
|
96bc62b2a9 | ||
|
|
c5fc6fa9dc | ||
|
|
ed2b320271 | ||
|
|
1dd4ad9cc1 | ||
|
|
265fac3ca1 | ||
|
|
09437d3e91 | ||
|
|
1f2be3b484 | ||
|
|
87ce77cf25 | ||
|
|
dc5bac99b0 | ||
|
|
6fab3e789d | ||
|
|
b02fa68683 | ||
|
|
a07ba59b0f | ||
|
|
8f978dd187 | ||
|
|
a72ed9ca16 | ||
|
|
4b750825e9 | ||
|
|
7f04a27f41 | ||
|
|
6b3f973a61 | ||
|
|
e3ccf916bf | ||
|
|
de1302c6af | ||
|
|
8055816683 | ||
|
|
7e2b390963 | ||
|
|
fbf4016965 | ||
|
|
2b802c710f | ||
|
|
f7162cbc79 | ||
|
|
347419ee53 | ||
|
|
e4c8815ba7 | ||
|
|
09095f48a7 | ||
|
|
e573f446a5 | ||
|
|
b936730e51 | ||
|
|
6e1c7a09cc | ||
|
|
74060cbf27 | ||
|
|
4cba2cb8c1 | ||
|
|
67ae206b0e | ||
|
|
dfc6694dce | ||
|
|
82170b8d50 | ||
|
|
523aa0a6d3 | ||
|
|
de2a38b5a2 | ||
|
|
212f1de3ae | ||
|
|
6f7f2f75b0 | ||
|
|
7a5612ec2b | ||
|
|
f8a16ce6c0 | ||
|
|
a14d494bba | ||
|
|
e240183fa0 | ||
|
|
d4b6dbfba3 | ||
|
|
0986665d53 | ||
|
|
e6f4c5e41f | ||
|
|
0e9c8ebf61 | ||
|
|
cab1f16734 | ||
|
|
4c56797d14 | ||
|
|
247da4010a | ||
|
|
6f078b6865 | ||
|
|
bfe986e62a | ||
|
|
e3bc589d4b | ||
|
|
b6d1ecf0e5 | ||
|
|
6151fcfda0 | ||
|
|
0c210d088f | ||
|
|
36132012db | ||
|
|
3c96621af4 | ||
|
|
da0b052cc2 | ||
|
|
7fae0f3fe9 | ||
|
|
6970500f85 | ||
|
|
1286a9e237 | ||
|
|
bf085706b0 | ||
|
|
cb1d1cdc5e | ||
|
|
90c6aebac6 | ||
|
|
84ed82d896 | ||
|
|
da6c2a88b1 | ||
|
|
f87f3c2736 | ||
|
|
c41ca40337 | ||
|
|
f9f27045ee | ||
|
|
3496c3a2e8 | ||
|
|
23d7af5a30 | ||
|
|
01a51c58d8 | ||
|
|
be777dc848 | ||
|
|
55f866e5c5 | ||
|
|
94f915d36a | ||
|
|
23aebace18 | ||
|
|
fb2ce8708f | ||
|
|
ac5fb5e763 | ||
|
|
c93fb71709 | ||
|
|
2df9cf2f5f | ||
|
|
7153bd8a57 | ||
|
|
337a8ca820 | ||
|
|
f47c97eb17 | ||
|
|
8dd87eda01 | ||
|
|
cae4e23872 | ||
|
|
8b9251bb3a | ||
|
|
96e25d2ff7 | ||
|
|
7d4e95a742 | ||
|
|
ac35981e0e | ||
|
|
d04cecc733 | ||
|
|
c2876f28a8 | ||
|
|
05f33ded14 | ||
|
|
02c85139b4 | ||
|
|
8ed1945667 | ||
|
|
85c54d46b0 | ||
|
|
31e3788ead | ||
|
|
cd460dd352 | ||
|
|
8667351378 | ||
|
|
e2f5593d91 | ||
|
|
27d255bc40 | ||
|
|
753ae2de39 | ||
| 9c10e4401f | |||
| b57bdaacc6 | |||
| 851b35ea4f | |||
|
|
5c981172de | ||
| 0635341f43 | |||
|
|
65a5cad9cf | ||
|
|
5aa4c0ea67 | ||
|
|
839adb9751 | ||
|
|
f8ab590356 | ||
|
|
282470ad96 | ||
|
|
4488ef397b | ||
|
|
69dd9f124d | ||
|
|
2d3eec300f | ||
|
|
3de37e8e4e | ||
|
|
8e6cd15101 | ||
|
|
2f186e5db9 | ||
|
|
b52c3a5597 | ||
|
|
e29de024d2 | ||
|
|
5f9c65156d | ||
|
|
19b29b4aad | ||
|
|
02b2f14e6d | ||
|
|
8a3df3a2a6 | ||
|
|
5e33b0d84a | ||
|
|
5a47243022 | ||
|
|
d67f765d31 | ||
|
|
294e25bf12 | ||
|
|
0f99625334 | ||
|
|
918546a090 | ||
|
|
1c8e652797 | ||
|
|
66942f866e | ||
|
|
7440fe3936 | ||
|
|
35395538b4 | ||
|
|
36f4833b71 | ||
|
|
33de213a66 | ||
|
|
9fa229fa36 | ||
|
|
6efa11d8af | ||
|
|
cc3fa7d1fd | ||
|
|
de5d92be70 | ||
|
|
cb679247fc | ||
|
|
f7e961c223 | ||
|
|
89fc7c6482 | ||
|
|
12b32ce1a0 | ||
|
|
cdf4d4999e | ||
|
|
6926a5c989 | ||
|
|
2944eb4a75 | ||
|
|
135259e0db |
16
.editorconfig
Normal file
16
.editorconfig
Normal file
@@ -0,0 +1,16 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
indent_size = 2
|
||||
|
||||
[*.{yml,yaml,vue,ts}]
|
||||
indent_size = 2
|
||||
24
.gitattributes
vendored
Normal file
24
.gitattributes
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
# Force LF line endings for all text files.
|
||||
# Prevents git from auto-converting LF -> CRLF on Windows checkouts.
|
||||
* text=auto eol=lf
|
||||
|
||||
# Explicit binary files — git won't touch line endings for these
|
||||
*.phar binary
|
||||
*.png binary
|
||||
*.jpg binary
|
||||
*.jpeg binary
|
||||
*.gif binary
|
||||
*.ico binary
|
||||
*.zip binary
|
||||
*.gz binary
|
||||
*.tgz binary
|
||||
*.txz binary
|
||||
*.xz binary
|
||||
*.bz2 binary
|
||||
*.7z binary
|
||||
*.exe binary
|
||||
*.dll binary
|
||||
*.sfx binary
|
||||
*.so binary
|
||||
*.a binary
|
||||
*.o binary
|
||||
15
.github/FUNDING.yml
vendored
Normal file
15
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: [crazywhalecc]# Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
# ko_fi: crazywhalecc # Replace with a single Ko-fi username
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||
# noinspection YAMLSchemaValidation
|
||||
buy_me_a_coffee: # crazywhalecc
|
||||
custom: 'https://github.com/crazywhalecc/crazywhalecc/blob/master/FUNDING.md' # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
||||
17
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
17
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Build PHP or library failed, download failed, doesn't seem to work...
|
||||
title: ''
|
||||
labels: bug
|
||||
body:
|
||||
- type: textarea
|
||||
id: what-happened
|
||||
attributes:
|
||||
label: What happened?
|
||||
description: |
|
||||
Please tell us what you do, what you get and what you expected.
|
||||
Provide with some step-by-step instructions to reproduce the issue.
|
||||
If possible, attach a screenshot or log files in ./log directory.
|
||||
validations:
|
||||
required: true
|
||||
---
|
||||
8
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
8
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: new feature
|
||||
assignees: crazywhalecc
|
||||
|
||||
---
|
||||
10
.github/ISSUE_TEMPLATE/something-want-to-know.md
vendored
Normal file
10
.github/ISSUE_TEMPLATE/something-want-to-know.md
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
name: Something want to know
|
||||
about: Describe your question about static-php, we will reply ASAP
|
||||
title: ''
|
||||
labels: question
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
|
||||
24
.github/copilot-instructions.md
vendored
Normal file
24
.github/copilot-instructions.md
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
# StaticPHP v3 Copilot Instructions
|
||||
|
||||
> The canonical agent instructions live in [AGENTS.md](./AGENTS.md). This file provides the essential summary for GitHub Copilot; read `AGENTS.md` for the complete project map, working rules, and validation steps.
|
||||
|
||||
StaticPHP is a PHP CLI application for building static PHP binaries, PHP SAPIs, extensions, libraries, and helper tools. Prefer the v3 architecture under `src/StaticPHP`, `src/Package`, `config/pkg`, and `config/artifact`.
|
||||
|
||||
## Skills
|
||||
|
||||
Use the repository skills when the task matches them:
|
||||
|
||||
- `.github/skills/staticphp-package-maintenance`: add, modify, review, or validate package, artifact, extension, library, target, or tool definitions.
|
||||
- `.github/skills/staticphp-build-troubleshooting`: diagnose build, download, doctor, shell, terminal, CI, smoke-test, or log failures.
|
||||
- `.github/skills/staticphp-documentation-sync`: synchronize bilingual documentation (`docs/en/` and `docs/zh/`) when features, commands, configuration, APIs, or behavior change.
|
||||
|
||||
## Quick Reference
|
||||
|
||||
- **Entrypoint**: `php bin/spc`
|
||||
- **Config lint**: `php bin/spc dev:lint-config`
|
||||
- **CS fix**: `composer cs-fix`
|
||||
- **Tests**: `composer test`
|
||||
- **Static analysis**: `composer analyse`
|
||||
- **Extension packages**: `config/pkg/ext/ext-*.yml`, prefix with `ext-` in dependencies
|
||||
- **Platform suffixes**: `@unix`, `@linux`, `@macos`, `@windows` — prefer these over runtime conditionals
|
||||
- **Do NOT edit generated dirs**: `buildroot/`, `source/`, `downloads/`, `pkgroot/`
|
||||
12
.github/pull_request_template.md
vendored
Normal file
12
.github/pull_request_template.md
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
## What does this PR do?
|
||||
|
||||
<!-- Please describe the changes made in this PR here. -->
|
||||
|
||||
|
||||
## Checklist before merging
|
||||
|
||||
- If you modified `*.php` or `*.yml`, run them locally to ensure your changes are valid:
|
||||
- [ ] `composer cs-fix`
|
||||
- [ ] `composer analyse`
|
||||
- [ ] `composer test`
|
||||
- [ ] `bin/spc dev:lint-config`
|
||||
56
.github/skills/staticphp-build-troubleshooting/SKILL.md
vendored
Normal file
56
.github/skills/staticphp-build-troubleshooting/SKILL.md
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
---
|
||||
name: staticphp-build-troubleshooting
|
||||
description: Diagnose StaticPHP v3 failures. Use when investigating build, compile, linker, download, doctor, environment, CI, smoke-test, terminal output, spc.output.log, spc.shell.log, config.log, CMake logs, or user-provided error snippets from StaticPHP commands.
|
||||
---
|
||||
|
||||
# StaticPHP Build Troubleshooting
|
||||
|
||||
## Overview
|
||||
|
||||
Use this skill to triage StaticPHP failures from the outside in: command and environment first, SPC module/stage metadata next, shell/config logs last. The goal is to isolate the failing package, stage, command, and root cause before editing code.
|
||||
|
||||
## First Pass
|
||||
|
||||
1. Capture the exact command, OS, architecture, PHP version, extensions/libs/targets, and whether the run used `-v`, `-vv`, or `-vvv`.
|
||||
2. Read the final terminal error first. StaticPHP prints module error info, failed package, failed stage, failed command, log paths, and extra log files when available.
|
||||
3. If log files exist, inspect them in this order:
|
||||
- `log/spc.output.log`: user-facing SPC messages and exception summary.
|
||||
- `log/spc.shell.log`: executed commands, working directories, env, stdout/stderr.
|
||||
- Extra logs named in the exception output: `php-src.config.log`, `lib.<pkg>.console.log`, `lib.<pkg>.cmake-error.log`, `lib.<pkg>.cmake-configure.log`, `lib.<pkg>.cmake-output.log`.
|
||||
4. Read `references/log-triage.md` for pattern matching, likely causes, and next checks.
|
||||
|
||||
## Diagnosis Rules
|
||||
|
||||
- Do not start by changing shared core code. Most failures are package metadata, environment, upstream source, dependency order, or platform flags.
|
||||
- Prefer evidence from the last failing command over earlier warnings.
|
||||
- When logs are long, search backward for `Command exited`, `error:`, `undefined reference`, `not found`, `No package`, `CMake Error`, `configure: error`, `fatal error`, `Failed module`, and `Failed stage`.
|
||||
- Use `config.log` and CMake logs for configure detection failures; use `spc.shell.log` for the actual command and env.
|
||||
- Be careful with rebuild suggestions. `spc reset --with-download --yes` is destructive to caches; ask before clearing caches unless the user explicitly asked.
|
||||
|
||||
## Repro Commands
|
||||
|
||||
Use focused commands when reproducing:
|
||||
|
||||
```bash
|
||||
php bin/spc doctor -vvv
|
||||
php bin/spc download --for-extensions="curl,openssl" --with-php=8.5 --parallel=4 --retry=3 -vvv
|
||||
php bin/spc build:libs "openssl" -vvv
|
||||
php bin/spc build:php "bcmath,openssl,curl" --build-cli -vvv
|
||||
php bin/spc dev:lint-config
|
||||
```
|
||||
|
||||
Choose the smallest command that still reaches the failing package.
|
||||
|
||||
## Fix Direction
|
||||
|
||||
After finding the failing package/stage:
|
||||
|
||||
- Package YAML issue: use `$staticphp-package-maintenance`, then edit `config/pkg/*` or `config/artifact/*`.
|
||||
- Build command or patch issue: inspect the package class under `src/Package/*`.
|
||||
- Environment issue: check `doctor`, toolchain classes, and `config/pkg/tool/*`.
|
||||
- Upstream download issue: check artifact type, regex, GitHub rate limiting, mirror behavior, and `GITHUB_TOKEN`.
|
||||
- Core exception/logging issue: inspect `src/StaticPHP/Exception`, `src/StaticPHP/Runtime/Shell`, or executor classes only after package-level causes are ruled out.
|
||||
|
||||
## Resources
|
||||
|
||||
- `references/log-triage.md`: log files, failure categories, search patterns, and likely fixes.
|
||||
4
.github/skills/staticphp-build-troubleshooting/agents/openai.yaml
vendored
Normal file
4
.github/skills/staticphp-build-troubleshooting/agents/openai.yaml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
interface:
|
||||
display_name: "StaticPHP Build Troubleshooting"
|
||||
short_description: "Diagnose StaticPHP build and log failures."
|
||||
default_prompt: "Use $staticphp-build-troubleshooting to investigate a StaticPHP build, download, doctor, or log failure."
|
||||
209
.github/skills/staticphp-build-troubleshooting/references/log-triage.md
vendored
Normal file
209
.github/skills/staticphp-build-troubleshooting/references/log-triage.md
vendored
Normal file
@@ -0,0 +1,209 @@
|
||||
# StaticPHP Log Triage
|
||||
|
||||
## Contents
|
||||
|
||||
- Log files
|
||||
- Terminal summary
|
||||
- Search strategy
|
||||
- Failure categories
|
||||
- Rebuild hygiene
|
||||
- Reporting checklist
|
||||
|
||||
## Log Files
|
||||
|
||||
Default log directory is `log/`, controlled by `SPC_LOGS_DIR`. The important files are:
|
||||
|
||||
- `spc.output.log`: StaticPHP console/logger output and exception summaries.
|
||||
- `spc.shell.log`: command execution log with command, caller, inline env, working directory, stdout, stderr, and exit code.
|
||||
- `php-src.config.log`: copied when PHP source configure fails.
|
||||
- `lib.<pkg>.console.log`: copied Autoconf `config.log` for a library when available.
|
||||
- `lib.<pkg>.cmake-configure.log`: copied CMake 3.26+ configure log.
|
||||
- `lib.<pkg>.cmake-error.log`: copied CMake error log.
|
||||
- `lib.<pkg>.cmake-output.log`: copied CMake output log.
|
||||
|
||||
Logs are created when `SPC_ENABLE_LOG_FILE` is true. Old `*.log` files are cleaned unless `SPC_PRESERVE_LOG` is set to a truthy value. The code in `src/bootstrap.php` reads `SPC_PRESERVE_LOG` (no trailing S).
|
||||
|
||||
## Terminal Summary
|
||||
|
||||
StaticPHP exceptions often print:
|
||||
|
||||
- Exception category: build, download, environment, execution, file system, patch, validation, wrong usage, registry, internal.
|
||||
- Failed module: package name, type, and sometimes class/file/line.
|
||||
- Failed stage: call chain such as `build` or `build -> configure`.
|
||||
- Failed command: the command that returned non-zero.
|
||||
- Command working directory and inline env.
|
||||
- Paths to `spc.output.log`, `spc.shell.log`, and extra logs.
|
||||
|
||||
Use this summary to choose the first files to read. If a package and stage are present, start with that package's YAML and class after reading the relevant log tail.
|
||||
|
||||
## Search Strategy
|
||||
|
||||
For long logs, search from the end first.
|
||||
|
||||
Useful patterns:
|
||||
|
||||
```text
|
||||
Failed module:
|
||||
Failed stage:
|
||||
Failed command:
|
||||
Command exited with non-zero code
|
||||
configure: error
|
||||
CMake Error
|
||||
undefined reference
|
||||
cannot find -l
|
||||
fatal error:
|
||||
No package
|
||||
Package .* not found
|
||||
Could NOT find
|
||||
is not a valid
|
||||
permission denied
|
||||
curl: (
|
||||
HTTP/2 403
|
||||
rate limit
|
||||
```
|
||||
|
||||
In `spc.shell.log`, each command block begins with `>>>>>>>>>>>>>>>>>>>>>>>>>>`, then prints the command, caller, env, and working dir. The last failed block is usually the highest-value evidence.
|
||||
|
||||
## Failure Categories
|
||||
|
||||
### Download Failure
|
||||
|
||||
Signs:
|
||||
|
||||
- `Download failed`
|
||||
- `curl: (56)`, `curl: (22)`, HTTP 403/404/429
|
||||
- GitHub API calls in verbose logs
|
||||
- Asset regex did not match a release asset
|
||||
|
||||
Likely checks:
|
||||
|
||||
- If GitHub rate limited, ask user to set `GITHUB_TOKEN`.
|
||||
- Verify artifact source type and regex in `config/pkg/*` or `config/artifact/*`.
|
||||
- Use `--dl-retry`, `--dl-parallel`, `--ignore-cache`, `--no-alt`, or custom source options only as repro aids.
|
||||
- Prefer fixing stale URLs/regexes over adding workarounds.
|
||||
|
||||
### Doctor or Environment Failure
|
||||
|
||||
Signs:
|
||||
|
||||
- `Environment check failed`
|
||||
- missing `make`, `cmake`, `autoconf`, `pkg-config`, compiler, Perl, Visual Studio, MSYS2, Zig, etc.
|
||||
- `Some check items can not be fixed`
|
||||
|
||||
Likely checks:
|
||||
|
||||
- Run `php bin/spc doctor -vvv`.
|
||||
- Inspect `src/StaticPHP/Doctor/Item/*` for the check and fix behavior.
|
||||
- Inspect `config/pkg/tool/*` for installable helper tools.
|
||||
- On Windows, some dependencies cannot be auto-installed.
|
||||
|
||||
### Configure Failure
|
||||
|
||||
Signs:
|
||||
|
||||
- `configure: error`
|
||||
- Autoconf failure before compilation
|
||||
- extra `config.log` listed
|
||||
|
||||
Likely checks:
|
||||
|
||||
- Read copied `php-src.config.log` or `lib.<pkg>.console.log`.
|
||||
- Look for the first compiler/linker probe that failed.
|
||||
- Check `headers`, `static-libs`, `pkg-configs`, dependency order, and `initializeEnv($pkg)` behavior.
|
||||
- For extensions, check `php-extension.arg-type` and `#[CustomPhpConfigureArg]`.
|
||||
|
||||
### CMake Failure
|
||||
|
||||
Signs:
|
||||
|
||||
- `CMake Error`
|
||||
- `Could NOT find`
|
||||
- missing target, package config, or static library
|
||||
|
||||
Likely checks:
|
||||
|
||||
- Read `lib.<pkg>.cmake-error.log` and `lib.<pkg>.cmake-configure.log`.
|
||||
- Inspect `UnixCMakeExecutor`/`WindowsCMakeExecutor` usage in the package class.
|
||||
- Check CMake options, toolchain root path, `pkg-configs`, and transitive dependency libraries.
|
||||
|
||||
### Compile Failure
|
||||
|
||||
Signs:
|
||||
|
||||
- compiler `fatal error: header.h: No such file or directory`
|
||||
- syntax/type errors from upstream source
|
||||
- incompatible PHP API or platform macros
|
||||
|
||||
Likely checks:
|
||||
|
||||
- Identify the source file and include path from `spc.shell.log`.
|
||||
- Verify dependency headers are installed in `buildroot/include`.
|
||||
- Check PHP version compatibility and existing patches in `src/globals/patch`.
|
||||
- Prefer targeted patches or compile flags in the package class over broad toolchain changes.
|
||||
|
||||
### Link Failure
|
||||
|
||||
Signs:
|
||||
|
||||
- `undefined reference`
|
||||
- `cannot find -lfoo`
|
||||
- duplicate symbols
|
||||
- Windows unresolved external symbol or missing `.lib`
|
||||
|
||||
Likely checks:
|
||||
|
||||
- Verify `static-libs`, dependency order, and `getStaticLibFiles()` usage.
|
||||
- Inspect `SPC_EXTRA_LIBS`, `Libs.private` in `.pc` files, and package-specific pkg-config patching.
|
||||
- On Windows, confirm `.lib` names and required system libraries.
|
||||
- For OpenSSL/curl-like packages, search existing linker flag hooks before adding a new one.
|
||||
|
||||
### Smoke Test or Validation Failure
|
||||
|
||||
Signs:
|
||||
|
||||
- `Validation failed`
|
||||
- `php --ri` failure
|
||||
- extension not loaded after build
|
||||
- micro/embed runtime smoke test fails
|
||||
|
||||
Likely checks:
|
||||
|
||||
- Check extension `display-name`; empty string skips `php --ri`.
|
||||
- Confirm static vs shared build settings.
|
||||
- Confirm the extension is included in the final SAPI target and not only built as a dependency.
|
||||
- Inspect `src/globals/ext-tests/*` and common tests for expected runtime behavior.
|
||||
|
||||
### Registry or Config Failure
|
||||
|
||||
Signs:
|
||||
|
||||
- `Registry error`
|
||||
- unknown package, invalid field, invalid platform suffix, type mismatch
|
||||
- package referenced by attribute but missing config
|
||||
|
||||
Likely checks:
|
||||
|
||||
- Run `php bin/spc dev:lint-config`.
|
||||
- Inspect `ConfigValidator` tests for accepted fields and error expectations.
|
||||
- Confirm attribute type matches YAML `type`.
|
||||
- Confirm hooks reference existing package names and stages for the current platform.
|
||||
|
||||
## Rebuild Hygiene
|
||||
|
||||
Use the smallest cleanup that can invalidate the suspected stale state:
|
||||
|
||||
- Redownload one artifact: `--ignore-cache="artifact-name"`.
|
||||
- Skip downloads to test local source/build logic: `--no-download`.
|
||||
- Prefer source when debugging build logic: `--dl-prefer-source`.
|
||||
- Clear build products only when necessary. `spc reset --with-download --yes` removes caches and should not be suggested casually.
|
||||
|
||||
## Reporting Checklist
|
||||
|
||||
When preparing an issue or PR explanation, include:
|
||||
|
||||
- Exact `php bin/spc ...` command.
|
||||
- OS, architecture, PHP version option, and relevant env vars.
|
||||
- Failed package and stage.
|
||||
- Last failed command and exit code.
|
||||
- Tail of `spc.output.log`, relevant command block from `spc.shell.log`, and any extra config/CMake log.
|
||||
- Whether the failure reproduces after a focused clean or cache refresh.
|
||||
160
.github/skills/staticphp-documentation-sync/SKILL.md
vendored
Normal file
160
.github/skills/staticphp-documentation-sync/SKILL.md
vendored
Normal file
@@ -0,0 +1,160 @@
|
||||
---
|
||||
name: staticphp-documentation-sync
|
||||
description: Synchronize bilingual documentation when StaticPHP v3 user-facing or developer-facing documentation must change. Use when adding, modifying, deprecating, or removing documented features, CLI commands/options, environment variables, configuration formats, public APIs/extension points, workflows, installation requirements, migration guidance, or user-visible behavior. Do not use solely for internal implementation changes, package/library additions, or build bug fixes unless they change documented behavior or require updating existing docs.
|
||||
---
|
||||
|
||||
# StaticPHP Documentation Sync
|
||||
|
||||
## Overview
|
||||
|
||||
StaticPHP maintains bilingual documentation under `docs/en/` (English) and `docs/zh/` (Chinese). User-facing or developer-facing documentation changes must be reflected in both languages. Use this skill to identify affected docs, update them in sync, and validate sidebar/config consistency.
|
||||
|
||||
## When to Use This Skill
|
||||
|
||||
Invoke this skill when the change involves:
|
||||
|
||||
- New or modified CLI commands, options, or arguments
|
||||
- New or changed environment variables
|
||||
- Package (extension/library/target/tool) additions, removals, or behavioral changes that affect documented support, dependencies, commands, or workflows
|
||||
- Configuration format changes (YAML fields, artifact definitions, registry)
|
||||
- Build lifecycle, doctor, or toolchain changes
|
||||
- API or extension point changes (attributes, hooks, DI, custom artifacts)
|
||||
- Workflow changes (installation, first build, migration)
|
||||
- Deprecation or removal of any documented feature
|
||||
|
||||
Do not update docs just because code changed. Internal refactors, new libraries used only as dependencies, package build fixes, CI-only changes, and bug fixes that preserve documented behavior usually do not need documentation changes. If existing docs mention the changed behavior, command, package support, dependency, caveat, or workaround, update them.
|
||||
|
||||
## Documentation Map
|
||||
|
||||
```
|
||||
docs/
|
||||
├── en/ # English docs (canonical source)
|
||||
│ ├── index.md # Home page hero/features
|
||||
│ ├── guide/ # User-facing guides
|
||||
│ │ ├── index.md # Overview
|
||||
│ │ ├── installation.md # Installation instructions
|
||||
│ │ ├── first-build.md # First build walkthrough
|
||||
│ │ ├── sapi-reference.md # PHP SAPI options
|
||||
│ │ ├── cli-reference.md # CLI commands and options
|
||||
│ │ ├── cli-generator.md # Build command generator
|
||||
│ │ ├── migrate-from-v2.md # v2 → v3 migration
|
||||
│ │ ├── extensions.md # Supported extensions list
|
||||
│ │ ├── extension-notes.md # Per-extension notes
|
||||
│ │ ├── env-vars.md # Environment variables
|
||||
│ │ ├── deps-map.md # Dependency map
|
||||
│ │ └── troubleshooting.md # Troubleshooting guide
|
||||
│ ├── develop/ # Developer docs
|
||||
│ │ ├── index.md # Dev overview
|
||||
│ │ ├── structure.md # Project structure
|
||||
│ │ ├── registry.md # Registry model
|
||||
│ │ ├── package-model.md # Package YAML model
|
||||
│ │ ├── artifact-model.md # Artifact YAML model
|
||||
│ │ ├── craft-yml.md # craft.yml reference
|
||||
│ │ ├── build-lifecycle.md # Build stages/lifecycle
|
||||
│ │ ├── system-build-tools.md # System tool requirements
|
||||
│ │ ├── doctor-module.md # Doctor module
|
||||
│ │ ├── php-src-changes.md # PHP source patches
|
||||
│ │ └── extending/ # Extension authoring
|
||||
│ │ ├── index.md
|
||||
│ │ ├── package-classes.md
|
||||
│ │ ├── annotations.md
|
||||
│ │ ├── lifecycle-hooks.md
|
||||
│ │ ├── dependency-injection.md
|
||||
│ │ └── custom-artifact.md
|
||||
│ ├── contributing/
|
||||
│ │ └── index.md
|
||||
│ └── faq/
|
||||
│ └── index.md
|
||||
├── zh/ # Chinese docs (mirrors en/ structure)
|
||||
│ └── (same structure as en/)
|
||||
├── .vitepress/
|
||||
│ ├── sidebar.en.ts # English sidebar config
|
||||
│ ├── sidebar.zh.ts # Chinese sidebar config
|
||||
│ └── config.ts # VitePress site config
|
||||
└── deps-craft-yml.md # Shared craft.yml include used by both languages
|
||||
```
|
||||
|
||||
Other documentation files outside this tree may also matter, especially root-level `ext-support.md`.
|
||||
|
||||
**Key rule**: `docs/en/` and `docs/zh/` have identical file trees. Every `.md` file under `en/` must have a corresponding file under `zh/`.
|
||||
|
||||
## Workflow
|
||||
|
||||
### Step 1: Identify Impact Scope
|
||||
|
||||
Map the change to affected documentation:
|
||||
|
||||
| Change Type | Likely Affected Docs |
|
||||
|---|---|
|
||||
| New/removed CLI command | `guide/cli-reference.md`, `guide/cli-generator.md` |
|
||||
| New/removed CLI option | `guide/cli-reference.md`, `guide/first-build.md` |
|
||||
| New env var | `guide/env-vars.md` |
|
||||
| New/removed documented extension package | `guide/extensions.md`, `guide/extension-notes.md`, `guide/deps-map.md`, root `ext-support.md` |
|
||||
| Package config field change | `develop/package-model.md`, `develop/artifact-model.md` |
|
||||
| Build lifecycle change | `develop/build-lifecycle.md` |
|
||||
| Doctor change | `develop/doctor-module.md`, `develop/system-build-tools.md` |
|
||||
| New attribute/hook/DI | `develop/extending/annotations.md`, `develop/extending/lifecycle-hooks.md`, `develop/extending/dependency-injection.md` |
|
||||
| PHP source patch | `develop/php-src-changes.md` |
|
||||
| Registry change | `develop/registry.md` |
|
||||
| Install/setup change | `guide/installation.md`, `guide/first-build.md` |
|
||||
| Deprecation/removal | All docs referencing the feature |
|
||||
| New doc page | `sidebar.en.ts`, `sidebar.zh.ts` |
|
||||
|
||||
### Step 2: Read Current Docs
|
||||
|
||||
Before editing, read BOTH the English and Chinese versions of each affected file to understand the current content and existing translation patterns.
|
||||
|
||||
```bash
|
||||
# Example: check both language versions of the CLI reference
|
||||
cat docs/en/guide/cli-reference.md
|
||||
cat docs/zh/guide/cli-reference.md
|
||||
```
|
||||
|
||||
### Step 3: Update English Docs First
|
||||
|
||||
1. Update `docs/en/` files with accurate, complete English content.
|
||||
2. Follow existing formatting conventions (headings, code blocks, tables, admonitions).
|
||||
3. If adding a new page:
|
||||
- Create the file under `docs/en/<category>/<name>.md`
|
||||
- Add the corresponding entry in `docs/.vitepress/sidebar.en.ts`
|
||||
- Ensure the file has proper VitePress frontmatter if needed
|
||||
|
||||
### Step 4: Sync Chinese Docs
|
||||
|
||||
1. Update `docs/zh/` files to match the English changes.
|
||||
2. Translate all changed or added prose. Do not leave placeholder text or untranslated English in Chinese docs.
|
||||
3. Match the structure and formatting of the English version exactly.
|
||||
4. If a new page was added in English, create the corresponding `docs/zh/` file and update `docs/.vitepress/sidebar.zh.ts`.
|
||||
5. Treat `docs/deps-craft-yml.md` as a special shared include for both languages. If it needs prose changes, either keep the shared content acceptable for both languages or split the included content before adding language-specific prose.
|
||||
|
||||
### Step 5: Validate
|
||||
|
||||
Run these checks before considering the task complete:
|
||||
|
||||
```bash
|
||||
# Check that en/ and zh/ have matching file trees
|
||||
diff <(find docs/en -name '*.md' | sed 's|docs/en/||' | sort) \
|
||||
<(find docs/zh -name '*.md' | sed 's|docs/zh/||' | sort)
|
||||
|
||||
# Check that all sidebar links point to existing files
|
||||
# (manual check: every 'link' in sidebar.*.ts must resolve to an actual .md file)
|
||||
|
||||
# Build docs when Node dependencies are available; this catches many broken links/config issues
|
||||
npm run docs:build
|
||||
```
|
||||
|
||||
## Translation Guidelines
|
||||
|
||||
- **Chinese docs must be complete**: Every section, paragraph, and table in the English docs must have a Chinese equivalent. Never skip sections.
|
||||
- **Code blocks and command examples**: Keep executable code and commands identical in both languages. Translate surrounding prose; translate comments inside examples only when they are explanatory docs rather than copy-pasteable source/config.
|
||||
- **Technical terms**: Use consistent translations. Refer to existing Chinese docs for established term translations. When in doubt, prefer the term used elsewhere in `docs/zh/`.
|
||||
- **Links**: Internal links in Chinese docs should point to `/zh/...` paths (not `/en/...`).
|
||||
- **YAML frontmatter**: Keep frontmatter identical between languages (layout, etc.) unless the title/tagline field is translated.
|
||||
|
||||
## Common Pitfalls
|
||||
|
||||
- **Don't update only one language**: This is the most common mistake. Always update both `en/` and `zh/` in the same change.
|
||||
- **Don't forget sidebar configs**: When adding, renaming, or removing doc pages, update both `sidebar.en.ts` and `sidebar.zh.ts`.
|
||||
- **Don't forget shared/root docs**: root `ext-support.md` and `docs/deps-craft-yml.md` are also documentation. Update them if relevant.
|
||||
- **Don't leave TODO markers**: Do not commit TODO translation placeholders unless the user explicitly allows it or the task is blocked; if that happens, call it out in the final response.
|
||||
- **Don't translate file paths or URLs**: Only translate human-readable content, not paths, URLs, command names, or code identifiers.
|
||||
55
.github/skills/staticphp-package-maintenance/SKILL.md
vendored
Normal file
55
.github/skills/staticphp-package-maintenance/SKILL.md
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
---
|
||||
name: staticphp-package-maintenance
|
||||
description: Maintain StaticPHP v3 packages and artifacts. Use when adding, modifying, reviewing, or validating config under config/pkg or config/artifact; package classes under src/Package; extension/library/target/tool dependencies; PHP configure args; build hooks; package metadata; or related tests and docs.
|
||||
---
|
||||
|
||||
# StaticPHP Package Maintenance
|
||||
|
||||
## Overview
|
||||
|
||||
Use this skill to make focused package changes without re-reading the entire repository. StaticPHP v3 separates declarative package/artifact YAML from package-specific PHP build logic; prefer config-only edits unless current patterns require a class.
|
||||
|
||||
## Quick Workflow
|
||||
|
||||
1. Identify the package kind and exact name.
|
||||
- Extension: `config/pkg/ext/ext-name.yml`, class `src/Package/Extension/name.php`.
|
||||
- Library: `config/pkg/lib/name.yml`, class `src/Package/Library/name.php`.
|
||||
- Target or virtual target: `config/pkg/target/name.yml`, class `src/Package/Target/name.php`.
|
||||
- Tool: `config/pkg/tool/name.yml`, class `src/Package/Tool/name.php`.
|
||||
- Shared/custom artifact: `config/artifact/name.yml`, class `src/Package/Artifact/name.php`.
|
||||
|
||||
2. Search for the closest existing package before designing anything new.
|
||||
- Similar build system: `rg "#\\[BuildFor|UnixCMakeExecutor|UnixAutoconfExecutor|WindowsCMakeExecutor" src/Package`.
|
||||
- Similar config fields: `rg "static-libs|pkg-configs|arg-type|depends@" config/pkg`.
|
||||
- Similar download type: `rg "type: ghrel|type: pecl|type: pie|type: git|binary: hosted" config`.
|
||||
|
||||
3. Read `references/package-reference.md` when changing YAML fields, artifact definitions, package naming, dependencies, platform suffixes, or validation expectations.
|
||||
|
||||
4. Read `references/build-class-patterns.md` when PHP build logic, attributes, lifecycle hooks, custom configure args, source patching, or executor usage is needed.
|
||||
|
||||
5. Validate narrowly, then broadly if risk warrants it.
|
||||
- Config lint: `php bin/spc dev:lint-config`
|
||||
- Focused tests: `vendor/bin/phpunit tests/StaticPHP/Config tests/StaticPHP/Registry tests/StaticPHP/Util/DependencyResolverTest.php --no-coverage`
|
||||
- Full project checks: `composer test`, `composer analyse`
|
||||
|
||||
## Editing Rules
|
||||
|
||||
- Treat `config/pkg/*` and `config/artifact/*` as the source of package truth; package classes augment behavior.
|
||||
- Use platform suffix fields for declarative OS differences: `@unix`, `@linux`, `@macos`, `@windows`.
|
||||
- Add a PHP class only for custom build stages, validation, hook behavior, patches, or custom configure arguments.
|
||||
- Keep extension dependencies prefixed with `ext-`; libraries, tools, and targets use their package names.
|
||||
- Prefer existing helpers such as `UnixAutoconfExecutor`, `UnixCMakeExecutor`, `WindowsCMakeExecutor`, `shell()`, `cmd()`, and `FileSystem`.
|
||||
- Do not modify build outputs (`buildroot/`, `source/`, `downloads/`, `pkgroot/`) to fix package definitions.
|
||||
- If upstream metadata changes, update license metadata and smoke-test/display names when relevant.
|
||||
|
||||
## Common Task Paths
|
||||
|
||||
- Add a new PECL extension: define `config/pkg/ext/ext-name.yml` with `type: php-extension`, `artifact.source.type: pecl`, dependencies, and `php-extension.arg-type`; add a class only if configure args, patches, or hooks are non-standard.
|
||||
- Add a library: define `config/pkg/lib/name.yml` with artifact, dependencies, and install verification fields (`headers`, `static-libs`, `pkg-configs`, `static-bins`); add build class methods by OS.
|
||||
- Fix an existing package build: start from the failing package config/class, then inspect dependencies and hooks targeting that package before changing shared core code.
|
||||
- Update a version source: prefer artifact fields that support update checking (`ghrel`, `ghtar`, `ghtagtar`, `git` with regex, `filelist`, `pecl`, `pie`) over hard-coded URLs when upstream supports it.
|
||||
|
||||
## Resources
|
||||
|
||||
- `references/package-reference.md`: YAML package/artifact model, naming, fields, validation, and commands.
|
||||
- `references/build-class-patterns.md`: PHP package attributes, stages, hooks, executors, and class patterns.
|
||||
4
.github/skills/staticphp-package-maintenance/agents/openai.yaml
vendored
Normal file
4
.github/skills/staticphp-package-maintenance/agents/openai.yaml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
interface:
|
||||
display_name: "StaticPHP Package Maintenance"
|
||||
short_description: "Add, update, and validate StaticPHP v3 package definitions."
|
||||
default_prompt: "Use $staticphp-package-maintenance to add, modify, or review StaticPHP package and artifact definitions."
|
||||
143
.github/skills/staticphp-package-maintenance/references/build-class-patterns.md
vendored
Normal file
143
.github/skills/staticphp-package-maintenance/references/build-class-patterns.md
vendored
Normal file
@@ -0,0 +1,143 @@
|
||||
# StaticPHP Build Class Patterns
|
||||
|
||||
## Contents
|
||||
|
||||
- When a class is needed
|
||||
- Package attributes
|
||||
- Stage and hook behavior
|
||||
- Executor choices
|
||||
- Common patterns
|
||||
- Failure-safe edits
|
||||
|
||||
## When a Class Is Needed
|
||||
|
||||
Do not add a PHP package class for simple metadata. Use YAML alone when StaticPHP can infer the configure args, dependencies, and verification.
|
||||
|
||||
Add or update a class when the package needs:
|
||||
|
||||
- OS-specific build commands.
|
||||
- Custom validation before building.
|
||||
- Custom PHP configure arguments.
|
||||
- Patches or file edits before build.
|
||||
- Hooks into another package's stage.
|
||||
- Custom source/binary download or extraction logic.
|
||||
- Package info shown by dev tooling.
|
||||
|
||||
Package classes live in `src/Package/*` and are discovered through PSR-4 plus attributes. Config must exist first; `PackageLoader` throws if an attribute references an undefined package.
|
||||
|
||||
## Package Attributes
|
||||
|
||||
Class-level package attributes:
|
||||
|
||||
- `#[Extension('curl')]` maps to package `ext-curl` if the prefix is omitted.
|
||||
- `#[Library('openssl')]`
|
||||
- `#[Target('php')]`
|
||||
- `#[Tool('zig')]`
|
||||
|
||||
Method-level attributes:
|
||||
|
||||
- `#[BuildFor('Linux'|'Darwin'|'Windows')]`: registers the `build` stage for that OS.
|
||||
- `#[Stage('name')]`: registers a named stage; defaults to the method name when omitted.
|
||||
- `#[BeforeStage('package', 'stage', 'only-when-package-resolved')]`: hook before a target package stage.
|
||||
- `#[AfterStage('package', 'stage', 'only-when-package-resolved')]`: hook after a target package stage.
|
||||
- `#[PatchBeforeBuild]`: runs once before package build unless `.spc-patched` exists; return `true` to write that marker.
|
||||
- `#[CustomPhpConfigureArg('Linux')]`: supplies custom extension configure args.
|
||||
- `#[Validate]`: validates environment/source assumptions.
|
||||
- `#[Info]`: returns package information for tooling.
|
||||
- `#[InitPackage]`: runs while loading a package class.
|
||||
- `#[ResolveBuild]`: target package callback for resolving build dependencies.
|
||||
- `#[ConditionalOn(SomeClass::class)]`: conditionally enables before/after hooks only when DI has the class.
|
||||
|
||||
## Stage and Hook Behavior
|
||||
|
||||
`PackageBuilder::buildPackage()` does:
|
||||
|
||||
1. Ensure build directories exist.
|
||||
2. Skip if already installed unless forced.
|
||||
3. Ensure source exists for non-virtual packages.
|
||||
4. Emit `PatchBeforeBuild` callbacks.
|
||||
5. Run the `build` stage.
|
||||
6. Install license data.
|
||||
7. Record tool package versions where relevant.
|
||||
|
||||
`Package::runStage()` wraps a stage with:
|
||||
|
||||
1. `BeforeStage` callbacks.
|
||||
2. The stage method itself.
|
||||
3. `AfterStage` callbacks.
|
||||
|
||||
SPC exceptions bind package and stage metadata. Preserve that behavior by throwing existing `SPCException` subclasses instead of raw exceptions when adding new failure paths.
|
||||
|
||||
## Executor Choices
|
||||
|
||||
Use existing executors where possible:
|
||||
|
||||
- `UnixAutoconfExecutor`: for Unix packages using `./configure && make && make install`. It injects default static flags and copies `config.log` into SPC logs on failure.
|
||||
- `UnixCMakeExecutor`: for Unix CMake packages. It writes toolchain settings and copies CMake configure/error/output logs on failure.
|
||||
- `WindowsCMakeExecutor`: for Windows CMake packages.
|
||||
- `shell()->cd(...)->initializeEnv($pkg)`: for custom Unix command chains.
|
||||
- `cmd()->cd(...)`: for Windows command chains.
|
||||
|
||||
Prefer `FileSystem` helpers for file edits and copies so behavior stays consistent.
|
||||
|
||||
## Common Patterns
|
||||
|
||||
Minimal library class:
|
||||
|
||||
```php
|
||||
#[Library('example')]
|
||||
class example
|
||||
{
|
||||
#[BuildFor('Linux')]
|
||||
public function build(LibraryPackage $pkg): void
|
||||
{
|
||||
(new UnixAutoconfExecutor($pkg))
|
||||
->configure()
|
||||
->make();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Extension hook into PHP build:
|
||||
|
||||
```php
|
||||
#[Extension('curl')]
|
||||
class curl
|
||||
{
|
||||
#[BeforeStage('php', [php::class, 'makeForWindows'], 'ext-curl')]
|
||||
public function patchBeforePhpBuild(): void
|
||||
{
|
||||
// Adjust env, generated build files, or linker flags.
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Validation:
|
||||
|
||||
```php
|
||||
#[Validate]
|
||||
public function validate(): void
|
||||
{
|
||||
if (SystemTarget::getTargetOS() === 'Windows' && WindowsUtil::findCommand('perl.exe') === null) {
|
||||
throw new EnvironmentException('You need to install perl first!');
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Custom configure args should be used when YAML `arg-type` is `custom` or when args need package/install context:
|
||||
|
||||
```php
|
||||
#[CustomPhpConfigureArg('Linux')]
|
||||
public function configureArg(PhpExtensionPackage $ext): string
|
||||
{
|
||||
return '--with-example=' . $ext->getBuildRootPath();
|
||||
}
|
||||
```
|
||||
|
||||
## Failure-Safe Edits
|
||||
|
||||
- Make hooks conditional with the third `BeforeStage`/`AfterStage` argument when a dependency must be resolved before the hook should run.
|
||||
- Keep platform-specific code under matching `#[BuildFor]` methods rather than branching heavily inside one method.
|
||||
- If a patch changes upstream source, place patch files in `src/globals/patch/` and describe them with `#[PatchDescription]` where appropriate.
|
||||
- If a class only mutates environment variables for another package, search for existing hooks first to avoid duplicate linker flags.
|
||||
- After adding attributes, run registry/config tests because invalid stages and unknown packages are caught during loading.
|
||||
157
.github/skills/staticphp-package-maintenance/references/package-reference.md
vendored
Normal file
157
.github/skills/staticphp-package-maintenance/references/package-reference.md
vendored
Normal file
@@ -0,0 +1,157 @@
|
||||
# StaticPHP Package Reference
|
||||
|
||||
## Contents
|
||||
|
||||
- Package locations
|
||||
- Package types
|
||||
- Artifact model
|
||||
- Common YAML fields
|
||||
- PHP extension fields
|
||||
- Platform suffixes
|
||||
- Validation and tests
|
||||
|
||||
## Package Locations
|
||||
|
||||
StaticPHP v3 keeps package metadata in YAML and behavior in PHP classes.
|
||||
|
||||
| Kind | YAML | PHP class namespace | Typical attribute |
|
||||
|---|---|---|---|
|
||||
| PHP extension | `config/pkg/ext/ext-name.yml` | `Package\Extension` | `#[Extension('name')]` |
|
||||
| Library | `config/pkg/lib/name.yml` | `Package\Library` | `#[Library('name')]` |
|
||||
| Target | `config/pkg/target/name.yml` | `Package\Target` | `#[Target('name')]` |
|
||||
| Virtual target | `config/pkg/target/name.yml` | `Package\Target` | `#[Target('name')]` |
|
||||
| Tool | `config/pkg/tool/name.yml` | `Package\Tool` | `#[Tool('name')]` |
|
||||
| Custom artifact | `config/artifact/name.yml` | `Package\Artifact` | artifact attributes |
|
||||
|
||||
Prefer one package per YAML file unless an existing file groups related definitions. Match nearby naming and ordering.
|
||||
|
||||
## Package Types
|
||||
|
||||
`php-extension` packages describe PHP extensions. Config package names must use the `ext-` prefix. Dependencies on extensions also use `ext-`.
|
||||
|
||||
`library` packages describe buildable dependency libraries. They usually define source artifacts plus verification fields such as headers, static libraries, pkg-config files, or binaries.
|
||||
|
||||
`target` packages represent final build outputs and inherit the library-style fields. StaticPHP automatically exposes build commands for targets.
|
||||
|
||||
`virtual-target` packages are abstract dependency/build scheduling nodes. They may omit `artifact`.
|
||||
|
||||
`tool` packages are helper programs or toolchains installed into `pkgroot/` or used by builds.
|
||||
|
||||
## Artifact Model
|
||||
|
||||
Artifacts define downloadable source archives or prebuilt binaries. Use inline artifacts for simple one-package sources and `config/artifact/*.yml` for shared, complex, or custom artifacts.
|
||||
|
||||
Top-level artifact sections:
|
||||
|
||||
- `source`: source archive, git checkout, PECL/PIE package, local directory, or custom source.
|
||||
- `binary`: prebuilt binary by platform, or aliases such as `hosted`/`custom`.
|
||||
- `metadata`: `license`, `license-files`, and `source-root`.
|
||||
|
||||
Common source types:
|
||||
|
||||
- `url`: fixed URL; supports `filename`, `version`, and `extract`.
|
||||
- `git`: repository source; use `rev` for a fixed branch/tag/commit or `regex` with named `version` capture for update checks.
|
||||
- `ghrel`: GitHub release asset by regex filename match.
|
||||
- `ghtar`: generated GitHub release tarball.
|
||||
- `ghtagtar`: generated GitHub tag tarball.
|
||||
- `filelist`: scrape a download index and extract version/filename with regex.
|
||||
- `pecl`: PECL extension by name.
|
||||
- `pie`: Packagist PIE extension by `vendor/package`.
|
||||
- `php-release`: official PHP source selected by build PHP version.
|
||||
- `local`: local source directory for development/offline use.
|
||||
- `custom`: PHP artifact class handles source or binary logic.
|
||||
|
||||
Use `metadata.source-root` when the actual build directory is inside an extracted subdirectory.
|
||||
|
||||
Use `metadata.license-files` for source licenses. `@/file.txt` points to bundled license files in `src/globals/licenses/`.
|
||||
|
||||
## Common YAML Fields
|
||||
|
||||
Shared fields:
|
||||
|
||||
- `type`: required package type.
|
||||
- `description`: optional human-readable package description.
|
||||
- `license`: package-level license annotation where applicable.
|
||||
- `lang`: implementation language such as `c` or `c++`.
|
||||
- `frameworks`: macOS framework tags.
|
||||
- `artifact`: string reference or inline artifact object. Required for `library` and `target`; optional for built-in extensions and virtual targets.
|
||||
- `depends`: hard dependencies.
|
||||
- `suggests`: optional dependencies.
|
||||
|
||||
Library, target, and tool verification/installation fields:
|
||||
|
||||
- `headers`: expected files/directories under `buildroot/include`.
|
||||
- `static-libs`: expected static libraries under `buildroot/lib`.
|
||||
- `pkg-configs`: expected `.pc` files under `buildroot/lib/pkgconfig`.
|
||||
- `static-bins`: expected executables under `buildroot/bin`.
|
||||
- `path`: directories appended to PATH after install.
|
||||
- `env`: environment variables set after install.
|
||||
- `append-env`: values appended to existing environment variables.
|
||||
|
||||
Path placeholders in `path`, `env`, and `append-env`:
|
||||
|
||||
- `{build_root_path}`: `buildroot/`
|
||||
- `{pkg_root_path}`: `pkgroot/`
|
||||
- `{working_dir}`: repository or working directory
|
||||
- `{download_path}`: `downloads/`
|
||||
- `{source_path}`: `source/`
|
||||
- `{spc_msys2_path}`: MSYS2 root on Windows
|
||||
|
||||
## PHP Extension Fields
|
||||
|
||||
Extension-specific fields live under `php-extension`.
|
||||
|
||||
- `arg-type`: configure argument behavior. Built-ins include `enable`, `enable-path`, `with`, `with-path`, `custom`, and `none`. Full strings are allowed.
|
||||
- `zend-extension`: true for Zend extensions such as opcache/xdebug.
|
||||
- `build-shared`: whether shared builds are allowed.
|
||||
- `build-static`: whether static builds are allowed.
|
||||
- `build-with-php`: true when built inside the PHP source tree.
|
||||
- `display-name`: value used for `php --ri` smoke tests and license display; empty string skips the `--ri` check.
|
||||
- `os`: allowed OS families: `Linux`, `Darwin`, `Windows`.
|
||||
|
||||
Configure string placeholders:
|
||||
|
||||
- `@build_root_path@`: absolute buildroot path.
|
||||
- `@shared_suffix@`: `=shared` in shared builds, empty in static builds.
|
||||
- `@shared_path_suffix@`: `=shared,{buildroot}` in shared builds, `={buildroot}` in static builds.
|
||||
|
||||
## Platform Suffixes
|
||||
|
||||
Many fields support platform suffixes:
|
||||
|
||||
- `@unix`: Linux and macOS.
|
||||
- `@linux`: Linux only.
|
||||
- `@macos`: macOS only.
|
||||
- `@windows`: Windows only.
|
||||
|
||||
For Linux, specific fields override generic fields in this order: `field@linux`, then `field@unix`, then `field`.
|
||||
|
||||
Use suffixes for declarative differences in dependencies, headers, libraries, pkg-configs, extension args, and suggestions.
|
||||
|
||||
## Validation and Tests
|
||||
|
||||
Run config validation for most package edits:
|
||||
|
||||
```bash
|
||||
php bin/spc dev:lint-config
|
||||
```
|
||||
|
||||
Run focused tests after config or registry changes:
|
||||
|
||||
```bash
|
||||
vendor/bin/phpunit tests/StaticPHP/Config tests/StaticPHP/Registry tests/StaticPHP/Util/DependencyResolverTest.php --no-coverage
|
||||
```
|
||||
|
||||
Run broader checks for framework or class changes:
|
||||
|
||||
```bash
|
||||
composer test
|
||||
composer analyse
|
||||
```
|
||||
|
||||
Build commands are expensive. Use them for user-provided repros, package-specific fixes, or when validation cannot prove the behavior:
|
||||
|
||||
```bash
|
||||
php bin/spc build:libs "openssl,curl" -vvv
|
||||
php bin/spc build:php "bcmath,openssl,curl" --build-cli -vvv
|
||||
```
|
||||
334
.github/workflows/build-unix.yml
vendored
Normal file
334
.github/workflows/build-unix.yml
vendored
Normal file
@@ -0,0 +1,334 @@
|
||||
name: "CI on Unix"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
os:
|
||||
required: true
|
||||
description: Build target OS
|
||||
default: 'linux-x86_64'
|
||||
type: choice
|
||||
options:
|
||||
- 'linux-x86_64'
|
||||
- 'linux-aarch64'
|
||||
- 'linux-x86_64-glibc'
|
||||
- 'linux-aarch64-glibc'
|
||||
- 'macos-x86_64'
|
||||
- 'macos-aarch64'
|
||||
php-version:
|
||||
required: true
|
||||
description: PHP version to compile
|
||||
default: '8.4'
|
||||
type: choice
|
||||
options:
|
||||
- '8.4'
|
||||
- '8.3'
|
||||
- '8.2'
|
||||
- '8.1'
|
||||
extensions:
|
||||
description: Extensions to build (comma separated)
|
||||
required: true
|
||||
type: string
|
||||
shared-extensions:
|
||||
description: Shared extensions to build (optional, comma separated)
|
||||
type: string
|
||||
extra-libs:
|
||||
description: Extra libraries to build (optional, comma separated)
|
||||
type: string
|
||||
build-cli:
|
||||
description: Build cli binary
|
||||
default: true
|
||||
type: boolean
|
||||
build-micro:
|
||||
description: Build phpmicro binary
|
||||
type: boolean
|
||||
build-fpm:
|
||||
description: Build fpm binary
|
||||
type: boolean
|
||||
build-frankenphp:
|
||||
description: Build frankenphp binary (requires ZTS)
|
||||
type: boolean
|
||||
default: false
|
||||
enable-zts:
|
||||
description: Enable ZTS
|
||||
type: boolean
|
||||
default: false
|
||||
prefer-pre-built:
|
||||
description: Prefer pre-built binaries (reduce build time)
|
||||
type: boolean
|
||||
default: true
|
||||
with-suggested-libs:
|
||||
description: Build with suggested libs
|
||||
type: boolean
|
||||
default: true
|
||||
debug:
|
||||
description: Show full build logs
|
||||
type: boolean
|
||||
no-strip:
|
||||
description: Keep debug symbols for debugging
|
||||
type: boolean
|
||||
default: false
|
||||
workflow_call:
|
||||
inputs:
|
||||
os:
|
||||
required: true
|
||||
description: Build target OS
|
||||
default: 'linux-x86_64'
|
||||
type: string
|
||||
php-version:
|
||||
required: true
|
||||
description: PHP version to compile
|
||||
default: '8.4'
|
||||
type: string
|
||||
extensions:
|
||||
description: Extensions to build (comma separated)
|
||||
required: true
|
||||
type: string
|
||||
shared-extensions:
|
||||
description: Shared extensions to build (optional, comma separated)
|
||||
type: string
|
||||
extra-libs:
|
||||
description: Extra libraries to build (optional, comma separated)
|
||||
type: string
|
||||
build-cli:
|
||||
description: Build cli binary
|
||||
default: true
|
||||
type: boolean
|
||||
build-micro:
|
||||
description: Build phpmicro binary
|
||||
type: boolean
|
||||
build-fpm:
|
||||
description: Build fpm binary
|
||||
type: boolean
|
||||
build-frankenphp:
|
||||
description: Build frankenphp binary (requires ZTS)
|
||||
type: boolean
|
||||
default: false
|
||||
enable-zts:
|
||||
description: Enable ZTS
|
||||
type: boolean
|
||||
default: false
|
||||
prefer-pre-built:
|
||||
description: Prefer pre-built binaries (reduce build time)
|
||||
type: boolean
|
||||
default: true
|
||||
with-suggested-libs:
|
||||
description: Include suggested libs
|
||||
type: boolean
|
||||
default: false
|
||||
debug:
|
||||
description: Show full build logs
|
||||
type: boolean
|
||||
no-strip:
|
||||
description: Keep debug symbols for debugging
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
jobs:
|
||||
define-build:
|
||||
name: "Define Build Scripts"
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
run: ${{ steps.gendef.outputs.run }}
|
||||
download: ${{ steps.gendef.outputs.download }}
|
||||
build: ${{ steps.gendef.outputs.build }}
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: "Define"
|
||||
id: gendef
|
||||
run: |
|
||||
case "${{ inputs.os }}" in
|
||||
linux-x86_64)
|
||||
DOWN_CMD="./bin/spc-alpine-docker download"
|
||||
BUILD_CMD="./bin/spc-alpine-docker build"
|
||||
RUNS_ON="ubuntu-latest"
|
||||
;;
|
||||
linux-aarch64)
|
||||
DOWN_CMD="./bin/spc-alpine-docker download"
|
||||
BUILD_CMD="./bin/spc-alpine-docker build"
|
||||
RUNS_ON="ubuntu-24.04-arm"
|
||||
;;
|
||||
linux-x86_64-glibc)
|
||||
DOWN_CMD="./bin/spc-gnu-docker download"
|
||||
BUILD_CMD="./bin/spc-gnu-docker build"
|
||||
RUNS_ON="ubuntu-22.04"
|
||||
;;
|
||||
linux-aarch64-glibc)
|
||||
DOWN_CMD="./bin/spc-gnu-docker download"
|
||||
BUILD_CMD="./bin/spc-gnu-docker build"
|
||||
RUNS_ON="ubuntu-22.04-arm"
|
||||
;;
|
||||
macos-x86_64)
|
||||
DOWN_CMD="composer update --no-dev --classmap-authoritative && ./bin/spc doctor --auto-fix && ./bin/spc download"
|
||||
BUILD_CMD="./bin/spc build"
|
||||
RUNS_ON="macos-15-intel"
|
||||
;;
|
||||
macos-aarch64)
|
||||
DOWN_CMD="composer update --no-dev --classmap-authoritative && ./bin/spc doctor --auto-fix && ./bin/spc download"
|
||||
BUILD_CMD="./bin/spc build"
|
||||
RUNS_ON="macos-15"
|
||||
;;
|
||||
esac
|
||||
STATIC_EXTS="${{ inputs.extensions }}"
|
||||
SHARED_EXTS="${{ inputs['shared-extensions'] }}"
|
||||
BUILD_FRANKENPHP="${{ inputs['build-frankenphp'] }}"
|
||||
ENABLE_ZTS="${{ inputs['enable-zts'] }}"
|
||||
ALL_EXTS="$STATIC_EXTS"
|
||||
if [ -n "$SHARED_EXTS" ]; then
|
||||
ALL_EXTS="$ALL_EXTS,$SHARED_EXTS"
|
||||
fi
|
||||
DOWN_CMD="$DOWN_CMD --with-php=${{ inputs.php-version }} --for-extensions=$ALL_EXTS --ignore-cache-sources=php-src"
|
||||
BUILD_CMD="$BUILD_CMD $STATIC_EXTS"
|
||||
if [ -n "$SHARED_EXTS" ]; then
|
||||
BUILD_CMD="$BUILD_CMD --build-shared=$SHARED_EXTS"
|
||||
fi
|
||||
if [ -n "${{ inputs.extra-libs }}" ]; then
|
||||
DOWN_CMD="$DOWN_CMD --for-libs=${{ inputs.extra-libs }}"
|
||||
BUILD_CMD="$BUILD_CMD --with-libs=${{ inputs.extra-libs }}"
|
||||
fi
|
||||
if [ ${{ inputs.debug }} == true ]; then
|
||||
DOWN_CMD="$DOWN_CMD --debug"
|
||||
BUILD_CMD="$BUILD_CMD --debug"
|
||||
fi
|
||||
if [ ${{ inputs.prefer-pre-built }} == true ]; then
|
||||
DOWN_CMD="$DOWN_CMD --prefer-pre-built"
|
||||
fi
|
||||
if [ ${{ inputs.with-suggested-libs }} == true ]; then
|
||||
BUILD_CMD="$BUILD_CMD --with-suggested-libs"
|
||||
fi
|
||||
if [ ${{ inputs.build-cli }} == true ]; then
|
||||
BUILD_CMD="$BUILD_CMD --build-cli"
|
||||
fi
|
||||
if [ ${{ inputs.build-micro }} == true ]; then
|
||||
BUILD_CMD="$BUILD_CMD --build-micro"
|
||||
fi
|
||||
if [ ${{ inputs.build-fpm }} == true ]; then
|
||||
BUILD_CMD="$BUILD_CMD --build-fpm"
|
||||
fi
|
||||
if [ "$BUILD_FRANKENPHP" = "true" ]; then
|
||||
BUILD_CMD="$BUILD_CMD --build-frankenphp"
|
||||
fi
|
||||
if [ "$ENABLE_ZTS" = "true" ]; then
|
||||
BUILD_CMD="$BUILD_CMD --enable-zts"
|
||||
fi
|
||||
echo 'download='"$DOWN_CMD" >> "$GITHUB_OUTPUT"
|
||||
echo 'build='"$BUILD_CMD" >> "$GITHUB_OUTPUT"
|
||||
echo 'run='"$RUNS_ON" >> "$GITHUB_OUTPUT"
|
||||
build:
|
||||
name: "Build ${{ inputs.version }} on ${{ inputs.os }}"
|
||||
runs-on: ${{ needs.define-build.outputs.run }}
|
||||
needs: define-build
|
||||
timeout-minutes: 240
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: "Setup PHP"
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: 8.4
|
||||
tools: pecl, composer
|
||||
extensions: curl, openssl, mbstring
|
||||
ini-values: memory_limit=-1
|
||||
env:
|
||||
phpts: nts
|
||||
|
||||
- if: ${{ inputs['build-frankenphp'] == true }}
|
||||
name: "Install go-xcaddy for FrankenPHP"
|
||||
run: |
|
||||
case "${{ inputs.os }}" in
|
||||
linux-x86_64|linux-aarch64)
|
||||
./bin/spc-alpine-docker install-pkg go-xcaddy
|
||||
;;
|
||||
linux-x86_64-glibc|linux-aarch64-glibc)
|
||||
./bin/spc-gnu-docker install-pkg go-xcaddy
|
||||
;;
|
||||
macos-x86_64|macos-aarch64)
|
||||
composer update --no-dev --classmap-authoritative
|
||||
./bin/spc doctor --auto-fix
|
||||
./bin/spc install-pkg go-xcaddy
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported OS for go-xcaddy install: ${{ inputs.os }}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Cache downloaded source
|
||||
- id: cache-download
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: downloads
|
||||
key: php-dependencies-${{ inputs.os }}
|
||||
- name: "Download sources"
|
||||
run: ${{ needs.define-build.outputs.download }}
|
||||
- name: "Build PHP"
|
||||
run: ${{ needs.define-build.outputs.build }}
|
||||
# - name: Setup tmate session
|
||||
# if: ${{ failure() }}
|
||||
# uses: mxschmitt/action-tmate@v3
|
||||
|
||||
# Upload debug logs
|
||||
- if: ${{ inputs.debug && failure() }}
|
||||
name: "Upload build logs on failure"
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: spc-logs-${{ inputs.php-version }}-${{ inputs.os }}
|
||||
path: log/*.log
|
||||
|
||||
# Upload cli executable
|
||||
- if: ${{ inputs.build-cli == true }}
|
||||
name: "Upload PHP cli SAPI"
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: php-cli-${{ inputs.php-version }}-${{ inputs.os }}
|
||||
path: buildroot/bin/php
|
||||
|
||||
# Upload micro self-extracted executable
|
||||
- if: ${{ inputs.build-micro == true }}
|
||||
name: "Upload PHP micro SAPI"
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: php-micro-${{ inputs.php-version }}-${{ inputs.os }}
|
||||
path: buildroot/bin/micro.sfx
|
||||
|
||||
# Upload fpm executable
|
||||
- if: ${{ inputs.build-fpm == true }}
|
||||
name: "Upload PHP fpm SAPI"
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: php-fpm-${{ inputs.php-version }}-${{ inputs.os }}
|
||||
path: buildroot/bin/php-fpm
|
||||
|
||||
# Upload frankenphp executable
|
||||
- if: ${{ inputs['build-frankenphp'] == true }}
|
||||
name: "Upload FrankenPHP SAPI"
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: php-frankenphp-${{ inputs.php-version }}-${{ inputs.os }}
|
||||
path: buildroot/bin/frankenphp
|
||||
|
||||
# Upload extensions metadata
|
||||
- if: ${{ inputs['shared-extensions'] != '' }}
|
||||
name: "Upload shared extensions"
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: php-shared-ext-${{ inputs.php-version }}-${{ inputs.os }}
|
||||
path: |
|
||||
buildroot/modules/*.so
|
||||
- uses: actions/upload-artifact@v7
|
||||
name: "Upload License Files"
|
||||
with:
|
||||
name: license-files-${{ inputs.php-version }}-${{ inputs.os }}
|
||||
path: buildroot/license/
|
||||
- uses: actions/upload-artifact@v7
|
||||
name: "Upload Build Metadata"
|
||||
with:
|
||||
name: build-meta-${{ inputs.php-version }}-${{ inputs.os }}
|
||||
path: |
|
||||
buildroot/build-manifest.json
|
||||
118
.github/workflows/build-windows-x86_64.yml
vendored
Normal file
118
.github/workflows/build-windows-x86_64.yml
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
name: CI on x86_64 Windows
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
required: true
|
||||
description: php version to compile
|
||||
default: '8.4'
|
||||
type: choice
|
||||
options:
|
||||
- '8.4'
|
||||
- '8.3'
|
||||
- '8.2'
|
||||
- '8.1'
|
||||
- '8.0'
|
||||
build-cli:
|
||||
description: build cli binary
|
||||
default: true
|
||||
type: boolean
|
||||
build-micro:
|
||||
description: build phpmicro binary
|
||||
type: boolean
|
||||
extensions:
|
||||
description: extensions to compile (comma separated)
|
||||
required: true
|
||||
type: string
|
||||
prefer-pre-built:
|
||||
description: prefer pre-built binaries (reduce build time)
|
||||
type: boolean
|
||||
default: true
|
||||
with-suggested-libs:
|
||||
description: Build with suggested libs
|
||||
type: boolean
|
||||
default: true
|
||||
debug:
|
||||
description: enable debug logs
|
||||
type: boolean
|
||||
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: build ${{ inputs.version }} on Windows x86_64
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# Cache composer dependencies
|
||||
- id: cache-composer-deps
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: vendor
|
||||
key: composer-dependencies
|
||||
|
||||
# If there's no Composer cache, install dependencies
|
||||
- if: steps.cache-composer-deps.outputs.cache-hit != 'true'
|
||||
run: composer update --no-dev --classmap-authoritative
|
||||
|
||||
- name: Generate hashed key for download cache
|
||||
shell: bash
|
||||
run: |
|
||||
INPUT_HASH=$(echo "${{ runner.os }}-${{ inputs.version }}-${{ inputs.extensions }}" | sha256sum | awk '{print $1}')
|
||||
echo "INPUT_HASH=${INPUT_HASH}" >> "$GITHUB_ENV"
|
||||
|
||||
# Cache downloaded source
|
||||
- id: cache-download
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: downloads
|
||||
key: php-${{ env.INPUT_HASH }}
|
||||
|
||||
# With or without debug
|
||||
- if: inputs.debug == true
|
||||
run: echo "SPC_BUILD_DEBUG=--debug" >> $env:GITHUB_ENV
|
||||
- if: inputs.prefer-pre-built == true
|
||||
run: echo "SPC_PRE_BUILT=--prefer-pre-built" >> $env:GITHUB_ENV
|
||||
|
||||
# With target select: cli, micro or both
|
||||
- if: ${{ inputs.build-cli == true }}
|
||||
run: echo "SPC_BUILD_CLI=--build-cli" >> $env:GITHUB_ENV
|
||||
- if: ${{ inputs.build-micro == true }}
|
||||
run: echo "SPC_BUILD_MICRO=--build-micro" >> $env:GITHUB_ENV
|
||||
|
||||
- run: ./bin/spc doctor
|
||||
|
||||
# If there's no dependencies cache, fetch sources, with or without debug
|
||||
- if: steps.cache-download.outputs.cache-hit != 'true'
|
||||
run: ./bin/spc download --with-php="${{ inputs.version }}" --for-extensions="${{ inputs.extensions }}" ${{ env.SPC_BUILD_DEBUG }} ${{ env.SPC_PRE_BUILT }}
|
||||
|
||||
# Run build command
|
||||
- run: ./bin/spc build "${{ inputs.extensions }}" ${{ env.SPC_BUILD_DEBUG }} ${{ env.SPC_BUILD_CLI }} ${{ env.SPC_BUILD_MICRO }} ${{ env.SPC_BUILD_FPM }}
|
||||
|
||||
# Upload cli executable
|
||||
- if: ${{ inputs.build-cli == true }}
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: php-${{ inputs.version }}
|
||||
path: buildroot/bin/php.exe
|
||||
|
||||
# Upload micro self-extracted executable
|
||||
- if: ${{ inputs.build-micro == true }}
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: micro-${{ inputs.version }}
|
||||
path: buildroot/bin/micro.sfx
|
||||
|
||||
# Upload extensions metadata
|
||||
- uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: license-files
|
||||
path: buildroot/license/
|
||||
- uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: build-meta
|
||||
path: |
|
||||
buildroot/build-manifest.json
|
||||
140
.github/workflows/ext-matrix-tests.yml
vendored
Normal file
140
.github/workflows/ext-matrix-tests.yml
vendored
Normal file
@@ -0,0 +1,140 @@
|
||||
name: "Extension Matrix Tests"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
types: [opened, synchronize, labeled]
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: "${{ matrix.extension }} (PHP ${{ matrix.php-version }} on ${{ matrix.operating-system }})"
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
if: contains(github.event.pull_request.labels.*.name, 'need-full-test')
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
extension:
|
||||
- amqp
|
||||
- apcu
|
||||
- bcmath
|
||||
- bz2
|
||||
- calendar
|
||||
- ctype
|
||||
- curl
|
||||
- dba
|
||||
- dom
|
||||
- ds
|
||||
- event
|
||||
- exif
|
||||
- filter
|
||||
- fileinfo
|
||||
- ftp
|
||||
- gd
|
||||
- gettext
|
||||
- gmp
|
||||
- iconv
|
||||
- igbinary
|
||||
- imagick
|
||||
- imap
|
||||
- intl
|
||||
- ldap
|
||||
- mbstring,mbregex
|
||||
- memcache
|
||||
- mysqli,mysqlnd,pdo_mysql
|
||||
- opcache
|
||||
- openssl
|
||||
- pcntl
|
||||
- password-argon2
|
||||
- pcntl
|
||||
- pdo
|
||||
- pgsql,pdo_pgsql
|
||||
- phar
|
||||
- posix
|
||||
- rar
|
||||
- protobuf
|
||||
- readline
|
||||
- redis
|
||||
- session
|
||||
- shmop
|
||||
- simdjson
|
||||
- simplexml,xml
|
||||
- snappy
|
||||
- soap
|
||||
- sockets
|
||||
- sodium
|
||||
- sqlite3,pdo_sqlite
|
||||
- sqlsrv
|
||||
- ssh2
|
||||
- swoole
|
||||
- swoole,swoole-hook-pgsql,swoole-hook-mysql,swoole-hook-sqlite,swoole-hook-odbc
|
||||
- swow
|
||||
- sysvmsg,sysvsem,sysvshm
|
||||
- tidy
|
||||
- tokenizer
|
||||
- uuid
|
||||
- uv
|
||||
- xhprof
|
||||
- xlswriter
|
||||
- xmlwriter,xmlreader
|
||||
- xsl
|
||||
- yac
|
||||
- yaml
|
||||
- zip
|
||||
- zlib
|
||||
- zstd
|
||||
php-version:
|
||||
- "8.4"
|
||||
operating-system:
|
||||
- "ubuntu-latest"
|
||||
#- "macos-15-intel"
|
||||
#- "debian-arm64-self-hosted"
|
||||
- "macos-15"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v4"
|
||||
|
||||
- name: OS type
|
||||
id: os-type
|
||||
run: |
|
||||
OS=""
|
||||
if [ "${{ matrix.operating-system }}" = "ubuntu-latest" ]; then
|
||||
OS="linux-x86_64"
|
||||
elif [ "${{ matrix.operating-system }}" = "macos-15-intel" ]; then
|
||||
OS="macos-x86_64"
|
||||
elif [ "${{ matrix.operating-system }}" = "debian-arm64-self-hosted" ]; then
|
||||
OS="linux-aarch64"
|
||||
elif [ "${{ matrix.operating-system }}" = "macos-15" ]; then
|
||||
OS="macos-aarch64"
|
||||
fi
|
||||
echo "OS=$OS" >> $GITHUB_ENV
|
||||
|
||||
- name: "Setup PHP"
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: 8.4
|
||||
tools: pecl, composer
|
||||
extensions: curl, openssl, mbstring
|
||||
ini-values: memory_limit=-1
|
||||
env:
|
||||
phpts: nts
|
||||
|
||||
- name: "Install Dependencies"
|
||||
run: composer update -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
|
||||
|
||||
- id: cache-download
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: downloads
|
||||
key: php-${{ matrix.php-version }}-dependencies-for-tests
|
||||
|
||||
# If there's no dependencies cache, fetch sources
|
||||
- name: "Download sources"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./bin/spc download --with-php=${{ matrix.php-version }} --for-extensions=${{ matrix.extension }} --debug --ignore-cache-sources=php-src
|
||||
|
||||
- name: "Build library: ${{ matrix.library }}"
|
||||
run: |
|
||||
SPC_USE_SUDO=yes ./bin/spc doctor --auto-fix
|
||||
./bin/spc build --build-cli --build-micro --build-fpm ${{ matrix.extension }} --debug --with-suggested-libs --with-suggested-exts
|
||||
48
.github/workflows/post-test-bot-comment.yml
vendored
Normal file
48
.github/workflows/post-test-bot-comment.yml
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
name: Post Test Bot Comment
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["v3 Tests"]
|
||||
types: [completed]
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
actions: read
|
||||
|
||||
jobs:
|
||||
post-comment:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- name: Download bot output
|
||||
id: download
|
||||
uses: actions/download-artifact@v4
|
||||
continue-on-error: true
|
||||
with:
|
||||
name: bot-output
|
||||
run-id: ${{ github.event.workflow_run.id }}
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Post/Update comment
|
||||
if: steps.download.outcome == 'success'
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
COMMENT_BODY=$(jq -r '.comment_body' bot-output.json)
|
||||
PR_NUMBER=$(jq -r '.pr_number' bot-output.json)
|
||||
MARKER="<!-- spc-test-bot -->"
|
||||
|
||||
# Find existing bot comment id
|
||||
EXISTING_ID=$(gh api \
|
||||
"repos/${{ github.repository }}/issues/${PR_NUMBER}/comments" \
|
||||
--jq "[.[] | select(.body | startswith(\"${MARKER}\")) | .id] | first // empty")
|
||||
|
||||
if [ -n "$EXISTING_ID" ]; then
|
||||
gh api --method PATCH \
|
||||
"repos/${{ github.repository }}/issues/comments/${EXISTING_ID}" \
|
||||
-f body="$COMMENT_BODY"
|
||||
else
|
||||
gh pr comment "$PR_NUMBER" \
|
||||
--repo "${{ github.repository }}" \
|
||||
--body "$COMMENT_BODY"
|
||||
fi
|
||||
208
.github/workflows/release-build.yml
vendored
Normal file
208
.github/workflows/release-build.yml
vendored
Normal file
@@ -0,0 +1,208 @@
|
||||
name: Build SPC Binary
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "main", "v3" ]
|
||||
pull_request:
|
||||
branches: [ "main", "v3" ]
|
||||
paths:
|
||||
- '.github/workflows/release-build.yml'
|
||||
release:
|
||||
types:
|
||||
- published
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
PHP_VERSION: 8.4
|
||||
MICRO_VERSION: 8.4.11
|
||||
|
||||
jobs:
|
||||
build-release-artifacts:
|
||||
name: "Build SPC Binary for ${{ matrix.operating-system.name }}"
|
||||
runs-on: ${{ matrix.operating-system.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
operating-system:
|
||||
- name: "linux-x86_64"
|
||||
os: "ubuntu-latest"
|
||||
filename: "spc-linux-x86_64.tar.gz"
|
||||
- name: "macos-x86_64"
|
||||
os: "macos-15-intel"
|
||||
filename: "spc-macos-x86_64.tar.gz"
|
||||
- name: "linux-aarch64"
|
||||
os: "ubuntu-latest"
|
||||
filename: "spc-linux-aarch64.tar.gz"
|
||||
- name: "macos-aarch64"
|
||||
os: "macos-14"
|
||||
filename: "spc-macos-aarch64.tar.gz"
|
||||
- name: "windows-x64"
|
||||
os: "ubuntu-latest"
|
||||
filename: "spc-windows-x64.exe"
|
||||
permissions:
|
||||
id-token: write
|
||||
attestations: write
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v5"
|
||||
|
||||
- if: inputs.debug == true
|
||||
run: echo "SPC_BUILD_DEBUG=--debug" >> $GITHUB_ENV
|
||||
|
||||
- name: "Install PHP for official runners"
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
coverage: none
|
||||
tools: composer:v2
|
||||
php-version: "${{ env.PHP_VERSION }}"
|
||||
ini-values: memory_limit=-1
|
||||
extensions: curl, openssl, mbstring
|
||||
|
||||
- name: "Get Composer Cache Directory"
|
||||
id: composer-cache
|
||||
run: |
|
||||
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: "Cache Composer dependencies"
|
||||
uses: "actions/cache@v5"
|
||||
with:
|
||||
path: "${{ steps.composer-cache.outputs.dir }}"
|
||||
key: "php-${{ env.PHP_VERSION }}-locked-composer-${{ hashFiles('**/composer.lock') }}"
|
||||
restore-keys: |
|
||||
php-${{ env.PHP_VERSION }}-locked-composer
|
||||
|
||||
- name: "Install Locked Dependencies"
|
||||
run: "composer install --no-interaction --no-progress"
|
||||
|
||||
- name: "Build PHAR File"
|
||||
run: "composer build:phar"
|
||||
|
||||
- name: "Download Minimal Combination"
|
||||
run: |
|
||||
if [ "${{ matrix.operating-system.name }}" = "windows-x64" ]; then
|
||||
curl -fsSL https://dl.static-php.dev/static-php-cli/windows/spc-min/php-${{ env.MICRO_VERSION }}-micro-win.zip -o tmp.zip
|
||||
unzip tmp.zip
|
||||
else
|
||||
curl -fsSL https://dl.static-php.dev/static-php-cli/minimal/php-${{ env.MICRO_VERSION }}-micro-${{ matrix.operating-system.name }}.tar.gz -o tmp.tgz
|
||||
tar -zxvf tmp.tgz
|
||||
fi
|
||||
|
||||
- name: "Generate Executable"
|
||||
run: |
|
||||
bin/spc micro:combine spc.phar -M micro.sfx -O spc -I "memory_limit=2G"
|
||||
if [ "${{ matrix.operating-system.name }}" = "windows-x64" ]; then
|
||||
mv spc spc.exe
|
||||
else
|
||||
chmod +x spc
|
||||
fi
|
||||
if [ "${{ matrix.operating-system.name }}" = "macos-aarch64" ] || [ "${{ matrix.operating-system.name }}" = "macos-x86_64" ]; then
|
||||
sudo xattr -cr ./spc
|
||||
fi
|
||||
|
||||
- name: "Archive Executable and Validate Binary"
|
||||
run: |
|
||||
if [ "${{ matrix.operating-system.name }}" != "windows-x64" ]; then
|
||||
tar -czf ${{ matrix.operating-system.filename }} spc
|
||||
# validate spc binary
|
||||
if [ "${{ matrix.operating-system.name }}" == "linux-x86_64" ]; then
|
||||
./spc dev:info php
|
||||
fi
|
||||
fi
|
||||
|
||||
- name: "Generate build provenance attestation"
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: actions/attest-build-provenance@v4
|
||||
with:
|
||||
subject-path: "${{ github.workspace }}/${{ matrix.operating-system.name == 'windows-x64' && 'spc.exe' || 'spc' }}"
|
||||
|
||||
- name: "Copy file"
|
||||
run: |
|
||||
if [ "${{ matrix.operating-system.name }}" != "windows-x64" ]; then
|
||||
mkdir dist/ && cp ${{ matrix.operating-system.filename }} dist/ && cp spc dist/spc-${{ matrix.operating-system.name }}
|
||||
else
|
||||
mkdir dist/ && cp spc.exe dist/${{ matrix.operating-system.filename }}
|
||||
echo "SUFFIX=.exe" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: "Upload Binaries to Release"
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: ${{startsWith(github.ref, 'refs/tags/') }}
|
||||
with:
|
||||
files: dist/${{ matrix.operating-system.filename }}
|
||||
|
||||
- name: "Deploy to self-hosted OSS (nightly)"
|
||||
# only run this step if the repository is static-php-cli and is push to v3 branch
|
||||
if: ${{ github.repository == 'crazywhalecc/static-php-cli' && github.ref == 'refs/heads/v3' }}
|
||||
uses: static-php/upload-s3-action@v1.0.0
|
||||
with:
|
||||
aws_key_id: ${{ secrets.AWS_KEY_ID }}
|
||||
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws_bucket: ${{ secrets.AWS_BUCKET }}
|
||||
source_dir: "dist/"
|
||||
destination_dir: v3/spc-bin/nightly/
|
||||
endpoint: ${{ secrets.AWS_ENDPOINT }}
|
||||
|
||||
- name: "Deploy to self-hosted OSS (latest)"
|
||||
# only run this step if the repository is static-php-cli and is release tag
|
||||
if: ${{ github.repository == 'crazywhalecc/static-php-cli' && startsWith(github.ref, 'refs/tags/') }}
|
||||
uses: static-php/upload-s3-action@v1.0.0
|
||||
with:
|
||||
aws_key_id: ${{ secrets.AWS_KEY_ID }}
|
||||
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws_bucket: ${{ secrets.AWS_BUCKET }}
|
||||
source_dir: "dist/"
|
||||
destination_dir: v3/spc-bin/latest/
|
||||
endpoint: ${{ secrets.AWS_ENDPOINT }}
|
||||
|
||||
- name: "Deploy to self-hosted OSS (versioned)"
|
||||
# only run this step if the repository is static-php-cli and is release tag
|
||||
if: ${{ github.repository == 'crazywhalecc/static-php-cli' && startsWith(github.ref, 'refs/tags/') }}
|
||||
uses: static-php/upload-s3-action@v1.0.0
|
||||
with:
|
||||
aws_key_id: ${{ secrets.AWS_KEY_ID }}
|
||||
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws_bucket: ${{ secrets.AWS_BUCKET }}
|
||||
source_dir: "dist/"
|
||||
destination_dir: v3/spc-bin/${{ github.ref_name }}/
|
||||
endpoint: ${{ secrets.AWS_ENDPOINT }}
|
||||
|
||||
- name: "Upload Artifact"
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
path: spc${{ env.SUFFIX }}
|
||||
name: spc-${{ matrix.operating-system.name }}${{ env.SUFFIX }}
|
||||
test-spc:
|
||||
name: "Test SPC Binary for ${{ matrix.operating-system.name }}"
|
||||
runs-on: ${{ matrix.operating-system.os }}
|
||||
needs: [build-release-artifacts]
|
||||
strategy:
|
||||
matrix:
|
||||
operating-system:
|
||||
- name: "linux-x86_64"
|
||||
os: "ubuntu-latest"
|
||||
- name: "macos-x86_64"
|
||||
os: "macos-15-intel"
|
||||
- name: "linux-aarch64"
|
||||
os: "ubuntu-24.04-arm"
|
||||
- name: "macos-aarch64"
|
||||
os: "macos-15"
|
||||
- name: "windows-x64"
|
||||
os: "windows-latest"
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: "Download Artifact"
|
||||
uses: actions/download-artifact@v5
|
||||
env:
|
||||
SUFFIX: ${{ matrix.operating-system.name == 'windows-x64' && '.exe' || '' }}
|
||||
with:
|
||||
name: spc-${{ matrix.operating-system.name }}${{ env.SUFFIX }}
|
||||
|
||||
- name: "Chmod"
|
||||
if: matrix.operating-system.name != 'windows-x64'
|
||||
run: chmod +x spc
|
||||
|
||||
- name: "Run SPC Tests"
|
||||
env:
|
||||
SUFFIX: ${{ matrix.operating-system.name == 'windows-x64' && '.exe' || '' }}
|
||||
run: ./spc${{ env.SUFFIX }} dev:info php
|
||||
270
.github/workflows/tests.yml
vendored
Normal file
270
.github/workflows/tests.yml
vendored
Normal file
@@ -0,0 +1,270 @@
|
||||
name: v3 Tests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [ "v3" ]
|
||||
types: [ opened, synchronize, reopened, labeled, unlabeled ]
|
||||
paths:
|
||||
- 'src/**'
|
||||
- 'config/**'
|
||||
- '.github/workflows/tests.yml'
|
||||
- 'bin/**'
|
||||
- 'composer.json'
|
||||
- 'box.json'
|
||||
- '.php-cs-fixer.php'
|
||||
|
||||
permissions: read-all
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
jobs:
|
||||
php-cs-fixer:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: "Setup PHP"
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: '8.4'
|
||||
extensions: curl, openssl, mbstring
|
||||
ini-values: memory_limit=-1
|
||||
tools: pecl, composer, php-cs-fixer
|
||||
|
||||
- name: Run PHP-CS-Fixer fix
|
||||
run: php-cs-fixer fix --dry-run --diff --ansi
|
||||
|
||||
phpstan:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: "Setup PHP"
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: '8.4'
|
||||
extensions: curl, openssl, mbstring
|
||||
ini-values: memory_limit=-1
|
||||
tools: composer
|
||||
env:
|
||||
phpts: zts
|
||||
|
||||
- name: "Cache Composer packages"
|
||||
id: composer-cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: vendor
|
||||
key: ${{ runner.os }}-phpstan-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-phpstan-
|
||||
|
||||
- name: "Install Dependencies"
|
||||
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
|
||||
|
||||
- name: "Run phpstan"
|
||||
run: vendor/bin/phpstan analyse
|
||||
|
||||
phpunit:
|
||||
name: "PHPUnit (PHP ${{ matrix.php }})"
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- php: '8.4'
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: "Setup PHP"
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: "${{ matrix.php }}"
|
||||
tools: pecl, composer
|
||||
extensions: curl, openssl, mbstring
|
||||
ini-values: memory_limit=-1
|
||||
|
||||
- name: "Cache Composer packages"
|
||||
id: composer-cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: vendor
|
||||
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-php
|
||||
|
||||
- name: "Install Dependencies"
|
||||
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
|
||||
|
||||
- name: "Run PHPUnit Tests"
|
||||
run: vendor/bin/phpunit tests/ --no-coverage
|
||||
|
||||
check-gate:
|
||||
name: "Check: need-test label"
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
enabled: ${{ steps.gate.outputs.enabled }}
|
||||
steps:
|
||||
- name: Check label
|
||||
id: gate
|
||||
run: |
|
||||
LABELS='${{ toJSON(github.event.pull_request.labels.*.name) }}'
|
||||
if echo "$LABELS" | grep -q '"need-test"'; then
|
||||
echo "enabled=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "enabled=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
test-bot:
|
||||
name: "Test Bot: analyze PR"
|
||||
needs: check-gate
|
||||
if: needs.check-gate.outputs.enabled == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
outputs:
|
||||
need_test: ${{ steps.bot.outputs.need_test }}
|
||||
gen_matrix_args: ${{ steps.bot.outputs.gen_matrix_args }}
|
||||
gen_matrix_args_tier2: ${{ steps.bot.outputs.gen_matrix_args_tier2 }}
|
||||
php_versions: ${{ steps.bot.outputs.php_versions }}
|
||||
tier2: ${{ steps.bot.outputs.tier2 }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: '8.4'
|
||||
extensions: curl, openssl, mbstring
|
||||
ini-values: memory_limit=-1
|
||||
tools: composer
|
||||
|
||||
- name: Install dependencies
|
||||
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist --no-dev
|
||||
|
||||
- name: Run dev:test-bot
|
||||
id: bot
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
BOT_JSON=$(php -d opcache.enable_cli=0 bin/spc dev:test-bot \
|
||||
--pr=${{ github.event.pull_request.number }} \
|
||||
--repo=${{ github.repository }} 2>/dev/null)
|
||||
|
||||
echo "need_test=$(echo "$BOT_JSON" | jq -r '.need_test')" >> "$GITHUB_OUTPUT"
|
||||
echo "gen_matrix_args=$(echo "$BOT_JSON" | jq -r '.gen_matrix_args')" >> "$GITHUB_OUTPUT"
|
||||
echo "gen_matrix_args_tier2=$(echo "$BOT_JSON" | jq -r '.gen_matrix_args_tier2')" >> "$GITHUB_OUTPUT"
|
||||
echo "php_versions=$(echo "$BOT_JSON" | jq -c '.php_versions')" >> "$GITHUB_OUTPUT"
|
||||
echo "tier2=$(echo "$BOT_JSON" | jq -r '.tier2')" >> "$GITHUB_OUTPUT"
|
||||
|
||||
# Save JSON for the comment-posting workflow
|
||||
jq -n --argjson bot "$BOT_JSON" \
|
||||
--arg pr '${{ github.event.pull_request.number }}' \
|
||||
'$bot + {pr_number: $pr}' > bot-output.json
|
||||
|
||||
- name: Upload bot output
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: bot-output
|
||||
path: bot-output.json
|
||||
retention-days: 1
|
||||
|
||||
gen-matrix:
|
||||
name: "Generate test matrix"
|
||||
needs: test-bot
|
||||
if: needs.test-bot.outputs.need_test == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix: ${{ steps.build.outputs.matrix }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: '8.4'
|
||||
extensions: curl, openssl, mbstring
|
||||
ini-values: memory_limit=-1
|
||||
tools: composer
|
||||
|
||||
- name: Install dependencies
|
||||
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist --no-dev
|
||||
|
||||
- name: Build matrix
|
||||
id: build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GEN_MATRIX_ARGS: ${{ needs.test-bot.outputs.gen_matrix_args }}
|
||||
GEN_MATRIX_ARGS_TIER2: ${{ needs.test-bot.outputs.gen_matrix_args_tier2 }}
|
||||
PHP_VERSIONS: ${{ needs.test-bot.outputs.php_versions }}
|
||||
TIER2: ${{ needs.test-bot.outputs.tier2 }}
|
||||
run: |
|
||||
# Tier1 matrix
|
||||
MATRIX1=$(bin/spc dev:gen-ext-test-matrix $GEN_MATRIX_ARGS 2>/dev/null)
|
||||
|
||||
# Merge Tier2 if requested
|
||||
if [ "$TIER2" = "true" ] && [ -n "$GEN_MATRIX_ARGS_TIER2" ]; then
|
||||
MATRIX2=$(bin/spc dev:gen-ext-test-matrix $GEN_MATRIX_ARGS_TIER2 2>/dev/null)
|
||||
COMBINED=$(jq -n --argjson m1 "$MATRIX1" --argjson m2 "$MATRIX2" '$m1 + $m2')
|
||||
else
|
||||
COMBINED=$MATRIX1
|
||||
fi
|
||||
|
||||
# Expand PHP versions: cartesian product of entries × php_versions
|
||||
FINAL=$(echo "$COMBINED" | jq --argjson versions "$PHP_VERSIONS" \
|
||||
'[.[] | . as $entry | $versions[] | $entry + {"php-version": .}]')
|
||||
|
||||
echo "matrix=$(echo "$FINAL" | jq -c '{"combo": .}')" >> "$GITHUB_OUTPUT"
|
||||
|
||||
ext-test:
|
||||
name: "Ext test: ${{ matrix.combo.extension }} [${{ matrix.combo.sapi }}] (PHP ${{ matrix.combo.php-version }} - ${{ matrix.combo.os }}-${{ matrix.combo.arch }})"
|
||||
needs: gen-matrix
|
||||
runs-on: ${{ matrix.combo.runner }}
|
||||
timeout-minutes: 120
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix: ${{ fromJSON(needs.gen-matrix.outputs.matrix) }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: 8.4
|
||||
extensions: curl, openssl, mbstring
|
||||
ini-values: memory_limit=-1
|
||||
tools: composer
|
||||
env:
|
||||
phpts: nts
|
||||
|
||||
- name: Install dependencies
|
||||
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist --no-dev
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
SPC_USE_SUDO: "yes"
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
./bin/spc doctor --auto-fix
|
||||
${{ matrix.combo.build-args }} --dl-with-php=${{ matrix.combo.php-version }}
|
||||
|
||||
# - name: Setup upterm session
|
||||
# if: ${{ failure() }}
|
||||
# uses: owenthereal/action-upterm@v1
|
||||
|
||||
- name: Upload logs
|
||||
if: always() && hashFiles('log/**') != ''
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: logs-${{ matrix.combo.os }}-${{ matrix.combo.arch }}-${{ matrix.combo.sapi }}-${{ matrix.combo.extension }}-php${{ matrix.combo.php-version }}
|
||||
path: log
|
||||
73
.github/workflows/vitepress-deploy.yml
vendored
Normal file
73
.github/workflows/vitepress-deploy.yml
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
name: Docs build test and auto deploy
|
||||
on:
|
||||
pull_request:
|
||||
branches: [ "v3" ]
|
||||
types: [ opened, synchronize, reopened ]
|
||||
paths:
|
||||
- 'config/**.yml'
|
||||
- 'docs/**'
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
- '.github/workflows/vitepress-deploy.yml'
|
||||
push:
|
||||
branches: [ "v3" ]
|
||||
paths:
|
||||
- 'config/**.yml'
|
||||
- 'docs/**'
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
- '.github/workflows/vitepress-deploy.yml'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Deploy docs
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'crazywhalecc/static-php-cli'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 22
|
||||
cache: yarn
|
||||
|
||||
- name: Install documentation dependencies
|
||||
run: yarn install --frozen-lockfile
|
||||
|
||||
- name: "Install PHP for official runners"
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
coverage: none
|
||||
tools: composer:v2
|
||||
php-version: 8.4
|
||||
ini-values: memory_limit=-1
|
||||
extensions: curl, openssl, mbstring
|
||||
|
||||
- name: "Get Composer Cache Directory"
|
||||
id: composer-cache
|
||||
run: |
|
||||
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: "Cache Composer dependencies"
|
||||
uses: "actions/cache@v4"
|
||||
with:
|
||||
path: "${{ steps.composer-cache.outputs.dir }}"
|
||||
key: "php-8.2-locked-composer-${{ hashFiles('**/composer.lock') }}"
|
||||
restore-keys: |
|
||||
php-8.2-locked-composer
|
||||
|
||||
- name: "Install Locked Dependencies"
|
||||
run: "composer install --no-interaction --no-progress"
|
||||
|
||||
- name: Build
|
||||
run: yarn docs:build
|
||||
|
||||
# Deploy to GitHub Pages only when the workflow is triggered by a push to the v3 branch
|
||||
- name: Deploy to GitHub Pages
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
if: github.event_name == 'push' && github.ref == 'refs/heads/v3'
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: docs/.vitepress/dist
|
||||
75
.gitignore
vendored
Normal file
75
.gitignore
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
.idea
|
||||
/runtime/
|
||||
/docker/libraries/
|
||||
/docker/extensions/
|
||||
/docker/source/
|
||||
|
||||
# Vendor files
|
||||
/vendor/**
|
||||
|
||||
# default source extract directory
|
||||
/source/**
|
||||
|
||||
# built by shared embed tests
|
||||
/locale/
|
||||
|
||||
# default source download directory
|
||||
/downloads/**
|
||||
|
||||
# default source build root directory
|
||||
/buildroot/**
|
||||
|
||||
# default package root directory
|
||||
/pkgroot/**
|
||||
|
||||
# Windows PHP SDK binary tools
|
||||
/php-sdk-binary-tools/**
|
||||
|
||||
# default pack:lib and release directory
|
||||
/dist/**
|
||||
packlib_files.txt
|
||||
|
||||
# tools cache files
|
||||
.php-cs-fixer.cache
|
||||
.phpunit.result.cache
|
||||
|
||||
# doctor cache fallback (when ~/.cache/spc/ is not writable)
|
||||
.spc-doctor.lock
|
||||
|
||||
# exclude self-runtime
|
||||
/bin/*
|
||||
!/bin/spc*
|
||||
!/bin/setup-runtime*
|
||||
!/bin/docker-entrypoint.sh
|
||||
|
||||
# exclude windows build tools
|
||||
/php-sdk-binary-tools/
|
||||
|
||||
# default test directory
|
||||
/tests/var/
|
||||
|
||||
# VitePress
|
||||
/node_modules/
|
||||
/docs/.vitepress/dist/
|
||||
/docs/.vitepress/cache/
|
||||
/docs/.vitepress/.temp/
|
||||
/docs/.vitepress/ext-data.json
|
||||
/docs/.vitepress/deps-data.json
|
||||
package-lock.json
|
||||
pnpm-lock.yaml
|
||||
|
||||
# craft
|
||||
craft.yml
|
||||
|
||||
# SPC logs
|
||||
log/
|
||||
|
||||
# spc.phar
|
||||
spc.phar
|
||||
spc.exe
|
||||
|
||||
# dumped files from StaticPHP v3
|
||||
/dump-*.json
|
||||
|
||||
# config parse cache
|
||||
/.spc.cache.php
|
||||
74
.php-cs-fixer.php
Normal file
74
.php-cs-fixer.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
return (new PhpCsFixer\Config())
|
||||
->setRiskyAllowed(true)
|
||||
->setUnsupportedPhpVersionAllowed(true)
|
||||
->setRules([
|
||||
'@PSR12' => true,
|
||||
'@Symfony' => true,
|
||||
'@PhpCsFixer' => true,
|
||||
'array_syntax' => [
|
||||
'syntax' => 'short',
|
||||
],
|
||||
'list_syntax' => [
|
||||
'syntax' => 'short',
|
||||
],
|
||||
'concat_space' => [
|
||||
'spacing' => 'one',
|
||||
],
|
||||
'blank_line_before_statement' => [
|
||||
'statements' => [
|
||||
'declare',
|
||||
],
|
||||
],
|
||||
'ordered_imports' => [
|
||||
'imports_order' => [
|
||||
'class',
|
||||
'function',
|
||||
'const',
|
||||
],
|
||||
'sort_algorithm' => 'alpha',
|
||||
],
|
||||
'single_line_comment_style' => [
|
||||
'comment_types' => [
|
||||
],
|
||||
],
|
||||
'yoda_style' => [
|
||||
'always_move_variable' => false,
|
||||
'equal' => false,
|
||||
'identical' => false,
|
||||
],
|
||||
'multiline_whitespace_before_semicolons' => [
|
||||
'strategy' => 'no_multi_line',
|
||||
],
|
||||
'constant_case' => [
|
||||
'case' => 'lower',
|
||||
],
|
||||
'class_attributes_separation' => true,
|
||||
'combine_consecutive_unsets' => true,
|
||||
'declare_strict_types' => true,
|
||||
'linebreak_after_opening_tag' => true,
|
||||
'lowercase_static_reference' => true,
|
||||
'no_useless_else' => true,
|
||||
'no_unused_imports' => true,
|
||||
'not_operator_with_successor_space' => false,
|
||||
'not_operator_with_space' => false,
|
||||
'ordered_class_elements' => true,
|
||||
'php_unit_strict' => false,
|
||||
'phpdoc_separation' => false,
|
||||
'single_quote' => true,
|
||||
'standardize_not_equals' => true,
|
||||
'multiline_comment_opening_closing' => true,
|
||||
'phpdoc_summary' => false,
|
||||
'php_unit_test_class_requires_covers' => false,
|
||||
'phpdoc_var_without_name' => false,
|
||||
'fully_qualified_strict_types' => false,
|
||||
'operator_linebreak' => false,
|
||||
'php_unit_data_provider_method_order' => false,
|
||||
])
|
||||
->setFinder(
|
||||
PhpCsFixer\Finder::create()->in([__DIR__ . '/src', __DIR__ . '/tests/StaticPHP'])
|
||||
)
|
||||
->setParallelConfig(PhpCsFixer\Runner\Parallel\ParallelConfigFactory::detect());
|
||||
60
AGENTS.md
Normal file
60
AGENTS.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# StaticPHP v3 Agent Guide
|
||||
|
||||
StaticPHP is a PHP CLI application for building static PHP binaries, PHP SAPIs, extensions, libraries, helper tools, and project bundles. Prefer the v3 architecture under `src/StaticPHP`, `src/Package`, `config/pkg`, and `config/artifact`.
|
||||
|
||||
This file is the shared entry point for coding agents such as Codex, OpenCode, Claude-compatible agents, and GitHub Copilot agents. GitHub Copilot also has `.github/copilot-instructions.md`.
|
||||
|
||||
## Skills
|
||||
|
||||
Detailed task workflows live in `.github/skills`. Use them when the task matches:
|
||||
|
||||
- `.github/skills/staticphp-package-maintenance`: add, modify, review, or validate package, artifact, extension, library, target, or tool definitions.
|
||||
- `.github/skills/staticphp-build-troubleshooting`: diagnose build, download, doctor, shell, terminal, CI, smoke-test, or log failures.
|
||||
- `.github/skills/staticphp-documentation-sync`: synchronize bilingual documentation (`docs/en/` and `docs/zh/`) when features, commands, configuration, APIs, or behavior change.
|
||||
|
||||
If your agent does not automatically discover skills from `.github/skills`, read the matching `SKILL.md` manually before working on that task.
|
||||
|
||||
## Project Map
|
||||
|
||||
- `bin/spc`: primary CLI entrypoint.
|
||||
- `composer.json`: PHP 8.4+, Symfony Console, DI, YAML, logger; useful scripts are `composer test`, `composer analyse`, `composer lint-config`, and `composer cs-fix`.
|
||||
- `spc.registry.yml`: built-in `core` registry.
|
||||
- `config/pkg/ext`: PHP extension package YAML, usually named `ext-*.yml`.
|
||||
- `config/pkg/lib`: library package YAML.
|
||||
- `config/pkg/target`: final build target and virtual target YAML.
|
||||
- `config/pkg/tool`: helper tool package YAML.
|
||||
- `config/artifact`: standalone artifact YAML for shared or complex sources/binaries.
|
||||
- `log/`: build and shell execution logs (`spc.output.log`, `spc.shell.log`, and per-package CMake/config logs); controlled by `SPC_LOGS_DIR` and `SPC_ENABLE_LOG_FILE`.
|
||||
- `src/StaticPHP`: framework core: registry loading, config validation, dependency resolution, package install/build pipeline, doctor, toolchains, runtime shell/executors, exceptions.
|
||||
- `src/Package`: package-specific build logic registered by PHP attributes.
|
||||
- `src/globals`: constants, helper functions, patches, smoke tests, bundled license text.
|
||||
- `tests`: PHPUnit tests for config, registry, artifacts, dependency resolver, DI, commands, and utilities.
|
||||
- `docs/en/develop` and `docs/zh/develop`: developer documentation. Some pages may be TODO; verify against source when behavior matters.
|
||||
|
||||
## Working Rules
|
||||
|
||||
- Keep changes scoped to the requested package, artifact, command, docs, or tests.
|
||||
- Prefer existing package patterns over new abstractions. Search for a similar package first.
|
||||
- Use structured YAML config; do not encode dependency logic in PHP when config fields are enough.
|
||||
- Match package names exactly: extension packages use `ext-` in config and dependencies; `#[Extension('curl')]` expands to `ext-curl`.
|
||||
- Use platform suffixes such as `@unix`, `@linux`, `@macos`, and `@windows` instead of runtime conditionals when the difference is declarative.
|
||||
- Add or update PHP package classes only when build commands, validation, custom configure args, hooks, or source patching are required.
|
||||
- Do not edit generated build directories (`buildroot/`, `source/`, `downloads/`, `pkgroot/`) as a fix.
|
||||
|
||||
## Validation
|
||||
|
||||
For config or package changes, run CS checks first:
|
||||
|
||||
```bash
|
||||
bin/spc dev:lint-config
|
||||
composer cs-fix
|
||||
```
|
||||
|
||||
For broader PHP code changes, also run:
|
||||
|
||||
```bash
|
||||
composer test
|
||||
composer analyse
|
||||
```
|
||||
|
||||
Use build commands only when needed for the task or when the user provided a repro, because full static builds can be slow and platform-sensitive.
|
||||
695
LICENSE
695
LICENSE
@@ -1,674 +1,21 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022-2023 Jerry Ma
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
74
README-en.md
74
README-en.md
@@ -1,74 +0,0 @@
|
||||
# static-php-swoole
|
||||
Compile A Statically Linked PHP With Swoole and other Extensions. [English README](/README-en.md)
|
||||
|
||||
BTW, It's only for CLI mode.
|
||||
|
||||
[]()
|
||||
|
||||
## Requirements
|
||||
- Tested on `x86_64` and `aarch64` platform, others have not tested.
|
||||
- Requiring Alpine Linux (version >= 3.13), or requiring musl-libc
|
||||
- Support WSL2
|
||||
- Supporting PHP version >= 7.3
|
||||
|
||||
## Start
|
||||
You can directly download static binary in Release.
|
||||
|
||||
Here's help command to compile it yourself:
|
||||
```bash
|
||||
# Compile script
|
||||
./static-compile-php.sh
|
||||
# And now you get `php-dist/bin/php` file!
|
||||
```
|
||||
|
||||
## Library version
|
||||
- php: 7.4.18
|
||||
- libxml2: 2.9.10
|
||||
- curl: 7.76.1
|
||||
|
||||
## Including PHP extensions
|
||||
- bcmath
|
||||
- calendar
|
||||
- ctype
|
||||
- filter
|
||||
- openssl
|
||||
- pcntl
|
||||
- iconv
|
||||
- inotify (3.0.0)
|
||||
- json
|
||||
- mbstring
|
||||
- phar
|
||||
- curl
|
||||
- pdo
|
||||
- gd
|
||||
- pdo_mysql
|
||||
- mysqlnd
|
||||
- sockets
|
||||
- swoole (4.6.6)
|
||||
- redis (5.3.4)
|
||||
- simplexml
|
||||
- dom
|
||||
- xml
|
||||
- xmlwriter
|
||||
- xmlreader
|
||||
- posix
|
||||
- tokenizer
|
||||
|
||||
## Running preview
|
||||
After-compile status
|
||||

|
||||
|
||||
Run Swoft framework directly
|
||||

|
||||
|
||||
## Todo List
|
||||
- [X] curl/libcurl extension support
|
||||
- [ ] Alternative extension compiling
|
||||
- [ ] php.ini support
|
||||
- [ ] Make composer together
|
||||
- [ ] i18n
|
||||
|
||||
## References
|
||||
- <https://blog.terrywh.net/post/2019/php-static-openssl/>
|
||||
- <https://stackoverflow.com/a/37245653>
|
||||
- <http://blog.gaoyuan.xyz/2014/04/09/statically-compile-php/>
|
||||
156
README-zh.md
Executable file
156
README-zh.md
Executable file
@@ -0,0 +1,156 @@
|
||||
# StaticPHP
|
||||
|
||||
[](README-zh.md)
|
||||
[](README.md)
|
||||
[](https://github.com/crazywhalecc/static-php-cli/releases)
|
||||
[](https://github.com/crazywhalecc/static-php-cli/actions/workflows/tests.yml)
|
||||
[](https://github.com/crazywhalecc/static-php-cli/blob/main/LICENSE)
|
||||
[](https://discord.gg/xf6Rd4pEAk)
|
||||
|
||||
**StaticPHP** 是一个强大的工具,用于构建可移植的可执行文件,包括 PHP、扩展等。
|
||||
|
||||
> [!IMPORTANT]
|
||||
> 我们正准备发布 **v3** 版本,届时项目名称将从 **static-php-cli** 更改为 **StaticPHP**。
|
||||
> 此分支对应 v3 版本。v2 版本请查看 [v2 分支](https://github.com/crazywhalecc/static-php-cli/tree/main)。
|
||||
> 请更新您的参考资料,并关注正式版发布。
|
||||
|
||||
## 特性
|
||||
|
||||
- :elephant: 支持多个 PHP 版本 - PHP 8.1, 8.2, 8.3, 8.4, 8.5
|
||||
- :handbag: 构建零依赖的单文件 PHP 可执行程序
|
||||
- :hamburger: 构建 **[phpmicro](https://github.com/static-php/phpmicro)** 自解压可执行文件(将 PHP 二进制和源码合并为单个文件)
|
||||
- :pill: 自动构建环境检查器,支持自动修复
|
||||
- :zap: 支持 `Linux`、`macOS`、`Windows`
|
||||
- :wrench: 通过 vendor 模式和自定义注册表实现便捷扩展
|
||||
- :books: 智能依赖管理
|
||||
- 📦 自包含 `spc` 可执行文件,便于自安装
|
||||
- :fire: 支持 100+ 热门 [PHP 扩展](https://static-php.dev/en/guide/extensions.html)
|
||||
- :floppy_disk: 支持 UPX 压缩(二进制体积可缩小 30-50%)
|
||||
|
||||
**单文件独立 php-cli:**
|
||||
|
||||
<img width="700" alt="out1" src="https://github.com/crazywhalecc/static-php-cli/assets/20330940/01a2e60f-13b0-4242-a645-f7afa4936396">
|
||||
|
||||
**使用 phpmicro 将 PHP 代码与 PHP 解释器结合:**
|
||||
|
||||
<img width="700" alt="out2" src="https://github.com/crazywhalecc/static-php-cli/assets/20330940/46b7128d-fb72-4169-957e-48564c3ff3e2">
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 下载 spc 二进制
|
||||
|
||||
```bash
|
||||
# For Linux x86_64
|
||||
curl -fsSL -o spc https://dl.static-php.dev/v3/spc-bin/nightly/spc-linux-x86_64
|
||||
# For Linux aarch64
|
||||
curl -fsSL -o spc https://dl.static-php.dev/v3/spc-bin/nightly/spc-linux-aarch64
|
||||
# macOS x86_64 (Intel)
|
||||
curl -fsSL -o spc https://dl.static-php.dev/v3/spc-bin/nightly/spc-macos-x86_64
|
||||
# macOS aarch64 (Apple)
|
||||
curl -fsSL -o spc https://dl.static-php.dev/v3/spc-bin/nightly/spc-macos-aarch64
|
||||
# Windows (x86_64, win10 build 17063 or later, please install VS2022 first)
|
||||
curl.exe -fsSL -o spc.exe https://dl.static-php.dev/v3/spc-bin/nightly/spc-windows-x64.exe
|
||||
```
|
||||
|
||||
对于 macOS 和 Linux,请先添加可执行权限:
|
||||
|
||||
```bash
|
||||
chmod +x ./spc
|
||||
```
|
||||
|
||||
### 2. 构建静态 PHP
|
||||
|
||||
首先,创建 `craft.yml` 文件,并从 [扩展列表](https://static-php.dev/en/guide/extensions.html) 或 [命令生成器](https://static-php.dev/en/guide/cli-generator.html) 指定要包含的扩展:
|
||||
|
||||
```yml
|
||||
# PHP version support: 8.1, 8.2, 8.3, 8.4, 8.5
|
||||
php-version: 8.5
|
||||
# Put your extension list here
|
||||
extensions: "apcu,bcmath,calendar,ctype,curl,dba,dom,exif,fileinfo,filter,gd,iconv,mbregex,mbstring,mysqli,mysqlnd,opcache,openssl,pcntl,pdo,pdo_mysql,pdo_sqlite,phar,posix,readline,redis,session,simplexml,sockets,sodium,sqlite3,tokenizer,xml,xmlreader,xmlwriter,xsl,zip,zlib"
|
||||
sapi:
|
||||
- cli
|
||||
- micro
|
||||
download-options:
|
||||
parallel: 10
|
||||
```
|
||||
|
||||
运行命令:
|
||||
|
||||
```bash
|
||||
./spc craft
|
||||
|
||||
# 输出完整控制台日志
|
||||
./spc craft -vvv
|
||||
```
|
||||
|
||||
### 3. 静态 PHP 使用
|
||||
|
||||
现在你可以将 StaticPHP 构建的二进制复制到另一台机器并在无依赖环境下运行:
|
||||
|
||||
```
|
||||
# php-cli
|
||||
buildroot/bin/php -v
|
||||
|
||||
# phpmicro
|
||||
echo '<?php echo "Hello world!\n";' > a.php
|
||||
./spc micro:combine a.php -O my-app
|
||||
./my-app
|
||||
```
|
||||
|
||||
## 文档
|
||||
|
||||
当前 README 包含基础用法。有关 StaticPHP 的完整功能集,
|
||||
请访问 <https://static-php.dev>。
|
||||
|
||||
## 直接下载
|
||||
|
||||
如果你暂时不想构建,或只想先测试,可以从 [Actions](https://github.com/static-php/hosted/actions/workflows/build-php-bulk.yml) 下载示例预编译产物,或从自托管服务器下载。
|
||||
|
||||
我们为每个 PHP 版本提供 2 种扩展集合:
|
||||
|
||||
- **gigantic**:尽可能包含更多扩展,二进制大小约 100-150MB。
|
||||
- **base**:仅包含 StaticPHP 自身使用的少量扩展,二进制大小约 10MB。
|
||||
|
||||
> WIP
|
||||
|
||||
### 在线构建(使用 GitHub Actions)
|
||||
|
||||
当上方直接下载的二进制无法满足你的需求时,
|
||||
你可以使用 GitHub Actions 轻松构建静态编译的 PHP,
|
||||
并同时自定义要编译的扩展列表。
|
||||
|
||||
1. Fork 此仓库。
|
||||
2. 进入项目的 Actions 并选择 `CI`。
|
||||
3. 选择 `Run workflow`,填写你要编译的 PHP 版本、目标类型和扩展列表。(扩展用逗号分隔,例如 `bcmath,curl,mbstring`)
|
||||
4. 等待工作流执行完成后,进入对应运行记录并下载 `Artifacts`。
|
||||
|
||||
如果你启用 `debug`,构建时将输出所有日志,包括编译日志,便于排查问题。
|
||||
|
||||
> 我们也计划在未来提供可复用的 GitHub Actions 工作流,
|
||||
> 这样你无需 fork 本项目,也能在自己的仓库中轻松构建 static PHP。
|
||||
|
||||
## 贡献
|
||||
|
||||
如果你需要的扩展缺失,可以创建 issue。
|
||||
如果你熟悉本项目,也欢迎发起 pull request。
|
||||
|
||||
如果你想贡献文档,请直接编辑 `docs/`。
|
||||
|
||||
## 赞助本项目
|
||||
|
||||
你可以通过 [GitHub Sponsor](https://github.com/crazywhalecc) 赞助我或我的项目。你捐赠的一部分将用于维护 **static-php.dev** 服务器。
|
||||
|
||||
**特别感谢以下赞助商:**
|
||||
|
||||
<a href="https://beyondco.de/"><img src="/docs/public/images/beyondcode-seeklogo.png" width="300" alt="Beyond Code Logo" /></a>
|
||||
|
||||
<a href="https://nativephp.com/"><img src="/docs/public/images/nativephp-logo.svg" width="300" alt="NativePHP Logo" /></a>
|
||||
|
||||
## 开源许可证
|
||||
|
||||
本项目本身采用 MIT 许可证。
|
||||
一些新添加的扩展和依赖可能来自其他项目。
|
||||
这些源码文件头部也可能包含额外的 LICENSE 和 AUTHOR 信息。
|
||||
|
||||
请在编译后使用 `bin/spc dump-license` 命令导出项目中使用的开源许可证,
|
||||
并遵守对应项目的 LICENSE。
|
||||
205
README.md
Normal file → Executable file
205
README.md
Normal file → Executable file
@@ -1,85 +1,156 @@
|
||||
# static-php-cli
|
||||
Compile A Statically Linked PHP With Swoole and other Extensions. [English README](/README-en.md)
|
||||
# StaticPHP
|
||||
|
||||
编译纯静态的 PHP Binary 二进制文件,带有各种扩展,让 PHP-cli 应用变得更便携!
|
||||
[](README-zh.md)
|
||||
[](README.md)
|
||||
[](https://github.com/crazywhalecc/static-php-cli/releases)
|
||||
[](https://github.com/crazywhalecc/static-php-cli/actions/workflows/tests.yml)
|
||||
[](https://github.com/crazywhalecc/static-php-cli/blob/main/LICENSE)
|
||||
[](https://discord.gg/xf6Rd4pEAk)
|
||||
|
||||
注:只能编译 CLI 模式,暂不支持 CGI 和 FPM 模式
|
||||
**StaticPHP** is a powerful tool designed for building portable executables including PHP, extensions, and more.
|
||||
|
||||
[]()
|
||||
> [!IMPORTANT]
|
||||
> We are preparing to release **v3**, which will include a project rename from **static-php-cli** to **StaticPHP**.
|
||||
> And this branch is for v3. For v2, please check the [v2 branch](https://github.com/crazywhalecc/static-php-cli/tree/main).
|
||||
> Please update your references and stay tuned for the official release.
|
||||
|
||||
## 环境需求
|
||||
- 目前在 x86_64 和 aarch64(arm64) 架构上编译成功,其他架构需自行测试
|
||||
- 需要 Docker(或等我将脚本提出来也可以直接在 Alpine Linux 上使用)
|
||||
- 脚本支持编译的 PHP 版本(7.2 ~ 8.0)
|
||||
## Features
|
||||
|
||||
## 开始
|
||||
可以直接在旁边的 Release 中下载编译好的二进制。
|
||||
- :elephant: Support multiple PHP versions - PHP 8.1, 8.2, 8.3, 8.4, 8.5
|
||||
- :handbag: Build single-file PHP executable with zero dependencies
|
||||
- :hamburger: Build **[phpmicro](https://github.com/static-php/phpmicro)** self-extracting executables (combines PHP binary and source code into one file)
|
||||
- :pill: Automatic build environment checker with auto-fix capabilities
|
||||
- :zap: `Linux`, `macOS`, `Windows` support
|
||||
- :wrench: Easy to extend with vendor mode and custom registries
|
||||
- :books: Intelligent dependency management
|
||||
- 📦 Self-contained `spc` executable for easy self-installation
|
||||
- :fire: Support 100+ popular [PHP extensions](https://static-php.dev/en/guide/extensions.html)
|
||||
- :floppy_disk: UPX compression support (reduces binary size by 30-50%)
|
||||
|
||||
**Single-file standalone php-cli:**
|
||||
|
||||
<img width="700" alt="out1" src="https://github.com/crazywhalecc/static-php-cli/assets/20330940/01a2e60f-13b0-4242-a645-f7afa4936396">
|
||||
|
||||
**Combine PHP code with PHP interpreter using phpmicro:**
|
||||
|
||||
<img width="700" alt="out2" src="https://github.com/crazywhalecc/static-php-cli/assets/20330940/46b7128d-fb72-4169-957e-48564c3ff3e2">
|
||||
|
||||
## Quickstart
|
||||
|
||||
### 1. Download spc binary
|
||||
|
||||
也可以自己使用 Dockerfile 进行编译构建:
|
||||
```bash
|
||||
git clone https://github.com/crazywhalecc/static-php-cli.git
|
||||
cd static-php-cli/docker
|
||||
docker build -t static-php .
|
||||
# For Linux x86_64
|
||||
curl -fsSL -o spc https://dl.static-php.dev/v3/spc-bin/nightly/spc-linux-x86_64
|
||||
# For Linux aarch64
|
||||
curl -fsSL -o spc https://dl.static-php.dev/v3/spc-bin/nightly/spc-linux-aarch64
|
||||
# macOS x86_64 (Intel)
|
||||
curl -fsSL -o spc https://dl.static-php.dev/v3/spc-bin/nightly/spc-macos-x86_64
|
||||
# macOS aarch64 (Apple)
|
||||
curl -fsSL -o spc https://dl.static-php.dev/v3/spc-bin/nightly/spc-macos-aarch64
|
||||
# Windows (x86_64, win10 build 17063 or later, please install VS2022 first)
|
||||
curl.exe -fsSL -o spc.exe https://dl.static-php.dev/v3/spc-bin/nightly/spc-windows-x64.exe
|
||||
```
|
||||
|
||||
编译之后可以使用下方命令将二进制 PHP 提取出来,用以下方式:
|
||||
For macOS and Linux, add execute permission first:
|
||||
|
||||
```bash
|
||||
mkdir dist
|
||||
docker run --rm -v $(pwd)/dist:/dist/ -it static cp php-dist/bin/php /dist/
|
||||
chmod +x ./spc
|
||||
```
|
||||
|
||||
如果要选择安装的扩展,可以修改 `docker/extensions.txt` 文件,具体规则如下:
|
||||
- 文件内使用 `#` 可以注释,表示不安装
|
||||
- 扩展名一律使用小写,目前默认状态下文件内所列的扩展为支持的扩展,其他扩展暂不支持,如有需求请提 Issue 添加
|
||||
### 2. Build Static PHP
|
||||
|
||||
## 支持的扩展(对勾为已支持的扩展,未打勾的正在努力兼容)
|
||||
- [X] bcmath
|
||||
- [X] calendar
|
||||
- [X] ctype
|
||||
- [X] filter
|
||||
- [X] openssl
|
||||
- [X] pcntl
|
||||
- [X] iconv
|
||||
- [X] inotify
|
||||
- [X] json
|
||||
- [X] mbstring
|
||||
- [X] phar
|
||||
- [X] curl
|
||||
- [X] pdo
|
||||
- [X] gd
|
||||
- [X] pdo_mysql
|
||||
- [X] mysqlnd
|
||||
- [X] sockets
|
||||
- [X] swoole
|
||||
- [X] redis
|
||||
- [X] simplexml
|
||||
- [X] dom
|
||||
- [X] xml
|
||||
- [X] xmlwriter
|
||||
- [X] xmlreader
|
||||
- [X] posix
|
||||
- [X] tokenizer
|
||||
- [ ] zip
|
||||
First, create a `craft.yml` file and specify which extensions you want to include from [extension list](https://static-php.dev/en/guide/extensions.html) or [command generator](https://static-php.dev/en/guide/cli-generator.html):
|
||||
|
||||
## 目前的问题(待解决的)
|
||||
- [ ] event 扩展的 sockets 支持不能在静态编译中使用,因为静态内嵌编译暂时没办法调整扩展编译顺序。
|
||||
- [ ] Swoole 扩展不支持 `--enable-swoole-curl`,也是因为编译顺序和加载顺序的问题。
|
||||
- [ ] readline 扩展安装后无法正常使用 `php -a`,原因还没有弄清楚,可能是静态编译造成的 ncurses 库出现了问题。
|
||||
```yml
|
||||
# PHP version support: 8.1, 8.2, 8.3, 8.4, 8.5
|
||||
php-version: 8.5
|
||||
# Put your extension list here
|
||||
extensions: "apcu,bcmath,calendar,ctype,curl,dba,dom,exif,fileinfo,filter,gd,iconv,mbregex,mbstring,mysqli,mysqlnd,opcache,openssl,pcntl,pdo,pdo_mysql,pdo_sqlite,phar,posix,readline,redis,session,simplexml,sockets,sodium,sqlite3,tokenizer,xml,xmlreader,xmlwriter,xsl,zip,zlib"
|
||||
sapi:
|
||||
- cli
|
||||
- micro
|
||||
download-options:
|
||||
parallel: 10
|
||||
```
|
||||
|
||||
## Todo List
|
||||
- [X] curl/libcurl 扩展静态编译
|
||||
- [X] 可自行选择不需要编译进入的扩展
|
||||
- [ ] php.ini 内嵌或分发
|
||||
- [ ] i18n(国际化脚本本身和 README)
|
||||
Run command:
|
||||
|
||||
## 运行示例
|
||||
编译后的状态
|
||||

|
||||
```bash
|
||||
./spc craft
|
||||
|
||||
在不同系统直接运行 Swoft
|
||||

|
||||
# Output full console log
|
||||
./spc craft -vvv
|
||||
```
|
||||
|
||||
## 参考资料
|
||||
- <https://blog.terrywh.net/post/2019/php-static-openssl/>
|
||||
- <https://stackoverflow.com/a/37245653>
|
||||
- <http://blog.gaoyuan.xyz/2014/04/09/statically-compile-php/>
|
||||
### 3. Static PHP usage
|
||||
|
||||
Now you can copy binaries built by StaticPHP to another machine and run with no dependencies:
|
||||
|
||||
```
|
||||
# php-cli
|
||||
buildroot/bin/php -v
|
||||
|
||||
# phpmicro
|
||||
echo '<?php echo "Hello world!\n";' > a.php
|
||||
./spc micro:combine a.php -O my-app
|
||||
./my-app
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
The current README contains basic usage. For the complete feature set of StaticPHP,
|
||||
see <https://static-php.dev>.
|
||||
|
||||
## Direct Download
|
||||
|
||||
If you do not want to build yet or just want to test first, you can download example pre-compiled artifacts from [Actions](https://github.com/static-php/hosted/actions/workflows/build-php-bulk.yml) or from a self-hosted server.
|
||||
|
||||
We offer 2 types of extension sets for each PHP version:
|
||||
|
||||
- **gigantic**: Includes as many extensions as possible, the binary size is about 100-150MB.
|
||||
- **base**: Only includes a few extensions used by StaticPHP itself, the binary size is about 10MB.
|
||||
|
||||
> WIP
|
||||
|
||||
### Build Online (using GitHub Actions)
|
||||
|
||||
When the direct-download binaries above cannot meet your needs,
|
||||
you can use GitHub Actions to easily build a statically compiled PHP
|
||||
while defining your own extension list.
|
||||
|
||||
1. Fork this repository.
|
||||
2. Go to the Actions of the project and select `CI`.
|
||||
3. Select `Run workflow`, fill in the PHP version you want to compile, the target type, and the list of extensions. (extensions comma separated, e.g. `bcmath,curl,mbstring`)
|
||||
4. After waiting for the workflow to finish, open the corresponding run and download `Artifacts`.
|
||||
|
||||
If you enable `debug`, all logs will be output at build time, including compiled logs, for troubleshooting.
|
||||
|
||||
> We are also planning to provide a reusable GitHub Actions workflow in the future,
|
||||
> so that you can easily build static PHP in your own repository, without forking this project.
|
||||
|
||||
## Contribution
|
||||
|
||||
If the extension you need is missing, you can create an issue.
|
||||
If you are familiar with this project, you are also welcome to initiate a pull request.
|
||||
|
||||
If you want to contribute documentation, please just edit in `docs/`.
|
||||
|
||||
## Sponsor this project
|
||||
|
||||
You can sponsor me or my project from [GitHub Sponsor](https://github.com/crazywhalecc). A portion of your donation will be used to maintain the **static-php.dev** server.
|
||||
|
||||
**Special thanks to sponsors below**:
|
||||
|
||||
<a href="https://beyondco.de/"><img src="/docs/public/images/beyondcode-seeklogo.png" width="300" alt="Beyond Code Logo" /></a>
|
||||
|
||||
<a href="https://nativephp.com/"><img src="/docs/public/images/nativephp-logo.svg" width="300" alt="NativePHP Logo" /></a>
|
||||
|
||||
## Open-Source License
|
||||
|
||||
This project itself is licensed under MIT.
|
||||
Some newly added extensions and dependencies may originate from other projects.
|
||||
The headers of those source files may also include additional LICENSE and AUTHOR information.
|
||||
|
||||
Please use the `bin/spc dump-license` command to export the open source licenses used in the project after compilation,
|
||||
and comply with the corresponding project's LICENSE.
|
||||
|
||||
11
bin/docker-entrypoint.sh
Normal file
11
bin/docker-entrypoint.sh
Normal file
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
TARGET_DIR="/app/pkgroot/$(uname -m)-linux"
|
||||
BACKUP_DIR="/app/pkgroot-private"
|
||||
# copy private pkgroot to pkgroot if pkgroot is empty
|
||||
if [ ! -d "$TARGET_DIR" ] || [ -z "$(ls -A "$TARGET_DIR")" ]; then
|
||||
echo "* Copying private pkgroot to pkgroot ..."
|
||||
rm -rf "$TARGET_DIR"
|
||||
cp -r "$BACKUP_DIR" "$TARGET_DIR"
|
||||
fi
|
||||
exec "$@"
|
||||
74
bin/setup-runtime
Executable file
74
bin/setup-runtime
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# set error-quit, verbose, non-variable-quit
|
||||
set -eu
|
||||
# see what system used
|
||||
__OS__=$(uname -s)
|
||||
# see what arch used
|
||||
__ARCH__=$(uname -m)
|
||||
# format arch name
|
||||
case $__ARCH__ in
|
||||
arm64 | aarch64) __ARCH__=aarch64 ;;
|
||||
x86_64|x64) __ARCH__=x86_64 ;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
# format uname
|
||||
case $__OS__ in
|
||||
Darwin) __OS_FIXED__=macos ;;
|
||||
Linux) __OS_FIXED__=linux ;;
|
||||
*) echo "Current OS is not supported" && exit 1 ;;
|
||||
esac
|
||||
|
||||
# set project dir
|
||||
__DIR__=$(cd "$(dirname "$0")" && pwd)
|
||||
__PROJECT__=$(cd "${__DIR__}"/../ && pwd)
|
||||
|
||||
# set download dir
|
||||
__PHP_RUNTIME_URL__="https://dl.static-php.dev/static-php-cli/bulk/php-8.4.12-cli-${__OS_FIXED__}-${__ARCH__}.tar.gz"
|
||||
__COMPOSER_URL__="https://getcomposer.org/download/latest-stable/composer.phar"
|
||||
|
||||
# use china mirror
|
||||
# bash bin/setup-runtime --mirror china
|
||||
mirror=''
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--mirror)
|
||||
mirror="$2"
|
||||
;;
|
||||
--*)
|
||||
echo "Illegal option $1"
|
||||
;;
|
||||
esac
|
||||
shift $(($# > 0 ? 1 : 0))
|
||||
done
|
||||
|
||||
case "$mirror" in
|
||||
china)
|
||||
__PHP_RUNTIME_URL__="https://dl.static-php.dev/static-php-cli/bulk/php-8.4.12-cli-${__OS_FIXED__}-${__ARCH__}.tar.gz"
|
||||
__COMPOSER_URL__="https://mirrors.tencent.com/composer/composer.phar"
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
if ! command -v curl > /dev/null && command -v apk > /dev/null; then
|
||||
apk add --no-cache curl
|
||||
fi
|
||||
|
||||
test -d "${__PROJECT__}"/downloads || mkdir "${__PROJECT__}"/downloads
|
||||
# download static php binary
|
||||
test -f "${__PROJECT__}"/downloads/runtime.tar.gz || { echo "Downloading $__PHP_RUNTIME_URL__ ..." && curl -#fSL -o "${__PROJECT__}"/downloads/runtime.tar.gz "$__PHP_RUNTIME_URL__" ; }
|
||||
test -f "${__DIR__}"/php || { tar -xf "${__PROJECT__}"/downloads/runtime.tar.gz -C "${__DIR__}"/ ; }
|
||||
chmod +x "${__DIR__}"/php
|
||||
# download composer
|
||||
test -f "${__DIR__}"/composer || { echo "Downloading Composer from $__COMPOSER_URL__" && curl -#fSL -o "${__DIR__}"/composer "$__COMPOSER_URL__" ; }
|
||||
chmod +x "${__DIR__}"/composer
|
||||
# sanity check for php and composer
|
||||
"${__DIR__}"/php -v >/dev/null || { echo "Failed to run php" && exit 1; }
|
||||
"${__DIR__}"/php "${__DIR__}"/composer --version >/dev/null || { echo "Failed to run composer" && exit 1; }
|
||||
|
||||
echo "Setup runtime OK!"
|
||||
echo "runtime bin path needs to add manually by command below:"
|
||||
echo ""
|
||||
echo " export PATH=\"${__DIR__}:\$PATH\""
|
||||
echo ""
|
||||
116
bin/setup-runtime.ps1
Normal file
116
bin/setup-runtime.ps1
Normal file
@@ -0,0 +1,116 @@
|
||||
param (
|
||||
[string] ${action}
|
||||
)
|
||||
|
||||
function AddToPath {
|
||||
param (
|
||||
[string]$pathToAdd
|
||||
)
|
||||
|
||||
$currentPath = [System.Environment]::GetEnvironmentVariable('Path', 'User')
|
||||
|
||||
if ($currentPath -notlike "*$pathToAdd*") {
|
||||
$newPath = $currentPath + ";$pathToAdd"
|
||||
[System.Environment]::SetEnvironmentVariable('Path', $newPath, 'User')
|
||||
Write-Host "Added '$pathToAdd' to Path."
|
||||
Write-Host "To remove path, use: " -NoNewline
|
||||
Write-Host "bin/setup-runtime remove-path" -ForegroundColor Cyan
|
||||
} else {
|
||||
Write-Host "Path already exists."
|
||||
}
|
||||
}
|
||||
|
||||
function RemoveFromPath {
|
||||
param (
|
||||
[string]$pathToRemove
|
||||
)
|
||||
|
||||
$currentPath = [System.Environment]::GetEnvironmentVariable('Path', 'User')
|
||||
|
||||
if ($currentPath -like "*$pathToRemove*") {
|
||||
$newPath = $currentPath -replace [regex]::Escape(';' + $pathToRemove), ''
|
||||
[System.Environment]::SetEnvironmentVariable('Path', $newPath, 'User')
|
||||
Write-Host "Removed Path '$pathToRemove'"
|
||||
} else {
|
||||
Write-Host "Path '$pathToRemove' not in Path"
|
||||
}
|
||||
}
|
||||
|
||||
# working dir
|
||||
$WorkingDir = (Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Definition))
|
||||
|
||||
if ($action -eq 'add-path') {
|
||||
AddToPath ($WorkingDir + '\runtime')
|
||||
exit 0
|
||||
} elseif ($action -eq 'remove-path') {
|
||||
RemoveFromPath ($WorkingDir + '\runtime')
|
||||
exit 0
|
||||
} elseif (-not($action -eq '')) {
|
||||
Write-Host ("Invalid action: " + $action) -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
# get php 8.1 specific version
|
||||
|
||||
# php windows download
|
||||
$PHPRuntimeUrl = "https://windows.php.net/downloads/releases/archives/php-8.4.4-nts-Win32-vs17-x64.zip"
|
||||
Write-Host "Downloading PHP from: " -NoNewline
|
||||
Write-Host $PHPRuntimeUrl -ForegroundColor Cyan
|
||||
$ComposerUrl = "https://getcomposer.org/download/latest-stable/composer.phar"
|
||||
|
||||
# create dir
|
||||
New-Item -Path "downloads" -ItemType Directory -Force | Out-Null
|
||||
|
||||
# download php
|
||||
if (-not(Test-Path "downloads\php.zip"))
|
||||
{
|
||||
Write-Host "Downloading PHP ..."
|
||||
Invoke-WebRequest $PHPRuntimeUrl -OutFile "downloads\php.zip"
|
||||
}
|
||||
|
||||
# extract php
|
||||
New-Item -Path "runtime" -ItemType Directory -Force | Out-Null
|
||||
Write-Host "Extracting php.zip ..."
|
||||
Expand-Archive -Path "downloads/php.zip" -DestinationPath "runtime" -Force
|
||||
# make php.ini
|
||||
Move-Item -Path "runtime\php.ini-production" -Destination "runtime\php.ini" -Force
|
||||
$OriginINI = Get-Content -Path "runtime\php.ini" -Raw
|
||||
$OriginINI = $OriginINI -replace ';extension=openssl', 'extension=openssl'
|
||||
$OriginINI = $OriginINI -replace ';extension=curl', 'extension=curl'
|
||||
$OriginINI = $OriginINI -replace ';extension=mbstring', 'extension=mbstring'
|
||||
$OriginINI = $OriginINI -replace ';extension=sodium', 'extension=sodium'
|
||||
$OriginINI = $OriginINI -replace ';extension_dir = "./"', ('extension_dir = "' + (Split-Path -Parent $MyInvocation.MyCommand.Definition) + '\..\runtime\ext"')
|
||||
$OriginINI | Set-Content -Path "runtime\php.ini"
|
||||
|
||||
# download composer
|
||||
if (-not(Test-Path "runtime\composer.phar"))
|
||||
{
|
||||
Write-Host "Downloading composer ..."
|
||||
Invoke-WebRequest $ComposerUrl -OutFile "downloads\composer.phar"
|
||||
Move-Item -Path "downloads\composer.phar" -Destination "runtime\composer.phar" -Force
|
||||
}
|
||||
|
||||
# create runtime\composer.ps1
|
||||
$ComposerContent = '
|
||||
$WorkingDir = (Split-Path -Parent $MyInvocation.MyCommand.Definition)
|
||||
& ($WorkingDir + "\php.exe") (Join-Path $WorkingDir "\composer.phar") @args
|
||||
'
|
||||
$ComposerContent | Set-Content -Path 'runtime\composer.ps1' -Encoding UTF8
|
||||
|
||||
Write-Host "Successfully downloaded PHP and Composer !" -ForegroundColor Green
|
||||
Write-Host "Use static-php-cli: " -NoNewline
|
||||
Write-Host "bin/spc" -ForegroundColor Cyan
|
||||
Write-Host "Use php: " -NoNewline
|
||||
Write-Host "runtime/php" -ForegroundColor Cyan
|
||||
Write-Host "Use composer: " -NoNewline
|
||||
Write-Host "runtime/composer" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
Write-Host "Don't forget installing composer dependencies '" -NoNewline
|
||||
Write-Host "runtime/composer install" -ForegroundColor Cyan -NoNewline
|
||||
Write-Host "' before using static-php-cli !"
|
||||
Write-Host ""
|
||||
Write-Host "If you want to use this PHP for quality tools (like phpstan, php-cs-fixer) or other project,"
|
||||
Write-Host "or use PHP, Composer as system executable,"
|
||||
Write-Host "use '" -NoNewline
|
||||
Write-Host "bin/setup-runtime add-path" -ForegroundColor Cyan -NoNewline
|
||||
Write-Host "' to add runtime dir in Path."
|
||||
28
bin/spc
Executable file
28
bin/spc
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
use StaticPHP\ConsoleApplication;
|
||||
use StaticPHP\Exception\ExceptionHandler;
|
||||
use StaticPHP\Exception\SPCException;
|
||||
|
||||
if (file_exists(dirname(__DIR__) . '/vendor/autoload.php')) {
|
||||
// Current: ./bin (git/project mode)
|
||||
require_once dirname(__DIR__) . '/vendor/autoload.php';
|
||||
} else {
|
||||
// Current: ./vendor/crazywhalecc/static-php-cli/bin (composer library mode)
|
||||
require_once dirname(__DIR__, 3) . '/autoload.php';
|
||||
}
|
||||
|
||||
// Print deprecation notice on PHP < 8.4, use red and highlight background
|
||||
if (PHP_VERSION_ID < 80400) {
|
||||
echo "\e[43mDeprecation Notice: PHP < 8.4 is deprecated, please upgrade your PHP version.\e[0m\n";
|
||||
}
|
||||
|
||||
try {
|
||||
(new ConsoleApplication())->run();
|
||||
} catch (SPCException $e) {
|
||||
exit(ExceptionHandler::handleSPCException($e));
|
||||
} catch (\Throwable $e) {
|
||||
exit(ExceptionHandler::handleDefaultException($e));
|
||||
}
|
||||
|
||||
228
bin/spc-alpine-docker
Executable file
228
bin/spc-alpine-docker
Executable file
@@ -0,0 +1,228 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
# This file is using docker to run commands
|
||||
SPC_DOCKER_VERSION=v7
|
||||
|
||||
# Detect docker can run
|
||||
if ! which docker >/dev/null; then
|
||||
echo "Docker is not installed, please install docker first !"
|
||||
exit 1
|
||||
fi
|
||||
DOCKER_EXECUTABLE="docker"
|
||||
# shellcheck disable=SC2046
|
||||
if [ $(id -u) -ne 0 ]; then
|
||||
if ! docker info > /dev/null 2>&1; then
|
||||
if [ "$SPC_USE_SUDO" != "yes" ]; then
|
||||
echo "Docker command requires sudo"
|
||||
# shellcheck disable=SC2039
|
||||
echo -n 'To use sudo to run docker, run "export SPC_USE_SUDO=yes" and run command again'
|
||||
exit 1
|
||||
fi
|
||||
DOCKER_EXECUTABLE="sudo docker"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Convert uname to gnu arch
|
||||
CURRENT_ARCH=$(uname -m)
|
||||
if [ "$CURRENT_ARCH" = "arm64" ]; then
|
||||
CURRENT_ARCH=aarch64
|
||||
fi
|
||||
if [ -z "$SPC_USE_ARCH" ]; then
|
||||
SPC_USE_ARCH=$CURRENT_ARCH
|
||||
fi
|
||||
# parse SPC_USE_ARCH
|
||||
case $SPC_USE_ARCH in
|
||||
x86_64|amd64)
|
||||
SPC_USE_ARCH=x86_64
|
||||
if [ "$CURRENT_ARCH" != "x86_64" ]; then
|
||||
PLATFORM_ARG="--platform linux/amd64"
|
||||
ALPINE_FROM=multiarch/alpine:x86_64-edge
|
||||
fi
|
||||
;;
|
||||
aarch64|arm64)
|
||||
SPC_USE_ARCH=aarch64
|
||||
if [ "$CURRENT_ARCH" != "aarch64" ]; then
|
||||
PLATFORM_ARG="--platform linux/arm64"
|
||||
ALPINE_FROM=multiarch/alpine:aarch64-edge
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Current arch is not supported to run in docker: $SPC_USE_ARCH"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
# if ALPINE_FROM is not set, use alpine:3.21
|
||||
if [ -z "$ALPINE_FROM" ]; then
|
||||
ALPINE_FROM=alpine:3.21
|
||||
fi
|
||||
if [ "$SPC_USE_ARCH" != "$CURRENT_ARCH" ]; then
|
||||
echo "* Using different arch needs to setup qemu-static for docker !"
|
||||
ALPINE_FROM=multiarch/alpine:$SPC_USE_ARCH-edge
|
||||
if [ "$(uname -s)" = "Linux" ]; then
|
||||
$DOCKER_EXECUTABLE run --rm --privileged multiarch/qemu-user-static:register --reset > /dev/null
|
||||
fi
|
||||
else
|
||||
ALPINE_FROM=alpine:3.21
|
||||
fi
|
||||
|
||||
if [ "$SPC_USE_MIRROR" = "yes" ]; then
|
||||
SPC_USE_MIRROR="RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories"
|
||||
else
|
||||
SPC_USE_MIRROR="RUN echo 'Using original repo'"
|
||||
fi
|
||||
|
||||
# Detect docker env is setup
|
||||
if ! $DOCKER_EXECUTABLE images | grep -q cwcc-spc-$SPC_USE_ARCH-$SPC_DOCKER_VERSION; then
|
||||
echo "Docker container does not exist. Building docker image ..."
|
||||
$DOCKER_EXECUTABLE build $PLATFORM_ARG -t cwcc-spc-$SPC_USE_ARCH-$SPC_DOCKER_VERSION -f- . <<EOF
|
||||
FROM $ALPINE_FROM
|
||||
$SPC_USE_MIRROR
|
||||
RUN apk update; \
|
||||
apk upgrade -a; \
|
||||
apk add --no-cache \
|
||||
autoconf \
|
||||
automake \
|
||||
gettext \
|
||||
bash \
|
||||
binutils \
|
||||
bison \
|
||||
build-base \
|
||||
cmake \
|
||||
curl \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
jq \
|
||||
libgcc \
|
||||
libtool \
|
||||
libstdc++ \
|
||||
linux-headers \
|
||||
m4 \
|
||||
make \
|
||||
pkgconfig \
|
||||
re2c \
|
||||
wget \
|
||||
xz \
|
||||
gettext-dev \
|
||||
binutils-gold
|
||||
|
||||
RUN curl -#fSL https://dl.static-php.dev/static-php-cli/bulk/php-8.4.4-cli-linux-\$(uname -m).tar.gz | tar -xz -C /usr/local/bin && \
|
||||
chmod +x /usr/local/bin/php
|
||||
|
||||
RUN curl -#fSL https://getcomposer.org/download/latest-stable/composer.phar -o /usr/local/bin/composer && \
|
||||
chmod +x /usr/local/bin/composer
|
||||
|
||||
WORKDIR /app
|
||||
ADD ./src /app/src
|
||||
COPY ./composer.* /app/
|
||||
ADD ./bin /app/bin
|
||||
RUN composer install --no-dev
|
||||
ADD ./config /app/config
|
||||
ADD ./spc.registry.yml /app/spc.registry.yml
|
||||
RUN bin/spc doctor --auto-fix
|
||||
RUN bin/spc install-pkg upx
|
||||
|
||||
RUN mv /app/pkgroot/\$(uname -m)-linux /app/pkgroot-private
|
||||
ADD bin/docker-entrypoint.sh /bin/docker-entrypoint.sh
|
||||
RUN chmod +x /bin/docker-entrypoint.sh
|
||||
ENTRYPOINT ["/bin/docker-entrypoint.sh"]
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Check if in ci (local terminal can execute with -it)
|
||||
if [ -t 0 ]; then
|
||||
INTERACT=-it
|
||||
else
|
||||
INTERACT=''
|
||||
fi
|
||||
|
||||
# Mounting volumes
|
||||
MOUNT_LIST=""
|
||||
# shellcheck disable=SC2089
|
||||
MOUNT_LIST="$MOUNT_LIST -v ""$(pwd)""/config:/app/config"
|
||||
MOUNT_LIST="$MOUNT_LIST -v ""$(pwd)""/src:/app/src"
|
||||
MOUNT_LIST="$MOUNT_LIST -v ""$(pwd)""/buildroot:/app/buildroot"
|
||||
MOUNT_LIST="$MOUNT_LIST -v ""$(pwd)""/source:/app/source"
|
||||
MOUNT_LIST="$MOUNT_LIST -v ""$(pwd)""/dist:/app/dist"
|
||||
MOUNT_LIST="$MOUNT_LIST -v ""$(pwd)""/downloads:/app/downloads"
|
||||
MOUNT_LIST="$MOUNT_LIST -v ""$(pwd)""/pkgroot:/app/pkgroot"
|
||||
MOUNT_LIST="$MOUNT_LIST -v ""$(pwd)""/log:/app/log"
|
||||
if [ -f "$(pwd)/craft.yml" ]; then
|
||||
MOUNT_LIST="$MOUNT_LIST -v ""$(pwd)""/craft.yml:/app/craft.yml"
|
||||
fi
|
||||
|
||||
# Environment variable passthrough
|
||||
ENV_LIST=""
|
||||
ENV_LIST="$ENV_LIST -e SPC_FIX_DEPLOY_ROOT="$(pwd)""
|
||||
if [ ! -z "$GITHUB_TOKEN" ]; then
|
||||
ENV_LIST="$ENV_LIST -e GITHUB_TOKEN=$GITHUB_TOKEN"
|
||||
fi
|
||||
|
||||
# Intercept and rewrite --with-frankenphp-app option, and mount host path to /app/app
|
||||
FRANKENPHP_APP_PATH=""
|
||||
NEW_ARGS=()
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--with-frankenphp-app=*)
|
||||
FRANKENPHP_APP_PATH="${1#*=}"
|
||||
NEW_ARGS+=("--with-frankenphp-app=/app/app")
|
||||
shift
|
||||
;;
|
||||
--with-frankenphp-app)
|
||||
if [ -n "${2:-}" ]; then
|
||||
FRANKENPHP_APP_PATH="$2"
|
||||
NEW_ARGS+=("--with-frankenphp-app=/app/app")
|
||||
shift 2
|
||||
else
|
||||
NEW_ARGS+=("$1")
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
NEW_ARGS+=("$1")
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Normalize the path and add mount if provided
|
||||
if [ -n "$FRANKENPHP_APP_PATH" ]; then
|
||||
# expand ~ to $HOME
|
||||
if [ "${FRANKENPHP_APP_PATH#~}" != "$FRANKENPHP_APP_PATH" ]; then
|
||||
FRANKENPHP_APP_PATH="$HOME${FRANKENPHP_APP_PATH#~}"
|
||||
fi
|
||||
# make absolute if relative
|
||||
case "$FRANKENPHP_APP_PATH" in
|
||||
/*) ABS_APP_PATH="$FRANKENPHP_APP_PATH" ;;
|
||||
*) ABS_APP_PATH="$(pwd)/$FRANKENPHP_APP_PATH" ;;
|
||||
esac
|
||||
MOUNT_LIST="$MOUNT_LIST -v $ABS_APP_PATH:/app/app"
|
||||
fi
|
||||
|
||||
# Run docker
|
||||
# shellcheck disable=SC2068
|
||||
# shellcheck disable=SC2086
|
||||
# shellcheck disable=SC2090
|
||||
if [ "$SPC_DOCKER_DEBUG" = "yes" ]; then
|
||||
echo "* Debug mode enabled, run docker in interactive mode."
|
||||
echo "* You can use 'exit' to exit the docker container."
|
||||
echo "* You can use 'bin/spc' like normal builds."
|
||||
echo "*"
|
||||
echo "* Mounted directories:"
|
||||
echo "* ./config: $(pwd)/config"
|
||||
echo "* ./src: $(pwd)/src"
|
||||
echo "* ./buildroot: $(pwd)/buildroot"
|
||||
echo "* ./source: $(pwd)/source"
|
||||
echo "* ./dist: $(pwd)/dist"
|
||||
echo "* ./downloads: $(pwd)/downloads"
|
||||
echo "* ./pkgroot: $(pwd)/pkgroot"
|
||||
echo "*"
|
||||
set -ex
|
||||
$DOCKER_EXECUTABLE run $PLATFORM_ARG --rm $INTERACT $ENV_LIST $MOUNT_LIST cwcc-spc-$SPC_USE_ARCH-$SPC_DOCKER_VERSION /bin/bash
|
||||
else
|
||||
$DOCKER_EXECUTABLE run $PLATFORM_ARG --rm $INTERACT $ENV_LIST $MOUNT_LIST cwcc-spc-$SPC_USE_ARCH-$SPC_DOCKER_VERSION bin/spc "${NEW_ARGS[@]}"
|
||||
fi
|
||||
12
bin/spc-debug
Executable file
12
bin/spc-debug
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Use SPC_XDEBUG=profile to enable Xdebug profiling mode, which will generate profiling files in /tmp.
|
||||
# Otherwise, it will enable Xdebug debugging mode, which allows you to connect a debugger to port 9003.
|
||||
if [ "$SPC_XDEBUG" = "profile" ]; then
|
||||
XDEBUG_PREFIX="-d xdebug.mode=profile -d xdebug.start_with_request=yes -d xdebug.output_dir=/tmp -d xdebug.output_name=spc-profile.%t.%p.%r"
|
||||
else
|
||||
XDEBUG_PREFIX="-d xdebug.mode=debug -d xdebug.client_host=127.0.0.1 -d xdebug.client_port=9003 -d xdebug.start_with_request=yes"
|
||||
fi
|
||||
|
||||
# This script runs the 'spc' command with Xdebug enabled for debugging purposes.
|
||||
php $XDEBUG_PREFIX "$(dirname "$0")/../bin/spc" "$@"
|
||||
12
bin/spc-debug.ps1
Normal file
12
bin/spc-debug.ps1
Normal file
@@ -0,0 +1,12 @@
|
||||
$PHP_Exec = ".\runtime\php.exe"
|
||||
|
||||
if (-not(Test-Path $PHP_Exec)) {
|
||||
$PHP_Exec = Get-Command php.exe -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Definition
|
||||
if (-not $PHP_Exec) {
|
||||
Write-Host "Error: PHP not found, you need to install PHP on your system or use 'bin/setup-runtime'." -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
& "$PHP_Exec" -d xdebug.mode=debug -d xdebug.client_host=127.0.0.1 -d xdebug.client_port=9003 -d xdebug.start_with_request=yes ("bin/spc") @args
|
||||
exit $LASTEXITCODE
|
||||
12
bin/spc.ps1
Normal file
12
bin/spc.ps1
Normal file
@@ -0,0 +1,12 @@
|
||||
$PHP_Exec = ".\runtime\php.exe"
|
||||
|
||||
if (-not(Test-Path $PHP_Exec)) {
|
||||
$PHP_Exec = Get-Command php.exe -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Definition
|
||||
if (-not $PHP_Exec) {
|
||||
Write-Host "Error: PHP not found, you need to install PHP on your system or use 'bin/setup-runtime'." -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
& "$PHP_Exec" ("bin/spc") @args
|
||||
exit $LASTEXITCODE
|
||||
22
box.json
Normal file
22
box.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"alias": "spc-php.phar",
|
||||
"banner": false,
|
||||
"blacklist": [
|
||||
".github"
|
||||
],
|
||||
"compression": "GZ",
|
||||
"check-requirements": false,
|
||||
"directories": [
|
||||
"config",
|
||||
"src",
|
||||
"vendor/psr",
|
||||
"vendor/symfony",
|
||||
"vendor/php-di",
|
||||
"vendor/zhamao"
|
||||
],
|
||||
"files": [
|
||||
"spc.registry.yml"
|
||||
],
|
||||
"git-commit-short": "git_commit_short",
|
||||
"output": "spc.phar"
|
||||
}
|
||||
53
captainhook.json
Normal file
53
captainhook.json
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"pre-push": {
|
||||
"enabled": true,
|
||||
"actions": [
|
||||
{
|
||||
"action": "php vendor/bin/phpstan analyse --memory-limit 300M"
|
||||
}
|
||||
]
|
||||
},
|
||||
"pre-commit": {
|
||||
"enabled": true,
|
||||
"actions": [
|
||||
{
|
||||
"action": "php vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --dry-run --diff {$STAGED_FILES|of-type:php} --sequential",
|
||||
"conditions": [
|
||||
{
|
||||
"exec": "\\CaptainHook\\App\\Hook\\Condition\\FileStaged\\OfType",
|
||||
"args": ["php"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"action": "php bin/spc dev:lint-config --check",
|
||||
"conditions": [
|
||||
{
|
||||
"exec": "\\CaptainHook\\App\\Hook\\Condition\\FileStaged\\InDirectory",
|
||||
"args": ["config"]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"post-change": {
|
||||
"enabled": true,
|
||||
"actions": [
|
||||
{
|
||||
"action": "composer install",
|
||||
"options": [],
|
||||
"conditions": [
|
||||
{
|
||||
"exec": "\\CaptainHook\\App\\Hook\\Condition\\FileChanged\\Any",
|
||||
"args": [
|
||||
[
|
||||
"composer.json",
|
||||
"composer.lock"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
72
composer.json
Normal file
72
composer.json
Normal file
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"name": "crazywhalecc/static-php-cli",
|
||||
"description": "Build single static PHP binary, with PHP project together, with popular extensions included.",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "jerry",
|
||||
"email": "admin@zhamao.me"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=8.4",
|
||||
"ext-mbstring": "*",
|
||||
"ext-zlib": "*",
|
||||
"php-di/php-di": "^7.1",
|
||||
"symfony/console": "^5.4 || ^6 || ^7",
|
||||
"symfony/yaml": "^7.2",
|
||||
"zhamao/logger": "^1.1.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"captainhook/captainhook-phar": "^5.23",
|
||||
"captainhook/hook-installer": "^1.0",
|
||||
"friendsofphp/php-cs-fixer": "^3.60",
|
||||
"humbug/box": "^4.5.0 || ^4.6.0",
|
||||
"phpstan/phpstan": "^2.1",
|
||||
"phpunit/phpunit": "^10.3 || ^9.5"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"StaticPHP\\": "src/StaticPHP",
|
||||
"Package\\": "src/Package"
|
||||
},
|
||||
"files": [
|
||||
"src/globals/defines.php",
|
||||
"src/globals/functions.php"
|
||||
]
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Tests\\StaticPHP\\": "tests/StaticPHP"
|
||||
}
|
||||
},
|
||||
"bin": [
|
||||
"bin/spc"
|
||||
],
|
||||
"scripts": {
|
||||
"analyse": "phpstan analyse --memory-limit 300M",
|
||||
"cs-fix": "php-cs-fixer fix",
|
||||
"lint-config": "php bin/spc dev:lint-config",
|
||||
"test": "vendor/bin/phpunit tests/ --no-coverage",
|
||||
"build:phar": "vendor/bin/box compile"
|
||||
},
|
||||
"config": {
|
||||
"allow-plugins": {
|
||||
"phpstan/extension-installer": true,
|
||||
"captainhook/hook-installer": true,
|
||||
"captainhook/plugin-composer": true,
|
||||
"captainhook/captainhook-phar": true
|
||||
},
|
||||
"optimize-autoloader": true,
|
||||
"sort-packages": true
|
||||
},
|
||||
"suggest": {
|
||||
"ext-yaml": "Speeds up YAML config file parsing"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"type": "other",
|
||||
"url": "https://github.com/crazywhalecc/crazywhalecc/blob/master/FUNDING.md"
|
||||
}
|
||||
]
|
||||
}
|
||||
7561
composer.lock
generated
Normal file
7561
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
9
config/artifact/glfw.yml
Normal file
9
config/artifact/glfw.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
glfw:
|
||||
metadata:
|
||||
license-files:
|
||||
- LICENSE
|
||||
license: MIT
|
||||
source:
|
||||
type: git
|
||||
url: 'https://github.com/mario-deluna/php-glfw'
|
||||
rev: master
|
||||
2
config/artifact/musl-wrapper.yml
Normal file
2
config/artifact/musl-wrapper.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
musl-wrapper:
|
||||
source: 'https://musl.libc.org/releases/musl-1.2.5.tar.gz'
|
||||
12
config/artifact/ncurses.yml
Normal file
12
config/artifact/ncurses.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
ncurses:
|
||||
metadata:
|
||||
license-files:
|
||||
- COPYING
|
||||
source:
|
||||
type: filelist
|
||||
url: 'https://ftp.gnu.org/gnu/ncurses/'
|
||||
regex: '/href="(?<file>ncurses-(?<version>[^"]+)\.tar\.gz)"/'
|
||||
source-mirror:
|
||||
type: filelist
|
||||
url: 'https://ftpmirror.gnu.org/gnu/ncurses/'
|
||||
regex: '/href="(?<file>ncurses-(?<version>[^"]+)\.tar\.gz)"/'
|
||||
11
config/artifact/php-src.yml
Normal file
11
config/artifact/php-src.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
php-src:
|
||||
metadata:
|
||||
license-files:
|
||||
- LICENSE
|
||||
license: PHP-3.01
|
||||
source:
|
||||
type: php-release
|
||||
domain: 'https://www.php.net'
|
||||
source-mirror:
|
||||
type: php-release
|
||||
domain: 'https://phpmirror.static-php.dev'
|
||||
167
config/env.ini
Normal file
167
config/env.ini
Normal file
@@ -0,0 +1,167 @@
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; static-php-cli (spc) env configuration
|
||||
;
|
||||
; This file is used to set default env vars for static-php-cli build.
|
||||
; As dynamic build process, some of these vars can be overwritten by CLI options.
|
||||
; And you can also overwrite these vars by setting them in your shell environment.
|
||||
; The value should be changed only if you know what you are doing. Otherwise, please leave them as default.
|
||||
;
|
||||
; We need to use some pre-defined internal env vars, like `BUILD_ROOT_PATH`, `DOWNLOAD_PATH`, etc.
|
||||
; Please note that these vars cannot be defined in this file, they should only be defined before static-php-cli running.
|
||||
;
|
||||
; Here's a list of env vars, these variables will be defined if not defined:
|
||||
;
|
||||
; BUILD_ROOT_PATH: the root path of the build process. (default: `$(pwd)/buildroot`)
|
||||
; BUILD_INCLUDE_PATH: the path of the include files. (default: `$BUILD_ROOT_PATH/include`)
|
||||
; BUILD_LIB_PATH: the path of the lib files. (default: `$BUILD_ROOT_PATH/lib`)
|
||||
; BUILD_BIN_PATH: the path of the bin files. (default: `$BUILD_ROOT_PATH/bin`)
|
||||
; BUILD_MODULES_PATH: the path of the php modules (shared extensions) files. (default: `$BUILD_ROOT_PATH/modules`)
|
||||
; PKG_ROOT_PATH: the root path of the package files. (default: `$(pwd)/pkgroot/$GNU_ARCH-{darwin|linux|windows}`)
|
||||
; SOURCE_PATH: the path of the source files. (default: `$(pwd)/source`)
|
||||
; DOWNLOAD_PATH: the path of the download files. (default: `$(pwd)/downloads`)
|
||||
; PATH: (*nix only) static-php-cli will add `$BUILD_BIN_PATH` to PATH.
|
||||
; PKG_CONFIG_PATH: (*nix only) static-php-cli will set `$BUILD_LIB_PATH/pkgconfig` to PKG_CONFIG_PATH.
|
||||
;
|
||||
; Here's a list of env vars, these variables is defined in SPC and cannot be changed anywhere:
|
||||
;
|
||||
; SPC_VERSION: the version of static-php-cli.
|
||||
; WORKING_DIR: the working directory of the build process. (default: `$(pwd)`)
|
||||
; ROOT_DIR: the root directory of static-php-cli. (default: `/path/to/static-php-cli`, when running in phar or micro mode: `phar://path/to/spc.phar`)
|
||||
; CPU_COUNT: the count of the CPU cores. (default: `$(nproc)`)
|
||||
; SPC_ARCH: the arch of the current system, for some libraries needed `--host=XXX` args. (default: `$(uname -m)`, e.g. `x86_64`, `aarch64`, `arm64`)
|
||||
; GNU_ARCH: the GNU arch of the current system. (default: `$(uname -m)`, e.g. `x86_64`, `aarch64`)
|
||||
; MAC_ARCH: the MAC arch of the current system. (default: `$(uname -m)`, e.g. `x86_64`, `arm64`)
|
||||
; PKG_CONFIG: (*nix only) static-php-cli will set `$BUILD_BIN_PATH/pkg-config` to PKG_CONFIG.
|
||||
; SPC_DEFAULT_CC: (*nix only) the default compiler for selected toolchain.
|
||||
; SPC_DEFAULT_CXX: (*nix only) the default c++ compiler selected toolchain.
|
||||
; SPC_DEFAULT_AR: (*nix only) the default archiver for selected toolchain.
|
||||
; SPC_DEFAULT_LD: (*nix only) the default linker for selected toolchain.
|
||||
; SPC_EXTRA_PHP_VARS: (linux only) the extra vars for building php, used in `configure` and `make` command.
|
||||
|
||||
[global]
|
||||
; Build concurrency for make -jN, default is CPU_COUNT, this value are used in every libs.
|
||||
SPC_CONCURRENCY=${CPU_COUNT}
|
||||
; Ignore PHP version check before building some extensions
|
||||
SPC_SKIP_PHP_VERSION_CHECK="no"
|
||||
; Ignore some check item for bin/spc doctor command, comma separated (e.g. SPC_SKIP_DOCTOR_CHECK_ITEMS="if homebrew has installed")
|
||||
SPC_SKIP_DOCTOR_CHECK_ITEMS=""
|
||||
; extra modules that xcaddy will include in the FrankenPHP build
|
||||
SPC_CMD_VAR_FRANKENPHP_XCADDY_MODULES="--with github.com/dunglas/mercure/caddy --with github.com/dunglas/vulcain/caddy --with github.com/dunglas/caddy-cbrotli"
|
||||
; The display message for php version output (PHP >= 8.4 available)
|
||||
PHP_BUILD_PROVIDER="StaticPHP ${SPC_VERSION}"
|
||||
; Whether to enable log file (if you are using vendor mode)
|
||||
SPC_ENABLE_LOG_FILE="yes"
|
||||
; The LOG DIR for spc logs
|
||||
SPC_LOGS_DIR="${WORKING_DIR}/log"
|
||||
; Preserve old logs when running new builds (code checks SPC_PRESERVE_LOG, not SPC_PRESERVE_LOGS)
|
||||
SPC_PRESERVE_LOG="no"
|
||||
|
||||
; EXTENSION_DIR where the built php will look for extension when a .ini instructs to load them
|
||||
; only useful for builds targeting not pure-static linking
|
||||
; default paths
|
||||
; Ubuntu/Debian: /usr/lib/php/{PHP_VERSION}/
|
||||
; RHEL: /usr/lib64/php/modules
|
||||
; Alpine: /usr/lib/php{PHP_VERSION}/modules
|
||||
; where {PHP_VERSION} is 84 for php 8.4
|
||||
; EXTENSION_DIR=
|
||||
|
||||
[windows]
|
||||
; build target: win7-static
|
||||
SPC_TARGET=native-windows
|
||||
; MSYS2 root directory (msys64 subfolder), used by the Windows toolchain
|
||||
SPC_MSYS2_PATH="${PKG_ROOT_PATH}\msys2-build-essentials\msys64"
|
||||
; upx executable path
|
||||
UPX_EXEC="${PKG_ROOT_PATH}\bin\upx.exe"
|
||||
; phpmicro patches, for more info, see: https://github.com/easysoft/phpmicro/tree/master/patches
|
||||
SPC_MICRO_PATCHES=static_extensions_win32,cli_checks,disable_huge_page,vcruntime140,win32,zend_stream,cli_static,win32_api
|
||||
|
||||
[linux]
|
||||
; Linux can use different build toolchains.
|
||||
; - musl (default, when SPC_LIBC=musl): used for general linux distros, can build `musl` (statically linked) only.
|
||||
; - zig (will become default): usable on all Linux distros, can build `-musl`, `arch-linux-musl -dynamic` and `arch-linux-gnu` targets. Can specify version such as `x86_64-linux-gnu.2.17`.
|
||||
; - musl-native: used for alpine linux, can build `musl` and `musl -dynamic` target.
|
||||
; - gnu-native: used for general linux distros, can build gnu target for the installed glibc version only.
|
||||
|
||||
; option to specify the target, superceded by SPC_TARGET if set
|
||||
; SPC_LIBC=musl
|
||||
; uncomment to link libc dynamically on musl
|
||||
; SPC_MUSL_DYNAMIC=true
|
||||
|
||||
; Recommended: specify your target here. Zig toolchain will be used.
|
||||
; examples:
|
||||
; `native-native-gnu` - links against glibc, current OS version
|
||||
; `native-native-gnu.2.17` - links against glibc, version 2.17
|
||||
; `native-native` - links against system libc dynamically
|
||||
; `native-native-musl` - links against musl libc statically
|
||||
; `native-native-musl -dynamic` - links against musl libc dynamically
|
||||
SPC_TARGET=${GNU_ARCH}-linux-musl
|
||||
|
||||
; compiler environments (default value is defined by selected toolchain)
|
||||
CC=${SPC_DEFAULT_CC}
|
||||
CXX=${SPC_DEFAULT_CXX}
|
||||
AR=${SPC_DEFAULT_AR}
|
||||
LD=${SPC_DEFAULT_LD}
|
||||
; default compiler flags, used in CMake toolchain file, openssl and pkg-config build
|
||||
SPC_DEFAULT_CFLAGS="-fPIC -O3 -pipe -fno-plt -fno-semantic-interposition -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffunction-sections -fdata-sections"
|
||||
SPC_DEFAULT_CXXFLAGS="${SPC_DEFAULT_CFLAGS}"
|
||||
SPC_DEFAULT_LDFLAGS="-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -Wl,-z,noexecstack -Wl,--gc-sections"
|
||||
; upx executable path
|
||||
UPX_EXEC=${PKG_ROOT_PATH}/bin/upx
|
||||
; phpmicro patches, for more info, see: https://github.com/easysoft/phpmicro/tree/master/patches
|
||||
SPC_MICRO_PATCHES=cli_checks,disable_huge_page
|
||||
|
||||
; *** default build command for building php ***
|
||||
; buildconf command
|
||||
SPC_CMD_PREFIX_PHP_BUILDCONF="./buildconf --force"
|
||||
; configure command
|
||||
SPC_CMD_PREFIX_PHP_CONFIGURE="./configure --prefix= --with-valgrind=no --disable-shared --enable-static --disable-all --disable-phpdbg --enable-rtld-now --enable-re2c-cgoto --disable-rpath --with-pic"
|
||||
|
||||
; *** default build vars for building php ***
|
||||
; embed type for php, static (libphp.a) or shared (libphp.so)
|
||||
SPC_CMD_VAR_PHP_EMBED_TYPE="static"
|
||||
; EXTRA_CFLAGS for `configure` and `make` php
|
||||
SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="-g -fstack-protector-strong -fno-ident -fPIE -fvisibility=hidden -fvisibility-inlines-hidden ${SPC_DEFAULT_CFLAGS}"
|
||||
; EXTRA_CXXFLAGS for `configure` and `make` php
|
||||
SPC_CMD_VAR_PHP_MAKE_EXTRA_CXXFLAGS="-g -fstack-protector-strong -fno-ident -fPIE -fvisibility=hidden -fvisibility-inlines-hidden ${SPC_DEFAULT_CXXFLAGS}"
|
||||
; EXTRA_LDFLAGS for `make` php, can use -release to set a soname for libphp.so
|
||||
SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS=""
|
||||
|
||||
; optional, path to openssl conf. This affects where openssl will look for the default CA.
|
||||
; default on Debian/Alpine: /etc/ssl, default on RHEL: /etc/pki/tls
|
||||
OPENSSLDIR=""
|
||||
|
||||
[macos]
|
||||
; build target: macho or macho (possibly we could support macho-universal in the future)
|
||||
; Currently we do not support universal and cross-compilation for macOS.
|
||||
SPC_TARGET=native-macos
|
||||
; Whether to use brew version of llvm or system version (valid options: 'system', 'brew', default: 'system')
|
||||
SPC_USE_LLVM=system
|
||||
; compiler environments (default value is defined by selected toolchain)
|
||||
CC=${SPC_DEFAULT_CC}
|
||||
CXX=${SPC_DEFAULT_CXX}
|
||||
AR=${SPC_DEFAULT_AR}
|
||||
LD=${SPC_DEFAULT_LD}
|
||||
; default compiler flags, used in CMake toolchain file, openssl and pkg-config build
|
||||
SPC_DEFAULT_CFLAGS="--target=${MAC_ARCH}-apple-darwin -O3 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffunction-sections -fdata-sections"
|
||||
SPC_DEFAULT_CXXFLAGS="${SPC_DEFAULT_CFLAGS}"
|
||||
SPC_DEFAULT_LDFLAGS="-Wl,-dead_strip"
|
||||
; phpmicro patches, for more info, see: https://github.com/easysoft/phpmicro/tree/master/patches
|
||||
SPC_MICRO_PATCHES=cli_checks,macos_iconv
|
||||
|
||||
; *** default build command for building php ***
|
||||
; buildconf command
|
||||
SPC_CMD_PREFIX_PHP_BUILDCONF="./buildconf --force"
|
||||
; configure command
|
||||
SPC_CMD_PREFIX_PHP_CONFIGURE="./configure --prefix= --with-valgrind=no --disable-shared --enable-static --disable-all --disable-phpdbg --enable-rtld-now --enable-re2c-cgoto --disable-rpath --with-pic"
|
||||
|
||||
; *** default build vars for building php ***
|
||||
; embed type for php, static (libphp.a) or shared (libphp.dylib)
|
||||
SPC_CMD_VAR_PHP_EMBED_TYPE="static"
|
||||
; EXTRA_CFLAGS for `configure` and `make` php
|
||||
SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="-g -fstack-protector-strong -fpic -fpie -fvisibility=hidden -fvisibility-inlines-hidden -Werror=unknown-warning-option ${SPC_DEFAULT_CFLAGS}"
|
||||
; EXTRA_CXXFLAGS for `configure` and `make` php
|
||||
SPC_CMD_VAR_PHP_MAKE_EXTRA_CXXFLAGS="-g -fstack-protector-strong -fno-ident -fpie -fvisibility=hidden -fvisibility-inlines-hidden -Werror=unknown-warning-option ${SPC_DEFAULT_CXXFLAGS}"
|
||||
; EXTRA_LDFLAGS for `make` php, can use -release to set a soname for libphp.dylib
|
||||
SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS=""
|
||||
; minimum compatible macOS version (LLVM vars, availability not guaranteed)
|
||||
MACOSX_DEPLOYMENT_TARGET=12.0
|
||||
380
config/pkg/ext/builtin-extensions.yml
Normal file
380
config/pkg/ext/builtin-extensions.yml
Normal file
@@ -0,0 +1,380 @@
|
||||
ext-bcmath:
|
||||
type: php-extension
|
||||
ext-bz2:
|
||||
type: php-extension
|
||||
depends:
|
||||
- bzip2
|
||||
php-extension:
|
||||
arg-type@unix: with-path
|
||||
arg-type@windows: with
|
||||
ext-calendar:
|
||||
type: php-extension
|
||||
ext-com_dotnet:
|
||||
type: php-extension
|
||||
php-extension:
|
||||
os:
|
||||
- Windows
|
||||
arg-type@windows: '--enable-com-dotnet=yes'
|
||||
ext-ctype:
|
||||
type: php-extension
|
||||
ext-curl:
|
||||
type: php-extension
|
||||
depends:
|
||||
- curl
|
||||
depends@windows:
|
||||
- curl
|
||||
- ext-zlib
|
||||
- ext-openssl
|
||||
php-extension:
|
||||
arg-type: with
|
||||
ext-dba:
|
||||
type: php-extension
|
||||
suggests:
|
||||
- qdbm
|
||||
php-extension:
|
||||
arg-type: custom
|
||||
ext-dom:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-xml
|
||||
php-extension:
|
||||
arg-type: enable
|
||||
arg-type@windows: with
|
||||
ext-exif:
|
||||
type: php-extension
|
||||
depends@windows:
|
||||
- ext-mbstring
|
||||
ext-ffi:
|
||||
type: php-extension
|
||||
depends@unix:
|
||||
- libffi
|
||||
depends@windows:
|
||||
- libffi-win
|
||||
php-extension:
|
||||
arg-type@unix: '--with-ffi=@shared_suffix@ --enable-zend-signals'
|
||||
arg-type@windows: with
|
||||
ext-fileinfo:
|
||||
type: php-extension
|
||||
ext-filter:
|
||||
type: php-extension
|
||||
ext-ftp:
|
||||
type: php-extension
|
||||
suggests:
|
||||
- ext-openssl
|
||||
ext-gd:
|
||||
type: php-extension
|
||||
depends:
|
||||
- zlib
|
||||
- libpng
|
||||
- ext-zlib
|
||||
suggests:
|
||||
- libavif
|
||||
- libwebp
|
||||
- libjpeg
|
||||
- freetype
|
||||
php-extension:
|
||||
arg-type: custom
|
||||
arg-type@windows: with
|
||||
ext-gettext:
|
||||
type: php-extension
|
||||
depends@unix:
|
||||
- gettext
|
||||
depends@windows:
|
||||
- gettext-win
|
||||
php-extension:
|
||||
arg-type: with-path
|
||||
arg-type@windows: with
|
||||
ext-gmp:
|
||||
type: php-extension
|
||||
depends@unix:
|
||||
- gmp
|
||||
depends@windows:
|
||||
- mpir
|
||||
php-extension:
|
||||
arg-type: with-path
|
||||
arg-type@windows: with
|
||||
ext-iconv:
|
||||
type: php-extension
|
||||
depends@unix:
|
||||
- libiconv
|
||||
depends@windows:
|
||||
- libiconv-win
|
||||
php-extension:
|
||||
arg-type@unix: with-path
|
||||
arg-type@windows: with
|
||||
ext-intl:
|
||||
type: php-extension
|
||||
depends:
|
||||
- icu
|
||||
ext-ldap:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ldap
|
||||
suggests:
|
||||
- gmp
|
||||
- libsodium
|
||||
- ext-openssl
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: with-path
|
||||
arg-type@windows: with
|
||||
ext-libxml:
|
||||
type: php-extension
|
||||
depends:
|
||||
- libxml2
|
||||
php-extension:
|
||||
build-with-php: true
|
||||
build-shared: false
|
||||
arg-type@unix: with-path
|
||||
arg-type@windows: with
|
||||
ext-mbregex:
|
||||
type: php-extension
|
||||
depends:
|
||||
- onig
|
||||
- ext-mbstring
|
||||
php-extension:
|
||||
arg-type: custom
|
||||
build-shared: false
|
||||
build-static: true
|
||||
display-name: mbstring
|
||||
ext-mbstring:
|
||||
type: php-extension
|
||||
php-extension:
|
||||
arg-type: custom
|
||||
ext-mysqli:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-mysqlnd
|
||||
php-extension:
|
||||
arg-type: with
|
||||
build-with-php: true
|
||||
ext-mysqlnd:
|
||||
type: php-extension
|
||||
depends:
|
||||
- zlib
|
||||
php-extension:
|
||||
arg-type@unix: enable
|
||||
arg-type@windows: with
|
||||
build-with-php: true
|
||||
ext-odbc:
|
||||
type: php-extension
|
||||
depends@unix:
|
||||
- unixodbc
|
||||
php-extension:
|
||||
arg-type@unix: '--with-unixODBC@shared_path_suffix@'
|
||||
arg-type@windows: enable
|
||||
ext-opcache:
|
||||
type: php-extension
|
||||
php-extension:
|
||||
arg-type@unix: custom
|
||||
arg-type@windows: enable
|
||||
zend-extension: true
|
||||
display-name: 'Zend Opcache'
|
||||
ext-openssl:
|
||||
type: php-extension
|
||||
depends:
|
||||
- openssl
|
||||
- zlib
|
||||
- ext-zlib
|
||||
php-extension:
|
||||
arg-type: custom
|
||||
arg-type@windows: with
|
||||
build-with-php: true
|
||||
ext-password-argon2:
|
||||
type: php-extension
|
||||
depends:
|
||||
- libargon2
|
||||
suggests:
|
||||
- ext-openssl
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: custom
|
||||
display-name: ''
|
||||
ext-pcntl:
|
||||
type: php-extension
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
ext-pdo:
|
||||
type: php-extension
|
||||
ext-pdo_mysql:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-pdo
|
||||
- ext-mysqlnd
|
||||
php-extension:
|
||||
arg-type: with
|
||||
ext-pdo_odbc:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-pdo
|
||||
depends@unix:
|
||||
- unixodbc
|
||||
- ext-pdo
|
||||
- ext-odbc
|
||||
php-extension:
|
||||
arg-type: custom
|
||||
ext-pdo_pgsql:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-pdo
|
||||
- ext-pgsql
|
||||
- postgresql
|
||||
php-extension:
|
||||
arg-type@unix: with-path
|
||||
arg-type@windows: '--with-pdo-pgsql=yes'
|
||||
ext-pdo_sqlite:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-pdo
|
||||
- ext-sqlite3
|
||||
- sqlite
|
||||
php-extension:
|
||||
arg-type: with
|
||||
ext-pgsql:
|
||||
type: php-extension
|
||||
depends:
|
||||
- postgresql
|
||||
php-extension:
|
||||
arg-type: custom
|
||||
ext-phar:
|
||||
type: php-extension
|
||||
depends:
|
||||
- zlib
|
||||
ext-posix:
|
||||
type: php-extension
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
ext-readline:
|
||||
type: php-extension
|
||||
depends@unix:
|
||||
- libedit
|
||||
depends@windows:
|
||||
- wineditline
|
||||
php-extension:
|
||||
arg-type: '--with-libedit --without-readline'
|
||||
arg-type@windows: with
|
||||
build-shared: false
|
||||
build-static: true
|
||||
ext-session:
|
||||
type: php-extension
|
||||
ext-shmop:
|
||||
type: php-extension
|
||||
php-extension:
|
||||
build-with-php: true
|
||||
ext-simplexml:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-xml
|
||||
php-extension:
|
||||
arg-type@unix: enable
|
||||
arg-type@windows: with
|
||||
build-with-php: true
|
||||
ext-snmp:
|
||||
type: php-extension
|
||||
depends:
|
||||
- net-snmp
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: with
|
||||
ext-soap:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-xml
|
||||
- ext-session
|
||||
php-extension:
|
||||
arg-type: enable
|
||||
build-with-php: true
|
||||
ext-sockets:
|
||||
type: php-extension
|
||||
ext-sodium:
|
||||
type: php-extension
|
||||
depends:
|
||||
- libsodium
|
||||
php-extension:
|
||||
arg-type: with
|
||||
ext-sqlite3:
|
||||
type: php-extension
|
||||
depends:
|
||||
- sqlite
|
||||
php-extension:
|
||||
arg-type@unix: with-path
|
||||
arg-type@windows: with
|
||||
build-with-php: true
|
||||
ext-sysvmsg:
|
||||
type: php-extension
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
ext-sysvsem:
|
||||
type: php-extension
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
ext-sysvshm:
|
||||
type: php-extension
|
||||
ext-tidy:
|
||||
type: php-extension
|
||||
depends:
|
||||
- tidy
|
||||
php-extension:
|
||||
arg-type: with-path
|
||||
ext-tokenizer:
|
||||
type: php-extension
|
||||
php-extension:
|
||||
build-with-php: true
|
||||
ext-xml:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-libxml
|
||||
depends@windows:
|
||||
- ext-iconv
|
||||
- ext-libxml
|
||||
php-extension:
|
||||
arg-type@unix: enable
|
||||
arg-type@windows: with
|
||||
build-with-php: true
|
||||
ext-xmlreader:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-xml
|
||||
- ext-dom
|
||||
php-extension:
|
||||
arg-type: enable
|
||||
build-with-php: true
|
||||
ext-xmlwriter:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-xml
|
||||
php-extension:
|
||||
arg-type: enable
|
||||
build-with-php: true
|
||||
ext-xsl:
|
||||
type: php-extension
|
||||
depends:
|
||||
- libxslt
|
||||
- ext-xml
|
||||
- ext-dom
|
||||
php-extension:
|
||||
arg-type: with-path
|
||||
build-with-php: true
|
||||
ext-zlib:
|
||||
type: php-extension
|
||||
depends:
|
||||
- zlib
|
||||
php-extension:
|
||||
arg-type: custom
|
||||
arg-type@windows: enable
|
||||
build-with-php: true
|
||||
build-shared: false
|
||||
17
config/pkg/ext/ext-amqp.yml
Normal file
17
config/pkg/ext/ext-amqp.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
ext-amqp:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: amqp
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
depends:
|
||||
- librabbitmq
|
||||
depends@windows:
|
||||
- librabbitmq
|
||||
- ext-openssl
|
||||
php-extension:
|
||||
arg-type: '--with-amqp@shared_suffix@ --with-librabbitmq-dir=@build_root_path@'
|
||||
arg-type@windows: '--with-amqp'
|
||||
9
config/pkg/ext/ext-apcu.yml
Normal file
9
config/pkg/ext/ext-apcu.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
ext-apcu:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: APCu
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
9
config/pkg/ext/ext-ast.yml
Normal file
9
config/pkg/ext/ext-ast.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
ext-ast:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: ast
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: BSD-3-Clause
|
||||
13
config/pkg/ext/ext-brotli.yml
Normal file
13
config/pkg/ext/ext-brotli.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
ext-brotli:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: git
|
||||
extract: php-src/ext/brotli
|
||||
rev: master
|
||||
url: 'https://github.com/kjdev/php-ext-brotli'
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: MIT
|
||||
depends:
|
||||
- brotli
|
||||
19
config/pkg/ext/ext-clickhouse.yml
Normal file
19
config/pkg/ext/ext-clickhouse.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
ext-clickhouse:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: ghtar
|
||||
repo: iliaal/php_clickhouse
|
||||
extract: php-src/ext/clickhouse
|
||||
prefer-stable: true
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
suggests@unix:
|
||||
- openssl
|
||||
lang: cpp
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type@unix: custom
|
||||
16
config/pkg/ext/ext-decimal.yml
Normal file
16
config/pkg/ext/ext-decimal.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
ext-decimal:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: ghtagtar
|
||||
repo: php-decimal/ext-decimal
|
||||
match: 'v2\.\d.*'
|
||||
extract: php-src/ext/decimal
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: MIT
|
||||
depends:
|
||||
- libmpdec
|
||||
php-extension:
|
||||
arg-type@unix: '--enable-decimal --with-libmpdec-path=@build_root_path@'
|
||||
arg-type@windows: '--with-decimal'
|
||||
10
config/pkg/ext/ext-deepclone.yml
Normal file
10
config/pkg/ext/ext-deepclone.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
ext-deepclone:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: ghtagtar
|
||||
repo: symfony/php-ext-deepclone
|
||||
extract: php-src/ext/deepclone
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
9
config/pkg/ext/ext-dio.yml
Normal file
9
config/pkg/ext/ext-dio.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
ext-dio:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: dio
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
11
config/pkg/ext/ext-ds.yml
Normal file
11
config/pkg/ext/ext-ds.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
ext-ds:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: git
|
||||
url: 'https://github.com/php-ds/ext-ds.git'
|
||||
rev: master
|
||||
extract: php-src/ext/ds
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: MIT
|
||||
13
config/pkg/ext/ext-ev.yml
Normal file
13
config/pkg/ext/ext-ev.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
ext-ev:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: ev
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
depends:
|
||||
- ext-sockets
|
||||
php-extension:
|
||||
arg-type@windows: with
|
||||
20
config/pkg/ext/ext-event.yml
Normal file
20
config/pkg/ext/ext-event.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
ext-event:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: url
|
||||
url: 'https://bitbucket.org/osmanov/pecl-event/get/3.1.4.tar.gz'
|
||||
extract: php-src/ext/event
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
depends:
|
||||
- libevent
|
||||
- ext-openssl
|
||||
suggests:
|
||||
- ext-sockets
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: custom
|
||||
13
config/pkg/ext/ext-excimer.yml
Normal file
13
config/pkg/ext/ext-excimer.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
ext-excimer:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: excimer
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
20
config/pkg/ext/ext-fastchart.yml
Normal file
20
config/pkg/ext/ext-fastchart.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
ext-fastchart:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: ghtar
|
||||
repo: iliaal/fastchart
|
||||
extract: php-src/ext/fastchart
|
||||
prefer-stable: true
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
depends:
|
||||
- freetype
|
||||
suggests:
|
||||
- libpng
|
||||
- libjpeg
|
||||
- libwebp
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
14
config/pkg/ext/ext-fastjson.yml
Normal file
14
config/pkg/ext/ext-fastjson.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
ext-fastjson:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: ghtar
|
||||
repo: iliaal/fastjson
|
||||
extract: php-src/ext/fastjson
|
||||
prefer-stable: true
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
16
config/pkg/ext/ext-gearman.yml
Normal file
16
config/pkg/ext/ext-gearman.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
ext-gearman:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: gearman
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
depends:
|
||||
- libgearman
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: '--with-gearman@shared_path_suffix@'
|
||||
7
config/pkg/ext/ext-glfw.yml
Normal file
7
config/pkg/ext/ext-glfw.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
ext-glfw:
|
||||
type: php-extension
|
||||
artifact: glfw
|
||||
depends:
|
||||
- glfw
|
||||
php-extension:
|
||||
arg-type@unix: '--enable-glfw --with-glfw-dir=@build_root_path@'
|
||||
14
config/pkg/ext/ext-gmssl.yml
Normal file
14
config/pkg/ext/ext-gmssl.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
ext-gmssl:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: ghtar
|
||||
repo: gmssl/GmSSL-PHP
|
||||
extract: php-src/ext/gmssl
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
depends:
|
||||
- gmssl
|
||||
php-extension:
|
||||
arg-type: with-path
|
||||
17
config/pkg/ext/ext-grpc.yml
Normal file
17
config/pkg/ext/ext-grpc.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
ext-grpc:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: grpc
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: Apache-2.0
|
||||
depends:
|
||||
- grpc
|
||||
lang: cpp
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type@unix: enable-path
|
||||
12
config/pkg/ext/ext-igbinary.yml
Normal file
12
config/pkg/ext/ext-igbinary.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
ext-igbinary:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: igbinary
|
||||
metadata:
|
||||
license-files: [COPYING]
|
||||
license: BSD-3-Clause
|
||||
suggests:
|
||||
- ext-session
|
||||
- ext-apcu
|
||||
17
config/pkg/ext/ext-imagick.yml
Normal file
17
config/pkg/ext/ext-imagick.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
ext-imagick:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: imagick
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
depends:
|
||||
- imagemagick
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
- Windows
|
||||
arg-type: custom
|
||||
18
config/pkg/ext/ext-imap.yml
Normal file
18
config/pkg/ext/ext-imap.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
ext-imap:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: imap
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
depends:
|
||||
- imap
|
||||
suggests:
|
||||
- ext-openssl
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: custom
|
||||
12
config/pkg/ext/ext-inotify.yml
Normal file
12
config/pkg/ext/ext-inotify.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
ext-inotify:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: inotify
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
16
config/pkg/ext/ext-lz4.yml
Normal file
16
config/pkg/ext/ext-lz4.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
ext-lz4:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: git
|
||||
url: 'https://github.com/kjdev/php-ext-lz4.git'
|
||||
rev: master
|
||||
extract: php-src/ext/lz4
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: MIT
|
||||
depends:
|
||||
- liblz4
|
||||
php-extension:
|
||||
arg-type@unix: '--enable-lz4=@shared_suffix@ --with-lz4-includedir=@build_root_path@'
|
||||
arg-type@windows: '--enable-lz4'
|
||||
13
config/pkg/ext/ext-maxminddb.yml
Normal file
13
config/pkg/ext/ext-maxminddb.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
ext-maxminddb:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: maxminddb
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: Apache-2.0
|
||||
depends:
|
||||
- libmaxminddb
|
||||
php-extension:
|
||||
arg-type: with
|
||||
17
config/pkg/ext/ext-memcache.yml
Normal file
17
config/pkg/ext/ext-memcache.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
ext-memcache:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: memcache
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.0
|
||||
depends:
|
||||
- ext-zlib
|
||||
- ext-session
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: '--enable-memcache@shared_suffix@ --with-zlib-dir=@build_root_path@'
|
||||
26
config/pkg/ext/ext-memcached.yml
Normal file
26
config/pkg/ext/ext-memcached.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
ext-memcached:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: memcached
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
depends:
|
||||
- libmemcached
|
||||
depends@unix:
|
||||
- libmemcached
|
||||
- fastlz
|
||||
- ext-session
|
||||
- ext-zlib
|
||||
suggests:
|
||||
- zstd
|
||||
- ext-igbinary
|
||||
- ext-msgpack
|
||||
- ext-session
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: '--enable-memcached@shared_suffix@ --with-zlib-dir=@build_root_path@'
|
||||
24
config/pkg/ext/ext-mongodb.yml
Normal file
24
config/pkg/ext/ext-mongodb.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
ext-mongodb:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: ghrel
|
||||
repo: mongodb/mongo-php-driver
|
||||
match: mongodb.+\.tgz
|
||||
extract: php-src/ext/mongodb
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
depends@windows:
|
||||
- ext-openssl
|
||||
suggests@unix:
|
||||
- icu
|
||||
- openssl
|
||||
- zstd
|
||||
- zlib
|
||||
frameworks:
|
||||
- CoreFoundation
|
||||
- Security
|
||||
php-extension:
|
||||
arg-type@unix: custom
|
||||
arg-type@windows: '--enable-mongodb --with-mongodb-client-side-encryption'
|
||||
14
config/pkg/ext/ext-msgpack.yml
Normal file
14
config/pkg/ext/ext-msgpack.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
ext-msgpack:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: msgpack
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: BSD-3-Clause
|
||||
depends:
|
||||
- ext-session
|
||||
php-extension:
|
||||
arg-type@unix: with
|
||||
arg-type@windows: enable
|
||||
18
config/pkg/ext/ext-mysqlnd_ed25519.yml
Normal file
18
config/pkg/ext/ext-mysqlnd_ed25519.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
ext-mysqlnd_ed25519:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pie
|
||||
repo: mariadb/mysqlnd_ed25519
|
||||
extract: php-src/ext/mysqlnd_ed25519
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: BSD-3-Clause
|
||||
depends:
|
||||
- ext-mysqlnd
|
||||
- libsodium
|
||||
suggests:
|
||||
- openssl
|
||||
php-extension:
|
||||
arg-type: '--with-mysqlnd_ed25519=@shared_suffix@'
|
||||
build-static: false
|
||||
17
config/pkg/ext/ext-mysqlnd_parsec.yml
Normal file
17
config/pkg/ext/ext-mysqlnd_parsec.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
ext-mysqlnd_parsec:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pie
|
||||
repo: mariadb/mysqlnd_parsec
|
||||
extract: php-src/ext/mysqlnd_parsec
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: BSD-3-Clause
|
||||
depends:
|
||||
- ext-mysqlnd
|
||||
- libsodium
|
||||
- openssl
|
||||
php-extension:
|
||||
arg-type: '--enable-mysqlnd_parsec'
|
||||
build-static: false
|
||||
9
config/pkg/ext/ext-opentelemetry.yml
Normal file
9
config/pkg/ext/ext-opentelemetry.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
ext-opentelemetry:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: opentelemetry
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: Apache-2.0
|
||||
13
config/pkg/ext/ext-parallel.yml
Normal file
13
config/pkg/ext/ext-parallel.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
ext-parallel:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: parallel
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
depends@windows:
|
||||
- pthreads4w
|
||||
php-extension:
|
||||
arg-type@windows: with
|
||||
12
config/pkg/ext/ext-pcov.yml
Normal file
12
config/pkg/ext/ext-pcov.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
ext-pcov:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: pcov
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
php-extension:
|
||||
build-static: false
|
||||
build-shared: true
|
||||
14
config/pkg/ext/ext-pdo_sqlsrv.yml
Normal file
14
config/pkg/ext/ext-pdo_sqlsrv.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
ext-pdo_sqlsrv:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: pdo_sqlsrv
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: MIT
|
||||
depends:
|
||||
- ext-pdo
|
||||
- ext-sqlsrv
|
||||
php-extension:
|
||||
arg-type: with
|
||||
13
config/pkg/ext/ext-protobuf.yml
Normal file
13
config/pkg/ext/ext-protobuf.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
ext-protobuf:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: protobuf
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: BSD-3-Clause
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
12
config/pkg/ext/ext-rar.yml
Normal file
12
config/pkg/ext/ext-rar.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
ext-rar:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: git
|
||||
url: 'https://github.com/static-php/php-rar.git'
|
||||
rev: issue-php82
|
||||
extract: php-src/ext/rar
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
lang: cpp
|
||||
18
config/pkg/ext/ext-rdkafka.yml
Normal file
18
config/pkg/ext/ext-rdkafka.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
ext-rdkafka:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: ghtar
|
||||
repo: php-rdkafka/php-rdkafka
|
||||
extract: php-src/ext/rdkafka
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: MIT
|
||||
depends:
|
||||
- librdkafka
|
||||
lang: cpp
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: custom
|
||||
21
config/pkg/ext/ext-redis.yml
Normal file
21
config/pkg/ext/ext-redis.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
ext-redis:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: redis
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
suggests:
|
||||
- ext-session
|
||||
- ext-igbinary
|
||||
- ext-msgpack
|
||||
suggests@unix:
|
||||
- ext-session
|
||||
- ext-igbinary
|
||||
- ext-msgpack
|
||||
- zstd
|
||||
- liblz4
|
||||
php-extension:
|
||||
arg-type: custom
|
||||
10
config/pkg/ext/ext-simdjson.yml
Normal file
10
config/pkg/ext/ext-simdjson.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
ext-simdjson:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: simdjson
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: Apache-2.0
|
||||
lang: cpp
|
||||
19
config/pkg/ext/ext-snappy.yml
Normal file
19
config/pkg/ext/ext-snappy.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
ext-snappy:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: git
|
||||
url: 'https://github.com/kjdev/php-ext-snappy'
|
||||
rev: master
|
||||
extract: php-src/ext/snappy
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
depends:
|
||||
- snappy
|
||||
suggests:
|
||||
- ext-apcu
|
||||
lang: cpp
|
||||
php-extension:
|
||||
arg-type@unix: '--enable-snappy --with-snappy-includedir=@build_root_path@'
|
||||
arg-type@windows: '--enable-snappy'
|
||||
17
config/pkg/ext/ext-spx.yml
Normal file
17
config/pkg/ext/ext-spx.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
ext-spx:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pie
|
||||
repo: noisebynorthwest/php-spx
|
||||
extract: php-src/ext/spx
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: GPL-3.0-or-later
|
||||
depends:
|
||||
- ext-zlib
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: '--enable-SPX@shared_suffix@'
|
||||
15
config/pkg/ext/ext-sqlsrv.yml
Normal file
15
config/pkg/ext/ext-sqlsrv.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
ext-sqlsrv:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: sqlsrv
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: MIT
|
||||
depends@linux:
|
||||
- unixodbc
|
||||
- ext-pcntl
|
||||
depends@macos:
|
||||
- unixodbc
|
||||
lang: cpp
|
||||
15
config/pkg/ext/ext-ssh2.yml
Normal file
15
config/pkg/ext/ext-ssh2.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
ext-ssh2:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: ssh2
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
depends:
|
||||
- libssh2
|
||||
- ext-openssl
|
||||
- ext-zlib
|
||||
php-extension:
|
||||
arg-type: with-path
|
||||
86
config/pkg/ext/ext-swoole.yml
Normal file
86
config/pkg/ext/ext-swoole.yml
Normal file
@@ -0,0 +1,86 @@
|
||||
ext-swoole:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: ghtar
|
||||
repo: swoole/swoole-src
|
||||
extract: php-src/ext/swoole
|
||||
prefer-stable: true
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: Apache-2.0
|
||||
depends:
|
||||
- libcares
|
||||
- brotli
|
||||
- nghttp2
|
||||
- zlib
|
||||
- ext-openssl
|
||||
- ext-curl
|
||||
suggests:
|
||||
- zstd
|
||||
- ext-sockets
|
||||
- ext-swoole-hook-pgsql
|
||||
- ext-swoole-hook-mysql
|
||||
- ext-swoole-hook-sqlite
|
||||
- ext-swoole-hook-odbc
|
||||
suggests@linux:
|
||||
- zstd
|
||||
- liburing
|
||||
- ext-sockets
|
||||
- ext-swoole-hook-pgsql
|
||||
- ext-swoole-hook-mysql
|
||||
- ext-swoole-hook-sqlite
|
||||
- ext-swoole-hook-odbc
|
||||
lang: cpp
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: custom
|
||||
ext-swoole-hook-mysql:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-mysqlnd
|
||||
- ext-pdo
|
||||
- ext-pdo_mysql
|
||||
suggests:
|
||||
- ext-mysqli
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: none
|
||||
display-name: swoole
|
||||
ext-swoole-hook-odbc:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-pdo
|
||||
- unixodbc
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: none
|
||||
display-name: swoole
|
||||
ext-swoole-hook-pgsql:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-pgsql
|
||||
- ext-pdo
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: none
|
||||
display-name: swoole
|
||||
ext-swoole-hook-sqlite:
|
||||
type: php-extension
|
||||
depends:
|
||||
- ext-sqlite3
|
||||
- ext-pdo
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: none
|
||||
display-name: swoole
|
||||
19
config/pkg/ext/ext-swow.yml
Normal file
19
config/pkg/ext/ext-swow.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
ext-swow:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
extract: php-src/ext/swow-src
|
||||
type: ghtar
|
||||
repo: swow/swow
|
||||
prefer-stable: true
|
||||
metadata:
|
||||
license: Apache-2.0
|
||||
license-files: [LICENSE]
|
||||
suggests:
|
||||
- openssl
|
||||
- curl
|
||||
- ext-openssl
|
||||
- ext-curl
|
||||
- postgresql
|
||||
php-extension:
|
||||
arg-type: custom
|
||||
11
config/pkg/ext/ext-trader.yml
Normal file
11
config/pkg/ext/ext-trader.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
ext-trader:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: trader
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: BSD-2-Clause
|
||||
php-extension:
|
||||
arg-type: enable
|
||||
16
config/pkg/ext/ext-uuid.yml
Normal file
16
config/pkg/ext/ext-uuid.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
ext-uuid:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: uuid
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: LGPL-2.1-only
|
||||
depends:
|
||||
- libuuid
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: with-path
|
||||
15
config/pkg/ext/ext-uv.yml
Normal file
15
config/pkg/ext/ext-uv.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
ext-uv:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: uv
|
||||
prefer-stable: false
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
depends:
|
||||
- libuv
|
||||
- ext-sockets
|
||||
php-extension:
|
||||
arg-type: with-path
|
||||
17
config/pkg/ext/ext-xdebug.yml
Normal file
17
config/pkg/ext/ext-xdebug.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
ext-xdebug:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pie
|
||||
repo: xdebug/xdebug
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: Xdebug-1.03
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
zend-extension: true
|
||||
build-static: false
|
||||
build-shared: true
|
||||
build-with-php: false
|
||||
18
config/pkg/ext/ext-xhprof.yml
Normal file
18
config/pkg/ext/ext-xhprof.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
ext-xhprof:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: xhprof
|
||||
extract: php-src/ext/xhprof-src
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: Apache-2.0
|
||||
depends:
|
||||
- ext-ctype
|
||||
php-extension:
|
||||
os:
|
||||
- Linux
|
||||
- Darwin
|
||||
arg-type: enable
|
||||
build-with-php: true
|
||||
17
config/pkg/ext/ext-xlswriter.yml
Normal file
17
config/pkg/ext/ext-xlswriter.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
ext-xlswriter:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: pecl
|
||||
name: xlswriter
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: BSD-2-Clause
|
||||
depends:
|
||||
- ext-zlib
|
||||
- ext-zip
|
||||
suggests:
|
||||
- openssl
|
||||
php-extension:
|
||||
arg-type: custom
|
||||
arg-type@windows: '--with-xlswriter'
|
||||
16
config/pkg/ext/ext-xz.yml
Normal file
16
config/pkg/ext/ext-xz.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
ext-xz:
|
||||
type: php-extension
|
||||
artifact:
|
||||
source:
|
||||
type: git
|
||||
url: 'https://github.com/codemasher/php-ext-xz'
|
||||
rev: main
|
||||
extract: php-src/ext/xz
|
||||
metadata:
|
||||
license-files: [LICENSE]
|
||||
license: PHP-3.01
|
||||
depends:
|
||||
- xz
|
||||
php-extension:
|
||||
arg-type: with-path
|
||||
arg-type@windows: enable
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user