You've already forked qBittorrent
mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-10-28 14:50:53 +01:00
Compare commits
873 Commits
v4_4_x
...
release-4.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fbe93f0c47 | ||
|
|
11945eef3f | ||
|
|
a35dbc6df7 | ||
|
|
3fb4e4d293 | ||
|
|
f5a4065101 | ||
|
|
ba93d55a6d | ||
|
|
a59301712e | ||
|
|
b406d669b3 | ||
|
|
4ef8f39f23 | ||
|
|
34802362ad | ||
|
|
c10f1f0ad2 | ||
|
|
58ae98026b | ||
|
|
32a55551fe | ||
|
|
7880fe8440 | ||
|
|
bb959bda8c | ||
|
|
d629c77184 | ||
|
|
b953d223e4 | ||
|
|
6fa53b5ed8 | ||
|
|
c777ed3299 | ||
|
|
341b2f345a | ||
|
|
905f141657 | ||
|
|
0a87bb368f | ||
|
|
93a1e58554 | ||
|
|
0cc29f1851 | ||
|
|
81daad92ec | ||
|
|
41be7e9bbe | ||
|
|
179a61d75e | ||
|
|
73134d5f4d | ||
|
|
29c05ed3e8 | ||
|
|
e375f3ee0b | ||
|
|
b185153254 | ||
|
|
e7e5c38384 | ||
|
|
9a00839a75 | ||
|
|
79e85d01fa | ||
|
|
e408973ee6 | ||
|
|
8c9b6e2f2d | ||
|
|
5b43782f58 | ||
|
|
2059825597 | ||
|
|
e1be46820b | ||
|
|
8219b1f695 | ||
|
|
3fbe380582 | ||
|
|
5f00d42a49 | ||
|
|
15de7aed9a | ||
|
|
5c38cc00d9 | ||
|
|
5a1dcbae9c | ||
|
|
7c6a852f85 | ||
|
|
147b22ddd3 | ||
|
|
d83b2a6131 | ||
|
|
821e946bbe | ||
|
|
634eb4a183 | ||
|
|
758ea7edca | ||
|
|
1bd499565e | ||
|
|
be9ec5a329 | ||
|
|
df895cb2a7 | ||
|
|
3b72859980 | ||
|
|
69df85f564 | ||
|
|
1f1da32371 | ||
|
|
cddf8c199c | ||
|
|
bbd5ed1142 | ||
|
|
0f033ec9c8 | ||
|
|
7397c80837 | ||
|
|
51132c817b | ||
|
|
1fe006d16f | ||
|
|
bd31eddb94 | ||
|
|
0defb7d79d | ||
|
|
1e400df324 | ||
|
|
9ea48539b4 | ||
|
|
d63e0ad78f | ||
|
|
eaee38a19e | ||
|
|
b3e9c46eff | ||
|
|
5dcc14153f | ||
|
|
4a66d705b8 | ||
|
|
9d7fcea5d6 | ||
|
|
b8cd614775 | ||
|
|
a9ab2d9b9e | ||
|
|
cecf2d28e6 | ||
|
|
a01f1014b9 | ||
|
|
77411760a0 | ||
|
|
0dcb65bb7c | ||
|
|
d40be79c69 | ||
|
|
b55d4b1733 | ||
|
|
40e28930a4 | ||
|
|
5a3579a3f9 | ||
|
|
9de8abadb6 | ||
|
|
05c5cdab96 | ||
|
|
1e1c1725ab | ||
|
|
b5c57af869 | ||
|
|
eb875ac8c1 | ||
|
|
a36358d7d0 | ||
|
|
679e592a5c | ||
|
|
b922441a7c | ||
|
|
941c587c68 | ||
|
|
77bd09bb8b | ||
|
|
8bcac1bed2 | ||
|
|
cdded6cef7 | ||
|
|
8cbe4a571c | ||
|
|
ee9d2173e0 | ||
|
|
a450a7c6e1 | ||
|
|
d41a77841d | ||
|
|
ae06daba6a | ||
|
|
77aa85fbd3 | ||
|
|
989b1e6c2c | ||
|
|
9ef23d524d | ||
|
|
f16e903623 | ||
|
|
0bb0829a9a | ||
|
|
fa30b70453 | ||
|
|
e4f90730b2 | ||
|
|
6fd522472c | ||
|
|
0f32de9d8c | ||
|
|
f630d84858 | ||
|
|
ee6f699b48 | ||
|
|
ce9bdaef5c | ||
|
|
37c04fdeed | ||
|
|
c51aa2d573 | ||
|
|
b922e1ae73 | ||
|
|
dd48f62d66 | ||
|
|
f5b5312cf0 | ||
|
|
58a654a70f | ||
|
|
ff0f3b4975 | ||
|
|
8df68ac878 | ||
|
|
2f9b313287 | ||
|
|
cbf591a8b5 | ||
|
|
96da685e5d | ||
|
|
6ac14d0c57 | ||
|
|
4745a40f0b | ||
|
|
8993d87b32 | ||
|
|
8df80b67f9 | ||
|
|
466314675c | ||
|
|
d75fd3fcde | ||
|
|
7ae83df5a5 | ||
|
|
19f55512c1 | ||
|
|
6e25db444e | ||
|
|
d2c4b69f47 | ||
|
|
4170b4e21b | ||
|
|
9fb9ca47f6 | ||
|
|
917190d936 | ||
|
|
1e913f46f0 | ||
|
|
4c0ebc0e0f | ||
|
|
1b0f5b8567 | ||
|
|
6a4bb5c1b7 | ||
|
|
3fea9f5a33 | ||
|
|
7600f59f3a | ||
|
|
915121a0dd | ||
|
|
1be5b3abd8 | ||
|
|
e37661d53a | ||
|
|
d06f78dbbd | ||
|
|
5d4766edbe | ||
|
|
72ac92ec68 | ||
|
|
22ea508ff6 | ||
|
|
b2213ded6d | ||
|
|
1ea2fe5b8d | ||
|
|
7227d2b2b2 | ||
|
|
0dcbf9f698 | ||
|
|
09e58df03f | ||
|
|
d256db5072 | ||
|
|
10153f0063 | ||
|
|
c6a1b977b3 | ||
|
|
870bb42e4f | ||
|
|
b61c7b7220 | ||
|
|
c58fb92365 | ||
|
|
5e952a561b | ||
|
|
ca72360b6f | ||
|
|
630b4ed3b9 | ||
|
|
cba9680ef9 | ||
|
|
2310dcd136 | ||
|
|
ee00a80796 | ||
|
|
051bac5e59 | ||
|
|
771c58d000 | ||
|
|
53cec6db09 | ||
|
|
43e059801e | ||
|
|
ce35a06ec3 | ||
|
|
32e4371208 | ||
|
|
0d376e7fd6 | ||
|
|
2b20d5b260 | ||
|
|
719e4afd8c | ||
|
|
9cdf660ddb | ||
|
|
5dbccf3473 | ||
|
|
8db2d04dbb | ||
|
|
209850064a | ||
|
|
e628b7d527 | ||
|
|
61dbb211c0 | ||
|
|
71f4a5667c | ||
|
|
b33dc7d831 | ||
|
|
c5a4a0db2c | ||
|
|
b9e045e80b | ||
|
|
cfd0c5433e | ||
|
|
ebad387c1a | ||
|
|
3f39bd9f35 | ||
|
|
f8236eb397 | ||
|
|
23a56c95e3 | ||
|
|
6f8aa07a10 | ||
|
|
594f9e8632 | ||
|
|
aeae065007 | ||
|
|
b12fdcf018 | ||
|
|
84fabf14c8 | ||
|
|
0ec47db9cd | ||
|
|
3cf0004665 | ||
|
|
40258f6a2f | ||
|
|
b335114219 | ||
|
|
998b08f5d8 | ||
|
|
991c30943a | ||
|
|
ad2be39c33 | ||
|
|
c3936cd4b6 | ||
|
|
d2e595aac3 | ||
|
|
b8aa9e5609 | ||
|
|
2109c4e1ae | ||
|
|
ac3ad17a9e | ||
|
|
31c7306bd2 | ||
|
|
4741aab7a3 | ||
|
|
679e3b8bea | ||
|
|
25ea0d274b | ||
|
|
12b58be8c2 | ||
|
|
e4f1485c82 | ||
|
|
1b2ff0f6f8 | ||
|
|
a31755bbc8 | ||
|
|
311e0f21eb | ||
|
|
b86366f243 | ||
|
|
58d1c80b12 | ||
|
|
182915f801 | ||
|
|
50c08e55cd | ||
|
|
4307a09621 | ||
|
|
d531d6d221 | ||
|
|
4cf94a6fa0 | ||
|
|
4cb60f4870 | ||
|
|
d82edb2838 | ||
|
|
c91eefe469 | ||
|
|
327affa340 | ||
|
|
4e7c2589e4 | ||
|
|
17ce07230d | ||
|
|
fda6c9a3d9 | ||
|
|
92af2922c7 | ||
|
|
1cee69da6c | ||
|
|
f54b66eb75 | ||
|
|
3563bad5fc | ||
|
|
1f3f96f7aa | ||
|
|
7022adb89b | ||
|
|
bac57de5f5 | ||
|
|
bdd56a52d3 | ||
|
|
dcdbd02102 | ||
|
|
b68c4e2106 | ||
|
|
67cb75e9d3 | ||
|
|
f9eefe866c | ||
|
|
c636618cf3 | ||
|
|
0f82c16936 | ||
|
|
d328eeb5be | ||
|
|
d90ea0d3be | ||
|
|
e7ece66717 | ||
|
|
6c9c40fd7c | ||
|
|
529c1ec9f4 | ||
|
|
93429840c8 | ||
|
|
6aee7f95b7 | ||
|
|
0b70ccf9e9 | ||
|
|
da586828be | ||
|
|
2e4431f0b8 | ||
|
|
162273da47 | ||
|
|
22fb9797c4 | ||
|
|
f6735401f4 | ||
|
|
06c4c58613 | ||
|
|
c80238d66f | ||
|
|
6a560016dd | ||
|
|
99b7663fa9 | ||
|
|
be0f34a69e | ||
|
|
3a2e73cc94 | ||
|
|
3ee0457cfa | ||
|
|
e19173c1f3 | ||
|
|
4a5d2e2558 | ||
|
|
027d6be48f | ||
|
|
0f2cc92ba2 | ||
|
|
07bb1df74f | ||
|
|
c29a6079bf | ||
|
|
dfb56ce31c | ||
|
|
5a8027ae1f | ||
|
|
bb2caabd61 | ||
|
|
14e4bc7eea | ||
|
|
9fb8f765e8 | ||
|
|
fe0be98fde | ||
|
|
fdba525e62 | ||
|
|
dfdaa706bd | ||
|
|
1a782a9362 | ||
|
|
5f2d807861 | ||
|
|
f2dd1e6456 | ||
|
|
155e73df16 | ||
|
|
05b7194bf7 | ||
|
|
597444c527 | ||
|
|
1c2dc79f51 | ||
|
|
106adf135c | ||
|
|
dcfd367ff8 | ||
|
|
67ee43fac1 | ||
|
|
a325ab8d6e | ||
|
|
c94152c47c | ||
|
|
a44bca3f07 | ||
|
|
698284f00e | ||
|
|
3b9d68f344 | ||
|
|
e028d8085b | ||
|
|
af1c97e2ea | ||
|
|
b95d97d07b | ||
|
|
17a5bd03c5 | ||
|
|
ada594faf3 | ||
|
|
4f0990dc29 | ||
|
|
f66ec4430d | ||
|
|
67357e9964 | ||
|
|
7eb97348de | ||
|
|
0279b80b46 | ||
|
|
d3936c07c7 | ||
|
|
aa022400f7 | ||
|
|
66795d533a | ||
|
|
ce7d8dee28 | ||
|
|
1f799689ed | ||
|
|
3463442631 | ||
|
|
c35ca52b00 | ||
|
|
6d501c2e6e | ||
|
|
a71d7e6557 | ||
|
|
30c2f9d9f3 | ||
|
|
544f9675c6 | ||
|
|
0c76321a6a | ||
|
|
10349b84d6 | ||
|
|
6fa4305aba | ||
|
|
d9af207a11 | ||
|
|
ad59eb4dfc | ||
|
|
874b015b20 | ||
|
|
21aabfdcb5 | ||
|
|
e7370d1a0f | ||
|
|
855f727451 | ||
|
|
3b0ac0962e | ||
|
|
617dedc464 | ||
|
|
8b4a0da235 | ||
|
|
dcc5206e3d | ||
|
|
9a81cbf4c0 | ||
|
|
d96ed5f4a4 | ||
|
|
102b6c32eb | ||
|
|
2af1e1874e | ||
|
|
680455a21b | ||
|
|
b568cdb1aa | ||
|
|
bc0d906adc | ||
|
|
2b385e5f92 | ||
|
|
616057a433 | ||
|
|
9a20aa51de | ||
|
|
6c8b31420c | ||
|
|
0514cb304d | ||
|
|
0a4ee60ea0 | ||
|
|
caa30e41d8 | ||
|
|
dc76a175ad | ||
|
|
92768c36aa | ||
|
|
2a3a4bff70 | ||
|
|
cacfe4f3ca | ||
|
|
37150520e1 | ||
|
|
3aadb63d80 | ||
|
|
0e0b8d1027 | ||
|
|
5e4a94e6b6 | ||
|
|
db7850e218 | ||
|
|
1dcfd7bb59 | ||
|
|
b28704a6ec | ||
|
|
0c6e56a150 | ||
|
|
d71ff734a9 | ||
|
|
90652d3555 | ||
|
|
f8a2fbc4c5 | ||
|
|
80759f9e69 | ||
|
|
e692a191ed | ||
|
|
4e06a9629a | ||
|
|
b3334e5fac | ||
|
|
4e326229da | ||
|
|
021222b407 | ||
|
|
6c60fa5161 | ||
|
|
cd405ffc32 | ||
|
|
537b1c1ea9 | ||
|
|
257914b0d5 | ||
|
|
5cfaaa5d1a | ||
|
|
109c45bb95 | ||
|
|
851374e517 | ||
|
|
4094a4c448 | ||
|
|
987e1b544a | ||
|
|
5cf6b1cbde | ||
|
|
4318de6dc5 | ||
|
|
459d1cf82c | ||
|
|
48d52d9ab7 | ||
|
|
16a99e687f | ||
|
|
fb37b0c147 | ||
|
|
9877ff330e | ||
|
|
6f88609d60 | ||
|
|
6263c4786b | ||
|
|
3061f6cf5b | ||
|
|
cc8c1a5748 | ||
|
|
ca897a8a35 | ||
|
|
77dd8bd27b | ||
|
|
fe34749cfe | ||
|
|
646322b2a2 | ||
|
|
670b381df7 | ||
|
|
ddf4b94bc6 | ||
|
|
794a92f911 | ||
|
|
f6e2715f4a | ||
|
|
082e6f8830 | ||
|
|
ee38124db7 | ||
|
|
e06e1d9911 | ||
|
|
3851e76179 | ||
|
|
d693f97a46 | ||
|
|
ca274635d5 | ||
|
|
525692759d | ||
|
|
e5491645e4 | ||
|
|
9f511a47e8 | ||
|
|
7b0644cdcd | ||
|
|
7527343629 | ||
|
|
d173216941 | ||
|
|
d28b5f7834 | ||
|
|
04f6ee79c3 | ||
|
|
b046b40668 | ||
|
|
0a289e15b4 | ||
|
|
ce8b51e7ef | ||
|
|
df5ea9b675 | ||
|
|
ff7fe7c107 | ||
|
|
ac6af55335 | ||
|
|
001c3906b5 | ||
|
|
0d5d6db0ee | ||
|
|
72941b10bb | ||
|
|
d6c92704a1 | ||
|
|
ba511e07b4 | ||
|
|
aa6b29fe7e | ||
|
|
f5836c9fc9 | ||
|
|
d7d1a90de6 | ||
|
|
16482c507b | ||
|
|
5abd72d42a | ||
|
|
2fa5ad982d | ||
|
|
43df7d0cd4 | ||
|
|
17d40855d2 | ||
|
|
c924fe7950 | ||
|
|
908f345e22 | ||
|
|
858eea1e9e | ||
|
|
06c704c740 | ||
|
|
916e53c260 | ||
|
|
3f94a68e62 | ||
|
|
5c96f16e3d | ||
|
|
8e33d99901 | ||
|
|
d27dd85dfd | ||
|
|
15515200ee | ||
|
|
7f40602da9 | ||
|
|
33e6ca6778 | ||
|
|
54b50c3a8a | ||
|
|
fa3d98aa37 | ||
|
|
e24aaa4ce1 | ||
|
|
aed492b881 | ||
|
|
a4c2363f43 | ||
|
|
0056a61db3 | ||
|
|
6d1573f901 | ||
|
|
ef297dd8e6 | ||
|
|
958929aa77 | ||
|
|
1c0479a795 | ||
|
|
748226be29 | ||
|
|
27e1a8ad80 | ||
|
|
0802b6d506 | ||
|
|
29f8b4b786 | ||
|
|
2ebdf6060d | ||
|
|
b98e7cb69f | ||
|
|
2071ec0c96 | ||
|
|
36bc77e2e2 | ||
|
|
88556078be | ||
|
|
27a07e20f5 | ||
|
|
5d1115f591 | ||
|
|
88d9e82fc9 | ||
|
|
50b01ed45d | ||
|
|
243d130667 | ||
|
|
e33f73d08e | ||
|
|
f505d742d8 | ||
|
|
727d20cc92 | ||
|
|
3567ae3529 | ||
|
|
a9906e5d2a | ||
|
|
6ab35512da | ||
|
|
cfcbe3d6e1 | ||
|
|
39c0c1a088 | ||
|
|
f7ae010274 | ||
|
|
4fd5037c10 | ||
|
|
3fe09aa673 | ||
|
|
3a6858a277 | ||
|
|
c287c7bb01 | ||
|
|
99061d92c1 | ||
|
|
5b269a782a | ||
|
|
71e53a4628 | ||
|
|
275387a972 | ||
|
|
e68e3b516e | ||
|
|
3f7376f26b | ||
|
|
0e3ce019e4 | ||
|
|
f20f479a4b | ||
|
|
e95066a37c | ||
|
|
e281b667c6 | ||
|
|
ce0e92e12a | ||
|
|
56bb379024 | ||
|
|
bafe4e909c | ||
|
|
b6b0b54cdb | ||
|
|
a9a45b9569 | ||
|
|
864d806ee8 | ||
|
|
4cda5d89fb | ||
|
|
5b730ffb72 | ||
|
|
e2b140b8dd | ||
|
|
d2a29c2f87 | ||
|
|
60e62dc5ab | ||
|
|
4f1684c714 | ||
|
|
d3e7e8a630 | ||
|
|
437ddd3f76 | ||
|
|
0d715d879d | ||
|
|
cfdf5cffac | ||
|
|
d6314b30a2 | ||
|
|
03da68b1cf | ||
|
|
890630944d | ||
|
|
8d73ab65b2 | ||
|
|
e54124fdb8 | ||
|
|
e4fafb911a | ||
|
|
2ef059807a | ||
|
|
dba711d099 | ||
|
|
ec13bba4da | ||
|
|
8736c9ec4c | ||
|
|
286df8f560 | ||
|
|
92afbd45e8 | ||
|
|
d293c22a52 | ||
|
|
c660c9df8e | ||
|
|
ed2eadaf56 | ||
|
|
fa26333a5b | ||
|
|
be7cfb78de | ||
|
|
ec1d2cba40 | ||
|
|
a93cd20e4d | ||
|
|
25b3f2d1a6 | ||
|
|
b44bdd21cb | ||
|
|
53ea1843ab | ||
|
|
34091176d5 | ||
|
|
ac8a6887b6 | ||
|
|
cc0a0b56ed | ||
|
|
0e989185ce | ||
|
|
aadf961184 | ||
|
|
1abeac8811 | ||
|
|
f8a304abdc | ||
|
|
41a38428fc | ||
|
|
d3850cf98f | ||
|
|
02d906d3ae | ||
|
|
6de72ecc77 | ||
|
|
2a5dbe840c | ||
|
|
86b6bcc1d9 | ||
|
|
3023cff2b5 | ||
|
|
f3a4764a1d | ||
|
|
0d46a108b8 | ||
|
|
8114c11d58 | ||
|
|
e3425cfa9e | ||
|
|
af78344e5d | ||
|
|
a2121f2483 | ||
|
|
7d97905716 | ||
|
|
61adfea196 | ||
|
|
3dd616f6ff | ||
|
|
d5e6d161f2 | ||
|
|
d1515456bc | ||
|
|
7faa8b7a02 | ||
|
|
5b0cbf9eb1 | ||
|
|
74db0576af | ||
|
|
d0b13f0eb0 | ||
|
|
29a964d5b7 | ||
|
|
5e6174c087 | ||
|
|
199d770e15 | ||
|
|
c47e29c7c8 | ||
|
|
fed969ed64 | ||
|
|
9cb686a6b7 | ||
|
|
eddeda7bab | ||
|
|
ca07540675 | ||
|
|
fb5f563537 | ||
|
|
2f9c5cdb22 | ||
|
|
fcf50820e8 | ||
|
|
3fd0241abb | ||
|
|
ab0c82965c | ||
|
|
5173a56ebd | ||
|
|
9cd993d1da | ||
|
|
73faf67084 | ||
|
|
fd51362545 | ||
|
|
56b99f4e19 | ||
|
|
63cdfa2d85 | ||
|
|
242874e705 | ||
|
|
a5caa807f5 | ||
|
|
c2c17fd053 | ||
|
|
f54cc5796e | ||
|
|
a9f99aed48 | ||
|
|
7eaaa8f92a | ||
|
|
ca9f5a18d4 | ||
|
|
4f62900cd3 | ||
|
|
2c9e1d942b | ||
|
|
4032393c0e | ||
|
|
8e854062e8 | ||
|
|
cbf9c8ec1a | ||
|
|
494593c745 | ||
|
|
3af832ec18 | ||
|
|
7e0cd223fd | ||
|
|
8c0cd09823 | ||
|
|
f931fc5a85 | ||
|
|
c8b4611d8d | ||
|
|
7764169aa3 | ||
|
|
567dd3fabb | ||
|
|
8d3c19c599 | ||
|
|
b84333f8a1 | ||
|
|
acdd08e9a2 | ||
|
|
dbfd6a2368 | ||
|
|
5af96943e3 | ||
|
|
05325b135d | ||
|
|
9d858d5cd7 | ||
|
|
e82c50ed73 | ||
|
|
4ce98d57dd | ||
|
|
114c6d36d1 | ||
|
|
538c88ced4 | ||
|
|
7c35904062 | ||
|
|
5c3c6b63ba | ||
|
|
e698c09298 | ||
|
|
a048ea668f | ||
|
|
5af78ad2cd | ||
|
|
338e89176d | ||
|
|
a266599118 | ||
|
|
80f624e4cc | ||
|
|
002d56d8b3 | ||
|
|
be4a1e7fd7 | ||
|
|
a0a45333f1 | ||
|
|
dba998fea0 | ||
|
|
fe2b49cf81 | ||
|
|
c90f1511dc | ||
|
|
763d17281f | ||
|
|
1ae5339c33 | ||
|
|
7562e0e870 | ||
|
|
0e456f33c1 | ||
|
|
6778d36454 | ||
|
|
bc54860ad6 | ||
|
|
4894578b72 | ||
|
|
fb7f7d0c75 | ||
|
|
48fa4e116c | ||
|
|
e9d3928fe0 | ||
|
|
2a6f02fa29 | ||
|
|
ce0e5be7ce | ||
|
|
a8b6a40f13 | ||
|
|
88a91e0769 | ||
|
|
21f4676b16 | ||
|
|
bb2a874fd5 | ||
|
|
56667e717b | ||
|
|
caaaa05710 | ||
|
|
d69e6bb7aa | ||
|
|
a1903e5d67 | ||
|
|
64d8db0c93 | ||
|
|
7b608fd0c9 | ||
|
|
19cbffb5e2 | ||
|
|
c5ea6b0502 | ||
|
|
639ed40314 | ||
|
|
c5cbda0bbe | ||
|
|
59e37210f3 | ||
|
|
9351f66c26 | ||
|
|
7432c4dbfe | ||
|
|
1069bea273 | ||
|
|
c740d105c9 | ||
|
|
66a5a9863f | ||
|
|
7ca47b8916 | ||
|
|
bcfa4866fe | ||
|
|
de8377ab53 | ||
|
|
b85b1e8834 | ||
|
|
eba5a48abd | ||
|
|
a90ade0446 | ||
|
|
0b86eb9b4c | ||
|
|
359c4fef9d | ||
|
|
71b1cb3b9c | ||
|
|
b740cc23d3 | ||
|
|
613e9866aa | ||
|
|
bc937d38a2 | ||
|
|
35fcf39fc8 | ||
|
|
bd45dc5d0f | ||
|
|
7377974731 | ||
|
|
669b67e666 | ||
|
|
a2b85ba1fd | ||
|
|
dc22109fa7 | ||
|
|
4471a6377e | ||
|
|
3f762a416d | ||
|
|
a59a6ce8e4 | ||
|
|
189514c6de | ||
|
|
dded874350 | ||
|
|
e42fa0e027 | ||
|
|
33ffe95294 | ||
|
|
0657238ad1 | ||
|
|
4efece4ab8 | ||
|
|
b9b2ed64f9 | ||
|
|
16bc0531f4 | ||
|
|
39c34078d6 | ||
|
|
9318f05e2b | ||
|
|
95f3073e6f | ||
|
|
6f4a9390ba | ||
|
|
0eb6967bb2 | ||
|
|
2854630b1c | ||
|
|
bbd781c420 | ||
|
|
f7cfdfcf63 | ||
|
|
af7c32d3aa | ||
|
|
0d334369f0 | ||
|
|
08f3630f01 | ||
|
|
2b17838820 | ||
|
|
0b0338a9cb | ||
|
|
a24f2ae884 | ||
|
|
ec5b0b5403 | ||
|
|
df2d449f9b | ||
|
|
eecd221d40 | ||
|
|
3951b891c1 | ||
|
|
eab455422f | ||
|
|
75c93d72be | ||
|
|
6842e8263d | ||
|
|
f35d94d98e | ||
|
|
01206a0e2e | ||
|
|
cf9e3193bc | ||
|
|
f5239ffb0b | ||
|
|
746fe7ba09 | ||
|
|
7c1a986e61 | ||
|
|
c6b772da11 | ||
|
|
11cfe38d1c | ||
|
|
4ca6de2b54 | ||
|
|
e1abcc684a | ||
|
|
bbd936fdfa | ||
|
|
f58eed13d0 | ||
|
|
8a708fd97e | ||
|
|
bf8d993743 | ||
|
|
c029122a8e | ||
|
|
54327d579b | ||
|
|
6c10aa33e1 | ||
|
|
b7c098c5e6 | ||
|
|
c18c42e866 | ||
|
|
386f99cb1d | ||
|
|
a4b606c6e9 | ||
|
|
baa8d2c326 | ||
|
|
e1ca0f3ff9 | ||
|
|
ca2be2f499 | ||
|
|
5960e7dda6 | ||
|
|
efc04645b7 | ||
|
|
f888fb4ac7 | ||
|
|
e71e97cb68 | ||
|
|
1b4c5fd34d | ||
|
|
802ec5a14e | ||
|
|
5341478036 | ||
|
|
7694b21dff | ||
|
|
cf061b7d30 | ||
|
|
7fffb6526c | ||
|
|
dd5b16831c | ||
|
|
b3ca2ea179 | ||
|
|
b5d67f90e4 | ||
|
|
ce42f7c9f1 | ||
|
|
02869d7428 | ||
|
|
67b35b76ac | ||
|
|
baebabbfd8 | ||
|
|
154ee1a73e | ||
|
|
b3fb6bd990 | ||
|
|
926d51839f | ||
|
|
8de966ea88 | ||
|
|
85b0a40a0e | ||
|
|
88fe94bd6a | ||
|
|
1b53c590f2 | ||
|
|
2ee5b35f48 | ||
|
|
f0dd7b7dae | ||
|
|
f08c0afbea | ||
|
|
5a417c6a29 | ||
|
|
9f32e6e50d | ||
|
|
801cfdbc24 | ||
|
|
889d994dbc | ||
|
|
97c28e1e51 | ||
|
|
ad6e2b4b94 | ||
|
|
da12daffee | ||
|
|
30319e51e5 | ||
|
|
294ea17222 | ||
|
|
fad954df18 | ||
|
|
25be00931a | ||
|
|
cd9ed1706d | ||
|
|
b034b86be8 | ||
|
|
aa189a7fc6 | ||
|
|
074cbdad28 | ||
|
|
cbc0ef860b | ||
|
|
ab64ee872b | ||
|
|
a63515b8f4 | ||
|
|
4dcd6df136 | ||
|
|
cea1bbde23 | ||
|
|
2c8447853b | ||
|
|
116664285d | ||
|
|
213b18e33b | ||
|
|
299f981441 | ||
|
|
7ea827f8d3 | ||
|
|
c2af5c6a3f | ||
|
|
63812ca951 | ||
|
|
98bdfcef65 | ||
|
|
ac97ed685f | ||
|
|
c5ff9b353c | ||
|
|
04c1988665 | ||
|
|
36c14ca587 | ||
|
|
0c118bed61 | ||
|
|
6c6474291e | ||
|
|
7fa89c9ba4 | ||
|
|
d2aad3a3ca | ||
|
|
ca09b0491e | ||
|
|
2e08ae82b1 | ||
|
|
2652c73a4f | ||
|
|
a21bff1dbd | ||
|
|
14fc3dc9b3 | ||
|
|
5cb295341c | ||
|
|
b854c3b00e | ||
|
|
2d3ff6a97c | ||
|
|
c627ed4b6f | ||
|
|
70ec183fca | ||
|
|
1e45b7f50b | ||
|
|
293479a1f2 | ||
|
|
7b8962a796 | ||
|
|
852a14992c | ||
|
|
37e6a9ebc2 | ||
|
|
b3f5bf1583 | ||
|
|
a3a8c19dc2 | ||
|
|
bc94de5626 | ||
|
|
c3a64b3d6c | ||
|
|
70eed10a34 | ||
|
|
56c3983885 | ||
|
|
78eaa49cd6 | ||
|
|
2668a42f0c | ||
|
|
4a7f1116ac | ||
|
|
f12ce78b5c | ||
|
|
610009fb7f | ||
|
|
4cb075b168 | ||
|
|
cf96e6c642 | ||
|
|
dd1bd8ad10 | ||
|
|
facfa26eed | ||
|
|
0012a3ede7 | ||
|
|
b61a818a3f | ||
|
|
a2c44dedce | ||
|
|
a8ad4f784a | ||
|
|
78d69bcbf0 | ||
|
|
414361a3db | ||
|
|
1d4071d6d8 | ||
|
|
47daf1b358 | ||
|
|
7a910a8cc1 | ||
|
|
9818c7b6a4 | ||
|
|
ca9e5e8531 | ||
|
|
aafee60033 | ||
|
|
adf7c4ffb6 | ||
|
|
96965ae347 | ||
|
|
bc2ef5d726 | ||
|
|
7a539d9890 | ||
|
|
c40408b337 | ||
|
|
4e2daf117b | ||
|
|
9553afc3c2 | ||
|
|
26352c9eb4 | ||
|
|
62c167fc77 | ||
|
|
03c774eae7 | ||
|
|
53992bf0d5 | ||
|
|
ff99e5ac9a | ||
|
|
0cc318664d | ||
|
|
43c427b253 | ||
|
|
44c8d60a70 | ||
|
|
54252184ab | ||
|
|
7ae68b20e7 | ||
|
|
208234b934 | ||
|
|
1729b9f29c | ||
|
|
5d69334287 | ||
|
|
4d54fb675f | ||
|
|
e93de54eb5 | ||
|
|
43441d8291 | ||
|
|
d6dce1efe9 | ||
|
|
dca69f053a | ||
|
|
5ebbed8160 | ||
|
|
3fdb330bd9 | ||
|
|
c05dbc451a | ||
|
|
5f623e32c4 | ||
|
|
7c37c5c06f | ||
|
|
4d541ca969 | ||
|
|
e4a67183bd | ||
|
|
d25be686ee | ||
|
|
a3be239a60 | ||
|
|
709a053c7c | ||
|
|
d39c6bef4b | ||
|
|
84a8158aa2 | ||
|
|
a7c5826e05 | ||
|
|
2da39e2fbb | ||
|
|
d6e0164766 | ||
|
|
fbc85bed64 | ||
|
|
52b54fe154 | ||
|
|
f44341a8e2 | ||
|
|
9f6130cbaa | ||
|
|
24d73f5822 | ||
|
|
d3bdeaab3f | ||
|
|
b66f4b9322 | ||
|
|
9dfe5f5f07 | ||
|
|
d6fc020ba7 |
@@ -51,8 +51,14 @@ before_build:
|
|||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
- cd "%REPO_DIR%"
|
- cd "%REPO_DIR%"
|
||||||
# scan only as lupdate is prone to hang
|
# lupdate chokes when it parses headers from system inludes, especially Boost
|
||||||
- lupdate -extensions c,cpp,h,hpp,ui .
|
# it also chokes with the sources from src/app/qtlocalpeer (formerly qtsingleapplication)
|
||||||
|
# Workaround: temporarily rename them to run lupdate with the .pro file
|
||||||
|
- RENAME conf.pri conf.pri.temp
|
||||||
|
- RENAME src\app\qtlocalpeer qtlocalpeer.temp
|
||||||
|
- lupdate qbittorrent.pro
|
||||||
|
- RENAME conf.pri.temp conf.pri
|
||||||
|
- RENAME src\app\qtlocalpeer.temp qtlocalpeer
|
||||||
- qmake qbittorrent.pro && cd src && qmake src.pro
|
- qmake qbittorrent.pro && cd src && qmake src.pro
|
||||||
- jom -j2 -f Makefile.Release
|
- jom -j2 -f Makefile.Release
|
||||||
|
|
||||||
|
|||||||
82
.clang-tidy
Normal file
82
.clang-tidy
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
Checks: >
|
||||||
|
bugprone-*,
|
||||||
|
cert-*,
|
||||||
|
concurrency-*,
|
||||||
|
cppcoreguidelines-*,
|
||||||
|
misc-*,
|
||||||
|
modernize-*,
|
||||||
|
performance-*,
|
||||||
|
portability-*,
|
||||||
|
readability-*,
|
||||||
|
-# not applicable at all,
|
||||||
|
-bugprone-easily-swappable-parameters,
|
||||||
|
-bugprone-implicit-widening-of-multiplication-result,
|
||||||
|
-bugprone-macro-parentheses,
|
||||||
|
-cppcoreguidelines-avoid-c-arrays,
|
||||||
|
-cppcoreguidelines-avoid-magic-numbers,
|
||||||
|
-cppcoreguidelines-avoid-non-const-global-variables,
|
||||||
|
-cppcoreguidelines-macro-usage,
|
||||||
|
-cppcoreguidelines-non-private-member-variables-in-classes,
|
||||||
|
-cppcoreguidelines-owning-memory,
|
||||||
|
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
|
||||||
|
-cppcoreguidelines-pro-bounds-constant-array-index,
|
||||||
|
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
|
||||||
|
-cppcoreguidelines-pro-type-const-cast,
|
||||||
|
-cppcoreguidelines-pro-type-reinterpret-cast,
|
||||||
|
-cppcoreguidelines-pro-type-union-access,
|
||||||
|
-cppcoreguidelines-pro-type-vararg,
|
||||||
|
-cppcoreguidelines-special-member-functions,
|
||||||
|
-cppcoreguidelines-virtual-class-destructor,
|
||||||
|
-misc-no-recursion,
|
||||||
|
-misc-non-private-member-variables-in-classes,
|
||||||
|
-misc-unused-parameters,
|
||||||
|
-modernize-avoid-c-arrays,
|
||||||
|
-modernize-pass-by-value,
|
||||||
|
-modernize-use-auto,
|
||||||
|
-modernize-use-nodiscard,
|
||||||
|
-modernize-use-trailing-return-type,
|
||||||
|
-modernize-use-using,
|
||||||
|
-readability-function-cognitive-complexity,
|
||||||
|
-readability-function-size,
|
||||||
|
-readability-identifier-length,
|
||||||
|
-readability-implicit-bool-conversion,
|
||||||
|
-readability-isolate-declaration,
|
||||||
|
-readability-magic-numbers,
|
||||||
|
-readability-named-parameter,
|
||||||
|
-readability-redundant-access-specifiers,
|
||||||
|
-readability-simplify-boolean-expr,
|
||||||
|
-readability-uppercase-literal-suffix,
|
||||||
|
-# only sometimes useful,
|
||||||
|
-bugprone-narrowing-conversions,
|
||||||
|
-cert-dcl58-cpp,
|
||||||
|
-cert-err33-c,
|
||||||
|
-cert-err58-cpp,
|
||||||
|
-clang-analyzer-core.CallAndMessage,
|
||||||
|
-clang-analyzer-cplusplus.NewDelete,
|
||||||
|
-clang-analyzer-cplusplus.NewDeleteLeaks,
|
||||||
|
-concurrency-mt-unsafe,
|
||||||
|
-cppcoreguidelines-init-variables,
|
||||||
|
-cppcoreguidelines-narrowing-conversions,
|
||||||
|
-cppcoreguidelines-prefer-member-initializer,
|
||||||
|
-cppcoreguidelines-pro-type-static-cast-downcast,
|
||||||
|
-misc-definitions-in-headers,
|
||||||
|
-modernize-concat-nested-namespaces,
|
||||||
|
-modernize-loop-convert,
|
||||||
|
-modernize-raw-string-literal,
|
||||||
|
-modernize-unary-static-assert,
|
||||||
|
-performance-no-automatic-move,
|
||||||
|
-readability-convert-member-functions-to-static,
|
||||||
|
-readability-else-after-return,
|
||||||
|
-readability-redundant-declaration,
|
||||||
|
-# obsoleted,
|
||||||
|
-cert-dcl21-cpp
|
||||||
|
|
||||||
|
CheckOptions:
|
||||||
|
- { key: cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors, value: true }
|
||||||
|
- { key: modernize-use-override.IgnoreDestructors, value: true }
|
||||||
|
- { key: performance-for-range-copy.AllowedTypes, value: "QJsonValue" }
|
||||||
|
- { key: performance-for-range-copy.WarnOnAllAutoCopies, value: true }
|
||||||
|
- { key: readability-braces-around-statements.ShortStatementLines, value: 3 }
|
||||||
|
|
||||||
|
HeaderFilterRegex: ".+/src/.*\\.h"
|
||||||
|
WarningsAsErrors: "*"
|
||||||
8
.gitattributes
vendored
8
.gitattributes
vendored
@@ -1,7 +1,7 @@
|
|||||||
core.eol=lf
|
core.eol=lf
|
||||||
* text eol=lf
|
* text eol=lf
|
||||||
*.zip binary
|
|
||||||
*.png binary
|
|
||||||
*.ico binary
|
|
||||||
*.qm binary
|
|
||||||
*.icns binary
|
*.icns binary
|
||||||
|
*.ico binary
|
||||||
|
*.png binary
|
||||||
|
*.qm binary
|
||||||
|
*.zip binary
|
||||||
|
|||||||
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -14,7 +14,7 @@ body:
|
|||||||
#### Prerequisites before submitting an issue!
|
#### Prerequisites before submitting an issue!
|
||||||
- Read the issue reporting section in the **[contributing guidelines](https://github.com/qbittorrent/qBittorrent/blob/master/CONTRIBUTING.md)**, to know how to submit a good bug report with the required information.
|
- Read the issue reporting section in the **[contributing guidelines](https://github.com/qbittorrent/qBittorrent/blob/master/CONTRIBUTING.md)**, to know how to submit a good bug report with the required information.
|
||||||
- Verify that the issue is not fixed and is reproducible in the **[latest official qBittorrent version](https://www.qbittorrent.org/download.php).**
|
- Verify that the issue is not fixed and is reproducible in the **[latest official qBittorrent version](https://www.qbittorrent.org/download.php).**
|
||||||
- (Optional, but recommended) Verify that the issue is not fixed and is reproducible in the latest CI (**[macOS](https://github.com/qbittorrent/qBittorrent/actions/workflows/ci_macos.yaml?query=branch%3Amaster+event%3Apush)** / **[Ubuntu](https://github.com/qbittorrent/qBittorrent/actions/workflows/ci_ubuntu.yaml?query=branch%3Amaster+event%3Apush)** / **[Windows](https://github.com/qbittorrent/qBittorrent/actions/workflows/ci_windows.yaml?query=branch%3Amaster+event%3Apush)**) builds.
|
- (Optional, but recommended) Verify that the issue is not fixed and is reproducible in the latest CI (currently only on **[Windows](https://github.com/qbittorrent/qBittorrent/actions/workflows/ci_windows.yaml?query=branch%3Amaster+event%3Apush)**) builds.
|
||||||
- Check the **[frequent/common issues list](https://github.com/qbittorrent/qBittorrent/projects/2)** and perform a **[search of the issue tracker (including closed ones)](https://github.com/qbittorrent/qBittorrent/issues)** to avoid posting a duplicate.
|
- Check the **[frequent/common issues list](https://github.com/qbittorrent/qBittorrent/projects/2)** and perform a **[search of the issue tracker (including closed ones)](https://github.com/qbittorrent/qBittorrent/issues)** to avoid posting a duplicate.
|
||||||
- Make sure this is not a support request or question, both of which are better suited for either the **[discussions section](https://github.com/qbittorrent/qBittorrent/discussions)**, **[forum](https://qbforums.shiki.hu/)**, or **[subreddit](https://www.reddit.com/r/qBittorrent/)**.
|
- Make sure this is not a support request or question, both of which are better suited for either the **[discussions section](https://github.com/qbittorrent/qBittorrent/discussions)**, **[forum](https://qbforums.shiki.hu/)**, or **[subreddit](https://www.reddit.com/r/qBittorrent/)**.
|
||||||
- Verify that the **[wiki](https://github.com/qbittorrent/qBittorrent/wiki)** did not contain a suitable solution either.
|
- Verify that the **[wiki](https://github.com/qbittorrent/qBittorrent/wiki)** did not contain a suitable solution either.
|
||||||
|
|||||||
14
.github/workflows/ci_file_health.yaml
vendored
14
.github/workflows/ci_file_health.yaml
vendored
@@ -2,16 +2,24 @@ name: CI - File health
|
|||||||
|
|
||||||
on: [pull_request, push]
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: ${{ github.head_ref != '' }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
ci:
|
ci:
|
||||||
name: Check
|
name: Check
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Install tools
|
- name: Install tools
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: "*"
|
||||||
|
|
||||||
- name: Check files
|
- name: Check files
|
||||||
uses: pre-commit/action@v2.0.3
|
uses: pre-commit/action@v3.0.0
|
||||||
|
|||||||
43
.github/workflows/ci_macos.yaml
vendored
43
.github/workflows/ci_macos.yaml
vendored
@@ -1,6 +1,14 @@
|
|||||||
name: CI - macOS
|
name: CI - macOS
|
||||||
|
|
||||||
on: [pull_request, push]
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
actions: write
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: ${{ github.head_ref != '' }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
ci:
|
ci:
|
||||||
name: Build
|
name: Build
|
||||||
@@ -9,12 +17,12 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
libt_version: ["2.0.5", "1.2.15"]
|
libt_version: ["2.0.9", "1.2.19"]
|
||||||
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
||||||
qt_version: ["5.15.2", "6.2.0"]
|
qt_version: ["5.15.2", "6.5.0"]
|
||||||
exclude:
|
exclude:
|
||||||
- libt_version: "1.2.15"
|
- libt_version: "1.2.19"
|
||||||
qt_version: "6.2.0"
|
qt_version: "6.5.0"
|
||||||
|
|
||||||
env:
|
env:
|
||||||
boost_path: "${{ github.workspace }}/../boost"
|
boost_path: "${{ github.workspace }}/../boost"
|
||||||
@@ -22,10 +30,13 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
|
export \
|
||||||
|
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 \
|
||||||
|
HOMEBREW_NO_INSTALL_CLEANUP=1
|
||||||
brew update > /dev/null
|
brew update > /dev/null
|
||||||
brew install \
|
brew install \
|
||||||
cmake ninja \
|
cmake ninja \
|
||||||
@@ -41,7 +52,7 @@ jobs:
|
|||||||
curl \
|
curl \
|
||||||
-L \
|
-L \
|
||||||
-o "${{ runner.temp }}/boost.tar.bz2" \
|
-o "${{ runner.temp }}/boost.tar.bz2" \
|
||||||
"https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.bz2"
|
"https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_0.tar.bz2"
|
||||||
tar -xf "${{ runner.temp }}/boost.tar.bz2" -C "${{ github.workspace }}/.."
|
tar -xf "${{ runner.temp }}/boost.tar.bz2" -C "${{ github.workspace }}/.."
|
||||||
mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}"
|
mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}"
|
||||||
|
|
||||||
@@ -49,6 +60,8 @@ jobs:
|
|||||||
uses: jurplel/install-qt-action@v3
|
uses: jurplel/install-qt-action@v3
|
||||||
with:
|
with:
|
||||||
version: ${{ matrix.qt_version }}
|
version: ${{ matrix.qt_version }}
|
||||||
|
archives: qtbase qtdeclarative qtsvg qttools
|
||||||
|
# Not sure why Qt made a hard dependency on qtdeclarative, try removing it when Qt > 6.4.0
|
||||||
|
|
||||||
- name: Install libtorrent
|
- name: Install libtorrent
|
||||||
run: |
|
run: |
|
||||||
@@ -71,9 +84,10 @@ jobs:
|
|||||||
sudo cmake --install build
|
sudo cmake --install build
|
||||||
|
|
||||||
- name: Build qBittorrent (Qt5)
|
- name: Build qBittorrent (Qt5)
|
||||||
if: ${{ startsWith(matrix.qt_version, 5) }}
|
if: startsWith(matrix.qt_version, 5)
|
||||||
run: |
|
run: |
|
||||||
lupdate -extensions c,cpp,h,hpp,ui ./
|
CXXFLAGS="$CXXFLAGS -Werror -Wno-error=deprecated-declarations" \
|
||||||
|
LDFLAGS="$LDFLAGS -gz" \
|
||||||
cmake \
|
cmake \
|
||||||
-B build \
|
-B build \
|
||||||
-G "Ninja" \
|
-G "Ninja" \
|
||||||
@@ -81,14 +95,18 @@ jobs:
|
|||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||||
-DBOOST_ROOT="${{ env.boost_path }}" \
|
-DBOOST_ROOT="${{ env.boost_path }}" \
|
||||||
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}" \
|
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}" \
|
||||||
|
-DTESTING=ON \
|
||||||
-DVERBOSE_CONFIGURE=ON \
|
-DVERBOSE_CONFIGURE=ON \
|
||||||
-D${{ matrix.qbt_gui }}
|
-D${{ matrix.qbt_gui }}
|
||||||
|
cmake --build build --target qbt_update_translations
|
||||||
cmake --build build
|
cmake --build build
|
||||||
|
cmake --build build --target check
|
||||||
|
|
||||||
- name: Build qBittorrent (Qt6)
|
- name: Build qBittorrent (Qt6)
|
||||||
if: ${{ startsWith(matrix.qt_version, 6) }}
|
if: startsWith(matrix.qt_version, 6)
|
||||||
run: |
|
run: |
|
||||||
lupdate -extensions c,cpp,h,hpp,ui ./
|
CXXFLAGS="$CXXFLAGS -Wno-gnu-zero-variadic-macro-arguments -Werror -Wno-error=deprecated-declarations" \
|
||||||
|
LDFLAGS="$LDFLAGS -gz" \
|
||||||
cmake \
|
cmake \
|
||||||
-B build \
|
-B build \
|
||||||
-G "Ninja" \
|
-G "Ninja" \
|
||||||
@@ -97,9 +115,12 @@ jobs:
|
|||||||
-DBOOST_ROOT="${{ env.boost_path }}" \
|
-DBOOST_ROOT="${{ env.boost_path }}" \
|
||||||
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}" \
|
-DOPENSSL_ROOT_DIR="${{ env.openssl_root }}" \
|
||||||
-DQT6=ON \
|
-DQT6=ON \
|
||||||
|
-DTESTING=ON \
|
||||||
-DVERBOSE_CONFIGURE=ON \
|
-DVERBOSE_CONFIGURE=ON \
|
||||||
-D${{ matrix.qbt_gui }}
|
-D${{ matrix.qbt_gui }}
|
||||||
|
cmake --build build --target qbt_update_translations
|
||||||
cmake --build build
|
cmake --build build
|
||||||
|
cmake --build build --target check
|
||||||
|
|
||||||
- name: Prepare build artifacts
|
- name: Prepare build artifacts
|
||||||
run: |
|
run: |
|
||||||
@@ -110,7 +131,7 @@ jobs:
|
|||||||
cp libtorrent/build/compile_commands.json upload/cmake/libtorrent
|
cp libtorrent/build/compile_commands.json upload/cmake/libtorrent
|
||||||
|
|
||||||
- name: Upload build artifacts
|
- name: Upload build artifacts
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: build-info_macOS_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }}
|
name: build-info_macOS_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }}
|
||||||
path: upload
|
path: upload
|
||||||
|
|||||||
80
.github/workflows/ci_ubuntu.yaml
vendored
80
.github/workflows/ci_ubuntu.yaml
vendored
@@ -1,31 +1,40 @@
|
|||||||
name: CI - Ubuntu
|
name: CI - Ubuntu
|
||||||
|
|
||||||
on: [pull_request, push]
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
actions: write
|
||||||
|
security-events: write
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: ${{ github.head_ref != '' }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
ci:
|
ci:
|
||||||
name: Build
|
name: Build
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
libt_version: ["2.0.5", "1.2.15"]
|
libt_version: ["2.0.9", "1.2.19"]
|
||||||
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
qbt_gui: ["GUI=ON", "GUI=OFF"]
|
||||||
qt_version: ["5.15.2", "6.2.0"]
|
qt_version: ["5.15.2", "6.2.0"]
|
||||||
exclude:
|
exclude:
|
||||||
- libt_version: "1.2.15"
|
- libt_version: "1.2.19"
|
||||||
qt_version: "6.2.0"
|
qt_version: "6.2.0"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install \
|
sudo apt install \
|
||||||
build-essential cmake ninja-build pkg-config \
|
build-essential cmake ninja-build pkg-config \
|
||||||
libboost-dev libssl-dev zlib1g-dev
|
libboost-dev libssl-dev libxkbcommon-x11-dev zlib1g-dev
|
||||||
|
|
||||||
- name: Setup ccache
|
- name: Setup ccache
|
||||||
uses: Chocobo1/setup-ccache-action@v1
|
uses: Chocobo1/setup-ccache-action@v1
|
||||||
@@ -38,6 +47,7 @@ jobs:
|
|||||||
uses: jurplel/install-qt-action@v3
|
uses: jurplel/install-qt-action@v3
|
||||||
with:
|
with:
|
||||||
version: ${{ matrix.qt_version }}
|
version: ${{ matrix.qt_version }}
|
||||||
|
archives: icu qtbase qtsvg qttools
|
||||||
|
|
||||||
- name: Install libtorrent
|
- name: Install libtorrent
|
||||||
run: |
|
run: |
|
||||||
@@ -50,31 +60,45 @@ jobs:
|
|||||||
cmake \
|
cmake \
|
||||||
-B build \
|
-B build \
|
||||||
-G "Ninja" \
|
-G "Ninja" \
|
||||||
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||||
-Ddeprecated-functions=OFF
|
-Ddeprecated-functions=OFF
|
||||||
cmake --build build
|
cmake --build build
|
||||||
sudo cmake --install build
|
sudo cmake --install build
|
||||||
|
|
||||||
|
# to avoid scanning 3rdparty codebases, initialize it just before building qbt
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v2
|
||||||
|
if: startsWith(matrix.libt_version, 2) && (matrix.qbt_gui == 'GUI=ON') && startsWith(matrix.qt_version, 6)
|
||||||
|
with:
|
||||||
|
config-file: ./.github/workflows/helper/codeql/cpp.yaml
|
||||||
|
languages: cpp
|
||||||
|
|
||||||
- name: Build qBittorrent (Qt5)
|
- name: Build qBittorrent (Qt5)
|
||||||
if: ${{ startsWith(matrix.qt_version, 5) }}
|
if: startsWith(matrix.qt_version, 5)
|
||||||
run: |
|
run: |
|
||||||
lupdate -extensions c,cpp,h,hpp,ui ./
|
CXXFLAGS="$CXXFLAGS -Werror -Wno-error=deprecated-declarations" \
|
||||||
|
LDFLAGS="$LDFLAGS -gz" \
|
||||||
cmake \
|
cmake \
|
||||||
-B build \
|
-B build \
|
||||||
-G "Ninja" \
|
-G "Ninja" \
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||||
-DCMAKE_INSTALL_PREFIX="/usr" \
|
-DCMAKE_INSTALL_PREFIX="/usr" \
|
||||||
|
-DTESTING=ON \
|
||||||
-DVERBOSE_CONFIGURE=ON \
|
-DVERBOSE_CONFIGURE=ON \
|
||||||
-D${{ matrix.qbt_gui }}
|
-D${{ matrix.qbt_gui }}
|
||||||
|
cmake --build build --target qbt_update_translations
|
||||||
cmake --build build
|
cmake --build build
|
||||||
|
cmake --build build --target check
|
||||||
DESTDIR="qbittorrent" cmake --install build
|
DESTDIR="qbittorrent" cmake --install build
|
||||||
|
|
||||||
- name: Build qBittorrent (Qt6)
|
- name: Build qBittorrent (Qt6)
|
||||||
if: ${{ startsWith(matrix.qt_version, 6) }}
|
if: startsWith(matrix.qt_version, 6)
|
||||||
run: |
|
run: |
|
||||||
lupdate -extensions c,cpp,h,hpp,ui ./
|
CXXFLAGS="$CXXFLAGS -Werror" \
|
||||||
|
LDFLAGS="$LDFLAGS -gz" \
|
||||||
cmake \
|
cmake \
|
||||||
-B build \
|
-B build \
|
||||||
-G "Ninja" \
|
-G "Ninja" \
|
||||||
@@ -82,11 +106,18 @@ jobs:
|
|||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
||||||
-DCMAKE_INSTALL_PREFIX="/usr" \
|
-DCMAKE_INSTALL_PREFIX="/usr" \
|
||||||
-DQT6=ON \
|
-DQT6=ON \
|
||||||
|
-DTESTING=ON \
|
||||||
-DVERBOSE_CONFIGURE=ON \
|
-DVERBOSE_CONFIGURE=ON \
|
||||||
-D${{ matrix.qbt_gui }}
|
-D${{ matrix.qbt_gui }}
|
||||||
|
cmake --build build --target qbt_update_translations
|
||||||
cmake --build build
|
cmake --build build
|
||||||
|
cmake --build build --target check
|
||||||
DESTDIR="qbittorrent" cmake --install build
|
DESTDIR="qbittorrent" cmake --install build
|
||||||
|
|
||||||
|
- name: Run CodeQL analysis
|
||||||
|
uses: github/codeql-action/analyze@v2
|
||||||
|
if: startsWith(matrix.libt_version, 2) && (matrix.qbt_gui == 'GUI=ON') && startsWith(matrix.qt_version, 6)
|
||||||
|
|
||||||
- name: Prepare build artifacts
|
- name: Prepare build artifacts
|
||||||
run: |
|
run: |
|
||||||
mkdir upload
|
mkdir upload
|
||||||
@@ -95,8 +126,35 @@ jobs:
|
|||||||
mkdir upload/cmake/libtorrent
|
mkdir upload/cmake/libtorrent
|
||||||
cp libtorrent/build/compile_commands.json upload/cmake/libtorrent
|
cp libtorrent/build/compile_commands.json upload/cmake/libtorrent
|
||||||
|
|
||||||
|
- name: 'AppImage: Prepare env'
|
||||||
|
run: |
|
||||||
|
sudo apt install libfuse2
|
||||||
|
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
||||||
|
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
|
||||||
|
wget https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage
|
||||||
|
chmod +x linuxdeploy-x86_64.AppImage
|
||||||
|
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
|
||||||
|
chmod +x linuxdeploy-plugin-appimage-x86_64.AppImage
|
||||||
|
|
||||||
|
- name: 'AppImage: Prepare nox'
|
||||||
|
if: matrix.qbt_gui == 'GUI=OFF'
|
||||||
|
run: |
|
||||||
|
mkdir -p qbittorrent/usr/share/icons/hicolor/scalable/apps/
|
||||||
|
mkdir -p qbittorrent/usr/share/applications/
|
||||||
|
cp dist/unix/menuicons/scalable/apps/qbittorrent.svg qbittorrent/usr/share/icons/hicolor/scalable/apps/qbittorrent.svg
|
||||||
|
cp .github/workflows/helper/appimage/org.qbittorrent.qBittorrent.desktop qbittorrent/usr/share/applications/org.qbittorrent.qBittorrent.desktop
|
||||||
|
|
||||||
|
- name: 'AppImage: Package'
|
||||||
|
run: |
|
||||||
|
./linuxdeploy-x86_64.AppImage --appdir=qbittorrent --plugin qt
|
||||||
|
rm qbittorrent/apprun-hooks/*
|
||||||
|
cp .github/workflows/helper/appimage/export_vars.sh qbittorrent/apprun-hooks/export_vars.sh
|
||||||
|
NO_APPSTREAM=1 \
|
||||||
|
OUTPUT=upload/qbittorrent-CI_Ubuntu_x86_64.AppImage \
|
||||||
|
./linuxdeploy-x86_64.AppImage --appdir=qbittorrent --output appimage
|
||||||
|
|
||||||
- name: Upload build artifacts
|
- name: Upload build artifacts
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: build-info_ubuntu-20.04-x64_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }}
|
name: qBittorrent-CI_Ubuntu-x64_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }}
|
||||||
path: upload
|
path: upload
|
||||||
|
|||||||
20
.github/workflows/ci_webui.yaml
vendored
20
.github/workflows/ci_webui.yaml
vendored
@@ -2,6 +2,13 @@ name: CI - WebUI
|
|||||||
|
|
||||||
on: [pull_request, push]
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
security-events: write
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: ${{ github.head_ref != '' }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
ci:
|
ci:
|
||||||
name: Check
|
name: Check
|
||||||
@@ -13,10 +20,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup nodejs
|
- name: Setup nodejs
|
||||||
uses: actions/setup-node@v2
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: 'lts/*'
|
node-version: 'lts/*'
|
||||||
|
|
||||||
@@ -30,3 +37,12 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
npm run format
|
npm run format
|
||||||
git diff --exit-code
|
git diff --exit-code
|
||||||
|
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v2
|
||||||
|
with:
|
||||||
|
config-file: ./.github/workflows/helper/codeql/js.yaml
|
||||||
|
languages: javascript
|
||||||
|
|
||||||
|
- name: Run CodeQL analysis
|
||||||
|
uses: github/codeql-action/analyze@v2
|
||||||
|
|||||||
58
.github/workflows/ci_windows.yaml
vendored
58
.github/workflows/ci_windows.yaml
vendored
@@ -1,6 +1,14 @@
|
|||||||
name: CI - Windows
|
name: CI - Windows
|
||||||
|
|
||||||
on: [pull_request, push]
|
on: [pull_request, push]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
actions: write
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: ${{ github.head_ref != '' }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
ci:
|
ci:
|
||||||
name: Build
|
name: Build
|
||||||
@@ -9,7 +17,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
libt_version: ["2.0.5", "1.2.15"]
|
libt_version: ["2.0.9", "1.2.19"]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
boost_path: "${{ github.workspace }}/../boost"
|
boost_path: "${{ github.workspace }}/../boost"
|
||||||
@@ -17,7 +25,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup devcmd
|
- name: Setup devcmd
|
||||||
uses: ilammy/msvc-dev-cmd@v1
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
@@ -29,11 +37,10 @@ jobs:
|
|||||||
# use the preinstalled vcpkg from image
|
# use the preinstalled vcpkg from image
|
||||||
# https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md#package-management
|
# https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md#package-management
|
||||||
- name: Setup vcpkg
|
- name: Setup vcpkg
|
||||||
uses: lukka/run-vcpkg@v7
|
uses: lukka/run-vcpkg@v10
|
||||||
with:
|
with:
|
||||||
vcpkgDirectory: C:/vcpkg
|
vcpkgDirectory: C:/vcpkg
|
||||||
doNotUpdateVcpkg: true # the preinstalled vcpkg is updated regularly
|
doNotUpdateVcpkg: true # the preinstalled vcpkg is updated regularly
|
||||||
setupOnly: true
|
|
||||||
|
|
||||||
- name: Install dependencies from vcpkg
|
- name: Install dependencies from vcpkg
|
||||||
run: |
|
run: |
|
||||||
@@ -63,7 +70,7 @@ jobs:
|
|||||||
- name: Install boost
|
- name: Install boost
|
||||||
run: |
|
run: |
|
||||||
aria2c `
|
aria2c `
|
||||||
"https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.7z" `
|
"https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_0.7z" `
|
||||||
-d "${{ runner.temp }}" `
|
-d "${{ runner.temp }}" `
|
||||||
-o "boost.7z"
|
-o "boost.7z"
|
||||||
7z x "${{ runner.temp }}/boost.7z" -o"${{ github.workspace }}/.."
|
7z x "${{ runner.temp }}/boost.7z" -o"${{ github.workspace }}/.."
|
||||||
@@ -72,7 +79,8 @@ jobs:
|
|||||||
- name: Install Qt
|
- name: Install Qt
|
||||||
uses: jurplel/install-qt-action@v3
|
uses: jurplel/install-qt-action@v3
|
||||||
with:
|
with:
|
||||||
version: "5.15.2"
|
version: "6.5.0"
|
||||||
|
archives: qtbase qtsvg qttools
|
||||||
|
|
||||||
- name: Install libtorrent
|
- name: Install libtorrent
|
||||||
run: |
|
run: |
|
||||||
@@ -86,6 +94,7 @@ jobs:
|
|||||||
-B build `
|
-B build `
|
||||||
-G "Ninja" `
|
-G "Ninja" `
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo `
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo `
|
||||||
|
-DCMAKE_CXX_FLAGS=/guard:cf `
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON `
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON `
|
||||||
-DCMAKE_INSTALL_PREFIX="${{ env.libtorrent_path }}" `
|
-DCMAKE_INSTALL_PREFIX="${{ env.libtorrent_path }}" `
|
||||||
-DCMAKE_TOOLCHAIN_FILE="${{ env.RUNVCPKG_VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" `
|
-DCMAKE_TOOLCHAIN_FILE="${{ env.RUNVCPKG_VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" `
|
||||||
@@ -99,20 +108,24 @@ jobs:
|
|||||||
|
|
||||||
- name: Build qBittorrent
|
- name: Build qBittorrent
|
||||||
run: |
|
run: |
|
||||||
lupdate -extensions c,cpp,h,hpp,ui .
|
|
||||||
cmake `
|
cmake `
|
||||||
-B build `
|
-B build `
|
||||||
-G "Ninja" `
|
-G "Ninja" `
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo `
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo `
|
||||||
|
-DCMAKE_CXX_FLAGS="/WX" `
|
||||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON `
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON `
|
||||||
-DCMAKE_TOOLCHAIN_FILE="${{ env.RUNVCPKG_VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" `
|
-DCMAKE_TOOLCHAIN_FILE="${{ env.RUNVCPKG_VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" `
|
||||||
-DBOOST_ROOT="${{ env.boost_path }}" `
|
-DBOOST_ROOT="${{ env.boost_path }}" `
|
||||||
-DLibtorrentRasterbar_DIR="${{ env.libtorrent_path }}/lib/cmake/LibtorrentRasterbar" `
|
-DLibtorrentRasterbar_DIR="${{ env.libtorrent_path }}/lib/cmake/LibtorrentRasterbar" `
|
||||||
-DMSVC_RUNTIME_DYNAMIC=OFF `
|
-DMSVC_RUNTIME_DYNAMIC=OFF `
|
||||||
|
-DQT6=ON `
|
||||||
|
-DTESTING=ON `
|
||||||
-DVCPKG_TARGET_TRIPLET=x64-windows-static-release `
|
-DVCPKG_TARGET_TRIPLET=x64-windows-static-release `
|
||||||
-DVERBOSE_CONFIGURE=ON `
|
-DVERBOSE_CONFIGURE=ON `
|
||||||
--graphviz=build/target_graph.dot
|
--graphviz=build/target_graph.dot
|
||||||
|
cmake --build build --target qbt_update_translations
|
||||||
cmake --build build
|
cmake --build build
|
||||||
|
cmake --build build --target check
|
||||||
|
|
||||||
- name: Prepare build artifacts
|
- name: Prepare build artifacts
|
||||||
run: |
|
run: |
|
||||||
@@ -121,25 +134,26 @@ jobs:
|
|||||||
copy build/qbittorrent.pdb upload
|
copy build/qbittorrent.pdb upload
|
||||||
copy dist/windows/qt.conf upload
|
copy dist/windows/qt.conf upload
|
||||||
# runtimes
|
# runtimes
|
||||||
copy "${{ env.Qt5_DIR }}/bin/Qt5Core.dll" upload
|
copy "${{ env.Qt6_DIR }}/bin/Qt6Core.dll" upload
|
||||||
copy "${{ env.Qt5_DIR }}/bin/Qt5Gui.dll" upload
|
copy "${{ env.Qt6_DIR }}/bin/Qt6Gui.dll" upload
|
||||||
copy "${{ env.Qt5_DIR }}/bin/Qt5Network.dll" upload
|
copy "${{ env.Qt6_DIR }}/bin/Qt6Network.dll" upload
|
||||||
copy "${{ env.Qt5_DIR }}/bin/Qt5Sql.dll" upload
|
copy "${{ env.Qt6_DIR }}/bin/Qt6Sql.dll" upload
|
||||||
copy "${{ env.Qt5_DIR }}/bin/Qt5Svg.dll" upload
|
copy "${{ env.Qt6_DIR }}/bin/Qt6Svg.dll" upload
|
||||||
copy "${{ env.Qt5_DIR }}/bin/Qt5Widgets.dll" upload
|
copy "${{ env.Qt6_DIR }}/bin/Qt6Widgets.dll" upload
|
||||||
copy "${{ env.Qt5_DIR }}/bin/Qt5WinExtras.dll" upload
|
copy "${{ env.Qt6_DIR }}/bin/Qt6Xml.dll" upload
|
||||||
copy "${{ env.Qt5_DIR }}/bin/Qt5Xml.dll" upload
|
|
||||||
mkdir upload/plugins/iconengines
|
mkdir upload/plugins/iconengines
|
||||||
copy "${{ env.Qt5_DIR }}/plugins/iconengines/qsvgicon.dll" upload/plugins/iconengines
|
copy "${{ env.Qt6_DIR }}/plugins/iconengines/qsvgicon.dll" upload/plugins/iconengines
|
||||||
mkdir upload/plugins/imageformats
|
mkdir upload/plugins/imageformats
|
||||||
copy "${{ env.Qt5_DIR }}/plugins/imageformats/qico.dll" upload/plugins/imageformats
|
copy "${{ env.Qt6_DIR }}/plugins/imageformats/qico.dll" upload/plugins/imageformats
|
||||||
copy "${{ env.Qt5_DIR }}/plugins/imageformats/qsvg.dll" upload/plugins/imageformats
|
copy "${{ env.Qt6_DIR }}/plugins/imageformats/qsvg.dll" upload/plugins/imageformats
|
||||||
mkdir upload/plugins/platforms
|
mkdir upload/plugins/platforms
|
||||||
copy "${{ env.Qt5_DIR }}/plugins/platforms/qwindows.dll" upload/plugins/platforms
|
copy "${{ env.Qt6_DIR }}/plugins/platforms/qwindows.dll" upload/plugins/platforms
|
||||||
mkdir upload/plugins/sqldrivers
|
mkdir upload/plugins/sqldrivers
|
||||||
copy "${{ env.Qt5_DIR }}/plugins/sqldrivers/qsqlite.dll" upload/plugins/sqldrivers
|
copy "${{ env.Qt6_DIR }}/plugins/sqldrivers/qsqlite.dll" upload/plugins/sqldrivers
|
||||||
mkdir upload/plugins/styles
|
mkdir upload/plugins/styles
|
||||||
copy "${{ env.Qt5_DIR }}/plugins/styles/qwindowsvistastyle.dll" upload/plugins/styles
|
copy "${{ env.Qt6_DIR }}/plugins/styles/qwindowsvistastyle.dll" upload/plugins/styles
|
||||||
|
mkdir upload/plugins/tls
|
||||||
|
copy "${{ env.Qt6_DIR }}/plugins/tls/qschannelbackend.dll" upload/plugins/tls
|
||||||
# cmake additionals
|
# cmake additionals
|
||||||
mkdir upload/cmake
|
mkdir upload/cmake
|
||||||
copy build/compile_commands.json upload/cmake
|
copy build/compile_commands.json upload/cmake
|
||||||
@@ -148,7 +162,7 @@ jobs:
|
|||||||
copy libtorrent/build/compile_commands.json upload/cmake/libtorrent
|
copy libtorrent/build/compile_commands.json upload/cmake/libtorrent
|
||||||
|
|
||||||
- name: Upload build artifacts
|
- name: Upload build artifacts
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: qBittorrent-CI_Windows-x64_libtorrent-${{ matrix.libt_version }}
|
name: qBittorrent-CI_Windows-x64_libtorrent-${{ matrix.libt_version }}
|
||||||
path: upload
|
path: upload
|
||||||
|
|||||||
@@ -5,13 +5,16 @@ on:
|
|||||||
- cron: '0 0 1 * *' # Monthly (1st day of month at midnight)
|
- cron: '0 0 1 * *' # Monthly (1st day of month at midnight)
|
||||||
workflow_dispatch: # Mainly for testing. Don't forget the Coverity usage limits.
|
workflow_dispatch: # Mainly for testing. Don't forget the Coverity usage limits.
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
coverity_scan:
|
coverity_scan:
|
||||||
name: Scan
|
name: Scan
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
@@ -23,12 +26,13 @@ jobs:
|
|||||||
- name: Install Qt
|
- name: Install Qt
|
||||||
uses: jurplel/install-qt-action@v3
|
uses: jurplel/install-qt-action@v3
|
||||||
with:
|
with:
|
||||||
version: "5.15.2"
|
version: "6.5.0"
|
||||||
|
archives: icu qtbase qtsvg qttools
|
||||||
|
|
||||||
- name: Install libtorrent
|
- name: Install libtorrent
|
||||||
run: |
|
run: |
|
||||||
git clone \
|
git clone \
|
||||||
--branch "v2.0.5" \
|
--branch "v2.0.9" \
|
||||||
--depth 1 \
|
--depth 1 \
|
||||||
--recurse-submodules \
|
--recurse-submodules \
|
||||||
https://github.com/arvidn/libtorrent.git
|
https://github.com/arvidn/libtorrent.git
|
||||||
@@ -58,6 +62,7 @@ jobs:
|
|||||||
-G "Ninja" \
|
-G "Ninja" \
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
-DGUI=ON \
|
-DGUI=ON \
|
||||||
|
-DQT6=ON \
|
||||||
-DVERBOSE_CONFIGURE=ON
|
-DVERBOSE_CONFIGURE=ON
|
||||||
export PATH="$(pwd)/coverity_tool/bin:$PATH"
|
export PATH="$(pwd)/coverity_tool/bin:$PATH"
|
||||||
cov-build --dir cov-int cmake --build build
|
cov-build --dir cov-int cmake --build build
|
||||||
13
.github/workflows/helper/appimage/export_vars.sh
vendored
Executable file
13
.github/workflows/helper/appimage/export_vars.sh
vendored
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# this file is called from AppRun so 'root_dir' will point to where AppRun is
|
||||||
|
root_dir="$(readlink -f "$(dirname "$0")")"
|
||||||
|
|
||||||
|
# Insert the default values because after the test we prepend our path
|
||||||
|
# and it will create problems with DEs (eg KDE) that don't set the variable
|
||||||
|
# and rely on the default paths
|
||||||
|
if [ -z "${XDG_DATA_DIRS}" ]; then
|
||||||
|
XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export XDG_DATA_DIRS="${root_dir}/usr/share:${XDG_DATA_DIRS}"
|
||||||
6
.github/workflows/helper/appimage/org.qbittorrent.qBittorrent.desktop
vendored
Normal file
6
.github/workflows/helper/appimage/org.qbittorrent.qBittorrent.desktop
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=qBittorrent
|
||||||
|
Exec=qbittorrent-nox %U
|
||||||
|
Icon=qbittorrent
|
||||||
|
Type=Application
|
||||||
|
Categories=Network
|
||||||
14
.github/workflows/helper/codeql/cpp.yaml
vendored
Normal file
14
.github/workflows/helper/codeql/cpp.yaml
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
name: "CodeQL config for C++"
|
||||||
|
|
||||||
|
queries:
|
||||||
|
- uses: security-and-quality
|
||||||
|
|
||||||
|
query-filters:
|
||||||
|
- exclude:
|
||||||
|
id: cpp/commented-out-code
|
||||||
|
- exclude:
|
||||||
|
id: cpp/include-non-header
|
||||||
|
- exclude:
|
||||||
|
id: cpp/loop-variable-changed
|
||||||
|
- exclude:
|
||||||
|
id: cpp/useless-expression
|
||||||
11
.github/workflows/helper/codeql/js.yaml
vendored
Normal file
11
.github/workflows/helper/codeql/js.yaml
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
name: "CodeQL config for Javascript"
|
||||||
|
|
||||||
|
paths-ignore:
|
||||||
|
- "**/lib/*"
|
||||||
|
|
||||||
|
queries:
|
||||||
|
- uses: security-and-quality
|
||||||
|
|
||||||
|
query-filters:
|
||||||
|
- exclude:
|
||||||
|
id: js/superfluous-trailing-arguments
|
||||||
5
.github/workflows/stale_bot.yaml
vendored
5
.github/workflows/stale_bot.yaml
vendored
@@ -4,12 +4,15 @@ on:
|
|||||||
schedule:
|
schedule:
|
||||||
- cron: '0 0 * * *'
|
- cron: '0 0 * * *'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
stale:
|
stale:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Mark and close stale PRs
|
- name: Mark and close stale PRs
|
||||||
uses: actions/stale@v4
|
uses: actions/stale@v8
|
||||||
with:
|
with:
|
||||||
stale-pr-message: "This PR is stale because it has been 60 days with no activity. This PR will be automatically closed within 7 days if there is no further activity."
|
stale-pr-message: "This PR is stale because it has been 60 days with no activity. This PR will be automatically closed within 7 days if there is no further activity."
|
||||||
close-pr-message: "This PR was closed because it has been stalled for some time with no activity."
|
close-pr-message: "This PR was closed because it has been stalled for some time with no activity."
|
||||||
|
|||||||
@@ -3,13 +3,17 @@ repos:
|
|||||||
hooks:
|
hooks:
|
||||||
- id: check-translation-tag
|
- id: check-translation-tag
|
||||||
name: Check newline characters in <translation> tag
|
name: Check newline characters in <translation> tag
|
||||||
entry: .github/workflows/check_translation_tag.py
|
entry: .github/workflows/helper/pre-commit/check_translation_tag.py
|
||||||
language: script
|
language: script
|
||||||
|
exclude: |
|
||||||
|
(?x)^(
|
||||||
|
src/lang/.*
|
||||||
|
)$
|
||||||
types_or:
|
types_or:
|
||||||
- ts
|
- ts
|
||||||
|
|
||||||
- repo: https://github.com/pre-commit/pre-commit-hooks.git
|
- repo: https://github.com/pre-commit/pre-commit-hooks.git
|
||||||
rev: v4.0.1
|
rev: v4.4.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: check-json
|
- id: check-json
|
||||||
name: Check JSON files
|
name: Check JSON files
|
||||||
@@ -30,6 +34,7 @@ repos:
|
|||||||
exclude: |
|
exclude: |
|
||||||
(?x)^(
|
(?x)^(
|
||||||
compile_commands.json |
|
compile_commands.json |
|
||||||
|
src/webui/www/private/css/lib/.* |
|
||||||
src/webui/www/private/scripts/lib/.*
|
src/webui/www/private/scripts/lib/.*
|
||||||
)$
|
)$
|
||||||
|
|
||||||
@@ -39,6 +44,7 @@ repos:
|
|||||||
(?x)^(
|
(?x)^(
|
||||||
compile_commands.json |
|
compile_commands.json |
|
||||||
configure |
|
configure |
|
||||||
|
src/webui/www/private/css/lib/.* |
|
||||||
src/webui/www/private/scripts/lib/.*
|
src/webui/www/private/scripts/lib/.*
|
||||||
)$
|
)$
|
||||||
exclude_types:
|
exclude_types:
|
||||||
@@ -49,6 +55,7 @@ repos:
|
|||||||
name: Check trailing whitespaces
|
name: Check trailing whitespaces
|
||||||
exclude: |
|
exclude: |
|
||||||
(?x)^(
|
(?x)^(
|
||||||
|
src/webui/www/private/css/lib/.* |
|
||||||
src/webui/www/private/scripts/lib/.*
|
src/webui/www/private/scripts/lib/.*
|
||||||
)$
|
)$
|
||||||
exclude_types:
|
exclude_types:
|
||||||
|
|||||||
35
.tx/config
35
.tx/config
@@ -1,27 +1,24 @@
|
|||||||
[main]
|
[main]
|
||||||
host = https://www.transifex.com
|
host = https://www.transifex.com
|
||||||
|
|
||||||
[qbittorrent.qbittorrent_master]
|
[o:sledgehammer999:p:qbittorrent:r:qbittorrent_master]
|
||||||
file_filter = src/lang/qbittorrent_<lang>.ts
|
file_filter = src/lang/qbittorrent_<lang>.ts
|
||||||
lang_map = pt: pt_PT
|
source_file = src/lang/qbittorrent_en.ts
|
||||||
source_file = src/lang/qbittorrent_en.ts
|
source_lang = en
|
||||||
source_lang = en
|
type = QT
|
||||||
type = QT
|
|
||||||
minimum_perc = 23
|
minimum_perc = 23
|
||||||
mode = developer
|
lang_map = pt: pt_PT, zh: zh_CN
|
||||||
|
|
||||||
[qbittorrent.qbittorrentdesktop_master]
|
[o:sledgehammer999:p:qbittorrent:r:qbittorrent_webui]
|
||||||
source_file = dist/unix/org.qbittorrent.qBittorrent.desktop
|
file_filter = src/webui/www/translations/webui_<lang>.ts
|
||||||
source_lang = en
|
source_file = src/webui/www/translations/webui_en.ts
|
||||||
type = DESKTOP
|
source_lang = en
|
||||||
|
type = QT
|
||||||
minimum_perc = 23
|
minimum_perc = 23
|
||||||
mode = developer
|
lang_map = pt: pt_PT, zh: zh_CN
|
||||||
|
|
||||||
[qbittorrent.qbittorrent_webui]
|
[o:sledgehammer999:p:qbittorrent:r:qbittorrentdesktop_master]
|
||||||
file_filter = src/webui/www/translations/webui_<lang>.ts
|
source_file = dist/unix/org.qbittorrent.qBittorrent.desktop
|
||||||
lang_map = pt: pt_PT
|
source_lang = en
|
||||||
source_file = src/webui/www/translations/webui_en.ts
|
type = DESKTOP
|
||||||
source_lang = en
|
|
||||||
type = QT
|
|
||||||
minimum_perc = 23
|
minimum_perc = 23
|
||||||
mode = developer
|
|
||||||
|
|||||||
85
AUTHORS
85
AUTHORS
@@ -29,16 +29,12 @@ Code from other projects:
|
|||||||
copyright: Dan Haim <negativeiq@users.sourceforge.net>
|
copyright: Dan Haim <negativeiq@users.sourceforge.net>
|
||||||
license: BSD
|
license: BSD
|
||||||
|
|
||||||
* file src/app/stacktrace.h
|
* files src/webui/www/private/css/lib/vanillaSelectBox.css src/webui/www/private/scripts/lib/vanillaSelectBox.js
|
||||||
copyright: Timo Bingmann from http://idlebox.net/
|
copyright: Philippe Meyer <pmg.meyer@gmail.com>
|
||||||
license: WTFPL v2.0
|
license: MIT
|
||||||
|
|
||||||
* file src/app/stacktrace_win.h
|
|
||||||
copyright: Quassel Project
|
|
||||||
license: GPLv2/3
|
|
||||||
|
|
||||||
Images Authors:
|
Images Authors:
|
||||||
* files: src/icons/skin/qbittorrent-tray.svg (and related pngs)
|
* files: src/icons/qbittorrent-tray.svg
|
||||||
copyright: Provided by HVS <hvs linuxmail org> (raster first proposal) and Atif Afzal(@atfzl github) <atif5801@gmail.com> (vectorized and modified)
|
copyright: Provided by HVS <hvs linuxmail org> (raster first proposal) and Atif Afzal(@atfzl github) <atif5801@gmail.com> (vectorized and modified)
|
||||||
license: GPLv2+
|
license: GPLv2+
|
||||||
|
|
||||||
@@ -46,56 +42,53 @@ Images Authors:
|
|||||||
copyright: 'uknown.svg' (LGPLv3+) from Oxygen Icon Theme was used as base which was slightly modified and 'qbittorrent-tray.svg' (GPLv2+) was overlayed above it.
|
copyright: 'uknown.svg' (LGPLv3+) from Oxygen Icon Theme was used as base which was slightly modified and 'qbittorrent-tray.svg' (GPLv2+) was overlayed above it.
|
||||||
license: GPLv3+
|
license: GPLv3+
|
||||||
|
|
||||||
* files: src/icons/*.png
|
|
||||||
copyright: Gnome Icon Theme
|
|
||||||
license: GPLv2
|
|
||||||
url: http://ftp.acc.umu.se/pub/GNOME/sources/gnome-icon-theme
|
|
||||||
|
|
||||||
* files: src/oxygen/*.png
|
|
||||||
copyright: Oxygen Icon Theme (KDE)
|
|
||||||
license: LGPL
|
|
||||||
url: http://www.oxygen-icons.org
|
|
||||||
|
|
||||||
* files: src/icons/flags/*.svg
|
* files: src/icons/flags/*.svg
|
||||||
copyright: lipis/flag-icon-css
|
copyright: lipis/flag-icons
|
||||||
license: MIT
|
license: MIT
|
||||||
url: https://github.com/lipis/flag-icon-css/
|
url: https://github.com/lipis/flag-icons/
|
||||||
|
|
||||||
* files: src/icons/skin/*.png
|
* file: src/webui/www/private/images/tabs.gif
|
||||||
files: src/menuicons/YYxYY/*.png
|
|
||||||
copyright: Mateusz Tobola <tobejodok@qbittorrent.org>
|
|
||||||
license: GPLv2
|
|
||||||
|
|
||||||
* file: src/icons/tabs.gif
|
|
||||||
copyright: Greg Houston <gregory.houston@gmail.com>
|
copyright: Greg Houston <gregory.houston@gmail.com>
|
||||||
license: MIT
|
license: MIT
|
||||||
|
|
||||||
* file: src/icons/skin/qbittorrent_mono*
|
* file: src/icons/qbittorrent-tray-dark.svg src/icons/qbittorrent-tray-light.svg
|
||||||
copyright: Daniel Eguren <deguren@gmail.com>
|
copyright: Daniel Eguren <deguren@gmail.com>
|
||||||
|
modified by: Nowshed H. Imran <nowshed.imran@gmail.com> (@now-im)
|
||||||
license: LGPL
|
license: LGPL
|
||||||
|
|
||||||
* file: src/search_engine/engines/btjunkie.png
|
* folder: src/icons/
|
||||||
copyright: Downloaded from btjunkie.org
|
files: application-rss+xml.svg, application-x-mswinurl.svg, connected.svg, disconnected.svg, checked-completed.svg, configure.svg,
|
||||||
|
edit-copy.svg, edit-rename.svg, folder-documents.svg, folder-new.svg, folder-remote.svg, go-bottom.svg, go-down.svg, go-top.svg,
|
||||||
|
go-up.svg, hash.svg, inode-directory.svg, insert-link.svg, kt-magnet.svg, media-playback-pause.svg, media-playback-start.svg,
|
||||||
|
media-seek-forward.svg, network-connect.svg, object-locked.svg, queued.svg, ratio.svg, reannounce.svg, slow_off.svg, slow.svg,
|
||||||
|
speedometer.svg, system-log-out.svg, tags.svg, task-complete.svg, task-reject.svg, tracker-error.svg, tracker-warning.svg,
|
||||||
|
trackerless.svg, trackers.svg, view-categories.svg
|
||||||
|
copyright: Nowshed H. Imran <nowshed.imran@gmail.com> (@now-im) modified from La-Capitaine icon theme (https://github.com/keeferrourke/la-capitaine-icon-theme)
|
||||||
|
license: GPLv3+
|
||||||
|
|
||||||
* file: src/search_engine/engines/isohunt.png
|
* folder: src/icons/
|
||||||
copyright: Downloaded from isohunt.com
|
files: application-exit.svg, collapse.svg, dialog-warning.svg, edit-find-user.svg, edit-find.svg, filter-all.svg, firewalled.svg,
|
||||||
|
help-about.svg, help-contents.svg, ip-blocked.svg, list-remove.svg, loading.svg, mail-folder-inbox.svg, name.svg, network-server.svg,
|
||||||
|
office-chart-line.svg, plugins.svg, preferences-desktop.svg, preferences-other.svg, preferences-system-network.svg, security-high.svg,
|
||||||
|
security-low.svg, set-location.svg, torrent-creator.svg, user-group-delete.svg, user-group-new.svg, view-preview.svg, view-refresh.svg,
|
||||||
|
view-statistics.svg, wallet-open.svg, webuiapplication-exit.svg, collapse.svg, dialog-warning.svg, edit-find-user.svg, edit-find.svg,
|
||||||
|
filter-all.svg, firewalled.svg, help-about.svg, help-contents.svg, ip-blocked.svg, list-remove.svg, loading.svg, mail-folder-inbox.svg,
|
||||||
|
name.svg, network-server.svg, office-chart-line.svg, plugins.svg, preferences-desktop.svg, preferences-other.svg,
|
||||||
|
preferences-system-network.svg, security-high.svg, security-low.svg, set-location.svg, torrent-creator.svg, user-group-delete.svg,
|
||||||
|
user-group-new.svg, view-preview.svg, view-refresh.svg, view-statistics.svg, wallet-open.svg, webui.svg
|
||||||
|
copyright: Nowshed H. Imran <nowshed.imran@gmail.com> (@now-im) modified from Ionicons icon theme (https://github.com/ionic-team/ionicons)
|
||||||
|
license: MIT
|
||||||
|
|
||||||
* file: src/search_engine/engines/mininova.png
|
* folder: src/icons/
|
||||||
copyright: Downloaded from mininova.org
|
files: force-recheck.svg
|
||||||
|
copyright: Nowshed H. Imran <nowshed.imran@gmail.com> (@now-im) modified from Font-Awesome icon theme (https://github.com/FortAwesome/Font-Awesome)
|
||||||
|
license: CC BY 4.0 License
|
||||||
|
|
||||||
* file: src/search_engine/engines/piratebay.png
|
* folder: src/icons/
|
||||||
copyright: Downloaded from thepiratebay.org
|
files: downloading.svg, edit-clear.svg, error.svg, filter-active.svg, filter-inactive.svg, filter-stalled.svg, kt-set-max-download-speed.svg,
|
||||||
|
kt-set-max-upload-speed.svg, list-add.svg, preferences-web-browser-cookies.svg, stalledDL.svg, stalledUP.svg
|
||||||
* file: src/search_engine/engines/torrentreactor.png
|
copyright: Nowshed H. Imran <nowshed.imran@gmail.com> (@now-im)
|
||||||
copyright: Downloaded from torrentreactor.net
|
license: BSD 2-Clause License
|
||||||
|
|
||||||
* file: src/icons/oxygen/checked.png
|
|
||||||
copyright: Victor Buinsky <allok.victor@gmail.com>
|
|
||||||
|
|
||||||
* file: src/icons/skin/ratio.png
|
|
||||||
copyright: Fatcow Web Hosting
|
|
||||||
license: Creative Commons Attribution 3.0 License
|
|
||||||
url: http://www.fatcow.com/free-icons
|
|
||||||
|
|
||||||
Translations authors:
|
Translations authors:
|
||||||
* files: src/lang/*.ts
|
* files: src/lang/*.ts
|
||||||
|
|||||||
@@ -1,67 +1,65 @@
|
|||||||
cmake_minimum_required(VERSION 3.16 FATAL_ERROR) # Policies <= CMP0097 default to NEW
|
cmake_minimum_required(VERSION 3.16 FATAL_ERROR) # Policies <= CMP0097 default to NEW
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
|
|
||||||
|
|
||||||
project(qBittorrent
|
project(qBittorrent
|
||||||
DESCRIPTION "The qBittorrent BitTorrent client"
|
DESCRIPTION "The qBittorrent BitTorrent client"
|
||||||
HOMEPAGE_URL "https://www.qbittorrent.org/"
|
HOMEPAGE_URL "https://www.qbittorrent.org/"
|
||||||
LANGUAGES CXX
|
LANGUAGES CXX
|
||||||
)
|
)
|
||||||
|
|
||||||
# use CONFIG mode first in find_package
|
|
||||||
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
|
|
||||||
# version requirements - older versions may work, but you are on your own
|
# version requirements - older versions may work, but you are on your own
|
||||||
set(minBoostVersion 1.65)
|
set(minBoostVersion 1.71)
|
||||||
set(minQt5Version 5.15.2)
|
set(minQt5Version 5.15.2)
|
||||||
set(minQt6Version 6.2)
|
set(minQt6Version 6.2)
|
||||||
set(minOpenSSLVersion 1.1.1)
|
set(minOpenSSLVersion 1.1.1)
|
||||||
set(minLibtorrent1Version 1.2.14)
|
set(minLibtorrent1Version 1.2.19)
|
||||||
set(minLibtorrentVersion 2.0.4)
|
set(minLibtorrentVersion 2.0.9)
|
||||||
set(minZlibVersion 1.2.11)
|
set(minZlibVersion 1.2.11)
|
||||||
|
|
||||||
# features (some are platform-specific)
|
|
||||||
include(CheckCXXSourceCompiles) # TODO: migrate to CheckSourceCompiles in CMake >= 3.19
|
include(CheckCXXSourceCompiles) # TODO: migrate to CheckSourceCompiles in CMake >= 3.19
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
|
||||||
include(FeatureSummary)
|
include(FeatureSummary)
|
||||||
include(FeatureOptionsSetup)
|
include(FeatureOptionsSetup)
|
||||||
feature_option(QT6 "Use Qt6" OFF)
|
|
||||||
feature_option(STACKTRACE "Enable stacktraces" ON)
|
# features, list is loosely sorted by user's interests
|
||||||
feature_option(GUI "Build GUI application" ON)
|
feature_option(GUI "Build GUI application" ON)
|
||||||
feature_option(WEBUI "Enables built-in HTTP server for headless use" ON)
|
feature_option(WEBUI "Enable built-in HTTP server for remote control" ON)
|
||||||
|
feature_option(QT6 "Build with Qt 6 instead of Qt 5" OFF)
|
||||||
|
feature_option(STACKTRACE "Enable stacktrace support" ON)
|
||||||
|
feature_option(TESTING "Build internal testing suite" OFF)
|
||||||
feature_option(VERBOSE_CONFIGURE "Show information about PACKAGES_FOUND and PACKAGES_NOT_FOUND in the configure output (only useful for debugging the CMake build scripts)" OFF)
|
feature_option(VERBOSE_CONFIGURE "Show information about PACKAGES_FOUND and PACKAGES_NOT_FOUND in the configure output (only useful for debugging the CMake build scripts)" OFF)
|
||||||
|
|
||||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
feature_option_dependent(DBUS
|
feature_option_dependent(DBUS
|
||||||
"Enables support for notifications and power-management features on Linux via D-Bus"
|
"Enable support for notifications and power-management features via D-Bus on Linux"
|
||||||
ON "GUI" OFF
|
ON "GUI" OFF
|
||||||
)
|
)
|
||||||
feature_option_dependent(SYSTEMD
|
feature_option_dependent(SYSTEMD
|
||||||
"Install systemd service file to a directory manually overridable with Systemd_SERVICES_INSTALL_DIR"
|
"Install systemd service file. Target directory is overridable with `SYSTEMD_SERVICES_INSTALL_DIR` variable"
|
||||||
OFF "NOT GUI" OFF
|
OFF "NOT GUI" OFF
|
||||||
)
|
)
|
||||||
if (STACKTRACE)
|
|
||||||
check_cxx_source_compiles(
|
|
||||||
"#include <execinfo.h>
|
|
||||||
int main(){return 0;}"
|
|
||||||
QBITTORRENT_HAS_EXECINFO_H
|
|
||||||
)
|
|
||||||
if (NOT QBITTORRENT_HAS_EXECINFO_H)
|
|
||||||
message(FATAL_ERROR "execinfo.h header file not found.\n"
|
|
||||||
"Please either disable the STACKTRACE feature or use a libc that has this header file, such as glibc (GNU libc)."
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
elseif (MSVC)
|
elseif (MSVC)
|
||||||
feature_option(MSVC_RUNTIME_DYNAMIC "Use MSVC dynamic runtime library (-MD) instead of static (-MT)" ON)
|
feature_option(MSVC_RUNTIME_DYNAMIC "Use MSVC dynamic runtime library (-MD) instead of static (-MT)" ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(GNUInstallDirs)
|
|
||||||
add_subdirectory(src)
|
|
||||||
add_subdirectory(dist)
|
|
||||||
|
|
||||||
if (VERBOSE_CONFIGURE)
|
if (VERBOSE_CONFIGURE)
|
||||||
feature_summary(WHAT ALL)
|
feature_summary(WHAT ALL)
|
||||||
else()
|
else()
|
||||||
feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES)
|
feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# go check the packages
|
||||||
|
include(CheckPackages)
|
||||||
|
# configure for specific platform
|
||||||
|
include(CommonConfig)
|
||||||
|
|
||||||
# Generate version header
|
# Generate version header
|
||||||
configure_file("src/base/version.h.in" "${CMAKE_CURRENT_SOURCE_DIR}/src/base/version.h" @ONLY)
|
configure_file("src/base/version.h.in" "${CMAKE_CURRENT_SOURCE_DIR}/src/base/version.h" @ONLY)
|
||||||
|
|
||||||
|
add_subdirectory(src)
|
||||||
|
add_subdirectory(dist)
|
||||||
|
|
||||||
|
if (TESTING)
|
||||||
|
add_subdirectory(test)
|
||||||
|
endif()
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
# Coding Guidelines
|
# Coding Guidelines
|
||||||
|
|
||||||
All new code **must** follow the following coding guidelines. \
|
All new code **must** follow the following coding guidelines.
|
||||||
|
|
||||||
If you make changes in a file that still uses another coding style, make sure that you follow these guidelines for your changes. \
|
If you make changes in a file that still uses another coding style, make sure that you follow these guidelines for your changes. \
|
||||||
For programming languages other than C++ (e.g. JavaScript) used in this repository and submodules, unless otherwise specified, coding guidelines listed here applies as much as possible.
|
For programming languages other than C++ (e.g. JavaScript) used in this repository and submodules, unless otherwise specified, coding guidelines listed here applies as much as possible.
|
||||||
|
|
||||||
@@ -456,8 +457,8 @@ class ExampleWidget : public QWidget
|
|||||||
* Prefer pre-increment, pre-decrement operators
|
* Prefer pre-increment, pre-decrement operators
|
||||||
|
|
||||||
```c++
|
```c++
|
||||||
++i, --j; // Yes
|
++i, --j; // yes
|
||||||
i++, j--; // No
|
i++, j--; // no
|
||||||
```
|
```
|
||||||
|
|
||||||
* private/public/protected must not be indented
|
* private/public/protected must not be indented
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ Read the respective section to find out more.
|
|||||||
|
|
||||||
* **Be patient.** The development team is small and resource limited. Developers and contributors take from their free time to analyze the problem and fix the issue. :clock3:
|
* **Be patient.** The development team is small and resource limited. Developers and contributors take from their free time to analyze the problem and fix the issue. :clock3:
|
||||||
|
|
||||||
* Harsh words or threats won't help your situation. What's worse, your complain will (very likely) be **ignored.** :fearful:
|
* Harsh words or threats won't help your situation. Your complaint will (very likely) be **ignored.** :fearful:
|
||||||
|
|
||||||
# Submitting an issue/bug report
|
# Submitting an issue/bug report
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ Developers and contributors are not supposed to deal with issues for which littl
|
|||||||
|
|
||||||
Positive contributions are those which are reported with efforts to find the actual cause of an issue, or at the very least efforts were made to narrow it as much as possible.
|
Positive contributions are those which are reported with efforts to find the actual cause of an issue, or at the very least efforts were made to narrow it as much as possible.
|
||||||
|
|
||||||
Requiring people to investigate as much as possible before opening an issue will more than likely avoid burdening the project with invalid issues or issues unrelated to qBittorrent.
|
Requiring people to investigate as much as possible before opening an issue avoids burdening the project with invalid issues or issues unrelated to qBittorrent.
|
||||||
|
|
||||||
The following are _not_ bug reports. **Check the [wiki][wiki-url], [forum][forum-url] or other places for help and support for issues like these**:
|
The following are _not_ bug reports. **Check the [wiki][wiki-url], [forum][forum-url] or other places for help and support for issues like these**:
|
||||||
|
|
||||||
@@ -200,7 +200,7 @@ Following these guidelines helps maintainers and the community understand your s
|
|||||||
[coding-guidelines-url]: https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md
|
[coding-guidelines-url]: https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md
|
||||||
[coding-guidelines-git-commit-message-url]: https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md#10-git-commit-message
|
[coding-guidelines-git-commit-message-url]: https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md#10-git-commit-message
|
||||||
[commit-message-fix-issue-example-url]: https://github.com/qbittorrent/qBittorrent/commit/c07cd440cd46345297debb47cb260f8688975f50
|
[commit-message-fix-issue-example-url]: https://github.com/qbittorrent/qBittorrent/commit/c07cd440cd46345297debb47cb260f8688975f50
|
||||||
[forum-url]: http://forum.qbittorrent.org/
|
[forum-url]: https://forum.qbittorrent.org/
|
||||||
[howto-report-bugs-url]: https://www.chiark.greenend.org.uk/~sgtatham/bugs.html
|
[howto-report-bugs-url]: https://www.chiark.greenend.org.uk/~sgtatham/bugs.html
|
||||||
[how-to-translate-url]: https://github.com/qbittorrent/qBittorrent/wiki/How-to-translate-qBittorrent
|
[how-to-translate-url]: https://github.com/qbittorrent/qBittorrent/wiki/How-to-translate-qBittorrent
|
||||||
[merging-vs-rebasing-url]: https://www.atlassian.com/git/tutorials/merging-vs-rebasing
|
[merging-vs-rebasing-url]: https://www.atlassian.com/git/tutorials/merging-vs-rebasing
|
||||||
|
|||||||
339
COPYING.GPLv2
Normal file
339
COPYING.GPLv2
Normal file
File diff suppressed because it is too large
Load Diff
674
COPYING.GPLv3
Normal file
674
COPYING.GPLv3
Normal file
File diff suppressed because it is too large
Load Diff
144
Changelog
144
Changelog
@@ -1,66 +1,84 @@
|
|||||||
Tue Aug 30 2022 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.4.5
|
Unreleased - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.5.0
|
||||||
- BUGFIX: Fix missing trackers when adding magnet link. Affects libtorrent 2.0.x builds. (glassez)
|
- FEATURE: Add `Auto resize columns` functionality (Chocobo1)
|
||||||
|
- FEATURE: Allow to use Category paths in `Manual` mode (glassez)
|
||||||
Mon Aug 22 2022 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.4.4
|
- FEATURE: Allow to disable Automatic mode when default "temp" path changed (glassez)
|
||||||
- BUGFIX: Correctly handle data decompression with Qt 6.3 (brvphoenix)
|
- FEATURE: Add tuning options related to performance warnings (Chocobo1)
|
||||||
- BUGFIX: Fix wrong file names displayed in tooltip (Chocobo1)
|
- FEATURE: Add right click menu for status filters (An0n)
|
||||||
- BUGFIX: Fix incorrect "max outgoing port" setting (glassez)
|
- FEATURE: Allow setting the number of maximum active checking torrents (An0n)
|
||||||
- BUGFIX: Make working set limit available only on libtorrent 2.0.x builds (summer)
|
- FEATURE: Add option to toggle filters sidebar (AbeniMatteo)
|
||||||
- BUGFIX: Try to recover missing tags (summer)
|
- FEATURE: Allow to set `working set limit` on non-Windows OS (Chocobo1)
|
||||||
- RSS: Clear RSS parsing error after use (glassez)
|
- FEATURE: Add `Export .torrent` action (Chocobo1)
|
||||||
- WEBAPI: Set HTTP method restriction on WebAPI actions (Chocobo1)
|
- FEATURE: Add keyboard navigation keys (itlezy)
|
||||||
- WINDOWS: Work around application stuttering on Windows (Chocobo1)
|
- FEATURE: Allow to use POSIX-compliant disk IO type (Coda)
|
||||||
- WINDOWS: NSIS: Update Portuguese, Italian, Korean, Latvian translations(Blackspirits, bovirus, Minseo Lee, Coool)
|
- FEATURE: Add `Filter files` field in new torrent dialog (thalieht)
|
||||||
- LINUX: Improve D-Bus notifications handling (glassez)
|
- FEATURE: Implement new icon/color theme (now-im, xavier2k6)
|
||||||
- MACOS: Open destination folders on macOS in separate thread (Nick Korotysh)
|
- FEATURE: Add file name filter/blacklist (mxtsdev, thalieht)
|
||||||
|
- FEATURE: Add support for custom SMTP ports (Emil M George)
|
||||||
Tue May 24 2022 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.4.3.1
|
- FEATURE: Split the OS cache settings into Disk IO read/write modes (summer)
|
||||||
- BUGFIX: Fix broken translations (sledgehammer999)
|
- FEATURE: When duplicate torrent is added set metadata to existing one (glassez)
|
||||||
|
- FEATURE: Greatly improve startup time with many torrents (glassez, jagannatharjun)
|
||||||
Sun May 22 2022 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.4.3
|
- FEATURE: Add keyboard shortcut to Download URL dialog (Chocobo1)
|
||||||
- BUGFIX: Correctly handle changing of temp save path (glassez)
|
- FEATURE: Add ability to run external program on torrent added (glassez)
|
||||||
- BUGFIX: Fix storage in SQLite (glassez)
|
- FEATURE: Add infohash and download path columns (tristanleboss)
|
||||||
- BUGFIX: Correctly apply content layout when "Skip hash check" is enabled (glassez)
|
- FEATURE: Allow to set torrent stop condition (glassez, thalieht)
|
||||||
- BUGFIX: Don't corrupt IDs of v2 torrents (glassez)
|
- FEATURE: Add a `Moving` status filter (tristanleboss)
|
||||||
- BUGFIX: Reduce the number of hashing threads by default (improves hashing speed on HDDs) (summer)
|
- FEATURE: Change color palettes for both dark, light themes (Chocobo1)
|
||||||
- BUGFIX: Prevent the "update dialog" from blocking input on other windows (summer)
|
- FEATURE: Add a `Use proxy for hostname lookup` option (Nathan Lewis)
|
||||||
- BUGFIX: Add trackers in exported .torrent files (glassez)
|
- FEATURE: Introduce a `change listen port` cmd option (BallsOfSpaghetti)
|
||||||
- BUGFIX: Fix wrong GUI behavior in "Optional IP address to bind to" setting (Chocobo1)
|
- FEATURE: Implement `Peer ID Client` column for `Peers` tab (Hanabishi)
|
||||||
- WEBUI: Fix WebUI crash due to missing tags from config (An0n)
|
- FEATURE: Add port forwarding option for embedded tracker (Chocobo1)
|
||||||
- WEBUI: Show correct location path (Chocobo1)
|
- BUGFIX: Store hybrid torrents using `torrent ID` as basename (glassez)
|
||||||
- MACOS: Fix main window freezing after opening a files dialog (glassez)
|
- BUGFIX: Enable Combobox editor for the `Mixed` file download priority (Aleksandr Cupacenko)
|
||||||
|
- BUGFIX: Allow shortcut folders for the Open and Save directory dialogs (Aleksandr Cupacenko)
|
||||||
Tue Mar 22 2022 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.4.2
|
- BUGFIX: Rename content tab `Size` column to `Total Size` (Aleksandr Cupacenko)
|
||||||
- FEATURE: Allow to limit max memory working set size (glassez)
|
- BUGFIX: Fix scrolling to the lowermost visible torrent (Aleksandr Cupacenko)
|
||||||
- BUGFIX: Fix UI crash when torrent is in a non-existent category (Kevin Cox)
|
- BUGFIX: Allow changing file priorities for finished torrents (An0n)
|
||||||
- BUGFIX: Correctly handle changing of global save paths (glassez)
|
- BUGFIX: Focus save path when Manual mode is selected initially (Aleksandr Cupacenko)
|
||||||
- BUGFIX: Disable performance alert (Chocobo1)
|
- BUGFIX: Disable force reannounce when it is not possible (An0n)
|
||||||
- BUGFIX: Prevent loading resume data with inconsistent ID (glassez)
|
- BUGFIX: Add horizontal scrolling for tracker list and torrent content (NotTsunami)
|
||||||
- BUGFIX: Properly handle metadata download for an existing torrent (glassez)
|
- BUGFIX: Enlarge "speed limits" icons (Chocobo1)
|
||||||
- BUGFIX: Prevent crash when open torrent destination folder (glassez)
|
- BUGFIX: Change Downloaded to Times Downloaded in trackers tab (An0n)
|
||||||
- WINDOWS: NSIS: Update Spanish, Spanish International and French translations(Juanjo Jiménez, RqndomHax)
|
- BUGFIX: Remove artificial max limits from `Torrent Queueing` related options (Chocobo1)
|
||||||
|
- BUGFIX: Preserve `skip hash check` when there is no metadata (glassez)
|
||||||
Tue Feb 15 2022 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.4.1
|
- BUGFIX: Fix DHT/PeX/LSD status when it is globally disabled (Kacper Michajłow)
|
||||||
- FEATURE: Restore all torrent settings to the torrent's main context menu (thalieht)
|
- BUGFIX: Fix rate calculation when interval is too low (glassez)
|
||||||
- FEATURE: Add confirmation for enabling Auto TMM from context menu (thalieht)
|
- BUGFIX: Add tooltip message when system tray icon isn't available (Chocobo1)
|
||||||
- FEATURE: Add tooltip to Automatic Torrent Management context menu action (thalieht)
|
- BUGFIX: Improve sender field in mail notifications (Dmitry Vodopyanov)
|
||||||
- FEATURE: Add Select All/None buttons in new torrent dialog (thalieht)
|
- BUGFIX: Fix "Add torrent dialog" spill-over on smaller screens (Chocobo1)
|
||||||
- BUGFIX: Keep "torrent info" alive while generate .torrent file (glassez)
|
- BUGFIX: Fix peer count issue when tracker responds with zero figure (summer)
|
||||||
- BUGFIX: Correctly handle Auto TMM in Torrent Files Watcher (glassez)
|
- BUGFIX: Don't merge trackers by default (glassez)
|
||||||
- BUGFIX: Correctly track the root folder name change (glassez)
|
- BUGFIX: Don't inhibit system sleep/auto shutdown for torrents stuck at downloading metadata (summer)
|
||||||
- BUGFIX: Various fixes to the moving torrent code (glassez)
|
- BUGFIX: Allow to pause a checking torrent from context menu (summer)
|
||||||
- BUGFIX: Update the torrent's download path field when changing category (thalieht)
|
- BUGFIX: Allow to use subnet notation in reverse proxy list (Chocobo1)
|
||||||
- BUGFIX: Correctly handle received metadata (glassez)
|
- BUGFIX: Fine tune translations loading for Chinese locales (sledgehammer999)
|
||||||
- BUGFIX: Store hybrid torrents using legacy filenames (glassez)
|
- BUGFIX: Fix torrent content checkboxes not updated properly (Chocobo1)
|
||||||
- BUGFIX: Open correct directory when clicked on Browse button (glassez)
|
- BUGFIX: Correctly load state of `Use another path for incomplete torrents` in Watched folders (glassez)
|
||||||
- BUGFIX: Fix crash when shutting down and clicing on system tray icon (Chocobo1)
|
- BUGFIX: Add confirmation to resume/pause all (BallsOfSpaghetti)
|
||||||
- BUGFIX: Fix "Free space on disk" in new torrent dialog (thalieht)
|
- BUGFIX: Fix wrong count of errored trackers (Chocobo1)
|
||||||
- BUGFIX: Optimize completed files handling (Prince Gupta)
|
- WEBUI: Allow blank lines in multipart form-data input (Aleksandr Cupacenko)
|
||||||
- BUGFIX: Migrate proxy settings (sledgehammer999)
|
- WEBUI: Make various dialogs resizable (Chocobo1)
|
||||||
- BUGFIX: Try to recover missing categories (glassez)
|
- WEBUI: Fix wrong v2 hash string displayed (Chocobo1)
|
||||||
- WEBUI: WebAPI: fix wrong key used for categories (Chocobo1)
|
- WEBUI: WebAPI: return correct status (Requi)
|
||||||
- WEBUI: Remove hack for outdated IE 6 browser (Chocobo1)
|
- WEBUI: Fix empty selection in language combobox (Chocobo1)
|
||||||
- RSS: Correctly handle XML parsing errors (glassez)
|
- WEBUI: Store WebUI port setting in human readable number (Chocobo1)
|
||||||
|
- WEBUI: Add support for exporting .torrent (Tom Piccirello)
|
||||||
|
- WEBUI: WebAPI: Add endpoint to set speed limit mode (glassez)
|
||||||
|
- WEBUI: Improve progress bar rendering (Mike Lei)
|
||||||
|
- WEBUI: Add transfer list refresh interval settings (summer)
|
||||||
|
- WEBUI: Use natural sort (Chocobo1)
|
||||||
|
- WEBUI: Apply i18n translation only to built-in WebUI (Chocobo1)
|
||||||
|
- WEBUI: Alert when HTTPS settings are incomplete (Chocobo1)
|
||||||
|
- WEBUI: Handle drag and drop events (Chocobo1)
|
||||||
|
- WEBUI: Fix wrong behavior for shutdown action (Chocobo1)
|
||||||
|
- WEBUI: Don't disable combobox for file priority (Chocobo1)
|
||||||
|
- RSS: Increase limit of maximum number of articles per feed (summer)
|
||||||
|
- WINDOWS: Fix `Open destination folder` delay on Windows (Andrew)
|
||||||
|
- WINDOWS: NSIS: Update Russian, Estonian, Japanese, Dutch, Portuguese BR, German and Indonesian translations (Andrei Stepanov, Priit Uring, maboroshin, Thomas De Rocker, Ícaro, schnurlos, Faisal A. F. Rahman)
|
||||||
|
- LINUX: Mark as single window app in .desktop file (Nicolas Fella)
|
||||||
|
- LINUX: Add Dockerfile (Amanuense-del-diavolo, Tom Piccirello, Chocobo1)
|
||||||
|
- LINUX: Remove option of using icons from system theme (now-im)
|
||||||
|
- MACOS: Fix wrong background color in properties widget (NotTsunami)
|
||||||
|
- OTHER: Binary distributions of qbittorrent are GPLv3+ licensed (sledgehammer999)
|
||||||
|
|
||||||
Thu Jan 06 2022 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.4.0
|
Thu Jan 06 2022 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.4.0
|
||||||
- FEATURE: Support for v2 torrents along with libtorrent 2.0.x support (glassez, Chocobo1)
|
- FEATURE: Support for v2 torrents along with libtorrent 2.0.x support (glassez, Chocobo1)
|
||||||
|
|||||||
8
INSTALL
8
INSTALL
@@ -3,9 +3,9 @@ qBittorrent - A BitTorrent client in C++ / Qt
|
|||||||
|
|
||||||
1) Install these dependencies:
|
1) Install these dependencies:
|
||||||
|
|
||||||
- Boost >= 1.65
|
- Boost >= 1.71
|
||||||
|
|
||||||
- libtorrent-rasterbar 1.2.14 - 1.2.x || 2.0.4 - 2.0.x
|
- libtorrent-rasterbar 1.2.19 - 1.2.x || 2.0.9 - 2.0.x
|
||||||
* By Arvid Norberg, https://www.libtorrent.org/
|
* By Arvid Norberg, https://www.libtorrent.org/
|
||||||
* Be careful: another library (the one used by rTorrent) uses a similar name
|
* Be careful: another library (the one used by rTorrent) uses a similar name
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ qBittorrent - A BitTorrent client in C++ / Qt
|
|||||||
- pkg-config *
|
- pkg-config *
|
||||||
* Compile-time only on *nix systems
|
* Compile-time only on *nix systems
|
||||||
|
|
||||||
- Python >= 3.5.0
|
- Python >= 3.7.0
|
||||||
* Optional, run-time only
|
* Optional, run-time only
|
||||||
* Used by the bundled search engine
|
* Used by the bundled search engine
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ Please ensure you are building with an officially supported configuration when r
|
|||||||
will install and execute qBittorrent.
|
will install and execute qBittorrent.
|
||||||
|
|
||||||
DOCUMENTATION:
|
DOCUMENTATION:
|
||||||
Please note that there is a "Compilation" section at http://wiki.qbittorrent.org.
|
Please note that there is a "Compilation" section at https://wiki.qbittorrent.org.
|
||||||
|
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
sledgehammer999 <sledgehammer999@qbittorrent.org>
|
sledgehammer999 <sledgehammer999@qbittorrent.org>
|
||||||
|
|||||||
4
NEWS
4
NEWS
@@ -1,4 +0,0 @@
|
|||||||
See Changelog
|
|
||||||
|
|
||||||
*******************************************
|
|
||||||
Christophe dumez - chris@qbittorrent.org
|
|
||||||
@@ -37,13 +37,13 @@ For more information please visit:
|
|||||||
https://www.qbittorrent.org
|
https://www.qbittorrent.org
|
||||||
|
|
||||||
or our wiki here:
|
or our wiki here:
|
||||||
http://wiki.qbittorrent.org
|
https://wiki.qbittorrent.org
|
||||||
|
|
||||||
Use the forum for troubleshooting before reporting bugs:
|
Use the forum for troubleshooting before reporting bugs:
|
||||||
http://forum.qbittorrent.org
|
https://forum.qbittorrent.org
|
||||||
|
|
||||||
Please report any bug (or feature request) to:
|
Please report any bug (or feature request) to:
|
||||||
http://bugs.qbittorrent.org
|
https://bugs.qbittorrent.org
|
||||||
|
|
||||||
Official IRC channel:
|
Official IRC channel:
|
||||||
[#qbittorrent on irc.libera.chat](ircs://irc.libera.chat:6697/qbittorrent)
|
[#qbittorrent on irc.libera.chat](ircs://irc.libera.chat:6697/qbittorrent)
|
||||||
|
|||||||
67
cmake/Modules/CheckPackages.cmake
Normal file
67
cmake/Modules/CheckPackages.cmake
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
# use CONFIG mode first in find_package
|
||||||
|
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
|
||||||
|
|
||||||
|
macro(find_libtorrent version)
|
||||||
|
if (UNIX AND (NOT APPLE) AND (NOT CYGWIN))
|
||||||
|
find_package(LibtorrentRasterbar QUIET ${version} COMPONENTS torrent-rasterbar)
|
||||||
|
if (NOT LibtorrentRasterbar_FOUND)
|
||||||
|
include(FindPkgConfig)
|
||||||
|
pkg_check_modules(LibtorrentRasterbar IMPORTED_TARGET GLOBAL "libtorrent-rasterbar>=${version}")
|
||||||
|
if (NOT LibtorrentRasterbar_FOUND)
|
||||||
|
message(
|
||||||
|
FATAL_ERROR
|
||||||
|
"Package LibtorrentRasterbar >= ${version} not found"
|
||||||
|
" with CMake or pkg-config.\n- Set LibtorrentRasterbar_DIR to a directory containing"
|
||||||
|
" a LibtorrentRasterbarConfig.cmake file or add the installation prefix of LibtorrentRasterbar"
|
||||||
|
" to CMAKE_PREFIX_PATH.\n- Alternatively, make sure there is a valid libtorrent-rasterbar.pc"
|
||||||
|
" file in your system's pkg-config search paths (use the system environment variable PKG_CONFIG_PATH"
|
||||||
|
" to specify additional search paths if needed)."
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
add_library(LibtorrentRasterbar::torrent-rasterbar ALIAS PkgConfig::LibtorrentRasterbar)
|
||||||
|
# force a fake package to show up in the feature summary
|
||||||
|
set_property(GLOBAL APPEND PROPERTY
|
||||||
|
PACKAGES_FOUND
|
||||||
|
"LibtorrentRasterbar via pkg-config (version >= ${version})"
|
||||||
|
)
|
||||||
|
set_package_properties("LibtorrentRasterbar via pkg-config (version >= ${version})"
|
||||||
|
PROPERTIES
|
||||||
|
TYPE REQUIRED
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
set_package_properties(LibtorrentRasterbar PROPERTIES TYPE REQUIRED)
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
find_package(LibtorrentRasterbar ${version} REQUIRED COMPONENTS torrent-rasterbar)
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
find_libtorrent(${minLibtorrent1Version})
|
||||||
|
if (LibtorrentRasterbar_FOUND AND (LibtorrentRasterbar_VERSION VERSION_GREATER_EQUAL 2.0))
|
||||||
|
find_libtorrent(${minLibtorrentVersion})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# force variable type so that it always shows up in ccmake/cmake-gui frontends
|
||||||
|
set_property(CACHE LibtorrentRasterbar_DIR PROPERTY TYPE PATH)
|
||||||
|
find_package(Boost ${minBoostVersion} REQUIRED)
|
||||||
|
find_package(OpenSSL ${minOpenSSLVersion} REQUIRED)
|
||||||
|
find_package(ZLIB ${minZlibVersion} REQUIRED)
|
||||||
|
if (QT6)
|
||||||
|
find_package(Qt6 ${minQt6Version} REQUIRED COMPONENTS Core Network Sql Xml LinguistTools)
|
||||||
|
if (DBUS)
|
||||||
|
find_package(Qt6 ${minQt6Version} REQUIRED COMPONENTS DBus)
|
||||||
|
set_package_properties(Qt6DBus PROPERTIES
|
||||||
|
DESCRIPTION "Qt6 module for inter-process communication over the D-Bus protocol"
|
||||||
|
PURPOSE "Required by the DBUS feature"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
find_package(Qt5 ${minQt5Version} REQUIRED COMPONENTS Core Network Sql Xml LinguistTools)
|
||||||
|
if (DBUS)
|
||||||
|
find_package(Qt5 ${minQt5Version} REQUIRED COMPONENTS DBus)
|
||||||
|
set_package_properties(Qt5DBus PROPERTIES
|
||||||
|
DESCRIPTION "Qt5 module for inter-process communication over the D-Bus protocol"
|
||||||
|
PURPOSE "Required by the DBUS feature"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
110
cmake/Modules/CommonConfig.cmake
Normal file
110
cmake/Modules/CommonConfig.cmake
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
# Set platform variables and create some interface-only library targets
|
||||||
|
# that some or all other targets will link to, either directly or transitively,
|
||||||
|
# to consume common compile options/definitions
|
||||||
|
|
||||||
|
# treat value specified by the CXX_STANDARD target property as a requirement by default
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
|
|
||||||
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
set(CMAKE_AUTORCC ON)
|
||||||
|
set(CMAKE_AUTORCC_OPTIONS --compress 9 --threshold 5)
|
||||||
|
|
||||||
|
add_library(qbt_common_cfg INTERFACE)
|
||||||
|
|
||||||
|
# Full C++ 17 support is required
|
||||||
|
# See also https://cmake.org/cmake/help/latest/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.html
|
||||||
|
# for a breakdown of the features that CMake recognizes for each C++ standard
|
||||||
|
target_compile_features(qbt_common_cfg INTERFACE
|
||||||
|
cxx_std_17
|
||||||
|
)
|
||||||
|
|
||||||
|
target_compile_definitions(qbt_common_cfg INTERFACE
|
||||||
|
QT_DISABLE_DEPRECATED_BEFORE=0x050f02
|
||||||
|
QT_NO_CAST_FROM_ASCII
|
||||||
|
QT_NO_CAST_TO_ASCII
|
||||||
|
QT_NO_CAST_FROM_BYTEARRAY
|
||||||
|
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
|
||||||
|
QT_USE_QSTRINGBUILDER
|
||||||
|
QT_STRICT_ITERATORS
|
||||||
|
$<$<NOT:$<CONFIG:Debug>>:QT_NO_DEBUG_OUTPUT>
|
||||||
|
)
|
||||||
|
|
||||||
|
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||||
|
target_compile_definitions(qbt_common_cfg INTERFACE
|
||||||
|
_DARWIN_FEATURE_64_BIT_INODE
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||||
|
target_compile_definitions(qbt_common_cfg INTERFACE
|
||||||
|
NTDDI_VERSION=0x06010000
|
||||||
|
_WIN32_WINNT=0x0601
|
||||||
|
_WIN32_IE=0x0601
|
||||||
|
WIN32_LEAN_AND_MEAN
|
||||||
|
NOMINMAX
|
||||||
|
UNICODE
|
||||||
|
_UNICODE
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"))
|
||||||
|
target_compile_options(qbt_common_cfg INTERFACE
|
||||||
|
-Wall
|
||||||
|
-Wextra
|
||||||
|
-Wcast-qual
|
||||||
|
-Wcast-align
|
||||||
|
-Winvalid-pch
|
||||||
|
-Woverloaded-virtual
|
||||||
|
-Wold-style-cast
|
||||||
|
-Wnon-virtual-dtor
|
||||||
|
-pedantic
|
||||||
|
-pedantic-errors
|
||||||
|
)
|
||||||
|
|
||||||
|
# Clang 11 still doesn't support -Wstrict-null-sentinel
|
||||||
|
include(CheckCXXCompilerFlag)
|
||||||
|
check_cxx_compiler_flag(-Wstrict-null-sentinel SNS_SUPPORT)
|
||||||
|
if (SNS_SUPPORT)
|
||||||
|
target_compile_options(qbt_common_cfg INTERFACE -Wstrict-null-sentinel)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"))
|
||||||
|
target_compile_options(qbt_common_cfg INTERFACE
|
||||||
|
-Wno-range-loop-analysis
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (MINGW)
|
||||||
|
target_link_options(qbt_common_cfg INTERFACE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:LINKER:--dynamicbase>)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (MSVC)
|
||||||
|
target_compile_options(qbt_common_cfg INTERFACE
|
||||||
|
/guard:cf
|
||||||
|
/utf-8
|
||||||
|
# https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
|
||||||
|
/Zc:__cplusplus
|
||||||
|
)
|
||||||
|
target_link_options(qbt_common_cfg INTERFACE
|
||||||
|
/guard:cf
|
||||||
|
$<$<NOT:$<CONFIG:Debug>>:/OPT:REF /OPT:ICF>
|
||||||
|
# suppress linking warning due to /INCREMENTAL and /OPT:ICF being both ON
|
||||||
|
$<$<CONFIG:RelWithDebInfo>:/INCREMENTAL:NO>
|
||||||
|
)
|
||||||
|
|
||||||
|
if (MSVC_RUNTIME_DYNAMIC)
|
||||||
|
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
||||||
|
else()
|
||||||
|
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (DBUS)
|
||||||
|
target_compile_definitions(qbt_common_cfg INTERFACE QBT_USES_DBUS)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (LibtorrentRasterbar_VERSION VERSION_GREATER_EQUAL ${minLibtorrentVersion})
|
||||||
|
target_compile_definitions(qbt_common_cfg INTERFACE QBT_USES_LIBTORRENT2)
|
||||||
|
endif()
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user